trace-css 0.0.0-stage → 0.1.1

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 (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +0 -3
  3. package/dist/trace.classless.conditional.css +1534 -0
  4. package/dist/trace.classless.conditional.min.css +1 -0
  5. package/dist/trace.classless.css +1532 -0
  6. package/dist/trace.classless.min.css +1 -0
  7. package/dist/trace.conditional.css +2138 -0
  8. package/dist/trace.conditional.min.css +1 -0
  9. package/dist/trace.css +2136 -0
  10. package/dist/trace.min.css +1 -0
  11. package/package.json +63 -4
  12. package/src/classless.css +16 -0
  13. package/src/content/link.css +75 -0
  14. package/src/content/table.css +108 -0
  15. package/src/content/table.extensions.css +45 -0
  16. package/src/content/typography.css +201 -0
  17. package/src/elements/button.css +168 -0
  18. package/src/elements/button.extensions.css +171 -0
  19. package/src/elements/icon.extensions.css +22 -0
  20. package/src/elements/loader.css +73 -0
  21. package/src/elements/loader.extensions.css +27 -0
  22. package/src/forms/checkbox.css +146 -0
  23. package/src/forms/checkbox.extensions.css +9 -0
  24. package/src/forms/file.css +39 -0
  25. package/src/forms/input.css +199 -0
  26. package/src/forms/input.extensions.css +171 -0
  27. package/src/forms/radio.css +112 -0
  28. package/src/forms/radio.extensions.css +9 -0
  29. package/src/forms/range.css +170 -0
  30. package/src/forms/range.extensions.css +13 -0
  31. package/src/forms/select.css +160 -0
  32. package/src/forms/select.extensions.css +107 -0
  33. package/src/forms/switch.css +156 -0
  34. package/src/forms/switch.extensions.css +122 -0
  35. package/src/forms/textarea.css +133 -0
  36. package/src/forms/textarea.extensions.css +15 -0
  37. package/src/foundation.css +35 -0
  38. package/src/index.css +14 -0
  39. package/src/variables.css +112 -0
@@ -0,0 +1,199 @@
1
+ @layer trace.elements {
2
+ :where(:root) {
3
+ --trace-input-font-size: 1rem;
4
+ --trace-input-line-height: 1.5rem;
5
+ --trace-input-padding-block: 0.375rem;
6
+ --trace-input-padding-inline: 0.625rem;
7
+ --trace-input-radius: var(--trace-radius-control);
8
+ --trace-input-text: var(--trace-text);
9
+ --trace-input-border: light-dark(
10
+ var(--trace-primary),
11
+ var(--trace-secondary)
12
+ );
13
+ --trace-input-focus: light-dark(
14
+ var(--trace-primary-light),
15
+ var(--trace-secondary-light)
16
+ );
17
+ --trace-input-placeholder: light-dark(
18
+ var(--trace-neutral),
19
+ var(--trace-neutral-light)
20
+ );
21
+ --trace-input-error: var(--trace-danger);
22
+ --trace-input-shadow: var(--trace-shadow);
23
+ }
24
+ :where(
25
+ input:not([type]),
26
+ input:is(
27
+ [type="text"],
28
+ [type="search"],
29
+ [type="email"],
30
+ [type="url"],
31
+ [type="tel"],
32
+ [type="password"],
33
+ [type="number"],
34
+ [type="date"],
35
+ [type="datetime-local"],
36
+ [type="month"],
37
+ [type="week"],
38
+ [type="time"],
39
+ [type="color"],
40
+ [type="file"]
41
+ )
42
+ ) {
43
+ --_trace-input-border: var(--trace-input-border);
44
+ display: block;
45
+ box-sizing: border-box;
46
+ inline-size: 100%;
47
+ min-inline-size: 0;
48
+ margin: 0;
49
+ padding: var(--trace-input-padding-block) var(--trace-input-padding-inline);
50
+ border: 2px solid var(--_trace-input-border);
51
+ border-radius: var(--trace-input-radius);
52
+ background-color: var(--trace-input-bg, var(--trace-control-bg));
53
+ color: var(--trace-input-text);
54
+ caret-color: var(--trace-input-focus);
55
+ font-family: var(--trace-font-body);
56
+ font-size: var(--trace-input-font-size);
57
+ line-height: var(--trace-input-line-height);
58
+ text-align: start;
59
+ cursor: text;
60
+ transition:
61
+ border-color 200ms ease-in-out,
62
+ box-shadow 200ms ease-in-out;
63
+
64
+ &::placeholder {
65
+ color: var(--trace-input-placeholder);
66
+ opacity: 1;
67
+ }
68
+
69
+ &:hover:not(:disabled):not([readonly]):not(:focus) {
70
+ box-shadow: var(--trace-input-shadow);
71
+ }
72
+
73
+ &:focus {
74
+ --_trace-input-border: var(--trace-input-focus);
75
+ outline: 2px solid transparent;
76
+ outline-offset: 2px;
77
+ box-shadow: 0 0 0 4px
78
+ color-mix(in srgb, var(--trace-input-focus), transparent 70%);
79
+ }
80
+
81
+ &[readonly] {
82
+ cursor: default;
83
+ }
84
+
85
+ &[aria-invalid="true"] {
86
+ --_trace-input-border: var(--trace-input-error);
87
+ }
88
+
89
+ &:user-invalid {
90
+ --_trace-input-border: var(--trace-input-error);
91
+ }
92
+
93
+ &:disabled {
94
+ opacity: 0.5;
95
+ cursor: not-allowed;
96
+ box-shadow: none;
97
+ }
98
+
99
+ @media (prefers-reduced-motion: reduce) {
100
+ transition: none;
101
+ }
102
+ }
103
+
104
+ :where(input[type="color"]) {
105
+ block-size: calc(
106
+ var(--trace-input-line-height) + var(--trace-input-padding-block) * 2 +
107
+ 4px
108
+ );
109
+ padding: 0.25rem;
110
+ cursor: pointer;
111
+ }
112
+
113
+ :where(input[type="color"])::-webkit-color-swatch-wrapper {
114
+ padding: 0;
115
+ }
116
+
117
+ :where(input[type="color"])::-webkit-color-swatch {
118
+ border: 0;
119
+ border-radius: 1px;
120
+ }
121
+
122
+ :where(input[type="color"])::-moz-color-swatch {
123
+ border: 0;
124
+ border-radius: 1px;
125
+ }
126
+
127
+ :where(
128
+ label:has(
129
+ > input:not([type]),
130
+ > input:is(
131
+ [type="text"],
132
+ [type="search"],
133
+ [type="email"],
134
+ [type="url"],
135
+ [type="tel"],
136
+ [type="password"],
137
+ [type="number"],
138
+ [type="date"],
139
+ [type="datetime-local"],
140
+ [type="month"],
141
+ [type="week"],
142
+ [type="time"],
143
+ [type="color"],
144
+ [type="file"]
145
+ )
146
+ )
147
+ ) {
148
+ display: grid;
149
+ gap: 0.25rem;
150
+ min-inline-size: 0;
151
+
152
+ cursor: pointer;
153
+ color: var(--trace-input-text);
154
+
155
+ &:has(> input[aria-invalid="true"]) > small:last-child {
156
+ color: var(--trace-input-error);
157
+ }
158
+
159
+ &:has(> input:user-invalid) > small:last-child {
160
+ color: var(--trace-input-error);
161
+ }
162
+
163
+ &:has(> input:disabled) {
164
+ color: color-mix(in srgb, var(--trace-input-text), transparent 50%);
165
+ cursor: not-allowed;
166
+ }
167
+
168
+ & > small {
169
+ margin: 0;
170
+ line-height: 1.5;
171
+ }
172
+ }
173
+
174
+ :where(label:has(input) + small) {
175
+ display: block;
176
+ margin-block-start: 0.25rem;
177
+ line-height: 1.5;
178
+ }
179
+
180
+ :where(label:has(input[aria-invalid="true"], input:user-invalid) + small) {
181
+ color: var(--trace-input-error);
182
+ }
183
+
184
+ :where(label[for]:not(:has(input))) {
185
+ display: inline-block;
186
+ margin-block-end: 0.25rem;
187
+ cursor: pointer;
188
+ color: var(--trace-input-text);
189
+ }
190
+
191
+ :where(input[aria-invalid="true"] + small, input:user-invalid + small) {
192
+ color: var(--trace-input-error);
193
+ }
194
+
195
+ :where(label[for]:has(+ input:disabled)) {
196
+ opacity: 0.5;
197
+ cursor: not-allowed;
198
+ }
199
+ }
@@ -0,0 +1,171 @@
1
+ @layer trace.extensions {
2
+ :where(label:has(> .trace-input-wrap > input)) {
3
+ display: grid;
4
+ gap: 0.25rem;
5
+ min-inline-size: 0;
6
+ color: var(--trace-input-text);
7
+ cursor: pointer;
8
+ & > small {
9
+ margin: 0;
10
+ line-height: 1.5;
11
+ }
12
+ &:has(> .trace-input-wrap > input:disabled) {
13
+ color: color-mix(in srgb, var(--trace-input-text), transparent 50%);
14
+ cursor: not-allowed;
15
+ }
16
+ &:has(
17
+ > .trace-input-wrap > input[aria-invalid="true"],
18
+ > .trace-input-wrap > input:user-invalid
19
+ )
20
+ > small:last-child {
21
+ color: var(--trace-input-error);
22
+ }
23
+ }
24
+
25
+ :where(.trace-input-wrap) {
26
+ --trace-input-icon-size: 1.25rem;
27
+ display: grid;
28
+ grid-template-columns: auto minmax(0, 1fr) auto;
29
+ position: relative;
30
+ min-inline-size: 0;
31
+ }
32
+
33
+ :where(.trace-input-wrap > input) {
34
+ grid-area: 1 / 1 / 2 / 4;
35
+ }
36
+ :where(
37
+ .trace-input-wrap > .trace-input-icon-start,
38
+ .trace-input-wrap > .trace-input-icon-end
39
+ ) {
40
+ --trace-icon-size: var(--trace-input-icon-size);
41
+ position: relative;
42
+ grid-row: 1;
43
+ align-self: center;
44
+ margin-inline: calc(2px + var(--trace-input-padding-inline));
45
+ color: var(--trace-input-border);
46
+ pointer-events: none;
47
+ }
48
+
49
+ :where(.trace-input-wrap > .trace-input-icon-start) {
50
+ grid-column: 1;
51
+ }
52
+
53
+ :where(.trace-input-wrap > .trace-input-icon-end) {
54
+ grid-column: 3;
55
+ }
56
+
57
+ :where(.trace-input-wrap:has(> .trace-input-icon-start) > input) {
58
+ padding-inline-start: calc(
59
+ var(--trace-input-padding-inline) + var(--trace-input-icon-size) + 0.5rem
60
+ );
61
+ }
62
+
63
+ :where(.trace-input-wrap:has(> .trace-input-icon-end) > input) {
64
+ padding-inline-end: calc(
65
+ var(--trace-input-padding-inline) + var(--trace-input-icon-size) + 0.5rem
66
+ );
67
+ }
68
+
69
+ :where(.trace-input-wrap:has(> input:focus) > .trace-icon) {
70
+ color: var(--trace-input-focus);
71
+ }
72
+
73
+ :where(
74
+ .trace-input-wrap:has(> input[aria-invalid="true"], > input:user-invalid)
75
+ > .trace-icon
76
+ ) {
77
+ color: var(--trace-input-error);
78
+ }
79
+
80
+ :where(.trace-input-wrap:has(> input:disabled) > .trace-icon) {
81
+ opacity: 0.5;
82
+ }
83
+
84
+ :where(.trace-input-wrap:has(> button) > input) {
85
+ padding-inline-end: calc(var(--trace-input-padding-inline) + 2rem);
86
+ }
87
+
88
+ :where(.trace-input-wrap > button) {
89
+ position: absolute;
90
+ inset-inline-end: 0.5rem;
91
+ inset-block: 0;
92
+ margin-block: auto;
93
+ inline-size: 1.5rem;
94
+ block-size: 1.5rem;
95
+ padding: 0;
96
+ border: 0;
97
+ border-radius: var(--trace-radius-sm);
98
+ background: transparent;
99
+ color: var(--trace-input-border);
100
+ box-shadow: none;
101
+ --trace-button-outline-color: var(--trace-input-focus);
102
+ }
103
+
104
+ :where(.trace-input-wrap > button:hover:not(:disabled)) {
105
+ color: var(--trace-input-focus);
106
+ box-shadow: none;
107
+ }
108
+
109
+ :where(.trace-input-wrap > button:active:not(:disabled)) {
110
+ transform: scale(0.9);
111
+ box-shadow: none;
112
+ }
113
+
114
+ @media (prefers-reduced-motion: reduce) {
115
+ :where(.trace-input-wrap > button) {
116
+ transition: none;
117
+ transform: none;
118
+ }
119
+ }
120
+
121
+ :where(.trace-input-wrap > button > .trace-icon) {
122
+ --trace-icon-size: 1.25rem;
123
+ }
124
+ :where(.trace-input-wrap:has(> input.trace-small)) {
125
+ --trace-input-padding-inline: 0.5rem;
126
+ --trace-input-icon-size: 1rem;
127
+ }
128
+
129
+ :where(.trace-input-wrap:has(> input.trace-large)) {
130
+ --trace-input-padding-inline: 0.75rem;
131
+ --trace-input-icon-size: 1.5rem;
132
+ }
133
+
134
+ :where(input.trace-small:not([type="checkbox"]):not([type="radio"])) {
135
+ --trace-input-font-size: 0.875rem;
136
+ --trace-input-line-height: 1.25rem;
137
+ --trace-input-padding-block: 0.25rem;
138
+ --trace-input-padding-inline: 0.5rem;
139
+ }
140
+
141
+ :where(input.trace-large:not([type="checkbox"]):not([type="radio"])) {
142
+ --trace-input-font-size: 1.125rem;
143
+ --trace-input-line-height: 1.75rem;
144
+ --trace-input-padding-block: 0.5rem;
145
+ --trace-input-padding-inline: 0.75rem;
146
+ }
147
+
148
+ /* Keep loading states above the embedded button's layout and interactions. */
149
+ :where(.trace-input-wrap > button[aria-busy="true"]) {
150
+ position: absolute;
151
+ cursor: wait;
152
+ opacity: 1;
153
+ box-shadow: none;
154
+ transform: none;
155
+ }
156
+
157
+ :where(
158
+ .trace-input-wrap > button[aria-busy="true"]:not(:has(> span.trace-icon))
159
+ ) {
160
+ color: transparent;
161
+ }
162
+
163
+ @media (forced-colors: active) {
164
+ :where(
165
+ .trace-input-wrap > button[aria-busy="true"]:not(:has(> span.trace-icon))
166
+ ) {
167
+ background-color: ButtonFace;
168
+ border-color: ButtonText;
169
+ }
170
+ }
171
+ }
@@ -0,0 +1,112 @@
1
+ @layer trace.elements {
2
+ :where(:root) {
3
+ --trace-radio-size: 1.25rem;
4
+ --trace-radio-color: light-dark(
5
+ var(--trace-primary),
6
+ var(--trace-secondary)
7
+ );
8
+ }
9
+
10
+ :where(input[type="radio"]) {
11
+ appearance: none;
12
+ -webkit-appearance: none;
13
+ position: relative;
14
+ display: inline-block;
15
+ box-sizing: border-box;
16
+ flex-shrink: 0;
17
+ inline-size: var(--trace-radio-size);
18
+ block-size: var(--trace-radio-size);
19
+ margin: 2px;
20
+ padding: 0;
21
+ border: 2px solid var(--trace-radio-color);
22
+ border-radius: 50%;
23
+ background: var(--trace-radio-bg, var(--trace-control-bg));
24
+ vertical-align: middle;
25
+ cursor: pointer;
26
+ transition:
27
+ transform 250ms ease-in-out,
28
+ border-color 250ms ease-in-out;
29
+ }
30
+
31
+ :where(input[type="radio"])::before {
32
+ content: "";
33
+ position: absolute;
34
+ inset: -2px;
35
+ box-sizing: border-box;
36
+ border: 2px solid var(--trace-radio-color);
37
+ border-radius: 50%;
38
+ background-color: transparent;
39
+ transition:
40
+ border-color 250ms ease-in-out,
41
+ background-color 250ms ease-in-out,
42
+ transform 250ms ease-in-out;
43
+ }
44
+
45
+ :where(input[type="radio"]:checked)::before {
46
+ background-color: var(--trace-radio-color);
47
+ transform: scale(0.6);
48
+ }
49
+
50
+ :where(input[type="radio"]:focus-visible) {
51
+ outline: 2px solid var(--trace-radio-color);
52
+ outline-offset: 2px;
53
+ }
54
+
55
+ :where(label:has(> input[type="radio"])) {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ gap: 0.5rem;
59
+ cursor: pointer;
60
+ }
61
+
62
+ :where(
63
+ input[type="radio"]:active:not(:disabled),
64
+ label:active > input[type="radio"]:not(:disabled)
65
+ ) {
66
+ transform: scale(0.9);
67
+ }
68
+
69
+ :where(input[type="radio"]:disabled) {
70
+ opacity: 0.5;
71
+ cursor: not-allowed;
72
+ }
73
+
74
+ :where(label:has(> input[type="radio"]:disabled)) {
75
+ cursor: not-allowed;
76
+ }
77
+
78
+ :where(label > input[type="radio"]:disabled ~ span) {
79
+ opacity: 0.5;
80
+ }
81
+
82
+ @media (prefers-reduced-motion: reduce) {
83
+ :where(input[type="radio"]) {
84
+ transition: none;
85
+ transform: none;
86
+ }
87
+
88
+ :where(input[type="radio"])::before {
89
+ transition: none;
90
+ transform: none;
91
+ }
92
+
93
+ :where(input[type="radio"]:checked)::before {
94
+ transform: scale(0.6);
95
+ }
96
+ }
97
+
98
+ @media (forced-colors: active) {
99
+ :where(input[type="radio"]) {
100
+ appearance: auto;
101
+ -webkit-appearance: auto;
102
+ }
103
+
104
+ :where(input[type="radio"])::before {
105
+ content: none;
106
+ }
107
+ }
108
+
109
+ :where(input[type="radio"][aria-invalid="true"]) {
110
+ --trace-radio-color: var(--trace-danger);
111
+ }
112
+ }
@@ -0,0 +1,9 @@
1
+ @layer trace.extensions {
2
+ :where(input[type="radio"].trace-small) {
3
+ --trace-radio-size: 1rem;
4
+ }
5
+
6
+ :where(input[type="radio"].trace-large) {
7
+ --trace-radio-size: 1.5rem;
8
+ }
9
+ }
@@ -0,0 +1,170 @@
1
+ @layer trace.elements {
2
+ :where(:root) {
3
+ --trace-range-color: light-dark(
4
+ var(--trace-primary),
5
+ var(--trace-secondary)
6
+ );
7
+ --trace-range-track-color: light-dark(
8
+ var(--trace-primary-light),
9
+ var(--trace-secondary-dark)
10
+ );
11
+ --trace-range-error: var(--trace-danger);
12
+ --trace-range-track-size: 0.375rem;
13
+ --trace-range-thumb-size: 1.25rem;
14
+ --trace-range-height: 2rem;
15
+ --trace-range-active-scale: 1.15;
16
+ --trace-range-duration: 150ms;
17
+ }
18
+
19
+ :where(input[type="range"]) {
20
+ appearance: none;
21
+ -webkit-appearance: none;
22
+ display: block;
23
+ box-sizing: border-box;
24
+ inline-size: 100%;
25
+ min-inline-size: 0;
26
+ block-size: var(--trace-range-height);
27
+ margin: 0;
28
+ padding: 0;
29
+ border: 0;
30
+ background: transparent;
31
+ color: var(--trace-range-color);
32
+ accent-color: var(--trace-range-color);
33
+ cursor: pointer;
34
+
35
+ &:focus-visible {
36
+ outline: 2px solid var(--trace-range-color);
37
+ outline-offset: 2px;
38
+ border-radius: var(--trace-radius-control);
39
+ }
40
+
41
+ &:disabled {
42
+ opacity: 0.5;
43
+ cursor: not-allowed;
44
+ }
45
+
46
+ &[aria-invalid="true"] {
47
+ --trace-range-color: var(--trace-range-error);
48
+ --trace-range-track-color: color-mix(
49
+ in srgb,
50
+ var(--trace-range-error),
51
+ transparent 70%
52
+ );
53
+ }
54
+ }
55
+
56
+ :where(input[type="range"])::-webkit-slider-runnable-track {
57
+ box-sizing: border-box;
58
+ block-size: var(--trace-range-track-size);
59
+ border: 0;
60
+ border-radius: 999px;
61
+ background: var(--trace-range-track-color);
62
+ }
63
+
64
+ :where(input[type="range"])::-moz-range-track {
65
+ box-sizing: border-box;
66
+ block-size: var(--trace-range-track-size);
67
+ border: 0;
68
+ border-radius: 999px;
69
+ background: var(--trace-range-track-color);
70
+ }
71
+
72
+ :where(input[type="range"])::-webkit-slider-thumb {
73
+ appearance: none;
74
+ -webkit-appearance: none;
75
+ box-sizing: border-box;
76
+ inline-size: var(--trace-range-thumb-size);
77
+ block-size: var(--trace-range-thumb-size);
78
+ margin-block-start: calc(
79
+ (var(--trace-range-track-size) - var(--trace-range-thumb-size)) / 2
80
+ );
81
+ border: 2px solid var(--trace-range-color);
82
+ border-radius: 50%;
83
+ background: var(--trace-range-color);
84
+ transition:
85
+ transform var(--trace-range-duration) ease-out,
86
+ box-shadow 200ms ease-in-out;
87
+ }
88
+
89
+ :where(input[type="range"])::-moz-range-thumb {
90
+ appearance: none;
91
+ -webkit-appearance: none;
92
+ box-sizing: border-box;
93
+ inline-size: var(--trace-range-thumb-size);
94
+ block-size: var(--trace-range-thumb-size);
95
+ border: 2px solid var(--trace-range-color);
96
+ border-radius: 50%;
97
+ background: var(--trace-range-color);
98
+ transition:
99
+ transform var(--trace-range-duration) ease-out,
100
+ box-shadow 200ms ease-in-out;
101
+ }
102
+
103
+ :where(input[type="range"]:focus:not(:disabled))::-webkit-slider-thumb {
104
+ box-shadow: 0 0 0 4px
105
+ color-mix(in srgb, var(--trace-range-color), transparent 70%);
106
+ }
107
+
108
+ :where(input[type="range"]:focus:not(:disabled))::-moz-range-thumb {
109
+ box-shadow: 0 0 0 4px
110
+ color-mix(in srgb, var(--trace-range-color), transparent 70%);
111
+ }
112
+
113
+ :where(input[type="range"]:active:not(:disabled))::-webkit-slider-thumb {
114
+ transform: scale(var(--trace-range-active-scale));
115
+ }
116
+
117
+ :where(input[type="range"]:active:not(:disabled))::-moz-range-thumb {
118
+ transform: scale(var(--trace-range-active-scale));
119
+ }
120
+
121
+ @media (prefers-reduced-motion: reduce) {
122
+ :where(input[type="range"])::-webkit-slider-thumb {
123
+ transition: none;
124
+ transform: none;
125
+ }
126
+
127
+ :where(input[type="range"]:active:not(:disabled))::-webkit-slider-thumb {
128
+ transition: none;
129
+ transform: none;
130
+ }
131
+ :where(input[type="range"])::-moz-range-thumb {
132
+ transition: none;
133
+ transform: none;
134
+ }
135
+
136
+ :where(input[type="range"]:active:not(:disabled))::-moz-range-thumb {
137
+ transition: none;
138
+ transform: none;
139
+ }
140
+ }
141
+
142
+ :where(label:has(> input[type="range"])) {
143
+ display: grid;
144
+ gap: 0.25rem;
145
+ min-inline-size: 0;
146
+ color: var(--trace-text);
147
+ cursor: pointer;
148
+
149
+ & > small {
150
+ margin: 0;
151
+ line-height: 1.5;
152
+ }
153
+
154
+ &:has(> input[aria-invalid="true"]) > small:last-child {
155
+ color: var(--trace-range-error);
156
+ }
157
+
158
+ &:has(> input:disabled) {
159
+ cursor: not-allowed;
160
+ color: color-mix(in srgb, var(--trace-text), transparent 50%);
161
+ }
162
+ }
163
+
164
+ @media (forced-colors: active) {
165
+ :where(input[type="range"]) {
166
+ --trace-range-color: ButtonText;
167
+ --trace-range-track-color: GrayText;
168
+ }
169
+ }
170
+ }
@@ -0,0 +1,13 @@
1
+ @layer trace.extensions {
2
+ :where(input[type="range"].trace-small) {
3
+ --trace-range-thumb-size: 1rem;
4
+ --trace-range-track-size: 0.25rem;
5
+ --trace-range-height: 1.75rem;
6
+ }
7
+
8
+ :where(input[type="range"].trace-large) {
9
+ --trace-range-thumb-size: 1.5rem;
10
+ --trace-range-track-size: 0.5rem;
11
+ --trace-range-height: 2.5rem;
12
+ }
13
+ }