@crewlethq/ui 0.83.0 → 0.84.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 (66) hide show
  1. package/README.md +34 -0
  2. package/dist/ActionCard/ActionCard.d.ts +7 -7
  3. package/dist/ActionCard/index.js +1 -1
  4. package/dist/ActionCard-YZKL3CKR.css +130 -0
  5. package/dist/AppShell/AppShell.d.ts +14 -11
  6. package/dist/AppShell/index.js +1 -1
  7. package/dist/{AppShell-U7D2MUUF.css → AppShell-NX5HCD4O.css} +84 -44
  8. package/dist/ArtifactBar/index.js +1 -1
  9. package/dist/ArtifactCard/index.js +2 -2
  10. package/dist/ArtifactKindIllustration/index.js +1 -1
  11. package/dist/{ArtifactKinds-3EH4KR3F.css → ArtifactKinds-27TE3KJL.css} +7 -7
  12. package/dist/ArtifactMakeRow/index.js +1 -1
  13. package/dist/ArtifactNameCell/index.js +1 -1
  14. package/dist/BriefCard/index.js +2 -1
  15. package/dist/CatalogTile/CatalogTile.d.ts +23 -5
  16. package/dist/CatalogTile/index.d.ts +1 -1
  17. package/dist/CatalogTile/index.js +2 -1
  18. package/dist/{CatalogTile-6VF36JWA.css → CatalogTile-TMOSGSV3.css} +4 -3
  19. package/dist/CompactNav/CompactNav.d.ts +10 -6
  20. package/dist/CompactNav/index.js +1 -1
  21. package/dist/DataView/index.js +1 -1
  22. package/dist/DirectoryList/index.js +1 -1
  23. package/dist/{DirectoryList-XZOWYOA3.css → DirectoryList-IXQIMNFS.css} +8 -1
  24. package/dist/InboxList/InboxList.d.ts +28 -2
  25. package/dist/InboxList/index.d.ts +1 -1
  26. package/dist/InboxList/index.js +6 -1
  27. package/dist/{InboxList-OFGSX5IH.css → InboxList-X5Q5WWAI.css} +63 -2
  28. package/dist/ListDetail/ListDetail.d.ts +6 -0
  29. package/dist/ListDetail/index.js +1 -1
  30. package/dist/{ListDetail-N3L7PB46.css → ListDetail-JGESKTR7.css} +38 -0
  31. package/dist/ReadingPane/ReadingPane.d.ts +17 -1
  32. package/dist/ReadingPane/index.d.ts +1 -1
  33. package/dist/ReadingPane/index.js +2 -1
  34. package/dist/{ReadingPane-VLYOWMCM.css → ReadingPane-VFTRDPC5.css} +19 -0
  35. package/dist/RichEditor/index.js +1 -1
  36. package/dist/SectionFrame/index.js +2 -2
  37. package/dist/ShareDialog/index.js +1 -1
  38. package/dist/SidebarNav/SidebarNav.d.ts +18 -2
  39. package/dist/SidebarNav/index.d.ts +1 -1
  40. package/dist/SidebarNav/index.js +1 -1
  41. package/dist/{SidebarNav-E7PZGGA6.css → SidebarNav-IKBKGXW4.css} +20 -0
  42. package/dist/{chunk-AUSFKGKL.js → chunk-3AMWXJQX.js} +1 -1
  43. package/dist/{chunk-Q7N2ATMC.js → chunk-64JNKLLP.js} +57 -9
  44. package/dist/chunk-6C7GQOBV.js +10 -0
  45. package/dist/{chunk-YRNNUCQP.js → chunk-7BDBO2NP.js} +1 -1
  46. package/dist/{chunk-25JQNHTC.js → chunk-BRK3HXGZ.js} +8 -2
  47. package/dist/{chunk-QM3432PH.js → chunk-C4JTX25K.js} +2 -2
  48. package/dist/{chunk-QE4OIE3Q.js → chunk-DJIWCW5Z.js} +6 -4
  49. package/dist/{chunk-QPHD4UUG.js → chunk-F6ZUM66S.js} +160 -25
  50. package/dist/{chunk-MVMVMHYI.js → chunk-HDEKHP65.js} +1 -1
  51. package/dist/{chunk-BXGBGYKH.js → chunk-HKUZ2GYX.js} +1 -1
  52. package/dist/{chunk-ZB3E2Z4Y.js → chunk-J5T5TDM2.js} +1 -1
  53. package/dist/{chunk-C46DDVTK.js → chunk-LTD7KLOU.js} +1 -1
  54. package/dist/{chunk-YBC2CYPD.js → chunk-O4VTQMEF.js} +1 -1
  55. package/dist/{chunk-HTBTAIH6.js → chunk-OM2LABPS.js} +2 -2
  56. package/dist/{chunk-PGBKZSSQ.js → chunk-ORONAXSF.js} +10 -7
  57. package/dist/{chunk-ICE3D63E.js → chunk-QWRAWKB2.js} +50 -9
  58. package/dist/{chunk-SRDNGGZE.js → chunk-RKIJAXQA.js} +1 -1
  59. package/dist/{chunk-CF4M6N6A.js → chunk-XYSSFI5C.js} +1 -7
  60. package/dist/generated/index.js +31 -30
  61. package/dist/index.js +31 -30
  62. package/dist/styles.css +294 -88
  63. package/dist/utils/developing.d.ts +10 -0
  64. package/package.json +3 -3
  65. package/dist/ActionCard-47WSZ2O5.css +0 -110
  66. package/dist/{Editor-5D5Z3LBQ.js → Editor-VGNB35NJ.js} +1 -1
