Crea un botón básico y restablece sus estilos iniciales antes de aplicar dimensiones, estilos de texto, colores y borde. El contenido queda centrado mediante flexbox y no puede seleccionarse.
La clave tf recibe un mapa propio con la misma sintaxis del mixin tf; sus opciones no se declaran directamente en button_simple. Los estados :hover, .active y :disabled aceptan fondo, color de texto y borde propios, y time controla la duración de la transición.
Cuando se utiliza aspect_ratio, también debe enviarse width. En ese caso, button_simple anula height y delega la resolución en resolve-size mediante la combinación width + aspect_ratio. Si no se envía una proporción, utiliza width + height.
@mixin button_simple($attr: (
width: 150px,
height: 47px,
aspect_ratio: null,
bg: #FFF,
bg_hover: #000,
bg_active: #000,
bg_disabled: color.adjust(#000, $lightness: 70%),
color: #000,
color_hover: #FFF,
color_active: #FFF,
color_disabled: color.adjust(#000, $lightness: 40%),
border_radius: 0px,
border: 1px solid #000,
border_hover: 1px solid #000,
border_active: 1px solid #000,
border_disabled: 1px solid color.adjust(#000, $lightness: 70%),
padding: 10px,
time: 500ms,
tf: (),
reset: true,
cursor: pointer,
cursor_disabled: not-allowed
));
| Clave | Tipo | Default | Descripción |
|---|---|---|---|
| width | w | Medida | 150px | Define el ancho del botón. |
| height | h | Medida | 47px | Define el alto del botón cuando no se utiliza aspect_ratio. |
| aspect_ratio | ratio | ar | Number | null | Define la relación de aspecto; requiere width y reemplaza height. |
| padding | p | Medida | 10px | Define el espacio interior del botón. |
| bg | Color | #FFF | Define el fondo del estado normal. |
| bg_hover | bgh | Color | #000 | Define el fondo de :hover. |
| bg_active | bga | Color | #000 | Define el fondo de .active. |
| bg_disabled | bgd | Color | color.adjust(#000, $lightness: 70%) | Define el fondo de :disabled y .disabled. |
| color | c | Color | #000 | Define el color del texto en el estado normal. |
| color_hover | ch | Color | #FFF | Define el color del texto en :hover. |
| color_active | ca | Color | #FFF | Define el color del texto en .active. |
| color_disabled | cd | Color | color.adjust(#000, $lightness: 40%) | Define el color del texto en :disabled y .disabled. |
| border_radius | radius | Medida | 0px | Define el radio de borde del botón. |
| border | bd | String | 1px solid #000 | Define el borde del estado normal. |
| border_hover | bdh | String | 1px solid #000 | Define el borde de :hover. |
| border_active | bda | String | 1px solid #000 | Define el borde de .active. |
| border_disabled | bdd | String | 1px solid color.adjust(#000, $lightness: 70%) | Define el borde de :disabled y .disabled. |
| time | t | Tiempo | 500ms | Define la duración de la transición. |
| tf | Map | () | Configura texto y tipografía con las claves y los alias admitidos por el mixin tf. |
| reset | r | Boolean | true | Activa el restablecimiento inicial con all: initial. |
| cursor | cur | String | pointer | Define el cursor del estado normal. |
| cursor_disabled | curd | String | not-allowed | Define el cursor de :disabled y .disabled. |
Este ejemplo compara el resultado por defecto del mixin con una variante configurada mediante map. También muestra el mismo patrón aplicado sobre enlaces con etiqueta a. En cada grupo se muestran los estados normal, .active y deshabilitado para verificar cómo cambian los colores, bordes, dimensiones y estilos de texto.
Modifica los parámetros públicos de button_simple y consulta el resultado, el SCSS y el HTML de la configuración actual. La vista previa permite revisar los estados que admite el mixin.