Skip to content

CSS: tray

.instui-tray — Um painel fixado na borda que desliza a partir de qualquer lado; um [popover] ou <dialog> nativo.

Os posicionamentos de início/fim se resolvem em relação a inset-inline (lógico, sensível à direção); a transformação de deslizar é espelhada automaticamente sob um ancestral [dir="rtl"], então nenhuma marcação extra é necessária para layouts da direita-para-a-esquerda.

Source: tray.css

Acessibilidade

A bandeja é uma superfície de diálogo ou popover, então nomeie-a com aria-label ou aria-labelledby, e seu controle de fechar carrega um aria-label (o .instui-close-button no exemplo usa aria-label="Close").

Uso

css
@import "@pantoken/components/components.css";
@import "@pantoken/components/tray.css";

Exemplos

html
<div class="instui-tray -placement-end -size-sm">
  <span class="instui-heading -level-h3">Filters</span>
  <p class="-size-sm">A tray slides in from the start edge and fills the viewport height.</p>
</div>
<button class="instui-button -toggle">toggle tray</button>

Estrutura

text
.instui-tray
  close-button (component, 0..1)
  ‹content›
flowchart TD n0[".instui-tray"]:::cssdoc-root n1(["close-button"]):::cssdoc-component n2[/"‹content›"/]:::cssdoc-slot n0 -.->|0..1| n1 n0 --> n2 click n1 "/api/css/close-button.md" classDef cssdoc-root stroke-width:1px; classDef cssdoc-part stroke-width:1px; classDef cssdoc-slot stroke-width:1px; classDef cssdoc-component stroke-width:1px;

Modificadores

ModificadorDescrição
.-placement-bottomFixar na borda inferior.
.-placement-endFixar na borda final (inline-end).
.-placement-start(padrão) Fixar na borda inicial (inline-start).
.-placement-topFixar na borda superior.
.-size-largeGrande. Aliás em forma longa de -size-lg.
.-size-lgGrande.
.-size-md(padrão) Médio.
.-size-medium(padrão) Médio. Sinônimo em forma longa de -size-md.
.-size-regularDeprecated — use .-size-md.
.-size-smPequeno.
.-size-smallPequeno. Aliás em forma longa de -size-sm.
.-size-x-largeExtra grande. Aliás em forma longa de -size-xl.
.-size-x-smallExtra pequeno. Aliás em forma longa de -size-xs.
.-size-xlExtra grande.
.-size-xsExtra pequeno.

Condições

TipoConsultaDescrição
supports(transition-behavior: allow-discrete)

Tokens consumidos

TokenTipoValor
--instui-component-tray-background-color<color>LightDarklight-dark(#ffffff, #1C222B)
--instui-component-tray-border-color<color>LightDarklight-dark(#E8EAEC, #334450)
--instui-component-tray-border-width<length>0.0625rem
--instui-component-tray-padding<length>1.5rem
--instui-component-tray-width-lg<length>48em
--instui-component-tray-width-md<length>30em
--instui-component-tray-width-sm<length>20em
--instui-component-tray-width-xl<length>62em
--instui-component-tray-width-xs<length>16em
--instui-component-tray-z-index<integer>9999
--instui-elevation-topmostnone | <shadow>#
--tray-slide-x-100%
--tray-slide-y0%

Compatibilidade do navegador

  • Abre com a API nativa [popover] e @starting-style; o slide-in fica atrás de um guardião @supports (transition-behavior: allow-discrete), então navegadores sem ele ainda abrem a bandeja, apenas sem o deslizar.

Subcomponentes

Relacionado

  • modal — O mesmo padrão de sobreposição descartável, centralizado em vez de fixado na borda.
  • popover — A superfície genérica de camada superior sobre a qual isto é construído.