Skip to content

Commit dddc827

Browse files
committed
feat: add prefers-color-scheme support
1 parent 5a8da02 commit dddc827

File tree

1 file changed

+54
-13
lines changed

1 file changed

+54
-13
lines changed

scss/mixins/_themes.scss

Lines changed: 54 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,13 @@ $theme-has-variants: false !default;
9999
@mixin themes-append-variables($theme) {
100100
// Update global variables
101101
$current-theme: $theme !global;
102-
@content;
102+
@if $current-theme == "dark" and $enable-prefers-color-scheme {
103+
@media (prefers-color-scheme: dark) {
104+
@content;
105+
}
106+
} @else {
107+
@content;
108+
}
103109
}
104110

105111
@mixin themes-create-parent($theme, $variant) {
@@ -119,15 +125,31 @@ $theme-has-variants: false !default;
119125
}
120126
}
121127
}
122-
} @else {
128+
} @else {
123129
@at-root{
124130
@if $variant == $default-variant {
125-
.c-#{$theme}#{$themes-default-post-class} #{$parent-element} {
126-
@content;
131+
@if $current-theme == "dark" and $enable-prefers-color-scheme {
132+
@media (prefers-color-scheme: dark) {
133+
#{$parent-element} {
134+
@content;
135+
}
136+
}
137+
} @else {
138+
.c-#{$theme}#{$themes-default-post-class} #{$parent-element} {
139+
@content;
140+
}
127141
}
128142
} @else {
129-
.c-#{$theme}#{$themes-default-post-class} #{$parent-element}#{$parent-element}-#{$variant} {
130-
@content;
143+
@if $current-theme == "dark" and $enable-prefers-color-scheme {
144+
@media (prefers-color-scheme: dark) {
145+
#{$parent-element}#{$parent-element}-#{$variant} {
146+
@content;
147+
}
148+
}
149+
} @else {
150+
.c-#{$theme}#{$themes-default-post-class} #{$parent-element}#{$parent-element}-#{$variant} {
151+
@content;
152+
}
131153
}
132154
}
133155
}
@@ -142,8 +164,14 @@ $theme-has-variants: false !default;
142164
@error "No selector found. I need a selector to append the class to.";
143165
}
144166

145-
&.c-#{$theme}#{$themes-default-post-class} {
146-
@content;
167+
@if $current-theme == "dark" and $enable-prefers-color-scheme {
168+
@media (prefers-color-scheme: dark) {
169+
@content;
170+
}
171+
} @else {
172+
&.c-#{$theme}#{$themes-default-post-class} {
173+
@content;
174+
}
147175
}
148176
}
149177

@@ -152,13 +180,25 @@ $theme-has-variants: false !default;
152180
$current-theme: $theme !global;
153181

154182
@at-root{
155-
@if & {
156-
.c-#{$theme}#{$themes-default-post-class} & {
157-
@content;
183+
@if $current-theme == "dark" and $enable-prefers-color-scheme {
184+
@media (prefers-color-scheme: dark) {
185+
@if & {
186+
& {
187+
@content;
188+
}
189+
} @else {
190+
@content;
191+
}
158192
}
159193
} @else {
160-
.c-#{$theme}#{$themes-default-post-class} {
161-
@content;
194+
@if & {
195+
.c-#{$theme}#{$themes-default-post-class} & {
196+
@content;
197+
}
198+
} @else {
199+
.c-#{$theme}#{$themes-default-post-class} {
200+
@content;
201+
}
162202
}
163203
}
164204
}
@@ -182,6 +222,7 @@ $theme-has-variants: false !default;
182222

183223
@each $theme in $themes {
184224
$current-theme: $theme !global;
225+
@debug $current-theme;
185226

186227
@if map-has-key($default-themes, $theme) {
187228
$theme-map: map-get($themes-map, $theme);

0 commit comments

Comments
 (0)