|
91 | 91 | } |
92 | 92 |
|
93 | 93 | $theme: digest-schema($switch-schema); |
94 | | - $meta: map.get($theme, '_meta'); |
| 94 | + $variant: map.get($theme, '_meta', 'theme'); |
| 95 | + |
| 96 | + @if $variant == 'material' { |
| 97 | + @if not($track-off-color) and $thumb-off-color { |
| 98 | + $track-off-color: hsl(from var(--thumb-off-color) h s calc(l * 0.5)); |
| 99 | + } |
| 100 | + |
| 101 | + @if not($thumb-off-color) and $track-off-color { |
| 102 | + $thumb-off-color: hsl(from var(--track-off-color) h s calc(l * 1.3)); |
| 103 | + } |
| 104 | + |
| 105 | + @if not($thumb-disabled-color) and $thumb-off-color { |
| 106 | + $thumb-disabled-color: hsl(from var(--thumb-off-color) h s calc(l + 20)); |
| 107 | + } |
| 108 | + |
| 109 | + @if not($track-on-color) and $thumb-on-color { |
| 110 | + $track-on-color: hsl(from var(--thumb-on-color) h s calc(l * 1.3)); |
| 111 | + } |
| 112 | + |
| 113 | + @if not($track-on-hover-color) and $track-on-color { |
| 114 | + $track-on-hover-color: var(--track-on-color); |
| 115 | + } |
| 116 | + |
| 117 | + @if not($thumb-on-color) and $track-on-color { |
| 118 | + $thumb-on-color: hsl(from var(--track-on-color) h s calc(l * 0.6)); |
| 119 | + } |
| 120 | + |
| 121 | + @if not($thumb-on-disabled-color) and $thumb-on-color { |
| 122 | + $thumb-on-disabled-color: hsl(from var(--thumb-on-color) h s calc(l + 20)); |
| 123 | + } |
| 124 | + } @else { |
| 125 | + @if not($thumb-off-color) and $track-off-color { |
| 126 | + $thumb-off-color: hsla(from adaptive-contrast(var(--track-off-color)) h s l / 0.8); |
| 127 | + } |
| 128 | + @if not($border-color) and $thumb-off-color { |
| 129 | + $border-color: var(--thumb-off-color); |
| 130 | + } |
| 131 | + |
| 132 | + @if not($thumb-off-color) and $border-color { |
| 133 | + $thumb-off-color: var(--border-color); |
| 134 | + } |
| 135 | + |
| 136 | + @if not($border-hover-color) and $track-off-color { |
| 137 | + $border-hover-color: hsla(from var(--thumb-off-color) h s l / 0.9); |
| 138 | + } |
| 139 | + |
| 140 | + @if not($border-hover-color) and $border-color { |
| 141 | + $border-hover-color: hsl(from var(--border-color) h s calc(l * 0.8)); |
| 142 | + } |
| 143 | + |
| 144 | + @if not($thumb-on-color) and $track-on-color { |
| 145 | + $thumb-on-color: adaptive-contrast(var(--track-on-color)); |
| 146 | + } |
| 147 | + |
| 148 | + @if not($track-on-hover-color) and $track-on-color { |
| 149 | + $track-on-hover-color: hsl(from var(--track-on-color) h s calc(l * 0.9)); |
| 150 | + } |
| 151 | + |
| 152 | + @if not($border-on-color) and $track-on-color { |
| 153 | + $border-on-color: var(--track-on-color); |
| 154 | + } |
| 155 | + |
| 156 | + @if not($border-on-hover-color) and $border-on-color { |
| 157 | + $border-on-hover-color: hsl(from var(--border-on-color) h s calc(l * 0.9)); |
| 158 | + } |
| 159 | + |
| 160 | + @if not($thumb-disabled-color) and $thumb-off-color { |
| 161 | + $thumb-disabled-color: hsla(from var(--thumb-off-color) h s l / 0.3); |
| 162 | + } |
| 163 | + |
| 164 | + @if not($border-disabled-color) and $border-color { |
| 165 | + $border-disabled-color: hsla(from var(--border-color) h s l / 0.3); |
| 166 | + } |
| 167 | + |
| 168 | + @if not($thumb-on-disabled-color) and $thumb-on-color { |
| 169 | + $thumb-on-disabled-color: hsla(from var(--thumb-on-color) h s l / 0.3); |
| 170 | + } |
| 171 | + |
| 172 | + @if $variant == 'bootstrap' { |
| 173 | + @if not($focus-fill-color) and $track-on-color { |
| 174 | + $focus-fill-color: hsl(from var(--track-on-color) h s calc(l * 1.2)); |
| 175 | + } |
| 176 | + |
| 177 | + @if not($focus-outline-color) and $focus-fill-color { |
| 178 | + $focus-outline-color: hsla(from var(--focus-fill-color) h s l / 0.5); |
| 179 | + } |
| 180 | + |
| 181 | + @if not($focus-fill-hover-color) and $focus-fill-color { |
| 182 | + $focus-fill-hover-color: hsl(from var(--focus-fill-color) h s calc(l * 0.9)); |
| 183 | + } |
| 184 | + } |
| 185 | + |
| 186 | + @if $variant == 'indigo' { |
| 187 | + @if not($focus-outline-color) and $border-color { |
| 188 | + $focus-outline-color: hsla(from var(--border-color) h s l / 0.5); |
| 189 | + } |
| 190 | + |
| 191 | + @if not($focus-outline-color-focused) and $border-on-color { |
| 192 | + $focus-outline-color-focused: hsla(from var(--border-on-color) h s l / 0.5); |
| 193 | + } |
| 194 | + } |
| 195 | + } |
| 196 | + |
| 197 | + @if not($track-disabled-color) and $track-off-color { |
| 198 | + $track-disabled-color: hsla(from var(--track-off-color) h s l / 0.5); |
| 199 | + } |
| 200 | + |
| 201 | + @if not($track-on-disabled-color) and $track-on-color { |
| 202 | + $track-on-disabled-color: hsla(from var(--track-on-color) h s l / 0.5); |
| 203 | + } |
95 | 204 |
|
96 | 205 | @if not($resting-shadow) { |
97 | 206 | $resting-elevation: map.get($switch-schema, 'resting-elevation'); |
|
155 | 264 | focus-outline-color-focused: $focus-outline-color-focused, |
156 | 265 | focus-fill-color: $focus-fill-color, |
157 | 266 | focus-fill-hover-color: $focus-fill-hover-color, |
158 | | - theme: map.get($schema, '_meta', 'theme'), |
159 | | - _meta: map.merge(if($meta, $meta, ()), ( |
160 | | - variant: map.get($schema, '_meta', 'theme'), |
161 | | - theme-variant: map.get($schema, '_meta', 'variant') |
162 | | - )), |
163 | 267 | )); |
164 | 268 | } |
165 | 269 |
|
|
170 | 274 | @include css-vars($theme); |
171 | 275 | @include scale-in-out($start-scale: .9); |
172 | 276 |
|
173 | | - $variant: map.get($theme, '_meta', 'variant'); |
174 | | - $theme-variant: map.get($theme, '_meta', 'theme-variant'); |
| 277 | + $variant: map.get($theme, '_meta', 'theme'); |
| 278 | + $theme-variant: map.get($theme, '_meta', 'variant'); |
175 | 279 |
|
176 | 280 | $switch-width: map.get(( |
177 | 281 | 'material': 36px, |
|
0 commit comments