@signal9/era-ui 8.0.0 → 9.0.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 (224) hide show
  1. package/dist/ai/artifact/artifact-close.svelte +1 -1
  2. package/dist/ai/artifact/artifact-content.svelte +1 -1
  3. package/dist/ai/artifact/artifact-header.svelte +1 -1
  4. package/dist/ai/artifact/artifact.svelte +1 -1
  5. package/dist/ai/chain-of-thought/chain-of-thought-step.svelte +1 -1
  6. package/dist/ai/chain-of-thought/chain-of-thought.svelte +1 -1
  7. package/dist/ai/checkpoint.svelte +1 -1
  8. package/dist/ai/confirmation/confirmation-args.svelte +2 -2
  9. package/dist/ai/confirmation/confirmation.svelte +4 -4
  10. package/dist/ai/context/context.svelte +1 -1
  11. package/dist/ai/conversation/conversation-content.svelte +1 -1
  12. package/dist/ai/conversation/conversation-empty-state.svelte +1 -1
  13. package/dist/ai/conversation/conversation-scroll-button.svelte +2 -2
  14. package/dist/ai/conversations/conversations-group.svelte +1 -1
  15. package/dist/ai/conversations/conversations-item.svelte +7 -7
  16. package/dist/ai/error-panel/error-panel.svelte +4 -4
  17. package/dist/ai/image.svelte +1 -1
  18. package/dist/ai/inline-citation/inline-citation.svelte +2 -2
  19. package/dist/ai/loader.svelte +1 -1
  20. package/dist/ai/message/message-branch-selector.svelte +3 -3
  21. package/dist/ai/message/message-content.svelte +1 -1
  22. package/dist/ai/message/message-usage.svelte +4 -4
  23. package/dist/ai/model-selector/model-selector.svelte +1 -1
  24. package/dist/ai/open-in-chat/open-in-chat.svelte +2 -2
  25. package/dist/ai/plan/plan-content.svelte +1 -1
  26. package/dist/ai/plan/plan-header.svelte +2 -2
  27. package/dist/ai/plan/plan.svelte +1 -1
  28. package/dist/ai/prompt-input/prompt-input-add-attachments.svelte +1 -1
  29. package/dist/ai/prompt-input/prompt-input-attachments.svelte +5 -5
  30. package/dist/ai/prompt-input/prompt-input-submit.svelte +3 -3
  31. package/dist/ai/prompt-input/prompt-input-textarea.svelte +3 -3
  32. package/dist/ai/prompt-input/prompt-input.svelte +1 -1
  33. package/dist/ai/queue/queue-item.svelte +1 -1
  34. package/dist/ai/queue/queue.svelte +1 -1
  35. package/dist/ai/reasoning/reasoning-trigger.svelte +1 -1
  36. package/dist/ai/response/response.svelte +2 -2
  37. package/dist/ai/run-status/run-status.svelte +5 -5
  38. package/dist/ai/runtime-feed/runtime-feed-item.svelte +1 -1
  39. package/dist/ai/sources/source.svelte +1 -1
  40. package/dist/ai/sources/sources-trigger.svelte +1 -1
  41. package/dist/ai/structured-value/structured-value.svelte +1 -1
  42. package/dist/ai/suggestion/suggestion.svelte +2 -2
  43. package/dist/ai/swarm/swarm-agent.svelte +1 -1
  44. package/dist/ai/swarm/swarm-artifact.svelte +1 -1
  45. package/dist/ai/swarm/swarm-barrier.svelte +1 -1
  46. package/dist/ai/swarm/swarm-barriers.svelte +1 -1
  47. package/dist/ai/swarm/swarm-counts.svelte +1 -1
  48. package/dist/ai/swarm/swarm-footer.svelte +1 -1
  49. package/dist/ai/swarm/swarm-grid.svelte +2 -2
  50. package/dist/ai/swarm/swarm-header.svelte +1 -1
  51. package/dist/ai/swarm/swarm-node.svelte +7 -7
  52. package/dist/ai/swarm/swarm-role.svelte +1 -1
  53. package/dist/ai/swarm/swarm-root.svelte +1 -1
  54. package/dist/ai/swarm/swarm-sandbox.svelte +3 -3
  55. package/dist/ai/swarm/swarm-tree.svelte +1 -1
  56. package/dist/ai/task/task-content.svelte +1 -1
  57. package/dist/ai/task/task-trigger.svelte +1 -1
  58. package/dist/ai/tool/tool-chip.svelte +2 -2
  59. package/dist/ai/tool/tool-exec.svelte +3 -3
  60. package/dist/ai/tool/tool-header.svelte +1 -1
  61. package/dist/ai/web-preview/web-preview.svelte +3 -3
  62. package/dist/ai/workflow/canvas.svelte +1 -1
  63. package/dist/ai/workflow/node.svelte +3 -3
  64. package/dist/apps/llm-shell/llm-shell.svelte +7 -7
  65. package/dist/apps/notes/editor/slash-menu.svelte +7 -5
  66. package/dist/apps/notes/notes.svelte +9 -9
  67. package/dist/dev/audit/audits/_helpers.js +1 -1
  68. package/dist/dev/audit/audits/resting-gap.js +1 -1
  69. package/dist/dev/audit/audits/single-glyph-square.js +2 -2
  70. package/dist/dev/audit-overlay.svelte +7 -7
  71. package/dist/dev/measure.d.ts +1 -1
  72. package/dist/dev/measure.js +1 -1
  73. package/dist/docs/badge.md +1 -1
  74. package/dist/docs/css-utilities.d.ts +1 -1
  75. package/dist/docs/css-utilities.js +8 -8
  76. package/dist/docs/llms-txt.js +1 -1
  77. package/dist/era-ui.css +1 -1
  78. package/dist/generated-docs/badge.md +1 -1
  79. package/dist/generated-docs/bar.md +2 -2
  80. package/dist/generated-docs/chip.md +1 -1
  81. package/dist/generated-docs/input.md +1 -1
  82. package/dist/generated-docs/llms-full.txt +99 -119
  83. package/dist/generated-docs/llms.txt +11 -12
  84. package/dist/generated-docs/manifest.json +52 -65
  85. package/dist/generated-docs/utilities.json +45 -57
  86. package/dist/generated-docs/utilities.md +87 -106
  87. package/dist/os/notification-center.svelte +6 -6
  88. package/dist/os/pane.svelte +7 -5
  89. package/dist/os/taskbar.svelte +10 -10
  90. package/dist/os/toast.svelte +3 -3
  91. package/dist/os/toaster.svelte +1 -1
  92. package/dist/styles/density.css +93 -67
  93. package/dist/styles/index.css +89 -101
  94. package/dist/styles/prose.css +12 -12
  95. package/dist/styles/surfaces/base.css +3 -3
  96. package/dist/styles/surfaces/bevel.css +2 -2
  97. package/dist/ui/accordion/accordion-trigger.svelte +2 -2
  98. package/dist/ui/alert-dialog/alert-dialog-content.svelte +1 -1
  99. package/dist/ui/aspect-ratio/aspect-ratio.svelte +1 -1
  100. package/dist/ui/avatar/avatar-root.svelte +1 -1
  101. package/dist/ui/badge/badge.svelte +1 -1
  102. package/dist/ui/badge/badge.svelte.d.ts +1 -1
  103. package/dist/ui/bar/bar.svelte +23 -15
  104. package/dist/ui/bar/bar.svelte.d.ts +26 -26
  105. package/dist/ui/button/button.svelte +1 -1
  106. package/dist/ui/button/variants.js +18 -18
  107. package/dist/ui/button-group/button-group.svelte +2 -2
  108. package/dist/ui/calendar/calendar-day.svelte +1 -1
  109. package/dist/ui/calendar/calendar-head-cell.svelte +1 -1
  110. package/dist/ui/calendar/calendar-header.svelte +1 -1
  111. package/dist/ui/calendar/calendar-next-button.svelte +1 -1
  112. package/dist/ui/calendar/calendar-prev-button.svelte +1 -1
  113. package/dist/ui/card/card.svelte +5 -5
  114. package/dist/ui/card/card.svelte.d.ts +4 -4
  115. package/dist/ui/checkbox/checkbox.svelte +3 -3
  116. package/dist/ui/chip/chip.svelte +14 -10
  117. package/dist/ui/chip/chip.svelte.d.ts +7 -7
  118. package/dist/ui/code-block/code-block.svelte +6 -6
  119. package/dist/ui/collapsible/collapsible-trigger.svelte +1 -1
  120. package/dist/ui/combobox/combobox-content.svelte +1 -1
  121. package/dist/ui/combobox/combobox-empty.svelte +4 -1
  122. package/dist/ui/combobox/combobox-group-heading.svelte +4 -1
  123. package/dist/ui/combobox/combobox-item.svelte +1 -1
  124. package/dist/ui/combobox/combobox-trigger.svelte +2 -2
  125. package/dist/ui/command/command-group-heading.svelte +4 -1
  126. package/dist/ui/command/command-item.svelte +1 -1
  127. package/dist/ui/command/command-link-item.svelte +1 -1
  128. package/dist/ui/command/command-root.svelte +1 -1
  129. package/dist/ui/command-bar/command-bar.svelte +16 -12
  130. package/dist/ui/context-menu/context-menu-checkbox-item.svelte +1 -1
  131. package/dist/ui/context-menu/context-menu-content.svelte +1 -1
  132. package/dist/ui/context-menu/context-menu-group-heading.svelte +4 -1
  133. package/dist/ui/context-menu/context-menu-item.svelte +1 -1
  134. package/dist/ui/context-menu/context-menu-radio-item.svelte +1 -1
  135. package/dist/ui/context-menu/context-menu-sub-content.svelte +1 -1
  136. package/dist/ui/context-menu/context-menu-sub-trigger.svelte +2 -2
  137. package/dist/ui/copy-button/copy-button.svelte +2 -2
  138. package/dist/ui/cycle/cycle.svelte +1 -1
  139. package/dist/ui/date-field/date-field-segment.svelte +1 -1
  140. package/dist/ui/date-picker/date-picker-content.svelte +1 -1
  141. package/dist/ui/date-picker/date-picker-day.svelte +1 -1
  142. package/dist/ui/date-picker/date-picker-head-cell.svelte +1 -1
  143. package/dist/ui/date-picker/date-picker-header.svelte +1 -1
  144. package/dist/ui/date-picker/date-picker-next-button.svelte +1 -1
  145. package/dist/ui/date-picker/date-picker-prev-button.svelte +1 -1
  146. package/dist/ui/date-picker/date-picker-segment.svelte +1 -1
  147. package/dist/ui/date-picker/date-picker-trigger.svelte +2 -2
  148. package/dist/ui/date-range-field/date-range-field-segment.svelte +1 -1
  149. package/dist/ui/date-range-picker/date-range-picker-content.svelte +1 -1
  150. package/dist/ui/date-range-picker/date-range-picker-day.svelte +1 -1
  151. package/dist/ui/date-range-picker/date-range-picker-head-cell.svelte +1 -1
  152. package/dist/ui/date-range-picker/date-range-picker-header.svelte +1 -1
  153. package/dist/ui/date-range-picker/date-range-picker-next-button.svelte +1 -1
  154. package/dist/ui/date-range-picker/date-range-picker-prev-button.svelte +1 -1
  155. package/dist/ui/date-range-picker/date-range-picker-segment.svelte +1 -1
  156. package/dist/ui/date-range-picker/date-range-picker-trigger.svelte +2 -2
  157. package/dist/ui/dialog/dialog-content.svelte +4 -2
  158. package/dist/ui/dialog/dialog-header.svelte +2 -2
  159. package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +1 -1
  160. package/dist/ui/dropdown-menu/dropdown-menu-content.svelte +1 -1
  161. package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte +4 -1
  162. package/dist/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
  163. package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte +1 -1
  164. package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte +1 -1
  165. package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
  166. package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte +2 -2
  167. package/dist/ui/file-upload/file-upload.svelte +2 -2
  168. package/dist/ui/input/input.svelte +3 -3
  169. package/dist/ui/input/input.svelte.d.ts +1 -1
  170. package/dist/ui/input/textarea.svelte +1 -1
  171. package/dist/ui/input/variants.d.ts +24 -24
  172. package/dist/ui/input/variants.js +9 -9
  173. package/dist/ui/kv/kv.svelte +2 -2
  174. package/dist/ui/link-preview/link-preview-content.svelte +1 -1
  175. package/dist/ui/menubar/menubar-checkbox-item.svelte +1 -1
  176. package/dist/ui/menubar/menubar-content.svelte +1 -1
  177. package/dist/ui/menubar/menubar-group-heading.svelte +4 -1
  178. package/dist/ui/menubar/menubar-item.svelte +1 -1
  179. package/dist/ui/menubar/menubar-radio-item.svelte +1 -1
  180. package/dist/ui/menubar/menubar-root.svelte +1 -1
  181. package/dist/ui/menubar/menubar-sub-content.svelte +1 -1
  182. package/dist/ui/menubar/menubar-sub-trigger.svelte +2 -2
  183. package/dist/ui/menubar/menubar-trigger.svelte +1 -1
  184. package/dist/ui/meter/meter.svelte +1 -1
  185. package/dist/ui/pagination/pagination-next-button.svelte +1 -1
  186. package/dist/ui/pagination/pagination-prev-button.svelte +1 -1
  187. package/dist/ui/pane/pane-close.svelte +2 -2
  188. package/dist/ui/pane/pane-content.svelte +1 -1
  189. package/dist/ui/pane/pane-handle.svelte +3 -3
  190. package/dist/ui/pane/pane-root.svelte +12 -12
  191. package/dist/ui/pane/pane-tab-list.svelte +1 -1
  192. package/dist/ui/pane/pane-tab-panel.svelte +1 -1
  193. package/dist/ui/pane/pane-tab.svelte +1 -1
  194. package/dist/ui/pane/pane.svelte +1 -1
  195. package/dist/ui/pin-input/pin-input-cell.svelte +1 -1
  196. package/dist/ui/popover/popover-content.svelte +1 -1
  197. package/dist/ui/progress/progress.svelte +1 -1
  198. package/dist/ui/radio-group/radio-group-item.svelte +2 -2
  199. package/dist/ui/rating-group/rating-group-item.svelte +1 -1
  200. package/dist/ui/scroll-area/scroll-area-thumb.svelte +1 -1
  201. package/dist/ui/scroll-area/scroll-area.svelte +1 -1
  202. package/dist/ui/select/select-content.svelte +1 -1
  203. package/dist/ui/select/select-group-heading.svelte +4 -1
  204. package/dist/ui/select/select-item.svelte +1 -1
  205. package/dist/ui/select/select-trigger.svelte +2 -2
  206. package/dist/ui/select/select-value.svelte +1 -1
  207. package/dist/ui/sheet/sheet-content.svelte +3 -3
  208. package/dist/ui/sheet/sheet-content.svelte.d.ts +6 -6
  209. package/dist/ui/skeleton/skeleton.svelte +3 -3
  210. package/dist/ui/skeleton/skeleton.svelte.d.ts +9 -9
  211. package/dist/ui/slider/slider-range.svelte +1 -1
  212. package/dist/ui/slider/slider-thumb.svelte +1 -1
  213. package/dist/ui/step/step-content.svelte +1 -1
  214. package/dist/ui/step/step-summary.svelte +6 -6
  215. package/dist/ui/switch/switch.svelte +3 -3
  216. package/dist/ui/table/table-cell.svelte +1 -1
  217. package/dist/ui/table/table-head-cell.svelte +1 -1
  218. package/dist/ui/time-field/time-field-segment.svelte +1 -1
  219. package/dist/ui/time-range-field/time-range-field-segment.svelte +1 -1
  220. package/dist/ui/toggle-group/toggle-group-item.svelte +1 -1
  221. package/dist/ui/tooltip/tooltip-content.svelte +1 -1
  222. package/dist/ui/video-player/video-player.svelte +44 -44
  223. package/dist/utils/index.js +4 -4
  224. package/package.json +1 -1
@@ -44,7 +44,7 @@
44
44
  * --era-gap sp/2 — inter-element gap
45
45
  * --era-inset-{xxs,sm,md} (T − text)/2 — text-symmetric content padding
46
46
  * (text is 12px at dense, 14 above)
47
- * --era-xs-inset-sm (sm − xs)/2 = sp/2 — centering an xs element inside sm
47
+ * --era-icon-inset-chip (sm − xs)/2 = sp/2 — centering an xs element inside sm
48
48
  *
49
49
  * OPTICAL PADDING (unbounded content containers)
50
50
  * ==============================================
@@ -69,17 +69,17 @@
69
69
  * reproduces the empirically-tuned old content-p curve (16/24/32/48), so this
70
70
  * names the law the system had already converged on rather than inventing one.
71
71
  *
72
- * --era-pad-sm so/2 4 / 5.6 / 7.5 / 12 — compact shells, menu panels
73
- * --era-pad-md so 8 / 11.25 / 15 / 24 — cards, card sections, dialogs, popovers
74
- * --era-pad-lg 2·so 16 / 22.5 / 30 / 48 — full content panels (docs sections)
72
+ * --era-pad-panel so/2 4 / 5.6 / 7.5 / 12 — compact shells, menu panels
73
+ * --era-pad-card so 8 / 11.25 / 15 / 24 — cards, card sections, dialogs, popovers
74
+ * --era-pad-content 2·so 16 / 22.5 / 30 / 48 — full content panels (docs sections)
75
75
  *
76
- * Whitespace share rises with mode: pad-md / h-md = 0.33 dense → 0.50 touch.
77
- * --era-content-p is kept as an alias of --era-pad-lg.
76
+ * Whitespace share rises with mode: pad-md / h-control = 0.33 dense → 0.50 touch.
77
+ * --era-content-p is kept as an alias of --era-pad-content.
78
78
  *
79
79
  * IDENTITY USED AT NESTING SITES
80
80
  * ==============================
81
81
  *
82
- * A flush xxs pill at an md-container edge needs −(inset-xxs) margin so
82
+ * A flush pill at an md-container edge needs −(inset-xxs) margin so
83
83
  * the horizontal gap equals the vertical concentric gap. Proof:
84
84
  * inset-md − xxs-inset-md
85
85
  * = (md − text)/2 − (md − xxs)/2
@@ -89,7 +89,7 @@
89
89
  * RADII (concentric progression, sp-derived)
90
90
  * ==========================================
91
91
  *
92
- * rd-T = scale · (R + (h-T − h-xs) / 2) where R = sp / φ²
92
+ * rd-T = scale · (R + (h-T − h-icon) / 2) where R = sp / φ²
93
93
  *
94
94
  * Both R and the per-tier concentric term are multiplied by scale. The corners
95
95
  * toggle flips scale 1 ↔ 0 so every rd collapses together. Because scale is
@@ -108,7 +108,7 @@
108
108
  * mechanism handles data-corners on any subtree.
109
109
  *
110
110
  * Without the * selector this wouldn't work: custom-property var() refs
111
- * resolve at computed-value time. If --era-h-lg = calc(4 * var(--era-sp)) were
111
+ * resolve at computed-value time. If --era-h-bar = calc(4 * var(--era-sp)) were
112
112
  * declared only on :root, descendants would inherit root's already-resolved
