Skip to content

Commit a708bb0

Browse files
committed
fix: don't match CSS variables as font families
1 parent 728a0f1 commit a708bb0

File tree

5 files changed

+19
-9
lines changed

5 files changed

+19
-9
lines changed

.eslintrc.cjs

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ module.exports = {
99
sourceType: 'module',
1010
},
1111
plugins: ['@typescript-eslint'],
12-
extends: [
13-
'plugin:@typescript-eslint/recommended',
14-
'plugin:prettier/recommended',
15-
'prettier',
16-
],
12+
extends: ['plugin:@typescript-eslint/recommended'],
1713
rules: {
1814
'@typescript-eslint/no-explicit-any': 'off',
1915
},

playground/index.css

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
format('woff2');
1212
}
1313

14+
:root {
15+
/* Adding this manually for now */
16+
--someFont: 'Poppins variant', 'Poppins variant override';
17+
}
18+
1419
h1 {
1520
font-family: 'Poppins variant', sans-serif;
1621
}
@@ -22,3 +27,7 @@ h2 {
2227
p {
2328
font-family: 'Poppins variant';
2429
}
30+
31+
div {
32+
font-family: var(--someFont);
33+
}

playground/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ <h2>A subheading</h2>
2424
veniam commodo duis laboris dolore veniam commodo amet. Officia cillum est sunt anim ullamco
2525
tempor ipsum dolore nisi dolore ut. Velit eu minim minim non laborum exercitation.
2626
</p>
27-
<p>
27+
<div>
2828
Reprehenderit fugiat sit proident id laboris amet nulla quis est dolor consequat ad eiusmod.
2929
Mollit laborum cupidatat nisi commodo enim eiusmod sit. Est dolor ipsum nulla pariatur
3030
pariatur esse ea est labore fugiat eu velit. Minim ex sunt Lorem nisi non officia.
31-
</p>
31+
</div>
3232
</div>
3333
</body>
3434

src/transform.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,12 @@ export const FontaineTransform = createUnplugin(
7474
// Skip font-family definitions _within_ @font-face blocks
7575
if (faceRanges.some(([start, end]) => index > start && index < end))
7676
continue
77-
const families = matchContent.split(',').map(f => f.trim())
77+
const families = matchContent
78+
.split(',')
79+
.map(f => f.trim())
80+
.filter(f => !f.startsWith('var('))
81+
82+
if (!families.length) continue
7883

7984
s.overwrite(
8085
index,

test/e2e.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe('fontaine', () => {
1616
// @ts-expect-error there must be a file or we _want_ a test failure
1717
const css = await readFile(join(assetsDir, cssFile), 'utf-8')
1818
expect(css.replace(/\.[\w]+\.woff2/g, '.woff2')).toMatchInlineSnapshot(`
19-
"@font-face{font-family:Poppins variant override;src:local(\\"Arial\\");ascent-override:105%;descent-override:35%;line-gap-override:10%}@font-face{font-family:Poppins variant;font-display:swap;src:url(/assets/font.707fdc5c.ttf) format(\\"truetype\\")}@font-face{font-family:Roboto override;src:local(\\"Arial\\");ascent-override:92.7734375%;descent-override:24.4140625%;line-gap-override:0%}@font-face{font-family:Roboto;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format(\\"woff2\\")}h1{font-family:Poppins variant,Poppins variant override,sans-serif}h2{font-family:Roboto,Roboto override,Arial,Helvetica,sans-serif}p{font-family:Poppins variant,Poppins variant override}
19+
"@font-face{font-family:Poppins variant override;src:local(\\"Arial\\");ascent-override:105%;descent-override:35%;line-gap-override:10%}@font-face{font-family:Poppins variant;font-display:swap;src:url(/assets/font.707fdc5c.ttf) format(\\"truetype\\")}@font-face{font-family:Roboto override;src:local(\\"Arial\\");ascent-override:92.7734375%;descent-override:24.4140625%;line-gap-override:0%}@font-face{font-family:Roboto;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format(\\"woff2\\")}:root{--someFont: \\"Poppins variant\\", \\"Poppins variant override\\"}h1{font-family:Poppins variant,Poppins variant override,sans-serif}h2{font-family:Roboto,Roboto override,Arial,Helvetica,sans-serif}p{font-family:Poppins variant,Poppins variant override}div{font-family:var(--someFont)}
2020
"
2121
`)
2222
})

0 commit comments

Comments
 (0)