@justai/cuts 0.85.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 +36 -25
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justai/cuts",
3
- "version": "0.85.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,36 +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 ─────────────────────────────────────────────────────────────────
353
+ *
354
+ * queries: toolbar icon size · 20 · why is my icon smaller than the others · 26.67 · the mark
355
+ * looks small · icon ink
356
+ *
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.
355
360
  *
356
- * queries: toolbar icon sizes · why is the first icon bigger · 20 and 19 · first position
361
+ * One number, two boxes, because a viewBox is not a drawing:
357
362
  *
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:
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
361
365
  *
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
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.
370
+ *
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; }
375
+
376
+ /* ── THE FIRST POSITION STARTS WHERE THE ROW STARTS ─────────────────────────────────────────
365
377
  *
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.
378
+ * queries: the first icon is further in on a child persona · navParent inset · -7px ·
379
+ * the row starts in a different place
370
380
  *
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.
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.
375
386
  *
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; }
381
- .tb-nav :global(svg) { width: 19px; height: 19px; }
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. */
391
+ .tb-left > .tb-nav-group:first-child > .tb-nav:first-child { margin-inline-start: -7px; }
392
+ .tb-nav :global(svg) { width: 20px; height: 20px; }
382
393
 
383
394
  /* ── EQUAL INK, TWO BOXES ────────────────────────────────────────────────────────────────────
384
395
  *
@@ -401,7 +412,7 @@ import AuthMount from "./AuthMount.astro";
401
412
  * app.zone settled it, qr arrived at the identical number, and qr's own comment says why it is
402
413
  * here: *"otherwise every persona has to remember to carry it, which is precisely the thing the
403
414
  * shared shell exists to prevent."* */
404
- .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; }
405
416
 
406
417
  /* THE BUBBLE HANGS. Its silhouette's centre measures 1.05px below the line the other three sit on
407
418
  (39.05 against 38.0) because the tail is part of the shape and pulls the box down with it — the