## CSS Custom Properties: @property Es Ahora Universal Las propiedades personalizadas CSS (`--variable`) existen desde 2017, pero `@property` - que agrega tipos, valores por defecto y animación - era experimental hasta hace poco. En 2026, tiene soporte universal y cambia cómo construimos sistemas de diseño. ## Soporte de Navegadores (2026) | Navegador | Soporte | Notas | |-----------|---------|-------| | Chrome 85+ | Completo | Desde Ago 2020 | | Edge 85+ | Completo | Basado en Chromium | | Firefox 128+ | Completo | Desde Julio 2024 | | Safari 15.4+ | Completo | Desde Marzo 2022 | **Soporte global: ~95%** No más polyfills o fallbacks necesarios para la mayoría de audiencias. ## El Cambio de Juego: @property ### Antes: Variables Sin Tipo ```css :root { --primary-color: #3b82f6; --spacing: 16px; --opacity: 0.8; } /* Problemas: 1. No se pueden animar propiedades personalizadas 2. Sin verificación de tipo - cualquier valor aceptado 3. Sin fallback para problemas de herencia */ ``` ### Después: Variables Tipadas con @property ```css @property --primary-color { syntax: ''; inherits: true; initial-value: #3b82f6; } @property --spacing { syntax: ''; inherits: true; initial-value: 16px; } @property --opacity { syntax: ''; inherits: false; initial-value: 0.8; } ``` ## Los Tres Poderes de @property ### 1. Seguridad de Tipos con `syntax` Define qué valores son válidos: ```css @property --angle { syntax: ''; inherits: false; initial-value: 0deg; } @property --percentage { syntax: ''; inherits: false; initial-value: 0%; } @property --size { syntax: ' | '; inherits: true; initial-value: 100%; } /* Los valores inválidos se ignoran */ .element { --angle: red; /* Ignorado - no es un ángulo */ --angle: 45deg; /* Funciona */ } ``` Tipos de syntax disponibles: - `` - px, rem, em, etc. - `` - valores numéricos - `` - valores porcentuales - `` - cualquier valor de color - `` - deg, rad, turn - `