canonrs-server 0.1.0

CanonRS server-side rendering support
/* ═══════════════════════════════════════════════════════════════
   SPINNER — Family E Feedback tokens compliant
   ═══════════════════════════════════════════════════════════════ */

[data-rs-spinner] {
  display: inline-block;
  animation: spinner-rotate var(--spinner-rotation-duration) var(--spinner-rotation-ease) infinite;
}

[data-rs-spinner][data-rs-size="sm"] {
  width: var(--spinner-size-sm);
  height: var(--spinner-size-sm);
}

[data-rs-spinner][data-rs-size="md"] {
  width: var(--spinner-size-md);
  height: var(--spinner-size-md);
}

[data-rs-spinner][data-rs-size="lg"] {
  width: var(--spinner-size-lg);
  height: var(--spinner-size-lg);
}

[data-rs-spinner][data-rs-state~="idle"] {
  opacity: var(--spinner-opacity-paused);
  animation-play-state: paused;
}

[data-rs-spinner][data-rs-state~="loading"] {
  animation-play-state: running;
}

[data-rs-spinner] path {
  stroke: var(--spinner-color);
  stroke-width: var(--spinner-stroke-width);
  stroke-linecap: round;
  fill: none;
}

@keyframes spinner-rotate {
  100% { transform: rotate(360deg); }
}