@digdir/designsystemet-css 0.11.0-next.12 → 0.100.51-next.51

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 (110) hide show
  1. package/README.md +4 -3
  2. package/dist/src/alert.css +1 -0
  3. package/dist/src/avatar.css +1 -0
  4. package/dist/src/badge.css +1 -0
  5. package/dist/src/base.css +1 -0
  6. package/dist/src/breadcrumbs.css +1 -0
  7. package/dist/src/button.css +1 -0
  8. package/dist/src/card.css +1 -0
  9. package/dist/src/chip.css +1 -0
  10. package/dist/src/combobox.css +1 -0
  11. package/dist/src/details.css +1 -0
  12. package/dist/src/dialog.css +1 -0
  13. package/dist/src/divider.css +1 -0
  14. package/dist/src/dropdown.css +1 -0
  15. package/dist/src/error-summary.css +1 -0
  16. package/dist/src/field.css +1 -0
  17. package/dist/src/fieldset.css +1 -0
  18. package/dist/src/heading.css +1 -0
  19. package/dist/src/index.css +1 -0
  20. package/dist/src/input.css +1 -0
  21. package/dist/src/label.css +1 -0
  22. package/dist/src/link.css +1 -0
  23. package/dist/src/list.css +1 -0
  24. package/dist/src/pagination.css +1 -0
  25. package/dist/src/paragraph.css +1 -0
  26. package/dist/src/popover.css +1 -0
  27. package/dist/src/search.css +1 -0
  28. package/dist/src/skeleton.css +1 -0
  29. package/dist/src/skiplink.css +1 -0
  30. package/dist/src/spinner.css +1 -0
  31. package/dist/src/suggestion.css +1 -0
  32. package/dist/src/table.css +1 -0
  33. package/dist/src/tabs.css +1 -0
  34. package/dist/src/tag.css +1 -0
  35. package/dist/src/togglegroup.css +1 -0
  36. package/dist/src/tooltip.css +1 -0
  37. package/dist/src/validation-message.css +1 -0
  38. package/package.json +14 -10
  39. package/accordion.css +0 -139
  40. package/alert.css +0 -69
  41. package/badge.css +0 -147
  42. package/box.css +0 -71
  43. package/breadcrumbs.css +0 -72
  44. package/button.css +0 -202
  45. package/card.css +0 -190
  46. package/checkbox.css +0 -223
  47. package/chip.css +0 -171
  48. package/combobox.css +0 -298
  49. package/dist/accordion.css +0 -1
  50. package/dist/alert.css +0 -1
  51. package/dist/badge.css +0 -1
  52. package/dist/box.css +0 -1
  53. package/dist/breadcrumbs.css +0 -1
  54. package/dist/button.css +0 -1
  55. package/dist/card.css +0 -1
  56. package/dist/checkbox.css +0 -1
  57. package/dist/chip.css +0 -1
  58. package/dist/combobox.css +0 -1
  59. package/dist/divider.css +0 -1
  60. package/dist/dropdownmenu.css +0 -1
  61. package/dist/error-summary.css +0 -1
  62. package/dist/fieldset.css +0 -1
  63. package/dist/helptext.css +0 -1
  64. package/dist/index.css +0 -1
  65. package/dist/link.css +0 -1
  66. package/dist/list.css +0 -1
  67. package/dist/modal.css +0 -1
  68. package/dist/native-select.css +0 -1
  69. package/dist/pagination.css +0 -1
  70. package/dist/popover.css +0 -1
  71. package/dist/radio.css +0 -1
  72. package/dist/search.css +0 -1
  73. package/dist/skeleton.css +0 -1
  74. package/dist/skiplink.css +0 -1
  75. package/dist/spinner.css +0 -1
  76. package/dist/switch.css +0 -1
  77. package/dist/table.css +0 -1
  78. package/dist/tabs.css +0 -1
  79. package/dist/tag.css +0 -1
  80. package/dist/textarea.css +0 -1
  81. package/dist/textfield.css +0 -1
  82. package/dist/togglegroup.css +0 -1
  83. package/dist/tooltip.css +0 -1
  84. package/dist/utilities.css +0 -1
  85. package/divider.css +0 -17
  86. package/dropdownmenu.css +0 -56
  87. package/error-summary.css +0 -23
  88. package/fieldset.css +0 -43
  89. package/helptext.css +0 -60
  90. package/index.css +0 -46
  91. package/link.css +0 -58
  92. package/list.css +0 -22
  93. package/modal.css +0 -109
  94. package/native-select.css +0 -106
  95. package/pagination.css +0 -67
  96. package/popover.css +0 -84
  97. package/radio.css +0 -200
  98. package/search.css +0 -170
  99. package/skeleton.css +0 -59
  100. package/skiplink.css +0 -28
  101. package/spinner.css +0 -69
  102. package/switch.css +0 -242
  103. package/table.css +0 -143
  104. package/tabs.css +0 -81
  105. package/tag.css +0 -70
  106. package/textarea.css +0 -79
  107. package/textfield.css +0 -151
  108. package/togglegroup.css +0 -27
  109. package/tooltip.css +0 -15
  110. package/utilities.css +0 -38
