@kolkrabbi/kol-theme 0.188.0 → 0.190.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 +47 -14
- package/kol-components-atoms.css +4 -0
- package/kol-components-shell.css +4 -2
- package/kol-design-tokens.css +16 -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
|
/* ─────────────────────────────────────────────────────────────────────
|
|
@@ -441,6 +450,30 @@
|
|
|
441
450
|
/* near is not enough for a line — it lights on the edge itself, not 20px out */
|
|
442
451
|
.kol-rail-grab--line.is-near:not(:hover):not(.is-dragging):not(:focus-visible)::before { opacity: 0; }
|
|
443
452
|
|
|
453
|
+
/* A HORIZONTAL EDGE wears the same pill, turned (his review 2026-10-25: *"why does bottom rail not have the same grab
|
|
454
|
+
* system as other rails?"* — `Rail resizable` drew a full-width wash until then). `--top` is a bottom rail's handle on
|
|
455
|
+
* its top edge, `--bottom` a top rail's on its bottom edge; the pill travels on x (`useGrabEdge({ axis: 'x' })`,
|
|
456
|
+
* `--kol-rail-grab-x`), held half its length from either end as the vertical one is. */
|
|
457
|
+
.kol-rail-grab--top,
|
|
458
|
+
.kol-rail-grab--bottom {
|
|
459
|
+
top: auto;
|
|
460
|
+
bottom: auto;
|
|
461
|
+
right: 0;
|
|
462
|
+
left: 0;
|
|
463
|
+
width: auto;
|
|
464
|
+
height: 8px;
|
|
465
|
+
cursor: row-resize;
|
|
466
|
+
}
|
|
467
|
+
.kol-rail-grab--top { top: -3.5px; }
|
|
468
|
+
.kol-rail-grab--bottom { bottom: -3.5px; }
|
|
469
|
+
.kol-rail-grab--top::before,
|
|
470
|
+
.kol-rail-grab--bottom::before {
|
|
471
|
+
top: 50%;
|
|
472
|
+
left: clamp(2.25rem, var(--kol-rail-grab-x, 50%), calc(100% - 2.25rem));
|
|
473
|
+
width: 4.5rem;
|
|
474
|
+
height: 0.125rem;
|
|
475
|
+
}
|
|
476
|
+
|
|
444
477
|
/* A RIGHT-HAND RAIL's handle sits on its LEFT edge, facing the page (2026-09-30 — the modifier
|
|
445
478
|
* EditorShell has stamped since 0.x, `kol-rail-grab--${side}`, had no rule, so a right rail's pill
|
|
446
479
|
* sat on its outer edge; the workshop shell's right rail needs the same). */
|
package/kol-components-atoms.css
CHANGED
|
@@ -137,6 +137,10 @@
|
|
|
137
137
|
.kol-control-sm { padding: 4px 12px; }
|
|
138
138
|
.kol-control-md { padding: 6px 16px; }
|
|
139
139
|
.kol-control-lg { padding: 8px 20px; }
|
|
140
|
+
/* THE RAIL PRESET (his review 2026-10-25: *"change padding from 12 to 8 on input here and call it a variant or preset
|
|
141
|
+
* for input on rails"*): a control in a rail's row keeps its rung's height and takes 8 at the sides — a slider's
|
|
142
|
+
* readout chip is three digits, not a field. `Input preset="rail"`; the Slider's `readoutPreset` passes it on. */
|
|
143
|
+
.kol-control--rail { padding-inline: 8px; }
|
|
140
144
|
|
|
141
145
|
/* ─── Disabled ─── */
|
|
142
146
|
|
package/kol-components-shell.css
CHANGED
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
* read kol-framework's `--kol-sidenav-w` for this, so an app that loads kol-framework.css
|
|
22
22
|
* (fxr) opened to 320 on a wide screen and one that does not (mirror, monitor) fell back to
|
|
23
23
|
* 264 — the same rail, two widths, decided by an unrelated import. */
|
|
24
|
-
|
|
24
|
+
/* the open rail is the rail width — 380, the same as a side rail (his ruling 2026-10-25: *"navrail expanded also gets the
|
|
25
|
+
same width as we just set"*); it ramped 264 · 320 from 1536 until then */
|
|
26
|
+
--kol-shell-rail-open: 380px;
|
|
25
27
|
/* Page gutter — PageShell's padding and PageBleed's negative margin.
|
|
26
28
|
* ONE LADDER FOR THE ESTATE (two-page-scaffolds-one-job, kol-client-olina
|
|
27
29
|
* 2026-09-03): this is `--kol-pad-section-x`, the page-content ladder every
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
* pair cannot drift. */
|
|
37
39
|
--kol-shell-page-pad: var(--kol-pad-section-x, clamp(20px, 5vw, 48px));
|
|
38
40
|
}
|
|
39
|
-
|
|
41
|
+
|
|
40
42
|
|
|
41
43
|
/* ── PageShell ──────────────────────────────────────────────────────────── */
|
|
42
44
|
|
package/kol-design-tokens.css
CHANGED
|
@@ -49,6 +49,22 @@
|
|
|
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. Both tiers are 380 — the settings rail as locked 2026-08-27; `app` stood at 320
|
|
56
|
+
* (the shell rail's open width on a wide screen) from 2026-10-24 until his ruling on round 18 the next day (*"why is
|
|
57
|
+
* settings now less wide? it was fine before?"*). fxr's inspector rides the shell rail's 264 · 320 ramp and monitor's
|
|
58
|
+
* patch table had 440 — their adoption items. The padding is the overlay inset in both — the 2026-10-18 ruling — named
|
|
59
|
+
* per tier so one can move without the other. */
|
|
60
|
+
--kol-rail-w-app: 380px;
|
|
61
|
+
--kol-rail-w-site: 380px;
|
|
62
|
+
/* THE RAIL'S INSET IS 16, EVERY RAIL, EVERY WIDTH (his review 2026-10-25: *"the entire padding on the bottom rail and
|
|
63
|
+
side rail is completely different then the navrail? why dont we unify?"* · then, on 20: *"MAKE 16!!!"*). It was the
|
|
64
|
+
overlay inset (20 · 24 from 768); an hour at the page's 48 read as *"you went backwards"*, 20 as still too much. */
|
|
65
|
+
--kol-pad-rail-app: var(--kol-spacing-4);
|
|
66
|
+
--kol-pad-rail-site: var(--kol-pad-overlay);
|
|
67
|
+
|
|
52
68
|
/* CARD padding (2026-08-15, content-card ruling) — flat, stepped by the
|
|
53
69
|
* card's `size` prop, never by breakpoint. 12/16/24. */
|
|
54
70
|
--kol-pad-card-sm: 0.75rem;
|