@slotted/styles 0.1.0-beta.8 → 0.1.0-beta.9

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 (128) hide show
  1. package/package.json +1 -1
  2. package/src/accordion/accordion.css +10 -10
  3. package/src/action-bar/action-bar.css +31 -32
  4. package/src/action-sheet/action-sheet.css +36 -36
  5. package/src/alert/alert.css +35 -35
  6. package/src/app-shell/app-shell.css +280 -299
  7. package/src/aspect-ratio/aspect-ratio.css +9 -9
  8. package/src/attachment/attachment.css +91 -99
  9. package/src/avatar/avatar.css +41 -41
  10. package/src/avatar-group/avatar-group.css +21 -22
  11. package/src/badge/badge.css +37 -37
  12. package/src/breadcrumb/breadcrumb.css +37 -37
  13. package/src/button/button.css +88 -69
  14. package/src/button-group/button-group.css +69 -73
  15. package/src/calendar/calendar.css +93 -103
  16. package/src/card/card.css +54 -61
  17. package/src/carousel/carousel.css +150 -161
  18. package/src/cascader/cascader.css +147 -151
  19. package/src/chart/chart.css +225 -240
  20. package/src/checkbox/checkbox.css +119 -124
  21. package/src/checkbox-group/checkbox-group.css +7 -7
  22. package/src/code-block/code-block.css +81 -85
  23. package/src/collapsible/collapsible.css +69 -76
  24. package/src/color-picker/color-picker.css +83 -91
  25. package/src/column-manager/column-manager.css +106 -114
  26. package/src/combobox/combobox.css +99 -101
  27. package/src/command-palette/command-palette.css +84 -90
  28. package/src/container/container.css +24 -24
  29. package/src/context-menu/context-menu.css +8 -8
  30. package/src/currency-field/currency-field.css +99 -104
  31. package/src/dashboard-grid/dashboard-grid.css +104 -107
  32. package/src/data-grid/data-grid.css +458 -456
  33. package/src/data-grid/data-grid.tokens.json +2 -0
  34. package/src/data-list/data-list.css +67 -69
  35. package/src/date-field/date-field.css +50 -50
  36. package/src/date-picker/date-picker.css +40 -42
  37. package/src/date-range-picker/date-range-picker.css +114 -118
  38. package/src/datetime-field/datetime-field.css +73 -78
  39. package/src/datetime-picker/datetime-picker.css +61 -63
  40. package/src/datetime-range-picker/datetime-range-picker.css +149 -156
  41. package/src/description-list/description-list.css +61 -64
  42. package/src/detail-panel/detail-panel.css +70 -70
  43. package/src/dialog/dialog.css +300 -148
  44. package/src/divider/divider.css +18 -18
  45. package/src/drawer/drawer.css +186 -209
  46. package/src/entity-picker/entity-picker.css +220 -239
  47. package/src/event-calendar/event-calendar.css +343 -385
  48. package/src/field/field.css +74 -78
  49. package/src/field-group/field-group.css +22 -25
  50. package/src/filter-bar/filter-bar.css +193 -209
  51. package/src/form/form.css +21 -24
  52. package/src/fullscreen/fullscreen.css +24 -25
  53. package/src/grid/grid.css +28 -28
  54. package/src/highlight/highlight.css +6 -6
  55. package/src/hover-card/hover-card.css +6 -6
  56. package/src/icon/icon.css +15 -15
  57. package/src/image/image.css +39 -39
  58. package/src/import-export-center/import-export-center.css +135 -156
  59. package/src/inline/inline.css +27 -27
  60. package/src/inline-message/inline-message.css +28 -28
  61. package/src/kbd/kbd.css +26 -26
  62. package/src/link/link.css +15 -15
  63. package/src/list/list.css +20 -20
  64. package/src/list-item/list-item.css +66 -66
  65. package/src/listbox/listbox.css +56 -59
  66. package/src/loading-overlay/loading-overlay.css +75 -92
  67. package/src/markdown/markdown.css +17 -17
  68. package/src/menu/menu.css +63 -65
  69. package/src/menubar/menubar.css +13 -13
  70. package/src/message/message.css +174 -202
  71. package/src/message-scroller/message-scroller.css +41 -42
  72. package/src/multi-select/multi-select.css +131 -137
  73. package/src/navigation-menu/navigation-menu.css +167 -188
  74. package/src/notification-center/notification-center.css +134 -148
  75. package/src/number-field/number-field.css +76 -81
  76. package/src/otp-input/otp-input.css +48 -48
  77. package/src/page/page.css +23 -23
  78. package/src/page-header/page-header.css +219 -280
  79. package/src/pagination/pagination.css +68 -72
  80. package/src/popover/popover.css +40 -49
  81. package/src/progress-indicator/progress-indicator.css +85 -90
  82. package/src/prompt-composer/prompt-composer.css +94 -99
  83. package/src/prose/prose.css +71 -75
  84. package/src/radio-group/radio-group.css +98 -103
  85. package/src/rating/rating.css +132 -132
  86. package/src/result-state/result-state.css +74 -77
  87. package/src/saved-views/saved-views.css +41 -47
  88. package/src/scroll-area/scroll-area.css +32 -35
  89. package/src/section/section.css +16 -16
  90. package/src/segmented-control/segmented-control.css +77 -79
  91. package/src/select/select.css +113 -115
  92. package/src/side-navigation/side-navigation.css +170 -180
  93. package/src/skeleton/skeleton.css +47 -48
  94. package/src/slider/slider.css +86 -88
  95. package/src/sparkline/sparkline.css +32 -32
  96. package/src/spinner/spinner.css +4 -4
  97. package/src/split-button/split-button.css +26 -31
  98. package/src/splitter/splitter.css +35 -35
  99. package/src/stack/stack.css +24 -24
  100. package/src/stat-card/stat-card.css +102 -103
  101. package/src/status-indicator/status-indicator.css +28 -28
  102. package/src/stepper/stepper.css +58 -62
  103. package/src/switch/switch.css +86 -92
  104. package/src/table/table.css +189 -198
  105. package/src/table-of-contents/table-of-contents.css +51 -54
  106. package/src/tabs/tabs.css +143 -162
  107. package/src/tag/tag.css +67 -71
  108. package/src/tags-input/tags-input.css +124 -74
  109. package/src/tags-input/tags-input.tokens.json +6 -1
  110. package/src/text-field/text-field.css +108 -126
  111. package/src/textarea/textarea.css +26 -26
  112. package/src/time-field/time-field.css +67 -67
  113. package/src/time-picker/time-picker.css +56 -58
  114. package/src/time-range-picker/time-range-picker.css +126 -133
  115. package/src/timeline/timeline.css +244 -266
  116. package/src/toast/toast.css +81 -90
  117. package/src/toggle/toggle.css +29 -33
  118. package/src/toggle-group/toggle-group.css +67 -71
  119. package/src/toolbar/toolbar.css +30 -35
  120. package/src/tooltip/tooltip.css +26 -26
  121. package/src/top-navigation/top-navigation.css +243 -259
  122. package/src/tour/tour.css +51 -60
  123. package/src/transfer/transfer.css +160 -164
  124. package/src/tree/tree.css +103 -111
  125. package/src/typography/typography.css +36 -36
  126. package/src/upload/upload.css +224 -224
  127. package/src/visually-hidden/visually-hidden.css +1 -1
  128. package/src/wizard/wizard.css +185 -197
