Capas CSS
Organiza los estilos con CSS Layers para un control preciso de la cascada sin necesidad de !important.
Que son las capas CSS
Las capas CSS son una funcionalidad moderna del lenguaje que permite organizar los estilos en grupos con un orden de prioridad explicito. Se definen mediante la regla @layer y resuelven uno de los problemas mas antiguos del desarrollo web: los conflictos de especificidad en la cascada.
Sin capas, la unica forma de garantizar que un estilo prevalezca sobre otro es aumentar la especificidad del selector o recurrir a !important. Con capas, el orden de prioridad queda definido una sola vez y el navegador lo respeta automaticamente.
Ventajas principales
- Control del orden de carga — Se define una sola vez que grupo de estilos tiene prioridad sobre otro, independientemente del orden en que se carguen los archivos.
- Eliminacion de conflictos — Los estilos de una capa nunca sobrescriben accidentalmente los de una capa con mayor prioridad, sin importar la especificidad del selector.
- Sin necesidad de !important — Al tener un orden explicito, no hace falta forzar estilos con
!important. Esto simplifica el mantenimiento y la depuracion. - Mejor organizacion — Cada tipo de estilo (base, componentes, utilidades, sobrescrituras) vive en su propia capa, facilitando la lectura y la colaboracion.
Ejemplo basico
La declaracion global de capas establece el orden de prioridad de menor a mayor:
@layer base, components, utilities, overrides;
base es la capa con menor prioridad y overrides la de mayor. Esto significa que cualquier estilo en overrides prevalecera sobre uno en base, aunque el selector de base sea mas especifico.
Configuracion del orden global
El panel de Capas CSS de FlowKit permite definir el orden global de las capas de tu sitio. Este orden determina la prioridad: las capas declaradas al final tienen mayor prioridad y sus estilos prevaleceran sobre las capas anteriores.
Como funciona la prioridad
Cuando el navegador encuentra dos reglas que afectan al mismo elemento, compara la capa a la que pertenece cada una. La regla que pertenece a la capa con mayor prioridad (mas abajo en la lista) gana, sin importar la especificidad del selector.
/* Menor prioridad → Mayor prioridad */
@layer base,
components,
woocommerce,
utilities,
overrides;
En este ejemplo:
basecontiene los estilos fundamentales del sitio (tipografia, colores, reset).componentsagrupa los estilos de componentes reutilizables (botones, tarjetas, formularios).woocommerceconcentra todos los estilos de la tienda.utilitiesaloja clases de utilidad (margenes, alineacion, visibilidad).overridespermite sobrescribir cualquier estilo anterior sin conflictos.
Lectura de la configuracion guardada
FlowKit almacena el orden de capas en la opcion ft_child_layers de WordPress. Cuando la pagina se carga, el tema lee esa configuracion y genera la declaracion @layer correspondiente en la cabecera del documento. Si la configuracion no existe o esta vacia, no se inyecta ninguna declaracion.
Asignacion de identificadores a capas
Cada capa que definas en el orden global puede envolver uno o mas identificadores CSS registrados en el sitio. Un identificador es el nombre con el que WordPress registra una hoja de estilos (por ejemplo, woocommerce-general o bricks-frontend). Al asignar identificadores a una capa, FlowKit genera automaticamente un bloque @layer que envuelve el CSS de esos identificadores.
Proceso paso a paso
components).@layer en el frontend.Ejemplo practico
Supongamos que asignas el identificador woocommerce-general a la capa woocommerce. FlowKit leera el CSS original de ese identificador y lo envolvera asi:
@layer woocommerce {
/* Contenido original de woocommerce-general.css */
.woocommerce .products {
display: grid;
gap: 1.5rem;
}
.woocommerce .button {
padding: 0.75rem 1.5rem;
border-radius: 4px;
}
/* ... resto de estilos ... */
}
De este modo, todos los estilos de WooCommerce quedan encapsulados en la capa woocommerce. Si mas adelante necesitas sobrescribir algun estilo desde la capa overrides, bastara con una regla simple — sin incrementar la especificidad ni usar !important.
Multiples identificadores en una capa
Puedes asignar varios identificadores a la misma capa. Cada uno se envuelve en su propio bloque @layer con el mismo nombre, y el navegador los fusiona automaticamente:
/* Primer identificador asignado a "components" */
@layer components {
/* estilos de bricks-frontend.css */
}
/* Segundo identificador asignado a "components" */
@layer components {
/* estilos de theme-style.css */
}
Integracion con Tailwind
El sistema de capas CSS funciona de forma completamente independiente de Tailwind y WindPress. No necesitas tener Tailwind instalado para usar capas CSS — la funcionalidad es nativa de CSS y FlowKit la gestiona sin dependencias externas.
Cuando WindPress esta activo
Si tienes WindPress instalado y activo en el sitio, el panel de Capas CSS puede mostrar sugerencias adicionales de nombres de capa basadas en la configuracion de Tailwind. Por ejemplo, puede sugerir nombres como tailwind-base, tailwind-components o tailwind-utilities para que organices los estilos generados por Tailwind dentro de tu estructura de capas.
Estas sugerencias son orientativas — puedes usarlas, modificarlas o ignorarlas segun las necesidades de tu proyecto.
Capas CSS sin Tailwind
Si tu sitio no usa Tailwind ni WindPress, el panel funciona exactamente igual. Las capas CSS son una funcionalidad del navegador, no de un framework. Puedes organizar cualquier hoja de estilos de WordPress, Bricks, WooCommerce o plugins externos dentro de las capas que definas.
| Escenario | Capas CSS | Sugerencias Tailwind |
|---|---|---|
| Sin WindPress ni Tailwind | Disponible | No se muestran |
| Con WindPress activo | Disponible | Se muestran nombres sugeridos |
| Con Tailwind (sin WindPress) | Disponible | No se muestran |