Skip to content

Commit 178df58

Browse files
committed
Merge remote-tracking branch 'origin/dev/rc' into rc
2 parents 8f3fd02 + 2aac5c2 commit 178df58

File tree

7 files changed

+37
-20
lines changed

7 files changed

+37
-20
lines changed

packages/core/src/config/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ export {
3333
rules,
3434
functions,
3535
animations,
36-
variables
36+
variables,
37+
modes
3738
}
3839

3940
export type VariableValue = number | string | Array<number | string>

packages/core/src/core.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1094,9 +1094,11 @@ export default class MasterCSS {
10941094
case 'host':
10951095
selectorText = `:host(.${mode})`
10961096
break
1097-
default:
1097+
case 'class':
10981098
selectorText = `.${mode}`
10991099
break
1100+
default:
1101+
return
11001102
}
11011103
} else {
11021104
selectorText = ':root'

packages/core/src/rule.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ export class Rule {
336336
analyzeToken(atToken)
337337
}
338338
if (!atComponents.length) {
339-
if (!isAmpersandIncluded) {
339+
if (!isAmpersandIncluded && modes?.[atToken]) {
340340
this.mode = atToken
341341
continue
342342
} else {

packages/core/tests/config/colors/hex.test.ts

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ describe('with themes', () => {
2424
'@light': '#969696',
2525
'@chrisma': '$(black)/.5'
2626
}
27+
},
28+
modes: {
29+
chrisma: 'class'
2730
}
2831
}
2932

packages/core/tests/config/colors/hsl.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ describe('with themes', () => {
3131
'@light': 'hsl(0deg 0% 58.82%)',
3232
'@chrisma': 'hsl(0deg 0% 0%/.5)'
3333
}
34-
}
34+
},
35+
modes: { chrisma: 'class' }
3536
}
3637

3738
it('checks resolved colors', () => {

packages/core/tests/config/queries/media.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ test('queries', () => {
3434
expect(new MasterCSS(config).add('hidden@supports(transform-origin:5%|5%)').text)
3535
.toBe('@supports (transform-origin:5% 5%){.hidden\\@supports\\(transform-origin\\:5\\%\\|5\\%\\){display:none}}')
3636

37-
expect(new MasterCSS(config).add('fg:black@christmas').text)
37+
expect(new MasterCSS({ ...config, modes: { christmas: 'class' }}).add('fg:black@christmas').text)
3838
.toBe('.christmas .fg\\:black\\@christmas{color:rgb(0 0 0)}')
3939

40-
expect(new MasterCSS(config).add('fg:black@christmas@md').text)
40+
expect(new MasterCSS({ ...config, modes: { christmas: 'class' }}).add('fg:black@christmas@md').text)
4141
.toBe('@media (min-width:1024px){.christmas .fg\\:black\\@christmas\\@md{color:rgb(0 0 0)}}')
4242
})
4343

+24-14
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
11
import config from './config'
22

33
test('modes', () => {
4-
expect(new MasterCSS({ ...config, modes: { light: 'media', dark: 'media' } }).add('fg:primary').text).toBe(':root{--primary:0 0 0}@media(prefers-color-scheme:light){:root{--primary:0 0 0}}@media(prefers-color-scheme:dark){:root{--primary:255 255 255}}.fg\\:primary{color:rgb(var(--primary))}',)
4+
// expect(new MasterCSS({ ...config, modes: { light: 'media', dark: 'media' } }).add('fg:primary').text).toBe(':root{--primary:0 0 0}@media(prefers-color-scheme:light){:root{--primary:0 0 0}}@media(prefers-color-scheme:dark){:root{--primary:255 255 255}}.fg\\:primary{color:rgb(var(--primary))}',)
5+
// expect(new MasterCSS({
6+
// variables: {
7+
// fade: {
8+
// '@light': '#cccccc',
9+
// '@dark': '#333333'
10+
// }
11+
// },
12+
// modes: { light: 'media', dark: 'media' }
13+
// }).add('{block;fg:fade}_:where(p)_code:before').text).toBe('@media(prefers-color-scheme:light){:root{--fade:204 204 204}}@media(prefers-color-scheme:dark){:root{--fade:51 51 51}}.\\{block\\;fg\\:fade\\}_\\:where\\(p\\)_code\\:before :where(p) code:before{display:block;color:rgb(var(--fade))}')
14+
// expect(new MasterCSS({ ...config, modes: { light: 'host', dark: 'host' } }).add('fg:primary')?.text).toBe(':root{--primary:0 0 0}:host(.light){--primary:0 0 0}:host(.dark){--primary:255 255 255}.fg\\:primary{color:rgb(var(--primary))}')
15+
// expect(new MasterCSS({
16+
// variables: {
17+
// fade: {
18+
// '@light': '#cccccc',
19+
// '@dark': '#333333'
20+
// }
21+
// },
22+
// modes: { light: 'host', dark: 'host' }
23+
// }).add('{block;fg:fade}_:where(p)_code:before').text).toBe(':host(.light){--fade:204 204 204}:host(.dark){--fade:51 51 51}.\\{block\\;fg\\:fade\\}_\\:where\\(p\\)_code\\:before :where(p) code:before{display:block;color:rgb(var(--fade))}')
524
expect(new MasterCSS({
625
variables: {
726
fade: {
827
'@light': '#cccccc',
9-
'@dark': '#333333'
28+
'@dark': '#333333',
29+
'@darker': '#222222'
1030
}
1131
},
12-
modes: { light: 'media', dark: 'media' }
13-
}).add('{block;fg:fade}_:where(p)_code:before').text).toBe('@media(prefers-color-scheme:light){:root{--fade:204 204 204}}@media(prefers-color-scheme:dark){:root{--fade:51 51 51}}.\\{block\\;fg\\:fade\\}_\\:where\\(p\\)_code\\:before :where(p) code:before{display:block;color:rgb(var(--fade))}')
14-
expect(new MasterCSS({ ...config, modes: { light: 'host', dark: 'host' } }).add('fg:primary')?.text).toBe(':root{--primary:0 0 0}:host(.light){--primary:0 0 0}:host(.dark){--primary:255 255 255}.fg\\:primary{color:rgb(var(--primary))}')
15-
expect(new MasterCSS({
16-
variables: {
17-
fade: {
18-
'@light': '#cccccc',
19-
'@dark': '#333333'
20-
}
21-
},
22-
modes: { light: 'host', dark: 'host' }
23-
}).add('{block;fg:fade}_:where(p)_code:before').text).toBe(':host(.light){--fade:204 204 204}:host(.dark){--fade:51 51 51}.\\{block\\;fg\\:fade\\}_\\:where\\(p\\)_code\\:before :where(p) code:before{display:block;color:rgb(var(--fade))}')
32+
modes: { light: false }
33+
}).add('{block;fg:fade}_:where(p)_code:before').text).toBe('.dark{--fade:51 51 51}.\\{block\\;fg\\:fade\\}_\\:where\\(p\\)_code\\:before :where(p) code:before{display:block;color:rgb(var(--fade))}')
2434
})
2535

0 commit comments

Comments
 (0)