Índice da vitrine
Ações
Formulários
Retorno
Conteúdo
Navegação
Collapses, acordeão, árvore e menu suspenso: tudo sobre elementos nativos, com teclado de graça.
Collapses
O details nativo vestido de cartão plano: abre, fecha e é acessível sem uma linha de JS.
O que este componente usa por baixo?
Por que não um accordion com JS?
Posso deixar um item aberto por padrão?
Acordeão
Os mesmos blocos com o atributo name igual: o navegador fecha o aberto ao abrir outro, sem uma linha de JS.
O que difere um acordeão de um collapse?
Preciso de JavaScript para isso?
Posso deixar um aberto no começo?
Árvore
Hierarquia com details aninhados: teclado e estado vêm do disclosure nativo, e a linha-guia desenha os níveis sem imagem.
app/
assets/css/
- main.css
components/
echo/
- Modal.vue
- Button.vue
- layout/
pages/
- index.vue
- componentes/
i18n/locales/
- es.json
- pt-BR.json
- en.json
- shared/
- nuxt.config.ts
Menu suspenso
O menu de página na superfície do tema, com clique fora, Escape, Tab para fora e retorno de foco ao gatilho.
Divisores
A linha que corta a página, com ou sem rótulo. Sem texto sai um hr de verdade, que é o elemento que significa quebra temática; com texto vira um div, porque hr é vazio por definição.
align
style
.es-i--*
vertical
Meio
Direita
Paginação e trilha
A janela de páginas é calculada, e não uma lista inteira: com cem páginas, cem botões seriam cem paradas do Tab antes do conteúdo. A atual leva aria-current, porque cor sozinha não diz onde a pessoa está.
.es-pagination
.es-breadcrumb
Abas
Tablist da ARIA de verdade: setas do teclado percorrem as abas e só a ativa fica no fluxo do Tab. Sem esse foco roving, o Tab pararia em cada aba antes de chegar ao conteúdo.
O painel da primeira aba. O par aba/painel é ligado por aria-controls e aria-labelledby.
O painel da primeira aba. O par aba/painel é ligado por aria-controls e aria-labelledby.
Linha do tempo
Uma lista ordenada, porque a ordem é o conteúdo. O trilho é borda e o marcador é pseudo-elemento: nenhum pixel de imagem.
Componentes novos
Paginação, abas, linha do tempo, gaveta e etiquetas entraram no sistema.
Cartões avançados
Barra, anel e estatística viraram primitivos, e os cartões de painel viraram composição.
Vitrine dividida
A página única virou seis, com menu lateral e uma rota por assunto.
<echo-drawer>
Um dialog nativo posicionado na borda: foco preso, Escape e fundo inerte vêm do elemento. Aqui o clique fora fecha, ao contrário do modal, porque gaveta é navegação e não decisão.