/
shappo
/
ui
Обзор
Документация
Войти
/
shappo
/
ui
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/styles.css
969 строк
23 KB
Sergey Shappo
feat(map): add horizontal split for compare divider on narrow viewports
05 авг 2026, 22:47
05 авг 2026, 22:47
b3e4d7f
Код
Авторство
О чём код?
:root { --sui-color-bg: #ffffff; --sui-color-fg: #1a1a1a; --sui-color-muted: #6b7280; --sui-color-border: #d1d5db; --sui-color-primary: #0f766e; --sui-color-primary-fg: #ffffff; --sui-color-danger: #b91c1c; --sui-color-success: #15803d; --sui-color-warning: #a16207; --sui-radius-sm: 4px; --sui-radius-md: 8px; --sui-font-sans: "Segoe UI", system-ui, sans-serif; --sui-space-1: 0.25rem; --sui-space-2: 0.5rem; --sui-space-3: 0.75rem; --sui-space-4: 1rem; /* Above Leaflet panes/controls (~200–1000) and app chrome */ --sui-drawer-z: 1100; --sui-drawer-overlay: color-mix(in srgb, var(--sui-color-fg) 45%, transparent); --drawer-inset: 0px; --drawer-bleed-background: var(--sui-color-bg); --drawer-overlay-min-opacity: 0; /* Base UI Drawer runtime vars (set on popup/overlay; defaults for idle state) */ --drawer-swipe-progress: 0; --drawer-swipe-strength: 1; --drawer-height: auto; --drawer-frontmost-height: var(--drawer-height); --drawer-snap-point-offset: 0px; --drawer-swipe-movement-x: 0px; --drawer-swipe-movement-y: 0px; --nested-drawers: 0; } /* iOS Safari: drawer overlay is absolutely positioned and needs a positioned body to cover the viewport after the page is scrolled. */ body { position: relative; } *, *::before, *::after { box-sizing: border-box; } /* Map shell */ .sui-map { position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; background: color-mix(in srgb, var(--sui-color-border) 35%, var(--sui-color-bg)); font-family: var(--sui-font-sans), sans-serif; } .sui-map__switcher { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 500; max-width: calc(100% - 1.5rem); -webkit-tap-highlight-color: transparent; } .sui-map__compare { position: absolute; left: 0.75rem; bottom: 0.75rem; z-index: 500; display: flex; flex-direction: column; align-items: flex-start; gap: 0; max-width: calc(100% - 1.5rem); -webkit-tap-highlight-color: transparent; } .sui-map__compare[data-expanded] { gap: var(--sui-space-2); } .sui-map__compare-toggle { display: inline-flex; align-items: center; gap: var(--sui-space-2); min-height: 2.25rem; padding: 0.25rem 0.7rem 0.25rem 0.65rem; border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); background: color-mix(in srgb, var(--sui-color-bg) 92%, transparent); color: var(--sui-color-fg); font: inherit; font-size: 0.75rem; font-weight: 600; line-height: 1.2; cursor: pointer; touch-action: manipulation; } .sui-map__compare-toggle::after { content: ""; width: 0.4rem; height: 0.4rem; margin-top: -0.1rem; border-right: 2px solid var(--sui-color-primary); border-bottom: 2px solid var(--sui-color-primary); transform: rotate(225deg); transition: transform 180ms ease; } .sui-map__compare[data-expanded] .sui-map__compare-toggle { background: color-mix(in srgb, var(--sui-color-primary) 12%, var(--sui-color-bg)); border-color: color-mix(in srgb, var(--sui-color-primary) 35%, transparent); color: var(--sui-color-primary); } .sui-map__compare[data-expanded] .sui-map__compare-toggle::after { margin-top: 0.15rem; transform: rotate(45deg); } .sui-map__compare-toggle:focus-visible { outline: 2px solid var(--sui-color-primary); outline-offset: 1px; } .sui-map__compare-panel-slot { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 200ms ease; } .sui-map__compare[data-expanded] .sui-map__compare-panel-slot { grid-template-rows: 1fr; } .sui-map__compare-panel-slot-inner { min-height: 0; overflow: hidden; } .sui-map__compare-panel { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-space-2); max-width: 100%; padding: var(--sui-space-2); border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); background: color-mix(in srgb, var(--sui-color-bg) 92%, transparent); opacity: 0; transform: translate3d(0, 0.35rem, 0); transition: opacity 180ms ease, transform 180ms ease; } .sui-map__compare[data-expanded] .sui-map__compare-panel { opacity: 1; transform: translate3d(0, 0, 0); } @media (min-width: 40rem) { .sui-map__compare-toggle { display: none; } .sui-map__compare-panel-slot { grid-template-rows: 1fr; transition: none; } .sui-map__compare-panel { opacity: 1; transform: none; transition: none; } } @media (prefers-reduced-motion: reduce) { .sui-map__compare-toggle::after, .sui-map__compare-panel-slot, .sui-map__compare-panel { transition: none; } } .sui-map__compare-modes { display: inline-flex; gap: 0; border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); overflow: hidden; } .sui-map__compare-mode { min-height: 2rem; padding: 0.2rem 0.55rem; border: 0; background: transparent; color: var(--sui-color-fg); font: inherit; font-size: 0.7rem; font-weight: 600; line-height: 1.2; cursor: pointer; touch-action: manipulation; } .sui-map__compare-mode--active { background: var(--sui-color-primary); color: var(--sui-color-primary-fg); } .sui-map__compare-overlay-trigger { display: inline-flex; align-items: center; min-height: 2rem; max-width: 9rem; padding: 0.2rem 1.05rem 0.2rem 0.45rem; border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); background-color: color-mix(in srgb, var(--sui-color-bg) 96%, transparent); background-image: linear-gradient(45deg, transparent 50%, var(--sui-color-primary) 50%), linear-gradient(135deg, var(--sui-color-primary) 50%, transparent 50%); background-position: calc(100% - 0.55rem) 50%, calc(100% - 0.3rem) 50%; background-size: 0.28rem 0.28rem; background-repeat: no-repeat; color: var(--sui-color-fg); font: inherit; font-size: 0.7rem; font-weight: 600; line-height: 1.2; cursor: pointer; touch-action: manipulation; } .sui-map__compare-overlay-trigger:focus-visible { outline: 2px solid var(--sui-color-primary); outline-offset: 1px; } .sui-map__compare-overlay-value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sui-map__compare-opacity { display: inline-flex; align-items: center; gap: var(--sui-space-2); min-width: 7.5rem; } .sui-map__compare-opacity-label { min-width: 2.25rem; color: var(--sui-color-muted); font-size: 0.7rem; font-weight: 600; font-variant-numeric: tabular-nums; } .sui-map__compare-opacity-input { width: 5.5rem; accent-color: var(--sui-color-primary); cursor: pointer; } .sui-map__compare-divider { position: absolute; z-index: 450; touch-action: none; user-select: none; } .sui-map__compare-divider[data-orientation="vertical"] { top: 0; bottom: 0; width: 1.5rem; margin-left: -0.75rem; cursor: ew-resize; } .sui-map__compare-divider[data-orientation="horizontal"] { left: 0; right: 0; height: 1.5rem; margin-top: -0.75rem; cursor: ns-resize; } .sui-map__compare-divider::before { content: ""; position: absolute; background: color-mix(in srgb, var(--sui-color-bg) 80%, var(--sui-color-primary)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--sui-color-fg) 18%, transparent); } .sui-map__compare-divider[data-orientation="vertical"]::before { top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); } .sui-map__compare-divider[data-orientation="horizontal"]::before { left: 0; right: 0; top: 50%; height: 2px; transform: translateY(-50%); } .sui-map__compare-divider-thumb { position: absolute; top: 50%; left: 50%; width: 1.35rem; height: 1.35rem; border: 2px solid var(--sui-color-bg); border-radius: 50%; background: var(--sui-color-primary); box-shadow: 0 1px 4px color-mix(in srgb, var(--sui-color-fg) 28%, transparent); transform: translate(-50%, -50%); } .sui-map__compare-divider:focus-visible { outline: none; } .sui-map__compare-divider:focus-visible .sui-map__compare-divider-thumb { outline: 2px solid var(--sui-color-primary); outline-offset: 2px; } .sui-map__switcher-trigger { display: inline-flex; align-items: center; min-height: 2.25rem; max-width: 100%; padding: 0.25rem 1.15rem 0.25rem 0.5rem; border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); background-color: color-mix(in srgb, var(--sui-color-bg) 92%, transparent); background-image: linear-gradient(45deg, transparent 50%, var(--sui-color-primary) 50%), linear-gradient(135deg, var(--sui-color-primary) 50%, transparent 50%); background-position: calc(100% - 0.65rem) 50%, calc(100% - 0.4rem) 50%; background-size: 0.3rem 0.3rem; background-repeat: no-repeat; color: var(--sui-color-fg); font: inherit; font-size: 0.75rem; font-weight: 500; line-height: 1.2; cursor: pointer; touch-action: manipulation; } .sui-map__switcher-trigger:focus-visible { outline: 2px solid var(--sui-color-primary); outline-offset: 1px; } .sui-map__switcher-value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sui-map__switcher-options { display: flex; flex-direction: column; gap: var(--sui-space-2); } .sui-map__switcher-option { display: inline-flex; align-items: center; justify-content: flex-start; width: 100%; min-height: 2.5rem; padding: var(--sui-space-2) var(--sui-space-3); border: 1px solid transparent; border-radius: var(--sui-radius-md); background: transparent; color: var(--sui-color-primary); font-family: var(--sui-font-sans), sans-serif; font-size: 0.875rem; font-weight: 600; line-height: 1.2; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease; } .sui-map__switcher-option:hover { background: color-mix(in srgb, var(--sui-color-primary) 10%, transparent); } .sui-map__switcher-option--selected { background: var(--sui-color-primary); color: var(--sui-color-primary-fg); } .sui-map__switcher-option--selected:hover { filter: brightness(1.05); } .sui-map__canvas { width: 100%; height: 100%; background: transparent; font: inherit; z-index: 0; } .sui-map__canvas .leaflet-control-zoom a { width: 2.25rem; height: 2.25rem; line-height: 2.25rem; color: var(--sui-color-fg); background: color-mix(in srgb, var(--sui-color-bg) 92%, transparent); border-bottom-color: color-mix(in srgb, var(--sui-color-fg) 12%, transparent); } .sui-map__canvas .leaflet-bar { border: 1px solid color-mix(in srgb, var(--sui-color-fg) 12%, transparent); border-radius: var(--sui-radius-sm); box-shadow: none; overflow: hidden; } .sui-map__canvas .leaflet-popup-content-wrapper { border-radius: var(--sui-radius-sm); background: color-mix(in srgb, var(--sui-color-bg) 96%, transparent); color: var(--sui-color-fg); box-shadow: 0 2px 10px color-mix(in srgb, var(--sui-color-fg) 16%, transparent); } .sui-map__canvas .leaflet-popup-content { margin: 0.65rem 0.75rem; } .sui-map__canvas .leaflet-popup-tip { background: color-mix(in srgb, var(--sui-color-bg) 96%, transparent); } .sui-map__skeleton { width: 100%; height: 100%; min-height: 12rem; background: linear-gradient( 110deg, color-mix(in srgb, var(--sui-color-border) 40%, var(--sui-color-bg)) 25%, color-mix(in srgb, var(--sui-color-primary) 8%, var(--sui-color-bg)) 40%, color-mix(in srgb, var(--sui-color-border) 40%, var(--sui-color-bg)) 55% ); background-size: 200% 100%; animation: sui-map-shimmer 1.4s ease-out infinite; } @media (prefers-reduced-motion: reduce) { .sui-map__skeleton { animation: none; } } @keyframes sui-map-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* Map markers */ .sui-map-marker__icon { background: transparent; border: 0; } .sui-map-marker__pin { display: block; width: 1.15rem; height: 1.15rem; margin: 0.2rem auto 0; border: 2px solid var(--sui-color-bg); border-radius: 50% 50% 50% 0; box-shadow: 0 1px 4px color-mix(in srgb, var(--sui-color-fg) 28%, transparent); transform: rotate(-45deg); } .sui-map-marker__pin--primary { background: var(--sui-color-primary); } .sui-map-marker__pin--accent { background: var(--sui-color-warning); } .sui-map-marker__popup-title { margin: 0; color: var(--sui-color-fg); font-size: 0.9rem; font-weight: 700; line-height: 1.3; } .sui-map-marker__popup-description { margin: 0.25rem 0 0; color: var(--sui-color-muted); font-size: 0.8rem; line-height: 1.35; } /* Minimap (leaflet-minimap) — token-aligned chrome */ .sui-map__canvas .leaflet-control-minimap { border: 2px solid color-mix(in srgb, var(--sui-color-bg) 88%, var(--sui-color-primary)); border-radius: var(--sui-radius-sm); background: var(--sui-color-bg); box-shadow: 0 1px 6px color-mix(in srgb, var(--sui-color-fg) 22%, transparent); overflow: hidden; } .sui-map__canvas .leaflet-control-minimap .leaflet-container { background: color-mix(in srgb, var(--sui-color-border) 35%, var(--sui-color-bg)); } /* Edge / Signposts chips */ .sui-map-edge__icon { background: transparent; border: 0; } .sui-map-edge { display: inline-flex; align-items: center; justify-content: center; gap: 0.15rem; min-width: 2.1rem; min-height: 2.1rem; padding: 0.2rem 0.35rem; border: 1px solid color-mix(in srgb, var(--sui-color-fg) 14%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--sui-color-bg) 94%, transparent); box-shadow: 0 1px 4px color-mix(in srgb, var(--sui-color-fg) 22%, transparent); color: var(--sui-color-fg); cursor: pointer; pointer-events: auto; -webkit-tap-highlight-color: transparent; } .sui-map-edge--primary .sui-map-edge__arrow { border-bottom-color: var(--sui-color-primary); } .sui-map-edge--accent .sui-map-edge__arrow { border-bottom-color: var(--sui-color-warning); } .sui-map-edge__arrow { display: block; width: 0; height: 0; border-left: 0.28rem solid transparent; border-right: 0.28rem solid transparent; border-bottom: 0.45rem solid var(--sui-color-primary); transform-origin: 50% 60%; } .sui-map-edge__count { min-width: 0.85rem; color: var(--sui-color-fg); font-size: 0.7rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; } /* Drawer */ .sui-drawer-viewport { position: fixed; inset: 0; z-index: var(--sui-drawer-z); pointer-events: none; user-select: none; } .sui-drawer-viewport[data-modal="true"] { pointer-events: auto; } .sui-drawer-overlay { position: fixed; inset: 0; z-index: var(--sui-drawer-z); min-height: 100dvh; background: var(--sui-drawer-overlay); opacity: max( var(--drawer-overlay-min-opacity, 0), calc(1 - var(--drawer-swipe-progress, 0)) ); transition: opacity 450ms cubic-bezier(0.32, 0.72, 0, 1); user-select: none; } .sui-drawer-overlay[data-snap-points] { --drawer-overlay-min-opacity: 0.5; } .sui-drawer-overlay[data-starting-style], .sui-drawer-overlay[data-ending-style] { opacity: 0; } .sui-drawer-overlay[data-ending-style] { pointer-events: none; transition-duration: calc(var(--drawer-swipe-strength, 1) * 400ms); } .sui-drawer-overlay[data-swiping] { transition-duration: 0ms; } @supports (-webkit-touch-callout: none) { .sui-drawer-overlay { position: absolute; } } .sui-drawer-popup { --bleed: 3rem; --peek: 1rem; --stack-step: 0.05; --stack-height: var(--drawer-frontmost-height, var(--drawer-height, 0px)); --stack-progress: clamp(0, var(--drawer-swipe-progress, 0), 1); --stack-peek-offset: max( 0px, calc((var(--nested-drawers, 0) - var(--stack-progress)) * var(--peek)) ); --stack-scale-base: max( 0, calc(1 - (var(--nested-drawers, 0) * var(--stack-step))) ); --stack-scale: clamp( 0, calc(var(--stack-scale-base) + (var(--stack-step) * var(--stack-progress))), 1 ); --stack-shrink: calc(1 - var(--stack-scale)); --drawer-content-height: var(--drawer-height, auto); --drawer-content-max-height: none; --drawer-content-width: auto; position: fixed; z-index: var(--sui-drawer-z); display: flex; flex-direction: column; margin: var(--drawer-inset, 0px); width: var(--drawer-content-width); height: var(--drawer-content-height); max-height: var(--drawer-content-max-height); min-height: 0; pointer-events: auto; outline: none; user-select: none; will-change: transform; font-family: var(--sui-font-sans), sans-serif; color: var(--sui-color-fg); background: var(--sui-color-bg); border: 1px solid var(--sui-color-border); box-shadow: 0 12px 40px color-mix(in srgb, var(--sui-color-fg) 18%, transparent); transform: translate3d( var(--translate-x, 0px), var(--translate-y, 0px), 0 ) scale(var(--stack-scale)); transition: transform 450ms cubic-bezier(0.22, 1, 0.36, 1), height 450ms cubic-bezier(0.22, 1, 0.36, 1), opacity 450ms cubic-bezier(0.22, 1, 0.36, 1), filter 450ms cubic-bezier(0.22, 1, 0.36, 1); } .sui-drawer-popup::after { content: ""; pointer-events: none; position: absolute; background: var(--drawer-bleed-background, var(--sui-color-bg)); } .sui-drawer-popup[data-nested-drawer-open] { overflow: hidden; filter: brightness(0.95); } .sui-drawer-popup[data-starting-style], .sui-drawer-popup[data-ending-style] { transform: var(--closed-transform); opacity: 0.9999; } .sui-drawer-popup[data-ending-style] { transition-duration: calc(var(--drawer-swipe-strength, 1) * 400ms); } .sui-drawer-popup[data-swiping], .sui-drawer-popup[data-nested-drawer-swiping] { transition-duration: 0ms; } .sui-drawer-popup[data-ending-style][data-swiping], .sui-drawer-popup[data-ending-style][data-nested-drawer-swiping] { transition-duration: calc(var(--drawer-swipe-strength, 1) * 400ms); } .sui-drawer-popup[data-swipe-axis="y"] { inset-inline: 0; --drawer-content-max-height: calc(100dvh - 6rem); } .sui-drawer-popup[data-swipe-axis="y"][data-snap-points] { --drawer-content-height: 100dvh; } .sui-drawer-popup[data-swipe-axis="y"][data-nested-drawer-open] { height: var(--stack-height); } .sui-drawer-popup[data-swipe-axis="x"] { inset-block: 0; flex-direction: row; --drawer-content-width: 75%; } @media (min-width: 40rem) { .sui-drawer-popup[data-swipe-axis="x"] { --drawer-content-width: 24rem; } } .sui-drawer-popup[data-swipe-axis="x"]::after { inset-block: 0; width: var(--bleed); } .sui-drawer-popup[data-swipe-axis="y"]::after { inset-inline: 0; height: var(--bleed); } .sui-drawer-popup[data-swipe-direction="down"] { bottom: 0; transform-origin: bottom; border-radius: var(--sui-radius-md) var(--sui-radius-md) 0 0; --closed-transform: translate3d( 0, calc(100% + var(--drawer-inset, 0px) + 2px), 0 ); --translate-y: calc( var(--drawer-snap-point-offset, 0px) + var(--drawer-swipe-movement-y, 0px) - var(--stack-peek-offset) - (var(--stack-shrink) * var(--stack-height)) ); } .sui-drawer-popup[data-swipe-direction="down"]::after { top: 100%; } .sui-drawer-popup[data-swipe-direction="up"] { top: 0; transform-origin: top; border-radius: 0 0 var(--sui-radius-md) var(--sui-radius-md); --closed-transform: translate3d( 0, calc(-100% - var(--drawer-inset, 0px) - 2px), 0 ); --translate-y: calc( var(--drawer-snap-point-offset, 0px) + var(--drawer-swipe-movement-y, 0px) + var(--stack-peek-offset) + (var(--stack-shrink) * var(--stack-height)) ); } .sui-drawer-popup[data-swipe-direction="up"]::after { bottom: 100%; } .sui-drawer-popup[data-swipe-direction="left"] { left: 0; transform-origin: left; border-radius: 0 var(--sui-radius-md) var(--sui-radius-md) 0; --closed-transform: translate3d( calc(-100% - var(--drawer-inset, 0px) - 2px), 0, 0 ); --translate-x: calc( var(--drawer-swipe-movement-x, 0px) + var(--stack-peek-offset) + (var(--stack-shrink) * 100%) ); } .sui-drawer-popup[data-swipe-direction="left"]::after { right: 100%; } .sui-drawer-popup[data-swipe-direction="right"] { right: 0; transform-origin: right; border-radius: var(--sui-radius-md) 0 0 var(--sui-radius-md); --closed-transform: translate3d( calc(100% + var(--drawer-inset, 0px) + 2px), 0, 0 ); --translate-x: calc( var(--drawer-swipe-movement-x, 0px) - var(--stack-peek-offset) - (var(--stack-shrink) * 100%) ); } .sui-drawer-popup[data-swipe-direction="right"]::after { left: 100%; } .sui-drawer-content { display: flex; flex: 1; flex-direction: column; min-height: 0; overflow: hidden; overscroll-behavior: contain; border-radius: inherit; user-select: text; transition: opacity 300ms cubic-bezier(0.45, 1.005, 0, 1.005); } .sui-drawer-popup[data-nested-drawer-open] > .sui-drawer-content { opacity: 0; } .sui-drawer-popup[data-nested-drawer-open][data-nested-drawer-swiping] > .sui-drawer-content { opacity: 1; } .sui-drawer-popup[data-swiping] > .sui-drawer-content { user-select: none; } .sui-drawer-swipe-handle { position: relative; z-index: 10; display: flex; flex-shrink: 0; align-items: center; justify-content: center; padding: var(--sui-space-3) 0 var(--sui-space-1); cursor: grab; transition: opacity 200ms ease; } .sui-drawer-swipe-handle::before { content: ""; width: 2.5rem; height: 0.25rem; border-radius: 999px; background: color-mix(in srgb, var(--sui-color-muted) 55%, transparent); } .sui-drawer-swipe-handle:active { cursor: grabbing; } .sui-drawer-popup[data-nested-drawer-open] > .sui-drawer-swipe-handle { opacity: 0; } .sui-drawer-popup[data-nested-drawer-open][data-nested-drawer-swiping] > .sui-drawer-swipe-handle { opacity: 1; } .sui-drawer-popup[data-swipe-direction="left"] > .sui-drawer-swipe-handle, .sui-drawer-popup[data-swipe-direction="up"] > .sui-drawer-swipe-handle { order: 1; } .sui-drawer-popup[data-swipe-axis="x"] > .sui-drawer-swipe-handle { width: 1.25rem; padding: 0 var(--sui-space-1); } .sui-drawer-popup[data-swipe-axis="x"] > .sui-drawer-swipe-handle::before { width: 0.25rem; height: 2.5rem; } .sui-drawer-header { display: flex; flex-shrink: 0; flex-direction: column; gap: var(--sui-space-1); padding: var(--sui-space-4); padding-bottom: var(--sui-space-2); } .sui-drawer-popup[data-swipe-axis="y"] .sui-drawer-header { text-align: center; align-items: center; } .sui-drawer-title { margin: 0; font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: var(--sui-color-fg); } .sui-drawer-description { margin: 0; font-size: 0.875rem; line-height: 1.45; color: var(--sui-color-muted); text-wrap: balance; } .sui-drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding: var(--sui-space-2) var(--sui-space-4); } .sui-drawer-footer { display: flex; flex-shrink: 0; flex-direction: column; gap: var(--sui-space-2); margin-top: auto; padding: var(--sui-space-4); padding-top: var(--sui-space-2); } @media (prefers-reduced-motion: reduce) { .sui-drawer-overlay, .sui-drawer-popup, .sui-drawer-content, .sui-drawer-swipe-handle { transition-duration: 0.01ms !important; } }