Botones en CSS
Los botones son los controles de «hazlo» — enviar, guardar, siguiente. CSS puede darles una piel clara y una respuesta honesta al pasar el ratón, pulsar, enfocar o encontrarlos deshabilitados. Mantén el HTML semántico (button o input submit); esta lección trata del aspecto y los estados.
Un kit de botones
📊 Botones de un vistazo
| Pieza | Trabajo diario |
|---|---|
padding + background + border |
Construir una cara de botón sólida y legible |
border-radius |
Suavizar esquinas (o ir a píldora con radio grande) |
:hover / :active |
Mostrar «soy interactivo» y «estoy pulsado» |
:focus-visible |
Mantener visible el anillo de foco de teclado |
:disabled + cursor |
Atenuar botones no disponibles; cursor de mano cuando se puede hacer clic |
Estiliza una .btn compartida (o button) para que las acciones principales coincidan en la página. El padding de campos de texto fue la lección anterior — aquí vestimos los objetivos de clic.
Un botón primario sólido
Empieza con padding cómodo, fondo claro, color de texto legible y border-radius tranquilo. Prefiere font: inherit para que el botón combine con el texto cercano.
Botón primario base
cssbutton,
.btn {
display: inline-block;
padding: 0.65rem 1.1rem;
font: inherit;
font-weight: 600;
color: #fff;
background: #0b5fff;
border: 1px solid #0b5fff;
border-radius: 0.5rem;
cursor: pointer;
}
Hover y active — respuesta honesta
:hover puede oscurecer o aclarar un poco la cara. :active debe sentirse pulsado — un tono más oscuro o un pequeño desplazamiento — no un tema neón totalmente nuevo.
Hover y active
cssbutton:hover,
.btn:hover {
background: #094fd6;
border-color: #094fd6;
}
button:active,
.btn:active {
background: #0844b8;
border-color: #0844b8;
}
Foco que se ve
Nunca quites estilos de foco sin reemplazo. :focus-visible dibuja un anillo claro para teclado y mantiene los clics del ratón tranquilos.
Anillo de foco visible
cssbutton:focus-visible,
.btn:focus-visible {
outline: 2px solid #0b5fff;
outline-offset: 3px;
}
Los botones disabled siguen visibles
Un botón deshabilitado debe parecer no disponible — menor opacidad o colores apagados — y rechazar el cursor de mano. No lo ocultes del diseño.
Tono disabled
cssbutton:disabled,
.btn:disabled {
opacity: 0.55;
cursor: not-allowed;
background: #8aa9e8;
border-color: #8aa9e8;
}
Un hábito tranquilo de botón
Mantén una piel primaria, hover/active claros, un anillo de foco visible y disabled atenuado. Las variantes outline/ghost pueden compartir el mismo padding y radio para que el conjunto se sienta relacionado.
Compañero outline
css.btn-outline {
color: #0b5fff;
background: transparent;
border: 1px solid #0b5fff;
}
.btn-outline:hover {
color: #fff;
background: #0b5fff;
}
Pruébalo tú
- Estiliza un
buttonprimario con padding, fondo, color de texto yborder-radius. - Oscurece
:hovery profundiza:activeun poco. - Añade outline
:focus-visible— nada deoutline: nonedesnudo. - Atenúa un botón
:disabledy poncursor: not-allowed. - Opcional: añade un
.btn-outlinehermano que comparta padding y radio.
Errores comunes
outline: nonesin reemplazo de foco (los usuarios de teclado se pierden)- Padding minúsculo que falla en objetivos táctiles móviles
- Convertir esta lección en estilos de input/textarea (eso fue controles de formulario)
- Un tema neón salvaje en
:hoverque rompe la calma de marca - Estilizar solo etiquetas
ay olvidar losbuttonreales
Resumen
- Padding, fondo, borde y radio construyen una cara de botón sólida
:hovery:activedan respuesta honesta de interacción- Mantén un anillo
:focus-visiblevisible - Atenúa
:disabled; usacursor: pointercuando se pueda hacer clic - Deja el cromo de campos a controles de formulario; aquí vestimos objetivos de clic
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior