@kolkrabbi/kol-theme 0.13.5 → 0.13.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -894,6 +894,13 @@ a:hover .icon-hover,
894
894
  padding: 0;
895
895
  }
896
896
 
897
+ /* Radius (2026-07-30 ruling): either the system's 4px or a full round, nothing
898
+ * between. `sm` is the default and carries no class — it's on .kol-icon-frame
899
+ * above. `full` is a deliberate exception to the hard 4px repo invariant,
900
+ * because a round frame is its own chrome idiom (edge-straddling controls,
901
+ * avatars, status dots) rather than a radius tweak. */
902
+ .kol-icon-frame-radius-full { border-radius: 9999px; }
903
+
897
904
  /* pinned squares — the box never moves with glyph size (user law 2026-07-28) */
898
905
  .kol-icon-frame-sm { width: 28px; height: 28px; }
899
906
  .kol-icon-frame-md { width: 32px; height: 32px; }
@@ -943,18 +950,13 @@ a:hover .icon-hover,
943
950
  /* ═══════════════════════════════════════════════════════════════
944
951
  * ThemeToggle — .kol-theme-toggle
945
952
  *
946
- * A two-position switch, NOT a button (user ruling 2026-07-30):
947
- * *"REMOVE ALL STATES, no fucking hover no variant at all should have an
948
- * interactive state it's just a click 1-2, and it's themed."*
949
- *
950
- * It used to emit `.kol-btn` + `.kol-btn-nav`/`.kol-btn-primary`, which dragged
951
- * the whole button state machine along: the base transition + focus ring, and
952
- * the per-variant :hover wash and [aria-current] shift. Those three classes are
953
- * the only state sources — the SIZE classes are pure padding and stay.
953
+ * A two-position switch, NOT a button (user ruling 2026-07-30): no interactive
954
+ * state on ANY variant — no hover, no active, no focus wash, no aria-current
955
+ * shift. It used to emit `.kol-btn` + `.kol-btn-nav`/`.kol-btn-primary`, which
956
+ * dragged the whole button state machine along. Those three were the only state
957
+ * sources; the SIZE classes are pure padding and stay.
954
958
  *
955
- * Same disease IconFrame was cured of above: borrow geometry, inherit states.
956
- * Resting appearance is byte-identical to what it replaced, so no consumer
957
- * shifts a pixel; there is simply nothing to transition to.
959
+ * Same cure as IconFrame above: own your classes, inherit no states.
958
960
  * ═══════════════════════════════════════════════════════════════ */
959
961
 
960
962
  .kol-theme-toggle {
@@ -966,14 +968,16 @@ a:hover .icon-hover,
966
968
  cursor: pointer;
967
969
  }
968
970
 
969
- /* fill="none" — mirrors .kol-btn-nav at rest */
971
+ /* fill="none" — invisible container. FULL-STRENGTH INK (user ruling): the text
972
+ * and icon drop NO opacity. `.kol-btn-nav` rested at oq-64 only so its hover
973
+ * could brighten to full; with no states that dim was just a faded label. */
970
974
  .kol-theme-toggle-none {
971
975
  background: transparent;
972
- color: var(--kol-oq-64);
976
+ color: var(--kol-surface-on-primary);
973
977
  border: 1px solid transparent;
974
978
  }
975
979
 
976
- /* fill="subtle" — mirrors .kol-btn-primary at rest */
980
+ /* fill="subtle" — the filled rung */
977
981
  .kol-theme-toggle-subtle {
978
982
  background: var(--kol-surface-secondary);
979
983
  color: var(--kol-surface-on-primary);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.13.5",
3
+ "version": "0.13.7",
4
4
  "description": "KOL (Kolkrabbi) design-system tokens + base CSS — brand-neutral. The canonical token/cascade layer every other KOL package and consumer builds on.",
5
5
  "license": "MIT",
6
6
  "type": "module",