Skip to content

ButtonTuiGroup

Agrupa botones TUI horizontalmente con gap y estilos consistentes.

ButtonTuiGroup

Demo

vue
<ButtonTuiGroup fill="solid" color="secondary" :buttons="[
  { icon: '↖', label: 'Izquierda', onClick: () => {} },
  { icon: '⬆', label: 'Centro', onClick: () => {} },
  { icon: '↗', label: 'Derecha', onClick: () => {} },
]" />

<ButtonTuiGroup fill="outline" color="primary" :gap="0.8" :buttons="[
  { icon: '✕', label: 'Cancelar', onClick: () => {} },
  { icon: '✓', label: 'Aceptar', onClick: () => {} },
]" />

Props

buttons

Array de botones con label, icon, onClick, color y fill opcionales.

vue
<ButtonTuiGroup :buttons="[
  { icon: '↖', label: 'Izq', onClick: () => {} },
  { icon: '↗', label: 'Der', onClick: () => {} },
]" />

fill

Fill global para todos los botones. Puede sobrescribirse por ítem.

vue
<ButtonTuiGroup fill="solid" color="primary" :buttons="[
  { label: 'A', onClick: () => {} },
  { label: 'B', onClick: () => {} },
]" />
<ButtonTuiGroup fill="outline" color="primary" :buttons="[
  { label: 'A', onClick: () => {} },
  { label: 'B', onClick: () => {} },
]" />

color

Color global para todos los botones. Puede sobrescribirse por ítem.

vue
<ButtonTuiGroup fill="solid" color="success" :buttons="[
  { label: 'A', onClick: () => {} },
  { label: 'B', onClick: () => {} },
]" />

gap

Espaciado entre botones (en rem).

vue
<ButtonTuiGroup fill="solid" color="primary" :gap="0.2" :buttons="[
  { label: 'A', onClick: () => {} },
  { label: 'B', onClick: () => {} },
  { label: 'C', onClick: () => {} },
]" />
<ButtonTuiGroup fill="solid" color="primary" :gap="1" :buttons="[
  { label: 'A', onClick: () => {} },
  { label: 'B', onClick: () => {} },
  { label: 'C', onClick: () => {} },
]" />

Tipos

ButtonTuiItem

CampoTipoRequeridoDescripción
labelstringTexto del botón
iconstringIcono o emoji
onClick() => voidCallback al hacer clic
fillFillEstilo de relleno
colorColorColor semántico

API

PropTipoDefaultDescripción
buttonsButtonTuiItem[]Array de botones
fill'solid' | 'outline' | 'clear''solid'Fill global (override por ítem)
color'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark''primary'Color global (override por ítem)
gapnumber0.4Espaciado entre botones (rem)

ButtonTuiItem

PropTipoDescripción
labelstringTexto del botón
iconstringIcono opcional
onClick() => voidCallback al hacer clic
fill'solid' | 'outline' | 'clear'Fill individual (opcional)
color'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark'Color individual (opcional)

Tokens usados

--font-mono, --color-*, --fill-*