package/dist/styles.css CHANGED
@@ -109,13 +109,15 @@
109
109
  }
110
110
 
111
111
 
112
- /* ActionCard-47WSZ2O5.css */
112
+ /* ActionCard-YZKL3CKR.css */
113
113
  /*
114
- * ActionCard: a first step offered as a picture, on an artifact kind's
115
- * colour ground. The ground is the kind's own Ground steps (ArtifactKinds.css)
116
- * laid over the card rung, which the palette suite holds to 4.5:1 for the
117
- * primary text in every palette and both modes, with the kind's glow behind
118
- * the drawing.
114
+ * ActionCard: a first step offered as a picture, on a CALM TINT of an
115
+ * artifact kind's hue. The ground is the kind's own Ground steps
116
+ * (ArtifactKinds.css): the card rung tinted by a share of the hue's chroma,
117
+ * never a slab of it, which the palette suite holds to 4.5:1 for the primary
118
+ * text in every palette and both modes and to a chroma ceiling. The edge is
119
+ * the kind's hue stepped toward the ink until it clears 3:1, a step further
120
+ * under the pointer, and a soft halo of the hue stands behind the drawing.
119
121
  */
120
122
 
121
123
  /*
@@ -143,6 +145,7 @@
143
145
 
144
146
  .crewlet-action-card {
145
147
  --crewlet-action-card-ground: var(--crewlet-kind-ground);
148
+ --crewlet-action-card-edge: var(--crewlet-kind-edge);
146
149
  position: relative;
147
150
  display: flex;
148
151
  flex: none;
@@ -153,30 +156,41 @@
153
156
  box-sizing: border-box;
154
157
  overflow: hidden;
155
158
  padding: var(--spacing-3) var(--spacing-3) 0;
156
- /* The kind's hue itself is the edge: 3:1 or more on the sheet in every
157
- palette and mode, where the kind's Line step measured 2.5:1. */
158
- border: 1px solid var(--crewlet-kind-hue);
159
- border-radius: var(--radius-lg);
159
+ /* THE KIND'S OWN EDGE: its hue stepped toward the ink until it clears 3:1
160
+ on the sheet and on the card's tint (`--color-artifact-kind-<kind>-edge`,
161
+ derived by the tokens build and held by its suite). The Line step, the
162
+ hue at 0.38, did not clear it, and a neutral grey outline read as a card
163
+ from another family. */
164
+ border: 1px solid var(--crewlet-action-card-edge);
165
+ /* The edge scale: the extra-large corner a tall card of its own takes, and
166
+ the smallest shadow, so the card sits on the page rather than in it. */
167
+ border-radius: var(--radius-xl);
160
168
  background-color: var(--color-surface-subtle);
161
169
  background-image:
162
- radial-gradient(110% 64% at 50% 100%, var(--crewlet-kind-glow) 0%, transparent 72%),
170
+ radial-gradient(90% 56% at 50% 100%, var(--crewlet-kind-glow) 0%, transparent 72%),
163
171
  linear-gradient(180deg, var(--crewlet-action-card-ground) 0%, var(--crewlet-kind-ground-end) 100%);
172
+ box-shadow: var(--shadow-xs);
164
173
  color: var(--color-text-primary);
165
174
  font: inherit;
166
175
  text-align: left;
167
176
  cursor: pointer;
168
177
  scroll-snap-align: start;
169
- transition: box-shadow var(--motion-duration-fast) var(--motion-easing-default);
178
+ transition:
179
+ box-shadow var(--motion-duration-fast) var(--motion-easing-default),
180
+ border-color var(--motion-duration-fast) var(--motion-easing-default);
170
181
  }
171
182
 
172
- /* A QUIET HOVER: the ground deepens a step and a small shadow lifts the
173
- card off the page. Nothing moves. */
183
+ /* A QUIET HOVER: the tint deepens a step, the edge takes a stronger step of
184
+ the hue, and a small shadow lifts the card off the page. Nothing moves, so
185
+ a row of cards stays still under a pointer passing over it. */
174
186
  .crewlet-action-card:hover {
175
187
  --crewlet-action-card-ground: var(--crewlet-kind-ground-strong);
188
+ --crewlet-action-card-edge: var(--crewlet-kind-edge-strong);
176
189
  box-shadow: var(--shadow-sm);
177
190
  }
178
191
 
179
- /* The card draws its own edge, so the ring is drawn over it. */
192
+ /* The card draws its own edge, so the ring is drawn over it, on the same
193
+ corner. */
180
194
  .crewlet-action-card:focus-visible {
181
195
  outline: 2px solid var(--color-focus);
182
196
  outline-offset: var(--size-focus-ring-inset-offset);
@@ -192,23 +206,29 @@
192
206
  text-wrap: balance;
193
207
  }
194
208
 
195
- /* The drawing stands on the card's foot, still. */
209
+ /*
210
+ * THE DRAWING STANDS ON THE CARD'S FOOT, still, the card's own width less its
211
+ * inset. Every kind's drawing is one canvas (160 by 120), so each takes the
212
+ * same box whatever its shape, a tall page and a wide slide alike, where a
213
+ * fixed width and a height cap drew a page half the size of a slide. It is
214
+ * set a step into the foot, so it stands on the edge rather than floating
215
+ * above it, on a soft shadow of the kind's Fill.
216
+ */
196
217
  .crewlet-action-card__art {
197
218
  display: flex;
198
219
  align-items: flex-end;
199
220
  justify-content: center;
200
- height: 100px;
201
- margin: 0 calc(var(--spacing-3) * -1);
221
+ margin-bottom: calc(var(--spacing-2) * -1);
202
222
  }