113
113
  * 2rem and no subtree override of --era-sp could retroactively change it.
114
114
  */
@@ -127,29 +127,50 @@
127
127
  /* -------------------------------------------------- */
128
128
  * {
129
129
  /* Tier heights */
130
- --era-h-xs: calc(var(--era-sp) + 0.375rem); /* 14/16/18 = sp + 6 (icon tier) */
131
- --era-icon-stroke-width: 1.75; /* Lucide SVG stroke, tuned to sit beside 14px body text */
130
+ /* THE TIER LADDER, named for what each rung IS rather than for a t-shirt size.
131
+ *
132
+ * It used to read xs / xxs / sm / md / lg, and those names actively lied: xs
133
+ * was 14px and xxs was 18, so the scale that every component, token and
134
+ * consumer is written in had "xxs" LARGER than "xs". Nobody reads it that way
135
+ * once, let alone every time. Roles cannot invert:
136
+ *
137
+ * icon 14/16/18/22 a lucide glyph, and the box that holds just one
138
+ * pill 18/20/22/26 a badge or chip — nests INSIDE a control
139
+ * chip 22/26/30/38 a standalone pill: switch track, KV row
140
+ * control 24/30/36/48 the workhorse — button, row, input, trigger
141
+ * bar 32/40/48/64 a toolbar, a page header
142
+ *
143
+ * The concentric insets read as prose now too: --era-pill-inset-control is
144
+ * "the inset that centres a pill inside a control", which is exactly what it
145
+ * computes. */
146
+ --era-h-icon: calc(var(--era-sp) + 0.375rem); /* 14/16/18/22 = sp + 6 */
147
+ --era-glyph-stroke-width: 1.75; /* Lucide SVG stroke, tuned to sit beside 14px body text */
132
148
 
133
- /* Icon-button glyph sub-tiers. The glyph normally IS the icon tier (h-xs, the
149
+ /* Icon-button glyph sub-tiers. The glyph normally IS the icon tier (h-icon, the
134
150
  sp+6 legibility floor) — that's what every text button's icon and every md/sm
135
151
  icon button uses. But when the BOX collapses toward the icon tier — xxs, and
136
- xs/icon where box == h-xs — an h-xs glyph would fill it edge to edge. So the
152
+ xs/icon where box == h-icon — an h-icon glyph would fill it edge to edge. So the
137
153
  glyph steps below the floor by 2px per tier, preserving a concentric gap:
138
154
  sp+4 in an xxs box (pad 3), sp+2 in an xs box (pad 2). The dense pads then run
139
- 2·3·4·5 across xs·xxs·sm·md — a unit step off the floor, per Button. */
140
- --era-icon-xxs: calc(var(--era-sp) + 0.25rem); /* 12/14/16 = sp + 4 (glyph in an xxs button) */
141
- --era-icon-xs: calc(
155
+ 2·3·4·5 across icon·pill·chip·control — a unit step off the floor, per Button. */
156
+ --era-glyph-pill: calc(
157
+ var(--era-sp) + 0.25rem
158
+ ); /* 12/14/16 = sp + 4 (glyph in a pill-tier button) */
159
+ --era-glyph-icon: calc(
142
160
  var(--era-sp) + 0.125rem
143
- ); /* 10/12/14 = sp + 2 (glyph in an xs/icon button) */
144
- --era-h-xxs: calc(var(--era-sp) + 0.625rem); /* 18/20/22 = sp + 10 (nested pill tier) */
145
- --era-h-sm: calc(2 * var(--era-sp) + 0.375rem); /* 22/26/30 = 2·sp + 6 (standalone pill) */
146
- --era-h-md: calc(3 * var(--era-sp)); /* 24/30/36 = 3·sp */
147
- --era-h-lg: calc(4 * var(--era-sp)); /* 32/40/48 = 4·sp */
161
+ ); /* 10/12/14 = sp + 2 (glyph in an icon-tier button) */
162
+ --era-h-pill: calc(var(--era-sp) + 0.625rem); /* 18/20/22 = sp + 10 (nested pill tier) */
163
+ --era-h-chip: calc(2 * var(--era-sp) + 0.375rem); /* 22/26/30 = 2·sp + 6 (standalone pill) */
164
+ --era-h-control: calc(3 * var(--era-sp)); /* 24/30/36 = 3·sp */
165
+ --era-h-bar: calc(4 * var(--era-sp)); /* 32/40/48 = 4·sp */
148
166
 
149
167
  /* Tier horizontal padding */
150
- --era-px-sm: calc(var(--era-sp) * 0.5); /* 4/5/6 */
151
- --era-px-md: calc(var(--era-sp) * 0.5); /* 4/5/6 */
152
- --era-px-lg: calc(var(--era-sp) * 0.5); /* 4/5/6 */
168
+ /* --era-px-chip / -control / -bar used to live here as three separate
169
+ "tier horizontal padding" tokens. All three were `sp * 0.5` the same
170
+ value as --era-gap below, so the ladder had FOUR names for one number and
171
+ a reader had to diff the definitions to learn they were identical. One
172
+ token now; if a tier ever genuinely needs its own, it earns its own name
173
+ then. */
153
174
 
154
175
  /* Inter-item gap */
155
176
  --era-gap: calc(var(--era-sp) * 0.5); /* 4/5/6 */
@@ -175,9 +196,9 @@
175
196
 
176
197
  /* Content insets — text-symmetric padding (vertical centering, reused as
177
198
  horizontal only where the content is a single square glyph). */
178
- --era-inset-xxs: max(0px, calc((var(--era-h-xxs) - var(--era-text)) / 2)); /* 3/3/4/6 */
179
- --era-inset-sm: max(0px, calc((var(--era-h-sm) - var(--era-text)) / 2)); /* 5/6/8/12 */
180
- --era-inset-md: max(0px, calc((var(--era-h-md) - var(--era-text)) / 2)); /* 6/8/11/17 */
199
+ --era-inset-pill: max(0px, calc((var(--era-h-pill) - var(--era-text)) / 2)); /* 3/3/4/6 */
200
+ --era-inset-chip: max(0px, calc((var(--era-h-chip) - var(--era-text)) / 2)); /* 5/6/8/12 */
201
+ --era-inset-control: max(0px, calc((var(--era-h-control) - var(--era-text)) / 2)); /* 6/8/11/17 */
181
202
 
182
203
  /* Pill side padding — horizontal breathing room for badge/chip text.
183
204
  Text wants MORE horizontal than vertical padding: line-height adds
@@ -188,8 +209,8 @@
188
209
  is narrower than the line, this comes out ~2× the vertical inset on its
189
210
  own — and a lone glyph still measures exactly the tier width, so the
190
211
  "single glyph = square" floor (min-w = h) is preserved, not broken. */
191
- --era-pill-xxs: max(0px, calc((var(--era-h-xxs) - 0.6 * var(--era-text)) / 2)); /* 5.4/5.8/6.8 */
192
- --era-pill-sm: max(0px, calc((var(--era-h-sm) - 0.6 * var(--era-text)) / 2)); /* 7.4/8.8/10.8 */
212
+ --era-pill-px: max(0px, calc((var(--era-h-pill) - 0.6 * var(--era-text)) / 2)); /* 5.4/5.8/6.8 */
213
+ --era-chip-px: max(0px, calc((var(--era-h-chip) - 0.6 * var(--era-text)) / 2)); /* 7.4/8.8/10.8 */
193
214
 
194
215
  /* Text-field side padding — the horizontal room where typed text starts in an
195
216
  md-tier input (Input, Textarea, combobox/command inputs, date/time fields).
@@ -202,42 +223,44 @@
202
223
  proportionally TIGHTEST at dense — 6.8px in a 24px box read cramped. The
203
224
  floor only bites at dense (pill-sm ≥ 8.8 at every looser mode), lifting dense
204
225
  to 8px and leaving balanced/spacious/touch exactly as they were. */
205
- --era-field-px: max(var(--era-pill-sm), 0.5rem); /* 8/8.8/10.8/14.8 — floor lifts dense only */
226
+ --era-field-px: max(var(--era-chip-px), 0.5rem); /* 8/8.8/10.8/14.8 — floor lifts dense only */
206
227
 
207
228
  /* Concentric insets — center a smaller tier element inside a larger one. */
208
- /* --era-xs-inset-sm stays at sp/2 by construction (sm − xs = sp), which is
209
- what switch thumbs and KV icons rely on. --era-xxs-inset-md is the "pill
229
+ /* --era-icon-inset-chip stays at sp/2 by construction (sm − xs = sp), which is
230
+ what switch thumbs and KV icons rely on. --era-pill-inset-control is the "pill
210
231
  inside a button" concentric gap used both vertically (trigger padding)
211
232
  and horizontally (inter-chip gap inside multi-select Value). */
212
- --era-xs-inset-sm: calc((var(--era-h-sm) - var(--era-h-xs)) / 2); /* 4/5/6 = sp/2 */
213
- --era-xs-inset-xxs: calc(
214
- (var(--era-h-xxs) - var(--era-h-xs)) / 2
233
+ --era-icon-inset-chip: calc((var(--era-h-chip) - var(--era-h-icon)) / 2); /* 4/5/6 = sp/2 */
234
+ --era-icon-inset-pill: calc(
235
+ (var(--era-h-pill) - var(--era-h-icon)) / 2
215
236
  ); /* 2 (flat) — center an xs element (dismiss button) inside xxs */
216
- --era-xxs-inset-md: calc((var(--era-h-md) - var(--era-h-xxs)) / 2); /* 3/5/7 = sp − 5 */
217
- /* Centre an xxs pill inside an sm one — a dismiss chip in a standalone chip, an
237
+ --era-pill-inset-control: calc(
238
+ (var(--era-h-control) - var(--era-h-pill)) / 2
239
+ ); /* 3/5/7 = sp − 5 */
240
+ /* Centre an pill inside an sm one — a dismiss chip in a standalone chip, an
218
241
  xxs control in an sm bar.
219
- It reads like a duplicate of --era-inset-xxs (3/3/4/6) and used to BE one:
220
- while text was 14px everywhere, (h-sm − h-xxs)/2 and (h-xxs − text)/2 were
242
+ It reads like a duplicate of --era-inset-pill (3/3/4/6) and used to BE one:
243
+ while text was 14px everywhere, (h-chip − h-pill)/2 and (h-pill − text)/2 were
221
244
  the same number, and callers borrowed the text inset rather than declaring
222
245
  this. Dense's 12px type broke that tie — 2 against 3 — so the pairing now has
223
246
  its own name and cannot drift again with the type scale. */
224
- --era-xxs-inset-sm: calc((var(--era-h-sm) - var(--era-h-xxs)) / 2); /* 2/3/4/6 */
225
- --era-xs-inset-md: calc(
226
- (var(--era-h-md) - var(--era-h-xs)) / 2
247
+ --era-pill-inset-chip: calc((var(--era-h-chip) - var(--era-h-pill)) / 2); /* 2/3/4/6 */
248
+ --era-icon-inset-control: calc(
249
+ (var(--era-h-control) - var(--era-h-icon)) / 2
227
250
  ); /* 5/7/9 = sp − 3 — center an xs control inside an md bar (= rd-md − rd-xs) */
228
- --era-xs-inset-lg: calc(
229
- (var(--era-h-lg) - var(--era-h-xs)) / 2
251
+ --era-icon-inset-bar: calc(
252
+ (var(--era-h-bar) - var(--era-h-icon)) / 2
230
253
  ); /* 9/12/15 — center an xs control inside an lg bar (= rd-lg − rd-xs) */
231
- --era-sm-inset-md: calc(
232
- (var(--era-h-md) - var(--era-h-sm)) / 2
254
+ --era-chip-inset-control: calc(
255
+ (var(--era-h-control) - var(--era-h-chip)) / 2
233
256
  ); /* 1/2/3 — center an sm control inside an md field (= rd-md − rd-sm), e.g. the date picker's trailing trigger */
234
- --era-sm-inset-lg: calc(
235
- (var(--era-h-lg) - var(--era-h-sm)) / 2
257
+ --era-chip-inset-bar: calc(
258
+ (var(--era-h-bar) - var(--era-h-chip)) / 2
236
259
  ); /* 5/7/9 = sp − 3 — inset an sm panel (drag bar) concentrically in an lg pane (= rd-lg − rd-sm) */
237
260
 
238
261
  /* Roundness ladder — golden base + concentric progression, both gated by scale. */
239
- /* rd-T = scale · (R + (h-T − h-xs) / 2). R = sp / φ². max(0px, …) clamps tier
240
- inversion at sp < 6 where h-md/h-lg drop below h-xs. data-corners="square"
262
+ /* rd-T = scale · (R + (h-T − h-icon) / 2). R = sp / φ². max(0px, …) clamps tier
263
+ inversion at sp < 6 where h-control/h-bar drop below h-icon. data-corners="square"
241
264
  sets scale to 0 (animated via @property), zeroing every radius.
242
265
 
243
266
  CONCENTRICITY LAW — the ladder exists to make this automatic:
@@ -253,40 +276,43 @@
253
276
  Chip (sm shell + xs dismiss), Bar (h-T ↔ rd-T), Pane.Root (rd-sm), menu
254
277
  panels (rd-md, items at era-item-rd = rd-md − panel-inset). */
255
278
  --era-roundness: calc(var(--era-roundness-scale) * var(--era-sp) / 2.618);
256
- --era-rd-xs: max(0px, var(--era-roundness));
257
- --era-rd-xxs: max(
279
+ --era-rd-icon: max(0px, var(--era-roundness));
280
+ --era-rd-pill: max(
258
281
  0px,
259
282
  calc(
260
- var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-xxs) - var(--era-h-xs)) / 2
283
+ var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-pill) - var(--era-h-icon)) /
284
+ 2
261
285
  )
262
286
  );
263
- --era-rd-sm: max(
287
+ --era-rd-chip: max(
264
288
  0px,
265
289
  calc(
266
- var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-sm) - var(--era-h-xs)) / 2
290
+ var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-chip) - var(--era-h-icon)) /
291
+ 2
267
292
  )
268
293
  );
