Botones
Clase base .btn + variantes de color, tamaño, forma y layout. Componibles entre si para cubrir cualquier caso de uso.
Variantes de Color
6 variantes de color que cubren el espectro completo: desde neutros claros y oscuros, pasando por la paleta de marca (primary/secondary), hasta opciones transparentes como outline y link.
| Clase | Fondo | Uso recomendado |
|---|---|---|
.btn-light |
#f5f5f5 (gris claro) | Acciones secundarias sobre fondos oscuros |
.btn-dark |
#404040 (gris oscuro) | Acciones secundarias sobre fondos claros |
.btn-primary |
Primary 500 (OKLCH) | CTA principal, acción más importante |
.btn-secondary |
Secondary 500 (OKLCH) | Acción complementaria al primary |
.btn-outline |
Transparente + borde | Acciones alternativas, menor jerarquía visual |
.btn-link |
Transparente, sin borde | Acciones terciarias, navegación contextual |
Tamaños
5 tamaños controlados via font-size. El padding se hereda proporcionalmente gracias a las unidades em en --btn-py y --btn-px. Cambiar el font-size escala todo el botón automáticamente.
| Clase | Font-size | Uso recomendado |
|---|---|---|
.btn-xs |
0.75rem | Acciones inline, badges interactivos, tablas |
.btn-sm |
0.875rem | Barras de herramientas, formularios compactos |
| (default) | inherit | Uso general, CTAs estándar |
.btn-lg |
1.125rem | CTAs destacados, heroes |
.btn-xl |
1.25rem | Impacto máximo, landing pages |
Formas
Modificadores de forma que alteran el border-radius o el aspecto del botón. Combinables con cualquier variante de color y tamaño.
| Clase | Border-radius | Efecto |
|---|---|---|
| (default) | var(--radius-sm) | Esquinas ligeramente redondeadas |
.btn-rounded |
9999px | Pastilla (pill shape) |
.btn-circle |
9999px + aspect-ratio: 1 | Circulo perfecto, ideal para iconos |
.btn-wide |
(no cambia) | Padding horizontal x1.5, más espacio lateral |
Ancho Completo
.btn-block expande el botón al 100% del ancho de su contenedor. Util para formularios, modales o layouts de una sola columna donde el botón debe ocupar todo el espacio disponible.
Combinaciones
Todas las clases son componibles: color + tamaño + forma se pueden mezclar libremente. El orden de las clases no importa.
.btn base siempre es obligatoria. Las variantes de color, tamaño y forma son opcionales y aditivas.
Estilo Automático de Submit
Los botones button[type="submit"] reciben estilo primary automáticamente sin necesidad de clases adicionales. Esto garantiza que todo formulario tenga un CTA visible por defecto.
font-weight: 400 (regular) en lugar del 600 de .btn. Si necesitas el peso semibold, agrega la clase .btn explicitamente.
Variables CSS
Todas las propiedades del sistema de botones son personalizables via CSS custom properties en :root. Modificalas para adaptar los botones al branding de tu proyecto sin tocar el CSS del componente.
| Variable | Default | Descripción |
|---|---|---|
--btn-py |
0.6em | Padding vertical. En em para escalar con el font-size |
--btn-px |
1.75em | Padding horizontal. En em para escalar con el font-size |
--btn-primary-color |
#f5f5f5 | Color de texto del botón primary |
--btn-secondary-color |
#f5f5f5 | Color de texto del botón secondary |
--btn-outline-bg |
transparent | Color de fondo del botón outline |
--btn-outline-border |
currentColor | Color del borde del botón outline |
--btn-outline-color |
var(--text-primary) | Color de texto del botón outline |
em para el padding es clave: al cambiar el tamaño con .btn-sm o .btn-lg, el padding escala proporcionalmente sin necesidad de redefinirlo.