Índice a partir das âncoras da página
<x-ui.sidebar
label="Seções do exemplo"
:items="[
'sidebar' => 'Sidebar',
'video' => 'Video',
'map' => 'Map',
]"
:sticky="false"
class="py-0"
/>
<x-ui.sidebar>
Trilho de índice que acompanha a leitura. Ele gruda abaixo da navbar e marca a seção em que a pessoa está enquanto ela rola.
<x-ui.sidebar
label="Seções do exemplo"
:items="[
'sidebar' => 'Sidebar',
'video' => 'Video',
'map' => 'Map',
]"
:sticky="false"
class="py-0"
/>
<x-ui.sidebar
label="Atalhos"
title="Ir para"
:items="[
['label' => 'Início', 'url' => '/'],
['label' => 'Política de privacidade', 'url' => '/politica-de-privacidade'],
]"
:sticky="false"
class="py-0"
/>
<x-ui.sidebar
label="Seções sem título"
title=""
:items="['video' => 'Video', 'map' => 'Map']"
:sticky="false"
class="py-0"
/>
x-ui.sidebar
| Prop | Padrão | Aceita |
|---|---|---|
| items | [] | |
| label | — obrigatório | |
| title | 'Nesta página' | |
| sticky | true |
As três camadas estão explicadas em Começar aqui. Abaixo, o que este componente expõe a cada uma.
Ui::sidebar()
part()
e
replacePart()
aceitam:
item, base, title e nav.
Nenhum específico: ele usa só cor e espaçamento do Tailwind.
route no lugar de url, igual ao x-ui.menu e pelo mesmo motivo: nome de rota sobrevive a mudança de caminho.items aceita duas formas: mapa de âncora para rótulo (['cookies' => 'Cookies']), que é o que uma página com seções já tem na mão, ou lista de ['label' => ..., 'url' => ...], a mesma forma do config('goognet-ui.menu') e do x-ui.menu.aria-current="location", não page: ele aponta para um lugar dentro desta página, não para outra página.sticky usa --navbar-height, publicado em tempo de execução pelo resources/js/navbar.js — a altura da barra muda conforme o site preencha ou não a faixa de informações. Com um valor fixo, o topo do trilho ficava atrás do cabeçalho.scroll-margin-top de cada seção, não de um número escolhido a dedo. Medido: com 104px fixos contra as seções da política, que param em 112px, toda entrada acendia uma atrás do leitor.scrollend, com um temporizador de reserva para navegador que não dispara esse evento.title="", não :title="null". O Blade compila os padrões de @props como $$__key = $$__key ?? $__value, então passar null de propósito cai de volta no padrão — string vazia é o único valor que limpa um. Vale para qualquer componente da lib.label é obrigatório porque uma página costuma ter várias navegações, e o leitor de tela as lista por esse nome — "navegação, navegação, navegação" não diz qual abrir.