Saltar al contenido
El Muestrario

componente · @solu30/ui-kit/navigation

MobileTabNavigation

Tira de pestañas con scroll horizontal para móvil, que centra sola la pestaña activa.

Seguir leyendo — 3 párrafos más

MobileTabNavigation provides horizontal scrollable tabs for mobile navigation.

Features:

  • Horizontal scroll with snap points
  • Touch-friendly targets (>=44px)
  • Scroll shadows when content overflows
  • Auto-centers active tab
  • Badge support with pulse animation
  • WCAG 2.1 accessible (role="tablist", keyboard nav)

Theming via CSS variables:

  • --ui-accent: active tab color
  • --ui-bg-raised: container background
  • --ui-border: border color
  • --ui-content-primary: text color
  • --ui-content-muted: inactive text color

3 sitios de import en 3 de 15 verticales — un archivo que la importa cuenta una vez, monte una instancia o veinte.

  • cmp-packages
  • elliot
  • gestorsalon

La pieza, con lugar de pantalla

Cargando el espécimen…

Cómo se usa

import { MobileTabNavigation } from '@solu30/ui-kit/navigation'

Props

6 props declaradas en los tipos de la versión instalada.
PropRequeridaTipoQué hace
itemssíMobileTabItem<T>[]Tab items to render
activeItemsíTCurrently active tab id
onItemChangesí(item: T) => voidCallback when a tab is selected
classNameopcionalstring—
leadingActionopcionalReact__default.ReactNodeContent rendered to the left of the tab strip, separated by a vertical divider. Intended for a back-button or similar leading action.
hapticopcionalbooleanWhen `true`, calls `navigator.vibrate(10)` on tab change (best-effort — silently ignored on browsers/devices that do not support the Vibration API).

Ejemplo del paquete

// La barra de abajo en móvil. `items[].id` es lo que llega a onItemChange.
<MobileTabNavigation
  items={[{ id: 'hoy', label: 'Hoy', icon: CalendarDays, badge: 3 },
          { id: 'clientes', label: 'Clientes', icon: Users }]}
  activeItem={pestania}
  onItemChange={setPestania}
/>

Del @example del JSDoc de @solu30/ui-kit, sin editar: son 65 de los 541 símbolos. La sangría y los renglones en blanco son los del paquete.