@kolkrabbi/kol-theme 0.187.0 → 0.189.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.
- package/kol-animation.css +23 -14
- package/kol-components-atoms.css +3 -1
- package/kol-components-molecules.css +16 -0
- package/kol-components-organisms.css +9 -0
- package/kol-design-tokens.css +13 -0
- package/package.json +1 -1
package/kol-animation.css
CHANGED
|
@@ -202,38 +202,47 @@
|
|
|
202
202
|
* Touch has no hover and gets nothing: the front is the card. Reduced
|
|
203
203
|
* motion drops the turn's transition, so both flips become the cut.
|
|
204
204
|
* ───────────────────────────────────────────────────────────────────── */
|
|
205
|
-
|
|
205
|
+
/* THE WHOLE CARD TURNS (AppCardWholeFlip, kol-monitor 2026-10-24 — user: *"it doesnt truly flip the card, there is
|
|
206
|
+
* still the background that remains"*): `flip-card`'s attributes ride a TURNER around the card root, so the root — its
|
|
207
|
+
* ground included — is the front face and nothing stays behind; `flip-image` and `hover` still mark the root. The
|
|
208
|
+
* reveal is OPT-IN: hover (and keyboard focus) turn a card only under `data-back-hover` (*"hover flips card? default
|
|
209
|
+
* off"*), and `data-flipped` turns it on the consumer's word (*"make the cards flip on a shortcut"*) — a page turns
|
|
210
|
+
* every card on a key. The turn is monitor's: 450ms ease, both faces backface-hidden, never a timed visibility. */
|
|
211
|
+
[data-back] .kol-card-turn-inner {
|
|
206
212
|
position: relative;
|
|
207
213
|
}
|
|
208
|
-
|
|
214
|
+
[data-back] .kol-card-face--back {
|
|
209
215
|
position: absolute;
|
|
210
216
|
inset: 0;
|
|
211
217
|
}
|
|
212
|
-
|
|
213
|
-
|
|
218
|
+
[data-back^="flip"] .kol-card-turn,
|
|
219
|
+
[data-back="flip-card"].kol-card-turn {
|
|
214
220
|
perspective: 1000px;
|
|
215
221
|
}
|
|
216
|
-
|
|
222
|
+
[data-back^="flip"] .kol-card-turn-inner {
|
|
217
223
|
transform-style: preserve-3d;
|
|
218
|
-
transition: transform
|
|
224
|
+
transition: transform 450ms ease;
|
|
219
225
|
}
|
|
220
|
-
|
|
226
|
+
[data-back^="flip"] .kol-card-face {
|
|
221
227
|
backface-visibility: hidden;
|
|
228
|
+
-webkit-backface-visibility: hidden;
|
|
222
229
|
}
|
|
223
|
-
|
|
230
|
+
[data-back^="flip"] .kol-card-face--back {
|
|
224
231
|
transform: rotateY(180deg);
|
|
225
232
|
}
|
|
226
|
-
|
|
233
|
+
[data-back="hover"] .kol-card-face--back {
|
|
227
234
|
opacity: 0;
|
|
228
235
|
}
|
|
229
236
|
@media (hover: hover) {
|
|
230
|
-
|
|
231
|
-
|
|
237
|
+
[data-back^="flip"][data-back-hover]:hover .kol-card-turn-inner { transform: rotateY(180deg); }
|
|
238
|
+
[data-back="hover"][data-back-hover]:hover .kol-card-face--back { opacity: 1; }
|
|
232
239
|
}
|
|
233
|
-
|
|
234
|
-
|
|
240
|
+
[data-back^="flip"][data-back-hover]:focus-within .kol-card-turn-inner,
|
|
241
|
+
[data-back^="flip"][data-flipped] .kol-card-turn-inner { transform: rotateY(180deg); }
|
|
242
|
+
[data-back="hover"][data-back-hover]:focus-within .kol-card-face--back,
|
|
243
|
+
[data-back="hover"][data-flipped] .kol-card-face--back { opacity: 1; }
|
|
235
244
|
@media (prefers-reduced-motion: reduce) {
|
|
236
|
-
|
|
245
|
+
[data-back^="flip"] .kol-card-turn-inner { transition: none; }
|
|
237
246
|
}
|
|
238
247
|
|
|
239
248
|
/* ─────────────────────────────────────────────────────────────────────
|
package/kol-components-atoms.css
CHANGED
|
@@ -867,7 +867,9 @@
|
|
|
867
867
|
width: 4px;
|
|
868
868
|
height: 4px;
|
|
869
869
|
border-radius: 50%;
|
|
870
|
-
|
|
870
|
+
/* THE ROW'S INK, not the accent (SiteRailDotNoAccent, kol-studio 2026-10-24 — user: *"the dot is not supposed to be
|
|
871
|
+
* accented. remove the accent!"*): the active row is on-primary, and its dot is the same ink in both themes */
|
|
872
|
+
background: currentColor;
|
|
871
873
|
}
|
|
872
874
|
|
|
873
875
|
|
|
@@ -2342,6 +2342,11 @@ img.kol-quicklook-media--fill { width: var(--kol-ql-max-w); height: auto; max-he
|
|
|
2342
2342
|
display: flex;
|
|
2343
2343
|
flex-direction: column;
|
|
2344
2344
|
padding-block: var(--kol-spacing-8);
|
|
2345
|
+
/* THE RAIL STAYS IN ITS COLUMN (TocRailLongLabels, kol-studio 2026-10-24): fixed and content-sized, a long label grew
|
|
2346
|
+
* the whole rail leftwards over the page. Capped at the frame's TOC column (kol-framework's `--kol-shell-toc-w`, 256),
|
|
2347
|
+
* padding included; the rows are bounded by it and the labels ellipsize inside. */
|
|
2348
|
+
box-sizing: border-box;
|
|
2349
|
+
max-width: var(--kol-shell-toc-w, 16rem);
|
|
2345
2350
|
}
|
|
2346
2351
|
/* The lens scales about the edge the rail is pinned to, so the column's outer
|
|
2347
2352
|
* edge stays a straight line while the type breathes. The wide inner padding is
|
|
@@ -2366,6 +2371,9 @@ img.kol-quicklook-media--fill { width: var(--kol-ql-max-w); height: auto; max-he
|
|
|
2366
2371
|
gap: var(--kol-spacing-3);
|
|
2367
2372
|
padding-block: 2px;
|
|
2368
2373
|
text-decoration: none;
|
|
2374
|
+
/* bounded by the rail's content box, so the label's cap below has a width to read (a content-sized row would take
|
|
2375
|
+
* the long label's own width) */
|
|
2376
|
+
max-width: 100%;
|
|
2369
2377
|
}
|
|
2370
2378
|
.kol-toc--right .kol-toc-row { justify-content: flex-end; }
|
|
2371
2379
|
.kol-toc--left .kol-toc-row { flex-direction: row-reverse; justify-content: flex-end; }
|
|
@@ -2379,6 +2387,14 @@ img.kol-quicklook-media--fill { width: var(--kol-ql-max-w); height: auto; max-he
|
|
|
2379
2387
|
* the scale did not. */
|
|
2380
2388
|
display: inline-block;
|
|
2381
2389
|
white-space: nowrap;
|
|
2390
|
+
/* A LONG LABEL STAYS IN THE COLUMN (TocRailLongLabels, kol-studio 2026-10-24: a doc's own title, "Rebrand — Expanded
|
|
2391
|
+
* Scope (Campaign + Motion)", ran left out of the aside and over the page's table). The label is capped at the row's
|
|
2392
|
+
* width over the lens's largest scale (0.78 + 0.42 = 1.2, growing from the outer edge), so even the lit row ends
|
|
2393
|
+
* inside the rail; past that it ellipsizes. */
|
|
2394
|
+
min-width: 0;
|
|
2395
|
+
max-width: calc(100% / 1.2);
|
|
2396
|
+
overflow: hidden;
|
|
2397
|
+
text-overflow: ellipsis;
|
|
2382
2398
|
opacity: calc(0.26 + 0.74 * var(--m));
|
|
2383
2399
|
transform: scale(calc(0.78 + 0.42 * var(--m)));
|
|
2384
2400
|
will-change: transform, opacity;
|
|
@@ -99,6 +99,15 @@
|
|
|
99
99
|
white-space: nowrap;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
/* the WRAPPING body cell (TableWrapTextCell, kol-studio 2026-10-24): a long free-text column — a roster's notes — at the
|
|
103
|
+
* body cell's face and size, wrapping inside a measure instead of pushing the table sideways. `Table` puts it on a
|
|
104
|
+
* column's `wrap: true`; the measure is the meta cell's idea at the body size. */
|
|
105
|
+
.kol-table-cell-text--wrap {
|
|
106
|
+
white-space: normal;
|
|
107
|
+
min-width: 12rem;
|
|
108
|
+
max-width: 32rem;
|
|
109
|
+
}
|
|
110
|
+
|
|
102
111
|
.kol-table-cell-meta {
|
|
103
112
|
padding: 12px 16px;
|
|
104
113
|
font-family: var(--kol-font-family-mono);
|
package/kol-design-tokens.css
CHANGED
|
@@ -49,6 +49,19 @@
|
|
|
49
49
|
* 24. CommandOverlay (field-aligned rows) and the Quick Look header (a toolbar) keep their own. */
|
|
50
50
|
--kol-pad-overlay: var(--kol-spacing-5);
|
|
51
51
|
|
|
52
|
+
/* RAIL TIERS (RailKit, kol-monitor 2026-10-24 — user: *"currently settings is showing 380 wide and padding is totally
|
|
53
|
+
* different in the rail and the settings"*). One width and one padding per tier, the same `app` · `site` split the
|
|
54
|
+
* cards and the page headers take; `Rail variant` and `SettingsPanel tier` read them, so a page rail and the settings
|
|
55
|
+
* rail of one app cannot disagree. `app` 320 is the shell rail's open width on a wide screen and the narrowest that
|
|
56
|
+
* keeps a 160 label column beside a usable control (fxr's inspector rides the shell rail's 264 · 320 ramp; monitor's
|
|
57
|
+
* patch table had 440); `site` 380 is the settings rail as locked 2026-08-27. The padding is the overlay inset in both
|
|
58
|
+
* — the 2026-10-18 ruling — named per tier so one can move without the other. The app number is decided for review
|
|
59
|
+
* (open questions round 18). */
|
|
60
|
+
--kol-rail-w-app: 320px;
|
|
61
|
+
--kol-rail-w-site: 380px;
|
|
62
|
+
--kol-pad-rail-app: var(--kol-pad-overlay);
|
|
63
|
+
--kol-pad-rail-site: var(--kol-pad-overlay);
|
|
64
|
+
|
|
52
65
|
/* CARD padding (2026-08-15, content-card ruling) — flat, stepped by the
|
|
53
66
|
* card's `size` prop, never by breakpoint. 12/16/24. */
|
|
54
67
|
--kol-pad-card-sm: 0.75rem;
|