Barra de aplicación
En esta página
Una barra de aplicación es un <header> con una fila dentro. Las piezas están separadas para que puedas ordenarlas: appBarNav() para los enlaces, appBarSpacer() para empujar lo que sigue al extremo, y appBarActions() para los botones del final.
Barra básica
appBar({ brand: 'sitelo' },
appBarSpacer(),
appBarActions(
button({ size: 'sm', variant: 'soft' }, 'Iniciar sesión'),
),
)Con navegación
navLink() es el estilo de enlace para una barra; current marca la página activa con aria-current además de con color.
appBar({ brand: 'sitelo' },
appBarNav(
navLink({ href: '#docs', current: true }, 'Documentación'),
navLink({ href: '#ui' }, 'UI'),
navLink({ href: '#examples' }, 'Ejemplos'),
),
appBarSpacer(),
appBarActions(
button({ size: 'sm', variant: 'outline', color: 'neutral' }, 'GitHub'),
button({ size: 'sm' }, 'Empezar'),
),
)Una marca con logotipo
La marca admite cualquier marcado, y enlaza a / salvo que href diga otra cosa.
appBar({
href: '#home',
brand: stack({ direction: 'row', gap: 'sm', inline: true, align: 'center' },
avatar({ name: 'S', size: 'sm', square: true, color: 'primary' }),
'sitelo',
),
},
appBarSpacer(),
appBarActions(chip({ size: 'sm', color: 'neutral' }, 'v2.6.3')),
)Fija y difuminada
sticky fija la barra arriba del contenedor de scroll; blur la vuelve translúcida para que el contenido pase por debajo. Aquí se muestran ambas dentro de una caja con scroll, no en la página misma.
Desplázame — párrafo 1.
Desplázame — párrafo 2.
Desplázame — párrafo 3.
Desplázame — párrafo 4.
Desplázame — párrafo 5.
Desplázame — párrafo 6.
div({ style: 'height: 12rem; overflow: auto; border: 1px solid var(--su-border); border-radius: 0.6rem' },
appBar({ brand: 'sitelo', sticky: true, blur: true },
appBarSpacer(),
appBarActions(chip({ size: 'sm', color: 'primary' }, 'sticky')),
),
container({ size: 'sm', style: 'padding-block: 1rem' },
stack({ gap: 'md' },
...Array.from({ length: 6 }, (unused, index) =>
text({ variant: 'small', tone: 'muted' }, 'Desplázame — párrafo ' + (index + 1) + '.'),
),
),
),
)Con un panel lateral en pantallas pequeñas
El patrón habitual: enlaces en la barra en escritorio y un botón que abre un drawer() en el móvil. El panel es un popover, así que el botón no necesita script.
Navegación
fragment(
appBar({ brand: 'sitelo' },
appBarSpacer(),
appBarActions(
themeToggle(),
iconButton({
label: 'Abrir la navegación',
variant: 'ghost',
color: 'neutral',
popovertarget: 'app-bar-drawer',
icon: icon('menu'),
}),
),
),
drawer({ id: 'app-bar-drawer', title: 'Navegación' },
navLink({ href: '#docs' }, 'Documentación'),
navLink({ href: '#ui' }, 'UI'),
navLink({ href: '#examples' }, 'Ejemplos'),
),
)Props
appBar():
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
brand | Child | — | Contenido del enlace de marca al principio. |
href | string | '/' | Adónde enlaza la marca. |
sticky | boolean | false | Fija la barra arriba al hacer scroll. |
blur | boolean | false | Fondo translúcido con desenfoque detrás. |
as | string | 'header' | Elemento que se renderiza. |
Las piezas:
| Pieza | Props | Por defecto | Descripción |
|---|---|---|---|
appBarNav | — | Un elemento nav que contiene los enlaces. | |
appBarSpacer | — | Hueco flexible; todo lo que vaya después se va al extremo. | |
appBarActions | — | Grupo de botones al final. | |
navLink | href, current, color | — | Un enlace con estilo de barra; current marca la página activa. |