Arquitectura de CSS
La hoja de estilos de Autómata está construida bajo el modelo BEM (bloque, elemento, modificador) ya que este modelo mantiene un estándar de nomenclatura de selectores para mejorar la legibilidad del código y facilitar su mantenimiento.
Bloque
Un bloque es un objeto o contexto que contiene elementos dentro. Por ejemplo, en el cuerpo humano, la cabeza podría ser un bloque, ya que contiene otros elementos como cabello, ojos, nariz, boca, etc.
Nota Los bloques pueden ser elementos reutilizables.
Elemento
Un elemento siempre está dentro de un bloque, en su sintaxis, un elemento se precede por el nombre del bloque padre y dos guiones bajos .bloque__elemento Siguiendo con el ejemplo del cuerpo humano, si la cabeza es el bloque, el cabello sería un elemento:
Modificador
Un modificador es para indicar cambios de estilo como el color, forma o tamaño. Siguiendo el ejemplo anterior, si el cabello es un elemento, el color sería un modificador:
Nota Los nombres de los modificadores podrían parecer repetitidos, pero de esa manera evitamos que los estilos puedan tener conflictos entre si.
Ejemplo práctico
En el siguiente ejemplo se muestra un bloque de menú construido bajo la metodología BEM junto con su código HTML y CSS.
Importante Un bloque no debería ser un elemento hijo de otro bloque, recuerda que uno de los objetivos de BEM es que los bloques puedan ser componentes reutilizables para diferentes partes de la aplicación:
Controladores de estilo
Un controlador de estilos es realmente un modificador pero controlado por JS, por eso tiene una sintaxis diferente. Automata utiliza dos tipos de controladores de estilo:
- .is-- indica estados de un elemento o bloque, por ejemplo .is—active ó .is--hidden
- .has-- puede usarse para elementos padre, por ejemplo saber si un bloque contiene submenus .has--submenu
Un controlador de estilos es realmente un modificador pero controlado por JS, por eso tiene una sintaxis diferente. Automata utiliza dos tipos de controladores de estilo:
Alertas
Muestran mensajes de éxito, advertencias, información importante o errores. Para usar este componente, agrega la clase .alert a un elemento <div> y después colocar tu contenido en un <p>
-
Vista previa -
Código
Éste es un alert de ejemplo.
Cerrar
Para crear un botón de cerrar a un Alert, agrega dentro el icono de cerrar con el atributo data close: <icon class="icon--x" data-close="alert"></icon>
-
Vista previa -
Código
Éste es un alert de ejemplo.
Modificadores
Hay varios modificadores de estilo disponibles, solo tienes que agregar una de las siguientes clases para darle una apariencia diferente.
| Clase | Uso |
|---|---|
| .alert--info | Darle información destacada al usuario. |
| .alert--success | Para buenas noticias y mensajes de éxito para el usuario. |
| .alert--warning | Información importante para el usuario. |
| .alert--danger | Advertir al usuario de que algo es riesgoso o peligroso. |
-
Vista previa -
Código
Info! para indicar información adicional.
Success! es para mostrar un mensaje positivo.
Warning! para mostrar una advertencia.
Danger! para mostrar un mensaje de error.
Avatar
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
Tamaños
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
-
Vista previa -
Código
Iniciales
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
-
Vista previa -
Código
Estilos
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
-
Vista previa -
Código
Badges
Para crear un badge, solo declara una etiqueta <span> con la clase .badge y agrega el modificador que necesites, por ejemplo: .badge--primary
Solidos
Hay varios modificadores de color sólido disponibles, solo tienes que agregar una de las siguientes clases a un elemento .badge para darle una apariencia diferente.
| Clase | Uso |
|---|---|
.badge--primary |
Darle información destacada al usuario. |
.badge--secondary |
Darle información destacada al usuario. |
.badge--info |
Darle información destacada al usuario. |
.badge--success |
Para buenas noticias y mensajes de éxito para el usuario. |
.badge--warning |
Información importante para el usuario. |
.badge--danger |
Advertir al usuario de que algo es riesgoso o peligroso. |
-
Vista previa -
Código
Light
Hay varios modificadores de color sólido disponibles, solo tienes que agregar una de las siguientes clases a un elemento .badge para darle una apariencia diferente.
| Clase | Uso |
|---|---|
.badge--primary |
Darle información destacada al usuario. |
.badge--secondary |
Darle información destacada al usuario. |
.badge--info |
Darle información destacada al usuario. |
.badge--success |
Para buenas noticias y mensajes de éxito para el usuario. |
.badge--warning |
Información importante para el usuario. |
.badge--danger |
Advertir al usuario de que algo es riesgoso o peligroso. |
-
Vista previa -
Código
Breakpoints
Autómata usa 4 breakpoints para controlar el comportamiento responsivo de los elementos:
| Variable | Breackpoint | Descripción |
| @widescreen | (min-width: 1281px) | Pantallas de más de 18" |
| @desktop | (min-width: 961px) and (max-width: 1280px) | Pantallas 13" a 18" |
| @tablet | (min-width: 641px) and (max-width: 960px) | Tablets |
| @mobile | (max-width: 640px) | Smartphones |
Existen 4 breakpoints adicionales que son de utilidad en la construcción de templates o nuevos módulos.
| Variable | Breackpoint | Descripción |
| @desktop-down | (max-width: 1280px) | Pantallas de 13" para arriba (desktop y widescreen) |
| @desktop-up | (min-width: 641px) | Pantallas de 13" para abajo (desktop, tablet y mobile) |
| @tablet-down | (max-width: 960px) | Tablet para abajo (tablet y mobile) |
| @tablet-up | (min-width: 641px) | Tablet para arriba (tablet, desktop y widescreen) |
Botones
Para usar este componente, solo agrega la clase .button y un modificador como .button--primary a un elemento <a> o <button>.
Solidos
Hay varios modificadores de color sólido disponibles, solo tienes que agregar una de las siguientes clases a un elemento .button para darle una apariencia diferente.
-
Vista previa -
Código
| Modificador | Uso |
|---|---|
| .button--primary | Acciones primarias. |
| .button--secondary | Acciones secundarias. |
| .button--dark | Uso general. |
| .button--light | Uso general. |
| .button--info | Para mostrar información general. |
| .button--success | Para acciones positivas o monetarias. |
| .button--warning | Para acciones de cuidado. |
| .button--danger | Para acciones delicadas o de advertencia. |
Outline
Hay varios modificadores de tipo Outline disponibles, se reocmienda usarlos principalmente para botones secundarios de las acciones menos importantes. Solo tienes que agregar una de las siguientes clases para darle una apariencia diferente.
-
Vista previa -
Código
| Modificador | Uso |
|---|---|
| .button--primary-outline | Acciones primarias. |
| .button--secondary-outline | Acciones secundarias. |
| .button--dark-outline | Uso general. |
| .button--light-outline | Uso general. |
| .button--info-outline | Para mostrar información general. |
| .button--success-outline | Para acciones positivas o monetarias. |
| .button--warning-outline | Para acciones de cuidado. |
| .button--danger-outline | Para acciones delicadas o de advertencia. |
Light
Hay varios modificadores de tipo light disponibles, se reocmienda usarlos principalmente para botones secundarios de las acciones menos importantes. Solo tienes que agregar una de las siguientes clases para darle una apariencia diferente.
| Modificador | Uso |
|---|---|
| .button--primary-light | Acciones primarias. |
| .button--secondary-light | Acciones secundarias. |
| .button--dark-light | Uso general. |
| .button--info-light | Para mostrar información general. |
| .button--success-light | Para acciones positivas o monetarias. |
| .button--warning-light | Para acciones de cuidado. |
| .button--danger-light | Para acciones delicadas o de advertencia. |
-
Vista previa -
Código
Link
Hay varios modificadores de color sólido disponibles, solo tienes que agregar una de las siguientes clases para darle una apariencia diferente.
| Modificador | Uso |
|---|---|
| .button--primary-link | Acciones primarias. |
| .button--secondary-link | Acciones secundarias. |
| .button--dark-link | Uso general. |
| .button--light-link | Uso general. |
| .button--info-link | Para mostrar información general. |
| .button--success-link | Para acciones positivas o monetarias. |
| .button--warning-link | Para acciones de cuidado. |
| .button--danger-link | Para acciones delicadas o de advertencia. |
-
Vista previa -
Código
Disabled
Es posible deshabilitar cualquier botón sin importar el modificador o estilo personalizado que tenga, solo tienes que agregar el atributo disabled o bien la clase .button--disabled a un elemento <button>
Nota Cuando un botón es deshabilitado no tendrá ningún efecto de puntero.
-
Vista previa -
Código
Tamaños
Existen dos variaciones de tamaño para los botones, grande y pequeño, para usarlas solo tienes que agregar al elemento <button> la clase .button—large ó .button--small
-
Vista previa -
Código
Fluid
Es posible hacer que un botón abarque todo el ancho de su contenedor usando el modificador .button--fluid
-
Vista previa -
Código
Botones agrupados
Es posible crear grupos de botones utilizando el componente .button-group.
-
Vista previa -
Código
Cards
El componente Card se utiliza para contener información en pequeños bloques y lograr un contenido más organizado. Además puedes definir su estilo usando el modificador .card--{color}
| Modificador | Uso |
|---|---|
| .card | El estilo por default con fondo blanco. |
| .card--primary | Estilo de color primario |
| .card--secondary | Estilo de color secundario. |
-
Vista previa -
Código
Card default
Lorem ipsum dolor sit, amet consectetur adipisicing asperiores voluptates quas ullam magnam veniam consectetur eligendi.
Card primary
Lorem ipsum dolor sit, amet consectetur adipisicing asperiores voluptates quas ullam magnam veniam consectetur eligendi.
Card secondary
Lorem ipsum dolor sit, amet consectetur adipisicing asperiores voluptates quas ullam magnam veniam consectetur eligendi.
Header
Un Card pueden contener el elemento .card__header para resaltar el encabezado y tiene que acompañarse siempre del elemento .card__body
-
Vista previa -
Código
Card header
Lorem ipsum dolor sit, amet consectetur adipisicing asperiores voluptates quas ullam magnam veniam consectetur eligendi.
Collapse
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
-
Collapsible default 1 Lorem ipsum dolor sit amet consectetur adipisicing elit. Sunt dolores consequuntur minima dolore accusamus nam! Sequi accusantium numquam consequuntur nihil aliquid nulla, sit recusandae quia aut cum beatae, laborum culpa. -
Collapsible default 2 Lorem ipsum dolor sit amet consectetur adipisicing elit. Sunt dolores consequuntur minima dolore accusamus nam! Sequi accusantium numquam consequuntur nihil aliquid nulla, sit recusandae quia aut cum beatae, laborum culpa. -
Collapsible default 2 Lorem ipsum dolor sit amet consectetur adipisicing elit. Sunt dolores consequuntur minima dolore accusamus nam! Sequi accusantium numquam consequuntur nihil aliquid nulla, sit recusandae quia aut cum beatae, laborum culpa.
-
Collapsible primary 1Lorem ipsum dolor sit amet consectetur adipisicing elit. Sunt dolores consequuntur minima dolore accusamus nam! Sequi accusantium numquam consequuntur nihil aliquid nulla, sit recusandae quia aut cum beatae, laborum culpa.
Columns
.row lorem .columnLorem ipsum dolor sit .widescreen--6 .desktop--6 .tablet--6 .mobile--6 amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
Lorem ipsum dolor .row--auto sit amet consectetur adipisicing elitidem earum recusandae.
Lorem ipsum dolor sit .column--expand amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
Forms
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
Validaciones
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dicta aut facere provident rem ipsam perferendis, excepturi reiciendis consequatur quas! Ea quidem fuga odit aspernatur reiciendis iste ex, sint animi! Soluta?
Grid
Lorem ipsum dolor sit .grid amet consectetur adipisicing elit. Quidem earum recusandae .widescreen--6 .desktop--3 .tablet--2 .mobile--1 possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
List
Para aplicar este componente, agrega la clase .list a un elemento <ul> y opcionalmente puedes agregar un modificador de estilo:
| Modificador | Uso |
|---|---|
| .list--disc | Cambia el color de las viñetas a color primario. |
| .list--circle | Cambia el color de las viñetas a color secundario. |
| .list--dash | Para elementos de listas que indican beneficios o ventajas. |
| .list--square | Para elementos de listas que indican cuidado. |
| .list--decimal | Para elementos de listas que indican peligro. |
-
Vista previa -
Código
- List disc
- List disc
- List disc
Disc
- List circle
- List circle
- List circle
Circle
- List dash
- List dash
- List dash
Dash
- List sauqre
- List sauqre
- List sauqre
Square
- List decimal
- List decimal
- List decimal
Decimal
Colores
Es posible cambiar el color de las viñetas de una lista, solo tienes que usar el modificador .list--{color} en el elemento <ul>
| Modificador | Uso |
|---|---|
| .list--primary | Cambia el color de las viñetas a color primario. |
| .list--secondary | Cambia el color de las viñetas a color secundario. |
| .list--success | Para elementos de listas que indican beneficios o ventajas. |
| .list--warning | Para elementos de listas que indican cuidado. |
| .list--danger | Para elementos de listas que indican peligro. |
-
Vista previa -
Código
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
- List disc
Modales
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorum est, commodi quidem, labore voluptates distinctio, voluptas magnam suscipit velit enim obcaecati similique in sapiente voluptatem sequi reprehenderit possimus! Quas, voluptates.
Modal default
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et cumque, provident optio quibusdam. Blanditiis quidem, magnam eaque ratione reprehenderit soluta labore aliquam, molestias officiis pariatur in tenetur dicta! Autem, qui.
Modal small
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et cumque, provident optio quibusdam. Blanditiis quidem, magnam eaque ratione reprehenderit soluta labore aliquam, molestias officiis pariatur in tenetur dicta! Autem, qui.
Modal large
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et cumque, provident optio quibusdam. Blanditiis quidem, magnam eaque ratione reprehenderit soluta labore aliquam, molestias officiis pariatur in tenetur dicta! Autem, qui.
Abrir modal con botón en HTML
Abrir modal con JS
atmOpenModal('modal-default');
Cerrar modal con JS
atmCloseModal('modal-default');
Progress
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem earum recusandae possimus vero libero odio in voluptatum nesciunt. Unde adipisci recusandae ea cum ipsum laborum vel vitae quod hic corrupti.
Progress animada
Progress sin animar
La función startProcessing() agrega a la clase progress los span necesarios para empezar la animación.
La función endProcessing()endProcessing elimina los span para detener la animación.
startProcessing();
endProcessing();
Por framework ya se utilizan en automático entrando y saliendo del proceso al realizar peticiones con postData. Si es necesario parar antes de tiempo o agregar un procesando, se pueden ejecutar las funciones para mostrar el estado de procesando.
Spinner
El componente Spinner se utiliza para informar al usuario que la aplicación está procesando.
-
Vista previa -
Código
Es posible cargar el Spinner usando JS incrustando la variable app en un contenedor.
$(" .container ").html(app.spinnerHTML);
Tablas
| Variable | Breackpoint | Descripción | Acciones |
| username | $5,657.00 | Pantallas de 13" para arriba (desktop y widescreen) | |
| username | $5,657.00 | Pantallas de 13" para abajo (desktop, tablet y mobile) | |
| username | $5,657.00 | Tablet para abajo (tablet y mobile) | |
| username | $5,657.00 | Tablet para arriba (tablet, desktop y widescreen) |
Toast
El componente Toast se utiliza para enviar al usuario alertas sobre las acciones del sistema que pasan en backend.
Botón de toast
Es posible invocar un Toast mediante un botón, solo tienes que agregarle los siguientes atributos:
| Atributo | Descripción |
|---|---|
| data-action | Siempre debe tener el valor toast |
| data-type | Puedes elegir entre los 4 diferentes tipos: info success warning danger |
| data-text | El texto que va a contener el toast. |
-
Vista previa -
Código
Función JS
Tambíen es posible invocar un Toast mediante la función atmToast() la cual ofrece los siguientes parámetros:
| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
| type | String | Puedes elegir entre los 4 diferentes estilos: info success warning danger | |
| text | String | El texto que va a contener el toast. | |
| time | Integer | 3000 | El timepo en milisegundos que el toast se mostrará en pantalla. |
// Funcion
atmToast(type, text, time);
// Exjempolo
atmToast('success', 'Acción exitosa de ejemplo.', 8000);
Tooltip
Para utilizar el componente Tooltip solo tienes que poner una o varias palabras dentro de una etiqueta span y agregar el atributo data-tooltip con el texto que quieres mostrar.
-
Vista previa -
Código
Éste es un ejemplo de el componente tooltip aplicado.