203
223
 
204
224
  .crewlet-action-card__art .crewlet-kind-illustration {
205
- width: 112px;
206
- max-height: 96px;
207
- margin-bottom: calc(var(--spacing-2) * -1);
208
- filter: drop-shadow(0 6px 12px var(--crewlet-kind-line));
225
+ width: 100%;
226
+ height: auto;
227
+ filter: drop-shadow(0 4px 10px var(--crewlet-kind-fill));
209
228
  }
210
229
 
211
- /* FORCED COLORS drops the ground; the hue's border stays as the card's edge. */
230
+ /* FORCED COLORS drops the ground and the hue; the edge is drawn in the
231
+ system's text colour, so the card keeps its outline. */
212
232
  @media (forced-colors: active) {
213
233
  .crewlet-action-card {
214
234
  border-color: CanvasText;
@@ -944,7 +964,7 @@
944
964
  }
945
965
 
946
966
 
947
- /* AppShell-U7D2MUUF.css */
967
+ /* AppShell-NX5HCD4O.css */
948
968
  /*
949
969
  * The application frame: a rail on the FRAME, and the screen on a SHEET that
950
970
  * floats beside it.
@@ -973,6 +993,11 @@
973
993
  .crewlet-app-shell {
974
994
  --crewlet-app-shell-rail: var(--size-shell-rail);
975
995
  --crewlet-app-shell-topbar: var(--size-shell-topbar);
996
+ /* THE SHEET'S SIDE INSET, ONE LENGTH: the bar's, the content column's, and
997
+ the inset a box that reaches past the column to the sheet's edge keeps
998
+ inside itself (a `ListDetail` on a fill screen), one step narrower on a
999
+ narrow window. */
1000
+ --crewlet-app-shell-inset: var(--spacing-5);
976
1001
  /* What stands on the frame to the sheet's left: the rail's column, or
977
1002
  nothing where there is no rail or the rail is a drawer. */
978
1003
  --crewlet-app-shell-beside: var(--crewlet-app-shell-rail);
@@ -1575,7 +1600,8 @@
1575
1600
  gap: var(--spacing-3);
1576
1601
  flex: none;
1577
1602
  height: var(--crewlet-app-shell-topbar);
1578
- padding: 0 calc(var(--spacing-5) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-5);
1603
+ padding: 0 calc(var(--crewlet-app-shell-inset) + var(--crewlet-app-shell-gutter, 0px)) 0
1604
+ var(--crewlet-app-shell-inset);
1579
1605
  border-bottom: 1px solid var(--color-border-default);
1580
1606
  background: var(--color-surface-background);
1581
1607
  }
@@ -1665,46 +1691,76 @@
1665
1691
  gap: var(--spacing-5);
1666
1692
  max-width: var(--size-content-max);
1667
1693
  margin: 0 auto;
1668
- padding: var(--spacing-5) var(--spacing-5);
1694
+ padding: var(--crewlet-app-shell-inset);
1669
1695
  padding-bottom: var(--crewlet-app-shell-content-end);
1670
1696
  min-width: 0;
1671
1697
  }
1672
1698
 
1673
- /* A screen that draws to the bottom of the window: the scroller stops
1674
- scrolling and the content column takes the height that is left.
1675
-
1676
- IT KEEPS THE GUTTER RESERVED, like every other screen. The top bar's end
1677
- inset counts the scroller's gutter (`--crewlet-app-shell-gutter`, measured
1678
- by the shell), so a fill screen that reserved none put the bar's controls
1679
- one gutter further out than on the screen beside it: with classic
1680
- scrollbars, Add seat moved 11px between an org chart and its roster, two
1681
- tabs of one page. A strip at the end edge of a full-screen canvas is the
1682
- smaller cost than a bar that moves under the pointer. */
1699
+ /*
1700
+ * A screen that draws to the bottom of the window: the scroller stops
1701
+ * scrolling and the content column takes the height that is left, and the
1702
+ * whole width, since a screen that fills the window is a frame for panes
1703
+ * rather than a page of prose (prose inside it keeps its own measure).
1704
+ *
1705
+ * THE SCROLLER RESERVES NO GUTTER; THE COLUMN PADS BY IT INSTEAD. Nothing
1706
+ * scrolls here, so the strip a scrolling screen keeps for its scrollbar is
1707
+ * only there to hold the content where the bar's controls expect it (the
1708
+ * bar's end inset counts the gutter). A reserved strip did that, and also
1709
+ * stood between the sheet's edge and every pane that scrolls on its own: a
1710
+ * list's detail drew its scrollbar 31px inside the sheet, beside an empty
1711
+ * strip, and nothing in the screen could paint over a reserved gutter. The
1712
+ * same length as padding holds the content exactly where it stood, and a box
1713
+ * standing in the column can reach past padding: the column publishes it as
1714
+ * `--crewlet-app-shell-bleed-end`, and a `ListDetail` takes it back so its
1715
+ * scrollbar is the sheet's last pixel. The scrollbar's width is read off the
1716
+ * shell's gauge here (AppShell.tsx), so the bar keeps its place between a
1717
+ * fill screen and a scrolling one.
1718
+ */
1683
1719
  .crewlet-app-shell--fill .crewlet-app-shell__main {
1684
1720
  overflow: hidden;
1721
+ scrollbar-gutter: auto;
1685
1722
  }
1686
1723
 
