Regla-At
========

Una **regla-at** es una declaración CSS que comienza con el símbolo arroba, '@' (U+0040 COMMERCIAL AT), seguido por un identificador, e incluye todo el contenido hasta el siguiente punto y coma, ';' (U+003B SEMICOLON), o el siguiente bloque CSS, lo que sea primero.

Hay varias reglas-at, designadas por sus identificadores, cada una con sintaxis distinta:

* `@charset` — Define el conjunto de caracteres usado por la hoja de estilos.
* `@import` — Indica al motor de CSS que incluya una hoja de estilos externa.
* `@namespace` — Indica al motor de CSS que todo el contenido usa como prefijo un espacio de nombres XML.
* ***Reglas-at anidadas*** — Un subconjunto de declaraciones anidadas, que pueden ser usadas como declaraciones de estilos, así como grupos de reglas condicionadas internas:
    + `@media` — Un grupo de reglas condicional que aplicará su contenido si el dispositivo cumple los criterios de las condiciones definidas usando un *media query*.
    + `@supports` 
    Experimental
     — Un grupo de reglas condicional que aplicará su contenido si el navegador cumple los criterios de la condición dada.
    + `@document` (en-US) 
    Experimental
     — Un grupo de reglas condicionadas que aplicará su contenido si el documento donde se aplica la hoja de estilos cumple los criterios de la condición dada. *(diferida al Nivel 4 de la Especificación CSS)*
    + `@page` — Describe los cambios en la disposición de la página que serán aplicados al imprimir el documento.
    + `@font-face` — Describe la configuración de fuentes externas que se descargarán.
    + `@keyframes` 
    Experimental
     — Describe la configuración de pasos intermedios en una secuencia de animación CSS.
    + `@counter-style` — Define estilos de contador específicos que no son parte de los conjuntos de estilos predeterminados. *(en estado de Recomendación Candidata, pero sólo implementada en Gekko al momento de esta publicación)*
    + `@font-feature-values` (junto con `@swash`, `@ornaments`, `@annotation`, `@stylistic`, `@styleset` y `@character-variant`)
     — Define nombres comunes para la propiedad `font-variant-alternates`. *(en estado de Recomendación Candidata, pero sólo implementada en Gekko al momento de esta publicación)*
Grupos de Reglas Condicionales
------------------------------

Así como los valores de las propiedades, cada regla-at tiene sintaxis propia. Sin embargo, muchas de esas reglas pueden ser agrupadas en categorías especiales, llamadas **conditional group rules**. Estas declaraciones comparten sintáxis común y cada una puede incluir *nested statements*—ya sean *conjuntos de reglas* o *reglas-at anidadas*. Además, pueden transmitir un significado semántico común—todas incluyen algun tipo de condición, que devuelve un resultado que puede ser **verdadero** o **falso**. Si el valor de la condición resulta **verdadero**, todas las declaraciones del grupo serán aplicadas.

Los grupos de reglas condicionales están definidos en CSS Conditionals Level 3 y son:

* `@media`,
* `@supports`,
* `@document` (en-US). *(diferida al Nivel 4 de la Especificación CSS)*

Como cada grupo de condición puede incluir también declaraciones anidadas, puede haber un número de anidaciones ilimitado.

Especificaciones
----------------

| Specification |
| --- |
| CSS Conditional Rules Module Level 3  |
| Compatibility Standard # css-at-rules |

Véase también
-------------

* CSS Reference
* CSS Key Concepts: CSS syntax, at-rule, comments, specificity and inheritance, the box, layout modes and visual formatting models (en-US), and margin collapsing, or the initial, computed, resolved, specified, used (en-US), and actual values. Definitions of value syntax, shorthand properties and replaced elements.