package/link.css DELETED
@@ -1,58 +0,0 @@
1
- .ds-link {
2
- --dsc-link-color: var(--ds-color-accent-text-subtle);
3
- --dsc-link-color-hover: var(--ds-color-accent-text-default);
4
- --dsc-link-color-active: var(--ds-color-accent-text-default);
5
- --dsc-link-color-active-background: var(--ds-color-accent-surface-default);
6
- --dsc-link-color-visited: var(--ds-global-purple-12);
7
- --dsc-link-color-focus: var(--ds-color-focus-inner);
8
- --dsc-link-color-focus-background: var(--ds-color-focus-outer);
9
-
10
- position: relative;
11
- color: var(--dsc-link-color);
12
- cursor: pointer;
13
- text-decoration: underline;
14
- text-decoration-thickness: max(1px, 0.0625rem);
15
- text-underline-offset: max(5px, 0.25rem);
16
- display: inline-flex;
17
- align-items: center;
18
- gap: var(--ds-spacing-1);
19
- }
20
-
21
- .ds-link--accent {
22
- --dsc-link-color: var(--ds-color-accent-text-subtle);
23
- --dsc-link-color-hover: var(--ds-color-accent-text-default);
24
- --dsc-link-color-active: var(--ds-color-accent-text-default);
25
- --dsc-link-color-active-background: var(--ds-color-accent-surface-default);
26
- --dsc-link-color-visited: var(--ds-global-purple-12);
27
- }
28
-
29
- .ds-link--neutral {
30
- --dsc-link-color: var(--ds-color-neutral-text-default);
31
- --dsc-link-color-hover: var(--ds-color-neutral-text-subtle);
32
- --dsc-link-color-active: var(--ds-color-neutral-text-subtle);
33
- --dsc-link-color-active-background: var(--ds-color-neutral-surface-default);
34
- --dsc-link-color-visited: var(--ds-global-purple-12);
35
- }
36
-
37
- .ds-link:visited {
38
- color: var(--dsc-link-color-visited);
39
- text-decoration: none;
40
- }
41
-
42
- .ds-link:hover {
43
- color: var(--dsc-link-color-hover);
44
- text-decoration-thickness: max(2px, 0.125rem, 0.12em);
45
- }
46
-
47
- .ds-link:focus-visible {
48
- color: var(--dsc-link-color-focus);
49
- background: var(--dsc-link-color-focus-background);
50
- outline: none;
51
- }
52
-
53
- .ds-link:active {
54
- color: var(--dsc-link-color-active);
55
- background: var(--dsc-link-color-active-background);
56
- border-radius: min(0.25rem, var(--ds-border-radius-md));
57
- outline: none;
58
- }
package/list.css DELETED
@@ -1,22 +0,0 @@
1
- .ds-list {
2
- --dsc-list-padding-left: var(--ds-spacing-6);
3
-
4
- padding-left: var(--dsc-list-padding-left);
5
- }
6
-
7
- .ds-list--sm {
8
- --dsc-list-padding-left: var(--ds-spacing-4);
9
- }
10
-
11
- .ds-list--md,
12
- .ds-list--lg {
13
- --dsc-list-padding-left: var(--ds-spacing-6);
14
- }
15
-
16
- .ds-list__item {
17
- margin-bottom: var(--ds-spacing-2);
18
- }
19
-
20
- .ds-list__item > .ds-list {
21
- margin-top: var(--ds-spacing-2);
22
- }
package/modal.css DELETED
@@ -1,109 +0,0 @@
1
- .ds-modal {
2
- --dsc-modal-max-width: 650px;
3
- --dsc-modal-background: var(--ds-color-neutral-background-default);
4
- --dsc-modal-color: var(--ds-color-neutral-text-default);
5
- --dsc-modal-backdrop-background: rgb(0 0 0 / 0.5);
6
- --dsc-modal-header-padding: var(--ds-spacing-6) var(--ds-spacing-18) var(--ds-spacing-2) var(--ds-spacing-6);
7
- --dsc-modal-footer-padding: var(--ds-spacing-3) var(--ds-spacing-6) var(--ds-spacing-6) var(--ds-spacing-6);
8
- --dsc-modal-content-padding: var(--ds-spacing-2) var(--ds-spacing-6);
9
- --dsc-modal-content-max-height: 80vh;
10
-
11
- padding: 0;
12
- width: 100%;
13
- max-width: var(--dsc-modal-max-width);
14
- border: none;
15
- border-radius: min(1rem, var(--ds-border-radius-lg));
16
- box-shadow: var(--ds-shadow-xl);
17
- background-color: var(--dsc-modal-background);
18
- color: var(--dsc-modal-color);
19
- }
20
-
21
- .ds-modal::backdrop {
22
- background-color: var(--dsc-modal-backdrop-background);
23
- animation: fade-in 300ms ease-in-out;
24
- }
25
-
26
- .ds-modal[open] {
27
- animation:
28
- slide-in 300ms ease-in-out,
29
- fade-in 300ms ease-in-out;
30
- }
31
-
32
- .ds-modal > hr {
33
- margin: var(--ds-spacing-3) 0 !important;
34
- border-color: var(--ds-color-neutral-border-subtle);
35
- }
36
-
37
- .ds-modal--lock-scroll {
38
- overflow: hidden;
39
- }
40
-
41
- @media (max-width: 650px) {
42
- .ds-modal {
43
- min-width: 100%;
44
- max-width: 100%;
45
- border-radius: 0;
46
- }
47
- }
48
-
49
- @media (prefers-reduced-motion: reduce) {
50
- .ds-modal[open] {
51
- animation: none;
52
- }
53
-
54
- .ds-modal::backdrop {
55
- animation: none;
56
- }
57
- }
58
-
59
- .ds-modal__header {
60
- display: flex;
61
- justify-content: space-between;
62
- flex-direction: column;
63
- padding: var(--dsc-modal-header-padding);
64
- gap: var(--ds-spacing-1);
65
- color: var(--dsc-modal-color);
66
- }
67
-
68
- .ds-modal__header--no-button {
69
- --dsc-modal-header-padding: var(--ds-spacing-6) var(--ds-spacing-6) var(--ds-spacing-2) var(--ds-spacing-6);
70
- }
71
-
72
- .ds-modal__header__button {
73
- position: absolute;
74
- top: var(--ds-spacing-3);
75
- right: var(--ds-spacing-3);
76
- }
77
-
78
- .ds-modal__footer {
79
- display: flex;
80
- align-items: center;
81
- gap: var(--ds-spacing-4);
82
- padding: var(--dsc-modal-footer-padding);
83
- }
84
-
85
- .ds-modal__content {
86
- padding: var(--dsc-modal-content-padding);
87
- max-height: var(--dsc-modal-content-max-height);
88
- overflow-y: auto;
89
- }
90
-
91
- @keyframes slide-in {
92
- 0% {
93
- transform: translateY(50px);
94
- }
95
-
96
- 100% {
97
- transform: translateY(0);
98
- }
99
- }
100
-
101
- @keyframes fade-in {
102
- 0% {
103
- opacity: 0;
104
- }
105
-
106
- 100% {
107
- opacity: 1;
108
- }
109
- }
package/native-select.css DELETED
@@ -1,106 +0,0 @@
1
- .ds-native-select__wrapper {
2
- position: relative;
3
- display: grid;
4
- flex: 0 1 auto;
5
- }
6
-
7
- /* chevron for native select */
8
- .ds-native-select__wrapper::after {
9
- content: '';
10
- position: absolute;
11
- background-color: var(--ds-color-neutral-text-default);
12
- pointer-events: none;
13
- top: 50%;
14
- right: var(--ds-spacing-2);
15
- transform: translateY(-50%);
16
- width: 1.5em;
17
- height: 1.5em;
18
- mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZvY3VzYWJsZT0nZmFsc2UnIHJvbGU9J2ltZyc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J001Ljk3IDkuNDdhLjc1Ljc1IDAgMCAxIDEuMDYgMEwxMiAxNC40NGw0Ljk3LTQuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNS41IDUuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC01LjUtNS41YS43NS43NSAwIDAgMSAwLTEuMDZaJyBmaWxsPSdjdXJyZW50Q29sb3InPjwvcGF0aD48L3N2Zz4=');
19
- mask-size: contain;
20
- }
21
-
22
- .ds-native-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-native-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-native-select.ds-native-select--multiple {
42
- background-image: none;
43
- }
44
-
45
- .ds-native-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-native-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-native-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-native-select--container {
64
- display: grid;
65
- gap: var(--ds-spacing-2);
66
- }
67
-
68
- .ds-native-select--container:has(.ds-native-select:disabled) {
69
- opacity: var(--ds-disabled-opacity);
70
- }
71
-
72
- .ds-native-select:disabled {
73
- cursor: not-allowed;
74
- }
75
-
76
- .ds-native-select--readonly .ds-native-select {
77
- background: var(--ds-color-neutral-background-subtle);
78
- border-color: var(--ds-color-neutral-border-strong);
79
- }
80
-
81
- .ds-native-select--error > .ds-native-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-native-select__readonly__icon {
87
- height: 1.2em;
88
- width: 1.2em;
89
- }
90
-
91
- .ds-native-select__error-message:empty {
92
- display: none;
93
- }
94
-
95
- .ds-native-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-native-select__description {
104
- color: var(--ds-color-neutral-text-subtle);
105
- margin-top: calc(var(--ds-spacing-2) * -1);
106
- }
package/pagination.css DELETED
@@ -1,67 +0,0 @@
1
- .ds-pagination {
2
- --dsc-pagination-listitem-margin: var(--ds-spacing-4);
3
- --dsc-pagination-ellipsis-width: var(--ds-sizing-12);
4
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
5
-
6
- list-style-type: none;
7
- display: flex;
8
- padding: 0;
9
- margin: 0;
10
- position: relative;
11
- width: fit-content;
12
- }
13
-
14
- .ds-pagination--hidden {
15
- visibility: hidden;
16
- }
17
-
18
- .ds-pagination--sm {
19
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
20
- }
21
-
22
- .ds-pagination--md {
23
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
24
- }
25
-
26
- .ds-pagination--lg {
27
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
28
- }
29
-
30
- .ds-pagination li:first-child {
31
- margin-right: var(--dsc-pagination-chevron-margin);
32
- }
33
-
34
- .ds-pagination li:last-child {
35
- margin-left: var(--dsc-pagination-chevron-margin);
36
- }
37
-
38
- .ds-pagination__item {
39
- flex: 1;
40
- margin-right: var(--dsc-pagination-listitem-margin);
41
- }
42
-
43
- .ds-pagination--sm .ds-pagination__item {
44
- --dsc-pagination-listitem-margin: var(--ds-spacing-2);
45
- --dsc-pagination-ellipsis-width: var(--ds-sizing-10);
46
- }
47
-
48
- .ds-pagination--md .ds-pagination__item {
49
- --dsc-pagination-listitem-margin: var(--ds-spacing-4);
50
- --dsc-pagination-ellipsis-width: var(--ds-sizing-12);
51
- }
52
-
53
- .ds-pagination--lg .ds-pagination__item {
54
- --dsc-pagination-listitem-margin: var(--ds-spacing-6);
55
- --dsc-pagination-ellipsis-width: var(--ds-sizing-14);
56
- }
57
-
58
- .ds-pagination__item.ds-pagination--compact {
59
- --dsc-pagination-listitem-margin: var(--ds-spacing-0);
60
- --dsc-pagination-chevron-margin: var(--ds-spacing-1);
61
- }
62
-
63
- .ds-pagination__ellipsis {
64
- margin-top: 0.5em;
65
- text-align: center;
66
- width: var(--dsc-pagination-ellipsis-width);
67
- }
package/popover.css DELETED
@@ -1,84 +0,0 @@
1
- .ds-popover {
2
- --dsc-popover-border: 1px solid;
3
- --dsc-popover-background: var(--ds-color-neutral-background-default);
4
- --dsc-popover-color: var(--ds-color-neutral-text-default);
5
- --dsc-popover-border-color: var(--ds-color-neutral-border-default);
6
- --dsc-popover-padding: var(--ds-spacing-3);
7
- --dsc-popover-max-width: 300px;
8
- --dsc-popover-border-radius: min(1rem, var(--ds-border-radius-md));
9
-
10
- z-index: 1500;
11
- background: var(--dsc-popover-background);
12
- color: var(--dsc-popover-color);
13
- padding: var(--dsc-popover-padding);
14
- border: var(--dsc-popover-border);
15
- border-radius: var(--dsc-popover-border-radius);
16
- border-color: var(--dsc-popover-border-color);
17
- max-width: var(--dsc-popover-max-width);
18
- }
19
-
20
- .ds-popover--sm {
21
- --dsc-popover-padding: var(--ds-spacing-2) var(--ds-spacing-3);
22
- }
23
-
24
- .ds-popover--md {
25
- --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-4);
26
- }
27
-
28
- .ds-popover--lg {
29
- --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-5);
30
- }
31
-
32
- .ds-popover--default {
33
- --dsc-popover-background: var(--ds-color-neutral-background-default);
34
- --dsc-popover-border-color: var(--ds-color-neutral-border-default);
35
- --dsc-popover-color: var(--ds-color-neutral-text-default);
36
- }
37
-
38
- .ds-popover--info {
39
- --dsc-popover-background: var(--ds-color-info-surface-default);
40
- --dsc-popover-border-color: var(--ds-color-info-border-default);
41
- --dsc-popover-color: var(--ds-color-info-text-default);
42
- }
43
-
44
- .ds-popover--warning {
45
- --dsc-popover-background: var(--ds-color-warning-surface-default);
46
- --dsc-popover-border-color: var(--ds-color-warning-border-default);
47
- --dsc-popover-color: var(--ds-color-warning-text-default);
48
- }
49
-
50
- .ds-popover--danger {
51
- --dsc-popover-background: var(--ds-color-danger-surface-default);
52
- --dsc-popover-border-color: var(--ds-color-danger-border-default);
53
- --dsc-popover-color: var(--ds-color-danger-text-default);
54
- }
55
-
56
- .ds-popover__arrow {
57
- position: absolute;
58
- background: var(--dsc-popover-background);
59
- transform: rotate(45deg);
60
- }
61
-
62
- .ds-popover__arrow.ds-popover__arrow--top {
63
- border-top: var(--dsc-popover-border);
64
- border-left: var(--dsc-popover-border);
65
- border-color: inherit;
66
- }
67
-
68
- .ds-popover__arrow.ds-popover__arrow--bottom {
69
- border-bottom: var(--dsc-popover-border);
70
- border-right: var(--dsc-popover-border);
71
- border-color: inherit;
72
- }
73
-
74
- .ds-popover__arrow.ds-popover__arrow--right {
75
- border-top: var(--dsc-popover-border);
76
- border-right: var(--dsc-popover-border);
77
- border-color: inherit;
78
- }
79
-
80
- .ds-popover__arrow.ds-popover__arrow--left {
81
- border-bottom: var(--dsc-popover-border);
82
- border-left: var(--dsc-popover-border);
83
- border-color: inherit;
84
- }
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
- }