2 puntos por GN⁺ 2025-01-06 | 1 comentarios | Compartir por WhatsApp
  • CSS Flexbox Playground es una herramienta de aprendizaje para cambiar propiedades de Flexbox en tiempo real y ver los cambios en el layout
  • Al ajustar los controles, se puede comparar de inmediato cómo la configuración flex afecta la disposición en pantalla
  • El ejemplo básico comienza con una combinación de display: flex, flex-direction: row, justify-content: space-around, align-items: flex-start y flex-wrap: nowrap
  • Los elementos del 1 al 5 en la pantalla se mueven según los cambios de configuración, lo que facilita ver el resultado del layout
  • Se puede copiar el código CSS generado, lo que ayuda a trasladar la configuración probada al código real

Herramienta para experimentar con Flexbox en tiempo real

  • CSS Flexbox Playground es una herramienta interactiva para aprender y experimentar con propiedades de Flexbox
  • Al ajustar los controles, los cambios en el layout se reflejan en tiempo real
  • Se puede copiar el código CSS generado como resultado del experimento

Configuración del ejemplo básico

  • La configuración de ejemplo de .container usa el siguiente CSS
.container {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}
  • En pantalla se muestran los elementos 1, 2, 3, 4 y 5, para poder verificar el resultado de la disposición con Flexbox

