Flexibilidad a los items
Las siguientes propiedades dan flexibilidad a los elementos hijos de un contenedor declarado como flex. La propiedad flex-basis nos permite dar un tamaño base de los ítems. flex-grow nos permite indicar el factor de crecimiento del ítem (sino ocupa el 100% del elemento padre). flex-shrink nos permite indicar el factor de decrecimiento del ítem (si ocupa el 100% del elemento padre). Veamos en detalle cada uno.
flex-basis
Como hemos dicho, la propiedad flex-basis nos permite definir el tamaño por defecto que van a tener los ítems antes de distribuirlos. Podemos usar en lugar de un tamaño la palabra content que ajusta el tamaño de forma automática al contenido del elemento (valor por defecto). Ver ejemplo aquí.
flex-grow
flex-shrink
La propiedad flex-shrink es la opuesta a flex-grow ya que lo que hace es aplicar un factor de decrecimiento. Esta propiedad funciona si hay un flex-basis definido y los ítems no cubren el tamaño total del contenedor flex padre. Ver ejemplo aquí.
flex
Como atajo de estas propiedades tenemos la propiedad flex que sirve de atajo para estas tres propiedades indicadas en los ítems. Si indicamos tres parámetros estaremos dando valor a: flex-grow flex-shrink flex-basis. Si en la propiedad flex indicamos sólo dos parámetros, le estaríamos dando valor a: flex-grow flex-shrink. Pero si la propiedad flex tiene un sólo parámetro, podemos usar none (sería como decir 0 0 auto), podemos hacer un flex-grow si lo que ponemos es un número o si ponemos un tamaño definiríamos la propiedad flex-basis. Ver ejemplo aquí.