Variables CSS con Claude Code
Aprende sobre variables CSS usando Claude Code. Incluye consejos practicos y ejemplos de codigo.
Gestion eficiente de estilos con variables CSS
Las variables CSS (propiedades personalizadas) permiten gestionar de forma centralizada valores de diseno como colores y tamanos, simplificando drasticamente el cambio de temas y el soporte responsivo. Con Claude Code, puedes avanzar de una vez desde el diseno sistematico de design tokens hasta la implementacion.
Definicion de design tokens
> Define variables CSS como design tokens para usar en todo el proyecto.
> Incluye colores, tipografia, espaciado y sombras.
:root {
/* Paleta de colores */
--color-primary-50: #eff6ff;
--color-primary-100: #dbeafe;
--color-primary-500: #3b82f6;
--color-primary-600: #2563eb;
--color-primary-700: #1d4ed8;
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-500: #6b7280;
--color-gray-800: #1f2937;
--color-gray-900: #111827;
/* Colores semanticos */
--color-bg: var(--color-gray-50);
--color-text: var(--color-gray-900);
--color-text-muted: var(--color-gray-500);
--color-border: var(--color-gray-100);
--color-accent: var(--color-primary-500);
/* Tipografia */
--font-sans: 'Inter', 'Noto Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--font-size-xs: 0.75rem;
--font-size-sm: 0.875rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
--font-size-xl: 1.25rem;
--font-size-2xl: 1.5rem;
--font-size-3xl: 1.875rem;
/* Espaciado */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-6: 1.5rem;
--space-8: 2rem;
--space-12: 3rem;
/* Sombras */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
/* Bordes */
--radius-sm: 0.25rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-full: 9999px;
}
Soporte de modo oscuro
/* Sobrescribir colores semanticos para el tema oscuro */
[data-theme="dark"],
.dark {
--color-bg: var(--color-gray-900);
--color-text: var(--color-gray-50);
--color-text-muted: var(--color-gray-400, #9ca3af);
--color-border: var(--color-gray-800);
--color-accent: var(--color-primary-400, #60a5fa);
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
}
/* Vinculado a la configuracion del sistema operativo */
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--color-bg: var(--color-gray-900);
--color-text: var(--color-gray-50);
--color-text-muted: var(--color-gray-400, #9ca3af);
--color-border: var(--color-gray-800);
}
}
Variables a nivel de componente
/* Componente de boton */
.btn {
--btn-bg: var(--color-accent);
--btn-text: white;
--btn-padding-x: var(--space-4);
--btn-padding-y: var(--space-2);
--btn-radius: var(--radius-md);
background: var(--btn-bg);
color: var(--btn-text);
padding: var(--btn-padding-y) var(--btn-padding-x);
border-radius: var(--btn-radius);
border: none;
cursor: pointer;
transition: opacity 0.2s;
}
.btn:hover {
opacity: 0.9;
}
/* Las variaciones solo sobrescriben variables */
.btn--secondary {
--btn-bg: var(--color-gray-100);
--btn-text: var(--color-text);
}
.btn--outline {
--btn-bg: transparent;
--btn-text: var(--color-accent);
border: 1px solid var(--color-accent);
}
.btn--sm {
--btn-padding-x: var(--space-3);
--btn-padding-y: var(--space-1);
font-size: var(--font-size-sm);
}
Manipulacion desde JavaScript
// Cambio de tema
function setTheme(theme: 'light' | 'dark') {
document.documentElement.setAttribute('data-theme', theme);
localStorage.setItem('theme', theme);
}
// Cambio dinamico del color de acento
function setAccentColor(color: string) {
document.documentElement.style.setProperty('--color-accent', color);
}
// Obtener variable CSS
function getCssVariable(name: string): string {
return getComputedStyle(document.documentElement)
.getPropertyValue(name)
.trim();
}
Variables responsivas
:root {
--content-width: 100%;
--font-size-heading: var(--font-size-2xl);
--section-padding: var(--space-6);
}
@media (width >= 768px) {
:root {
--content-width: 720px;
--font-size-heading: var(--font-size-3xl);
--section-padding: var(--space-8);
}
}
@media (width >= 1024px) {
:root {
--content-width: 960px;
--section-padding: var(--space-12);
}
}
.container {
max-width: var(--content-width);
padding: var(--section-padding);
margin: 0 auto;
}
Resumen
Las variables CSS son una tecnologia esencial para la implementacion de modo oscuro y la construccion de sistemas de diseno. Con Claude Code, puedes implementar eficientemente desde el diseno sistematico de design tokens hasta su aplicacion en componentes. Combinandolo con Flexbox y CSS Grid, puedes construir hojas de estilo altamente mantenibles. Para la especificacion detallada de variables CSS, consulta MDN Web Docs.
Related Posts
10 consejos para triplicar tu productividad con Claude Code
Descubre 10 consejos prácticos para sacar más provecho de Claude Code. Desde estrategias de prompts hasta atajos de flujo de trabajo, estas técnicas mejorarán tu eficiencia desde hoy.
Optimizacion de Canvas/WebGL con Claude Code
Aprende sobre la optimizacion de Canvas/WebGL usando Claude Code. Incluye consejos practicos y ejemplos de codigo.
Implementacion de Markdown con Claude Code
Aprenda sobre la implementacion de Markdown usando Claude Code. Incluye consejos practicos y ejemplos de codigo.