269
- --era-rd-md: max(
294
+ --era-rd-control: max(
270
295
  0px,
271
296
  calc(
272
- var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-md) - var(--era-h-xs)) / 2
297
+ var(--era-roundness) + var(--era-roundness-scale) *
298
+ (var(--era-h-control) - var(--era-h-icon)) / 2
273
299
  )
274
300
  );
275
- --era-rd-lg: max(
301
+ --era-rd-bar: max(
276
302
  0px,
277
303
  calc(
278
- var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-lg) - var(--era-h-xs)) / 2
304
+ var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-bar) - var(--era-h-icon)) / 2
279
305
  )
280
306
  );
281
307
 
282
308
  /* Optical padding — so = sp·(1 + d)/2; see OPTICAL PADDING above. */
283
309
  --era-so: calc(var(--era-sp) * (1 + var(--era-density)) / 2); /* 8/11.25/15/24 */
284
- --era-pad-sm: calc(var(--era-so) / 2); /* 4/5.6/7.5/12 */
285
- --era-pad-md: var(--era-so); /* 8/11.25/15/24 */
286
- --era-pad-lg: calc(var(--era-so) * 2); /* 16/22.5/30/48 */
310
+ --era-pad-panel: calc(var(--era-so) / 2); /* 4/5.6/7.5/12 */
311
+ --era-pad-card: var(--era-so); /* 8/11.25/15/24 */
312
+ --era-pad-content: calc(var(--era-so) * 2); /* 16/22.5/30/48 */
287
313
 
