opui-css 4.0.1 → 5.0.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 (90) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/MIGRATING.md +23 -1
  3. package/README.md +2 -3
  4. package/components/AGENTS.md +20 -19
  5. package/components/Accordion/Accordion.astro +3 -3
  6. package/components/Anchor/Anchor.astro +2 -2
  7. package/components/Avatar/Avatar.astro +2 -8
  8. package/components/Badge/Badge.astro +12 -7
  9. package/components/Button/Button.astro +1 -1
  10. package/components/ButtonGroup/ButtonGroup.astro +1 -1
  11. package/components/Callout/Callout.astro +3 -3
  12. package/components/Card/Card.astro +5 -7
  13. package/components/Checkbox/Checkbox.astro +6 -6
  14. package/components/Chip/Chip.astro +5 -5
  15. package/components/ClassicSelect/ClassicSelect.astro +6 -6
  16. package/components/DescriptionList/Description.astro +1 -1
  17. package/components/DescriptionList/DescriptionList.astro +2 -2
  18. package/components/DescriptionList/Item.astro +1 -1
  19. package/components/DescriptionList/Term.astro +1 -1
  20. package/components/Dialog/Dialog.astro +5 -7
  21. package/components/Divider/Divider.astro +4 -1
  22. package/components/Drawer/Drawer.astro +5 -5
  23. package/components/Drawer/DrawerFooter.astro +1 -1
  24. package/components/Drawer/DrawerHeader.astro +1 -1
  25. package/components/FieldDescription/FieldDescription.astro +1 -1
  26. package/components/FieldGroup/FieldGroup.astro +1 -1
  27. package/components/FieldLegend/FieldLegend.astro +1 -1
  28. package/components/FieldSet/FieldSet.astro +1 -1
  29. package/components/Form/Form.astro +1 -1
  30. package/components/IconButton/IconButton.astro +1 -1
  31. package/components/List/List.astro +5 -5
  32. package/components/ListItem/ListItem.astro +12 -12
  33. package/components/Progress/Progress.astro +1 -1
  34. package/components/Radio/Radio.astro +5 -5
  35. package/components/Range/Range.astro +8 -8
  36. package/components/Select/Select.astro +13 -13
  37. package/components/Switch/Switch.astro +8 -8
  38. package/components/Table/Table.astro +4 -1
  39. package/components/Tabs/Tabs.astro +1 -1
  40. package/components/Tabs/TabsItem.astro +1 -1
  41. package/components/Tabs/TabsPanel.astro +1 -1
  42. package/components/Tabs/TabsTab.astro +1 -1
  43. package/components/TextField/TextField.astro +13 -13
  44. package/components/Textarea/Textarea.astro +13 -13
  45. package/components/Toast/Toast.astro +6 -6
  46. package/components/ToggleButton/ToggleButton.astro +3 -3
  47. package/components/ToggleGroup/ToggleGroup.astro +3 -3
  48. package/components/Tooltip/Tooltip.astro +1 -1
  49. package/core/utils.css +4 -4
  50. package/css/components/accordion.css +11 -11
  51. package/css/components/anchor.css +3 -3
  52. package/css/components/avatar.css +5 -5
  53. package/css/components/badge.css +14 -14
  54. package/css/components/button-group.css +16 -16
  55. package/css/components/button.css +12 -12
  56. package/css/components/callout.css +9 -9
  57. package/css/components/card.css +12 -12
  58. package/css/components/checkbox.css +13 -13
  59. package/css/components/chip.css +5 -5
  60. package/css/components/description-list.css +11 -8
  61. package/css/components/dialog.css +3 -3
  62. package/css/components/divider.css +4 -4
  63. package/css/components/drawer.css +21 -21
  64. package/css/components/form.css +18 -18
  65. package/css/components/icon-button.css +9 -9
  66. package/css/components/link.css +1 -1
  67. package/css/components/list.css +29 -29
  68. package/css/components/progress.css +4 -4
  69. package/css/components/radio.css +10 -10
  70. package/css/components/range.css +31 -31
  71. package/css/components/select.css +4 -4
  72. package/css/components/spinner.css +1 -1
  73. package/css/components/switch.css +23 -23
  74. package/css/components/table.css +3 -3
  75. package/css/components/tabs.css +14 -8
  76. package/css/components/text-field.css +47 -47
  77. package/css/components/text-input.css +7 -7
  78. package/css/components/textarea.css +3 -3
  79. package/css/components/toast.css +12 -12
  80. package/css/components/toggle-button.css +6 -6
  81. package/css/components/toggle-group.css +10 -10
  82. package/css/components/tooltip.css +6 -6
  83. package/css/components/typography.css +30 -30
  84. package/css/js/toast.js +7 -7
  85. package/css/theme.css +8 -8
  86. package/dist/opui.components.css +407 -398
  87. package/dist/opui.components.css.map +1 -1
  88. package/dist/opui.css +419 -410
  89. package/dist/opui.css.map +1 -1
  90. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  @layer components.root {
2
- :where(.anchor) {
2
+ :where(.ui-anchor) {
3
3
  anchor-name: --anchor;
4
4
  anchor-scope: --anchor;
5
5
  display: inline-block;
6
6
  inline-size: fit-content;
7
7
 
8
8
  /* Always-visible */
9
- &>.anchor-floating:not([popover]) {
9
+ &>.ui-anchor-floating:not([popover]) {
10
10
  block-size: max-content;
11
11
  inline-size: max-content;
12
12
  position: absolute;
@@ -16,7 +16,7 @@
16
16
  }
17
17
 
18
18
  /* Hover-triggered */
19
- &>.anchor-floating[popover] {
19
+ &>.ui-anchor-floating[popover] {
20
20
  inset: unset;
21
21
  margin: 0;
22
22
  position: absolute;
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.avatar) {
2
+ :where(.ui-avatar) {
3
3
  --_bg-color: var(--primary);
4
4
  --_color: var(--color-1);
5
5
  --_width: 40px;
@@ -33,15 +33,15 @@
33
33
  position: absolute;
34
34
  }
35
35
 
36
- &.squared {
36
+ &.ui-squared {
37
37
  border-radius: 0;
38
38
  }
39
39
 
40
- &.rounded {
40
+ &.ui-rounded {
41
41
  border-radius: var(--radius-2);
42
42
  }
43
43
 
44
- &.squircle {
44
+ &.ui-squircle {
45
45
  border-radius: var(--radius-3);
46
46
 
47
47
  @supports (corner-shape: squircle) {
@@ -57,7 +57,7 @@
57
57
 
58
58
  display: flex;
59
59
 
60
- .avatar {
60
+ .ui-avatar {
61
61
  box-shadow: 0 0 0 2px var(--_outline-color);
62
62
  margin-inline-end: calc(-1 * var(--_margin));
63
63
  }
@@ -1,5 +1,5 @@
1
1
  @layer components.extended {
2
- :where(.badge) {
2
+ :where(.ui-badge) {
3
3
  --_anchor-tx: -50%;
4
4
  --_anchor-ty: 50%;
5
5
  --_badge-inset: auto auto 100% 100%;
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* Floating wrapper: traditional inset-based positioning so this works
17
17
  in browsers without position-area support (Firefox, older Safari). */
18
- &>.anchor-floating:not([popover]) {
18
+ &>.ui-anchor-floating:not([popover]) {
19
19
  inset: var(--_badge-inset);
20
20
  position-anchor: auto;
21
21
  position-area: none;
22
22
  }
23
23
 
24
24
  /* Indicator */
25
- &>.anchor-floating>.badge-indicator {
25
+ &>.ui-anchor-floating>.ui-badge-indicator {
26
26
  background-color: var(--_bg-color);
27
27
  block-size: var(--_size);
28
28
  border: 2px solid var(--_border-color);
@@ -41,57 +41,57 @@
41
41
  }
42
42
 
43
43
  /* Colors */
44
- &.critical {
44
+ &.ui-critical {
45
45
  --_bg-color: var(--critical);
46
46
  --_border-color: var(--critical);
47
47
  }
48
48
 
49
- &.success {
49
+ &.ui-success {
50
50
  --_bg-color: var(--success);
51
51
  --_border-color: var(--success);
52
52
  }
53
53
 
54
- &.info {
54
+ &.ui-info {
55
55
  --_bg-color: var(--info);
56
56
  --_border-color: var(--info);
57
57
  }
58
58
 
59
- &.warning {
59
+ &.ui-warning {
60
60
  --_bg-color: var(--warning);
61
61
  --_border-color: var(--warning);
62
62
  }
63
63
 
64
- &.neutral {
64
+ &.ui-neutral {
65
65
  --_bg-color: var(--neutral);
66
66
  --_border-color: var(--neutral);
67
67
  }
68
68
 
69
69
  /* Alignment */
70
- &.start-start {
70
+ &.ui-start-start {
71
71
  --_anchor-tx: 50%;
72
72
  --_anchor-ty: 50%;
73
73
  --_badge-inset: auto 100% 100% auto;
74
74
  }
75
75
 
76
- &.end-start {
76
+ &.ui-end-start {
77
77
  --_anchor-tx: 50%;
78
78
  --_anchor-ty: -50%;
79
79
  --_badge-inset: 100% 100% auto auto;
80
80
  }
81
81
 
82
- &.end-end {
82
+ &.ui-end-end {
83
83
  --_anchor-tx: -50%;
84
84
  --_anchor-ty: -50%;
85
85
  --_badge-inset: 100% auto auto 100%;
86
86
  }
87
87
 
88
88
  /* Dot */
89
- &.dot {
89
+ &.ui-dot {
90
90
  --_anchor-tx: calc((var(--_dot-size) - 2px) * -1);
91
91
  --_anchor-ty: var(--_dot-size);
92
92
  }
93
93
 
94
- &.dot>.anchor-floating>.badge-indicator {
94
+ &.ui-dot>.ui-anchor-floating>.ui-badge-indicator {
95
95
  block-size: var(--_dot-size);
96
96
  inline-size: var(--_dot-size);
97
97
  min-inline-size: var(--_dot-size);
@@ -99,7 +99,7 @@
99
99
  }
100
100
 
101
101
  /* Visibility */
102
- &.invisible>.anchor-floating>.badge-indicator {
102
+ &.ui-invisible>.ui-anchor-floating>.ui-badge-indicator {
103
103
  opacity: 0;
104
104
  pointer-events: none;
105
105
  }
@@ -1,5 +1,5 @@
1
1
  @layer components.extended {
2
- :where([role="group"].button-group) {
2
+ :where([role="group"].ui-button-group) {
3
3
  --_border-radius: var(--button-border-radius);
4
4
 
5
5
  border-radius: var(--_border-radius);
@@ -14,11 +14,11 @@
14
14
  --_divider-color: light-dark(oklch(from var(--_accent-tonal) calc(l - 0.1) c h),
15
15
  oklch(from var(--_accent-tonal) calc(l + 0.1) c h));
16
16
 
17
- &.outlined {
17
+ &.ui-outlined {
18
18
  --_divider-color: var(--_border-color);
19
19
  }
20
20
 
21
- &.filled {
21
+ &.ui-filled {
22
22
  --_divider-color: currentColor;
23
23
  }
24
24
 
@@ -29,8 +29,8 @@
29
29
  /* Color inheritance from Button Group — shared interaction model.
30
30
  The .critical scope class in theme.css redirects --palette-source so
31
31
  --color-6 below becomes a tint of the active color. */
32
- :where(.button-group.critical,
33
- .button-group.primary) & {
32
+ :where(.ui-button-group.ui-critical,
33
+ .ui-button-group.ui-primary) & {
34
34
  --_color-contrast: var(--gray-1);
35
35
  --_color-tonal: var(--color-6);
36
36
  --_accent-tonal-contrast: var(--text-primary-contrast);
@@ -41,26 +41,26 @@
41
41
  --_outlined-active-bg-color: oklch(from var(--_accent) calc(l - 0.1) c h);
42
42
  }
43
43
 
44
- :where(.button-group.critical) & {
44
+ :where(.ui-button-group.ui-critical) & {
45
45
  --_color: var(--critical);
46
46
  }
47
47
 
48
- :where(.button-group.primary) & {
48
+ :where(.ui-button-group.ui-primary) & {
49
49
  --_color: var(--primary);
50
50
  }
51
51
 
52
- :where(.button-group.small) & {
52
+ :where(.ui-button-group.ui-small) & {
53
53
  --_min-height: 1.875rem;
54
54
  padding-block: 0;
55
55
  padding-inline: 1ex;
56
56
  }
57
57
 
58
- :where(.button-group.large) & {
58
+ :where(.ui-button-group.ui-large) & {
59
59
  --_min-height: 2.875rem;
60
60
  padding-inline: 4ex;
61
61
  }
62
62
 
63
- :where(.button-group.outlined) & {
63
+ :where(.ui-button-group.ui-outlined) & {
64
64
  --_border-color: var(--_accent);
65
65
  --_divider-color: var(--_accent);
66
66
 
@@ -79,7 +79,7 @@
79
79
  }
80
80
  }
81
81
 
82
- :where(.button-group.tonal) & {
82
+ :where(.ui-button-group.ui-tonal) & {
83
83
  --_bg-color: var(--_accent-tonal);
84
84
  --_text-color: var(--_accent-tonal-contrast);
85
85
 
@@ -96,13 +96,13 @@
96
96
  }
97
97
  }
98
98
 
99
- :where(.button-group.filled) & {
99
+ :where(.ui-button-group.ui-filled) & {
100
100
  --_bg-color: var(--_accent);
101
101
  --_text-color: var(--_accent-contrast);
102
102
  --_divider-color: currentColor;
103
103
 
104
- :where(.button-group.critical,
105
- .button-group.primary) & {
104
+ :where(.ui-button-group.ui-critical,
105
+ .ui-button-group.ui-primary) & {
106
106
  --_divider-color: light-dark(oklch(from var(--_accent) calc(l - 0.1) c h),
107
107
  oklch(from var(--_accent) calc(l + 0.1) c h));
108
108
  }
@@ -119,7 +119,7 @@
119
119
  }
120
120
  }
121
121
 
122
- &:not(.vertical) {
122
+ &:not(.ui-vertical) {
123
123
  button {
124
124
  &:first-of-type {
125
125
  border-end-start-radius: var(--_border-radius);
@@ -144,7 +144,7 @@
144
144
  }
145
145
  }
146
146
 
147
- &.vertical {
147
+ &.ui-vertical {
148
148
  flex-direction: column;
149
149
 
150
150
  button {
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.button) {
2
+ :where(.ui-button) {
3
3
  --_color: light-dark(var(--color-16), var(--color-1));
4
4
  --_color-contrast: light-dark(var(--color-1), var(--color-16));
5
5
  --_color-tonal: var(--surface-tonal);
@@ -54,8 +54,8 @@
54
54
  contrast text, and hover/active strategy are identical.
55
55
  The .critical scope class in theme.css redirects --palette-source so
56
56
  --color-6 below becomes a tint of the active color. */
57
- &.critical,
58
- &.primary {
57
+ &.ui-critical,
58
+ &.ui-primary {
59
59
  --_color-contrast: var(--gray-1);
60
60
  --_color-tonal: var(--color-6);
61
61
  --_accent-tonal-contrast: var(--text-primary-contrast);
@@ -69,11 +69,11 @@
69
69
  --_outlined-active-bg-color: oklch(from var(--_accent) calc(l - 0.1) c h);
70
70
  }
71
71
 
72
- &.critical {
72
+ &.ui-critical {
73
73
  --_color: var(--critical);
74
74
  }
75
75
 
76
- &.primary {
76
+ &.ui-primary {
77
77
  --_color: var(--primary);
78
78
  }
79
79
 
@@ -101,7 +101,7 @@
101
101
 
102
102
 
103
103
  /* Icons / Keyboard */
104
- &:where(:has(svg), &.icon-only) {
104
+ &:where(:has(svg), &.ui-icon-only) {
105
105
  gap: 1ex;
106
106
 
107
107
  svg {
@@ -122,27 +122,27 @@
122
122
 
123
123
  /* Sizes — heights aliased from the shared --control-size scale.
124
124
  Override --button-size-* in a parent scope to resize an entire region. */
125
- &.x-small {
125
+ &.ui-x-small {
126
126
  --_min-height: var(--button-size-x-small);
127
127
  --_font-size: var(--font-size-0);
128
128
  padding-block: 0;
129
129
  padding-inline: .5ex;
130
130
  }
131
131
 
132
- &.small {
132
+ &.ui-small {
133
133
  --_min-height: var(--button-size-small);
134
134
  --_font-size: var(--font-size-05);
135
135
  padding-block: 0;
136
136
  padding-inline: .75ex;
137
137
  }
138
138
 
139
- &.large {
139
+ &.ui-large {
140
140
  --_min-height: var(--button-size-large);
141
141
  padding-inline: 4ex;
142
142
  }
143
143
 
144
144
  /* Variants */
145
- &.outlined {
145
+ &.ui-outlined {
146
146
  --_bg-color: transparent;
147
147
  --_border-color: var(--_accent);
148
148
  --_text-color: var(--_accent);
@@ -162,7 +162,7 @@
162
162
  }
163
163
  }
164
164
 
165
- &.tonal {
165
+ &.ui-tonal {
166
166
  --_bg-color: var(--_accent-tonal);
167
167
  --_text-color: var(--_accent-tonal-contrast);
168
168
 
@@ -179,7 +179,7 @@
179
179
  }
180
180
  }
181
181
 
182
- &.filled {
182
+ &.ui-filled {
183
183
  --_bg-color: var(--_accent);
184
184
  --_text-color: var(--_accent-contrast);
185
185
 
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.callout) {
2
+ :where(.ui-callout) {
3
3
  --_bg-color: var(--surface-tonal);
4
4
  --_border-color: var(--surface-tonal);
5
5
  --_color: var(--text-primary);
@@ -27,11 +27,11 @@
27
27
  padding: var(--_padding);
28
28
  position: relative;
29
29
 
30
- &.critical,
31
- &.info,
32
- &.neutral,
33
- &.success,
34
- &.warning {
30
+ &.ui-critical,
31
+ &.ui-info,
32
+ &.ui-neutral,
33
+ &.ui-success,
34
+ &.ui-warning {
35
35
  --_bg-color: light-dark(oklch(from var(--color-2) l c h / 20%), oklch(from var(--color-6) l c h / 5%));
36
36
  --_border-color: light-dark(var(--color-5), var(--color-11));
37
37
  --_color: light-dark(var(--color-16), var(--color-1));
@@ -43,7 +43,7 @@
43
43
  --_outlined-icon-color: var(--color-9);
44
44
  }
45
45
 
46
- &.outlined {
46
+ &.ui-outlined {
47
47
  --_bg-color: var(--_outlined-bg-color);
48
48
  --_border-color: var(--_outlined-border-color);
49
49
  --_color: var(--_outlined-color);
@@ -60,7 +60,7 @@
60
60
  z-index: -1;
61
61
  }
62
62
 
63
- &>.content {
63
+ &>.ui-content {
64
64
  display: grid;
65
65
  font-size: var(--_font-size);
66
66
  gap: var(--_content-gap);
@@ -84,7 +84,7 @@
84
84
  /* Links
85
85
  * Can't make sure contrast will be acceptable (yet) so we use the current text color instead.
86
86
  */
87
- &:not(.outlined) {
87
+ &:not(.ui-outlined) {
88
88
  a[href] {
89
89
  color: inherit;
90
90
 
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.card) {
2
+ :where(.ui-card) {
3
3
  --_bg-tonal: var(--surface-tonal);
4
4
  --_bg-elevated: var(--surface-elevated);
5
5
  --_bg-surface: var(--surface-default);
@@ -31,30 +31,30 @@
31
31
  position: relative;
32
32
 
33
33
  /* Variants */
34
- &.text {
34
+ &.ui-text {
35
35
  --_card-bg-color: transparent;
36
36
  --_card-border-color: transparent;
37
37
  --_card-border-width: 0;
38
38
  --_card-shadow: none;
39
39
  }
40
40
 
41
- &.tonal {
41
+ &.ui-tonal {
42
42
  --_card-bg-color: var(--_bg-tonal);
43
43
  --_card-border-width: 1px;
44
44
  }
45
45
 
46
- &.elevated {
46
+ &.ui-elevated {
47
47
  --_card-bg-color: var(--_bg-elevated);
48
48
  --_card-shadow: var(--_shadow-elevated);
49
49
  }
50
50
 
51
- &.outlined {
51
+ &.ui-outlined {
52
52
  --_card-bg-color: var(--_bg-surface);
53
53
  --_card-border-color: var(--_border-color);
54
54
  --_card-border-width: 1px;
55
55
  }
56
56
 
57
- &> :where(hgroup, .content) {
57
+ &> :where(hgroup, .ui-content) {
58
58
  padding-inline: var(--size-3);
59
59
 
60
60
  &:last-child {
@@ -82,31 +82,31 @@
82
82
  }
83
83
 
84
84
  /* Content */
85
- &>.content:where(:only-child, :first-child) {
85
+ &>.ui-content:where(:only-child, :first-child) {
86
86
  padding-block: var(--size-3) var(--size-4);
87
87
  }
88
88
 
89
89
  /* Actions */
90
- &>.actions {
90
+ &>.ui-actions {
91
91
  display: flex;
92
92
  gap: var(--size-2);
93
93
  margin-block: var(--size-2) 0;
94
94
  padding-block-end: var(--size-2);
95
95
  padding-inline: var(--size-3);
96
96
 
97
- &:has(.button:first-child[class="button"]) {
97
+ &:has(.ui-button:first-child[class="ui-button"]) {
98
98
  padding-inline: var(--size-1) var(--size-3);
99
99
  }
100
100
 
101
- &:has(.button:not([class="button"])) {
101
+ &:has(.ui-button:not([class="ui-button"])) {
102
102
  padding-block-end: var(--size-2);
103
103
  }
104
104
 
105
105
  /* Alignment */
106
- &.align-end {
106
+ &.ui-align-end {
107
107
  justify-content: end;
108
108
 
109
- &:has(.button:first-child[class="button"]) {
109
+ &:has(.ui-button:first-child[class="ui-button"]) {
110
110
  padding-inline: var(--size-3) var(--size-1);
111
111
  }
112
112
  }
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- label.checkbox {
2
+ label.ui-checkbox {
3
3
  --_input-size: var(--size-4);
4
4
 
5
5
  align-items: center;
@@ -27,7 +27,7 @@
27
27
 
28
28
  /* Required dot */
29
29
  &:has(:invalid) {
30
- .label:after {
30
+ .ui-label:after {
31
31
  color: var(--red);
32
32
  content: "*";
33
33
  inset: 0 -0.25ex auto auto;
@@ -36,7 +36,7 @@
36
36
  }
37
37
 
38
38
  /* Label */
39
- .label {
39
+ .ui-label {
40
40
  color: var(--text-primary);
41
41
  font-size: var(--font-size-05);
42
42
  grid-column: 2;
@@ -46,7 +46,7 @@
46
46
  }
47
47
 
48
48
  /* End text */
49
- :where(.end-text) {
49
+ :where(.ui-end-text) {
50
50
  color: var(--text-muted);
51
51
  font-size: var(--font-size-0);
52
52
  grid-column: 2;
@@ -56,14 +56,14 @@
56
56
  }
57
57
 
58
58
  /* Spread layout */
59
- &.spread {
59
+ &.ui-spread {
60
60
  align-items: center;
61
61
  column-gap: var(--size-4);
62
62
  grid-auto-flow: unset;
63
63
  grid-template-columns: 1fr auto;
64
64
  inline-size: 100%;
65
65
 
66
- .label {
66
+ .ui-label {
67
67
  font-weight: 600;
68
68
  grid-column: 1;
69
69
  grid-row: 1;
@@ -75,18 +75,18 @@
75
75
  grid-row: 1;
76
76
  }
77
77
 
78
- :where(.end-text) {
78
+ :where(.ui-end-text) {
79
79
  grid-column: 1;
80
80
  grid-row: 2;
81
81
  }
82
82
  }
83
83
 
84
84
  /* Stacked layout */
85
- &.stack {
85
+ &.ui-stack {
86
86
  justify-items: center;
87
87
  grid-auto-columns: unset;
88
88
 
89
- .label {
89
+ .ui-label {
90
90
  grid-column: 1/-1;
91
91
  grid-row: 2;
92
92
  margin-block-start: var(--size-1);
@@ -98,7 +98,7 @@
98
98
  }
99
99
  }
100
100
 
101
- .end-text {
101
+ .ui-end-text {
102
102
  grid-column: 1/-1;
103
103
  grid-row: 3;
104
104
  }
@@ -157,13 +157,13 @@
157
157
  }
158
158
 
159
159
  /* Sizes */
160
- &.small {
160
+ &.ui-small {
161
161
  input[type="checkbox"] {
162
162
  --_input-size: var(--size-3);
163
163
  }
164
164
  }
165
165
 
166
- &.large {
166
+ &.ui-large {
167
167
  input[type="checkbox"] {
168
168
  --_input-size: var(--size-5);
169
169
  }
@@ -174,7 +174,7 @@
174
174
  &:has(:user-invalid) {
175
175
  --palette-source: oklch(0.58 0.21 var(--hue-red));
176
176
 
177
- :where(.end-text) {
177
+ :where(.ui-end-text) {
178
178
  color: var(--primary);
179
179
  }
180
180
  }
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.chip) {
2
+ :where(.ui-chip) {
3
3
  --_bg-color: var(--surface-tonal);
4
4
  --_border-color: var(--border-color);
5
5
  --_color: var(--text-primary);
@@ -17,12 +17,12 @@
17
17
  text-decoration: none;
18
18
 
19
19
  /* Variants */
20
- &.tonal {
20
+ &.ui-tonal {
21
21
  --_bg-color: var(--surface-tonal);
22
22
  --_color: var(--text-primary);
23
23
  }
24
24
 
25
- &.outlined {
25
+ &.ui-outlined {
26
26
  --_bg-color: var(--surface-default);
27
27
  --_color: var(--text-primary);
28
28
  }
@@ -51,11 +51,11 @@
51
51
  }
52
52
 
53
53
  /* Sizes */
54
- &.small {
54
+ &.ui-small {
55
55
  block-size: var(--size-5);
56
56
  }
57
57
 
58
- &.multiline {
58
+ &.ui-multiline {
59
59
  block-size: auto;
60
60
  }
61
61
 
@@ -1,5 +1,5 @@
1
1
  @layer components.root {
2
- :where(.description-list) {
2
+ :where(.ui-description-list) {
3
3
  --_border-style: solid;
4
4
  --_border-width: 1px;
5
5
 
@@ -8,17 +8,18 @@
8
8
  margin: 0;
9
9
  padding: 0;
10
10
 
11
- &.dotted {
11
+ &.ui-dotted {
12
12
  --_border-style: dotted;
13
13
  --_border-width: 2px;
14
14
  }
15
15
 
16
- .item {
16
+ .ui-item {
17
17
  display: grid;
18
18
  margin: 0;
19
19
  padding: 0;
20
20
 
21
- dt {
21
+ dt,
22
+ .ui-term {
22
23
  display: block;
23
24
  font-weight: 700;
24
25
  overflow: hidden;
@@ -33,13 +34,14 @@
33
34
  @container (width > 45ch) {
34
35
  gap: var(--size-1);
35
36
 
36
- .item {
37
+ .ui-item {
37
38
  align-items: baseline;
38
39
  display: grid;
39
40
  gap: var(--size-1);
40
41
  grid-template-columns: 1fr auto;
41
42
 
42
- dt {
43
+ dt,
44
+ .ui-term {
43
45
  inline-size: max-content;
44
46
 
45
47
  &::after {
@@ -53,10 +55,11 @@
53
55
  }
54
56
  }
55
57
 
56
- &.bordered .item {
58
+ &.ui-bordered .ui-item {
57
59
  grid-template-columns: auto 1fr auto;
58
60
 
59
- dt {
61
+ dt,
62
+ .ui-term {
60
63
  order: 0;
61
64
  }
62
65