Cómo crear prototipos de aplicaciones rápidamente con una cuadrícula CSS y variables CSS

Tanto la malla CSS como las variables CSS son herramientas poderosas para desarrolladores frontend. El primero hace que sea mucho más fácil crear diseños de sitios web, mientras que el segundo ofrece todo el poder de las hojas de estilo variables.

imagen

En este artículo, le mostraré cómo usar ambas herramientas para crear rápidamente prototipos de diseño de aplicaciones.

Skillbox recomienda: curso en línea de UX Analytics
Le recordamos: para todos los lectores de Habr: un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox de acuerdo con el código promocional de Habr.

Personaliza el contenedor de malla


Nuestras aplicaciones funcionarán con CSS-grid, un módulo que le permite crear diseños rápidamente y administrarlos. Esto es útil, en particular, si está trabajando con la propiedad grid-template-areas. (A continuación le mostraré cómo usarlo).

Evaluemos la apariencia de nuestra aplicación: este es un chat:

imagen

Si abrimos las herramientas de desarrollador en Chrome, podemos ver qué es esa cuadrícula. Como puede ver, hay seis columnas y seis filas.

imagen

Aquí está el código para crear una cuadrícula de este tipo:

.app { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; } 

Primero, creamos un contenedor para ello. Luego decimos que nos gustaría obtener seis columnas en la salida, y cada una de ellas debería tener 1 fr de ancho. Esto significa parte del espacio libre. Por lo tanto, dividimos el espacio libre de la pantalla en seis partes iguales de ancho.

Pero con las líneas de una manera diferente. La altura de cada una de las primeras cinco líneas también es 1 fr, pero limitamos la altura de la última a 60px en lugar de 1fr.

 grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; 

Bueno, ahora que hemos marcado la cuadrícula, pasamos a la siguiente parte: la colocación de los elementos.

Colocación de elementos de cuadrícula


Cada "heredero" directo del contenedor de cuadrícula es un elemento de cuadrícula. En total, tenemos cuatro elementos, cada uno de los cuales se coloca en un rectángulo, como se muestra en la captura de pantalla a continuación.

imagen

Para que los elementos se coloquen exactamente como se muestra arriba, necesitamos usar la propiedad grid-template-areas.

 .app { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; grid-template-areas: "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "nsssss"; } 

Cada una de las líneas de código representa una línea de la tabla y cada carácter es una celda de cuadrícula. Los símbolos están semánticamente relacionados con los elementos de la cuadrícula que representan (lista de salas, lista de mensajes, nuevo formulario de sala, formulario de mensaje).

Ahora, para colocar nuestros elementos de acuerdo con las áreas de plantilla de cuadrícula, debemos usar los símbolos con sus valores de área de cuadrícula. Así es como:

 .new-room-form { grid-area: n; } .rooms-list { grid-area: r; } .message-list { grid-area: m; } .send-message-form { grid-area: s; } 

Por supuesto, estas clases también se aplican a nuestros elementos de cuadrícula en su HTML. Sin embargo, no hablaré sobre esto en detalle, ya que, muy probablemente, usted sabe cómo agregar clases a las etiquetas HTML.

A partir de este momento comenzamos a experimentar con el diseño. Podemos cambiar mucho cambiando los valores de grid-template-areas.

imagen

Como se muestra en la ilustración anterior, trato de usar cuatro diseños diferentes cambiando la posición del elemento Lista de habitaciones y los nuevos elementos de forma de habitación. Lo único que estoy cambiando es la propiedad grid-template-areas.

A continuación hay cuatro de estas opciones. Intente hacer coincidir cada uno de ellos con el diseño correspondiente.

 grid-template-areas: "nmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rsssss"; grid-template-areas: "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "nsssss"; grid-template-areas: "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "sssssn"; grid-template-areas: "mmmmmn" "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "sssssr"; 

Cambiar color usando variables CSS


Bueno, ahora intentaremos cambiar el color de la aplicación usando variables CSS. Si no has trabajado con ellos hasta ahora, veamos cuáles son.

imagen

imagen

El método que se muestra en la imagen inferior facilita la lectura del código, porque, por así decirlo, el nombre de la variable es más semántico que hexadecimal. Además, el segundo método ofrece una gran flexibilidad para cambiar el código.

Veamos qué se puede hacer con nuestra aplicación usando diferentes valores de variables.

 :root { --main-color: #5ea3d0; --secondary-color: white; --main-text-color: #3e5869; --secondary-text-color: #b0c7d6; --new-room-form: #d9e1e8; --send-message-form: #F5F5F5; } 

Se repiten 17 veces en nuestro diseño. Pero no verificaremos todas las ubicaciones, echemos un vistazo a cómo funciona el color principal con respecto al color del mensaje y el panel lateral izquierdo.

imagen

Así es como lo superamos en código.

 .rooms-list { background: var(--main-color); } .message-text { background: var(--main-color); } 

Las variables son buenas porque podemos editar su declaración, y esto será suficiente para cambiar toda la aplicación. Un ejemplo:

 :root { --main-color: red; } 

Y aquí está el resultado:

imagen

Simplemente podemos cambiar la declaración de variables en: root, lo que nos permite jugar con la apariencia de la aplicación.

imagen

Reemplacemos algunos colores en: root usando la paleta de arriba.

 :root { --main-color: #5ea3d0; --secondary-color: white; --main-text-color: #3e5869; --secondary-text-color: #b0c7d6; --new-room-form: #d9e1e8; --send-message-form: #F5F5F5; } 

El resultado es un aspecto de chat completamente diferente:

imagen

Combina la cuadrícula y las variables.


Si combinamos todo esto, tendremos la oportunidad de cambiar completamente el diseño de nuestro chat. Hagámoslo

imagen

imagen

Así es como se ve la versión inicial en comparación con la versión final. Como puede ver, cambié tanto la paleta como el diseño. La única diferencia entre los dos ejemplos son las 11 líneas de código que destaqué aquí.

 :root { --main-color: #ff66ff; --secondary-color: #fbd8fb; --main-text-color: #3e5869; --secondary-text-color: #d8b2ff; --new-room-form: #ffb2ff; --send-message-form: #d8b2ff;x } .app { display: grid; grid-template-columns: repeat(6, 1fr); grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; grid-template-areas: "mmmmrr" "mmmmrr" "mmmmrr" "mmmmrr" "mmmmnn" "ffffff"; } 

Realmente genial?

Skillbox recomienda:

Source: https://habr.com/ru/post/es418067/


All Articles