@digdir/designsystemet-css 1.0.0-next.34 → 1.0.0-next.36

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 (86) hide show
  1. package/README.md +4 -3
  2. package/accordion.css +62 -52
  3. package/alert.css +23 -37
  4. package/avatar.css +31 -57
  5. package/badge.css +16 -43
  6. package/breadcrumbs.css +5 -15
  7. package/button.css +54 -102
  8. package/card.css +91 -161
  9. package/chip.css +85 -151
  10. package/combobox.css +22 -16
  11. package/dist/accordion.css +1 -1
  12. package/dist/alert.css +1 -1
  13. package/dist/avatar.css +1 -1
  14. package/dist/badge.css +1 -1
  15. package/dist/breadcrumbs.css +1 -1
  16. package/dist/button.css +1 -1
  17. package/dist/card.css +1 -1
  18. package/dist/chip.css +1 -1
  19. package/dist/combobox.css +1 -1
  20. package/dist/divider.css +1 -1
  21. package/dist/dropdown.css +1 -1
  22. package/dist/error-summary.css +1 -1
  23. package/dist/field.css +1 -0
  24. package/dist/fieldset.css +1 -1
  25. package/dist/heading.css +1 -0
  26. package/dist/helptext.css +1 -1
  27. package/dist/index.css +1 -1
  28. package/dist/input.css +1 -0
  29. package/dist/label.css +1 -0
  30. package/dist/link.css +1 -1
  31. package/dist/list.css +1 -1
  32. package/dist/modal.css +1 -1
  33. package/dist/pagination.css +1 -1
  34. package/dist/paragraph.css +1 -0
  35. package/dist/popover.css +1 -1
  36. package/dist/search.css +1 -1
  37. package/dist/skeleton.css +1 -1
  38. package/dist/skiplink.css +1 -1
  39. package/dist/spinner.css +1 -1
  40. package/dist/table.css +1 -1
  41. package/dist/tabs.css +1 -1
  42. package/dist/tag.css +1 -1
  43. package/dist/textfield.css +1 -1
  44. package/dist/togglegroup.css +1 -1
  45. package/dist/tooltip.css +1 -1
  46. package/dist/validation-message.css +1 -0
  47. package/divider.css +2 -1
  48. package/dropdown.css +24 -24
  49. package/error-summary.css +6 -3
  50. package/field.css +124 -0
  51. package/fieldset.css +10 -28
  52. package/heading.css +55 -0
  53. package/helptext.css +3 -14
  54. package/index.css +114 -10
  55. package/input.css +186 -0
  56. package/label.css +30 -0
  57. package/link.css +18 -12
  58. package/list.css +8 -16
  59. package/modal.css +53 -77
  60. package/package.json +1 -1
  61. package/pagination.css +28 -33
  62. package/paragraph.css +11 -0
  63. package/popover.css +14 -28
  64. package/search.css +82 -153
  65. package/skeleton.css +18 -8
  66. package/skiplink.css +12 -12
  67. package/spinner.css +20 -21
  68. package/table.css +23 -21
  69. package/tabs.css +27 -27
  70. package/tag.css +8 -47
  71. package/textfield.css +2 -2
  72. package/togglegroup.css +6 -1
  73. package/tooltip.css +21 -6
  74. package/validation-message.css +25 -0
  75. package/checkbox.css +0 -223
  76. package/dist/checkbox.css +0 -1
  77. package/dist/radio.css +0 -1
  78. package/dist/select.css +0 -1
  79. package/dist/switch.css +0 -1
  80. package/dist/textarea.css +0 -1
  81. package/dist/utilities.css +0 -1
  82. package/radio.css +0 -200
  83. package/select.css +0 -106
  84. package/switch.css +0 -246
  85. package/textarea.css +0 -80
  86. package/utilities.css +0 -41