288
314
  /* Content padding — alias of pad-lg (formerly 4·sp − 16 ≈ the same curve) */
289
- --era-content-p: var(--era-pad-lg);
315
+ --era-content-p: var(--era-pad-content);
290
316
  }
291
317
 
292
318
  /* -------------------------------------------------- */
@@ -325,7 +351,7 @@
325
351
  * shrank while the thing inside it did not.
326
352
  *
327
353
  * 12px is the size the reference terminal app is built at, and it makes the
328
- * whole ladder line up with it: --era-inset-xxs becomes (18−12)/2 = 3px,
354
+ * whole ladder line up with it: --era-inset-pill becomes (18−12)/2 = 3px,
329
355
  * which is exactly the 3px that app hardcodes for the wall and gap of an
330
356
  * 18px control in a 24px bar. Same numbers, derived instead of typed.
331
357
  *
@@ -364,14 +390,14 @@
364
390
  --era-density: 2;
365
391
  }
366
392
 
367
- /* Touch mode goes full pill. Setting roundness to scale · h-xs / 2 makes the
368
- existing concentric term (h-T − h-xs)/2 sum to h-T/2 for every tier, so
393
+ /* Touch mode goes full pill. Setting roundness to scale · h-icon / 2 makes the
394
+ existing concentric term (h-T − h-icon)/2 sum to h-T/2 for every tier, so
369
395
  rd-xs … rd-lg all equal h-T/2. Needs the descendant selector because
370
396
  --era-roundness is declared on * and would otherwise overwrite this on
371
397
  children. Square toggle still collapses everything via scale = 0. */
372
398
  [data-mode='touch'],
373
399
  [data-mode='touch'] * {
374
- --era-roundness: calc(var(--era-roundness-scale) * var(--era-h-xs) / 2);
400
+ --era-roundness: calc(var(--era-roundness-scale) * var(--era-h-icon) / 2);
375
401
  }
376
402
 
377
403
  /* -------------------------------------------------- */
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * The split is by DEPENDENCY WEIGHT, not by layer, and that is deliberate.
22
22
  * Tailwind utilities DEDUPE — 60-odd components share one small vocabulary of
23
- * flex/h-md/items-center, so scanning every layer below costs almost nothing
23
+ * flex/h-control/items-center, so scanning every layer below costs almost nothing
24
24
  * and cannot be forgotten. Third-party CSS is the opposite: it is unshared,
25
25
  * heavy, and belongs to exactly one component. Split what is unshared; keep
26
26
  * what is shared whole. */
@@ -41,7 +41,7 @@
41
41
  * Set it from an Era token globally so every imported Lucide component tracks
42
42
  * the same optical weight as adjacent body text and can be tuned in one place. */
43
43
  :where(.lucide) {
44
- stroke-width: var(--era-icon-stroke-width);
44
+ stroke-width: var(--era-glyph-stroke-width);
45
45
  }
46
46
 
47
47
  /* The mask glyph is the one piece of type the UA picks for you, so era picks it
@@ -395,16 +395,16 @@
395
395
  /* THE PUBLIC CLASS API */
396
396
  /* */
397
397
  /* Era's consumer-facing styling surface is NAMED utilities — a user */
398
- /* of the library writes `h-md rounded-md px-md shadow`, never */
399
- /* `h-(--era-h-md)`-style var classes. Where Tailwind already has a */
400
- /* name for the concept (rounded-md, shadow, ease) era OVERLOADS it */
398
+ /* of the library writes `h-control rounded-control px-gutter shadow`, never */
399
+ /* `h-(--era-h-control)`-style var classes. Where Tailwind already has a */
400
+ /* name for the concept (rounded-control, shadow, ease) era OVERLOADS it */
401
401
  /* so stock-looking markup renders on-design; where it doesn't, era */
