@digdir/designsystemet-css 0.6.1-alpha.1 → 0.8.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 (76) hide show
  1. package/LICENSE +1 -1
  2. package/box.css +73 -0
  3. package/button.css +9 -9
  4. package/card.css +157 -0
  5. package/checkbox.css +175 -0
  6. package/chip.css +173 -0
  7. package/combobox.css +344 -0
  8. package/dist/box.css +1 -0
  9. package/dist/button.css +1 -1
  10. package/dist/card.css +1 -0
  11. package/dist/checkbox.css +1 -0
  12. package/dist/chip.css +1 -0
  13. package/dist/combobox.css +1 -0
  14. package/dist/divider.css +1 -0
  15. package/dist/dropdownmenu.css +1 -0
  16. package/dist/error-message.css +1 -0
  17. package/dist/error-summary.css +1 -0
  18. package/dist/fieldset.css +1 -0
  19. package/dist/heading.css +1 -0
  20. package/dist/helptext.css +1 -0
  21. package/dist/index.css +1 -1
  22. package/dist/ingress.css +1 -1
  23. package/dist/label.css +1 -0
  24. package/dist/link.css +1 -0
  25. package/dist/list.css +1 -0
  26. package/dist/modal.css +1 -0
  27. package/dist/native-select.css +1 -0
  28. package/dist/pagination.css +1 -0
  29. package/dist/paragraph.css +1 -0
  30. package/dist/popover.css +1 -0
  31. package/dist/radio.css +1 -0
  32. package/dist/search.css +1 -0
  33. package/dist/skeleton.css +1 -0
  34. package/dist/spinner.css +1 -0
  35. package/dist/switch.css +1 -0
  36. package/dist/table.css +1 -0
  37. package/dist/tabs.css +1 -0
  38. package/dist/tag.css +1 -0
  39. package/dist/textarea.css +1 -0
  40. package/dist/textfield.css +1 -0
  41. package/dist/togglegroup.css +1 -0
  42. package/dist/tooltip.css +1 -0
  43. package/dist/utils.css +1 -1
  44. package/divider.css +18 -0
  45. package/dropdownmenu.css +46 -0
  46. package/error-message.css +43 -0
  47. package/error-summary.css +15 -0
  48. package/fieldset.css +41 -0
  49. package/heading.css +68 -0
  50. package/helptext.css +58 -0
  51. package/index.css +33 -2
  52. package/ingress.css +1 -1
  53. package/label.css +46 -0
  54. package/link.css +36 -0
  55. package/list.css +18 -0
  56. package/modal.css +106 -0
  57. package/native-select.css +92 -0
  58. package/package.json +2 -5
  59. package/pagination.css +69 -0
  60. package/paragraph.css +82 -0
  61. package/popover.css +79 -0
  62. package/radio.css +171 -0
  63. package/search.css +170 -0
  64. package/skeleton.css +59 -0
  65. package/spinner.css +75 -0
  66. package/switch.css +216 -0
  67. package/table.css +136 -0
  68. package/tabs.css +103 -0
  69. package/tag.css +72 -0
  70. package/textarea.css +80 -0
  71. package/textfield.css +150 -0
  72. package/togglegroup.css +24 -0
  73. package/tooltip.css +23 -0
  74. package/utils.css +16 -0
  75. package/dist/react-css-modules.css +0 -1
  76. package/react-css-modules.css +0 -3099
