@apliteni/apliteni-ui 0.120.0 → 0.121.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.
@@ -28,7 +28,7 @@
28
28
 
29
29
  **Rule:** Drop a button’s words only when its glyph is learned everywhere, its action is on the closed list, and its name reaches assistive technology and a hover title.
30
30
 
31
- **Except:** [Icon-only controls](https://ui.apli.tech/storybook/?path=/story/guidelines-iconography--iconography) is the list. The folded rail shows its names beside the glyphs, so they carry no title.
31
+ **Except:** Icon-only controls on the Iconography page is the list. The folded rail shows its names beside the glyphs, so they carry no title.
32
32
 
33
33
  **Do:** Overflow is on that list; the funnel is not.
34
34
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  **Why:** Stacking gives each label and value the full width of the block.
10
10
 
11
- **Do:** Stack Paid and In transit, as [Stat band tiles](https://ui.apli.tech/storybook/?path=/story/components-stat-band--gallery) do in a narrow panel.
11
+ **Do:** Stack Paid and In transit, as Stat band tiles do in a narrow panel.
12
12
 
13
13
  **Don't:** Force the same figures side by side in that panel.
14
14
 
@@ -36,7 +36,7 @@
36
36
 
37
37
  **Don't:** Make both actions primary or colour every label and value with the accent.
38
38
 
39
- **Except:** Keep [Badge success, pending and danger](https://ui.apli.tech/storybook/?path=/story/components-badge-status--badges) for their named statuses; do not replace those signals with the accent.
39
+ **Except:** Keep Badge success, pending and danger for their named statuses; do not replace those signals with the accent.
40
40
 
41
41
  ## Follow the consequence
42
42
 
@@ -50,4 +50,4 @@
50
50
 
51
51
  **Don't:** Give the source document the leading, wider pane, or let a control inside it hold the only accent on the screen while the saved values hold none.
52
52
 
53
- **Except:** Fade nothing to make a block quieter; a quieter block is smaller, later or uncoloured, never muted. See [Limit muted ink](https://ui.apli.tech/storybook/?path=/story/guidelines-labels-and-titles--page).
53
+ **Except:** Fade nothing to make a block quieter; a quieter block is smaller, later or uncoloured, never muted.
@@ -8,7 +8,7 @@
8
8
 
9
9
  **Why:** Without a legend, readers need labels for unfamiliar glyphs.
10
10
 
11
- **Except:** New entries require a decision and the three tests in [Earn a wordless button](https://ui.apli.tech/storybook/?path=/story/guidelines-button-labels--button-labels). Allowed: close, copy, overflow, expand, collapse and export. Theme toggles, sidebar toggles and collapsed-rail links have separate approval.
11
+ **Except:** New entries require a decision and pass Earn a wordless button on Button labels. Allowed: close, copy, overflow, expand, collapse and export. Theme toggles, sidebar toggles and collapsed-rail links have separate approval.
12
12
 
13
13
  **Do:** Show an overflow menu without words; keep the Settings label.
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apliteni/apliteni-ui",
3
- "version": "0.120.0",
3
+ "version": "0.121.0",
4
4
  "workspaces": [
5
5
  "react"
6
6
  ],
@@ -231,49 +231,45 @@
231
231
  the same neutral chip fill rather than the card surface — which, inside a panel that
232
232
  is itself lighter than a card, was darker than the ground it sat on. #453 */
233
233
  .vbadge.arch { /* muted-ink: state — archived version */ color: var(--muted); background: var(--chip-neutral-fill); /* ring-gap: inherit — translucent wash retains the opaque containing gap. */ }
234
- /* The phone step — the same one the rail folds at: docs/foundations.md#breakpoints.
235
- The switcher keeps its glyph and drops its label.
236
- The menu hangs the other way here. Anchored by its left edge it opened
237
- rightwards off a band that is as wide as the page, and a CLOSED menu is still
238
- laid out, so it scrolled the page sideways with nothing visible to explain it.
239
- `.amenu` beside it has always been anchored right. On a 320px viewport the
240
- page's scroll width was 527px and is 397px; the band's own controls still want
241
- more room than that page has, which is #558.
242
- why: guidelines/layout-and-density.md#use-the-three-breakpoints
243
- held by: stories/overlay-css.test.js */
234
+ /* The version label drops at the shell breakpoint.
235
+ Anchor the menu to its right edge so a closed panel cannot widen the page. */
244
236
  @media (max-width: 720px) {
245
237
  .vsw__btn .lbl { display: none; }
246
238
  .vsw__menu { left: auto; right: 0; }
247
239
  }
248
240
 
249
- /* One column, and the band is at its tightest. The row is already full at 390,
250
- and at the gap above this one the account avatar stood from 365 to 397 and was
251
- cut at the screen edge — the one control on this screen that opens the account
252
- area. Packed to --space-2 and a flat 14px trailing gutter the band needs 367.53
253
- of the 362px it has there, a 5.53px shortfall, because layout.css now pins the
254
- theme switch to a full 34px square so it keeps the tap floor it was given.
255
- The wordmark, the Deck/Text switch and the version label are each already at
256
- the width their own text needs, and the switch must not shrink again, so the
257
- account block's trailing gutter is what gives — but a FLAT 14px gutter has no
258
- fallback below the width it was sized for: at 375 it has already given every
259
- one of its 14px and the row is still 6.53px short, so the avatar was cut and
260
- the page gained 7px of horizontal scroll (#486 review round 2), worse again
261
- at 320.
262
- Both carry a share now, continuously, rather than the gutter alone holding a
263
- fixed budget: the gutter still narrows first, from 14px at 390 down to 0 by
264
- 381.53px of available row width, and once it is spent the inter-control gap
265
- takes the rest, from --space-2 down to its own floor of --space-1. 381.53px is
266
- this row's own fixed width minus its gutter's full 14px — not a general
267
- formula, a number that belongs to this composition's own wordmark, switch and
268
- version label. The avatar is whole and the page carries no horizontal scroll
269
- down to 375px. 320 still falls 41.53px short with both all the way down,
270
- which stays #558; it is 5px better than main's own 46.53px there, not solved.
271
- why: docs/foundations.md#breakpoints */
241
+ /* Keep the identity controls above the view controls on a phone.
242
+ The toolbar pattern uses the same inset for both rows. */
272
243
  @media (max-width: 560px) {
244
+ .topbar { height: auto; min-height: 52px; }
273
245
  .topbar__in {
274
- gap: clamp(var(--space-1), calc(var(--space-2) - (381.53px - 100vw) / 5), var(--space-2));
275
- padding-right: clamp(0px, calc(100vw - 381.53px), 14px);
246
+ display: grid;
247
+ grid-template-columns: max-content minmax(0, 1fr) auto auto;
248
+ grid-auto-rows: minmax(44px, auto);
249
+ gap: var(--space-2) 0;
250
+ /* 4px above and 3px below, because the band's 1px border is the fourth: one row is
251
+ then 52px, as on a wide screen, and the shell offset below stays true. */
252
+ padding: var(--space-1) var(--space-3) 3px;
276
253
  }
254
+ .topbar__in > .brand { grid-area: 1 / 1 / 2 / 3; justify-self: start; }
255
+ .topbar__in > .toggle { grid-area: 1 / 3; justify-self: end; }
256
+ /* The 8px beside the account is its own margin, so a hidden account leaves no gap and
257
+ the theme switch ends on the inset. */
258
+ .topbar__in > .acct { grid-area: 1 / 4; justify-self: end; margin-left: var(--space-2); }
259
+ .topbar__in > .spacer { display: none; }
260
+ .topbar__in > .dtsw { grid-area: 2 / 1; justify-self: start; }
261
+ /* The first column is as wide as Deck/Text and no wider, because the brand spans past it.
262
+ The version switch takes the flexible column and the two auto columns beside it, so its
263
+ width never widens the columns that pin the theme switch and the account to the row's
264
+ end inset. A long label gives way to an ellipsis, and 8px always stays between the
265
+ two controls. */
266
+ .topbar__in > .vsw { grid-area: 2 / 2 / 3 / -1; justify-self: end; min-width: 0; max-width: calc(100% - var(--space-2)); margin-left: var(--space-2); }
267
+ .vsw__btn { max-width: 100%; }
268
+ .vsw__btn .cur { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
269
+ .vsw__btn .car { flex: none; }
270
+ /* Two 44px rows, an 8px gap, the 4px and 3px insets and the bottom border. */
271
+ .ui-app-page:has(.topbar .dtsw.on),
272
+ .ui-app-page:has(.topbar .vsw) { --ui-app-top: 104px; }
277
273
  }
278
274
 
279
275
  /* Account — avatar + dropdown. Gated: hidden until the app confirms a session