diff --git a/packages/preset-mini/src/_utils/handlers/handlers.ts b/packages/preset-mini/src/_utils/handlers/handlers.ts index cf5d9af88d..391e4d9838 100644 --- a/packages/preset-mini/src/_utils/handlers/handlers.ts +++ b/packages/preset-mini/src/_utils/handlers/handlers.ts @@ -145,10 +145,10 @@ function bracketWithType(str: string, requiredType?: string) { return match .replace(/var\((--.+?)[,)]/g, (match, g1) => { vars.push(g1) - return match.replace(g1, '--v') + return match.replace(g1, '--un-calc') }) .replace(/(-?\d*\.?\d(?!\b-\d.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, '$1 $2 ') - .replace('--v', () => vars.shift()!) + .replace(/--un-calc/g, () => vars.shift()!) }) } } diff --git a/test/handler.test.ts b/test/handler.test.ts index 59bbbcde1a..1c02c1ce02 100644 --- a/test/handler.test.ts +++ b/test/handler.test.ts @@ -11,6 +11,8 @@ describe('value handler', () => { expect(h.bracket('[calc(1+2)]')).eql('calc(1 + 2)') expect(h.bracket('[calc(1/2)]')).eql('calc(1 / 2)') expect(h.bracket('[calc(1*2)]')).eql('calc(1 * 2)') + + expect(h.bracket('[calc(var(--min-width)_-_2_*_var(--col-gap))]')).eql('calc(var(--min-width) - 2 * var(--col-gap))') }) test('bracket curly', () => {