Skip to content

CSS: tray

.instui-tray — An edge-pinned panel that slides in from any side; a native [popover] or <dialog>.

Les placements de début/fin se résolvent par rapport à inset-inline (logique, sensible à la direction); la transformation du glissement entrant se reflète automatiquement sous un ancêtre [dir="rtl"], donc aucun balisage supplémentaire n'est nécessaire pour les mises en page de droite à gauche.

Source: tray.css

Accessibilité

Le tiroir est une surface de dialogue ou de popover, donc nommez‑le avec aria-label ou aria-labelledby, et son contrôle de fermeture porte un aria-label (le .instui-close-button dans l'exemple utilise aria-label="Close").

Utilisation

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

Exemples

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>

Structure

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;

Modificateurs

ModificateurDescription
.-placement-bottomÉpingler au bord inférieur.
.-placement-endÉpingler au bord de fin (inline-end).
.-placement-start(par défaut) Épingler au bord de début (inline-start).
.-placement-topÉpingler au bord supérieur.
.-size-largeLarge. Alias long de -size-lg.
.-size-lgGrand.
.-size-md(par défaut) Moyen.
.-size-medium(par défaut) Moyen. Alias en forme longue de -size-md.
.-size-regularObsolète — use .-size-md.
.-size-smPetit.
.-size-smallPetit. Alias long de -size-sm.
.-size-x-largeExtra large. Alias long de -size-xl.
.-size-x-smallExtra small. Alias long de -size-xs.
.-size-xlTrès grand.
.-size-xsTrès petit.

Conditions

TypeRequêteDescription
supports(transition-behavior: allow-discrete)

Tokens consommés

TokenTypeValeur
--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%

Compatibilité des navigateurs

  • S'ouvre avec l'API native [popover] et @starting-style; le glissement entrant se place derrière une protection @supports (transition-behavior: allow-discrete), donc les navigateurs sans cette protection ouvrent quand même le tiroir, simplement sans l'effet de glissement.

Sous-composants

Connexe

  • modal — The same dismissible overlay pattern, centred instead of edge-pinned.
  • popover — The generic top-layer surface this builds on.