Pular para o conteúdo

Buscar no Feitio

↵ abre o primeiro↑↓ escolheEsc fecha

AppShell

O layout de regiões de um produto. Nasce no mobile: cabeçalho em cima, conteúdo embaixo, navegação num Drawer; na tela larga, a gaveta vira a coluna do lado.

Nesta página

Playground

Produto

Agendamentos

Lembrete 1: toda semana, 8h.

Lembrete 2: toda semana, 9h.

Lembrete 3: toda semana, 10h.

Lembrete 4: toda semana, 11h.

Lembrete 5: toda semana, 12h.

Lembrete 6: toda semana, 13h.

Lembrete 7: toda semana, 14h.

Lembrete 8: toda semana, 15h.

Lembrete 9: toda semana, 16h.

Lembrete 10: toda semana, 17h.

Topo
Quem entrou
Fundo
HTML
<div class="feitio-app-frame" style="block-size: 22rem; inline-size: min(100%, 24rem); overflow-y: auto; border: var(--feitio-border-width) solid var(--feitio-color-line)"><div class="feitio-app"><header class="feitio-app-header" data-hide-on-scroll><a class="brand" href="#pg-app-content">Produto</a><button type="button" class="feitio-button menu" data-size="small" popovertarget="pg-app" aria-controls="pg-app">Menu<svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-menu"></use></svg></button></header><nav class="feitio-drawer feitio-app-nav" id="pg-app" popover aria-label="Menu"><div class="drawer-header"><h2>Menu</h2><button type="button" class="feitio-button close" data-size="small" popovertarget="pg-app" popovertargetaction="hide"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-close"></use></svg>Fechar</button></div><div class="drawer-body"><nav class="feitio-nav"><div class="group"><p class="group-title">Trabalho</p><ul><li><a href="#playground" aria-current="page"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-calendar"></use></svg>Agendamentos</a></li><li><a href="#playground"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-task"></use></svg>Tarefas</a></li></ul></div><div class="group"><p class="group-title">Produto</p><ul><li><a href="#playground"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-sliders"></use></svg>Ajustes</a></li></ul></div></nav></div></nav><div class="feitio-app-main" id="pg-app-content" tabindex="-1"><div style="padding: var(--feitio-space-4)"><h3>Agendamentos</h3><p>Lembrete 1: toda semana, 8h.</p><p>Lembrete 2: toda semana, 9h.</p><p>Lembrete 3: toda semana, 10h.</p><p>Lembrete 4: toda semana, 11h.</p><p>Lembrete 5: toda semana, 12h.</p><p>Lembrete 6: toda semana, 13h.</p><p>Lembrete 7: toda semana, 14h.</p><p>Lembrete 8: toda semana, 15h.</p><p>Lembrete 9: toda semana, 16h.</p><p>Lembrete 10: toda semana, 17h.</p></div><span class="feitio-scroll-fade" aria-hidden="true"></span><a class="feitio-button feitio-back-to-top" data-size="small" href="#pg-app-content"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-chevron-down"></use></svg>Topo</a></div></div></div>

Quando usar

Quando não usar

Exemplos

Produto

No mobile

Role dentro da moldura e toque em Menu: a gaveta entra pela direita, com a conta e o "Sair" no rodapé dela. No fim do conteúdo, o ScrollFade e o BackToTop.

Mostrar código
HTML
<div class="feitio-app-frame">
  <div class="feitio-app">
    <header class="feitio-app-header" data-hide-on-scroll>
      <a class="brand" href="/">Produto</a>
      <button type="button" class="feitio-button menu" data-size="small" popovertarget="menu">Menu…</button>
    </header>
    <nav class="feitio-drawer feitio-app-nav" id="menu" popover aria-label="Principal">…</nav>
    <main class="feitio-app-main" id="conteudo" tabindex="-1">
      …
      <span class="feitio-scroll-fade" aria-hidden="true"></span>
      <a class="feitio-button feitio-back-to-top" data-size="small" href="#conteudo">…Topo</a>
    </main>
  </div>
</div>
Produto

Na tela larga

A partir de 64rem de moldura, a gaveta vira a coluna do lado, com o rodapé dela embaixo; o Menu some. O exemplo está reduzido pela metade.

Mostrar código
HTML
<!-- o mesmo HTML: a moldura mede a própria largura -->

As regiões

RegiãoO que vai
brandO nome do produto, levando ao início. Obrigatória.
actionsOpcional, no máximo duas peças usadas toda hora. Nunca a conta nem o "Sair".
menuO botão que abre a gaveta, por último, à direita. Some na tela larga.
navUma Nav, dentro de um Drawer no mobile.
nav-footerOpcional: quem está dentro, o "Sair", a versão.
mainA tela em si, com a tarefa principal primeiro. Traz o ScrollFade e o BackToTop.

Anatomia

ProdutoMenu

Conteúdo

  1. brand: leva ao início.
  2. actions, opcional: o que se usa toda hora.
  3. menu: abre a gaveta, à direita, do lado do polegar.
  4. main: a tela em si.

Estados

Bons e maus padrões

Faça assim

A marca e o Menu no cabeçalho; a conta e o "Sair" no rodapé da gaveta.

O que se usa toda hora fica à mão; o resto, guardado.

Não faça

O "Sair" fixo no cabeçalho, ao lado do Menu, em todas as telas.

O lugar mais nobre da tela com a ação menos usada.

Acessibilidade

Atributos

AtributoValoresPara quê
class="feitio-app-frame"em voltaMede a própria largura e escolhe a forma.
class="feitio-app"obrigatórioO grid das regiões.
data-hide-on-scrollno cabeçalhoSome ao rolar para baixo, no mobile.
class="feitio-drawer feitio-app-nav"com popoverGaveta no mobile, coluna na tela larga.
Topo