402
- /* registers its own (h-md, px-md, gap-gutter, p-card). */
402
+ /* registers its own (h-control, px-gutter, gap-gutter, p-card). */
403
403
  /* */
404
404
  /* The --era-* custom properties remain the internal contract (and */
405
405
  /* the escape hatch for anything without a name — e.g. min-w-* tier */
406
406
  /* names are NOT registered because Tailwind's container scale */
407
- /* already owns min-w-md/lg; use min-w-(--era-h-md) there). */
407
+ /* already owns min-w-md/lg; use min-w-(--era-h-control) there). */
408
408
  /* */
409
409
  /* Everything here is a thin name over a token, so the full axis */
410
410
  /* system — density, surface, corners, motion — flows through */
@@ -420,16 +420,16 @@
420
420
  * at runtime by typography/prose-leading. */
421
421
  --leading-body: var(--era-leading);
422
422
  /* Radius ladder — Tailwind's own rounded-* names now walk era's concentric
423
- * ladder (rd-T = rd-xs + (h-T − h-xs)/2), ride the corners toggle, and
424
- * collapse to 0 on square. rounded-item is the menu-row radius
425
- * (rd-md − panel-inset) that keeps rows concentric inside a rounded-md
423
+ * ladder (rd-T = rd-xs + (h-T − h-icon)/2), ride the corners toggle, and
424
+ * collapse to 0 on square. rounded-menu-item is the menu-row radius
425
+ * (rd-md − panel-inset) that keeps rows concentric inside a rounded-control
426
426
  * panel on every surface. */
427
- --radius-xs: var(--era-rd-xs);
428
- --radius-xxs: var(--era-rd-xxs);
429
- --radius-sm: var(--era-rd-sm);
430
- --radius-md: var(--era-rd-md);
431
- --radius-lg: var(--era-rd-lg);
432
- --radius-item: var(--era-item-rd);
427
+ --radius-icon: var(--era-rd-icon);
428
+ --radius-pill: var(--era-rd-pill);
429
+ --radius-chip: var(--era-rd-chip);
430
+ --radius-control: var(--era-rd-control);
431
+ --radius-bar: var(--era-rd-bar);
432
+ --radius-menu-item: var(--era-item-rd);
433
433
  /* Surface chrome — bare `shadow` is the resting control edge, shadow-lg the
434
434
  * floating panel, shadow-well the recessed container, shadow-pressed the
435
435
  * active/latched face, shadow-highlight the material half of hover feedback.
@@ -503,82 +503,70 @@
503
503
  /* */
504
504
  /* Static utilities (not @theme) because Tailwind's spacing namespace */
505
505
  /* is shared across h/w/p/m/gap — registering `md` there would give */
506
- /* px-md and h-md the SAME value, and era's tiers and insets are */
506
+ /* px-gutter and h-control the SAME value, and era's tiers and insets are */
507
507
  /* different token families. Each name below maps to exactly one */
508
508
  /* token. Kept terse; the ladder itself is documented in density.css */
509
509
  /* and on the /spacing page. */
510
510
  /* ------------------------------------------------------------------ */
511
511
 
512
- /* @use the tier-height ladder — h-xs (icon) · h-xxs (nested pill) · h-sm
513
- * (standalone pill) · h-md (control) · h-lg (bar); the named form of
512
+ /* @use the tier-height ladder — h-icon (icon) · h-pill (nested pill) · h-chip
513
+ * (standalone pill) · h-control (control) · h-bar (bar); the named form of
514
514
  * h-(--era-h-*). */
