@digdir/designsystemet-css 0.10.0-alpha.1 → 0.11.0-alpha.2

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 (78) hide show
  1. package/accordion.css +79 -84
  2. package/alert.css +11 -11
  3. package/box.css +18 -18
  4. package/button.css +112 -131
  5. package/card.css +74 -58
  6. package/checkbox.css +64 -41
  7. package/chip.css +28 -28
  8. package/combobox.css +59 -59
  9. package/dist/accordion.css +1 -1
  10. package/dist/alert.css +1 -1
  11. package/dist/box.css +1 -1
  12. package/dist/button.css +1 -1
  13. package/dist/card.css +1 -1
  14. package/dist/checkbox.css +1 -1
  15. package/dist/chip.css +1 -1
  16. package/dist/combobox.css +1 -1
  17. package/dist/divider.css +1 -1
  18. package/dist/dropdownmenu.css +1 -1
  19. package/dist/error-message.css +1 -1
  20. package/dist/error-summary.css +1 -1
  21. package/dist/fieldset.css +1 -1
  22. package/dist/heading.css +1 -1
  23. package/dist/helptext.css +1 -1
  24. package/dist/index.css +1 -1
  25. package/dist/ingress.css +1 -1
  26. package/dist/label.css +1 -1
  27. package/dist/link.css +1 -1
  28. package/dist/list.css +1 -1
  29. package/dist/modal.css +1 -1
  30. package/dist/native-select.css +1 -1
  31. package/dist/pagination.css +1 -1
  32. package/dist/paragraph.css +1 -1
  33. package/dist/popover.css +1 -1
  34. package/dist/radio.css +1 -1
  35. package/dist/search.css +1 -1
  36. package/dist/skeleton.css +1 -1
  37. package/dist/skiplink.css +1 -1
  38. package/dist/spinner.css +1 -1
  39. package/dist/switch.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/textarea.css +1 -1
  44. package/dist/textfield.css +1 -1
  45. package/dist/togglegroup.css +1 -1
  46. package/dist/tooltip.css +1 -1
  47. package/dist/utils.css +1 -1
  48. package/divider.css +4 -4
  49. package/dropdownmenu.css +9 -8
  50. package/error-message.css +8 -8
  51. package/error-summary.css +4 -4
  52. package/fieldset.css +9 -9
  53. package/heading.css +9 -9
  54. package/helptext.css +10 -10
  55. package/ingress.css +6 -6
  56. package/label.css +9 -9
  57. package/link.css +40 -12
  58. package/list.css +5 -5
  59. package/modal.css +15 -13
  60. package/native-select.css +17 -17
  61. package/package.json +2 -2
  62. package/pagination.css +13 -13
  63. package/paragraph.css +14 -14
  64. package/popover.css +14 -14
  65. package/radio.css +49 -36
  66. package/search.css +27 -27
  67. package/skeleton.css +10 -10
  68. package/skiplink.css +4 -4
  69. package/spinner.css +11 -11
  70. package/switch.css +56 -44
  71. package/table.css +25 -25
  72. package/tabs.css +20 -19
  73. package/tag.css +12 -12
  74. package/textarea.css +16 -14
  75. package/textfield.css +28 -28
  76. package/togglegroup.css +4 -4
  77. package/tooltip.css +2 -2
  78. package/utils.css +6 -6
