Skip to content

UiButton ​

Botón de acción con variantes, loading spinner y control de ancho.

Props ​

PropTipoDefaultDescripción
type'button' | 'submit' | 'reset''button'Tipo HTML del botón
variant'primary' | 'outline' | 'danger' | 'ghost' | 'link''primary'Variante visual
size'sm' | 'md''md'Tamaño
width'full' | 'auto''full'Ancho: 100% o fit-content
loadingbooleanfalseMuestra spinner y deshabilita interacción
disabledbooleanfalseDeshabilita el botón
iconbooleanfalseModo icono: hace width = height (cuadrado)

Slot ​

SlotDescripción
defaultContenido del botón (texto, icono, o combinación)

Variantes ​

VarianteUso típico
primaryAcción principal (guardar, confirmar, crear)
outlineAcción secundaria (cancelar, editar)
dangerAcción destructiva (eliminar)
ghostAcción terciaria (ver más, link sutil)
linkApariencia de link de texto

Ejemplos ​

vue
<!-- Botón primario de submit -->
<UiButton type="submit" :loading="store.isLoading">
  Guardar Cambios
</UiButton>

<!-- Botón outline para cancelar -->
<UiButton type="button" variant="outline" @click="requestClose">
  Cancelar
</UiButton>

<!-- Botón de ancho automático con ícono -->
<UiButton v-permission="Permissions.USERS.CREATE" @click="openAddModal" width="auto">
  <IconPlus :size="16" /> Nuevo Miembro
</UiButton>

<!-- Botón solo ícono (cuadrado) -->
<UiButton icon variant="ghost" @click="copyToClipboard">
  <IconCopy :size="16" />
</UiButton>

<!-- Botón peligroso -->
<UiButton variant="danger" @click="handleDelete">
  Eliminar
</UiButton>

Accesibilidad ​

  • Altura mínima de 44px en dispositivos touch (WCAG 2.5.5)
  • disabled aplica tanto visual como funcionalmente
  • El estado loading añade aria-busy="true" implícitamente

Documentación de Kaleo — plataforma SaaS multi-tenant