skill
Adom UI Design System
Public Made by Adomby adom
How the AI builds and tests interfaces people love to use in Adom. Ships as one installable skill that bundles focused skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths).
← Commit history
2.20.0 (doc only): a pure layout number needs no slot - the embedded font makes a container Chrome at 734 reproduce his geometry; force the panel open before probing
2 files changed
+37−1
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-ui-design",- "version": "2.19.3",+ "version": "2.20.0", "type": "skill", "description": "The Adom UI Design System plus a bundle of focused UI skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths, dark-default, input-feedback, settings-layout). One install drops the whole set of skill files onto your container, plus shared icon assets (the settings cog) so every Adom app draws the same glyph.", "dependencies": {},
skills/newbie-panel/SKILL.md+36@@ -672,6 +672,37 @@ The general form, worth more than the panel: **when an instrument can detect tha preconditions are unmet, it must refuse, not degrade.** Degrading produces confident wrong answers that cost someone a bug hunt. +### A PURE LAYOUT NUMBER DOES NOT NEED A SLOT ON HIS MACHINE++**The module embeds Satoshi as base64, so the font program in a container is byte-identical to+his.** Serve your real page, load it in the puppeteer Chrome at `--window-size=734` (his+scroller's client box), and you reproduce his exact geometry with no bridge call and no slot.++```+NOT /usr/bin/chromium-browser — a snap stub that does not run+USE ~/.cache/puppeteer/chrome/linux-*/chrome-linux64/chrome+```++kicad produced its corrected headroom table this way: cell 342px, worst slack 141px, columns+2, twelve of twelve. **It is not a substitute for a live check on his box** — a real render,+his renderer, his ah — but for a pure layout number it is honest and free, and it is why the+retraction took minutes rather than a queue position.++Use it for anything geometric. Save the slot for what only his machine can answer: the running+process version, the real control API, and a real user gesture.++### ⛔ FORCE THE PANEL OPEN BEFORE MEASURING. ZERO IS THE SHAPE OF HAVING MEASURED NOTHING.++The panel carries `hidden` when collapsed, and **every rect in a hidden subtree is 0**. kicad's+first probe run therefore returned `have: 0` and `slack: -164` on all six rows, which reads+exactly like catastrophic truncation rather than like an unmeasured panel.++`selfCheck` already refuses in this case (it returns `invalid: true` at 0px width), so the trap+is only reachable from a probe you write yourself — which is the argument for using the row.++Same family as the unforegrounded-tab trap, and the same one-line lesson, which is kicad's:+**zero is almost never a measurement, it is the shape of having measured nothing.**+ ### Prove it in one call ```js@@ -1231,6 +1262,11 @@ Neither can detect overflow in either direction for the reason that they are not text at all. Only a probe that lays the text out unconstrained can. | the offscreen `nowrap` probe | (correct) | reports true slack, 141–180px here | +The first row's asymmetry was **tested, not reasoned**: kicad appended a deliberately over-long+phrase as a control and the old expression read -434, identical to the probe. **It goes+correctly negative and only saturates upward, and that asymmetry is exactly what makes it look+trustworthy.**+ The second is strictly worse than the first and **agreed with it for an entirely unrelated reason**, which is how "two apps independently measured 0px" became persuasive. It was not two readings of one metric; it was two broken metrics meeting at their common floor.