anentrypoint-design 0.0.400 → 0.0.402
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/community.css +11 -6
- package/dist/247420.css +90 -11
- package/dist/247420.js +23 -23
- package/package.json +3 -2
- package/scripts/lint-css.mjs +7 -0
- package/src/community-app.js +13 -1
- package/src/components/community/chrome.js +8 -1
- package/src/components/community/shell.js +10 -1
- package/src/components/content/fields.js +10 -2
- package/src/components/shell/app-shell.js +21 -3
- package/src/components/theme-toggle.js +56 -18
- package/src/css/app-shell/panel-row.css +25 -3
- package/src/css/app-shell/primitives.css +22 -0
- package/src/css/app-shell/topbar.css +22 -1
package/community.css
CHANGED
|
@@ -204,14 +204,14 @@
|
|
|
204
204
|
font-weight: 600;
|
|
205
205
|
font-size: var(--fs-sm);
|
|
206
206
|
letter-spacing: -0.01em;
|
|
207
|
-
cursor:
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
/* No cursor:pointer, no :hover background, no user-select:none. This is a
|
|
208
|
+
static <div> (community/navigation.js) with no handler and no role — it
|
|
209
|
+
just names the current server. Those three properties are the vocabulary
|
|
210
|
+
of a pressable control, so together they promised a menu that does not
|
|
211
|
+
exist: the pointer and the hover highlight both invited a click that
|
|
212
|
+
nothing answers. Restore them only alongside a real handler + role. */
|
|
210
213
|
flex-shrink: 0;
|
|
211
214
|
}
|
|
212
|
-
.cm-server-header:hover {
|
|
213
|
-
background: color-mix(in oklab, var(--fg) 6%, var(--bg-2));
|
|
214
|
-
}
|
|
215
215
|
.cm-server-header-name {
|
|
216
216
|
flex: 1;
|
|
217
217
|
min-width: 0;
|
|
@@ -790,6 +790,11 @@
|
|
|
790
790
|
}
|
|
791
791
|
|
|
792
792
|
.cm-chat-header-name {
|
|
793
|
+
/* This is an <h1> (it is the visible title of the content column, and the
|
|
794
|
+
community kits otherwise rendered no heading at all). The rule already
|
|
795
|
+
pinned weight/size/colour, but a bare h1 also brings a UA block margin
|
|
796
|
+
that would break this flex row — so the margin is zeroed explicitly. */
|
|
797
|
+
margin: 0;
|
|
793
798
|
font-weight: 600;
|
|
794
799
|
font-size: var(--fs-sm);
|
|
795
800
|
color: var(--fg);
|
package/dist/247420.css
CHANGED
|
@@ -1114,6 +1114,14 @@
|
|
|
1114
1114
|
padding: var(--space-5) var(--space-3);
|
|
1115
1115
|
font-size: var(--fs-sm);
|
|
1116
1116
|
}
|
|
1117
|
+
/* Sidebar section wrapper emitted by Side() (src/components/shell/app-shell.js).
|
|
1118
|
+
It is the `role="group"` that owns the heading + its links, so it must be the
|
|
1119
|
+
thing that groups them visually too: without a rule it was a bare block, and
|
|
1120
|
+
the only separation between sections came from .app-side's own flex gap —
|
|
1121
|
+
which meant the heading floated equidistant between the group it labels and
|
|
1122
|
+
the one above it. Stacking the group's own children tightly re-attaches the
|
|
1123
|
+
heading to its links. */
|
|
1124
|
+
.ds-247420 .app-side-group { display: flex; flex-direction: column; gap: var(--space-hair); }
|
|
1117
1125
|
.ds-247420 .app-side .group {
|
|
1118
1126
|
font-size: var(--fs-xs); font-weight: 600;
|
|
1119
1127
|
color: var(--fg-3); padding: 0 var(--space-3);
|
|
@@ -1134,7 +1142,20 @@
|
|
|
1134
1142
|
@media (pointer: coarse) {
|
|
1135
1143
|
.ds-247420 .app-side a { min-height: 44px; padding: var(--space-2-75) var(--space-3); }
|
|
1136
1144
|
}
|
|
1137
|
-
|
|
1145
|
+
/* A sidebar row with no href and no handler is a static label, not a control:
|
|
1146
|
+
Side() emits it as an <a> only so it keeps the grid layout above. It must not
|
|
1147
|
+
claim to be pressable — no pointer, no hover highlight. (An anchor without
|
|
1148
|
+
href is already skipped by the tab order and exposed as generic, not link.) */
|
|
1149
|
+
.ds-247420 .app-side a:not([href]) { cursor: default; }
|
|
1150
|
+
/* An entry naming a section/tag that does not exist yet — in the sidebar tree
|
|
1151
|
+
or the topbar nav. It stays visible so the intended shape of the docs is
|
|
1152
|
+
legible, but it is not a link and must not read as one: dimmed, and inert
|
|
1153
|
+
like any other href-less anchor. Both selectors are needed because the two
|
|
1154
|
+
navs style their anchors separately. */
|
|
1155
|
+
.ds-247420 .app-side a.is-unwritten,
|
|
1156
|
+
.ds-247420 .app-topbar nav a.is-unwritten { color: var(--fg-3); cursor: default; }
|
|
1157
|
+
.ds-247420 .app-topbar nav a.is-unwritten:hover { background: none; color: var(--fg-3); }
|
|
1158
|
+
.ds-247420 .app-side a[href]:hover { background: var(--bg-2); color: var(--fg); }
|
|
1138
1159
|
.ds-247420 .app-side a:focus-visible {
|
|
1139
1160
|
outline: var(--focus-w) solid var(--focus-color);
|
|
1140
1161
|
outline-offset: var(--focus-offset);
|
|
@@ -1438,6 +1459,15 @@
|
|
|
1438
1459
|
.ds-247420 .chip.tone-wip, .ds-247420 .chip.tone-neutral {
|
|
1439
1460
|
background: var(--bg-3); color: var(--fg-2);
|
|
1440
1461
|
}
|
|
1462
|
+
/* `.chip.accent` is the bare-adjective spelling of tone-accent (ui_kits/blog
|
|
1463
|
+
uses it for a "draft" chip). It had no rule anywhere, so an accented chip
|
|
1464
|
+
rendered byte-identical to a plain one. Folded into the alias grouping rather
|
|
1465
|
+
than given its own block, so the two spellings cannot drift apart. --accent
|
|
1466
|
+
is the FILL and --accent-ink the readable text tone (AGENTS.md) — the bare
|
|
1467
|
+
lead is ~1.07:1 on paper and unreadable as text. */
|
|
1468
|
+
.ds-247420 .chip.accent, .ds-247420 .chip.tone-accent {
|
|
1469
|
+
background: var(--accent-tint); color: var(--accent-ink);
|
|
1470
|
+
}
|
|
1441
1471
|
/* tone-dim was applied by five kits (aicat, project_page, signin, system_primer,
|
|
1442
1472
|
terminal) with no rule anywhere, so a "dim" chip rendered byte-identical to a
|
|
1443
1473
|
plain one — measured at rgb(234,230,218) on rgb(31,31,38), same opacity. It is
|
|
@@ -1495,6 +1525,19 @@
|
|
|
1495
1525
|
font-family: var(--ff-mono); font-size: var(--fs-tiny);
|
|
1496
1526
|
opacity: 0.8;
|
|
1497
1527
|
}
|
|
1528
|
+
/* Glyph() (src/components/shell/atoms.js) emits `glyph glyph-{size}` and an
|
|
1529
|
+
inline `font-size: var(--glyph-size-{size}, <literal>)`. The custom property
|
|
1530
|
+
is the documented theming hook — it is what lets a theme retune glyph scale
|
|
1531
|
+
without touching the component — but nothing declared it, so every glyph fell
|
|
1532
|
+
through to the hard-coded inline literal and the hook was inert. Declaring
|
|
1533
|
+
the three rungs on the scale makes the hook real; the sm/lg classes also give
|
|
1534
|
+
the box a matching footprint instead of the one-size 18px square. */
|
|
1535
|
+
/* Values mirror Glyph()'s own inline fallbacks exactly (11 / 13 / 16px), so
|
|
1536
|
+
declaring the hook changes nothing visually — it only makes the property
|
|
1537
|
+
themeable, which is what it always claimed to be. */
|
|
1538
|
+
.ds-247420 .glyph { --glyph-size-sm: var(--fs-nano); --glyph-size-base: var(--fs-tiny); --glyph-size-lg: var(--fs-body); }
|
|
1539
|
+
.ds-247420 .glyph-sm { width: 14px; height: 14px; }
|
|
1540
|
+
.ds-247420 .glyph-lg { width: 22px; height: 22px; }
|
|
1498
1541
|
|
|
1499
1542
|
/* ============================================================
|
|
1500
1543
|
Panel — soft tonal container, no border decoration
|
|
@@ -1653,10 +1696,19 @@
|
|
|
1653
1696
|
takes the full width instead of wrapping in the narrow code gutter. */
|
|
1654
1697
|
.ds-247420 .row.row-nocode { grid-template-columns: minmax(0, 1fr) auto; }
|
|
1655
1698
|
|
|
1656
|
-
|
|
1699
|
+
/* `.row-code` / `.row-title` / `.row-meta` are the BEM-ish spelling of the same
|
|
1700
|
+
three cells as `.code` / `.title` / `.meta`. Both spellings are live in the
|
|
1701
|
+
wild (preview/index-row.html uses the hyphenated one), and a cell that
|
|
1702
|
+
matches no rule falls back to browser defaults — 16px body text in all three
|
|
1703
|
+
tracks, which is precisely the undifferentiated render the specimen page was
|
|
1704
|
+
shipping. Aliased rather than renamed so neither spelling can silently go
|
|
1705
|
+
unstyled again. */
|
|
1706
|
+
.ds-247420 .row .code,
|
|
1707
|
+
.ds-247420 .row .row-code { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
|
|
1657
1708
|
/* Title defaults to the quiet app voice (fs-sm/500) — the 18px/600 marketing
|
|
1658
1709
|
voice is now opt-in via .row--lede. */
|
|
1659
|
-
.ds-247420 .row .title
|
|
1710
|
+
.ds-247420 .row .title,
|
|
1711
|
+
.ds-247420 .row .row-title { font-family: var(--ff-body); font-weight: 500; font-size: var(--fs-sm); line-height: var(--lh-snug); display: flex; align-items: baseline; gap: var(--space-2-5); flex-wrap: wrap; min-width: 0; }
|
|
1660
1712
|
.ds-247420 .row .title .sub { font-family: var(--ff-body); font-weight: 400; font-size: var(--fs-sm); color: var(--fg-3); }
|
|
1661
1713
|
/* Marketing/editorial index row — restores the roomier padding + larger title
|
|
1662
1714
|
the default carried before app-scale became the base. */
|
|
@@ -1672,7 +1724,20 @@
|
|
|
1672
1724
|
/* Context-pane cwd fact reads as a path (like .ds-dash-cwd/.ds-session-agent/
|
|
1673
1725
|
.ds-dash-model) -- scoped to that one row so no other Row .sub is affected. */
|
|
1674
1726
|
.ds-247420 .ds-context-cwd-row .row .sub { font-family: var(--ff-mono); }
|
|
1675
|
-
.ds-247420 .row .meta
|
|
1727
|
+
.ds-247420 .row .meta,
|
|
1728
|
+
.ds-247420 .row .row-meta { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; align-self: center; }
|
|
1729
|
+
/* `.row-meta` carries free prose ("state machine · 3k · shipping"), unlike
|
|
1730
|
+
`.meta`'s short tabular counts — so it wraps instead of forcing the row's
|
|
1731
|
+
third track wide enough to overflow a phone viewport. */
|
|
1732
|
+
.ds-247420 .row .row-meta { white-space: normal; }
|
|
1733
|
+
/* Hairline-divided index list. `.row` is deliberately hairline-FREE (the rail
|
|
1734
|
+
is the affordance), but an editorial index reads as a printed table of
|
|
1735
|
+
contents: the divider IS the structure, which is what
|
|
1736
|
+
preview/index-row.html's caption claims. Opt-in on the container so no
|
|
1737
|
+
existing rail-based list changes. */
|
|
1738
|
+
.ds-247420 .row-list > .row + .row { margin-top: 0; border-top: 1px solid var(--rule); border-radius: 0; }
|
|
1739
|
+
.ds-247420 .row-list > .row:first-child { border-radius: var(--r-1) var(--r-1) 0 0; }
|
|
1740
|
+
.ds-247420 .row-list > .row:last-child { border-radius: 0 0 var(--r-1) var(--r-1); }
|
|
1676
1741
|
/* WorksList meta pairs a label with a disclosure chevron, inline-aligned. */
|
|
1677
1742
|
.ds-247420 .ds-works-meta { display: inline-flex; align-items: center; gap: .4em; }
|
|
1678
1743
|
|
|
@@ -6941,14 +7006,14 @@
|
|
|
6941
7006
|
font-weight: 600;
|
|
6942
7007
|
font-size: var(--fs-sm);
|
|
6943
7008
|
letter-spacing: -0.01em;
|
|
6944
|
-
cursor:
|
|
6945
|
-
|
|
6946
|
-
|
|
7009
|
+
/* No cursor:pointer, no :hover background, no user-select:none. This is a
|
|
7010
|
+
static <div> (community/navigation.js) with no handler and no role — it
|
|
7011
|
+
just names the current server. Those three properties are the vocabulary
|
|
7012
|
+
of a pressable control, so together they promised a menu that does not
|
|
7013
|
+
exist: the pointer and the hover highlight both invited a click that
|
|
7014
|
+
nothing answers. Restore them only alongside a real handler + role. */
|
|
6947
7015
|
flex-shrink: 0;
|
|
6948
7016
|
}
|
|
6949
|
-
.ds-247420 .cm-server-header:hover {
|
|
6950
|
-
background: color-mix(in oklab, var(--fg) 6%, var(--bg-2));
|
|
6951
|
-
}
|
|
6952
7017
|
.ds-247420 .cm-server-header-name {
|
|
6953
7018
|
flex: 1;
|
|
6954
7019
|
min-width: 0;
|
|
@@ -7527,6 +7592,11 @@
|
|
|
7527
7592
|
}
|
|
7528
7593
|
|
|
7529
7594
|
.ds-247420 .cm-chat-header-name {
|
|
7595
|
+
/* This is an <h1> (it is the visible title of the content column, and the
|
|
7596
|
+
community kits otherwise rendered no heading at all). The rule already
|
|
7597
|
+
pinned weight/size/colour, but a bare h1 also brings a UA block margin
|
|
7598
|
+
that would break this flex row — so the margin is zeroed explicitly. */
|
|
7599
|
+
margin: 0;
|
|
7530
7600
|
font-weight: 600;
|
|
7531
7601
|
font-size: var(--fs-sm);
|
|
7532
7602
|
color: var(--fg);
|
|
@@ -10319,8 +10389,14 @@
|
|
|
10319
10389
|
font: var(--fs-tiny, 12px)/1 var(--ff-mono, monospace);
|
|
10320
10390
|
color: var(--panel-text-3, var(--fg-3));
|
|
10321
10391
|
}
|
|
10392
|
+
/* 24px pointer-target floor on both pager controls. Measured live on a real
|
|
10393
|
+
paged table: the prev/next buttons rendered 36x21 and the numbered ones
|
|
10394
|
+
23x21 -- under the minimum target size in height for both, and in BOTH axes
|
|
10395
|
+
for the numbered case. Padding alone cannot guarantee the floor because
|
|
10396
|
+
font-size varies per consumer, so it is stated explicitly. */
|
|
10322
10397
|
.ds-247420 .ds-ep-pager-btn {
|
|
10323
10398
|
appearance: none; cursor: pointer;
|
|
10399
|
+
min-height: 24px;
|
|
10324
10400
|
background: var(--panel-2, var(--bg-2));
|
|
10325
10401
|
border: 1px solid var(--rule);
|
|
10326
10402
|
color: var(--panel-text, var(--fg));
|
|
@@ -10335,10 +10411,13 @@
|
|
|
10335
10411
|
.ds-247420 .ds-ep-pager-numbered { flex-wrap: wrap; }
|
|
10336
10412
|
.ds-247420 .ds-ep-pager-num {
|
|
10337
10413
|
appearance: none; cursor: pointer;
|
|
10414
|
+
min-height: 24px;
|
|
10338
10415
|
background: var(--panel-2, var(--bg-2));
|
|
10339
10416
|
border: 1px solid var(--rule);
|
|
10340
10417
|
color: var(--panel-text, var(--fg));
|
|
10341
|
-
|
|
10418
|
+
/* max() rather than a bare 1.75em: at the small font a pager uses, 1.75em
|
|
10419
|
+
computed to 23px -- just under the target floor. */
|
|
10420
|
+
min-width: max(24px, 1.75em);
|
|
10342
10421
|
padding: var(--space-half, 3px) var(--space-1, 4px);
|
|
10343
10422
|
border-radius: var(--r-1, 4px);
|
|
10344
10423
|
font: inherit;
|