@@ -29,7 +29,7 @@
29
29
  * shell's toggle and its account control. Outside the shell the fallbacks
30
30
  * are the same numbers the shell composes its own from.
31
31
  */
32
- [data-ui='side-navigation'] {
32
+ [data-ui-side-navigation] {
33
33
  --_row-height: var(--slotted-app-shell-row-height, var(--slotted-control-height-md, 34px));
34
34
  /** The mark's box is the row's height: a square the mark is centred in. */
35
35
  --_mark: var(--slotted-app-shell-row-mark, var(--_row-height));
@@ -149,7 +149,7 @@
149
149
  min-inline-size: 0;
150
150
  }
151
151
 
152
- [data-ui='side-navigation'][data-size='sm'] {
152
+ [data-ui-side-navigation][data-size='sm'] {
153
153
  --_row-height: var(--slotted-control-height-sm, 30px);
154
154
  --_mark: var(--_row-height);
155
155
  --_gap: var(--slotted-control-gap-sm, 6px);
@@ -158,7 +158,7 @@
158
158
  --_icon-size: var(--slotted-control-icon-size-sm, 14px);
159
159
  }
160
160
 
161
- [data-ui='side-navigation'][data-size='lg'] {
161
+ [data-ui-side-navigation][data-size='lg'] {
162
162
  --_row-height: var(--slotted-control-height-lg, 38px);
163
163
  --_mark: var(--_row-height);
164
164
  --_gap: var(--slotted-control-gap-lg, 8px);
@@ -170,7 +170,7 @@
170
170
 
171
171
  /* ── The root ─────────────────────────────────────────────────────────── */
172
172
 
173
- [data-ui='side-navigation'][data-part='root'] {
173
+ [data-ui-side-navigation][data-part-root] {
174
174
  container-name: slotted-side-navigation;
175
175
  container-type: inline-size;
176
176
  display: flex;
@@ -184,7 +184,7 @@
184
184
  inline-size: 100%;
185
185
  }
186
186
 
187
- [data-ui='side-navigation'] [data-part='section'] {
187
+ [data-ui-side-navigation] [data-part-section] {
188
188
  display: flex;
189
189
  flex-direction: column;
190
190
  min-inline-size: 0;
@@ -196,7 +196,7 @@
196
196
  * column: a navigation whose rows carry no marks keeps its titles near its
197
197
  * words, and one whose rows do keeps them on the glyphs' own edge.
198
198
  */
199
- [data-ui='side-navigation'] [data-part='section-label'] {
199
+ [data-ui-side-navigation] [data-part-section-label] {
200
200
  color: var(--_section-color);
201
201
  font-size: var(--_section-font-size);
202
202
  font-weight: var(--slotted-font-weight-semibold, 600);
@@ -213,8 +213,8 @@
213
213
  padding-inline: calc(var(--_inset) + (var(--_mark) - var(--_icon-size)) / 2);
214
214
  }
215
215
 
216
- [data-ui='side-navigation'] [data-part='list'],
217
- [data-ui='side-navigation'] [data-part='group'] {
216
+ [data-ui-side-navigation] [data-part-list],
217
+ [data-ui-side-navigation] [data-part-group] {
218
218
  display: flex;
219
219
  flex-direction: column;
220
220
  gap: var(--_row-gap);
@@ -231,7 +231,7 @@
231
231
  * and a second row for the group. A trigger that is the whole row spans the
232
232
  * three columns; the group always does.
233
233
  */
234
- [data-ui='side-navigation'] [data-part='item'] {
234
+ [data-ui-side-navigation] [data-part-item] {
235
235
  /**
236
236
  * `start`, not the default stretch. While the second track is between
237
237
  * `0fr` and `1fr` the grid holds free space, and a stretched `auto` first
@@ -271,11 +271,11 @@
271
271
  transition: grid-template-rows var(--slotted-duration-medium) var(--_easing);
272
272
  }
273
273
 
274
- [data-ui='side-navigation'] [data-part='item'][data-expanded] {
274
+ [data-ui-side-navigation] [data-part-item][data-expanded] {
275
275
  grid-template-rows: auto 1fr;
276
276
  }
277
277
 
278
- [data-ui='side-navigation'] [data-part='item'] > [data-part='group'] {
278
+ [data-ui-side-navigation] [data-part-item] > [data-part-group] {
279
279
  grid-column: 1 / -1;
280
280
  grid-row: 2;
281
281
  min-block-size: 0;
@@ -297,7 +297,7 @@
297
297
  visibility: hidden;
298
298
  }
299
299
 
300
- [data-ui='side-navigation'] [data-part='item'][data-expanded] > [data-part='group'] {
300
+ [data-ui-side-navigation] [data-part-item][data-expanded] > [data-part-group] {
301
301
  opacity: 1;
302
302
  padding-block-start: var(--_row-gap);
303
303
  transition:
@@ -313,19 +313,19 @@
313
313
  * guide runs down the mark's centre: shadcn and Primer both draw it, and it
314
314
  * is what tells a third level from a second.
315
315
  */
316
- [data-ui='side-navigation'] [data-part='item'] > [data-part='group'] {
316
+ [data-ui-side-navigation] [data-part-item] > [data-part-group] {
317
317
  padding-inline-start: var(--_indent-step);
318
318
  position: relative;
319
319
  }
320
320
 
321
321
  /* Under a row with a mark, the children stand under the parent's words. */
322
- [data-ui='side-navigation']
323
- [data-part='item']:has(> :is([data-part='link'], [data-part='trigger']) > [data-part='icon'])
324
- > [data-part='group'] {
322
+ [data-ui-side-navigation]
323
+ [data-part-item]:has(> :is([data-part-link], [data-part-trigger]) > [data-part-icon])
324
+ > [data-part-group] {
325
325
  padding-inline-start: var(--_indent);
326
326
  }
327
327
 
328
- [data-ui='side-navigation'][data-guides] [data-part='item'] > [data-part='group']::before {
328
+ [data-ui-side-navigation][data-guides] [data-part-item] > [data-part-group]::before {
329
329
  background-color: var(--_guide-color);
330
330
  content: '';
331
331
  inline-size: var(--_guide-width);
@@ -336,15 +336,15 @@
336
336
  }
337
337
 
338
338
  /* … and down the centre of the mark for one that has it. */
339
- [data-ui='side-navigation'][data-guides]
340
- [data-part='item']:has(> :is([data-part='link'], [data-part='trigger']) > [data-part='icon'])
341
- > [data-part='group']::before {
339
+ [data-ui-side-navigation][data-guides]
340
+ [data-part-item]:has(> :is([data-part-link], [data-part-trigger]) > [data-part-icon])
341
+ > [data-part-group]::before {
342
342
  inset-inline-start: calc(var(--_inset) + var(--_mark) / 2 - var(--_guide-width) / 2);
343
343
  }
344
344
 
345
345
  /* ── The row: a link, or a trigger ────────────────────────────────────── */
346
346
 
347
- [data-ui='side-navigation'] :is([data-part='link'], [data-part='trigger']) {
347
+ [data-ui-side-navigation] :is([data-part-link], [data-part-trigger]) {
348
348
  align-content: center;
349
349
  align-items: center;
350
350
  appearance: none;
@@ -374,13 +374,13 @@
374
374
  color var(--_duration) var(--_easing);
375
375
  }
376
376
 
377
- [data-ui='side-navigation']
378
- [data-part='item']:not([data-disabled])
379
- > :is([data-part='link'], [data-part='trigger']):active {
377
+ [data-ui-side-navigation]
378
+ [data-part-item]:not([data-disabled])
379
+ > :is([data-part-link], [data-part-trigger]):active {
380
380
  transition-duration: var(--slotted-duration-instant);
381
381
  }
382
382
 
383
- [data-ui='side-navigation'] [data-part='item'] > [data-part='trigger'] {
383
+ [data-ui-side-navigation] [data-part-item] > [data-part-trigger] {
384
384
  grid-column: 1 / -1;
385
385
  }
386
386
 
@@ -389,7 +389,7 @@
389
389
  * the APG hybrid example's second control — the height of the row and the
390
390
  * width of a mark, so the pair reads as one row with a chevron on it.
391
391
  */
392
- [data-ui='side-navigation'] [data-part='item']:has(> [data-part='link']) > [data-part='trigger'] {
392
+ [data-ui-side-navigation] [data-part-item]:has(> [data-part-link]) > [data-part-trigger] {
393
393
  grid-column: 2;
394
394
  grid-template-columns: auto;
395
395
  inline-size: var(--_mark);
@@ -397,7 +397,7 @@
397
397
  place-items: center;
398
398
  }
399
399
 
400
- [data-ui='side-navigation'] [data-part='actions'] {
400
+ [data-ui-side-navigation] [data-part-actions] {
401
401
  align-items: center;
402
402
  align-self: center;
403
403
  column-gap: var(--slotted-space-2, 0.25rem);
@@ -409,7 +409,7 @@
409
409
  padding-inline-end: var(--slotted-space-2, 0.25rem);
410
410
  }
411
411
 
412
- [data-ui='side-navigation'] :is([data-part='link'], [data-part='trigger']):focus-visible {
412
+ [data-ui-side-navigation] :is([data-part-link], [data-part-trigger]):focus-visible {
413
413
  outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
414
414
  outline-offset: calc(-1 * var(--slotted-focus-ring-offset, 2px));
415
415
  }
@@ -422,7 +422,7 @@
422
422
  * `ng-icon` — which sizes itself at `1em` — through the font-size. Nothing
423
423
  * placed here is drawn at the row's type size.
424
424
  */
425
- [data-ui='side-navigation'] [data-part='icon'] {
425
+ [data-ui-side-navigation] [data-part-icon] {
426
426
  --slotted-icon-size: var(--_icon-size);
427
427
 
428
428
  block-size: var(--_mark);
@@ -443,7 +443,7 @@
443
443
  position: relative;
444
444
  }
445
445
 
446
- [data-ui='side-navigation'] [data-part='icon'] > svg {
446
+ [data-ui-side-navigation] [data-part-icon] > svg {
447
447
  block-size: var(--_icon-size);
448
448
  inline-size: var(--_icon-size);
449
449
  }
@@ -469,7 +469,7 @@
469
469
  * row around it. The text is in the DOM in every mode, which is what
470
470
  * `docs/build-briefing.md` requires.
471
471
  */
472
- [data-ui='side-navigation'] [data-part='label'] {
472
+ [data-ui-side-navigation] [data-part-label] {
473
473
  grid-column: 2;
474
474
  grid-row: 1;
475
475
  min-inline-size: 0;
@@ -477,7 +477,7 @@
477
477
  unicode-bidi: isolate;
478
478
  }
479
479
 
480
- [data-ui='side-navigation']:not([data-truncate='none']) [data-part='label'] {
480
+ [data-ui-side-navigation]:not([data-truncate='none']) [data-part-label] {
481
481
  overflow: hidden;
482
482
  overflow-wrap: normal;
483
483
  text-overflow: ellipsis;
@@ -485,11 +485,11 @@
485
485
  }
486
486
 
487
487
  /* The binding has already placed the ellipsis; a second one at the edge would be a lie. */
488
- [data-ui='side-navigation'][data-truncate='middle'] [data-part='label'] {
488
+ [data-ui-side-navigation][data-truncate='middle'] [data-part-label] {
489
489
  text-overflow: clip;
490
490
  }
491
491
 
492
- [data-ui='side-navigation'] [data-part='description'] {
492
+ [data-ui-side-navigation] [data-part-description] {
493
493
  color: var(--_description-color);
494
494
  font-size: var(--_description-font-size);
495
495
  font-weight: var(--slotted-font-weight-regular, 400);
@@ -502,7 +502,7 @@
502
502
  unicode-bidi: isolate;
503
503
  }
504
504
 
505
- [data-ui='side-navigation']:not([data-truncate='none']) [data-part='description'] {
505
+ [data-ui-side-navigation]:not([data-truncate='none']) [data-part-description] {
506
506
  overflow: hidden;
507
507
  overflow-wrap: normal;
508
508
  text-overflow: ellipsis;
@@ -519,31 +519,31 @@
519
519
  * nothing between — the first version put the title on the mark's own
520
520
  * thirty-four pixels and the description under that, which read as a gap.
521
521
  */
522
- [data-ui='side-navigation']
523
- :is([data-part='link'], [data-part='trigger']):has(> [data-part='description']) {
522
+ [data-ui-side-navigation]
523
+ :is([data-part-link], [data-part-trigger]):has(> [data-part-description]) {
524
524
  padding-block: var(--slotted-space-2, 0.25rem);
525
525
  }
526
526
 
527
- [data-ui='side-navigation']
528
- :is([data-part='link'], [data-part='trigger']):has(> [data-part='description'])
529
- > :is([data-part='icon'], [data-part='end'], [data-part='count'], [data-part='indicator']) {
527
+ [data-ui-side-navigation]
528
+ :is([data-part-link], [data-part-trigger]):has(> [data-part-description])
529
+ > :is([data-part-icon], [data-part-end], [data-part-count], [data-part-indicator]) {
530
530
  grid-row: 1 / -1;
531
531
  }
532
532
 
533
- [data-ui='side-navigation']
534
- :is([data-part='link'], [data-part='trigger']):has(> [data-part='description'])
535
- > [data-part='label'] {
533
+ [data-ui-side-navigation]
534
+ :is([data-part-link], [data-part-trigger]):has(> [data-part-description])
535
+ > [data-part-label] {
536
536
  align-self: end;
537
537
  line-height: var(--slotted-line-height-xs, 1.4);
538
538
  }
539
539
 
540
- [data-ui='side-navigation']
541
- :is([data-part='link'], [data-part='trigger']):has(> [data-part='description'])
542
- > [data-part='description'] {
540
+ [data-ui-side-navigation]
541
+ :is([data-part-link], [data-part-trigger]):has(> [data-part-description])
542
+ > [data-part-description] {
543
543
  align-self: start;
544
544
  }
545
545
 
546
- [data-ui='side-navigation'] [data-part='end'] {
546
+ [data-ui-side-navigation] [data-part-end] {
547
547
  align-items: center;
548
548
  display: flex;
549
549
  grid-column: 3;
@@ -560,7 +560,7 @@
560
560
  * `badge`, composed into `end`, and the two are told apart on purpose:
561
561
  * every row with a number would otherwise be a row with a pill.
562
562
  */
563
- [data-ui='side-navigation'] [data-part='count'] {
563
+ [data-ui-side-navigation] [data-part-count] {
564
564
  color: var(--_description-color);
565
565
  font-size: var(--_description-font-size);
566
566
  font-variant-numeric: tabular-nums;
@@ -573,19 +573,19 @@
573
573
  text-align: end;
574
574
  }
575
575
 
576
- [data-ui='side-navigation'] [data-part='link'][data-current] > [data-part='description'] {
576
+ [data-ui-side-navigation] [data-part-link][data-current] > [data-part-description] {
577
577
  color: var(--_current-description-color);
578
578
  }
579
579
 
580
- [data-ui='side-navigation'] [data-part='link'][data-current] > [data-part='count'],
581
- [data-ui='side-navigation']
582
- [data-part='item'][data-current]
583
- > [data-part='trigger']
584
- > [data-part='count'] {
580
+ [data-ui-side-navigation] [data-part-link][data-current] > [data-part-count],
581
+ [data-ui-side-navigation]
582
+ [data-part-item][data-current]
583
+ > [data-part-trigger]
584
+ > [data-part-count] {
585
585
  color: inherit;
586
586
  }
587
587
 
588
- [data-ui='side-navigation'] [data-part='indicator'] {
588
+ [data-ui-side-navigation] [data-part-indicator] {
589
589
  --slotted-icon-size: var(--_icon-size);
590
590
 
591
591
  display: flex;
@@ -602,33 +602,33 @@
602
602
  * direction is the other way; the open mark points down in both, turning the
603
603
  * other way where it is mirrored.
604
604
  */
605
- [data-ui='side-navigation'] [data-part='indicator'] > [data-ui='icon'] {
605
+ [data-ui-side-navigation] [data-part-indicator] > [data-ui-icon] {
606
606
  /* The same duration as the track it announces, so the turn and the opening end together. */
607
607
  transition: rotate var(--slotted-duration-medium) var(--_easing);
608
608
  }
609
609
 
610
- [data-ui='side-navigation']
611
- [data-part='item']:has(> [data-part='link'])
612
- > [data-part='trigger']
613
- > [data-part='indicator'] {
610
+ [data-ui-side-navigation]
611
+ [data-part-item]:has(> [data-part-link])
612
+ > [data-part-trigger]
613
+ > [data-part-indicator] {
614
614
  grid-column: 1;
615
615
  margin-inline-start: 0;
616
616
  }
617
617
 
618
- [data-ui='side-navigation']
619
- [data-part='item'][data-expanded]
620
- > [data-part='trigger']
621
- > [data-part='indicator']
622
- > [data-ui='icon'] {
618
+ [data-ui-side-navigation]
619
+ [data-part-item][data-expanded]
620
+ > [data-part-trigger]
621
+ > [data-part-indicator]
622
+ > [data-ui-icon] {
623
623
  rotate: 90deg;
624
624
  }
625
625
 
626
626
  /* The mirror is applied before the turn, so the mirrored mark turns the other way to land on down. */
627
- [data-ui='side-navigation']
628
- [data-part='item'][data-expanded]
629
- > [data-part='trigger']
630
- > [data-part='indicator']
631
- > [data-ui='icon']:dir(rtl) {
627
+ [data-ui-side-navigation]
628
+ [data-part-item][data-expanded]
629
+ > [data-part-trigger]
630
+ > [data-part-indicator]
631
+ > [data-ui-icon]:dir(rtl) {
632
632
  rotate: -90deg;
633
633
  }
634
634
 
@@ -650,18 +650,18 @@
650
650
  * `button`: a proportion of the type, which is what the trim removes.
651
651
  */
652
652
  @supports (text-box: trim-both cap alphabetic) {
653
- [data-ui='side-navigation'] [data-part='label'] {
653
+ [data-ui-side-navigation] [data-part-label] {
654
654
  padding-block: calc((var(--_line-height) * 1em - 0.75em) / 2);
655
655
  text-box: trim-both cap alphabetic;
656
656
  }
657
657
 
658
- [data-ui='side-navigation'] [data-part='description'],
659
- [data-ui='side-navigation'] [data-part='section-label'] {
658
+ [data-ui-side-navigation] [data-part-description],
659
+ [data-ui-side-navigation] [data-part-section-label] {
660
660
  padding-block: calc((var(--slotted-line-height-xs, 1.4) * 1em - 0.75em) / 2);
661
661
  text-box: trim-both cap alphabetic;
662
662
  }
663
663
 
664
- [data-ui='side-navigation'] [data-part='count'] {
664
+ [data-ui-side-navigation] [data-part-count] {
665
665
  line-height: var(--slotted-line-height-xs, 1.4);
666
666
  padding-block: calc((var(--slotted-line-height-xs, 1.4) * 1em - 0.75em) / 2);
667
667
  text-box: trim-both cap alphabetic;
@@ -670,26 +670,24 @@
670
670
 
671
671
  /* ── States ───────────────────────────────────────────────────────────── */
672
672
 
673
- [data-ui='side-navigation']
674
- [data-part='item']:not([data-disabled])
675
- > [data-part='link']:not([data-current]):hover,
676
- [data-ui='side-navigation']
677
- [data-part='item']:not([data-disabled]):not([data-current])
678
- > [data-part='trigger']:enabled:hover {
673
+ [data-ui-side-navigation]
674
+ [data-part-item]:not([data-disabled])
675
+ > [data-part-link]:not([data-current]):hover,
676
+ [data-ui-side-navigation]
677
+ [data-part-item]:not([data-disabled]):not([data-current])
678
+ > [data-part-trigger]:enabled:hover {
679
679
  background-color: var(--_hover-background);
680
680
  color: var(--_hover-color);
681
681
  }
682
682
 
683
683
  /* A trigger whose group is in the flyout holds the pressed ground while the layer is open. */
684
- [data-ui='side-navigation']
685
- [data-part='item'][data-open]:not([data-current])
686
- > [data-part='trigger'],
687
- [data-ui='side-navigation']
688
- [data-part='item']:not([data-disabled])
689
- > [data-part='link']:not([data-current]):active,
690
- [data-ui='side-navigation']
691
- [data-part='item']:not([data-disabled]):not([data-current])
692
- > [data-part='trigger']:enabled:active {
684
+ [data-ui-side-navigation] [data-part-item][data-open]:not([data-current]) > [data-part-trigger],
685
+ [data-ui-side-navigation]
686
+ [data-part-item]:not([data-disabled])
687
+ > [data-part-link]:not([data-current]):active,
688
+ [data-ui-side-navigation]
689
+ [data-part-item]:not([data-disabled]):not([data-current])
690
+ > [data-part-trigger]:enabled:active {
693
691
  background-color: var(--_active-background);
694
692
  }
695
693
 
@@ -699,39 +697,39 @@
699
697
  * Carbon and PatternFly draw a bar on the row's start edge instead, and
700
698
  * `state-rail.test.mjs` refuses one (R1): the state is said by the ground.
701
699
  */
702
- [data-ui='side-navigation'] [data-part='link'][data-current],
703
- [data-ui='side-navigation'] [data-part='item'][data-current] > [data-part='trigger'] {
700
+ [data-ui-side-navigation] [data-part-link][data-current],
701
+ [data-ui-side-navigation] [data-part-item][data-current] > [data-part-trigger] {
704
702
  background-color: var(--_current-background);
705
703
  box-shadow: inset 0 0 0 var(--_guide-width) var(--_current-edge);
706
704
  color: var(--_current-color);
707
705
  font-weight: var(--slotted-font-weight-medium, 500);
708
706
  }
709
707
 
710
- [data-ui='side-navigation']
711
- [data-part='item'][data-disabled]
712
- > :is([data-part='link'], [data-part='trigger']),
713
- [data-ui='side-navigation'] [data-part='trigger']:disabled {
708
+ [data-ui-side-navigation]
709
+ [data-part-item][data-disabled]
710
+ > :is([data-part-link], [data-part-trigger]),
711
+ [data-ui-side-navigation] [data-part-trigger]:disabled {
714
712
  color: var(--_disabled-color);
715
713
  cursor: not-allowed;
716
714
  }
717
715
 
718
- [data-ui='side-navigation']
719
- [data-part='item'][data-disabled]
720
- > [data-part='link']
721
- > [data-part='description'] {
716
+ [data-ui-side-navigation]
717
+ [data-part-item][data-disabled]
718
+ > [data-part-link]
719
+ > [data-part-description] {
722
720
  color: var(--_disabled-color);
723
721
  }
724
722
 
725
723
  /* ── The divider and the skeleton row ─────────────────────────────────── */
726
724
 
727
- [data-ui='side-navigation'] [data-part='divider'] {
725
+ [data-ui-side-navigation] [data-part-divider] {
728
726
  border: 0;
729
727
  border-block-start: var(--_guide-width) solid var(--_guide-color);
730
728
  margin-block: var(--slotted-space-2, 0.25rem);
731
729
  margin-inline: var(--_inset);
732
730
  }
733
731
 
734
- [data-ui='side-navigation'] [data-part='skeleton'] {
732
+ [data-ui-side-navigation] [data-part-skeleton] {
735
733
  align-items: center;
736
734
  display: grid;
737
735
  gap: var(--_gap);
@@ -740,17 +738,17 @@
740
738
  padding-inline: var(--_inset);
741
739
  }
742
740
 
743
- [data-ui='side-navigation'] [data-part='skeleton'] > [data-part='icon'] {
741
+ [data-ui-side-navigation] [data-part-skeleton] > [data-part-icon] {
744
742
  margin-inline: 0;
745
743
  }
746
744
 
747
745
  /* The boxes are `skeleton`'s; this family only says how big a mark is. */
748
- [data-ui='side-navigation'] [data-part='skeleton'] > [data-part='icon'] > [data-ui='skeleton'] {
746
+ [data-ui-side-navigation] [data-part-skeleton] > [data-part-icon] > [data-ui-skeleton] {
749
747
  --slotted-skeleton-block-size: var(--_icon-size);
750
748
  --slotted-skeleton-inline-size: var(--_icon-size);
751
749
  }
752
750
 
753
- [data-ui='side-navigation'] [data-part='skeleton'] > [data-part='label'] {
751
+ [data-ui-side-navigation] [data-part-skeleton] > [data-part-label] {
754
752
  display: block;
755
753
  min-inline-size: 0;
756
754
  overflow: visible;
@@ -767,10 +765,10 @@
767
765
  * cannot select it and there is no third selector that says "either".
768
766
  */
769
767
  @container slotted-side-navigation (inline-size < 96px) {
770
- [data-ui='side-navigation'][data-mode='auto'] [data-part='label'],
771
- [data-ui='side-navigation'][data-mode='auto'] [data-part='description'],
772
- [data-ui='side-navigation'][data-mode='auto'] [data-part='end'],
773
- [data-ui='side-navigation'][data-mode='auto'] [data-part='count'] {
768
+ [data-ui-side-navigation][data-mode='auto'] [data-part-label],
769
+ [data-ui-side-navigation][data-mode='auto'] [data-part-description],
770
+ [data-ui-side-navigation][data-mode='auto'] [data-part-end],
771
+ [data-ui-side-navigation][data-mode='auto'] [data-part-count] {
774
772
  block-size: 1px;
775
773
  clip-path: inset(50%);
776
774
  inline-size: 1px;
@@ -780,15 +778,15 @@
780
778
  white-space: nowrap;
781
779
  }
782
780
 
783
- [data-ui='side-navigation'][data-mode='auto'] [data-part='indicator'],
784
- [data-ui='side-navigation'][data-mode='auto'] [data-part='actions'],
785
- [data-ui='side-navigation'][data-mode='auto']
786
- [data-part='item']:has(> [data-part='link'])
787
- > [data-part='trigger'] {
781
+ [data-ui-side-navigation][data-mode='auto'] [data-part-indicator],
782
+ [data-ui-side-navigation][data-mode='auto'] [data-part-actions],
783
+ [data-ui-side-navigation][data-mode='auto']
784
+ [data-part-item]:has(> [data-part-link])
785
+ > [data-part-trigger] {
788
786
  display: none;
789
787
  }
790
788
 
791
- [data-ui='side-navigation'][data-mode='auto'] :is([data-part='link'], [data-part='trigger']) {
789
+ [data-ui-side-navigation][data-mode='auto'] :is([data-part-link], [data-part-trigger]) {
792
790
  grid-template-columns: auto;
793
791
  inline-size: var(--_mark);
794
792
  justify-content: center;
@@ -796,19 +794,19 @@
796
794
  padding: 0;
797
795
  }
798
796
 
799
- [data-ui='side-navigation'][data-mode='auto'] [data-part='icon'] {
797
+ [data-ui-side-navigation][data-mode='auto'] [data-part-icon] {
800
798
  margin: 0;
801
799
  }
802
800
 
803
- [data-ui='side-navigation'][data-mode='auto'] [data-part='item'] {
801
+ [data-ui-side-navigation][data-mode='auto'] [data-part-item] {
804
802
  grid-template-rows: auto 0fr;
805
803
  }
806
804
 
807
- [data-ui='side-navigation'][data-mode='auto'] [data-part='item'] > [data-part='group'] {
805
+ [data-ui-side-navigation][data-mode='auto'] [data-part-item] > [data-part-group] {
808
806
  visibility: hidden;
809
807
  }
810
808
 
811
- [data-ui='side-navigation'][data-mode='auto'] [data-part='section-label'] {
809
+ [data-ui-side-navigation][data-mode='auto'] [data-part-section-label] {
812
810
  block-size: 0;
813
811
  border-block-start: var(--_guide-width) solid var(--_guide-color);
814
812
  color: transparent;
@@ -818,23 +816,19 @@
818
816
  padding: 0;
819
817
  }
820
818
 
821
- [data-ui='side-navigation'][data-mode='auto'] [data-part='skeleton'] {
819
+ [data-ui-side-navigation][data-mode='auto'] [data-part-skeleton] {
822
820
  grid-template-columns: var(--_mark);
823
821
  justify-content: center;
824
822
  padding-inline: 0;
825
823
  }
826
824
 
827
- [data-ui='side-navigation'][data-mode='auto']
828
- [data-part='skeleton']
829
- > :not([data-part='icon']) {
825
+ [data-ui-side-navigation][data-mode='auto'] [data-part-skeleton] > :not([data-part-icon]) {
830
826
  display: none;
831
827
  }
832
828
 
833
- [data-ui='side-navigation'][data-mode='auto']
834
- :is([data-part='link'], [data-part='trigger']):has(
835
- > :is([data-part='end'], [data-part='count'])
836
- )
837
- > [data-part='icon']::after {
829
+ [data-ui-side-navigation][data-mode='auto']
830
+ :is([data-part-link], [data-part-trigger]):has(> :is([data-part-end], [data-part-count]))
831
+ > [data-part-icon]::after {
838
832
  background-color: var(--_dot-color);
839
833
  block-size: var(--_dot-size);
840
834
  border-radius: var(--slotted-radius-full, 9999px);
@@ -846,10 +840,10 @@
846
840
  }
847
841
  }
848
842
 
849
- [data-ui='side-navigation'][data-mode='compact'] [data-part='label'],
850
- [data-ui='side-navigation'][data-mode='compact'] [data-part='description'],
851
- [data-ui='side-navigation'][data-mode='compact'] [data-part='end'],
852
- [data-ui='side-navigation'][data-mode='compact'] [data-part='count'] {
843
+ [data-ui-side-navigation][data-mode='compact'] [data-part-label],
844
+ [data-ui-side-navigation][data-mode='compact'] [data-part-description],
845
+ [data-ui-side-navigation][data-mode='compact'] [data-part-end],
846
+ [data-ui-side-navigation][data-mode='compact'] [data-part-count] {
853
847
  block-size: 1px;
854
848
  clip-path: inset(50%);
855
849
  inline-size: 1px;
@@ -859,15 +853,15 @@
859
853
  white-space: nowrap;
860
854
  }
861
855
 
862
- [data-ui='side-navigation'][data-mode='compact'] [data-part='indicator'],
863
- [data-ui='side-navigation'][data-mode='compact'] [data-part='actions'],
864
- [data-ui='side-navigation'][data-mode='compact']
865
- [data-part='item']:has(> [data-part='link'])
866
- > [data-part='trigger'] {
856
+ [data-ui-side-navigation][data-mode='compact'] [data-part-indicator],
857
+ [data-ui-side-navigation][data-mode='compact'] [data-part-actions],
858
+ [data-ui-side-navigation][data-mode='compact']
859
+ [data-part-item]:has(> [data-part-link])
860
+ > [data-part-trigger] {
867
861
  display: none;
868
862
  }
869
863
 
870
- [data-ui='side-navigation'][data-mode='compact'] :is([data-part='link'], [data-part='trigger']) {
864
+ [data-ui-side-navigation][data-mode='compact'] :is([data-part-link], [data-part-trigger]) {
871
865
  grid-template-columns: auto;
872
866
  inline-size: var(--_mark);
873
867
  justify-content: center;
@@ -875,19 +869,19 @@
875
869
  padding: 0;
876
870
  }
877
871
 
878
- [data-ui='side-navigation'][data-mode='compact'] [data-part='icon'] {
872
+ [data-ui-side-navigation][data-mode='compact'] [data-part-icon] {
879
873
  margin: 0;
880
874
  }
881
875
 
882
- [data-ui='side-navigation'][data-mode='compact'] [data-part='item'] {
876
+ [data-ui-side-navigation][data-mode='compact'] [data-part-item] {
883
877
  grid-template-rows: auto 0fr;
884
878
  }
885
879
 
886
- [data-ui='side-navigation'][data-mode='compact'] [data-part='item'] > [data-part='group'] {
880
+ [data-ui-side-navigation][data-mode='compact'] [data-part-item] > [data-part-group] {
887
881
  visibility: hidden;
888
882
  }
889
883
 
890
- [data-ui='side-navigation'][data-mode='compact'] [data-part='section-label'] {
884
+ [data-ui-side-navigation][data-mode='compact'] [data-part-section-label] {
891
885
  block-size: 0;
892
886
  border-block-start: var(--_guide-width) solid var(--_guide-color);
893
887
  color: transparent;
@@ -897,23 +891,19 @@
897
891
  padding: 0;
898
892
  }
899
893
 
900
- [data-ui='side-navigation'][data-mode='compact'] [data-part='skeleton'] {
894
+ [data-ui-side-navigation][data-mode='compact'] [data-part-skeleton] {
901
895
  grid-template-columns: var(--_mark);
902
896
  justify-content: center;
903
897
  padding-inline: 0;
904
898
  }
905
899
 
906
- [data-ui='side-navigation'][data-mode='compact']
907
- [data-part='skeleton']
908
- > :not([data-part='icon']) {
900
+ [data-ui-side-navigation][data-mode='compact'] [data-part-skeleton] > :not([data-part-icon]) {
909
901
  display: none;
910
902
  }
911
903
 
912
- [data-ui='side-navigation'][data-mode='compact']
913
- :is([data-part='link'], [data-part='trigger']):has(
914
- > :is([data-part='end'], [data-part='count'])
915
- )
916
- > [data-part='icon']::after {
904
+ [data-ui-side-navigation][data-mode='compact']
905
+ :is([data-part-link], [data-part-trigger]):has(> :is([data-part-end], [data-part-count]))
906
+ > [data-part-icon]::after {
917
907
  background-color: var(--_dot-color);
918
908
  block-size: var(--_dot-size);
919
909
  border-radius: var(--slotted-radius-full, 9999px);
@@ -933,7 +923,7 @@
933
923
  * rather than on the root part. The group inside it is a plain list again:
934
924
  * no indent, no guide, the raised surface under it.
935
925
  */
936
- [data-ui='side-navigation'][data-part='flyout'] {
926
+ [data-ui-side-navigation][data-part-flyout] {
937
927
  --_surface: var(
938
928
  --slotted-side-navigation-flyout-surface,
939
929
  var(--slotted-surface-raised, Canvas)
@@ -968,40 +958,40 @@
968
958
  translate var(--slotted-duration-short) var(--slotted-easing-exit);
969
959
  }
970
960
 
971
- [data-ui='side-navigation'][data-part='flyout'][data-side='top'] {
961
+ [data-ui-side-navigation][data-part-flyout][data-side='top'] {
972
962
  translate: 0 var(--_enter-distance);
973
963
  }
974
964
 
975
965
  /* The layer arrives along the inline axis it opens on: from one step inside
976
966
  the rail's edge, the way a submenu does. */
977
- [data-ui='side-navigation'][data-part='flyout'][data-side='right'] {
967
+ [data-ui-side-navigation][data-part-flyout][data-side='right'] {
978
968
  translate: calc(-1 * var(--_enter-distance)) 0;
979
969
  }
980
970
 
981
- [data-ui='side-navigation'][data-part='flyout'][data-side='left'] {
971
+ [data-ui-side-navigation][data-part-flyout][data-side='left'] {
982
972
  translate: var(--_enter-distance) 0;
983
973
  }
984
974
 
985
- [data-ui='side-navigation'][data-part='flyout'][data-open] {
975
+ [data-ui-side-navigation][data-part-flyout][data-open] {
986
976
  opacity: 1;
987
977
  translate: 0 0;
988
978
  transition: none;
989
979
  }
990
980
 
991
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned] {
981
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned] {
992
982
  animation: slotted-side-navigation-enter-down var(--slotted-duration-medium)
993
983
  var(--slotted-easing-enter);
994
984
  }
995
985
 
996
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='top'] {
986
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='top'] {
997
987
  animation-name: slotted-side-navigation-enter-up;
998
988
  }
999
989
 
1000
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='right'] {
990
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='right'] {
1001
991
  animation-name: slotted-side-navigation-enter-from-start;
1002
992
  }
1003
993
 
1004
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='left'] {
994
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='left'] {
1005
995
  animation-name: slotted-side-navigation-enter-from-end;
1006
996
  }
1007
997
 
@@ -1041,28 +1031,28 @@
1041
1031
 
1042
1032
  /* Stillness keeps the fade and drops the movement (R7). */
1043
1033
  @media (prefers-reduced-motion: reduce) {
1044
- [data-ui='side-navigation'][data-part='flyout'],
1045
- [data-ui='side-navigation'][data-part='flyout'][data-side='top'],
1046
- [data-ui='side-navigation'][data-part='flyout'][data-side='left'],
1047
- [data-ui='side-navigation'][data-part='flyout'][data-side='right'] {
1034
+ [data-ui-side-navigation][data-part-flyout],
1035
+ [data-ui-side-navigation][data-part-flyout][data-side='top'],
1036
+ [data-ui-side-navigation][data-part-flyout][data-side='left'],
1037
+ [data-ui-side-navigation][data-part-flyout][data-side='right'] {
1048
1038
  translate: 0 0;
1049
1039
  transition: opacity var(--slotted-duration-short) var(--slotted-easing-exit);
1050
1040
  }
1051
1041
 
1052
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned],
1053
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='top'],
1054
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='left'],
1055
- [data-ui='side-navigation'][data-part='flyout'][data-open][data-positioned][data-side='right'] {
1042
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned],
1043
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='top'],
1044
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='left'],
1045
+ [data-ui-side-navigation][data-part-flyout][data-open][data-positioned][data-side='right'] {
1056
1046
  animation-name: slotted-side-navigation-fade;
1057
1047
  }
1058
1048
  }
1059
1049
 
1060
1050
  /* The anchor scrolled out of its own clipper: the layer waits, hidden. */
1061
- [data-ui='side-navigation'][data-part='flyout'][data-detached] {
1051
+ [data-ui-side-navigation][data-part-flyout][data-detached] {
1062
1052
  visibility: hidden;
1063
1053
  }
1064
1054
 
1065
- [data-ui='side-navigation'][data-part='flyout'] > [data-part='group'] {
1055
+ [data-ui-side-navigation][data-part-flyout] > [data-part-group] {
1066
1056
  background-color: var(--_surface);
1067
1057
  border: var(--_guide-width) solid var(--_border-color);
1068
1058
  border-radius: var(--_flyout-radius);
@@ -1072,31 +1062,31 @@
1072
1062
  pointer-events: auto;
1073
1063
  }
1074
1064
 
1075
- [data-ui='side-navigation'][data-part='flyout']
1076
- > [data-part='group']
1077
- > [data-part='item']
1078
- > [data-part='group'] {
1065
+ [data-ui-side-navigation][data-part-flyout]
1066
+ > [data-part-group]
1067
+ > [data-part-item]
1068
+ > [data-part-group] {
1079
1069
  padding-inline-start: var(--_indent);
1080
1070
  }
1081
1071
 
1082
1072
  /* ── Forced colours ───────────────────────────────────────────────────── */
1083
1073
 
1084
1074
  @media (forced-colors: active) {
1085
- [data-ui='side-navigation'] [data-part='link'][data-current],
1086
- [data-ui='side-navigation'] [data-part='item'][data-current] > [data-part='trigger'] {
1075
+ [data-ui-side-navigation] [data-part-link][data-current],
1076
+ [data-ui-side-navigation] [data-part-item][data-current] > [data-part-trigger] {
1087
1077
  background-color: Highlight;
1088
1078
  color: HighlightText;
1089
1079
  forced-color-adjust: none;
1090
1080
  }
1091
1081
 
1092
- [data-ui='side-navigation']
1093
- [data-part='item'][data-disabled]
1094
- > :is([data-part='link'], [data-part='trigger']),
1095
- [data-ui='side-navigation'] [data-part='trigger']:disabled {
1082
+ [data-ui-side-navigation]
1083
+ [data-part-item][data-disabled]
1084
+ > :is([data-part-link], [data-part-trigger]),
1085
+ [data-ui-side-navigation] [data-part-trigger]:disabled {
1096
1086
  color: GrayText;
1097
1087
  }
1098
1088
 
1099
- [data-ui='side-navigation'][data-part='flyout'] > [data-part='group'] {
1089
+ [data-ui-side-navigation][data-part-flyout] > [data-part-group] {
1100
1090
  border-color: CanvasText;
1101
1091
  }
1102
1092
  }