editor-shell 0.17.0 → 0.19.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/dist/panel/panel.css +78 -8
- package/package.json +1 -1
package/dist/panel/panel.css
CHANGED
|
@@ -43,9 +43,72 @@
|
|
|
43
43
|
`calc()` off it, which would claim an arithmetic relationship that does not
|
|
44
44
|
exist: 28 was measured, it is not "10 plus 18". The max() is what makes this a
|
|
45
45
|
FLOOR rather than a default — raise the token past a rhythm and that row rises
|
|
46
|
-
with it instead of quietly staying tighter than everything around it.
|
|
46
|
+
with it instead of quietly staying tighter than everything around it.
|
|
47
|
+
|
|
48
|
+
NOW 16, AND 10 WAS WORTH NOTHING ON SCREEN (card 66206). 66203 shipped the
|
|
49
|
+
token at 10 and Lewis could see no change at all, which is not a bug in it —
|
|
50
|
+
it is what a floor of 10 was always going to do here. Four of the six gaps
|
|
51
|
+
(36, 28, 16, 14) were already above it, and of the two that were not, one is
|
|
52
|
+
the dead `.es-group + .es-group` rule below. So 10 could only ever reach the
|
|
53
|
+
drill list, and there it landed on the number that list already had.
|
|
54
|
+
|
|
55
|
+
16 is Lewis's own, picked on 2026-08-28 once that was shown to him, and it is
|
|
56
|
+
the first value that moves anything a merchant looks at. MEASURED in Chromium
|
|
57
|
+
against these stylesheets (`tests/fixtures/panel-row-spacing.html`):
|
|
58
|
+
|
|
59
|
+
one drill row to the next, word to word 23.40px → 35.40px
|
|
60
|
+
a group head to its first setting 14px → 16px
|
|
61
|
+
one setting to the next 28px unchanged
|
|
62
|
+
a one-line boolean row 16px unchanged
|
|
63
|
+
a heading, after the row above it 36px unchanged
|
|
64
|
+
|
|
65
|
+
The three measured rhythms do not move because 16 is still under them, which
|
|
66
|
+
is the floor doing exactly what it was built to do. */
|
|
67
|
+
/* ── the rhythms: the numbers under the floor, given names (card 66228) ────── */
|
|
68
|
+
|
|
69
|
+
/* THE FLOOR ABOVE IS NOT THE RHYTHM, and handing a consumer the floor was the
|
|
70
|
+
whole problem. `--es-row-gap` answers 16 for all five gaps below alike; what
|
|
71
|
+
the storefront's Layers tree needs in order to "follow the shell's spacing"
|
|
72
|
+
is the RHYTHM — 28 between two settings against 7 inside one. Under the floor
|
|
73
|
+
those were bare literals, so the only way to follow them was to COPY them
|
|
74
|
+
into `efficient-shop/components/storefront-editor.css`: a second source of
|
|
75
|
+
truth for numbers this sheet was already the source of.
|
|
76
|
+
|
|
77
|
+
THE VALUES DID NOT CHANGE. Every one is the number that was there before,
|
|
78
|
+
moved and named; `tests/panel-layout.test.ts` (g) asserts each still resolves
|
|
79
|
+
to what it resolved to, and (a) still reads the scale off the sheet.
|
|
80
|
+
|
|
81
|
+
NAMES, NOT ARITHMETIC, for the reason this sheet already gives one rule down:
|
|
82
|
+
28 was measured (card 8802.d), it is not "16 plus 12". `calc()` off the floor
|
|
83
|
+
would claim a relationship nobody decided; a name states the value and the
|
|
84
|
+
job it does.
|
|
85
|
+
|
|
86
|
+
WHAT A CONSUMER IS ACTUALLY BUYING is the pair at the end. `--es-rhythm-between`
|
|
87
|
+
and `--es-rhythm-within` are the two halves of the one rule that has to
|
|
88
|
+
survive being re-scaled: the gap INSIDE a thing stays plainly smaller than
|
|
89
|
+
the gap BETWEEN things, because that inside gap is the ONLY thing saying
|
|
90
|
+
which label owns which control. A tree at 28px a row would scroll forever, so
|
|
91
|
+
a consumer is expected to scale these — and (g) is what stops the two from
|
|
92
|
+
drifting together while it does. */
|
|
47
93
|
.es-editor {
|
|
48
|
-
|
|
94
|
+
/* THE FLOOR (card 66206) — no row-to-row gap on this panel resolves below it. */
|
|
95
|
+
--es-row-gap: 16px;
|
|
96
|
+
|
|
97
|
+
/* THE RHYTHMS. All five are declared in THIS rule and not a second
|
|
98
|
+
`.es-editor` block: the panel has ONE root, and a second block would put
|
|
99
|
+
half the panel's spacing somewhere a reader — and the spec, which reads the
|
|
100
|
+
root by selector — would not look. */
|
|
101
|
+
/* between one group heading and whatever is above it */
|
|
102
|
+
--es-rhythm-group: 36px;
|
|
103
|
+
/* between a group heading and the first setting under it — closer, because
|
|
104
|
+
that setting belongs to that heading */
|
|
105
|
+
--es-rhythm-group-first: 14px;
|
|
106
|
+
/* BETWEEN two settings */
|
|
107
|
+
--es-rhythm-between: 28px;
|
|
108
|
+
/* between two one-line rows, which are one line tall and need less air */
|
|
109
|
+
--es-rhythm-between-tight: 16px;
|
|
110
|
+
/* WITHIN one setting: its label to its own control */
|
|
111
|
+
--es-rhythm-within: 7px;
|
|
49
112
|
}
|
|
50
113
|
|
|
51
114
|
/* ── the tab strip: a segmented control ────────────────────────────────────── */
|
|
@@ -318,7 +381,7 @@
|
|
|
318
381
|
/* A heading needs more air above it than the settings it heads have between
|
|
319
382
|
them (28px), or it reads as one more row. Floored on `--es-row-gap` so it
|
|
320
383
|
rises with the rest of the panel (card 66203). */
|
|
321
|
-
margin: max(var(--es-row-gap),
|
|
384
|
+
margin: max(var(--es-row-gap), var(--es-rhythm-group)) 0 0;
|
|
322
385
|
}
|
|
323
386
|
|
|
324
387
|
button.es-group-head {
|
|
@@ -361,7 +424,7 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
|
|
|
361
424
|
.es-group-body[hidden] { display: none; }
|
|
362
425
|
/* The first setting under a head sits CLOSER than the settings below it do to
|
|
363
426
|
each other — it belongs to that head, and 28px would cut it loose. */
|
|
364
|
-
.es-group-body > .es-field:first-child { margin-top: max(var(--es-row-gap),
|
|
427
|
+
.es-group-body > .es-field:first-child { margin-top: max(var(--es-row-gap), var(--es-rhythm-group-first)); }
|
|
365
428
|
|
|
366
429
|
/* ── one setting ───────────────────────────────────────────────────────────── */
|
|
367
430
|
|
|
@@ -375,13 +438,16 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
|
|
|
375
438
|
|
|
376
439
|
Floored, not replaced, and not `calc()`: 28 was measured, it is not "10 plus
|
|
377
440
|
18", so arithmetic off the token would claim a relationship nobody decided. */
|
|
378
|
-
.es-field { margin-top: max(var(--es-row-gap),
|
|
441
|
+
.es-field { margin-top: max(var(--es-row-gap), var(--es-rhythm-between)); }
|
|
379
442
|
|
|
380
443
|
.es-field-head {
|
|
381
444
|
display: flex;
|
|
382
445
|
align-items: center;
|
|
383
446
|
gap: 8px;
|
|
384
|
-
|
|
447
|
+
/* THE ONE THAT SAYS WHICH LABEL OWNS WHICH CONTROL. Named so a consumer can
|
|
448
|
+
read it (card 66228) — it is half of the rule, and the half that is easiest
|
|
449
|
+
to lose when someone re-scales the other half. */
|
|
450
|
+
margin-bottom: var(--es-rhythm-within);
|
|
385
451
|
min-height: 16px;
|
|
386
452
|
}
|
|
387
453
|
|
|
@@ -441,7 +507,7 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
|
|
|
441
507
|
A one-line row is one line tall, so it needs less air above it than a
|
|
442
508
|
two-line setting does — 16, not 28 — and it is floored on the token for the
|
|
443
509
|
same reason everything else here is (card 66203). */
|
|
444
|
-
.es-field.is-inline { margin-top: max(var(--es-row-gap),
|
|
510
|
+
.es-field.is-inline { margin-top: max(var(--es-row-gap), var(--es-rhythm-between-tight)); }
|
|
445
511
|
.es-field.is-inline .es-field-head { margin-bottom: 0; }
|
|
446
512
|
|
|
447
513
|
/* ── the switch: one yes-or-no shape, both editors ─────────────────────────── */
|
|
@@ -542,7 +608,11 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
|
|
|
542
608
|
hairline between them and adds no margin — so the air a merchant sees is
|
|
543
609
|
each row's own vertical padding, on its own side of the line. MEASURED in
|
|
544
610
|
Chromium against these stylesheets (`tests/fixtures/panel-row-spacing.html`):
|
|
545
|
-
|
|
611
|
+
17.40px above the rule, 18.00px below it, 35.40px between two rows' words.
|
|
612
|
+
At the 10px the token shipped with (card 66203) those were 11.40, 12.00 and
|
|
613
|
+
23.40 — this list is the ONLY place on the panel where raising the token to
|
|
614
|
+
16 moves a measured distance rather than a declared one, and it is the row
|
|
615
|
+
Lewis was looking at when he asked (card 66206).
|
|
546
616
|
|
|
547
617
|
A MARGIN WOULD BE THE WRONG FIX. A border-top with space above it detaches
|
|
548
618
|
from the row it belongs to and reads as a line floating in the panel rather
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "editor-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Shared editor-chrome primitives for the EFFICIENT editors: EditorRail (a Next-16-safe left icon-rail leaf), the shell token layer, and GoldTextInput — type in place and watch the markup formatting appear as you type.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Lewis Liu",
|