canonrs-server 0.1.0

CanonRS server-side rendering support
/* ═══════════════════════════════════════════════════════════════
   SCROLL AREA — Family F Data tokens compliant
   ═══════════════════════════════════════════════════════════════ */

[data-rs-scroll-area] {
  position: relative;
  background: var(--scroll-area-bg);
  border: var(--scroll-area-border);
  border-radius: var(--scroll-area-radius);
  padding: var(--scroll-area-padding);
  overflow: hidden;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

[data-rs-scroll-area][data-rs-orientation="horizontal"] {
  height: auto;
  flex-direction: row;
}

[data-rs-scroll-viewport] {
  width: 100%;
  height: 100%;
  flex: 1;
  min-height: 0;
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

[data-rs-scroll-area][data-rs-orientation="horizontal"] [data-rs-scroll-viewport] {
  height: auto;
  flex: 1 1 auto;
  min-height: unset;
  min-width: 0;
}

[data-rs-scroll-viewport]::-webkit-scrollbar { display: none; }

[data-rs-scroll-area][data-rs-orientation="vertical"]   [data-rs-scroll-viewport] { overflow-x: hidden; overflow-y: auto; }
[data-rs-scroll-area][data-rs-orientation="horizontal"] [data-rs-scroll-viewport] { overflow-x: auto; overflow-y: hidden; }
[data-rs-scroll-area][data-rs-orientation="both"]       [data-rs-scroll-viewport] { overflow: auto; }

[data-rs-scrollbar] {
  position: absolute;
  z-index: var(--layer-sticky);
  transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}

[data-rs-scrollbar][data-rs-orientation="vertical"] {
  top: var(--space-2xs);
  right: var(--space-2xs);
  bottom: var(--space-2xs);
  width: var(--scrollbar-size);
}

[data-rs-scrollbar][data-rs-orientation="horizontal"] {
  left: var(--space-2xs);
  right: var(--space-2xs);
  bottom: var(--space-2xs);
  height: var(--scrollbar-size);
}

[data-rs-scroll-area][data-rs-auto-hide] [data-rs-scrollbar] { opacity: 0; }
[data-rs-scroll-area][data-rs-auto-hide]:hover [data-rs-scrollbar] { opacity: 1; }
[data-rs-scroll-area][data-rs-auto-hide] [data-rs-scrollbar][data-rs-state~="active"] { opacity: 1; }

[data-rs-scroll-track] {
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--scrollbar-track-bg);
  border-radius: var(--scrollbar-radius);
  overflow: hidden;
}

[data-rs-scroll-thumb] {
  position: absolute;
  background: var(--scrollbar-thumb-bg);
  border-radius: var(--scrollbar-radius);
  will-change: transform;
  transition: var(--scrollbar-transition);
  cursor: grab;
}

[data-rs-scroll-thumb][data-rs-orientation="vertical"] {
  left: 0; right: 0;
  min-height: var(--scrollbar-thumb-min-size);
  height: var(--scroll-thumb-size);
  transform: translateY(var(--scroll-thumb-offset));
}

[data-rs-scroll-thumb][data-rs-orientation="horizontal"] {
  top: 0; bottom: 0;
  min-width: var(--scrollbar-thumb-min-size);
  width: var(--scroll-thumb-size);
  transform: translateX(var(--scroll-thumb-offset));
}

[data-rs-scroll-thumb][data-rs-state~="hidden"]  { opacity: 0; pointer-events: none; }
[data-rs-scroll-thumb]:hover:not([data-rs-state~="active"]):not([data-rs-state~="hidden"]) { background: var(--scrollbar-thumb-hover-bg); }
[data-rs-scroll-thumb][data-rs-state~="active"]  {
  background: var(--scrollbar-thumb-active-bg);
  cursor: grabbing;
}