@apliteni/apliteni-ui 0.120.1 → 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apliteni/apliteni-ui",
3
- "version": "0.120.1",
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