package/switch.css ADDED
@@ -0,0 +1,216 @@
1
+ @layer fds.switch {
2
+ .fds-switch {
3
+ --fds-switch--transition: 200ms;
4
+ --fds-switch-height: 1.75rem;
5
+ --fds-switch-focus-border-width: 3px;
6
+
7
+ position: relative;
8
+ }
9
+
10
+ @media (prefers-reduced-motion) {
11
+ .switch {
12
+ --fds-switch--transition: 0;
13
+ }
14
+ }
15
+
16
+ .fds-switch__label {
17
+ min-height: var(--fds-sizing-10);
18
+ min-width: min-content;
19
+ display: grid;
20
+ grid-template-columns: auto 1fr;
21
+ gap: var(--fds-spacing-1);
22
+ align-items: center;
23
+ cursor: pointer;
24
+ }
25
+
26
+ .fds-switch__track {
27
+ position: relative;
28
+ display: inline-block;
29
+ pointer-events: none;
30
+ width: var(--fds-switch-width);
31
+ height: var(--fds-switch-height);
32
+ margin: auto;
33
+ overflow: visible;
34
+ border-radius: var(--fds-border_radius-full);
35
+ background-color: var(--fds-semantic-surface-neutral-dark);
36
+ transition: background-color var(--fds-switch--transition) ease;
37
+ margin-right: var(--fds-spacing-1);
38
+ }
39
+
40
+ .fds-switch__description {
41
+ padding-left: calc(var(--fds-switch-width) + var(--fds-spacing-2));
42
+ margin-top: calc(var(--fds-spacing-2) * -1);
43
+ color: var(--fds-semantic-text-neutral-subtle);
44
+ }
45
+
46
+ .fds-switch__readonly__icon {
47
+ height: 1.2em;
48
+ width: 1.2em;
49
+ }
50
+
51
+ .fds-switch__label--right {
52
+ grid-template-columns: 1fr auto;
53
+ grid-auto-flow: dense;
54
+ }
55
+
56
+ .fds-switch__label--right .fds-switch__track {
57
+ order: 1;
58
+ margin-right: 0;
59
+ }
60
+
61
+ .fds-switch__label--right + .fds-switch__description {
62
+ padding-left: 0;
63
+ }
64
+
65
+ .fds-switch__input {
66
+ position: absolute;
67
+ width: 2.75rem;
68
+ height: 2.75rem;
69
+ z-index: 1;
70
+ opacity: 0;
71
+ cursor: pointer;
72
+ margin: 0;
73
+ }
74
+
75
+ .fds-switch--readonly > .fds-switch__label {
76
+ grid-template-columns: auto min-content 1fr;
77
+ }
78
+
79
+ .fds-switch--readonly > .fds-switch__label:where(.fds-switch__label--right) {
80
+ grid-template-columns: min-content 1fr auto;
81
+ }
82
+
83
+ .fds-switch--readonly > .fds-switch__input,
84
+ .fds-switch--readonly > .fds-switch__label {
85
+ cursor: default;
86
+ }
87
+
88
+ .fds-switch--disabled > .fds-switch__input,
89
+ .fds-switch--disabled > .fds-switch__label,
90
+ .fds-switch--disabled > .fds-switch__track {
91
+ cursor: not-allowed;
92
+ }
93
+
94
+ .fds-switch--disabled > .fds-switch__label,
95
+ .fds-switch--disabled > .fds-switch__track,
96
+ .fds-switch--disabled > .fds-switch__description {
97
+ opacity: var(--fds-opacity-disabled);
98
+ }
99
+
100
+ .fds-switch--readonly > .fds-switch__description {
101
+ margin-left: var(--fds-spacing-1);
102
+ }
103
+
104
+ .fds-switch--small,
105
+ .fds-switch--small .fds-switch__label {
106
+ min-height: var(--fds-sizing-6);
107
+ }
108
+
109
+ .fds-switch--medium,
110
+ .fds-switch--medium .fds-switch__label {
111
+ min-height: var(--fds-sizing-7);
112
+ }
113
+
114
+ .fds-switch--large,
115
+ .fds-switch--large .fds-switch__label {
116
+ min-height: var(--fds-sizing-8);
117
+ }
118
+
119
+ .fds-switch--small {
120
+ --fds-switch-height: var(--fds-sizing-6);
121
+ --fds-switch-width: var(--fds-sizing-11);
122
+ }
123
+
124
+ .fds-switch--small .fds-switch__input {
125
+ left: -0.25rem;
126
+ top: -0.25rem;
127
+ }
128
+
129
+ .fds-switch--medium {
130
+ --fds-switch-height: var(--fds-sizing-7);
131
+ --fds-switch-width: var(--fds-sizing-13);
132
+ }
133
+
134
+ .fds-switch--medium .fds-switch__input {
135
+ left: 0;
136
+ top: 0;
137
+ }
138
+
139
+ .fds-switch--large {
140
+ --fds-switch-height: var(--fds-sizing-8);
141
+ --fds-switch-width: var(--fds-sizing-15);
142
+ }
143
+
144
+ .fds-switch--large .fds-switch__input {
145
+ left: 0;
146
+ top: 0.25rem;
147
+ }
148
+
149
+ .fds-switch__label:has(.fds-switch__track:only-child) {
150
+ grid-template-columns: auto;
151
+ }
152
+
153
+ .fds-switch__label:has(.fds-switch__track:only-child) .fds-switch__track {
154
+ margin-right: 0;
155
+ }
156
+
157
+ .fds-switch__input:focus-visible + .fds-switch__label .fds-switch__track {
158
+ outline: var(--fds-switch-focus-border-width) solid var(--fds-semantic-border-focus-outline);
159
+ box-shadow: inset 0 0 0 var(--fds-switch-focus-border-width) var(--fds-semantic-border-focus-boxshadow);
160
+ }
161
+
162
+ .fds-switch__input:not([readonly]):checked + .fds-switch__label .fds-switch__track {
163
+ background-color: var(--fds-semantic-surface-success-default);
164
+ }
165
+
166
+ .fds-switch__thumb {
167
+ scale: 0.8;
168
+ position: absolute;
169
+ height: var(--fds-switch-height);
170
+ width: var(--fds-switch-height);
171
+ border-radius: var(--fds-border_radius-full);
172
+ background-color: var(--fds-semantic-background-default);
173
+ transition: transform var(--fds-switch--transition) ease;
174
+ }
175
+
176
+ .fds-switch__input:checked + .fds-switch__label .fds-switch__track .fds-switch__thumb {
177
+ transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height)) * 1.2));
178
+ background-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");
179
+ }
180
+
181
+ .fds-switch--readonly .fds-switch__input[readonly] + .fds-switch__label .fds-switch__track {
182
+ box-shadow: inset 0 0 0 2px var(--fds-semantic-border-neutral-subtle);
183
+ background-color: var(--fds-semantic-background-subtle);
184
+ }
185
+
186
+ .fds-switch--readonly .fds-switch__input[readonly] + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
187
+ background-color: var(--fds-semantic-border-neutral-default);
188
+ }
189
+
190
+ .fds-switch--readonly .fds-switch__input[readonly]:checked + .fds-switch__label .fds-switch__track .fds-switch__thumb {
191
+ background-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='%23f4f5f6' /%3E%3C/svg%3E");
192
+ }
193
+
194
+ @media (hover: hover) and (pointer: fine) {
195
+ .fds-switch__input:not([readonly], :disabled):hover + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
196
+ transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height)) * 0.2));
197
+ }
198
+
199
+ .fds-switch__input:not([readonly], :disabled):hover + .fds-switch__label {
200
+ color: var(--fds-semantic-border-input-hover);
201
+ }
202
+
203
+ .fds-switch__input:not(:disabled, [readonly]):checked:hover + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
204
+ transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height))));
205
+ background-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='%230c6536' /%3E%3C/svg%3E");
206
+ }
207
+
208
+ .fds-switch__input:not(:checked, :disabled, [readonly]):hover + .fds-switch__label .fds-switch__track {
209
+ background-color: var(--fds-semantic-surface-neutral-dark-hover);
210
+ }
211
+
212
+ .fds-switch__input:not(:disabled, [readonly]):checked:hover + .fds-switch__label .fds-switch__track {
213
+ background-color: var(--fds-semantic-surface-success-hover);
214
+ }
215
+ }
216
+ }
package/table.css ADDED
@@ -0,0 +1,136 @@
1
+ @layer fds.table {
2
+ .fds-table {
3
+ position: relative;
4
+ border-collapse: separate;
5
+ border-spacing: 0;
6
+ text-align: left;
7
+
8
+ --table-padding: 0;
9
+ --border-radius: var(--fds-border_radius-medium);
10
+ }
11
+
12
+ .fds-table--sticky-header {
13
+ overflow: auto;
14
+ }
15
+
16
+ .fds-table--border .fds-table__row:last-of-type td {
17
+ border-bottom: 0;
18
+ }
19
+
20
+ .fds-table--small {
21
+ --table-padding: var(--fds-spacing-1) var(--fds-spacing-3);
22
+ }
23
+
24
+ .fds-table--medium {
25
+ --table-padding: var(--fds-spacing-2) var(--fds-spacing-3);
26
+ }
27
+
28
+ .fds-table--large {
29
+ --table-padding: var(--fds-spacing-3) var(--fds-spacing-3);
30
+ }
31
+
32
+ .fds-table__head {
33
+ z-index: 0;
34
+ box-sizing: border-box;
35
+ font: inherit;
36
+ font-family: inherit;
37
+ border-spacing: 0;
38
+ font-weight: 500;
39
+ border-bottom: 2px solid var(--fds-semantic-border-divider-default);
40
+ }
41
+
42
+ .fds-table__header__cell {
43
+ padding: var(--table-padding);
44
+ font: inherit;
45
+ font-family: inherit;
46
+ background-color: var(--fds-semantic-surface-neutral-default);
47
+ border-spacing: 0;
48
+ border-bottom: 2px solid var(--fds-semantic-border-divider-default);
49
+ }
50
+
51
+ .fds-table--sticky-header .fds-table__head .fds-table__header__cell {
52
+ position: sticky;
53
+ top: 0;
54
+ z-index: 1;
55
+ }
56
+
57
+ .fds-table__header__cell--sortable {
58
+ padding: 0;
59
+ }
60
+
61
+ .fds-table__header__cell--sortable button {
62
+ position: relative;
63
+ width: 100%;
64
+ border: none;
65
+ font: inherit;
66
+ font-family: inherit;
67
+ display: flex;
68
+ cursor: pointer;
69
+ gap: var(--fds-spacing-1);
70
+ align-items: center;
71
+ padding: var(--table-padding);
72
+ background-color: transparent;
73
+ z-index: 2;
74
+ }
75
+
76
+ .fds-table__header__cell--sorted button {
77
+ background-color: var(--fds-semantic-surface-neutral-subtle);
78
+ }
79
+
80
+ .fds-table__header__cell--sortable button:focus {
81
+ z-index: 3;
82
+ }
83
+
84
+ .fds-table__header__cell--sortable button svg {
85
+ font-size: 1.2em;
86
+ }
87
+
88
+ .fds-table__cell {
89
+ padding: var(--table-padding);
90
+ border-bottom: 1px solid var(--fds-semantic-border-divider-default);
91
+ background-color: var(--fds-semantic-surface-neutral-default);
92
+ }
93
+
94
+ .fds-table--zebra .fds-table__row {
95
+ border-bottom: 0;
96
+ }
97
+
98
+ .fds-table--zebra tr:nth-child(even):not(:hover) .fds-table__cell {
99
+ background-color: var(--fds-semantic-background-subtle);
100
+ }
101
+
102
+ .fds-table--border {
103
+ border-radius: var(--border-radius);
104
+ border: 1px solid var(--fds-semantic-border-neutral-default);
105
+ }
106
+
107
+ .fds-table--border .fds-table__head .fds-table__header__cell:first-of-type {
108
+ border-top-left-radius: var(--border-radius);
109
+ overflow: hidden;
110
+ }
111
+
112
+ .fds-table--border .fds-table__head .fds-table__header__cell:last-of-type {
113
+ border-top-right-radius: var(--border-radius);
114
+ overflow: hidden;
115
+ }
116
+
117
+ .fds-table--border .fds-table__row:last-of-type .fds-table__cell:first-of-type {
118
+ border-bottom-left-radius: var(--border-radius);
119
+ overflow: hidden;
120
+ }
121
+
122
+ .fds-table--border .fds-table__row:last-of-type .fds-table__cell:last-of-type {
123
+ border-bottom-right-radius: var(--border-radius);
124
+ overflow: hidden;
125
+ }
126
+
127
+ @media (hover: hover) and (pointer: fine) {
128
+ .fds-table__row:hover .fds-table__cell {
129
+ background-color: var(--fds-semantic-surface-neutral-subtle-hover);
130
+ }
131
+
132
+ .fds-table__header__cell--sortable button:hover {
133
+ background-color: var(--fds-semantic-surface-neutral-subtle-hover);
134
+ }
135
+ }
136
+ }
package/tabs.css ADDED
@@ -0,0 +1,103 @@
1
+ @layer fds.tabs {
2
+ .fds-tabs__tab {
3
+ --fds-tabs__tab-bottom-border-color: transparent;
4
+
5
+ display: flex;
6
+ flex-direction: row;
7
+ box-sizing: border-box;
8
+ gap: var(--fds-spacing-1);
9
+ justify-content: center;
10
+ text-align: center;
11
+ align-items: center;
12
+ padding: var(--fds-spacing-2) var(--fds-spacing-3);
13
+ border: none;
14
+ border-radius: 0;
15
+ background-color: transparent;
16
+ cursor: pointer;
17
+ color: var(--fds-semantic-text-neutral-subtle);
18
+ position: relative;
19
+ }
20
+
21
+ .fds-tabs__content {
22
+ padding: var(--fds-spacing-5);
23
+ }
24
+
25
+ .fds-tabs--small .fds-tabs__tab,
26
+ .fds-tabs--small .fds-tabs__content {
27
+ font: var(--fds-typography-paragraph-short-small);
28
+ }
29
+
30
+ .fds-tabs--medium .fds-tabs__tab,
31
+ .fds-tabs--medium .fds-tabs__content {
32
+ font: var(--fds-typography-paragraph-short-medium);
33
+ }
34
+
35
+ .fds-tabs--large .fds-tabs__tab,
36
+ .fds-tabs--large .fds-tabs__content {
37
+ font: var(--fds-typography-paragraph-short-large);
38
+ }
39
+
40
+ .fds-tabs--small .fds-tabs__tab {
41
+ padding: var(--fds-spacing-2) var(--fds-spacing-4);
42
+ }
43
+
44
+ .fds-tabs--medium .fds-tabs__tab {
45
+ padding: var(--fds-spacing-3) var(--fds-spacing-5);
46
+ }
47
+
48
+ .fds-tabs--large .fds-tabs__tab {
49
+ padding: var(--fds-spacing-4) var(--fds-spacing-6);
50
+ }
51
+
52
+ .fds-tabs--small .fds-tabs__content {
53
+ padding: var(--fds-spacing-4);
54
+ }
55
+
56
+ .fds-tabs--medium .fds-tabs__content {
57
+ padding: var(--fds-spacing-5);
58
+ }
59
+
60
+ .fds-tabs--large .fds-tabs__content {
61
+ padding: var(--fds-spacing-6);
62
+ }
63
+
64
+ @media (hover: hover) and (pointer: fine) {
65
+ .fds-tabs__tab:hover {
66
+ --fds-tabs__tab-bottom-border-color: var(--fds-semantic-border-neutral-subtle);
67
+
68
+ color: var(--fds-semantic-text-neutral-default);
69
+ }
70
+ }
71
+
72
+ .fds-tabs__tab--active {
73
+ --fds-tabs__tab-bottom-border-color: var(--fds-semantic-border-action-default);
74
+
75
+ color: var(--fds-semantic-text-action-default);
76
+ }
77
+
78
+ .fds-tabs__tab:focus-visible {
79
+ --fds-tabs__tab-bottom-border-color: var(--fds-semantic-text-neutral-default);
80
+
81
+ background: var(--fds-semantic-border-focus-outline);
82
+ color: var(--fds-semantic-text-neutral-default);
83
+ outline: none;
84
+ }
85
+
86
+ .fds-tabs__tab::after {
87
+ content: '';
88
+ display: block;
89
+ height: 3px;
90
+ width: 100%;
91
+ border-radius: var(--fds-border_radius-full);
92
+ background-color: var(--fds-tabs__tab-bottom-border-color);
93
+ position: absolute;
94
+ bottom: 0;
95
+ left: 0;
96
+ }
97
+
98
+ .fds-tabs__tablist {
99
+ display: flex;
100
+ flex-direction: row;
101
+ border-bottom: var(--fds-border_width-default) solid var(--fds-semantic-border-neutral-subtle);
102
+ }
103
+ }
package/tag.css ADDED
@@ -0,0 +1,72 @@
1
+ @layer fds.tag {
2
+ .fds-tag {
3
+ --fds-tag-background: var(--fds-semantic-surface-neutral-subtle);
4
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
5
+
6
+ color: var(--fds-tag-color);
7
+ padding: 0 var(--fds-spacing-2);
8
+ min-height: var(--fds-sizing-8);
9
+ background-color: var(--fds-tag-background);
10
+ border-radius: var(--fds-border_radius-small);
11
+ display: flex;
12
+ align-items: center;
13
+ box-sizing: border-box;
14
+ word-break: break-word;
15
+ width: max-content;
16
+ }
17
+
18
+ .fds-tag--small {
19
+ padding: 0 var(--fds-spacing-2);
20
+ min-height: var(--fds-sizing-7);
21
+ }
22
+
23
+ .fds-tag--medium {
24
+ padding: 0 var(--fds-spacing-2);
25
+ min-height: var(--fds-sizing-8);
26
+ }
27
+
28
+ .fds-tag--large {
29
+ padding: 0 var(--fds-spacing-3);
30
+ min-height: var(--fds-sizing-9);
31
+ }
32
+
33
+ .fds-tag--neutral {
34
+ --fds-tag-background: var(--fds-semantic-surface-neutral-subtle);
35
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
36
+ }
37
+
38
+ .fds-tag--info {
39
+ --fds-tag-background: var(--fds-semantic-surface-info-subtle);
40
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
41
+ }
42
+
43
+ .fds-tag--success {
44
+ --fds-tag-background: var(--fds-semantic-surface-success-subtle);
45
+ --fds-tag-color: var(--fds-semantic-text-success-on_success_subtle);
46
+ }
47
+
48
+ .fds-tag--warning {
49
+ --fds-tag-background: var(--fds-semantic-surface-warning-default);
50
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
51
+ }
52
+
53
+ .fds-tag--danger {
54
+ --fds-tag-background: var(--fds-semantic-surface-danger-subtle);
55
+ --fds-tag-color: var(--fds-semantic-text-danger-on_danger_subtle);
56
+ }
57
+
58
+ .fds-tag--first {
59
+ --fds-tag-background: var(--fds-semantic-surface-first-light);
60
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
61
+ }
62
+
63
+ .fds-tag--second {
64
+ --fds-tag-background: var(--fds-semantic-surface-second-light);
65
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
66
+ }
67
+
68
+ .fds-tag--third {
69
+ --fds-tag-background: var(--fds-semantic-surface-third-light);
70
+ --fds-tag-color: var(--fds-semantic-text-neutral-default);
71
+ }
72
+ }
package/textarea.css ADDED
@@ -0,0 +1,80 @@
1
+ @layer fds.textarea {
2
+ .fds-textarea {
3
+ display: grid;
4
+ gap: var(--fds-spacing-2);
5
+ }
6
+
7
+ .fds-textarea__readonly__icon {
8
+ height: 1.2em;
9
+ width: 1.2em;
10
+ }
11
+
12
+ .fds-textarea__error-message:empty {
13
+ display: none;
14
+ }
15
+
16
+ .fds-textarea__label {
17
+ min-width: min-content;
18
+ display: inline-flex;
19
+ flex-direction: row;
20
+ gap: var(--fds-spacing-1);
21
+ align-items: center;
22
+ }
23
+
24
+ .fds-textarea__description {
25
+ color: var(--fds-semantic-text-neutral-subtle);
26
+ margin-top: calc(var(--fds-spacing-2) * -1);
27
+ }
28
+
29
+ .fds-textarea__input {
30
+ font: inherit;
31
+ font-family: inherit;
32
+ position: relative;
33
+ box-sizing: border-box;
34
+ flex: 0 1 auto;
35
+ min-height: 2.5em;
36
+ width: 100%;
37
+ appearance: none;
38
+ padding: var(--fds-spacing-3);
39
+ border: solid 1px var(--fds-semantic-border-input-default);
40
+ border-radius: var(--fds-border_radius-medium);
41
+ resize: vertical;
42
+ }
43
+
44
+ .fds-textarea--small .fds-textarea__input {
45
+ padding: var(--fds-spacing-2);
46
+ }
47
+
48
+ .fds-textarea--medium .fds-textarea__input {
49
+ padding: var(--fds-spacing-3);
50
+ }
51
+
52
+ .fds-textarea--large .fds-textarea__input {
53
+ padding: var(--fds-spacing-4);
54
+ }
55
+
56
+ .fds-textarea--disabled {
57
+ opacity: var(--fds-opacity-disabled);
58
+ }
59
+
60
+ .fds-textarea--disabled .fds-textarea__input {
61
+ cursor: not-allowed;
62
+ }
63
+
64
+ .fds-textarea--readonly .fds-textarea__input {
65
+ background: var(--fds-semantic-surface-neutral-subtle);
66
+ border-color: var(--fds-semantic-border-neutral-default);
67
+ }
68
+
69
+ .fds-textarea--error > .fds-textarea__input:not(:focus-visible) {
70
+ border-color: var(--fds-semantic-border-danger-default);
71
+ box-shadow: inset 0 0 0 1px var(--fds-semantic-border-danger-default);
72
+ }
73
+
74
+ @media (hover: hover) and (pointer: fine) {
75
+ .fds-textarea__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
76
+ border-color: var(--fds-semantic-border-input-hover);
77
+ box-shadow: inset 0 0 0 1px var(--fds-semantic-border-input-hover);
78
+ }
79
+ }
80
+ }