canonrs-server 0.1.0

CanonRS server-side rendering support
/* ============================================
   LINK — Family D: Navigation
   State via data-rs-state — zero pseudo-class state selectors
   ============================================ */

[data-rs-link] {
  color: var(--link-fg);
  font-weight: var(--link-font-weight);
  text-decoration: var(--link-text-decoration);
  cursor: pointer;
  transition: color var(--link-transition-duration) var(--motion-ease-standard),
              text-decoration var(--link-transition-duration) var(--motion-ease-standard);
}

/* ── HOVER ──────────────────────────────────────────────────── */
[data-rs-link][data-rs-state~="hover"] {
  color: var(--link-fg-hover);
  text-decoration: var(--link-text-decoration-hover);
}

/* ── ACTIVE ─────────────────────────────────────────────────── */
[data-rs-link][data-rs-state~="active"] {
  color: var(--link-fg-active);
}

/* ── DISABLED ───────────────────────────────────────────────── */
[data-rs-link][data-rs-state~="disabled"] {
  opacity: var(--link-disabled-opacity);
  cursor: not-allowed;
  pointer-events: none;
}

/* ── VARIANT: DEFAULT ───────────────────────────────────────── */
[data-rs-link][data-rs-variant="default"] {
  text-decoration: var(--link-text-decoration);
}

[data-rs-link][data-rs-variant="default"][data-rs-state~="hover"] {
  text-decoration: var(--link-text-decoration-hover);
}

/* ── VARIANT: MUTED ─────────────────────────────────────────── */
[data-rs-link][data-rs-variant="muted"] {
  color: var(--link-muted-fg);
}

[data-rs-link][data-rs-variant="muted"][data-rs-state~="hover"] {
  color: var(--link-fg-hover);
}

/* ── VARIANT: UNDERLINE ─────────────────────────────────────── */
[data-rs-link][data-rs-variant="underline"] {
  text-decoration: underline;
}