1 comentarios

 
GN⁺ 2025-01-06
Opiniones en Hacker News
  • Flexbox en sí es simple y tiene sentido, pero los nombres de las propiedades y los valores se definieron al estilo comité, así que no son intuitivos
    Uno termina intentando recordar cuál es cuál entre justify-content y align-items, se rinde y empieza a cambiar cosas al azar hasta que funcione

    • Siempre termino consultando la guía de Flexbox de CSS-Tricks https://css-tricks.com/snippets/css/a-guide-to-flexbox/
      También hay una guía similar para Grid, y esa también es excelente
    • En Flexbox es muy difícil memorizar qué configuración se necesita para cajas dentro de cajas, si el contenido va a llenar la caja o si la caja va a envolver el contenido
      Es especialmente importante en una SPA, cuando las cajas deben llenar la pantalla sin desbordarse. Al final uno va poniendo configuraciones nada intuitivas como min-width: 0 por todos lados y, después de tocar algunas cosas más, de algún modo funciona
      Parece que se podrían crear unas cuantas clases CSS que cubran todo esto, pero todavía no encontré una solución que sirva para todos los casos
    • En el inspector CSS de Chrome, si se hace clic en el ícono junto a la regla display: flex, varias propiedades de Flexbox se visualizan con íconos y se pueden configurar directamente con un clic
      En la práctica, cualquier página se convierte en un campo de pruebas
    • Es llamativo que Tailwind haya logrado hacerlo más confuso
      justify-content: center es justify-center, y align-items: center es items-center; no entiendo por qué lo hicieron así
    • justify-content debió haberse llamado main-axis, y align-items, cross-axis
      Cuando uno entiende eso, todo Flexbox se vuelve fácil
  • Ya se mencionó muchas veces, pero he recomendado Flexbox Froggy https://flexboxfroggy.com/ y otras personas también lo aprendieron rápido
    Para aprender CSS Grid, https://cssgridgarden.com/ también es bueno

    • Me gusta la gamificación de cssgridgarden
      Es parecido a https://www.codemonkey.com/, que está más orientado a niños
    • Hay un sitio favorito de Flexbox muy similar al del OP: https://flexbox.tech/
      Para generar código de Bootstrap, https://build.layoutit.com/ es útil, y para CSS Grid está https://grid.layoutit.com/. Lástima que el primero solo soporte hasta Bootstrap 4, no Bootstrap 5
    • Probé flexboxfroggy y, aunque el concepto es bueno y la implementación está bien hecha, la falta de autocompletado de sintaxis molesta bastante
  • Recomiendo mucho la guía de Josh https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/
    Cubre en detalle trampas y tips más avanzados como flex-basis, márgenes automáticos y min-width

    • Fue de lo mejor que leí sobre el tema
      Creía que conocía bastante bien Flexbox y los componentes de Tailwind CSS, pero este artículo satisfizo muy bien esa necesidad de una base teórica
  • Es un buen playground
    Hace unos años hice una guía interactiva con un playground similar al final: https://lik.ai/guides/an-interactive-guide-to-flexbox/
    Me resultó útil de vez en cuando para refrescar la memoria

  • Ya estamos en 2025 y, después de 2 años y 3 tutoriales, todavía no sé usar bien Flexbox
    https://flexboxfroggy.com/ tampoco me ayudó mucho

    • Después de usar Flexbox durante años, me di cuenta de que se parece a enchufar un USB-A
      justify y align siempre quedan al revés en el primer intento
    • No sé por qué es tan difícil de recordar
      Recuerdo durante años todo tipo de cosas, incluidos los layouts con CSS float, pero si no uso Flexbox por unos meses, olvido el 80% y tengo que volver a leer desde cero y pasar tiempo en un playground
      El problema es que hay demasiados nombres de propiedades, y muchas de ellas no son intuitivas o directamente se sienten mal nombradas. Hasta habría dado casi lo mismo usar nombres simbólicos de una o dos letras
    • Conozco flexboxfroggy, pero como prefiero aprender “jugando” antes que leyendo y escribiendo, ese sitio no me resultó útil
      Espero que esta herramienta ayude; si falta algo, estaría bueno que me avisen
  • ¿Por qué habrán llamado a estas propiedades justify-content y align-items?
    ¿No tendrían más sentido main-axis-arrangement y cross-axis-alignment?

    • Seguramente haya una explicación, pero en general hay muchas propiedades de CSS que son confusas y poco intuitivas.
      También pasa con cosas como color, text-align, position: absolute y position: fixed; incluso absolute, técnicamente, sigue siendo relativo.
    • Visto desde el lado de la discusión, esos nombres sirven tanto para Grid como para Flexbox, y también encajan con la convención de justify-items y justify-self, así que hay cierta consistencia.
      Aun así, todavía me confunde con align-content.
    • También es confuso que la forma abreviada de grid-template ponga primero el eje y: y1 / x1 / y2 / x2.
      Encima ni siquiera empieza desde 0, así que siempre se me olvida.
    • No sé si Google se concentró tanto en hacer que los LLM te suelten spoilers de Encanto 2 que se le atrofiaron las capacidades de búsqueda, o si es justo sorprenderse de que todavía no exista un plugin de Tailwind así.
      Un plugin de alias para Tailwind que mapee cross-axis-center a align-items: center y main-axis-between a justify-content: space-between se podría hacer en nada.
    • Nunca me confundió porque uso la regla mnemotécnica de que “en mi idioma, justificar texto es en dirección horizontal”.
      Claro que se puede cambiar, pero el comportamiento por defecto de Flexbox queda cubierto con esa regla.
  • Cuando estaba aprendiendo Flexbox hice una chuleta para consultar las propiedades.
    Puede ser útil para otras personas: https://darekkay.com/flexbox-cheatsheet/

    • Me gusta que el efecto se vea de inmediato sin tener que seleccionar nada, y también que tenga enlaces a MDN.
  • Está bien como chuleta visual rápida, pero creo que al final uno lo incorpora usándolo por todos lados en proyectos.
    La sintaxis suele explicarse bastante por sí sola, pero row y column son la excepción.
    No recuerdo haberme trabado mucho con la mayor parte de Flexbox o Grid, pero sí veo que mucha gente se confunde. Entender el modelo de caja y usar las herramientas de desarrollo de Firefox ayuda muchísimo para aprender el modelo de Flexbox. Visualizan bastante bien el contenedor, y parece que ahora las herramientas de desarrollo de Chrome también hacen algo parecido.
    flexboxfroggy y cssgridgarden también me sirvieron para practicar. Aun así, cada vez que quiero ver la sintaxis abro la chuleta de CSS-Tricks, y jamás acierto en el primer intento si es row o column.

    • Chrome/Edge tienen una buena función que parece no estar en Firefox.
      Se puede alternar rápidamente el modo Flex https://imgur.com/a/17iy1eN
  • Esta herramienta parece demasiado limitada porque solo cubre 4 propiedades del contenedor.
    Las propiedades de los elementos hijos, que son bastante importantes en Flexbox, quedan completamente fuera.

  • Me gustaría que hubiera una colección interesante de ejercicios para practicar layouts con CSS.
    También estaría bueno que incluyera explicaciones y comentarios bien escritos, además de ejercicios de depuración del tipo “por qué este fragmento de código no produce el layout deseado”.
    ChatGPT me resultó bastante útil para depurar problemas de CSS. No siempre acierta, pero por lo general te orienta en la dirección correcta. Aun así, quiero entender más a fondo cómo funciona CSS en la práctica. Ya leí libros y tutoriales, y sé que al final es un conjunto de reglas, pero aplicarlas con precisión es difícil.

    • Yo uso Claude de forma parecida.
      A menudo le pido que corrija el CSS y lo reescriba para lograr la apariencia que quiero, y lo hace mucho más rápido que buscar en la documentación.