1687
1724
  .crewlet-app-shell--fill .crewlet-app-shell__content {
1688
1725
  --crewlet-app-shell-content-end: var(--spacing-5);
1726
+ --crewlet-app-shell-bleed-end: calc(var(--crewlet-app-shell-inset) + var(--crewlet-app-shell-gutter, 0px));
1689
1727
 
1690
1728
  height: 100%;
1729
+ max-width: none;
1730
+ padding-right: var(--crewlet-app-shell-bleed-end);
1691
1731
  }
1692
1732
 
1693
1733
  /*
1694
- * A FLUSH SCREEN draws its own frame to the sheet's edges: the column gives up
1695
- * its pad, its measure and its gap, and the scroller reserves no gutter, since
1696
- * nothing in it scrolls and a strip at its end would cut the screen's own
1697
- * edge. The column is the containing block for a `LayerHost` the screen
1698
- * keeps, so its layers fill the screen rather than the window.
1734
+ * THE GAUGE: an empty scroller, never seen, that always draws its scrollbar,
1735
+ * so the shell can read the scrollbar's width on a fill screen, where the
1736
+ * screen's own scroller reserves none. It is a row of no height in the
1737
+ * sheet's column, clipped, so it takes no room and moves nothing; the ruler
1738
+ * inside it has a height of its own, because a scroller of no height draws
1739
+ * no scrollbar in Firefox and measured 0 there.
1699
1740
  */
1700
- .crewlet-app-shell--fill-flush .crewlet-app-shell__main {
1701
- scrollbar-gutter: auto;
1741
+ .crewlet-app-shell__gauge {
1742
+ flex: none;
1743
+ height: 0;
1744
+ overflow: hidden;
1745
+ visibility: hidden;
1702
1746
  }
1703
1747
 
1748
+ .crewlet-app-shell__gauge-ruler {
1749
+ height: var(--size-target-min);
1750
+ overflow-y: scroll;
1751
+ }
1752
+
1753
+ /*
1754
+ * A FLUSH SCREEN draws its own frame to the sheet's edges: the column gives up
1755
+ * its pad and its gap as well, so there is nothing for a box in it to reach
1756
+ * past. The column is the containing block for a `LayerHost` the screen
1757
+ * keeps, so its layers fill the screen rather than the window.
1758
+ */
1704
1759
  .crewlet-app-shell--fill-flush .crewlet-app-shell__content {
1760
+ --crewlet-app-shell-bleed-end: 0px;
1761
+
1705
1762
  position: relative;
1706
1763
  gap: 0;
1707
- max-width: none;
1708
1764
  padding: 0;
1709
1765
  }
1710
1766
 
@@ -1869,22 +1925,26 @@
1869
1925
  }
1870
1926
 
1871
1927
  /*
1872
- * THE FOLD CONTROL stands in the rail's top left corner, in both shapes, so
1873
- * it never moves under the pointer that pressed it: a minus while the rail is
1874
- * full and a plus while it is compact. The corner is the square the head
1875
- * leaves empty up and to the left of the brand's mark, and the control is the
1876
- * target floor (`--size-target-min`), so it ends short of the mark on the
1877
- * compact column's centre at every density.
1928
+ * THE FOLD CONTROL stands on the head's row, before the brand's mark, in both
1929
+ * shapes, so it never moves under the pointer that pressed it: chevrons
1930
+ * pointing left to fold the rail and right to unfold it.
1931
+ *
1932
+ * THE CONTROL AND THE MARK ARE ONE PAIR: the control at the target floor
1933
+ * (`--size-target-min`, at every density), a step (`--spacing-1`), then the
1934
+ * mark, which is a target's size too, the pair centred in the compact column
1935
+ * so the 76px column holds both (12 + 24 + 4 + 24 + 12). The control is
1936
+ * centred on the bar's line as the mark is: the inset, then half of what the
1937
+ * bar leaves round it. The mark's inset below is the same arithmetic from the
1938
+ * other side.
1878
1939
  *
1879
1940
  * Quiet until the rail is pointed at: the tertiary ink, which holds 3:1 on
1880
1941
  * the frame, then the secondary, and the ghost's own primary under the
1881
- * pointer. Its ring is drawn inside its own box, because the corner it
1882
- * stands in is the window's, and a ring outside it would be cut there.
1942
+ * pointer. Its ring is drawn inside its own box, clear of the mark beside it.
1883
1943
  */
1884
1944
  .crewlet-app-shell__fold {
1885
1945
  position: absolute;
1886
- top: 0;
1887
- left: 0;
1946
+ top: calc(var(--size-shell-inset) + (var(--crewlet-app-shell-topbar) - var(--size-target-min)) / 2);
1947
+ left: calc((var(--size-shell-rail-compact) - 2 * var(--size-target-min) - var(--spacing-1)) / 2);
1888
1948
  z-index: 1;
1889
1949
  display: inline-flex;
1890
1950
  }
@@ -1904,13 +1964,20 @@
1904
1964
  }
1905
1965
 
1906
1966
  /*
1907
- * THE MARK STANDS WHERE THE COMPACT RAIL'S DOES, in both shapes: centred over
1908
- * the compact column, in the head. Full, the name follows it; compact, the
1909
- * name is not drawn (the link keeps it as its name and title).
1967
+ * THE MARK STANDS WHERE THE COMPACT RAIL'S DOES, in both shapes. With no fold
1968
+ * control it is centred over the compact column; beside the fold control it
1969
+ * is the second of the pair (above), a step after the control, which is half
1970
+ * the column and half the step in. Full, the name follows it; compact, the
1971
+ * name is not drawn (the link keeps it as its name and title), and the
1972
+ * lockup's end inset is given up, so the mark is all the column holds.
1910
1973
  */
