@kolkrabbi/kol-theme 0.189.0 → 0.191.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 CHANGED
@@ -450,6 +450,30 @@
450
450
  /* near is not enough for a line — it lights on the edge itself, not 20px out */
451
451
  .kol-rail-grab--line.is-near:not(:hover):not(.is-dragging):not(:focus-visible)::before { opacity: 0; }
452
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
+
453
477
  /* A RIGHT-HAND RAIL's handle sits on its LEFT edge, facing the page (2026-09-30 — the modifier
454
478
  * EditorShell has stamped since 0.x, `kol-rail-grab--${side}`, had no rule, so a right rail's pill
455
479
  * sat on its outer edge; the workshop shell's right rail needs the same). */
@@ -242,3 +242,16 @@
242
242
  * Nine apps each carried their own copy; this file is loaded by both `core` and the umbrella, so every
243
243
  * KOL app gets it. `none`, not `-x` — that stopped only the sideways bounce. */
244
244
  html { overscroll-behavior: none; }
245
+
246
+ /* THE PAGE HAS A GROUND (StandaloneSafeAreaAndPageGround, kol-mirror 2026-10-26): saved to the iPhone
247
+ * home screen with `black-translucent` + `viewport-fit=cover`, the viewport is shorter than the screen by
248
+ * the top inset, and an unpainted `html` shows the bare canvas white below the shell and behind the status
249
+ * bar. Tokens alone paint nothing; kol-framework painted it, and apps without it (Mirror, Monitor) did not. */
250
+ html { background: var(--kol-surface-primary); }
251
+
252
+ /* Standalone, the status bar sits over the page: pad the top inset so a title clears it. The padding also
253
+ * pushes the content one inset past the short viewport, so the overflow covers the bottom — deliberate, and
254
+ * the ground above keeps whatever shows there dark. A browser tab reports no inset and pays nothing. */
255
+ @media (display-mode: standalone) {
256
+ body { padding-top: env(safe-area-inset-top, 0px); }
257
+ }
@@ -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
 
@@ -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
- --kol-shell-rail-open: 264px;
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
- @media (min-width: 1536px) { :root { --kol-shell-rail-open: 320px; } }
41
+
40
42
 
41
43
  /* ── PageShell ──────────────────────────────────────────────────────────── */
42
44
 
@@ -52,14 +52,17 @@
52
52
  /* RAIL TIERS (RailKit, kol-monitor 2026-10-24 — user: *"currently settings is showing 380 wide and padding is totally
53
53
  * different in the rail and the settings"*). One width and one padding per tier, the same `app` · `site` split the
54
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;
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
61
  --kol-rail-w-site: 380px;
62
- --kol-pad-rail-app: var(--kol-pad-overlay);
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);
63
66
  --kol-pad-rail-site: var(--kol-pad-overlay);
64
67
 
65
68
  /* CARD padding (2026-08-15, content-card ruling) — flat, stepped by the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.189.0",
3
+ "version": "0.191.0",
4
4
  "description": "Tokens and base CSS",
5
5
  "license": "MIT",
6
6
  "type": "module",