@kolkrabbi/kol-theme 0.152.0 → 0.154.0

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.
@@ -258,6 +258,16 @@
258
258
  outline-offset: 2px;
259
259
  }
260
260
 
261
+ /* THE MENU BUTTONS TAKE THE SAME RING (editor review #8, 2026-09-27 — user: "the browser focus
262
+ * highlighter … I hate it, can we not use our own? like we do in media?"). MenuItem's trigger and
263
+ * its rows are bare <button>s, not `.kol-btn`, so they had NO focus rule and the browser drew its
264
+ * own blue ring whenever the menu handed focus back. Same ring as every Button now. */
265
+ .kol-menu-btn:focus { outline: none; }
266
+ .kol-menu-btn:focus-visible {
267
+ outline: 2px solid var(--kol-focus-ring);
268
+ outline-offset: 2px;
269
+ }
270
+
261
271
  /* Icon-only buttons — was an inline style in Button.jsx, which beat every
262
272
  * consumer display utility (`lg:hidden` could never hide an iconOnly button).
263
273
  * Chrome belongs here, layered, so utilities stay sovereign. The flex
@@ -953,7 +953,7 @@
953
953
  * against Section's shipped default, so there is no second density to name
954
954
  * until a consumer produces a value that actually differs. */
955
955
  .kol-section--divided + .kol-section--divided {
956
- border-top: 1px solid var(--kol-fg-08);
956
+ border-top: 1px solid var(--kol-oq-08);
957
957
  /* 20px below the rule; the 20px above falls out of the rail body's own
958
958
  * gap-5, so a symmetric space–divider–space lands without this file
959
959
  * knowing anything about the rail.
@@ -962,6 +962,34 @@
962
962
  padding-top: 20px;
963
963
  }
964
964
 
965
+ /* InspectorSection `pane` — the Affinity panel shape (editor inspector rebuild, 2026-09-27).
966
+ * A named pane, not a labelled form group: the title in emphasis on its own strip, the body
967
+ * padded, and panes ruled edge to edge — each pane pads itself, so the rule is never inset. */
968
+ .kol-inspector-pane + .kol-inspector-pane { border-top: 1px solid var(--kol-oq-08); }
969
+ .kol-inspector-pane-head {
970
+ display: flex;
971
+ align-items: center;
972
+ gap: 4px;
973
+ min-height: 40px;
974
+ padding: 4px 16px 0;
975
+ }
976
+ .kol-inspector-pane-title {
977
+ flex: 1;
978
+ min-width: 0;
979
+ margin: 0;
980
+ font-family: var(--kol-font-family-mono);
981
+ font-size: 14px;
982
+ line-height: 18px;
983
+ font-weight: 400;
984
+ color: var(--kol-fg-emphasis);
985
+ }
986
+ .kol-inspector-pane-body {
987
+ display: flex;
988
+ flex-direction: column;
989
+ gap: 8px;
990
+ padding: 4px 16px 20px;
991
+ }
992
+
965
993
  /* ─────────────────────────────────────────────────────────────────────
966
994
  * Content family hover — molecules/ContentCard.jsx · ContentRow.jsx
967
995
  *
@@ -912,3 +912,26 @@
912
912
  outline: 2px solid var(--kol-accent-primary);
913
913
  outline-offset: 1px;
914
914
  }
915
+
916
+ /* ── ToolPalette · the tool row's states (editor inspector rebuild, 2026-09-27) ──
917
+ * The generic pressed toggle is an inverted tile, and ghost + `quiet` dims oq-48 ink
918
+ * by the disabled opacity on top — a tool row read washed-out at rest and shouted
919
+ * when armed. Affinity's row: the ink does the dimming, the armed tool is a sunken
920
+ * tile with a lighter edge and bright ink, hover a faint tile, a press gives. */
921
+ .kol-tool-palette .kol-btn {
922
+ --kol-tone-fg: var(--kol-oq-64);
923
+ --kol-tone-hover-bg: var(--kol-oq-08);
924
+ --kol-tone-hover-fg: var(--kol-surface-on-primary);
925
+ --kol-tone-pressed-bg: var(--kol-surface-sunken);
926
+ --kol-tone-pressed-fg: var(--kol-surface-on-primary);
927
+ transition: color 120ms ease, background-color 120ms ease, transform 80ms ease;
928
+ }
929
+ /* armed = Affinity's selected cell: a SUNKEN tile under a 1px lighter edge, the glyph bright —
930
+ * and it stays so under the cursor (the hover rule outranks the pressed fill) */
931
+ .kol-tool-palette .kol-btn-pressed {
932
+ --kol-tone-hover-bg: var(--kol-surface-sunken);
933
+ box-shadow: inset 0 0 0 1px var(--kol-oq-16);
934
+ }
935
+ .kol-tool-palette .kol-btn-quiet { opacity: 1; }
936
+ .kol-tool-palette .kol-btn:disabled { opacity: var(--kol-opacity-disabled); }
937
+ .kol-tool-palette .kol-btn:not(:disabled):not(.kol-dd-trigger):active { transform: scale(0.92); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.152.0",
3
+ "version": "0.154.0",
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",