1911
- .crewlet-app-shell--foldable .crewlet-app-shell__rail-head > .crewlet-brand,
1912
1974
  .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-head > .crewlet-brand {
1913
1975
  padding-left: calc((var(--size-shell-rail-compact) - var(--crewlet-brand-mark)) / 2);
1976
+ padding-right: 0;
1977
+ }
1978
+
1979
+ .crewlet-app-shell--foldable[data-rail] .crewlet-app-shell__rail-head > .crewlet-brand {
1980
+ padding-left: calc((var(--size-shell-rail-compact) + var(--spacing-1)) / 2);
1914
1981
  }
1915
1982
 
1916
1983
  .crewlet-app-shell[data-rail='compact'] .crewlet-brand__name,
@@ -2034,6 +2101,9 @@
2034
2101
  @media (width < 1024px) {
2035
2102
  .crewlet-app-shell {
2036
2103
  --crewlet-app-shell-beside: 0px;
2104
+ /* 16px: the content's 12px stood every page's first line 4px left of
2105
+ the bar's title and the controls over it. */
2106
+ --crewlet-app-shell-inset: var(--spacing-4);
2037
2107
  grid-template-columns: minmax(0, 1fr);
2038
2108
  }
2039
2109
 
@@ -2116,18 +2186,8 @@
2116
2186
  display: inline-flex;
2117
2187
  }
2118
2188
 
2119
- /* THE TOP BAR'S GUTTER, 16px: the content's 12px stood every page's first
2120
- line 4px left of the title and the controls over it. The bar and the
2121
- content take it together. */
2122
- .crewlet-app-shell__topbar {
2123
- padding: 0 calc(var(--spacing-4) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-4);
2124
- }
2125
-
2126
2189
  .crewlet-app-shell__content {
2127
2190
  --crewlet-app-shell-content-end: var(--spacing-9);
2128
-
2129
- padding: var(--spacing-4) var(--spacing-4);
2130
- padding-bottom: var(--crewlet-app-shell-content-end);
2131
2191
  }
2132
2192
  }
2133
2193
 
@@ -4465,7 +4525,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
4465
4525
  }
4466
4526
 
4467
4527
 
4468
- /* ArtifactKinds-3EH4KR3F.css */
4528
+ /* ArtifactKinds-27TE3KJL.css */
4469
4529
  /*
4470
4530
  * A kind's colours, set once per kind on `--crewlet-kind-*` by its class
4471
4531
  * (`crewlet-kind--<kind>`): the hue, its Fill and Line steps, the ink a
@@ -4477,13 +4537,13 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
4477
4537
  * its own, imported by each surface that tints, because the glyph's module
4478
4538
  * carries no stylesheet (a frame that draws one glyph takes nothing else).
4479
4539
  */
4480
- .crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); --crewlet-kind-ground: var(--color-artifact-kind-doc-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-doc-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-doc-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-doc-glow); }
4481
- .crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); --crewlet-kind-ground: var(--color-artifact-kind-slides-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-slides-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-slides-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-slides-glow); }
4482
- .crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); --crewlet-kind-ground: var(--color-artifact-kind-design-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-design-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-design-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-design-glow); }
4483
- .crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); --crewlet-kind-ground: var(--color-artifact-kind-dashboard-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-dashboard-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-dashboard-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-dashboard-glow); }
4484
- .crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); --crewlet-kind-ground: var(--color-artifact-kind-html-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-html-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-html-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-html-glow); }
4485
- .crewlet-kind--brand { --crewlet-kind-hue: var(--color-artifact-kind-brand); --crewlet-kind-fill: var(--color-artifact-kind-brand-fill); --crewlet-kind-line: var(--color-artifact-kind-brand-line); --crewlet-kind-ink: var(--color-artifact-kind-brand-ink); --crewlet-kind-ground: var(--color-artifact-kind-brand-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-brand-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-brand-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-brand-glow); }
4486
- .crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); --crewlet-kind-ground: var(--color-artifact-kind-sheet-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-sheet-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-sheet-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-sheet-glow); }
4540
+ .crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); --crewlet-kind-ground: var(--color-artifact-kind-doc-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-doc-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-doc-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-doc-glow); --crewlet-kind-edge: var(--color-artifact-kind-doc-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-doc-edge-strong); }
4541
+ .crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); --crewlet-kind-ground: var(--color-artifact-kind-slides-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-slides-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-slides-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-slides-glow); --crewlet-kind-edge: var(--color-artifact-kind-slides-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-slides-edge-strong); }
4542
+ .crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); --crewlet-kind-ground: var(--color-artifact-kind-design-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-design-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-design-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-design-glow); --crewlet-kind-edge: var(--color-artifact-kind-design-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-design-edge-strong); }
4543
+ .crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); --crewlet-kind-ground: var(--color-artifact-kind-dashboard-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-dashboard-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-dashboard-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-dashboard-glow); --crewlet-kind-edge: var(--color-artifact-kind-dashboard-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-dashboard-edge-strong); }
4544
+ .crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); --crewlet-kind-ground: var(--color-artifact-kind-html-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-html-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-html-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-html-glow); --crewlet-kind-edge: var(--color-artifact-kind-html-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-html-edge-strong); }
4545
+ .crewlet-kind--brand { --crewlet-kind-hue: var(--color-artifact-kind-brand); --crewlet-kind-fill: var(--color-artifact-kind-brand-fill); --crewlet-kind-line: var(--color-artifact-kind-brand-line); --crewlet-kind-ink: var(--color-artifact-kind-brand-ink); --crewlet-kind-ground: var(--color-artifact-kind-brand-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-brand-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-brand-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-brand-glow); --crewlet-kind-edge: var(--color-artifact-kind-brand-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-brand-edge-strong); }
4546
+ .crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); --crewlet-kind-ground: var(--color-artifact-kind-sheet-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-sheet-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-sheet-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-sheet-glow); --crewlet-kind-edge: var(--color-artifact-kind-sheet-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-sheet-edge-strong); }
4487
4547
 
