diff --git a/packages/core/src/generator/index.ts b/packages/core/src/generator/index.ts index b895a7ff60..099a78e634 100644 --- a/packages/core/src/generator/index.ts +++ b/packages/core/src/generator/index.ts @@ -637,8 +637,8 @@ export function createGenerator(config?: UserConfig(config, defaults) } -export const regexScopePlaceholder = / \$\$ / -export const hasScopePlaceholder = (css: string) => css.match(regexScopePlaceholder) +export const regexScopePlaceholder = /\s\$\$\s+/g +export const hasScopePlaceholder = (css: string) => css.match(/\s\$\$\s/) function applyScope(css: string, scope?: string) { if (hasScopePlaceholder(css)) diff --git a/test/__snapshots__/preset-mini.test.ts.snap b/test/__snapshots__/preset-mini.test.ts.snap index b7d6f1b844..4007accfd2 100644 --- a/test/__snapshots__/preset-mini.test.ts.snap +++ b/test/__snapshots__/preset-mini.test.ts.snap @@ -7,6 +7,12 @@ exports[`preset-mini > custom var prefix 1`] = ` .scale-100{--hi-scale-x:1;--hi-scale-y:1;transform:translateX(var(--hi-translate-x)) translateY(var(--hi-translate-y)) translateZ(var(--hi-translate-z)) rotate(var(--hi-rotate)) rotateX(var(--hi-rotate-x)) rotateY(var(--hi-rotate-y)) rotateZ(var(--hi-rotate-z)) skewX(var(--hi-skew-x)) skewY(var(--hi-skew-y)) scaleX(var(--hi-scale-x)) scaleY(var(--hi-scale-y)) scaleZ(var(--hi-scale-z));}" `; +exports[`preset-mini > dark class 1`] = ` +"/* layer: default */ +.dark .hello .dark\\\\:scope-\\\\[\\\\.hello\\\\]\\\\:text-1\\\\/2{font-size:0.25rem;line-height:0.5rem;} +.light [world] .scope-\\\\[\\\\[world\\\\]\\\\]\\\\:light\\\\:text-1\\\\/3{font-size:0.25rem;line-height:0.75rem;}" +`; + exports[`preset-mini > dark customizing selector 1`] = ` "/* layer: default */ [data-mode=\\"dark\\"] .dark\\\\:bg-white{--un-bg-opacity:1;background-color:rgba(255,255,255,var(--un-bg-opacity));} diff --git a/test/preset-mini.test.ts b/test/preset-mini.test.ts index b751322cc7..2666047371 100644 --- a/test/preset-mini.test.ts +++ b/test/preset-mini.test.ts @@ -159,4 +159,21 @@ describe('preset-mini', () => { expect(uno.config.theme.fontSize.lg).toEqual(['3rem', '1.5em']) expect(css).toMatchSnapshot() }) + + test('dark class', async () => { + const uno = createGenerator({ + presets: [ + presetMini(), + ], + }) + + const { css } = await uno.generate([ + 'dark:scope-[.hello]:text-1/2', + 'scope-[[world]]:light:text-1/3', + ].join(' '), { + preflights: false, + }) + + expect(css).toMatchSnapshot() + }) })