anentrypoint-design 0.0.382 → 0.0.383
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/dist/247420.css +180 -20
- package/dist/247420.js +27 -27
- package/package.json +1 -1
- package/src/components/files-modals.js +1 -1
- package/src/components/overlay-primitives/menus.js +5 -1
- package/src/css/app-shell/base.css +54 -1
- package/src/css/app-shell/kits-appended.css +19 -0
- package/src/css/app-shell/responsive.css +28 -8
- package/src/css/app-shell/responsive2-workspace.css +16 -4
- package/src/css/app-shell/states-interactions.css +21 -4
- package/src/css/app-shell/topbar.css +5 -1
package/dist/247420.css
CHANGED
|
@@ -681,7 +681,7 @@
|
|
|
681
681
|
left: 0;
|
|
682
682
|
background: var(--accent);
|
|
683
683
|
color: var(--accent-fg);
|
|
684
|
-
padding:
|
|
684
|
+
padding: var(--space-2) var(--space-3);
|
|
685
685
|
text-decoration: none;
|
|
686
686
|
/* Must outrank every layer of chrome once focused, or the first Tab press
|
|
687
687
|
lands on a control hidden behind the sticky header (was z-index:100,
|
|
@@ -696,6 +696,35 @@
|
|
|
696
696
|
outline: var(--focus-w) solid var(--focus-color);
|
|
697
697
|
outline-offset: var(--focus-offset);
|
|
698
698
|
}
|
|
699
|
+
/* Visually-hidden but still in the accessibility tree. Emitted by Row() (the
|
|
700
|
+
rail status word), FilterBar()/FileGrid() (aria-live result counts) and
|
|
701
|
+
form-primitives' required marker — all of which shipped BEFORE this rule
|
|
702
|
+
existed anywhere the app shell loads. The only other definitions live in
|
|
703
|
+
app-surfaces.css (pre-scoped to `.ds-247420`, so it never reaches a kit that
|
|
704
|
+
does not mount that root) and editor-primitives.css (a separate opt-in
|
|
705
|
+
<link>), which left every app-shell consumer rendering screen-reader-only
|
|
706
|
+
text VISIBLY the moment it passed `rail`/`resultCount`.
|
|
707
|
+
Deliberately NOT `display:none` / `visibility:hidden` / `width:0`: those
|
|
708
|
+
remove the node from the accessibility tree too, which defeats the entire
|
|
709
|
+
purpose — the text exists only for AT. The clip + 1px box is what keeps it
|
|
710
|
+
announced while occupying no visible area.
|
|
711
|
+
`margin: -1px` is OFF-SCALE ON PURPOSE — it is not rhythm, it is one half of
|
|
712
|
+
the canonical visually-hidden idiom: the negative margin cancels the 1px box
|
|
713
|
+
so the clipped element contributes zero layout. Snapping it to a --space-*
|
|
714
|
+
rung would reintroduce a measurable gap. `clip` is deprecated but retained
|
|
715
|
+
alongside `clip-path` for older AT/browser pairs that ignore the latter. */
|
|
716
|
+
.ds-247420 .sr-only {
|
|
717
|
+
position: absolute;
|
|
718
|
+
width: 1px;
|
|
719
|
+
height: 1px;
|
|
720
|
+
padding: 0;
|
|
721
|
+
margin: -1px;
|
|
722
|
+
overflow: hidden;
|
|
723
|
+
clip: rect(0, 0, 0, 0);
|
|
724
|
+
clip-path: inset(50%);
|
|
725
|
+
white-space: nowrap;
|
|
726
|
+
border: 0;
|
|
727
|
+
}
|
|
699
728
|
.ds-247420 body {
|
|
700
729
|
background: var(--bg);
|
|
701
730
|
color: var(--fg);
|
|
@@ -784,6 +813,30 @@
|
|
|
784
813
|
.ds-247420 .ds-prose h1 { font-size: clamp(34px, 5.4cqi, 64px); margin-bottom: var(--space-3); }
|
|
785
814
|
.ds-247420 .ds-prose h2 { margin: var(--space-6) 0 var(--space-3); }
|
|
786
815
|
.ds-247420 .ds-prose h3 { margin: var(--space-5) 0 var(--space-2); font-size: var(--fs-lg); font-weight: 600; }
|
|
816
|
+
/* Closing line of an article ("end. reply by opening a pr."), set off from the
|
|
817
|
+
body it terminates. Quieter and smaller than the prose around it: it takes
|
|
818
|
+
the mono face and the --fg-3 tone the house uses for ancillary voices
|
|
819
|
+
(.t-micro, .dim), so the endnote reads as chrome around the article rather
|
|
820
|
+
than a final paragraph of it. The --space-5 lead does the "set off" — it
|
|
821
|
+
breaks the paragraph rhythm so the eye registers the piece has ended before
|
|
822
|
+
reading the words; margin-bottom:0 overrides .ds-prose p's --space-4 so the
|
|
823
|
+
article does not end on dead space.
|
|
824
|
+
Lives here, beside the rest of the .ds-prose family, NOT in gm-prose.css:
|
|
825
|
+
the blog kit that uses this class links only colors_and_type.css +
|
|
826
|
+
app-shell.css, so a rule in that separately-<link>-ed export would be exactly
|
|
827
|
+
as undefined as the class was before. Sized at --fs-xs, not the --fs-micro
|
|
828
|
+
label rung: this is a readable sentence with a link in it, not a micro-label.
|
|
829
|
+
The link inherits .ds-prose a's --accent-ink treatment (a readable TEXT tone;
|
|
830
|
+
the bare --accent fill is ~1.07:1 on paper) — deliberately not re-stated. */
|
|
831
|
+
.ds-247420 .ds-prose .ds-prose-endnote,
|
|
832
|
+
.ds-247420 .ds-prose-endnote {
|
|
833
|
+
margin-top: var(--space-5);
|
|
834
|
+
margin-bottom: 0;
|
|
835
|
+
font-family: var(--ff-mono);
|
|
836
|
+
font-size: var(--fs-xs);
|
|
837
|
+
line-height: var(--lh-base);
|
|
838
|
+
color: var(--fg-3);
|
|
839
|
+
}
|
|
787
840
|
|
|
788
841
|
.ds-247420 .dim { color: var(--fg-3); }
|
|
789
842
|
|
|
@@ -1028,7 +1081,11 @@
|
|
|
1028
1081
|
border-radius: var(--r-pill);
|
|
1029
1082
|
}
|
|
1030
1083
|
/* The lime active pill is the sidebar's one accent moment; its own count
|
|
1031
|
-
chip rides the ink-on-accent pair instead of a second competing hue.
|
|
1084
|
+
chip rides the ink-on-accent pair instead of a second competing hue.
|
|
1085
|
+
The bare --accent here is deliberate and is NOT the usual accent-as-text
|
|
1086
|
+
defect: the chip's own background is --accent-fg (ink), so this is the
|
|
1087
|
+
INVERTED pair -- lime on ink, which is the high-contrast direction. Only
|
|
1088
|
+
accent-coloured text on a normal background needs --accent-ink. */
|
|
1032
1089
|
.ds-247420 .app-side a.active .count {
|
|
1033
1090
|
background: color-mix(in oklab, var(--accent-fg) 82%, transparent);
|
|
1034
1091
|
color: var(--accent);
|
|
@@ -2002,16 +2059,28 @@
|
|
|
2002
2059
|
.ds-247420 .panel-body { padding: var(--space-2); overflow-x: auto; -webkit-overflow-scrolling: touch; }
|
|
2003
2060
|
.ds-247420 .panel-body > table { min-width: 100%; }
|
|
2004
2061
|
|
|
2005
|
-
|
|
2006
|
-
|
|
2062
|
+
/* Scoped to the `.app` shell so this wins on SPECIFICITY (0,2,0) rather than
|
|
2063
|
+
on an !important flag. Three rules would otherwise beat a bare `.row`
|
|
2064
|
+
(0,1,0) here: `.row.row-nocode` (0,2,0, panel-row.css) out-specifies it,
|
|
2065
|
+
and the `@media(481-1024)` + `@media(max-width:768px)` `.row` rules later
|
|
2066
|
+
in THIS file win on source order (a media query adds no specificity).
|
|
2067
|
+
`.app` is safe to require: `.app-body`/`.row` only ever render inside it
|
|
2068
|
+
(single call site, shell.js AppShell). */
|
|
2069
|
+
.ds-247420 .app .row {
|
|
2070
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
2007
2071
|
gap: var(--space-2); padding: var(--space-2-75) var(--space-3);
|
|
2008
|
-
row-gap: var(--space-1)
|
|
2072
|
+
row-gap: var(--space-1);
|
|
2009
2073
|
}
|
|
2010
2074
|
.ds-247420 .row .sub { grid-column: 1 / -1; order: 3; }
|
|
2011
2075
|
.ds-247420 .row .title { font-size: var(--fs-sm); }
|
|
2012
2076
|
/* Changelog carries 3 children: give date+ver line one, message wraps below
|
|
2013
|
-
(the generic 2-col .row override staggers it into an implicit row).
|
|
2014
|
-
|
|
2077
|
+
(the generic 2-col .row override staggers it into an implicit row).
|
|
2078
|
+
Needs (0,3,0) to clear BOTH the `.app .row` rule directly above and
|
|
2079
|
+
`.ds-changelog-row`'s own !important base in hero-content.css — an
|
|
2080
|
+
!important base can only be beaten by another !important, so this one
|
|
2081
|
+
stays until that upstream flag is removed (hero-content.css is outside
|
|
2082
|
+
this change's scope). */
|
|
2083
|
+
.ds-247420 .app .row.ds-changelog-row { grid-template-columns: minmax(70px, 10ch) minmax(0, 1fr) !important; }
|
|
2015
2084
|
.ds-247420 .ds-changelog-row .title { grid-column: 1 / -1; }
|
|
2016
2085
|
|
|
2017
2086
|
/* Buttons */
|
|
@@ -2098,12 +2167,20 @@
|
|
|
2098
2167
|
Container Query Responsive (720px and below)
|
|
2099
2168
|
---------------------------------------------------------------------- */
|
|
2100
2169
|
@container (max-width: 760px) {
|
|
2101
|
-
|
|
2170
|
+
/* `.app`-scoped for specificity, not an !important flag: the bare `.app-body`
|
|
2171
|
+
(0,1,0) was out-specified by `.app-body.no-side` (0,2,0) in topbar.css, so
|
|
2172
|
+
a sidebar-less shell kept its base template. `.app .app-body` is (0,2,0)
|
|
2173
|
+
and lands later in source, beating both topbar.css rules on merit. */
|
|
2174
|
+
.ds-247420 .app .app-body { grid-template-columns: 1fr; }
|
|
2102
2175
|
.ds-247420 .app-side-shell { border-right: 0; border-bottom: 1px solid var(--rule); }
|
|
2103
2176
|
.ds-247420 .app-topbar nav { font-size: var(--fs-xs); gap: var(--space-2-75); }
|
|
2104
|
-
|
|
2177
|
+
/* Same (0,2,0) lift as the 480px block above — clears `.row.row-nocode` and
|
|
2178
|
+
the later `@media` `.row` rules in this file without a flag. */
|
|
2179
|
+
.ds-247420 .app .row { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--space-1); }
|
|
2105
2180
|
.ds-247420 .row .sub { grid-column: 1 / -1; order: 3; }
|
|
2106
|
-
|
|
2181
|
+
/* (0,3,0) + !important: still required to beat `.ds-changelog-row`'s
|
|
2182
|
+
!important base in hero-content.css (see the 480px block). */
|
|
2183
|
+
.ds-247420 .app .row.ds-changelog-row { grid-template-columns: minmax(70px, 10ch) minmax(0, 1fr) !important; }
|
|
2107
2184
|
.ds-247420 .ds-changelog-row .title { grid-column: 1 / -1; }
|
|
2108
2185
|
}
|
|
2109
2186
|
|
|
@@ -3754,9 +3831,14 @@
|
|
|
3754
3831
|
animation: spinner-rotate 0.8s linear infinite;
|
|
3755
3832
|
}
|
|
3756
3833
|
|
|
3757
|
-
/* Error state
|
|
3834
|
+
/* Error state.
|
|
3835
|
+
No !important: the only rule in the kit that also resets a matching element's
|
|
3836
|
+
border-color is the bare-control base below (`textarea:where(:not(.input))`
|
|
3837
|
+
et al, which use the `border: 0` shorthand). Those selectors are (0,0,1) —
|
|
3838
|
+
the :where() guard adds nothing — so every selector in this list out-specifies
|
|
3839
|
+
them on merit, and specificity beats the later source position. */
|
|
3758
3840
|
.ds-247420 .error, .ds-247420[data-state="error"], .ds-247420 .row.error, .ds-247420 input.error, .ds-247420 textarea.error {
|
|
3759
|
-
border-color: var(--warn)
|
|
3841
|
+
border-color: var(--warn);
|
|
3760
3842
|
background-color: color-mix(in oklab, var(--warn) 6%, var(--bg));
|
|
3761
3843
|
}
|
|
3762
3844
|
.ds-247420 .error::placeholder { color: color-mix(in oklab, var(--warn) 60%, var(--fg-3)); }
|
|
@@ -4268,7 +4350,17 @@
|
|
|
4268
4350
|
.ds-247420 .skip-to-main:focus { top: 10px; }
|
|
4269
4351
|
|
|
4270
4352
|
/* Reduced motion preferences — scoped to the DS surface so it doesn't reach
|
|
4271
|
-
into and neutralize the host document's own motion.
|
|
4353
|
+
into and neutralize the host document's own motion.
|
|
4354
|
+
The !important flags here are LOAD-BEARING and must not be "cleaned up":
|
|
4355
|
+
`.ds-247420 *` / `.app *` is only (0,1,0) — the universal selector adds
|
|
4356
|
+
nothing — yet it has to defeat every animation/transition declaration in the
|
|
4357
|
+
kit, many of which are strictly more specific. Concrete rules it would
|
|
4358
|
+
otherwise lose to: `.ds-dropzone.dragover` (0,2,0, files.css),
|
|
4359
|
+
`.ds-upload-bar.indeterminate .ds-upload-fill` (0,3,0, files.css),
|
|
4360
|
+
`.list-item.drag-after::after` (0,2,1, this file). Raising this selector to
|
|
4361
|
+
out-specify an open-ended set of future component rules is not possible, so
|
|
4362
|
+
the flag is the only correct mechanism — this is a WCAG 2.3.3 guarantee,
|
|
4363
|
+
not a stylistic preference. */
|
|
4272
4364
|
@media (prefers-reduced-motion: reduce) {
|
|
4273
4365
|
.ds-247420 *, .ds-247420 .app * {
|
|
4274
4366
|
animation-duration: 0.01ms !important;
|
|
@@ -4276,7 +4368,9 @@
|
|
|
4276
4368
|
transition-duration: 0.01ms !important;
|
|
4277
4369
|
}
|
|
4278
4370
|
/* Kill the residual paint frame of looping skeleton/shimmer placeholders and
|
|
4279
|
-
give reduced-motion users a steady placeholder fill instead.
|
|
4371
|
+
give reduced-motion users a steady placeholder fill instead.
|
|
4372
|
+
Also load-bearing: `.skeleton` is (0,1,0) and must override
|
|
4373
|
+
`.ds-session-row-skeleton .ds-skel` (0,2,0), which sets its own shimmer. */
|
|
4280
4374
|
.ds-247420 .skeleton, .ds-247420 .ds-skeleton, .ds-247420 .ds-session-row-skeleton .ds-skel {
|
|
4281
4375
|
animation: none !important;
|
|
4282
4376
|
background: var(--bg-2) !important;
|
|
@@ -4545,8 +4639,16 @@
|
|
|
4545
4639
|
even on a wide desktop. Drawer/scrim/toggle are absolute (anchored to .app), so
|
|
4546
4640
|
they overlay the window, not the page. */
|
|
4547
4641
|
@container (max-width: 900px) {
|
|
4548
|
-
.
|
|
4549
|
-
|
|
4642
|
+
/* `.app`-scoped for specificity instead of an !important flag. The bare
|
|
4643
|
+
`.app-body` half of this list is (0,1,0) and was out-specified by
|
|
4644
|
+
`.app-body.no-side` (0,2,0) in topbar.css; scoping lifts both halves to
|
|
4645
|
+
(0,2,0)/(0,3,0), which also lands later in source than topbar.css, so the
|
|
4646
|
+
drawer collapse wins on merit. `.app` is guaranteed: `.app-body` is
|
|
4647
|
+
emitted only as a direct child of `.app` (single call site, shell.js
|
|
4648
|
+
AppShell), and this @container query already requires `.app` as its
|
|
4649
|
+
container ancestor. */
|
|
4650
|
+
.ds-247420 .app .app-body,
|
|
4651
|
+
.ds-247420 .app .app-body.no-side { grid-template-columns: 1fr; }
|
|
4550
4652
|
.ds-247420 .app-side-shell {
|
|
4551
4653
|
position: absolute;
|
|
4552
4654
|
/* Full-height overlay drawer: the merged .app-chrome wraps and its real
|
|
@@ -4571,9 +4673,13 @@
|
|
|
4571
4673
|
.ds-247420 .app-side-shell.open,
|
|
4572
4674
|
.ds-247420 .app-side.open,
|
|
4573
4675
|
.ds-247420 .app-body.side-open .app-side-shell { transform: translateX(0); }
|
|
4676
|
+
/* No flags needed: the ONLY other rule that touches these properties is the
|
|
4677
|
+
`.app-side` base in topbar.css, which already sets `flex-direction: column`
|
|
4678
|
+
and never sets `flex-wrap` (nowrap is the initial value anyway). This rule
|
|
4679
|
+
is equal-specificity and later in source, so it wins unaided. */
|
|
4574
4680
|
.ds-247420 .app-side {
|
|
4575
|
-
flex-direction: column
|
|
4576
|
-
flex-wrap: nowrap
|
|
4681
|
+
flex-direction: column;
|
|
4682
|
+
flex-wrap: nowrap;
|
|
4577
4683
|
gap: var(--space-2);
|
|
4578
4684
|
padding: var(--space-3);
|
|
4579
4685
|
font-size: var(--fs-sm);
|
|
@@ -6064,6 +6170,25 @@
|
|
|
6064
6170
|
.ds-247420 .cursor-blink { animation: ds-cursor-blink 1s step-end infinite; }
|
|
6065
6171
|
@keyframes ds-cursor-blink { 50% { opacity: 0; } }
|
|
6066
6172
|
}
|
|
6173
|
+
|
|
6174
|
+
/* == appended: panel width modifier == */
|
|
6175
|
+
/* .panel.panel-inline-wide — a width-capped inline note panel. Companion to
|
|
6176
|
+
the .panel-inline / .panel-wide modifiers in panel-row.css: those two change
|
|
6177
|
+
the panel's SURFACE (tonal fill / chrome-stripped), this one changes only
|
|
6178
|
+
its MEASURE, so it composes with either. Introduced when ui_kits/docs's
|
|
6179
|
+
`[!] note` panel traded `style="max-width:640px"` for a class (the inline-
|
|
6180
|
+
style sweep) but never got a rule written, leaving that panel to run the
|
|
6181
|
+
full column width. 640px is the note measure, deliberately narrower than
|
|
6182
|
+
--measure-narrow (760px): the aside is meant to read as a set-aside block
|
|
6183
|
+
against the surrounding prose, not to match its column. It is a literal
|
|
6184
|
+
rather than a new token because it has exactly one consumer — promote it to
|
|
6185
|
+
--measure-note the moment a second surface wants the same cap.
|
|
6186
|
+
`margin-right: auto` (not `margin: 0 auto`) keeps the panel left-aligned to
|
|
6187
|
+
the prose it interrupts and preserves .panel's own --space-4 stack margin. */
|
|
6188
|
+
.ds-247420 .panel.panel-inline-wide {
|
|
6189
|
+
max-width: 640px;
|
|
6190
|
+
margin-right: auto;
|
|
6191
|
+
}
|
|
6067
6192
|
/* ============================================================
|
|
6068
6193
|
Git status panel + diff view — changed-file list, unified diff.
|
|
6069
6194
|
============================================================ */
|
|
@@ -9688,7 +9813,12 @@
|
|
|
9688
9813
|
.ds-247420 .ds-ep-tab-close:hover { background: var(--panel-2); color: var(--panel-text-1); }
|
|
9689
9814
|
.ds-247420 .ds-ep-tab-close:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; opacity: 1; }
|
|
9690
9815
|
.ds-247420 .ds-ep-tab.active {
|
|
9691
|
-
|
|
9816
|
+
/* --accent-ink for the TEXT, bare --accent for the RULE. The lime fill
|
|
9817
|
+
measures 1.07:1 against paper, so as a text colour it is invisible in
|
|
9818
|
+
light theme; --accent-ink is 8.85:1. Both resolve to the same value in
|
|
9819
|
+
dark, which is exactly why this class of bug hides until someone opens
|
|
9820
|
+
the light theme. Borders are fills and keep the lead accent. */
|
|
9821
|
+
color: var(--accent-ink);
|
|
9692
9822
|
border-bottom-color: var(--accent);
|
|
9693
9823
|
}
|
|
9694
9824
|
/* When the JS slider is active, the active tab's own static border is
|
|
@@ -9735,8 +9865,12 @@
|
|
|
9735
9865
|
color: var(--panel-text);
|
|
9736
9866
|
}
|
|
9737
9867
|
.ds-247420 .ds-ep-tree-item.selected > .ds-ep-tree-row {
|
|
9868
|
+
/* The 22% accent wash is a FILL and stays on the lead accent; the label on
|
|
9869
|
+
top of it is text and takes --accent-ink (bare --accent is 1.07:1 on
|
|
9870
|
+
paper -- invisible in light theme, identical to --accent-ink in dark,
|
|
9871
|
+
which is why it reads fine until someone switches themes). */
|
|
9738
9872
|
background: color-mix(in oklab, var(--accent) 22%, transparent);
|
|
9739
|
-
color: var(--accent);
|
|
9873
|
+
color: var(--accent-ink);
|
|
9740
9874
|
}
|
|
9741
9875
|
.ds-247420 .ds-ep-tree-twist {
|
|
9742
9876
|
width: 12px; flex-shrink: 0; text-align: center;
|
|
@@ -12001,6 +12135,32 @@
|
|
|
12001
12135
|
margin-bottom: var(--space-1);
|
|
12002
12136
|
}
|
|
12003
12137
|
|
|
12138
|
+
/* .ds-prose-endnote — the closing line of an article ("end. reply by opening a
|
|
12139
|
+
pr."), set off from the body it terminates. Quieter and smaller than prose:
|
|
12140
|
+
it takes the mono face and the --panel-text-2 tone that this sheet's other
|
|
12141
|
+
ancillary voices use (.toc a, .gm-callout .who, .card .desc), so the endnote
|
|
12142
|
+
reads as chrome around the article rather than a final paragraph of it. The
|
|
12143
|
+
generous --space-5 lead is what does the "set off" — it breaks the paragraph
|
|
12144
|
+
rhythm so the eye registers the piece has ended before reading the words.
|
|
12145
|
+
Sized at --fs-xs rather than the --fs-nano label rung: this is a readable
|
|
12146
|
+
sentence with a link in it, not an uppercase micro-label.
|
|
12147
|
+
Replaces the inline style ui_kits/blog carried before the inline-style
|
|
12148
|
+
sweep, which named this class without ever defining it. */
|
|
12149
|
+
.ds-247420 .ds-prose .ds-prose-endnote,
|
|
12150
|
+
.ds-247420 .ds-prose-endnote {
|
|
12151
|
+
margin-top: var(--space-5);
|
|
12152
|
+
margin-bottom: 0;
|
|
12153
|
+
font-family: var(--ff-mono);
|
|
12154
|
+
font-size: var(--fs-xs);
|
|
12155
|
+
line-height: 1.6;
|
|
12156
|
+
color: var(--panel-text-2);
|
|
12157
|
+
}
|
|
12158
|
+
/* The endnote's link keeps the prose accent but stays in the quiet register —
|
|
12159
|
+
--panel-accent is the panel-ramp counterpart of --accent-ink (a readable
|
|
12160
|
+
TEXT tone), never the bare --accent fill, which is ~1.07:1 on paper. */
|
|
12161
|
+
.ds-247420 .ds-prose-endnote a { color: var(--panel-accent); text-decoration: none; }
|
|
12162
|
+
.ds-247420 .ds-prose-endnote a:hover { text-decoration: underline; }
|
|
12163
|
+
|
|
12004
12164
|
/* marketing.css */
|
|
12005
12165
|
/* marketing.css — landing / docs site surface family (the agentgui flatspace
|
|
12006
12166
|
* site renderer composes these instead of carrying inline style= props). Every
|