package/radio.css DELETED
@@ -1,200 +0,0 @@
1
- .ds-radio {
2
- --dsc-radio-size: var(--ds-spacing-5);
3
- --dsc-radio-focus-border-width: 3px;
4
- --dsc-radio-background: radial-gradient(circle, var(--ds-color-neutral-background-default) 60%, transparent 60%);
5
- --dsc-radio-border-color: var(--ds-color-neutral-border-default);
6
- --dsc-radio-border__hover--size: calc(var(--ds-spacing-3) / 2);
7
- --dsc-radio-border__hover: 0 0 0 var(--dsc-radio-border__hover--size) var(--ds-color-accent-surface-hover);
8
- --dsc-radio-box_shadow-size: 7px;
9
-
10
- display: grid;
11
- }
12
-
13
- .ds-radio:has(.ds-radio__label) {
14
- grid-template-columns: var(--dsc-radio-size) auto;
15
- gap: var(--ds-spacing-2);
16
- }
17
-
18
- /* Radio */
19
- .ds-radio__input {
20
- position: relative;
21
- width: var(--dsc-radio-size);
22
- height: var(--dsc-radio-size);
23
- z-index: 1;
24
- appearance: none;
25
- outline: none;
26
- cursor: pointer;
27
- margin: 0;
28
- align-self: center;
29
- box-shadow: inset 0 0 0 2px var(--dsc-radio-border-color);
30
- background: var(--dsc-radio-background);
31
- border-radius: 50%;
32
- }
33
-
34
- .ds-radio__input::before {
35
- position: absolute;
36
- content: '';
37
- display: block;
38
- width: 2.75rem;
39
- height: 2.75rem;
40
- transform: translate(-50%, -50%);
41
- top: 50%;
42
- left: 50%;
43
- cursor: pointer;
44
- border-radius: var(--ds-border-radius-md);
45
- }
46
-
47
- .ds-radio__label {
48
- /* min-height: var(--ds-sizing-10); */
49
- min-width: min-content;
50
- display: inline-flex;
51
- flex-direction: row;
52
- gap: var(--ds-spacing-1);
53
- align-items: center;
54
- cursor: pointer;
55
- }
56
-
57
- .ds-radio__description {
58
- margin-top: calc(var(--ds-spacing-2) * -1);
59
- color: var(--ds-color-neutral-text-subtle);
60
- grid-column: 2;
61
- }
62
-
63
- .ds-radio--readonly > .ds-radio__input,
64
- .ds-radio--readonly > .ds-radio__label,
65
- .ds-radio--readonly > .ds-radio__input::before {
66
- cursor: default;
67
- }
68
-
69
- .ds-radio:has(.ds-radio__input:disabled) > .ds-radio__description {
70
- opacity: var(--ds-disabled-opacity);
71
- }
72
-
73
- .ds-radio__input:disabled,
74
- .ds-radio__input:disabled::before,
75
- .ds-radio:has(.ds-radio__input:disabled) > .ds-radio__label {
76
- cursor: not-allowed;
77
- opacity: var(--ds-disabled-opacity);
78
- }
79
-
80
- .ds-radio:has(.ds-radio__input:focus-visible) {
81
- --dsc-focus-border-width: 3px;
82
-
83
- outline: var(--dsc-focus-border-width) solid var(--ds-color-focus-outer);
84
- outline-offset: var(--dsc-focus-border-width);
85
- box-shadow: 0 0 0 var(--dsc-focus-border-width) var(--ds-color-focus-inner);
86
- border-radius: var(--ds-border-radius-md);
87
- }
88
-
89
- .ds-radio__input:checked {
90
- --dsc-radio-border-color: var(--ds-color-accent-base-default);
91
- --dsc-radio-background: radial-gradient(circle, var(--ds-color-accent-contrast-1) 60%, transparent 60%);
92
-
93
- /* We use a gradient to avoid bleeding pixels */
94
- background: var(--dsc-radio-background);
95
- }
96
-
97
- .ds-radio--readonly > .ds-radio__input {
98
- --dsc-radio-border-color: var(--ds-color-neutral-border-subtle);
99
- --dsc-radio-background: var(--ds-color-neutral-background-subtle);
100
- }
101
-
102
- .ds-radio__input:focus-visible:not(:checked) {
103
- --dsc-radio-border-color: var(--ds-color-accent-border-strong);
104
-
105
- box-shadow: inset 0 0 0 2px var(--dsc-radio-border-color);
106
- }
107
-
108
- .ds-radio--readonly > .ds-radio__input:checked {
109
- background: var(--ds-color-neutral-border-strong);
110
- }
111
-
112
- .ds-radio--error > .ds-radio__input:not(:disabled, :focus-visible) {
113
- --dsc-radio-border-color: var(--ds-color-danger-border-default);
114
- }
115
-
116
- .ds-radio__input:focus-visible:checked {
117
- box-shadow: inset 0 0 0 var(--dsc-radio-box_shadow-size) var(--dsc-radio-border-color);
118
- }
119
-
120
- .ds-radio__input:checked:not(:focus-visible) {
121
- box-shadow: inset 0 0 0 var(--dsc-radio-box_shadow-size) var(--dsc-radio-border-color);
122
- }
123
-
124
- /* Only use hover for non-touch devices to prevent sticky-hovering
125
- "input:not(:read-only)" does not work so using ".container:not(.readonly) >" instead */
126
- @media (hover: hover) and (pointer: fine) {
127
- .ds-radio:not(.ds-radio--readonly) > .ds-radio__label:hover:not(:disabled),
128
- .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:not(:disabled) + .ds-radio__label {
129
- color: var(--ds-color-accent-text-subtle);
130
- }
131
-
132
- .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:not(:checked, :disabled, :focus-visible) {
133
- --dsc-radio-border-color: var(--ds-color-accent-border-strong);
134
-
135
- box-shadow:
136
- var(--dsc-radio-border__hover),
137
- inset 0 0 0 2px var(--dsc-radio-border-color);
138
- }
139
-
140
- .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:checked:not(:disabled, :focus-visible) {
141
- box-shadow:
142
- var(--dsc-radio-border__hover),
143
- inset 0 0 0 var(--dsc-radio-box_shadow-size) var(--dsc-radio-border-color);
144
- }
145
- }
146
-
147
- /** Sizing */
148
-
149
- .ds-radio--sm {
150
- --dsc-radio-size: var(--ds-sizing-5);
151
- --dsc-radio-box_shadow-size: 6px;
152
-
153
- /* min-height: var(--ds-sizing-10); */
154
- }
155
-
156
- .ds-radio--md {
157
- --dsc-radio-size: var(--ds-sizing-6);
158
- --dsc-radio-border__hover--size: var(--ds-spacing-1);
159
- --dsc-radio-box_shadow-size: 7px;
160
-
161
- /* min-height: var(--ds-sizing-11); */
162
- }
163
-
164
- .ds-radio--lg {
165
- --dsc-radio-size: var(--ds-sizing-7);
166
- --dsc-radio-box_shadow-size: 8px;
167
-
168
- /* min-height: var(--ds-sizing-12); */
169
- }
170
-
171
- .ds-radio__group {
172
- --dsc-radio-group-gap: var(--ds-spacing-4);
173
-
174
- display: flex;
175
- flex-direction: column;
176
- gap: var(--dsc-radio-group-gap);
177
- width: fit-content;
178
- }
179
-
180
- .ds-radio__group--sm {
181
- --dsc-radio-group-gap: var(--ds-spacing-3);
182
-
183
- margin-top: calc(var(--ds-spacing-2) * -1);
184
- }
185
-
186
- .ds-radio__group--md {
187
- --dsc-radio-group-gap: var(--ds-spacing-4);
188
- }
189
-
190
- .ds-radio__group--lg {
191
- --dsc-radio-group-gap: var(--ds-spacing-5);
192
-
193
- margin-top: calc(var(--ds-spacing-2) * 1);
194
- }
195
-
196
- .ds-radio__group--horizontal {
197
- display: flex;
198
- flex-direction: row;
199
- gap: var(--ds-spacing-6);
200
- }
package/select.css DELETED
@@ -1,106 +0,0 @@
1
- .ds-select__wrapper {
2
- position: relative;
3
- display: grid;
4
- flex: 0 1 auto;
5
-
6
- /* chevron for native select */
7
- &::after {
8
- content: '';
9
- position: absolute;
10
- background-color: var(--ds-color-neutral-text-default);
11
- pointer-events: none;
12
- top: 50%;
13
- right: var(--ds-spacing-2);
14
- transform: translateY(-50%);
15
- width: 1.5em;
16
- height: 1.5em;
17
- mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZvY3VzYWJsZT0nZmFsc2UnIHJvbGU9J2ltZyc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J001Ljk3IDkuNDdhLjc1Ljc1IDAgMCAxIDEuMDYgMEwxMiAxNC40NGw0Ljk3LTQuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNS41IDUuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC01LjUtNS41YS43NS43NSAwIDAgMSAwLTEuMDZaJyBmaWxsPSdjdXJyZW50Q29sb3InPjwvcGF0aD48L3N2Zz4=');
18
- mask-size: contain;
19
- }
20
- }
21
-
22
- .ds-select {
23
- position: relative;
24
- font-family: inherit;
25
- box-sizing: border-box;
26
- padding: 0 var(--ds-spacing-2);
27
- border: solid 1px var(--ds-color-neutral-border-default);
28
- border-radius: var(--ds-border-radius-md);
29
- background-color: var(--ds-color-neutral-background-default);
30
- color: var(--ds-color-neutral-text-default);
31
- appearance: none;
32
- }
33
-
34
- @media (hover: hover) and (pointer: fine) {
35
- .ds-select:not(:focus-visible, :disabled, [aria-disabled]):hover {
36
- border-color: var(--ds-color-accent-border-strong);
37
- box-shadow: inset 0 0 0 1px var(--ds-color-accent-border-strong);
38
- }
39
- }
40
-
41
- .ds-select.ds-select--multiple {
42
- background-image: none;
43
- }
44
-
45
- .ds-select--sm {
46
- padding: 0 var(--ds-spacing-2);
47
- padding-right: var(--ds-spacing-8);
48
- height: var(--ds-sizing-10);
49
- }
50
-
51
- .ds-select--md {
52
- padding: 0 var(--ds-spacing-3);
53
- padding-right: var(--ds-spacing-10);
54
- height: var(--ds-sizing-12);
55
- }
56
-
57
- .ds-select--lg {
58
- padding: 0 var(--ds-spacing-4);
59
- padding-right: var(--ds-spacing-12);
60
- height: var(--ds-sizing-14);
61
- }
62
-
63
- .ds-select--container {
64
- display: grid;
65
- gap: var(--ds-spacing-2);
66
- }
67
-
68
- .ds-select--container:has(.ds-select:disabled) {
69
- opacity: var(--ds-disabled-opacity);
70
- }
71
-
72
- .ds-select:disabled {
73
- cursor: not-allowed;
74
- }
75
-
76
- .ds-select--readonly .ds-select {
77
- background: var(--ds-color-neutral-background-subtle);
78
- border-color: var(--ds-color-neutral-border-strong);
79
- }
80
-
81
- .ds-select--error > .ds-select:not(:focus-visible) {
82
- border-color: var(--ds-color-danger-border-default);
83
- box-shadow: inset 0 0 0 1px var(--ds-color-danger-border-default);
84
- }
85
-
86
- .ds-select__readonly__icon {
87
- height: 1.2em;
88
- width: 1.2em;
89
- }
90
-
91
- .ds-select__error-message:empty {
92
- display: none;
93
- }
94
-
95
- .ds-select__label {
96
- min-width: min-content;
97
- display: inline-flex;
98
- flex-direction: row;
99
- gap: var(--ds-spacing-1);
100
- align-items: center;
101
- }
102
-
103
- .ds-select__description {
104
- color: var(--ds-color-neutral-text-subtle);
105
- margin-top: calc(var(--ds-spacing-2) * -1);
106
- }
package/switch.css DELETED
@@ -1,246 +0,0 @@
1
- .ds-switch {
2
- --dsc-switch--transition: 200ms;
3
- --dsc-switch-height: 1.75rem;
4
- --dsc-switch-focus-border-width: 3px;
5
- --dsc-switch-check_color: transparent;
6
- --dsc-switch-thumb-background-color: var(--ds-color-neutral-background-default);
7
-
8
- position: relative;
9
- }
10
-
11
- @media (prefers-reduced-motion) {
12
- .switch {
13
- --dsc-switch--transition: 0;
14
- }
15
- }
16
-
17
- .ds-switch__label {
18
- min-height: var(--ds-sizing-10);
19
- min-width: min-content;
20
- display: grid;
21
- grid-template-columns: auto 1fr;
22
- gap: var(--ds-spacing-1);
23
- align-items: center;
24
- cursor: pointer;
25
- }
26
-
27
- .ds-switch__track {
28
- position: relative;
29
- display: inline-block;
30
- pointer-events: none;
31
- width: var(--dsc-switch-width);
32
- height: var(--dsc-switch-height);
33
- margin: auto;
34
- overflow: visible;
35
- border-radius: var(--ds-border-radius-full);
36
- background-color: var(--ds-color-neutral-border-default);
37
- transition: background-color var(--dsc-switch--transition) ease;
38
- margin-right: var(--ds-spacing-1);
39
- }
40
-
41
- .ds-switch__description {
42
- padding-left: calc(var(--dsc-switch-width) + var(--ds-spacing-2));
43
- margin-top: var(--ds-spacing-1);
44
- color: var(--ds-color-neutral-text-subtle);
45
- width: fit-content;
46
- }
47
-
48
- .ds-switch__readonly__icon {
49
- height: 1.2em;
50
- width: 1.2em;
51
- }
52
-
53
- .ds-switch__label--right {
54
- grid-template-columns: 1fr auto;
55
- grid-auto-flow: dense;
56
- }
57
-
58
- .ds-switch__label--right .ds-switch__track {
59
- order: 1;
60
- margin-right: 0;
61
- }
62
-
63
- .ds-switch__label--right + .ds-switch__description {
64
- padding-left: 0;
65
- }
66
-
67
- .ds-switch__input {
68
- position: absolute;
69
- width: 2.75rem;
70
- height: 2.75rem;
71
- z-index: 1;
72
- opacity: 0;
73
- cursor: pointer;
74
- margin: 0;
75
- }
76
-
77
- .ds-switch--readonly > .ds-switch__label {
78
- grid-template-columns: auto min-content 1fr;
79
- }
80
-
81
- .ds-switch--readonly > .ds-switch__label:where(.ds-switch__label--right) {
82
- grid-template-columns: min-content 1fr auto;
83
- }
84
-
85
- .ds-switch--readonly > .ds-switch__input,
86
- .ds-switch--readonly > .ds-switch__label {
87
- cursor: default;
88
- }
89
-
90
- .ds-switch--readonly > .ds-switch__description {
91
- margin-left: var(--ds-spacing-1);
92
- }
93
-
94
- .ds-switch--sm,
95
- .ds-switch--sm .ds-switch__label {
96
- min-height: var(--ds-sizing-6);
97
- }
98
-
99
- .ds-switch--md,
100
- .ds-switch--md .ds-switch__label {
101
- min-height: var(--ds-sizing-7);
102
- }
103
-
104
- .ds-switch--lg,
105
- .ds-switch--lg .ds-switch__label {
106
- min-height: var(--ds-sizing-8);
107
- }
108
-
109
- .ds-switch--sm {
110
- --dsc-switch-height: var(--ds-sizing-6);
111
- --dsc-switch-width: var(--ds-sizing-11);
112
- }
113
-
114
- .ds-switch--sm .ds-switch__input {
115
- left: -0.25rem;
116
- top: -0.25rem;
117
- }
118
-
119
- .ds-switch--md {
120
- --dsc-switch-height: var(--ds-sizing-7);
121
- --dsc-switch-width: var(--ds-sizing-13);
122
- }
123
-
124
- .ds-switch--md .ds-switch__input {
125
- left: 0;
126
- top: 0;
127
- }
128
-
129
- .ds-switch--lg {
130
- --dsc-switch-height: var(--ds-sizing-8);
131
- --dsc-switch-width: var(--ds-sizing-15);
132
- }
133
-
134
- .ds-switch--lg .ds-switch__input {
135
- left: 0;
136
- top: 0.25rem;
137
- }
138
-
139
- .ds-switch__label:has(.ds-switch__track:only-child) {
140
- grid-template-columns: auto;
141
- }
142
-
143
- .ds-switch__label:has(.ds-switch__track:only-child) .ds-switch__track {
144
- margin-right: 0;
145
- }
146
-
147
- .ds-switch__input:disabled,
148
- .ds-switch:has(.ds-switch__input:disabled) > .ds-switch__label {
149
- cursor: not-allowed;
150
- }
151
-
152
- .ds-switch:has(.ds-switch__input:disabled) > .ds-switch__label,
153
- .ds-switch:has(.ds-switch__input:disabled) > .ds-switch__description {
154
- opacity: var(--ds-disabled-opacity);
155
- }
156
-
157
- /* .ds-switch__input:focus-visible + .ds-switch__label .ds-switch__track {
158
- outline: var(--dsc-switch-focus-border-width) solid var(--ds-color-focus-outer);
159
- outline-offset: var(--dsc-switch-focus-border-width);
160
- box-shadow: 0 0 0 var(--dsc-switch-focus-border-width) var(--ds-color-focus-inner);
161
- } */
162
-
163
- /**
164
- * Apply a focus outline on an element when it is focused with keyboard
165
- */
166
- .ds-switch:has(.ds-switch__input:focus-visible) {
167
- --dsc-focus-border-width: 3px;
168
-
169
- outline: var(--dsc-focus-border-width) solid var(--ds-color-focus-outer);
170
- outline-offset: var(--dsc-focus-border-width);
171
- box-shadow: 0 0 0 var(--dsc-focus-border-width) var(--ds-color-focus-inner);
172
- border-radius: var(--ds-border-radius-md);
173
- }
174
-
175
- .ds-switch__input:not([readonly]):checked + .ds-switch__label .ds-switch__track {
176
- background-color: var(--ds-color-accent-base-default);
177
- }
178
-
179
- .ds-switch__thumb {
180
- scale: 0.8;
181
- position: absolute;
182
- height: var(--dsc-switch-height);
183
- width: var(--dsc-switch-height);
184
- border-radius: var(--ds-border-radius-full);
185
- background-color: var(--dsc-switch-thumb-background-color);
186
- transition: transform var(--dsc-switch--transition) ease;
187
- }
188
-
189
- .ds-switch__input:checked + .ds-switch__label .ds-switch__track .ds-switch__thumb {
190
- --dsc-switch-check_color: var(--ds-color-accent-base-default);
191
- --dsc-switch-thumb-background-color: var(--ds-color-accent-contrast-default);
192
-
193
- transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height)) * 1.2));
194
- }
195
-
196
- .ds-switch__thumb::after {
197
- content: '';
198
- width: 100%;
199
- height: 100%;
200
- position: absolute;
201
- top: 50%;
202
- left: 50%;
203
- transform: translate(-50%, -50%);
204
- background-color: var(--dsc-switch-check_color);
205
- mask-image: url("data:image/svg+xml,%3Csvg viewBox='-3 -3 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.1339 2.86612C10.622 3.35427 10.622 4.14573 10.1339 4.63388L5.88388 8.88388C5.39573 9.37204 4.60427 9.37204 4.11612 8.88388L1.86612 6.63388C1.37796 6.14573 1.37796 5.35427 1.86612 4.86612C2.35427 4.37796 3.14573 4.37796 3.63388 4.86612L5 6.23223L8.36612 2.86612C8.85427 2.37796 9.64573 2.37796 10.1339 2.86612Z' fill='%23118849' /%3E%3C/svg%3E");
206
- transition: background-color var(--dsc-switch--transition) ease;
207
- }
208
-
209
- .ds-switch--readonly .ds-switch__input[readonly] + .ds-switch__label .ds-switch__track {
210
- box-shadow: inset 0 0 0 2px var(--ds-color-neutral-border-subtle);
211
- background-color: var(--ds-color-neutral-background-subtle);
212
- }
213
-
214
- .ds-switch--readonly .ds-switch__input[readonly] + .ds-switch__label .ds-switch__track > .ds-switch__thumb {
215
- background-color: var(--ds-color-neutral-border-strong);
216
- }
217
-
218
- .ds-switch--readonly .ds-switch__input[readonly]:checked + .ds-switch__label .ds-switch__track > .ds-switch__thumb {
219
- --dsc-switch-check_color: var(--ds-color-neutral-background-subtle);
220
-
221
- background-color: var(--ds-color-neutral-border-strong);
222
- }
223
-
224
- @media (hover: hover) and (pointer: fine) {
225
- .ds-switch__input:not([readonly], :disabled):hover + .ds-switch__label .ds-switch__track > .ds-switch__thumb {
226
- transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height)) * 0.2));
227
- }
228
-
229
- .ds-switch__input:not([readonly], :disabled):hover + .ds-switch__label {
230
- color: var(--ds-color-accent-text-subtle);
231
- }
232
-
233
- .ds-switch__input:not(:disabled, [readonly]):checked:hover + .ds-switch__label .ds-switch__track > .ds-switch__thumb {
234
- --dsc-switch-check_color: var(--ds-color-accent-base-hover);
235
-
236
- transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height))));
237
- }
238
-
239
- .ds-switch__input:not(:checked, :disabled, [readonly]):hover + .ds-switch__label .ds-switch__track {
240
- background-color: var(--ds-color-neutral-border-strong);
241
- }
242
-
243
- .ds-switch__input:not(:disabled, [readonly]):checked:hover + .ds-switch__label .ds-switch__track {
244
- background-color: var(--ds-color-accent-base-hover);
245
- }
246
- }
package/textarea.css DELETED
@@ -1,80 +0,0 @@
1
- .ds-textarea {
2
- display: grid;
3
- gap: var(--ds-spacing-2);
4
- }
5
-
6
- .ds-textarea__readonly-icon {
7
- height: 1.2em;
8
- width: 1.2em;
9
- }
10
-
11
- .ds-textarea__error-message:empty {
12
- display: none;
13
- }
14
-
15
- .ds-textarea__label {
16
- min-width: min-content;
17
- display: inline-flex;
18
- flex-direction: row;
19
- gap: var(--ds-spacing-1);
20
- align-items: center;
21
- }
22
-
23
- .ds-textarea__description {
24
- color: var(--ds-color-neutral-text-subtle);
25
- margin-top: calc(var(--ds-spacing-2) * -1);
26
- }
27
-
28
- .ds-textarea__input {
29
- font-family: inherit;
30
- position: relative;
31
- box-sizing: border-box;
32
- flex: 0 1 auto;
33
- min-height: 2.5em;
34
- width: 100%;
35
- appearance: none;
36
- padding: var(--ds-spacing-3);
37
- border: solid 1px var(--ds-color-neutral-border-default);
38
- border-radius: min(1rem, var(--ds-border-radius-md));
39
- resize: vertical;
40
- background: var(--ds-color-neutral-background-default);
41
- color: var(--ds-color-neutral-text-default);
42
- field-sizing: content;
43
- }
44
-
45
- .ds-textarea--sm .ds-textarea__input {
46
- padding: var(--ds-spacing-2);
47
- }
48
-
49
- .ds-textarea--md .ds-textarea__input {
50
- padding: var(--ds-spacing-3);
51
- }
52
-
53
- .ds-textarea--lg .ds-textarea__input {
54
- padding: var(--ds-spacing-4);
55
- }
56
-
57
- .ds-textarea:has(.ds-textarea__input:disabled) {
58
- opacity: var(--ds-disabled-opacity);
59
- }
60
-
61
- .ds-textarea__input:disabled {
62
- cursor: not-allowed;
63
- }
64
-
65
- .ds-textarea__input:read-only {
66
- background: var(--ds-color-neutral-background-subtle);
67
- border-color: var(--ds-color-neutral-border-strong);
68
- }
69
-
70
- .ds-textarea--error > .ds-textarea__input:not(:focus-visible) {
71
- border-color: var(--ds-color-danger-border-default);
72
- box-shadow: inset 0 0 0 1px var(--ds-color-danger-border-default);
73
- }
74
-
75
- @media (hover: hover) and (pointer: fine) {
76
- .ds-textarea__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
77
- border-color: var(--ds-color-accent-border-strong);
78
- box-shadow: inset 0 0 0 1px var(--ds-color-accent-border-strong);
79
- }
80
- }
package/utilities.css DELETED
@@ -1,41 +0,0 @@
1
- /**
2
- * Visually hide an element, but leave it available for screen readers
3
- */
4
- .ds-sr-only {
5
- border: 0;
6
- clip: rect(0 0 0 0);
7
- height: 1px;
8
- overflow: hidden;
9
- padding: 0;
10
- position: absolute;
11
- white-space: nowrap;
12
- width: 1px;
13
- }
14
-
15
- :root {
16
- --dsc-focus-border-width: 3px; /* Default focus border width */
17
- --dsc-focus-boxShadow: 0 0 0 var(--dsc-focus-border-width) var(--ds-color-focus-inner),
18
- 0 0 0 calc(var(--dsc-focus-border-width) * 2) var(--ds-color-focus-outer);
19
- }
20
-
21
- /**
22
- * Apply a focus outline on an element when it is focused with keyboard
23
- */
24
- .ds-focus:focus-visible {
25
- outline: none;
26
- box-shadow: var(--dsc-focus-boxShadow);
27
- }
28
-
29
- .ds-animate-height--openingOrClosing,
30
- .ds-animate-height--closed {
31
- overflow: hidden;
32
- }
33
-
34
- .ds-animate-height--open .ds-animate-height__content {
35
- height: auto;
36
- }
37
-
38
- .ds-animate-height--closed .ds-animate-height__content {
39
- height: 0;
40
- display: none;
41
- }