Tema
Tabs, breadcrumbs y más
Además de la barra principal, un sitio usa otros tipos de navegación: pestañas para cambiar de contenido sin recargar, migas de pan para saber dónde estás, paginación para listados largos y menús radiales para acciones rápidas. Todos están listos para copiar.
Cómo usar esta página
Cada demo incluye pestañas HTML / CSS / JS, botón Copiar y enlace al Playground. Personaliza los colores desde las variables de :root.
Tabs (pestañas)
Cuándo usarlo: para mostrar contenido relacionado en un espacio reducido: detalles de un producto (descripción, especificaciones, opiniones), ajustes de una cuenta o planes de precios. No las uses si el usuario necesita comparar el contenido de varias pestañas a la vez.
Tabs accesibles
Cómo personalizarlo
--color-primariocolorea la pestaña activa y su línea inferior;--radioel redondeo del contenedor.- Para añadir una pestaña: un
<button role="tab">nuevo conaria-controlsapuntando a un<div role="tabpanel" hidden>con el mismoid. - Usa las flechas ← →, Inicio y Fin para moverte: sigue el patrón oficial de WAI-ARIA, donde sólo la pestaña activa está en el orden de Tab (
tabindex="0"). - ¿Prefieres pestañas tipo "segmento" (fondo relleno)?
css
[role="tab"][aria-selected="true"] { background: var(--color-primario); color: #fff; }
[role="tab"]::after { display: none; }1
2
2
Breadcrumbs (migas de pan)
Cuándo usarlo: en sitios con jerarquía profunda (tiendas, documentación, blogs con categorías). Le dicen al usuario dónde está y le permiten subir de nivel con un clic. Además, Google las usa para mostrar la ruta en los resultados de búsqueda.
Breadcrumbs en 4 estilos
Cómo personalizarlo
- En el estilo clásico, cambia el separador con la variable
--separador(por ejemplo"›","→"o"•"). - El estilo con chevrons usa una máscara SVG, así que el icono toma el color de
--color-suaveautomáticamente. - El estilo de flechas es ideal para pasos de un proceso (checkout); se dibuja con
clip-path. - Marca siempre la página actual con
aria-current="page"y envuelve todo en un<nav aria-label="...">con una lista ordenada<ol>.
css
:root { --separador: "›"; }1
Paginación
Cuándo usarlo: en listados largos (productos, artículos, resultados de búsqueda, tablas de un dashboard) cuando quieres que el usuario pueda saltar a una página concreta. Si el contenido es un "feed" casual, considera mejor un botón de "Cargar más".
Paginación funcional
Cómo personalizarlo
- Cambia
TOTALpor el número real de páginas (normalmente lo calcula tu backend:Math.ceil(totalElementos / porPagina)). - La función
rango()decide qué números mostrar y dónde poner los puntos suspensivos; así nunca hay demasiados botones. - Sustituye el bloque que pinta
.contenidopor unfetcha tu API con?page=${actual}. --tamcontrola el tamaño de los botones; en móvil se reduce y se ocultan los textos "Anterior/Siguiente".
css
/* Paginación redonda */
.paginacion button { border-radius: 50%; }1
2
2
Menú radial (circular)
Cuándo usarlo: como botón de acción flotante (FAB) en apps móviles, juegos, herramientas creativas o portafolios llamativos. Es vistoso, pero úsalo sólo para 4–8 acciones rápidas, nunca como navegación principal.
Cómo personalizarlo
--radio-circuloes la distancia de las opciones al centro;--tam-itemy--tam-botonsus tamaños.- Cada opción define su posición con
--anguloen el atributostyle. Para un abanico de medio círculo (ideal en una esquina), usa ángulos de-180dega-90deg. --icontrola el retraso escalonado de la animación; súmale 1 en cada opción nueva.- La curva
cubic-bezier(.34, 1.56, .64, 1)da el efecto de "rebote". Cámbiala poreasesi lo quieres más sobrio.
css
/* Colocarlo como botón flotante en la esquina inferior derecha */
.radial { position: fixed; right: 32px; bottom: 32px; }1
2
2
Buena práctica
Elige el componente según la tarea: tabs para alternar vistas del mismo tema, breadcrumbs para jerarquías, paginación para listados y menú radial sólo para acciones rápidas. Y en todos, indica el estado actual con atributos ARIA (aria-selected, aria-current, aria-expanded) en lugar de depender sólo del color.