Tab

El componente Tab permite la creación de pestañas con contenidos asociados, personalizables en clases CSS y comportamiento.

Ejemplo

Importación

Para importar el componente Tab, se puede hacer desde fenextjs

import { Tab } from "fenextjs";

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
classNamestringno""Clase CSS para el contenedor del componente.
classNameContentHeadstringno""Clase CSS para el contenedor del encabezado del contenido de las pestañas.
classNameHeadstringno""Clase CSS para el encabezado de la pestaña.
classNameHeadItemstringno""Clase CSS para cada elemento del encabezado de la pestaña.
classNameHeadItemActivestringno""Clase CSS para el elemento activo del encabezado de la pestaña.
classNameBodystringno""Clase CSS para el contenedor del cuerpo de las pestañas.
classNameBodyItemstringno""Clase CSS para cada elemento del cuerpo de la pestaña.
itemsTabItemProps[]no[]Lista de objetos que representan las pestañas con encabezado y cuerpo.
defaultTabnumberno0Índice de la pestaña a mostrar por defecto.
activeTabnumbernoundefinedÍndice de la pestaña actualmente activa.
onChange(item: TabItemProps) => voidnoundefinedFunción a ejecutar al cambiar de pestaña.
tabScrollActivebooleannofalseDetermina si las pestañas deben estar en modo de desplazamiento al seleccionar.
validataTabOneHiddenHeaderbooleannotrueOculta el encabezado de las pestañas si solo hay una pestaña presente.
useCountbooleannofalsePermite mostrar un contador de elementos en el encabezado de la pestaña.

Storybook

Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)

Usos

  • Ejemplo básico
<Tab
  items={[
    { id: "tab1", head: "Tab 1", body: "Contenido 1" },
    { id: "tab2", head: "Tab 2", body: "Contenido 2" },
  ]}
/>
  • Con clase personalizada y función de cambio
<Tab
  className="custom-tab"
  onChange={(item) => console.log("Pestaña seleccionada:", item)}
/>
  • Con contador de elementos en el encabezado
<Tab
  items={[
    {
      id: "tab1",
      head: "Tab 1",
      body: "Contenido 1",
      useCount: true,
      count: 3,
      singular: "elemento",
      plural: "elementos",
    },
  ]}
  useCount={true}
/>