package/radio.css CHANGED
@@ -1,22 +1,22 @@
1
1
  @layer ds.radio {
2
- .fds-radio {
2
+ .ds-radio {
3
3
  --dsc-radio-size: var(--ds-spacing-5);
4
4
  --dsc-radio-focus-border-width: 3px;
5
5
  --dsc-radio-background: var(--ds-color-neutral-background-default);
6
- --dsc-radio-border-color: var(--ds-color-neutral-border-strong);
6
+ --dsc-radio-border-color: var(--ds-color-neutral-border-default);
7
7
  --dsc-radio-border__hover--size: calc(var(--ds-spacing-3) / 2);
8
8
  --dsc-radio-border__hover: 0 0 0 var(--dsc-radio-border__hover--size) var(--ds-color-accent-surface-hover);
9
9
 
10
10
  display: grid;
11
11
  }
12
12
 
13
- .fds-radio:has(.fds-radio__label) {
13
+ .ds-radio:has(.ds-radio__label) {
14
14
  grid-template-columns: var(--dsc-radio-size) auto;
15
15
  gap: var(--ds-spacing-2);
16
16
  }
17
17
 
18
18
  /* Radio */
19
- .fds-radio__input {
19
+ .ds-radio__input {
20
20
  position: relative;
21
21
  width: var(--dsc-radio-size);
22
22
  height: var(--dsc-radio-size);
@@ -31,7 +31,7 @@
31
31
  border-radius: 50%;
32
32
  }
33
33
 
34
- .fds-radio__input::before {
34
+ .ds-radio__input::before {
35
35
  position: absolute;
36
36
  content: '';
37
37
  display: block;
@@ -44,8 +44,8 @@
44
44
  border-radius: var(--ds-border-radius-md);
45
45
  }
46
46
 
47
- .fds-radio__label {
48
- min-height: var(--ds-sizing-10);
47
+ .ds-radio__label {
48
+ /* min-height: var(--ds-sizing-10); */
49
49
  min-width: min-content;
50
50
  display: inline-flex;
51
51
  flex-direction: row;
@@ -54,72 +54,78 @@
54
54
  cursor: pointer;
55
55
  }
56
56
 
57
- .fds-radio__description {
57
+ .ds-radio__description {
58
58
  margin-top: calc(var(--ds-spacing-3) * -1);
59
59
  color: var(--ds-color-neutral-text-subtle);
60
60
  grid-column: 2;
61
61
  }
62
62
 
63
- .fds-radio--readonly > .fds-radio__input,
64
- .fds-radio--readonly > .fds-radio__label,
65
- .fds-radio--readonly > .fds-radio__input::before {
63
+ .ds-radio--readonly > .ds-radio__input,
64
+ .ds-radio--readonly > .ds-radio__label,
65
+ .ds-radio--readonly > .ds-radio__input::before {
66
66
  cursor: default;
67
67
  }
68
68
 
69
- .fds-radio:has(.fds-radio__input:disabled) > .fds-radio__description {
69
+ .ds-radio:has(.ds-radio__input:disabled) > .ds-radio__description {
70
70
  opacity: var(--ds-disabled-opacity);
71
71
  }
72
72
 
73
- .fds-radio__input:disabled,
74
- .fds-radio__input:disabled::before,
75
- .fds-radio:has(.fds-radio__input:disabled) > .fds-radio__label {
73
+ .ds-radio__input:disabled,
74
+ .ds-radio__input:disabled::before,
75
+ .ds-radio:has(.ds-radio__input:disabled) > .ds-radio__label {
76
76
  cursor: not-allowed;
77
- opacity: var(--fds-opacity-disabled);
77
+ opacity: var(--ds-disabled-opacity);
78
78
  }
79
79
 
80
- .fds-radio__input:focus-visible {
81
- outline-offset: var(--ds-spacing-1);
82
- outline: var(--dsc-radio-focus-border-width) solid var(--ds-focus-outer);
80
+ .ds-radio__input:focus-visible {
83
81
  box-shadow:
84
82
  inset 0 0 0 2px var(--dsc-radio-border-color),
85
- inset 0 0 0 var(--dsc-radio-focus-border-width) var(--ds-focus-inner),
86
83
  inset 0 0 0 6px var(--dsc-radio-background);
87
84
  }
88
85
 
89
- .fds-radio__input:checked {
86
+ .ds-radio:has(.ds-radio__input:focus-visible) {
87
+ --dsc-focus-border-width: 3px;
88
+
89
+ outline: var(--dsc-focus-border-width) solid var(--ds-focus-outer);
90
+ outline-offset: var(--dsc-focus-border-width);
91
+ box-shadow: 0 0 0 var(--dsc-focus-border-width) var(--ds-focus-inner);
92
+ border-radius: var(--ds-border-radius-md);
93
+ }
94
+
95
+ .ds-radio__input:checked {
90
96
  --dsc-radio-border-color: var(--ds-color-accent-base-default);
91
97
 
92
98
  background: var(--dsc-radio-border-color);
93
99
  }
94
100
 
95
- .fds-radio--readonly > .fds-radio__input {
101
+ .ds-radio--readonly > .ds-radio__input {
96
102
  --dsc-radio-border-color: var(--ds-color-neutral-border-subtle);
97
103
  --dsc-radio-background: var(--ds-color-neutral-background-subtle);
98
104
  }
99
105
 
100
- .fds-radio__input:checked:not(:focus-visible) {
106
+ .ds-radio__input:checked:not(:focus-visible) {
101
107
  box-shadow:
102
108
  inset 0 0 0 2px var(--dsc-radio-border-color),
103
109
  inset 0 0 0 6px var(--dsc-radio-background);
104
110
  }
105
111
 
106
- .fds-radio--readonly > .fds-radio__input:checked {
112
+ .ds-radio--readonly > .ds-radio__input:checked {
107
113
  background: var(--ds-color-neutral-border-strong);
108
114
  }
109
115
 
110
- .fds-radio--error > .fds-radio__input:not(:disabled, :focus-visible) {
116
+ .ds-radio--error > .ds-radio__input:not(:disabled, :focus-visible) {
111
117
  --dsc-radio-border-color: var(--ds-color-danger-border-default);
112
118
  }
113
119
 
114
120
  /* Only use hover for non-touch devices to prevent sticky-hovering
115
121
  "input:not(:read-only)" does not work so using ".container:not(.readonly) >" instead */
116
122
  @media (hover: hover) and (pointer: fine) {
117
- .fds-radio:not(.fds-radio--readonly) > .fds-radio__label:hover:not(:disabled),
118
- .fds-radio:not(.fds-radio--readonly) > .fds-radio__input:hover:not(:disabled) + .fds-radio__label {
123
+ .ds-radio:not(.ds-radio--readonly) > .ds-radio__label:hover:not(:disabled),
124
+ .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:not(:disabled) + .ds-radio__label {
119
125
  color: var(--ds-color-accent-text-subtle);
120
126
  }
121
127
 
122
- .fds-radio:not(.fds-radio--readonly) > .fds-radio__input:hover:not(:checked, :disabled) {
128
+ .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:not(:checked, :disabled, :focus-visible) {
123
129
  --dsc-radio-border-color: var(--ds-color-accent-border-strong);
124
130
 
125
131
  box-shadow:
@@ -127,7 +133,7 @@
127
133
  inset 0 0 0 2px var(--dsc-radio-border-color);
128
134
  }
129
135
 
130
- .fds-radio:not(.fds-radio--readonly) > .fds-radio__input:hover:checked:not(:disabled) {
136
+ .ds-radio:not(.ds-radio--readonly) > .ds-radio__input:hover:checked:not(:disabled, :focus-visible) {
131
137
  box-shadow:
132
138
  var(--dsc-radio-border__hover),
133
139
  inset 0 0 0 2px var(--dsc-radio-border-color),
@@ -137,26 +143,33 @@
137
143
 
138
144
  /** Sizing */
139
145
 
140
- .fds-radio--sm {
146
+ .ds-radio--sm {
141
147
  --dsc-radio-size: var(--ds-sizing-5);
142
148
 
143
- min-height: var(--ds-sizing-10);
149
+ /* min-height: var(--ds-sizing-10); */
144
150
  }
145
151
 
146
- .fds-radio--md {
152
+ .ds-radio--md {
147
153
  --dsc-radio-size: var(--ds-sizing-6);
148
154
  --dsc-radio-border__hover--size: var(--ds-spacing-1);
149
155
 
150
- min-height: var(--ds-sizing-11);
156
+ /* min-height: var(--ds-sizing-11); */
151
157
  }
152
158
 
153
- .fds-radio--lg {
159
+ .ds-radio--lg {
154
160
  --dsc-radio-size: var(--ds-sizing-7);
155
161
 
156
- min-height: var(--ds-sizing-12);
162
+ /* min-height: var(--ds-sizing-12); */
163
+ }
164
+
165
+ .ds-radio-group {
166
+ display: flex;
167
+ flex-direction: column;
168
+ gap: var(--ds-spacing-3);
169
+ width: fit-content;
157
170
  }
158
171
 
159
- .fds-radio-group--horizontal {
172
+ .ds-radio-group--horizontal {
160
173
  display: flex;
161
174
  flex-direction: row;
162
175
  gap: var(--ds-spacing-6);
package/search.css CHANGED
@@ -1,27 +1,27 @@
1
1
  @layer ds.search {
2
- .fds-search {
2
+ .ds-search {
3
3
  display: inline-grid;
4
4
  width: 100%;
5
5
  gap: var(--ds-spacing-2);
6
6
  }
7
7
 
8
- .fds-search--sm {
8
+ .ds-search--sm {
9
9
  --dsc-search-button-clear-size: var(--ds-sizing-5);
10
10
  }
11
11
 
12
- .fds-search--md {
12
+ .ds-search--md {
13
13
  --dsc-search-button-clear-size: var(--ds-sizing-6);
14
14
  }
15
15
 
16
- .fds-search--lg {
16
+ .ds-search--lg {
17
17
  --dsc-search-button-clear-size: var(--ds-sizing-8);
18
18
  }
19
19
 
20
- .fds-search__error:empty {
20
+ .ds-search__error:empty {
21
21
  display: none;
22
22
  }
23
23
 
24
- .fds-search__label {
24
+ .ds-search__label {
25
25
  min-width: min-content;
26
26
  display: inline-flex;
27
27
  flex-direction: row;
@@ -29,7 +29,7 @@
29
29
  align-items: center;
30
30
  }
31
31
 
32
- .fds-search__field {
32
+ .ds-search__field {
33
33
  display: flex;
34
34
  width: 100%;
35
35
  align-items: stretch;
@@ -37,7 +37,7 @@
37
37
  position: relative;
38
38
  }
39
39
 
40
- .fds-search__icon {
40
+ .ds-search__icon {
41
41
  position: absolute;
42
42
  height: 100%;
43
43
  z-index: 2;
@@ -51,7 +51,7 @@
51
51
  appearance: none;
52
52
  }
53
53
 
54
- .fds-search__input {
54
+ .ds-search__input {
55
55
  font: inherit;
56
56
  font-family: inherit;
57
57
  position: relative;
@@ -67,37 +67,37 @@
67
67
  border-radius: var(--ds-border-radius-md);
68
68
  }
69
69
 
70
- .fds-search__input.fds-search__input--with-search-button {
70
+ .ds-search__input.ds-search__input--with-search-button {
71
71
  border-top-right-radius: 0;
72
72
  border-bottom-right-radius: 0;
73
73
  }
74
74
 
75
- .fds-search__input:disabled {
75
+ .ds-search__input:disabled {
76
76
  cursor: not-allowed;
77
77
  }
78
78
 
79
- .fds-search__input[type='search']:focus-visible {
79
+ .ds-search__input[type='search']:focus-visible {
80
80
  z-index: 1;
81
81
  }
82
82
 
83
- .fds-search:has(.fds-search__input:disabled) {
83
+ .ds-search:has(.ds-search__input:disabled) {
84
84
  opacity: var(--ds-disabled-opacity);
85
85
  }
86
86
 
87
- .fds-search__search-button {
87
+ .ds-search__search-button {
88
88
  border-top-left-radius: 0;
89
89
  border-bottom-left-radius: 0;
90
90
  }
91
91
 
92
- .fds-search__search-button:not(:focus-visible) {
92
+ .ds-search__search-button:not(:focus-visible) {
93
93
  border-left: 0;
94
94
  }
95
95
 
96
- .fds-search__search-button:focus-visible {
96
+ .ds-search__search-button:focus-visible {
97
97
  z-index: 1;
98
98
  }
99
99
 
100
- .fds-search__clear-button {
100
+ .ds-search__clear-button {
101
101
  color: var(--ds-color-neutral-text-default);
102
102
  display: inline-flex;
103
103
  align-items: center;
@@ -117,7 +117,7 @@
117
117
  z-index: 2;
118
118
  }
119
119
 
120
- .fds-search--sm .fds-search__input {
120
+ .ds-search--sm .ds-search__input {
121
121
  --dsc-search-button-clear-size: var(--ds-sizing-4);
122
122
 
123
123
  height: var(--ds-sizing-10);
@@ -125,11 +125,11 @@
125
125
  padding-right: 2.5em;
126
126
  }
127
127
 
128
- .fds-search--sm .fds-search__icon {
128
+ .ds-search--sm .ds-search__icon {
129
129
  left: var(--ds-spacing-3);
130
130
  }
131
131
 
132
- .fds-search--md .fds-search__input {
132
+ .ds-search--md .ds-search__input {
133
133
  --dsc-search-button-clear-size: var(--ds-sizing-6);
134
134
 
135
135
  height: var(--ds-sizing-12);
@@ -137,11 +137,11 @@
137
137
  padding-right: 2.2em;
138
138
  }
139
139
 
140
- .fds-search--md .fds-search__icon {
140
+ .ds-search--md .ds-search__icon {
141
141
  left: var(--ds-spacing-4);
142
142
  }
143
143
 
144
- .fds-search--lg .fds-search__input {
144
+ .ds-search--lg .ds-search__input {
145
145
  --dsc-search-button-clear-size: var(--ds-sizing-12);
146
146
 
147
147
  height: var(--ds-sizing-14);
@@ -149,26 +149,26 @@
149
149
  padding-right: 2em;
150
150
  }
151
151
 
152
- .fds-search--lg .fds-search__icon {
152
+ .ds-search--lg .ds-search__icon {
153
153
  left: var(--ds-spacing-5);
154
154
  }
155
155
 
156
- .fds-search__input.fds-search__input--simple {
156
+ .ds-search__input.ds-search__input--simple {
157
157
  padding-left: 2.4em;
158
158
  }
159
159
 
160
- .fds-search__error-message > .input:not(:focus-visible) {
160
+ .ds-search__error-message > .input:not(:focus-visible) {
161
161
  border-color: var(--ds-color-danger-border-default);
162
162
  box-shadow: inset 0 0 0 1px var(--ds-color-danger-border-default);
163
163
  }
164
164
 
165
165
  @media (hover: hover) and (pointer: fine) {
166
- .fds-search__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
166
+ .ds-search__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
167
167
  border-color: var(--ds-color-accent-border-strong);
168
168
  box-shadow: inset 0 0 0 1px var(--ds-color-accent-border-strong);
169
169
  }
170
170
 
171
- .fds-search__clear-button:not(:focus-visible, :disabled, [aria-disabled]):hover {
171
+ .ds-search__clear-button:not(:focus-visible, :disabled, [aria-disabled]):hover {
172
172
  background: var(--ds-color-accent-surface-hover);
173
173
  }
174
174
  }
package/skeleton.css CHANGED
@@ -1,25 +1,25 @@
1
1
  @layer ds.skeleton {
2
- .fds-skeleton {
2
+ .ds-skeleton {
3
3
  --dsc-skeleton-animation-duration: 0.8s;
4
4
 
5
5
  height: 1.3em;
6
6
  pointer-events: none;
7
7
  user-select: none;
8
8
  background-color: var(--ds-color-neutral-surface-default);
9
- animation: fds-skeleton-opacity-fade var(--dsc-skeleton-animation-duration) linear infinite alternate;
9
+ animation: ds-skeleton-opacity-fade var(--dsc-skeleton-animation-duration) linear infinite alternate;
10
10
  }
11
11
 
12
- .fds-skeleton--circle {
12
+ .ds-skeleton--circle {
13
13
  width: 1.3em;
14
14
  border-radius: 50%;
15
15
  }
16
16
 
17
- .fds-skeleton--rectangle {
17
+ .ds-skeleton--rectangle {
18
18
  width: 100%;
19
19
  border-radius: 0.2em;
20
20
  }
21
21
 
22
- .fds-skeleton--text {
22
+ .ds-skeleton--text {
23
23
  width: 100%;
24
24
  height: auto;
25
25
  transform-origin: 0 55%;
@@ -27,27 +27,27 @@
27
27
  border-radius: 0.55em;
28
28
  }
29
29
 
30
- .fds-skeleton--text:empty::before {
30
+ .ds-skeleton--text:empty::before {
31
31
  content: '\00a0';
32
32
  }
33
33
 
34
- .fds-skeleton--has-children {
34
+ .ds-skeleton--has-children {
35
35
  width: fit-content;
36
36
  height: fit-content;
37
37
  color: transparent !important;
38
38
  }
39
39
 
40
- .fds-skeleton--has-children > * {
40
+ .ds-skeleton--has-children > * {
41
41
  visibility: hidden;
42
42
  }
43
43
 
44
44
  @media (prefers-reduced-motion: reduce) {
45
- .fds-skeleton {
45
+ .ds-skeleton {
46
46
  --dsc-skeleton-animation-duration: 1.6s;
47
47
  }
48
48
  }
49
49
 
50
- @keyframes fds-skeleton-opacity-fade {
50
+ @keyframes ds-skeleton-opacity-fade {
51
51
  0% {
52
52
  opacity: 1;
53
53
  }
package/skiplink.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ds.skiplink {
2
- .fds-skiplink:focus {
2
+ .ds-skiplink:focus {
3
3
  display: block;
4
4
  outline: 0;
5
5
  position: static;
@@ -16,7 +16,7 @@
16
16
  background: var(--ds-color-neutral-backround-default);
17
17
  }
18
18
 
19
- .fds-skiplink__content {
19
+ .ds-skiplink__content {
20
20
  --dsc-skiplink-padding: var(--ds-spacing-2) var(--ds-spacing-4);
21
21
  --dsc-skiplink-border-width: 3px;
22
22
 
@@ -24,8 +24,8 @@
24
24
  align-items: center;
25
25
  border: var(--ds-border-width-default) solid transparent;
26
26
  background-color: transparent;
27
- color: var(--ds-color-accent-base-hover);
28
- border-color: var(--ds-color-accent-base-hover);
27
+ color: var(--ds-color-accent-text-subtle);
28
+ border-color: var(--ds-color-accent-border-strong);
29
29
  width: fit-content;
30
30
  padding: var(--dsc-skiplink-padding);
31
31
  box-sizing: border-box;
package/spinner.css CHANGED
@@ -1,13 +1,13 @@
1
1
  @layer ds.spinner {
2
- .fds-spinner {
3
- animation: fds-spinner-rotate-animation linear infinite;
2
+ .ds-spinner {
3
+ animation: ds-spinner-rotate-animation linear infinite;
4
4
  animation-duration: 2s;
5
5
  }
6
6
 
7
- .fds-spinner__circle {
7
+ .ds-spinner__circle {
8
8
  stroke-dasharray: 1px, 200px;
9
9
  transform-origin: center;
10
- animation: fds-spinner-stroke-animation ease-in-out infinite;
10
+ animation: ds-spinner-stroke-animation ease-in-out infinite;
11
11
  animation-duration: 2s;
12
12
  }
13
13
 
@@ -15,28 +15,28 @@
15
15
  but don't remove it since it is not decorative.
16
16
  */
17
17
  @media (prefers-reduced-motion: reduce) {
18
- .fds-spinner {
18
+ .ds-spinner {
19
19
  animation-duration: 6s;
20
20
  }
21
21
 
22
- .fds-spinner__circle {
22
+ .ds-spinner__circle {
23
23
  animation-duration: 6s;
24
24
  }
25
25
  }
26
26
 
27
- .fds-spinner--neutral .fds-spinner__circle {
27
+ .ds-spinner--neutral .ds-spinner__circle {
28
28
  stroke: var(--ds-color-neutral-border-default);
29
29
  }
30
30
 
31
- .fds-spinner--accent .fds-spinner__circle {
31
+ .ds-spinner--accent .ds-spinner__circle {
32
32
  stroke: var(--ds-color-accent-base-default);
33
33
  }
34
34
 
35
- .fds-spinner__background {
35
+ .ds-spinner__background {
36
36
  stroke: var(--ds-color-neutral-surface-default);
37
37
  }
38
38
 
39
- @keyframes fds-spinner-rotate-animation {
39
+ @keyframes ds-spinner-rotate-animation {
40
40
  0% {
41
41
  transform: rotate(0deg);
42
42
  }
@@ -46,7 +46,7 @@
46
46
  }
47
47
  }
48
48
 
49
- @keyframes fds-spinner-stroke-animation {
49
+ @keyframes ds-spinner-stroke-animation {
50
50
  0% {
51
51
  stroke-dasharray: 1px, 200px;
52
52
  stroke-dashoffset: 0;