Skip to content

CSS: tray ​

.instui-tray — Un panel fijado al borde que se desliza desde cualquier lado; un [popover] o <dialog> nativo.

Las colocaciones start/end se resuelven respecto a inset-inline (lógico, sensible a la dirección); la transformación de deslizamiento se refleja automáticamente bajo un ancestro [dir="rtl"], por lo que no se necesita marcado adicional para diseños de derecha a izquierda.

Source: tray.css

Accesibilidad ​

La bandeja es una superficie de diálogo o popover, así que nómbrala con aria-label o aria-labelledby, y su control de cierre lleva un aria-label (el .instui-close-button en el ejemplo usa aria-label="Close").

Uso ​

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

Ejemplos ​

html
<div class="instui-tray -placement-end -size-sm">
  <span class="instui-heading -level-h3">Filtros</span>
  <p class="-size-sm">Un panel se desliza desde el borde inicial y ocupa la altura de la ventana de visualización.</p>
</div>
<button class="instui-button -toggle">alternar panel</button>

Estructura ​

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 ​

ModificadorDescripción
.-placement-bottomFijar al borde inferior.
.-placement-endFijar al borde de fin (inline-end).
.-placement-start(predeterminado) Fijar al borde de inicio (inline-start).
.-placement-topFijar al borde superior.
.-size-largeGrande. Alias en forma larga de -size-lg.
.-size-lgGrande.
.-size-md(predeterminado) Medio.
.-size-medium(predeterminado) Medio. Alias en forma larga de -size-md.
.-size-regularObsoleto — use .-size-md.
.-size-smPequeño.
.-size-smallPequeño. Alias en forma larga de -size-sm.
.-size-x-largeExtra grande. Alias en forma larga de -size-xl.
.-size-x-smallExtra pequeño. Alias en forma larga de -size-xs.
.-size-xlExtra grande.
.-size-xsExtra pequeño.

Condiciones ​

TipoConsultaDescripción
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-y—0%

Compatibilidad con navegadores ​

  • Se abre con la API nativa [popover] y @starting-style; el deslizamiento queda detrás de una protección @supports (transition-behavior: allow-discrete), por lo que los navegadores que no la tengan siguen abriendo la bandeja, solo sin el deslizamiento.

Subcomponentes ​

Relacionado ​

  • modal — El mismo patrón de superposición descartable, centrado en lugar de fijado al borde.
  • popover — La superficie genérica de capa superior sobre la que se construye esto.