canonrs-server 0.1.0

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

[data-rs-pulse] {
  position: relative;
  display: inline-flex;
  border-radius: var(--pulse-radius);
}

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

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

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

[data-rs-pulse][data-rs-variant="subtle"] {
  background: var(--pulse-bg-subtle);
  --pulse-scale: var(--pulse-scale-subtle);
}

[data-rs-pulse][data-rs-variant="default"] {
  background: var(--pulse-bg-default);
  --pulse-scale: var(--pulse-scale-default);
}

[data-rs-pulse][data-rs-variant="emphasized"] {
  background: var(--pulse-bg-emphasized);
  box-shadow: var(--pulse-shadow-emphasized) var(--pulse-shadow-color-emphasized);
  --pulse-scale: var(--pulse-scale-emphasized);
}

[data-rs-pulse]::before,
[data-rs-pulse]::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: inherit;
  animation: pulse-ripple var(--pulse-duration) var(--pulse-ease) infinite;
  pointer-events: none;
}

[data-rs-pulse]::after {
  animation-delay: var(--pulse-delay);
}

[data-rs-pulse][data-rs-speed="slow"]   { --pulse-duration: var(--pulse-duration-slow); }
[data-rs-pulse][data-rs-speed="normal"] { --pulse-duration: var(--pulse-duration-normal); }
[data-rs-pulse][data-rs-speed="fast"]   { --pulse-duration: var(--pulse-duration-fast); }

[data-rs-pulse][data-rs-state~="active"]::before,
[data-rs-pulse][data-rs-state~="active"]::after {
  animation: pulse-ripple var(--pulse-duration) var(--pulse-ease) infinite;
}

@keyframes pulse-ripple {
  0%   { transform: scale(1); opacity: 1; }
  100% { transform: scale(var(--pulse-scale)); opacity: 0; }
}