515
- @utility h-xs {
516
- height: var(--era-h-xs);
515
+ @utility h-icon {
516
+ height: var(--era-h-icon);
517
517
  }
518
- @utility h-xxs {
519
- height: var(--era-h-xxs);
518
+ @utility h-pill {
519
+ height: var(--era-h-pill);
520
520
  }
521
- @utility h-sm {
522
- height: var(--era-h-sm);
521
+ @utility h-chip {
522
+ height: var(--era-h-chip);
523
523
  }
524
- @utility h-md {
525
- height: var(--era-h-md);
524
+ @utility h-control {
525
+ height: var(--era-h-control);
526
526
  }
527
- @utility h-lg {
528
- height: var(--era-h-lg);
527
+ @utility h-bar {
528
+ height: var(--era-h-bar);
529
529
  }
530
530
 
531
531
  /* @use minimum tier height for containers that may grow — a bar that is at
532
- * least lg-tier but can wrap (min-h-lg). */
533
- @utility min-h-xs {
534
- min-height: var(--era-h-xs);
532
+ * least lg-tier but can wrap (min-h-bar). */
533
+ @utility min-h-icon {
534
+ min-height: var(--era-h-icon);
535
535
  }
536
- @utility min-h-xxs {
537
- min-height: var(--era-h-xxs);
536
+ @utility min-h-pill {
537
+ min-height: var(--era-h-pill);
538
538
  }
539
- @utility min-h-sm {
540
- min-height: var(--era-h-sm);
539
+ @utility min-h-chip {
540
+ min-height: var(--era-h-chip);
541
541
  }
542
- @utility min-h-md {
543
- min-height: var(--era-h-md);
542
+ @utility min-h-control {
543
+ min-height: var(--era-h-control);
544
544
  }
545
- @utility min-h-lg {
546
- min-height: var(--era-h-lg);
545
+ @utility min-h-bar {
546
+ min-height: var(--era-h-bar);
547
547
  }
548
548
 
549
- /* @use a tier-sized square — size-xs is THE icon size (a Lucide glyph beside
550
- * body text), size-md a square control face. */
551
- @utility size-xs {
552
- width: var(--era-h-xs);
553
- height: var(--era-h-xs);
549
+ /* @use a tier-sized square — size-icon is THE icon size (a Lucide glyph beside
550
+ * body text), size-control a square control face. */
551
+ @utility size-icon {
552
+ width: var(--era-h-icon);
553
+ height: var(--era-h-icon);
554
554
  }
555
- @utility size-xxs {
556
- width: var(--era-h-xxs);
557
- height: var(--era-h-xxs);
555
+ @utility size-pill {
556
+ width: var(--era-h-pill);
557
+ height: var(--era-h-pill);
558
558
  }
559
- @utility size-sm {
560
- width: var(--era-h-sm);
561
- height: var(--era-h-sm);
559
+ @utility size-chip {
560
+ width: var(--era-h-chip);
561
+ height: var(--era-h-chip);
562
562
  }
563
- @utility size-md {
564
- width: var(--era-h-md);
565
- height: var(--era-h-md);
563
+ @utility size-control {
564
+ width: var(--era-h-control);
565
+ height: var(--era-h-control);
566
566
  }
567
- @utility size-lg {
568
- width: var(--era-h-lg);
569
- height: var(--era-h-lg);
570
- }
571
-
572
- /* @use tier-to-tier nesting padding (sp/2) — the horizontal padding of a bar
573
- * or row that holds tiered controls; the named form of px-(--era-px-*). */
574
- @utility px-sm {
575
- padding-inline: var(--era-px-sm);
576
- }
577
- @utility px-md {
578
- padding-inline: var(--era-px-md);
579
- }
580
- @utility px-lg {
581
- padding-inline: var(--era-px-lg);
567
+ @utility size-bar {
568
+ width: var(--era-h-bar);
569
+ height: var(--era-h-bar);
582
570
  }
583
571
 
584
572
  /* @use the inter-element gap (sp/2) — flex/grid gap between sibling controls,
@@ -598,46 +586,46 @@
598
586
  }
599
587
 
600
588
  /* @use text-symmetric content padding — (tier − text)/2, the inset that
601
- * vertically centers body text in its tier; px-inset-md is a text button's
602
- * side padding, p-inset-md a code block's. */
603
- @utility p-inset-xxs {
604
- padding: var(--era-inset-xxs);
589
+ * vertically centers body text in its tier; px-inset-control is a text button's
590
+ * side padding, p-inset-control a code block's. */
591
+ @utility p-inset-pill {
592
+ padding: var(--era-inset-pill);
605
593
  }
606
- @utility p-inset-sm {
607
- padding: var(--era-inset-sm);
594
+ @utility p-inset-chip {
595
+ padding: var(--era-inset-chip);
608
596
  }
609
- @utility p-inset-md {
610
- padding: var(--era-inset-md);
597
+ @utility p-inset-control {
598
+ padding: var(--era-inset-control);
611
599
  }
612
- @utility px-inset-xxs {
613
- padding-inline: var(--era-inset-xxs);
600
+ @utility px-inset-pill {
601
+ padding-inline: var(--era-inset-pill);
614
602
  }
615
- @utility px-inset-sm {
616
- padding-inline: var(--era-inset-sm);
603
+ @utility px-inset-chip {
604
+ padding-inline: var(--era-inset-chip);
617
605
  }
618
- @utility px-inset-md {
619
- padding-inline: var(--era-inset-md);
606
+ @utility px-inset-control {
607
+ padding-inline: var(--era-inset-control);
620
608
  }
621
- @utility py-inset-xxs {
622
- padding-block: var(--era-inset-xxs);
609
+ @utility py-inset-pill {
610
+ padding-block: var(--era-inset-pill);
623
611
  }
624
- @utility py-inset-sm {
625
- padding-block: var(--era-inset-sm);
612
+ @utility py-inset-chip {
613
+ padding-block: var(--era-inset-chip);
626
614
  }
627
- @utility py-inset-md {
628
- padding-block: var(--era-inset-md);
615
+ @utility py-inset-control {
616
+ padding-block: var(--era-inset-control);
629
617
  }
630
618
 
631
619
  /* @use pill side padding — the wider-than-vertical horizontal breathing room
632
620
  * badge/chip text wants (glyph-advance derived, ~2× the vertical inset). */
633
- @utility px-pill-xxs {
634
- padding-inline: var(--era-pill-xxs);
621
+ @utility px-pill {
622
+ padding-inline: var(--era-pill-px);
635
623
  }
636
- @utility px-pill-sm {
637
- padding-inline: var(--era-pill-sm);
624
+ @utility px-chip {
625
+ padding-inline: var(--era-chip-px);
638
626
  }
639
627
 
640
- /* @use text-field side padding — where typed text starts in an md-tier input;
628
+ /* @use text-field side padding — where typed text starts in a control-tier input;
641
629
  * the named form of px-(--era-field-px). */
642
630
  @utility px-field {
643
631
  padding-inline: var(--era-field-px);
@@ -648,21 +636,21 @@
648
636
  * full content panels. Grows super-linearly with density so whitespace holds
649
637
  * its perceived share as controls loosen. */
650
638
  @utility p-panel {
651
- padding: var(--era-pad-sm);
639
+ padding: var(--era-pad-panel);
652
640
  }
653
641
  @utility p-card {
654
- padding: var(--era-pad-md);
642
+ padding: var(--era-pad-card);
655
643
  }
656
644
  /* A content panel always follows a section header ROW, and that row already
657
- * contributes its own slack: the heading's text sits in an h-lg bar, so there
658
- * is (h-lg − text)/2 of empty bar under its glyphs before the panel even
645
+ * contributes its own slack: the heading's text sits in an h-bar bar, so there
646
+ * is (h-bar − text)/2 of empty bar under its glyphs before the panel even
659
647
  * starts. Padding the panel evenly on top of that spends the space twice — the
660
648
  * header ends up floating between the section above and the paragraph it
661
649
  * introduces rather than binding to it.
662
650
  *
663
651
  * So the block-start pays only the REMAINDER. The target is the indent: the
664
652
  * space under a heading should measure the same as the space beside the text,
665
- * which is --era-content-p. The header row already supplies (h-lg − text)/2 of
653
+ * which is --era-content-p. The header row already supplies (h-bar − text)/2 of
666
654
  * it, so the panel adds what's left, and heading-to-paragraph reads equal to
667
655
  * the paragraph's own inset. Subtracting one --era-gap (the previous rule) left
668
656
  * the header's slack unaccounted for and the heading still detached.
@@ -672,12 +660,12 @@
672
660
  * exceed the inset outright. */
673
661
  @utility p-content {
674
662
  padding: var(--era-content-p);
675
- padding-top: max(0px, calc(var(--era-content-p) - (var(--era-h-lg) - var(--era-text)) / 2));
663
+ padding-top: max(0px, calc(var(--era-content-p) - (var(--era-h-bar) - var(--era-text)) / 2));
676
664
  }
677
665
 
678
666
  /* @use menu-panel padding — the surface-owned inset (0 on flat, 2px on
679
667
  * glass/bevel) that keeps row highlights inside a floating panel's frame;
680
- * pairs with rounded-item on the rows. */
668
+ * pairs with rounded-menu-item on the rows. */
681
669
  @utility p-menu {
682
670
  padding: var(--era-panel-inset);
683
671
  }