4488
4548
 
4489
4549
  /* ArtifactMakeRow-6UX2LTF7.css */
@@ -8678,7 +8738,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
8678
8738
  }
8679
8739
 
8680
8740
 
8681
- /* CatalogTile-6VF36JWA.css */
8741
+ /* CatalogTile-TMOSGSV3.css */
8682
8742
  /*
8683
8743
  * CatalogTile: mark, name and state, one sentence, and a foot with a quiet
8684
8744
  * fact and one action.
@@ -8760,9 +8820,10 @@ a.crewlet-breadcrumb__crumb:focus-visible {
8760
8820
  overflow-wrap: anywhere;
8761
8821
  }
8762
8822
 
8763
- /* A state in words (a StatusDot's label) at a Tag's caption step, so a row
8764
- reads the same whichever one a tile carries. It inherited the page's size,
8765
- and on a 16px page "Connected" stood taller than the name before it. */
8823
+ /* THE STATE, the tone's dot and its word, at the caption step the fact
8824
+ beside it takes, so a compact tile's line reads name, state, fact at one
8825
+ height. It inherited the page's size, and on a 16px page "Connected" stood
8826
+ taller than the name before it. */
8766
8827
  .crewlet-catalog-tile__status {
8767
8828
  display: inline-flex;
8768
8829
  font-size: var(--font-size-xs);
@@ -19032,7 +19093,7 @@ svg.crewlet-datetime__chevron {
19032
19093
  }
19033
19094
 
19034
19095
 
19035
- /* DirectoryList-XZOWYOA3.css */
19096
+ /* DirectoryList-IXQIMNFS.css */
19036
19097
  /*
19037
19098
  * DirectoryList: named groups of links, each line a mark, a label and a state,
19038
19099
  * and one foot that holds the bottom (DirectoryList.tsx).
@@ -19052,7 +19113,12 @@ svg.crewlet-datetime__chevron {
19052
19113
  font-family: var(--font-family-sans);
19053
19114
  }
19054
19115
 
19055
- /* The groups take the room and scroll on their own, so the foot stays put. */
19116
+ /* The groups take the room and scroll on their own, so the foot stays put.
19117
+
19118
+ THEIR INSET IS INSIDE THE SCROLLER. The gutter is reserved whether or not
19119
+ they scroll, and the lines end a step before it: a line's state pill stood
19120
+ against the scrollbar, and moved by its width when the list grew long
19121
+ enough to scroll. */
19056
19122
  .crewlet-directory__groups {
19057
19123
  display: flex;
19058
19124
  flex: 1 1 auto;
@@ -19061,7 +19127,9 @@ svg.crewlet-datetime__chevron {
19061
19127
  under it rather than a band between two runs of them. */
19062
19128
  gap: var(--spacing-3);
19063
19129
  min-height: 0;
19130
+ padding-right: var(--spacing-2);
19064
19131
  overflow-y: auto;
19132
+ scrollbar-gutter: stable;
19065
19133
  }
19066
19134
 
19067
19135
  .crewlet-directory__group {
@@ -22296,7 +22364,7 @@ a.crewlet-icon-btn {
22296
22364
  }
22297
22365
 
22298
22366
 
22299
- /* InboxList-OFGSX5IH.css */
22367
+ /* InboxList-X5Q5WWAI.css */
22300
22368
  /*
22301
22369
  * The inbox's column: groups of rows, each row a control with the task it is
22302
22370
  * about under it, and the quiet toggles at the end.
@@ -22325,6 +22393,9 @@ a.crewlet-icon-btn {
22325
22393
 
22326
22394
  /* The heading's own line box is the label's, so the label sits where it is drawn. */
22327
22395
  .crewlet-inbox-list__label {
22396
+ /* The arrival's wash stands behind the label's words, inside it. */
22397
+ position: relative;
22398
+ isolation: isolate;
22328
22399
  margin: 0;
22329
22400
  padding: var(--spacing-3) var(--spacing-2) var(--spacing-1);
22330
22401
  font: inherit;
@@ -22332,6 +22403,32 @@ a.crewlet-icon-btn {
22332
22403
  line-height: var(--font-line-height-snug);
22333
22404
  }
22334
22405
 
22406
+ /*
22407
+ * A ROW ARRIVED: a wash of the accent that fades back to the ground, over the
22408
+ * row itself, or over a group's label and count where the row landed in a
22409
+ * closed group. The row's keyframes name no last step, so the wash returns
22410
+ * to whatever the row draws of its own (hover, selected).
22411
+ */
22412
+ .crewlet-inbox-list__arrival {
22413
+ position: absolute;
22414
+ inset: 0;
22415
+ z-index: -1;
22416
+ border-radius: var(--radius-xs);
22417
+ pointer-events: none;
22418
+ animation: crewlet-inbox-arrive calc(var(--motion-duration-moderate) * 8) var(--motion-easing-out) both;
22419
+ }
22420
+
22421
+ .crewlet-inbox-row--arrived {
22422
+ animation: crewlet-inbox-arrive calc(var(--motion-duration-moderate) * 8) var(--motion-easing-out);
22423
+ }
22424
+
22425
+ @keyframes crewlet-inbox-arrive {
22426
+ 0%,
22427
+ 40% {
22428
+ background: var(--color-brand-accent-soft-strong);
22429
+ }
22430
+ }
22431
+
22335
22432
  /* The count after a label, in the quiet ink and the label's own register. */
22336
22433
  .crewlet-inbox-list__count {
22337
22434
  margin-inline-start: var(--spacing-1);
@@ -22406,12 +22503,38 @@ a.crewlet-icon-btn {
22406
22503
  * a selected row takes no hover on top of it: both are a background on the
22407
22504
  * same element, and a composite of the two is a colour nothing has measured.
22408
22505
  */
22506
+ /* ONE TRACK, so a leaving row can close its height (below). */
22409
22507
  .crewlet-inbox-row {
22508
+ display: grid;
22509
+ grid-template-rows: 1fr;
22410
22510
  min-width: 0;
22411
22511
  border-radius: var(--radius-md);
22412
22512
  transition: background var(--motion-duration-fast) var(--motion-easing-default);
22413
22513
  }
22414
22514
 
22515
+ .crewlet-inbox-row__body {
22516
+ min-width: 0;
22517
+ min-height: 0;
22518
+ }
22519
+
22520
+ /*
22521
+ * A ROW LEAVING closes its one track to nothing and fades, on the slow step
22522
+ * with the emphasized curve, the motion a column opens and shuts by, so the
22523
+ * rows under it slide up into its place. The shell's presence waits on the
22524
+ * track's transition (`INBOX_ROW_LEAVE`), and the row is inert all the while.
22525
+ */
22526
+ .crewlet-inbox-row--leaving {
22527
+ grid-template-rows: 0fr;
22528
+ opacity: 0;
22529
+ transition:
22530
+ grid-template-rows var(--motion-duration-slow) var(--motion-easing-emphasized),
22531
+ opacity var(--motion-duration-moderate) var(--motion-easing-out);
22532
+ }
22533
+
22534
+ .crewlet-inbox-row--leaving .crewlet-inbox-row__body {
22535
+ overflow: hidden;
22536
+ }
22537
+
22415
22538
  .crewlet-inbox-row:hover {
22416
22539
  background: var(--color-surface-hover);
22417
22540
  }
@@ -22648,7 +22771,7 @@ a.crewlet-icon-btn {
22648
22771
  }
22649
22772
 
22650
22773
  /* A row with no leading slot: the words start at the control's own pad, and so does the task. */
22651
- .crewlet-inbox-row:not(:has(.crewlet-inbox-row__leading)) > .crewlet-inbox-row__aside {
22774
+ .crewlet-inbox-row:not(:has(.crewlet-inbox-row__leading)) .crewlet-inbox-row__aside {
22652
22775
  padding-inline-start: var(--spacing-2);
22653
22776
  }
22654
22777
 
@@ -22684,10 +22807,16 @@ a.crewlet-icon-btn {
22684
22807
  }
22685
22808
 
22686
22809
  @media (prefers-reduced-motion: reduce) {
22687
- .crewlet-inbox-row {
22810
+ .crewlet-inbox-row,
22811
+ .crewlet-inbox-row--leaving {
22688
22812
  transition: none;
22689
22813
  }
22690
22814
 
22815
+ .crewlet-inbox-row--arrived,
22816
+ .crewlet-inbox-list__arrival {
22817
+ animation: none;
22818
+ }
22819
+
22691
22820
  .crewlet-inbox-list__toggle,
22692
22821
  .crewlet-inbox-list__chevron {
22693
22822
  transition: none;
@@ -24910,7 +25039,7 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
24910
25039
  }
24911
25040
 
24912
25041
 
24913
- /* ListDetail-N3L7PB46.css */
25042
+ /* ListDetail-JGESKTR7.css */
24914
25043
  /*
24915
25044
  * ListDetail: a list beside the detail of what is chosen in it, each scrolling
24916
25045
  * on its own in the height it is given, one pane where it is narrow
@@ -24923,6 +25052,17 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
24923
25052
  * drew the detail 130px wide beside a 17rem list. The phone rule below is the
24924
25053
  * one decision that stays the window's: on a phone the page scrolls as a
24925
25054
  * whole rather than each pane on its own.
25055
+ *
25056
+ * ON A SCREEN THAT FILLS THE WINDOW, THE PANE THAT SCROLLS IS ITS OUTERMOST
25057
+ * BOX, and its inset is padding inside it. Standing directly in the fill
25058
+ * column, the ListDetail reaches past the column's end pad to the sheet's
25059
+ * edge (below), so the scrollbar is the sheet's last pixel; the detail then
25060
+ * reserves its scrollbar's gutter whether or not it scrolls, and keeps the
25061
+ * screen's side inset between its content and that gutter, so a trailing
25062
+ * control (a header's Disconnect, a tile's Open) never touches the scrollbar,
25063
+ * does not move when the detail grows long enough to scroll, and ends under
25064
+ * the bar's last control. Anywhere else (a scrolling or a flush screen, or
25065
+ * outside a shell) it is as wide as its box, with nothing reserved.
24926
25066
  */
24927
25067
 
24928
25068
  /* THE HAIRLINE STANDS MIDWAY between the two panes: the list's inset before it
@@ -24930,6 +25070,9 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
24930
25070
  the list than to the detail it divides it from; the two still add to 64. */
24931
25071
  .crewlet-list-detail {
24932
25072
  --crewlet-list-detail-gutter: var(--spacing-7);
25073
+ /* The inset at a scrolling pane's end: the screen's own side inset in a
25074
+ shell, so the page's two edges match. */
25075
+ --crewlet-list-detail-end: var(--crewlet-app-shell-inset, var(--spacing-5));
24933
25076
 
24934
25077
  container: crewlet-list-detail / inline-size;
24935
25078
  display: flex;
@@ -24940,6 +25083,21 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
24940
25083
  min-height: 0;
24941
25084
  }
24942
25085
 
25086
+ /* STANDING IN A FILL SCREEN'S COLUMN, IT TAKES THE COLUMN'S END PAD BACK: the
25087
+ inset and the scrollbar's width, which the shell publishes for exactly
25088
+ this (`--crewlet-app-shell-bleed-end`, AppShell.css). The detail keeps the
25089
+ same inset inside itself, and reserves its gutter, there and only there. */
25090
+ :where(.crewlet-app-shell--fill:not(.crewlet-app-shell--fill-flush) .crewlet-app-shell__content) > .crewlet-list-detail {
25091
+ margin-right: calc(var(--crewlet-app-shell-bleed-end, 0px) * -1);
25092
+ }
25093
+
25094
+ :where(.crewlet-app-shell--fill:not(.crewlet-app-shell--fill-flush) .crewlet-app-shell__content)
25095
+ > .crewlet-list-detail
25096
+ .crewlet-list-detail__detail {
25097
+ padding-right: var(--crewlet-list-detail-end);
25098
+ scrollbar-gutter: stable;
25099
+ }
25100
+
24943
25101
  .crewlet-list-detail__panes {
24944
25102
  display: grid;
24945
25103
  flex: 1 1 auto;
@@ -24981,6 +25139,15 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
24981
25139
  overflow-y: auto;
24982
25140
  }
24983
25141
 
25142
+ /* The list is the pane that scrolls now, and takes the detail's end where
25143
+ the ListDetail reaches the sheet. */
25144
+ :where(.crewlet-app-shell--fill:not(.crewlet-app-shell--fill-flush) .crewlet-app-shell__content)
25145
+ > .crewlet-list-detail
25146
+ .crewlet-list-detail__list {
25147
+ padding-right: var(--crewlet-list-detail-end);
25148
+ scrollbar-gutter: stable;
25149
+ }
25150
+
24984
25151
  .crewlet-list-detail--showing-list .crewlet-list-detail__detail,
24985
25152
  .crewlet-list-detail--showing-detail .crewlet-list-detail__list {
24986
25153
  display: none;
@@ -31110,7 +31277,7 @@ button.crewlet-presence-stack__member:focus-visible {
31110
31277
  }
31111
31278
 
31112
31279
 
31113
- /* ReadingPane-VLYOWMCM.css */
31280
+ /* ReadingPane-VFTRDPC5.css */
31114
31281
  /*
31115
31282
  * One item read in full, in one column.
31116
31283
  *
@@ -31145,6 +31312,25 @@ button.crewlet-presence-stack__member:focus-visible {
31145
31312
  }
31146
31313
  }
31147
31314
 
31315
+ /* A NEW ITEM PLAYS IN (`contentKey`): a short fade and rise, so the reader
31316
+ sees the pane move on rather than its words change under them. */
31317
+ .crewlet-reading-pane__column--entering {
31318
+ animation: crewlet-reading-pane-enter var(--motion-duration-moderate) var(--motion-easing-out);
31319
+ }
31320
+
31321
+ @keyframes crewlet-reading-pane-enter {
31322
+ from {
31323
+ opacity: 0;
31324
+ transform: translateY(var(--spacing-2));
31325
+ }
31326
+ }
31327
+
31328
+ @media (prefers-reduced-motion: reduce) {
31329
+ .crewlet-reading-pane__column--entering {
31330
+ animation: none;
31331
+ }
31332
+ }
31333
+
31148
31334
  /* ---- The byline -------------------------------------------------------- */
31149
31335
 
31150
31336
  .crewlet-reading-pane__byline {
@@ -36174,7 +36360,7 @@ svg.crewlet-select__chevron {
36174
36360
  }
36175
36361
 
36176
36362
 
36177
- /* SidebarNav-E7PZGGA6.css */
36363
+ /* SidebarNav-IKBKGXW4.css */
36178
36364
  /*
36179
36365
  * The rail's navigation.
36180
36366
  *
@@ -36592,6 +36778,26 @@ svg.crewlet-select__chevron {
36592
36778
  line-height: 1;
36593
36779
  }
36594
36780
 
36781
+ /*
36782
+ * A QUIET BADGE keeps the pill, its size and its place at the row's end, and
36783
+ * takes the quiet count's grey: a neutral wash (`--color-fill-soft`, the
36784
+ * ground of a quiet label at rest) carrying the secondary ink, for work that
36785
+ * is the reader's own and waiting, but not calling. The secondary ink rather
36786
+ * than the count's tertiary, because on a wash over a hovered row the
36787
+ * tertiary measured 4.41:1 in light; it is the ink the compact rail's quiet
36788
+ * figure takes, so the two shapes draw the same grey. On the reader's own row
36789
+ * its ink lifts to the row's, as the count's does; the suite measures the
36790
+ * pair on every ground a row can have.
36791
+ */
36792
+ .crewlet-nav-item__badge--quiet {
36793
+ background: var(--color-fill-soft);
36794
+ color: var(--color-text-secondary);
36795
+ }
36796
+
36797
+ .crewlet-nav-item__row[aria-current='page'] .crewlet-nav-item__badge--quiet {
36798
+ color: inherit;
36799
+ }
36800
+
36595
36801
  /* Beside a count the badge is the second figure, not a second push to the
36596
36802
  end: two auto margins would split the room between them and float the
36597
36803
  count into the middle of the row. */