@navikt/ds-css 1.3.34 → 1.3.37-alpha.1

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.
@@ -1,39 +0,0 @@
1
- :root,
2
- :host {
3
- --navds-error-summary-color-background: var(--navds-semantic-color-component-background-light);
4
- --navds-error-summary-color-border: var(--navds-semantic-color-feedback-danger-border);
5
- }
6
-
7
- .navds-error-summary {
8
- background-color: var(--navds-error-summary-color-background);
9
- padding: var(--navds-spacing-5);
10
- border: 4px solid var(--navds-error-summary-color-border);
11
- }
12
-
13
- .navds-error-summary--small {
14
- padding: var(--navds-spacing-3);
15
- }
16
-
17
- .navds-error-summary:focus {
18
- box-shadow: var(--navds-shadow-focus);
19
- outline: none;
20
- }
21
-
22
- .navds-error-summary__list {
23
- margin: var(--navds-spacing-3) 0;
24
- display: flex;
25
- flex-direction: column;
26
- gap: var(--navds-spacing-3);
27
- padding-left: var(--navds-spacing-6);
28
- list-style: inherit;
29
- }
30
-
31
- .navds-error-summary__list > * {
32
- color: var(--navds-global-color-blue-500);
33
- }
34
-
35
- .navds-error-summary--small > .navds-error-summary__list {
36
- margin: var(--navds-spacing-2) 0;
37
- gap: var(--navds-spacing-2);
38
- padding-left: var(--navds-spacing-5);
39
- }
package/form/fieldset.css DELETED
@@ -1,24 +0,0 @@
1
- .navds-fieldset {
2
- margin: 0;
3
- padding: 0;
4
- border: 0;
5
- min-width: 0;
6
- }
7
-
8
- .navds-fieldset > :not(:first-child):not(:empty) {
9
- margin-top: var(--navds-spacing-2);
10
- }
11
-
12
- .navds-fieldset > .navds-fieldset__description:not(:empty) {
13
- margin-top: var(--navds-spacing-1);
14
- }
15
-
16
- /* Applied when hideLegend is applied to fieldset */
17
- .navds-fieldset > .navds-sr-only + :not(:first-child):not(:empty) {
18
- margin-top: 0;
19
- }
20
-
21
- .navds-fieldset:disabled > .navds-fieldset__legend,
22
- .navds-fieldset:disabled > .navds-fieldset__description {
23
- opacity: 0.3;
24
- }
package/form/form.css DELETED
@@ -1,29 +0,0 @@
1
- .navds-form-field {
2
- display: grid;
3
- justify-items: start;
4
- gap: var(--navds-spacing-2);
5
- }
6
-
7
- .navds-form-field__description {
8
- margin-top: -4px;
9
- }
10
-
11
- .navds-form-field .navds-error-message,
12
- .navds-fieldset .navds-error-message {
13
- display: flex;
14
- gap: var(--navds-spacing-2);
15
- }
16
-
17
- .navds-form-field .navds-error-message::before,
18
- .navds-fieldset .navds-error-message::before {
19
- content: "•";
20
- }
21
-
22
- .navds-form-field--disabled {
23
- opacity: 0.3;
24
- cursor: not-allowed;
25
- }
26
-
27
- .navds-form-field__error:empty {
28
- display: none;
29
- }
package/form/index.css DELETED
@@ -1,13 +0,0 @@
1
- /*
2
- Order matters; rearrange with care
3
- */
4
- @import "fieldset.css";
5
- @import "form.css";
6
- @import "error-summary.css";
7
- @import "confirmation-panel.css";
8
- @import "radio-checkbox.css";
9
- @import "select.css";
10
- @import "switch.css";
11
- @import "text-field.css";
12
- @import "textarea.css";
13
- @import "search.css";
@@ -1,182 +0,0 @@
1
- :root,
2
- :host {
3
- --navds-radio-checkbox-color-background: var(--navds-semantic-color-component-background-light);
4
- --navds-radio-checkbox-color-text: var(--navds-semantic-color-text);
5
- --navds-radio-checkbox-color-background-hover: var(--navds-semantic-color-interaction-primary-hover-subtle);
6
- --navds-radio-checkbox-color-background-checked: var(--navds-semantic-color-interaction-primary);
7
- --navds-radio-checkbox-color-shadow: var(--navds-semantic-color-border);
8
- --navds-radio-checkbox-color-shadow-hover: var(--navds-semantic-color-interaction-primary);
9
- --navds-radio-checkbox-color-shadow-checked: var(--navds-semantic-color-interaction-primary);
10
- --navds-radio-checkbox-color-shadow-error: var(--navds-semantic-color-interaction-danger);
11
- --navds-radio-checkbox-color-label-hover: var(--navds-semantic-color-interaction-primary);
12
- }
13
-
14
- .navds-checkbox,
15
- .navds-radio {
16
- position: relative;
17
- width: fit-content;
18
- }
19
-
20
- .navds-checkbox__input,
21
- .navds-radio__input {
22
- position: absolute;
23
- width: 48px;
24
- height: 48px;
25
- top: 0;
26
- left: -12px;
27
- z-index: 1;
28
- opacity: 0;
29
- cursor: pointer;
30
- }
31
-
32
- .navds-checkbox__label,
33
- .navds-radio__label {
34
- padding: var(--navds-spacing-3) 0;
35
- cursor: pointer;
36
- display: flex;
37
- gap: var(--navds-spacing-2);
38
- }
39
-
40
- .navds-checkbox__label::before,
41
- .navds-radio__label::before {
42
- content: "";
43
- background-color: var(--navds-radio-checkbox-color-background);
44
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow);
45
- width: 1.5rem;
46
- height: 1.5rem;
47
- border-radius: var(--navds-border-radius-medium);
48
- flex-shrink: 0;
49
- }
50
-
51
- .navds-radio__label::before {
52
- border-radius: var(--navds-border-radius-full);
53
- }
54
-
55
- .navds-checkbox__content,
56
- .navds-radio__content {
57
- display: flex;
58
- flex-direction: column;
59
- gap: var(--navds-spacing-1);
60
- }
61
-
62
- .navds-checkbox--small > .navds-checkbox__input,
63
- .navds-radio--small > .navds-radio__input {
64
- width: 32px;
65
- height: 32px;
66
- top: 0;
67
- left: -6px;
68
- }
69
-
70
- .navds-checkbox--small > .navds-checkbox__label,
71
- .navds-radio--small > .navds-radio__label {
72
- padding: 6px 0;
73
- }
74
-
75
- .navds-checkbox--small > .navds-checkbox__label::before,
76
- .navds-radio--small > .navds-radio__label::before {
77
- width: 1.25rem;
78
- height: 1.25rem;
79
- }
80
-
81
- .navds-checkbox__input:focus + .navds-checkbox__label::before,
82
- .navds-radio__input:focus + .navds-radio__label::before {
83
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow), var(--navds-shadow-focus);
84
- }
85
-
86
- .navds-checkbox__input:hover:focus + .navds-checkbox__label::before,
87
- .navds-radio__input:hover:focus + .navds-radio__label::before {
88
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-hover), var(--navds-shadow-focus);
89
- }
90
-
91
- .navds-checkbox__input:indeterminate + .navds-checkbox__label::before {
92
- box-shadow: none;
93
- background-color: var(--navds-radio-checkbox-color-background-checked);
94
- }
95
-
96
- .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
97
- content: "";
98
- position: absolute;
99
- top: 50%;
100
- transform: translate(0.375rem, -50%);
101
- background-color: var(--navds-radio-checkbox-color-background);
102
- width: 0.75rem;
103
- height: 0.25rem;
104
- border-radius: 1px; /* Custom value OK */
105
- flex-shrink: 0;
106
- }
107
-
108
- .navds-checkbox--small .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
109
- transform: translate(0.25rem, -50%);
110
- }
111
-
112
- .navds-checkbox__input:checked + .navds-checkbox__label::before {
113
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMCI+ICAgIDxnPiAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNCwxMGMtMC40LDAtMC44LTAuMS0xLjEtMC40TDAuNCw3LjFDMC4xLDYuOCwwLDYuNCwwLDZzMC4yLTAuOCwwLjUtMS4xQzEsNC40LDIsNC40LDIuNSw0LjlMNCw2LjRsNi40LTYgICAgQzEwLjgsMC4xLDExLjEsMCwxMS41LDBjMC40LDAsMC44LDAuMiwxLDAuNWMwLjYsMC42LDAuNSwxLjYtMC4xLDIuMXYwTDUsOS42QzQuNyw5LjksNC40LDEwLDQsMTB6IE0xMS44LDEuOUwxMS44LDEuOSAgICBDMTEuOCwxLjksMTEuOCwxLjksMTEuOCwxLjl6IE0xMS4yLDEuMUMxMS4yLDEuMSwxMS4yLDEuMSwxMS4yLDEuMUwxMS4yLDEuMXoiLz4gICAgPC9nPjwvc3ZnPg==);
114
- background-position: 6px center;
115
- background-repeat: no-repeat;
116
- background-size: 13px;
117
- box-shadow: none;
118
- background-color: var(--navds-radio-checkbox-color-background-checked);
119
- }
120
-
121
- .navds-checkbox--small > .navds-checkbox__input:checked + .navds-checkbox__label::before {
122
- background-position: 4px center;
123
- }
124
-
125
- .navds-checkbox__input:indeterminate:focus + .navds-checkbox__label::before,
126
- .navds-checkbox__input:checked:focus + .navds-checkbox__label::before {
127
- box-shadow: inset 0 0 0 1px white, var(--navds-shadow-focus);
128
- }
129
-
130
- .navds-radio__input:checked + .navds-radio__label::before {
131
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-checked), inset 0 0 0 4px #fff;
132
- background-color: var(--navds-radio-checkbox-color-background-checked);
133
- }
134
-
135
- .navds-radio__input:checked:focus + .navds-radio__label::before {
136
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-checked), inset 0 0 0 4px #fff, var(--navds-shadow-focus);
137
- }
138
-
139
- .navds-checkbox__input:hover:not(:disabled) + .navds-checkbox__label,
140
- .navds-radio__input:hover:not(:disabled) + .navds-radio__label {
141
- color: var(--navds-radio-checkbox-color-label-hover);
142
- }
143
-
144
- .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus) + .navds-checkbox__label::before,
145
- .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus) + .navds-radio__label::before {
146
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-hover);
147
- }
148
-
149
- .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate) + .navds-checkbox__label::before,
150
- .navds-radio__input:hover:not(:disabled):not(:checked) + .navds-radio__label::before {
151
- background-color: var(--navds-radio-checkbox-color-background-hover);
152
- }
153
-
154
- .navds-checkbox--error
155
- > .navds-checkbox__input:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
156
- + .navds-checkbox__label::before,
157
- .navds-radio--error
158
- > .navds-radio__input:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
159
- + .navds-radio__label::before {
160
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-error);
161
- }
162
-
163
- .navds-checkbox--error
164
- > .navds-checkbox__input:focus:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
165
- + .navds-checkbox__label::before,
166
- .navds-radio--error
167
- > .navds-radio__input:focus:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
168
- + .navds-radio__label::before {
169
- box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-error), var(--navds-shadow-focus);
170
- }
171
-
172
- .navds-checkbox--disabled,
173
- .navds-radio--disabled {
174
- opacity: 0.3;
175
- }
176
-
177
- .navds-checkbox--disabled > .navds-checkbox__input,
178
- .navds-checkbox--disabled > .navds-checkbox__label,
179
- .navds-radio--disabled > .navds-radio__input,
180
- .navds-radio--disabled > .navds-radio__label {
181
- cursor: not-allowed;
182
- }
package/form/search.css DELETED
@@ -1,163 +0,0 @@
1
- :root,
2
- :host,
3
- [data-theme="light"] {
4
- --navds-search-color-text: var(--navds-semantic-color-text);
5
- --navds-search-color-border: var(--navds-semantic-color-border);
6
- --navds-search-color-border-hover: var(--navds-semantic-color-interaction-primary);
7
- --navds-search-color-clear-hover: var(--navds-global-color-blue-500);
8
- --navds-search-color-border-error: var(--navds-global-color-red-500);
9
- }
10
-
11
- [data-theme="dark"] {
12
- --navds-search-color-text: var(--navds-semantic-color-text-inverted);
13
- --navds-search-color-border: var(--navds-semantic-color-border-inverted);
14
- --navds-search-color-border-hover: var(--navds-global-color-blue-200);
15
- --navds-search-color-clear-hover: var(--navds-global-color-blue-200);
16
- --navds-search-color-border-error: var(--navds-global-color-red-300);
17
- }
18
-
19
- .navds-search {
20
- display: flex;
21
- flex-direction: column;
22
- width: 100%;
23
- }
24
-
25
- .navds-search__wrapper-inner {
26
- position: relative;
27
- width: 100%;
28
- }
29
-
30
- .navds-search__wrapper {
31
- display: inline-flex;
32
- align-items: center;
33
- }
34
-
35
- .navds-search__input {
36
- padding-right: var(--navds-spacing-10);
37
- }
38
-
39
- .navds-form-field--small .navds-search__input {
40
- padding-right: var(--navds-spacing-8);
41
- }
42
-
43
- .navds-search__input--simple {
44
- padding-left: var(--navds-spacing-11);
45
- }
46
-
47
- .navds-form-field--small .navds-search__input--simple {
48
- padding-left: var(--navds-spacing-7);
49
- }
50
-
51
- .navds-search__input:not(.navds-search__input--simple) {
52
- border-top-right-radius: 0;
53
- border-bottom-right-radius: 0;
54
- }
55
-
56
- .navds-search__search-icon {
57
- position: absolute;
58
- left: var(--navds-spacing-3);
59
- top: 50%;
60
- transform: translateY(-50%);
61
- pointer-events: none;
62
- font-size: 1.5rem;
63
- }
64
-
65
- .navds-form-field--small .navds-search__search-icon {
66
- left: var(--navds-spacing-2);
67
- font-size: 1rem;
68
- }
69
-
70
- .navds-search__button-clear {
71
- position: absolute;
72
- right: 0.75rem;
73
- border-radius: var(--navds-border-radius-medium);
74
- color: var(--navds-search-color-text);
75
- height: 32px;
76
- width: 32px;
77
- top: 50%;
78
- transform: translateY(-50%);
79
- display: flex;
80
- justify-content: center;
81
- align-items: center;
82
- cursor: pointer;
83
- background: none;
84
- border: none;
85
- font-size: 1rem;
86
- padding: 0;
87
- }
88
-
89
- .navds-form-field--small .navds-search__button-clear {
90
- right: 0.5rem;
91
- height: 24px;
92
- width: 24px;
93
- }
94
-
95
- .navds-search__button-clear:hover {
96
- color: var(--navds-search-color-clear-hover);
97
- }
98
-
99
- .navds-search__button-clear:focus {
100
- box-shadow: var(--navds-shadow-focus);
101
- outline: none;
102
- }
103
-
104
- .navds-search__button-search {
105
- flex-shrink: 0;
106
- min-width: 64px;
107
- min-height: 32px;
108
- border-radius: 0;
109
- border-top-right-radius: var(--navds-border-radius-medium);
110
- border-bottom-right-radius: var(--navds-border-radius-medium);
111
- }
112
-
113
- .navds-form-field--small .navds-search__button-search svg {
114
- font-size: 1rem;
115
- }
116
-
117
- .navds-form-field--small .navds-search__button-search {
118
- min-width: 40px;
119
- }
120
-
121
- .navds-search__button-search.navds-button--secondary {
122
- box-shadow: -1px 0 0 0 var(--navds-search-color-border) inset, 0 1px 0 0 var(--navds-search-color-border) inset,
123
- 0 -1px 0 0 var(--navds-search-color-border) inset;
124
- }
125
-
126
- .navds-search__button-search.navds-button--secondary:hover {
127
- box-shadow: -1px 0 0 0 var(--navds-search-color-border-hover) inset, 0 1px 0 0 var(--navds-search-color-border-hover) inset,
128
- 0 -1px 0 0 var(--navds-search-color-border-hover) inset, -1px 0 0 0 var(--navds-search-color-border-hover);
129
- z-index: 1;
130
- }
131
-
132
- .navds-search__wrapper-inner:focus-within + .navds-search__button-search.navds-button--secondary:hover {
133
- z-index: auto;
134
- }
135
-
136
- .navds-search__button-search.navds-button--secondary:focus {
137
- box-shadow: 0 0 0 1px var(--navds-search-color-border) inset, var(--navds-shadow-focus);
138
- }
139
-
140
- .navds-search__button-search.navds-button--secondary:focus:hover {
141
- box-shadow: 0 0 0 1px var(--navds-search-color-border-hover) inset, var(--navds-shadow-focus);
142
- }
143
-
144
- .navds-search__button-search.navds-button--secondary:focus:active {
145
- box-shadow: 0 0 0 1px white inset, var(--navds-shadow-focus);
146
- }
147
-
148
- /* Error-handling */
149
- .navds-search--error .navds-search__input:not(:hover):not(:disabled) {
150
- border-color: var(--navds-search-color-border-error);
151
- box-shadow: inset 0 0 0 1px var(--navds-search-color-border-error);
152
- }
153
-
154
- .navds-search--error .navds-search__input:focus:not(:hover):not(:disabled) {
155
- box-shadow: inset 0 0 0 1px var(--navds-search-color-border-error), var(--navds-shadow-focus);
156
- }
157
-
158
- /* Focus layering */
159
- .navds-search__input:focus,
160
- .navds-search__button-clear,
161
- .navds-search__button-search:focus {
162
- z-index: 1;
163
- }
package/form/select.css DELETED
@@ -1,69 +0,0 @@
1
- :root,
2
- :host {
3
- --navds-select-color-background: var(--navds-semantic-color-component-background-light);
4
- --navds-select-color-border: var(--navds-semantic-color-border);
5
- --navds-select-color-border-hover: var(--navds-semantic-color-interaction-primary);
6
- --navds-select-color-border-error: var(--navds-semantic-color-interaction-danger);
7
- --navds-select-color-shadow-error: var(--navds-semantic-color-interaction-danger);
8
- --navds-select-color-border-disabled: var(--navds-global-color-gray-400);
9
- --navds-select-color-background-disabled: var(--navds-semantic-color-component-background-alternate);
10
- }
11
-
12
- .navds-select__input {
13
- appearance: none;
14
- background-color: var(--navds-select-color-background);
15
- border-radius: var(--navds-border-radius-medium);
16
- border: 1px solid var(--navds-select-color-border);
17
- width: 100%;
18
- box-sizing: border-box;
19
- min-height: 48px;
20
- display: inline-block;
21
- position: relative;
22
- padding: 0.5rem;
23
- padding-right: 2rem;
24
- }
25
-
26
- .navds-select__input:hover {
27
- border-color: var(--navds-select-color-border-hover);
28
- }
29
-
30
- .navds-select__input:focus {
31
- outline: none;
32
- box-shadow: var(--navds-shadow-focus);
33
- }
34
-
35
- .navds-select__container {
36
- position: relative;
37
- display: flex;
38
- width: 100%;
39
- align-items: center;
40
- color: var(--navds-semantic-color-text);
41
- }
42
-
43
- .navds-select__chevron {
44
- position: absolute;
45
- font-size: 1rem;
46
- right: 0.5rem;
47
- pointer-events: none;
48
- }
49
-
50
- .navds-form-field--small .navds-select__input {
51
- min-height: 32px;
52
- padding: 0.25rem;
53
- padding-right: 2rem;
54
- }
55
-
56
- /**
57
- Error handling
58
- */
59
- .navds-select--error > * select:not(:hover):not(:focus):not(:disabled) {
60
- box-shadow: 0 0 0 1px var(--navds-select-color-shadow-error);
61
- border-color: var(--navds-select-color-border-error);
62
- }
63
-
64
- .navds-select__input:disabled {
65
- background-color: var(--navds-select-color-background);
66
- border-color: var(--navds-select-color-border);
67
- box-shadow: none;
68
- cursor: not-allowed;
69
- }
package/form/switch.css DELETED
@@ -1,189 +0,0 @@
1
- :root,
2
- :host {
3
- --navds-switch-color-label: var(--navds-semantic-color-text);
4
- --navds-switch-color-label-hover: var(--navds-semantic-color-interaction-primary);
5
- --navds-switch-color-track-background: var(--navds-semantic-color-text-muted);
6
- --navds-switch-color-track-background-checked: var(--navds-semantic-color-feedback-success-border);
7
- --navds-switch-color-track-background-hover: var(--navds-global-color-gray-800);
8
- --navds-switch-color-track-background-hover-checked: var(--navds-semantic-color-feedback-success-icon);
9
- --navds-switch-color-track-shadow-inner-focus: var(--navds-semantic-color-component-background-light);
10
- --navds-switch-color-thumb: var(--navds-semantic-color-component-background-light);
11
- --navds-switch-color-thumb-icon: var(--navds-semantic-color-text-muted);
12
- --navds-switch-color-thumb-icon-checked: var(--navds-semantic-color-feedback-success-border);
13
- --navds-switch-color-thumb-loader-checked: var(--navds-semantic-color-feedback-success-border);
14
- }
15
-
16
- .navds-switch {
17
- position: relative;
18
- min-height: 48px;
19
- width: fit-content;
20
- }
21
-
22
- .navds-switch--right {
23
- width: auto;
24
- }
25
-
26
- .navds-switch--small {
27
- position: relative;
28
- min-height: 32px;
29
- }
30
-
31
- /* Input */
32
- .navds-switch__input {
33
- cursor: pointer;
34
- position: absolute;
35
- z-index: 1;
36
- width: 48px;
37
- height: 48px;
38
- opacity: 0;
39
- top: 0;
40
- }
41
-
42
- .navds-switch--small > .navds-switch__input {
43
- height: 32px;
44
- top: 0;
45
- }
46
-
47
- /* Label */
48
- .navds-switch__label-wrapper {
49
- cursor: pointer;
50
- color: var(--navds-switch-color-label);
51
- }
52
-
53
- .navds-switch__content {
54
- display: flex;
55
- flex-direction: column;
56
- gap: var(--navds-spacing-1);
57
- padding: 0.75rem 0 0.75rem 3.25rem;
58
- }
59
-
60
- .navds-switch--right > .navds-switch__label-wrapper > .navds-switch__content {
61
- padding: 0.75rem 3.25rem 0.75rem 0;
62
- }
63
-
64
- .navds-switch--small > .navds-switch__label-wrapper > .navds-switch__content {
65
- padding: calc(var(--navds-spacing-2) - 2px) 0 calc(var(--navds-spacing-2) - 2px) 3.25rem;
66
- }
67
-
68
- .navds-switch--right.navds-switch--small > .navds-switch__label-wrapper > .navds-switch__content {
69
- padding: calc(var(--navds-spacing-2) - 2px) 3.25rem calc(var(--navds-spacing-2) - 2px) 0;
70
- }
71
-
72
- .navds-switch--with-description,
73
- .navds-switch--small > .navds-switch__label-wrapper > .navds-switch--with-description {
74
- padding-bottom: 0;
75
- }
76
-
77
- .navds-switch__input:hover ~ .navds-switch__label-wrapper,
78
- .navds-switch__label-wrapper:hover {
79
- color: var(--navds-switch-color-label-hover);
80
- }
81
-
82
- .navds-switch__input:disabled:hover ~ .navds-switch__label-wrapper {
83
- color: inherit;
84
- }
85
-
86
- /* Track */
87
- .navds-switch__track {
88
- width: 44px;
89
- height: 24px;
90
- background-color: var(--navds-switch-color-track-background);
91
- position: absolute;
92
- top: var(--navds-spacing-3);
93
- left: 0;
94
- border-radius: var(--navds-border-radius-medium);
95
- transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1);
96
- }
97
-
98
- .navds-switch--small > .navds-switch__track {
99
- top: var(--navds-spacing-1);
100
- }
101
-
102
- .navds-switch--right > .navds-switch__input,
103
- .navds-switch--right > .navds-switch__track {
104
- right: 0;
105
- left: auto;
106
- }
107
-
108
- .navds-switch__input:checked ~ .navds-switch__track {
109
- background-color: var(--navds-switch-color-track-background-checked);
110
- }
111
-
112
- .navds-switch__input:hover ~ .navds-switch__track {
113
- background-color: var(--navds-switch-color-track-background-hover);
114
- }
115
-
116
- .navds-switch__input:hover:checked ~ .navds-switch__track {
117
- background-color: var(--navds-switch-color-track-background-hover-checked);
118
- }
119
-
120
- .navds-switch__input:disabled ~ .navds-switch__track {
121
- background-color: var(--navds-switch-color-track-background);
122
- }
123
-
124
- .navds-switch__input:checked:disabled ~ .navds-switch__track {
125
- background-color: var(--navds-switch-color-track-background-checked);
126
- }
127
-
128
- .navds-switch__input:focus ~ .navds-switch__track {
129
- box-shadow: 0 0 0 1px var(--navds-switch-color-track-shadow-inner-focus), var(--navds-shadow-focus);
130
- }
131
-
132
- /* Thumb */
133
- .navds-switch__thumb {
134
- background-color: var(--navds-switch-color-thumb);
135
- color: var(--navds-switch-color-thumb-icon);
136
- border-radius: var(--navds-border-radius-small);
137
- width: 20px;
138
- height: 20px;
139
- position: absolute;
140
- transform: translateX(0);
141
- left: 2px;
142
- top: 2px;
143
- transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
144
- display: flex;
145
- align-items: center;
146
- justify-content: center;
147
- }
148
-
149
- .navds-switch__input:checked ~ .navds-switch__track > .navds-switch__thumb {
150
- transform: translateX(20px);
151
- color: var(--navds-switch-color-thumb-icon-checked);
152
- }
153
-
154
- @media (hover: hover) and (pointer: fine) {
155
- .navds-switch__input:hover ~ .navds-switch__track > .navds-switch__thumb {
156
- transform: translateX(2px);
157
- }
158
-
159
- .navds-switch__input:checked:hover ~ .navds-switch__track > .navds-switch__thumb {
160
- transform: translateX(18px);
161
- }
162
- }
163
-
164
- .navds-switch__input:disabled:hover ~ .navds-switch__track > .navds-switch__thumb {
165
- transform: translateX(0);
166
- }
167
-
168
- .navds-switch__input:checked:disabled:hover ~ .navds-switch__track > .navds-switch__thumb {
169
- transform: translateX(20px);
170
- }
171
-
172
- /* Loader */
173
- .navds-switch__input:checked ~ .navds-switch__track > .navds-switch__thumb .navds-loader__foreground {
174
- stroke: var(--navds-switch-color-thumb-loader-checked);
175
- }
176
-
177
- /* Disabled */
178
- .navds-switch__input:disabled {
179
- appearance: none;
180
- }
181
-
182
- .navds-switch--disabled:not(.navds-switch--loading) {
183
- opacity: 0.3;
184
- }
185
-
186
- .navds-switch__input:disabled,
187
- .navds-switch__input:disabled ~ .navds-switch__label-wrapper {
188
- cursor: not-allowed;
189
- }