@justai/cuts 0.86.0 → 0.87.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/Toolbar.astro +31 -35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justai/cuts",
3
- "version": "0.86.0",
3
+ "version": "0.87.0",
4
4
  "description": "A persona's named parts — the page shell that holds them, and the cuts themselves.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
package/src/Toolbar.astro CHANGED
@@ -349,51 +349,47 @@ import AuthMount from "./AuthMount.astro";
349
349
  So the difference stays, and it is a difference in ink rather than in box: mark ~19px, glyphs ~14.3px
350
350
  inside the same 19px. If the row is ever to read level, the way there is to grow the GLYPHS, not to
351
351
  shrink the identity. */
352
- .tb-nav.tb-mark :global(img) { width: 19px; height: 19px; }
353
-
354
- /* ── WHATEVER IS FIRST IN THE ROW READS AT 20; EVERYTHING AFTER IT AT 19 ────────────────────
352
+ /* ── EVERY ICON READS AT 20 ─────────────────────────────────────────────────────────────────
355
353
  *
356
- * queries: toolbar icon sizes · why is the first icon bigger · 20 and 19 · first position
354
+ * queries: toolbar icon size · 20 · why is my icon smaller than the others · 26.67 · the mark
355
+ * looks small · icon ink
357
356
  *
358
- * The founder's rule, with app.zone's own mark as the reference every icon is measured against.
359
- * It is POSITIONAL, not about which icon happens to be there — the row is saying that the first
360
- * thing in it is not one of the sections, and that is true whatever fills the slot:
357
+ * The founder's rule, and it is about the DRAWING rather than the box: an icon's picture hits 20
358
+ * on its longer side, whichever side its design naturally uses. A bolt is tall and narrow and hits
359
+ * 20 on its height; a folder hits it on its width. The container is whatever that takes.
361
360
  *
362
- * a persona `BackToZone` — the way out to app.zone
363
- * a child persona the parent's face — the way up
364
- * app.zone itself its OWN mark, because there is no way out of the zone from the zone
361
+ * One number, two boxes, because a viewBox is not a drawing:
365
362
  *
366
- * Written structurally for that reason. `BackToZone` sizes itself; when it is absent the nav group
367
- * becomes the first child of `.tb-left`, and its first item is what a person sees first. Expressed
368
- * as a selector rather than a list of ids, a fourth arrangement is right without anyone editing
369
- * this file — which is what "positional" has to mean to be worth the words.
363
+ * a MARK fills its own viewBox → a 20px box puts 20px on screen
364
+ * a GLYPH sits inside 18 of 24 (0.75) → 20 / 0.75 = 26.67px
370
365
  *
371
- * Measured across nine live surfaces first: `home` was 20 on eleven personas and 19 on qr, which
372
- * had overridden it; the three children's parent icon was 19; auth's was 19 because I set it there
373
- * an hour earlier having read the drift backwards; app.zone's own mark was 19 while being the
374
- * first thing in its row. `BackToZone`'s default was right the whole time.
366
+ * A persona whose mark does NOT fill its viewBox needs its own number, and that is where the
367
+ * confusion came from: those marks looked small in the same box as everything else because their
368
+ * drawing occupies less of it. The box is derived — 20 divided by how much of the viewBox the
369
+ * drawing uses — so a redraw changes it, and the comment beside each one says so.
375
370
  *
376
- * The first slot always holds a MARK — a drawing that fills its own viewBox — so a 20px box is
377
- * 20px of ink. A glyph there would need 26.67 to read the same, and if one ever lands in that slot
378
- * this rule is where the exception belongs. */
379
- .tb-left > .tb-nav-group:first-child > .tb-nav:first-child :global(svg),
380
- .tb-left > .tb-nav-group:first-child > .tb-nav:first-child :global(img) { width: 20px; height: 20px; }
371
+ * (This replaced a 19-with-a-20-in-front rule that lasted an afternoon. The distinction was real —
372
+ * the first slot is not one of the sections — but it is said by POSITION and the -7px pull above,
373
+ * not by a pixel of size nobody can see and everybody can drift.) */
374
+ .tb-nav.tb-mark :global(img) { width: 20px; height: 20px; }
381
375
 
382
- /* ── AND IT STARTS WHERE BackToZone STARTS ──────────────────────────────────────────────────
376
+ /* ── THE FIRST POSITION STARTS WHERE THE ROW STARTS ─────────────────────────────────────────
383
377
  *
384
- * queries: the first icon is further in on a child persona · the row starts in a different place ·
385
- * navParent inset · margin-inline-start -7px
378
+ * queries: the first icon is further in on a child persona · navParent inset · -7px ·
379
+ * the row starts in a different place
386
380
  *
387
- * `BackToZone` pulls itself 7px left so the row begins flush with the bar's edge rather than a
388
- * tap target's worth inside it. Anything standing in the first position has the same job and needs
389
- * the same pull — measured on a live child before this landed: the parent's face sat 26px from the
390
- * bar's edge where a persona's way out sits at 17. Nine pixels, and the founder saw it by opening
391
- * one and then the other.
381
+ * `BackToZone` pulls itself 7px left so the row begins flush with the bar's edge rather than a tap
382
+ * target's worth inside it. Anything standing in the first position has the same job and needs the
383
+ * same pull — measured on a live child, the parent's face sat 26px from the bar's edge where a
384
+ * persona's way out sits at 17. Nine pixels, found by eye before any probe looked: a person moving
385
+ * between two surfaces sees a difference no single page can show.
392
386
  *
393
- * Same selector as the size above, for the same reason: the first slot is a POSITION, and its two
394
- * properties should be decided in one place or they will drift apart again. */
387
+ * POSITION IS WHAT MAKES THE FIRST SLOT DIFFERENT — not size. Every icon reads at 20; what says
388
+ * "this one is the way out rather than a section" is where it sits, flush to the edge, before the
389
+ * group. Structural for that reason: BackToZone sizes and pulls itself, and when it is absent the
390
+ * nav group becomes the first child of `.tb-left` and its first item inherits the job. */
395
391
  .tb-left > .tb-nav-group:first-child > .tb-nav:first-child { margin-inline-start: -7px; }
396
- .tb-nav :global(svg) { width: 19px; height: 19px; }
392
+ .tb-nav :global(svg) { width: 20px; height: 20px; }
397
393
 
398
394
  /* ── EQUAL INK, TWO BOXES ────────────────────────────────────────────────────────────────────
399
395
  *
@@ -416,7 +412,7 @@ import AuthMount from "./AuthMount.astro";
416
412
  * app.zone settled it, qr arrived at the identical number, and qr's own comment says why it is
417
413
  * here: *"otherwise every persona has to remember to carry it, which is precisely the thing the
418
414
  * shared shell exists to prevent."* */
419
- .tb-nav:not(.tb-mark) :global(svg) { width: 25.33px; height: 25.33px; }
415
+ .tb-nav:not(.tb-mark) :global(svg) { width: 26.67px; height: 26.67px; }
420
416
 
421
417
  /* THE BUBBLE HANGS. Its silhouette's centre measures 1.05px below the line the other three sit on
422
418
  (39.05 against 38.0) because the tail is part of the shape and pulls the box down with it — the