@digdir/designsystemet-css 0.6.1-alpha.1 → 0.7.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 +4 -4
  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/react-css-modules.css +1 -1
  33. package/dist/search.css +1 -0
  34. package/dist/skeleton.css +1 -0
  35. package/dist/spinner.css +1 -0
  36. package/dist/switch.css +1 -0
  37. package/dist/table.css +1 -0
  38. package/dist/tabs.css +1 -0
  39. package/dist/tag.css +1 -0
  40. package/dist/textarea.css +1 -0
  41. package/dist/textfield.css +1 -0
  42. package/dist/togglegroup.css +1 -0
  43. package/dist/tooltip.css +1 -0
  44. package/dist/utils.css +1 -1
  45. package/divider.css +18 -0
  46. package/dropdownmenu.css +46 -0
  47. package/error-message.css +43 -0
  48. package/error-summary.css +15 -0
  49. package/fieldset.css +41 -0
  50. package/heading.css +68 -0
  51. package/helptext.css +58 -0
  52. package/index.css +33 -1
  53. package/ingress.css +1 -1
  54. package/label.css +46 -0
  55. package/link.css +36 -0
  56. package/list.css +18 -0
  57. package/modal.css +106 -0
  58. package/native-select.css +92 -0
  59. package/package.json +3 -3
  60. package/pagination.css +69 -0
  61. package/paragraph.css +82 -0
  62. package/popover.css +79 -0
  63. package/radio.css +171 -0
  64. package/react-css-modules.css +0 -2711
  65. package/search.css +170 -0
  66. package/skeleton.css +59 -0
  67. package/spinner.css +75 -0
  68. package/switch.css +216 -0
  69. package/table.css +136 -0
  70. package/tabs.css +103 -0
  71. package/tag.css +72 -0
  72. package/textarea.css +80 -0
  73. package/textfield.css +150 -0
  74. package/togglegroup.css +24 -0
  75. package/tooltip.css +23 -0
  76. package/utils.css +16 -0
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
+ }
package/textfield.css ADDED
@@ -0,0 +1,150 @@
1
+ @layer fds.textfield {
2
+ .fds-textfield {
3
+ display: grid;
4
+ gap: var(--fds-spacing-2);
5
+ }
6
+
7
+ .fds-textfield__adornment {
8
+ color: var(--fds-semantic-border-neutral-default);
9
+ background: var(--fds-semantic-surface-neutral-subtle);
10
+ padding: 9px var(--fds-spacing-4);
11
+ border-radius: var(--fds-border_radius-medium);
12
+ border: solid 1px var(--fds-semantic-border-neutral-default);
13
+ box-sizing: border-box;
14
+ display: inline-block;
15
+ }
16
+
17
+ .fds-textfield__input {
18
+ font: inherit;
19
+ font-family: inherit;
20
+ position: relative;
21
+ box-sizing: border-box;
22
+ flex: 0 1 auto;
23
+ width: 100%;
24
+ appearance: none;
25
+ padding: 0 var(--fds-spacing-3);
26
+ border: solid 1px var(--fds-semantic-border-input-default);
27
+ border-radius: var(--fds-border_radius-medium);
28
+ }
29
+
30
+ .fds-textfield--disabled .fds-textfield__input {
31
+ cursor: not-allowed;
32
+ }
33
+
34
+ .fds-textfield--readonly .fds-textfield__input {
35
+ background: var(--fds-semantic-surface-neutral-subtle);
36
+ border-color: var(--fds-semantic-border-neutral-default);
37
+ }
38
+
39
+ .fds-textfield__field {
40
+ display: flex;
41
+ align-items: stretch;
42
+ border-radius: var(--fds-border_radius-medium);
43
+ }
44
+
45
+ .fds-textfield__field > *:first-child {
46
+ border-top-left-radius: var(--fds-border_radius-medium);
47
+ border-bottom-left-radius: var(--fds-border_radius-medium);
48
+ }
49
+
50
+ .fds-textfield__field > *:last-child {
51
+ border-top-right-radius: var(--fds-border_radius-medium);
52
+ border-bottom-right-radius: var(--fds-border_radius-medium);
53
+ }
54
+
55
+ .fds-textfield--small .fds-textfield__adornment {
56
+ padding: var(--fds-sizing-2) var(--fds-spacing-3);
57
+ }
58
+
59
+ .fds-textfield--medium .fds-textfield__adornment {
60
+ padding: 0.65rem var(--fds-spacing-4);
61
+ }
62
+
63
+ .fds-textfield--large .fds-textfield__adornment {
64
+ padding: 0.85rem var(--fds-spacing-5);
65
+ }
66
+
67
+ .fds-textfield--small .fds-textfield__field {
68
+ height: var(--fds-sizing-10);
69
+ }
70
+
71
+ .fds-textfield--medium .fds-textfield__field {
72
+ height: var(--fds-sizing-12);
73
+ }
74
+
75
+ .fds-textfield--large .fds-textfield__field {
76
+ height: var(--fds-sizing-14);
77
+ }
78
+
79
+ .fds-textfield--small .fds-textfield__input {
80
+ padding: 0 var(--fds-spacing-2);
81
+ }
82
+
83
+ .fds-textfield--medium .fds-textfield__input {
84
+ padding: 0 var(--fds-spacing-3);
85
+ }
86
+
87
+ .fds-textfield--large .fds-textfield__input {
88
+ padding: 0 var(--fds-spacing-4);
89
+ }
90
+
91
+ .fds-textfield__label {
92
+ min-width: min-content;
93
+ display: inline-flex;
94
+ flex-direction: row;
95
+ gap: var(--fds-spacing-1);
96
+ align-items: center;
97
+ }
98
+
99
+ .fds-textfield__description {
100
+ color: var(--fds-semantic-text-neutral-subtle);
101
+ margin-top: calc(var(--fds-spacing-2) * -1);
102
+ }
103
+
104
+ .fds-textfield--disabled {
105
+ opacity: var(--fds-opacity-disabled);
106
+ }
107
+
108
+ .fds-textfield--error .fds-textfield__input:not(:focus-visible) {
109
+ border-color: var(--fds-semantic-border-danger-default);
110
+ box-shadow: inset 0 0 0 1px var(--fds-semantic-border-danger-default);
111
+ }
112
+
113
+ @media (hover: hover) and (pointer: fine) {
114
+ .fds-textfield__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
115
+ border-color: var(--fds-semantic-border-input-hover);
116
+ box-shadow: inset 0 0 0 1px var(--fds-semantic-border-input-hover);
117
+ }
118
+ }
119
+
120
+ .fds-textfield__input--with-prefix {
121
+ border-top-left-radius: 0;
122
+ border-bottom-left-radius: 0;
123
+ }
124
+
125
+ .fds-textfield__input--with-suffix {
126
+ border-top-right-radius: 0;
127
+ border-bottom-right-radius: 0;
128
+ }
129
+
130
+ .fds-textfield__prefix {
131
+ border-right: 0;
132
+ border-top-right-radius: 0;
133
+ border-bottom-right-radius: 0;
134
+ }
135
+
136
+ .fds-textfield__suffix {
137
+ border-left: 0;
138
+ border-top-left-radius: 0;
139
+ border-bottom-left-radius: 0;
140
+ }
141
+
142
+ .fds-textfield__readonly__icon {
143
+ height: 1.2em;
144
+ width: 1.2em;
145
+ }
146
+
147
+ .fds-textfield__error-message:empty {
148
+ display: none;
149
+ }
150
+ }
@@ -0,0 +1,24 @@
1
+ @layer fds.togglegroup {
2
+ .fds-togglegroup {
3
+ background-color: var(--fds-semantic-background-default);
4
+ border: var(--fds-semantic-border-neutral-default) solid var(--fds-border_width-default);
5
+ border-radius: var(--fds-border_radius-large);
6
+ width: fit-content;
7
+ }
8
+
9
+ .fds-togglegroup__content {
10
+ display: inline-grid;
11
+ gap: var(--fds-spacing-1);
12
+ grid-auto-columns: 1fr;
13
+ grid-auto-flow: column;
14
+ padding: var(--fds-spacing-1);
15
+ }
16
+
17
+ .fds-togglegroup__input {
18
+ display: none;
19
+ }
20
+
21
+ .fds-togglegroup__item:focus-visible {
22
+ z-index: 1;
23
+ }
24
+ }
package/tooltip.css ADDED
@@ -0,0 +1,23 @@
1
+ @layer fds.tooltip {
2
+ .fds-tooltip {
3
+ background: var(--fds-semantic-surface-neutral-inverted);
4
+ padding: var(--fds-spacing-1) var(--fds-spacing-2);
5
+ color: var(--fds-semantic-text-neutral-on_inverted);
6
+ border-radius: var(--fds-border_radius-medium);
7
+ font: var(--fds-typography-paragraph-xsmall);
8
+ font-family: inherit;
9
+ }
10
+
11
+ .fds-tooltip--inverted {
12
+ background: var(--fds-semantic-surface-neutral-subtle);
13
+ color: var(--fds-semantic-text-neutral-default);
14
+ }
15
+
16
+ .fds-tooltip__arrow {
17
+ fill: var(--fds-semantic-surface-neutral-inverted);
18
+ }
19
+
20
+ .fds-tooltip--inverted .fds-tooltip__arrow {
21
+ fill: var(--fds-semantic-surface-neutral-subtle);
22
+ }
23
+ }
package/utils.css CHANGED
@@ -23,4 +23,20 @@
23
23
  outline-offset: var(--fds-focus-border-width);
24
24
  box-shadow: 0 0 0 var(--fds-focus-border-width) var(--fds-semantic-border-focus-boxshadow);
25
25
  }
26
+
27
+ @layer animate-height {
28
+ .fds-animate-height--openingOrClosing,
29
+ .fds-animate-height--closed {
30
+ overflow: hidden;
31
+ }
32
+
33
+ .fds-animate-height--open .fds-animate-height__content {
34
+ height: auto;
35
+ }
36
+
37
+ .fds-animate-height--closed .fds-animate-height__content {
38
+ height: 0;
39
+ display: none;
40
+ }
41
+ }
26
42
  }