Refactor fontVariantNumeric to remove mode condition

This commit is contained in:
Adam Wathan 2021-04-30 12:04:23 -04:00
parent 297cb675df
commit cc4d1d2658
2 changed files with 46 additions and 77 deletions

View File

@ -1,81 +1,50 @@
let fontVariantBaseStyles = {
'.ordinal, .slashed-zero, .lining-nums, .oldstyle-nums, .proportional-nums, .tabular-nums, .diagonal-fractions, .stacked-fractions': {
'--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',
'font-variant-numeric':
'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)',
},
}
export default function () {
return function ({ config, matchUtilities, addUtilities, variants }) {
if (config('mode') === 'jit') {
matchUtilities({
'normal-nums': fontVariantBaseStyles,
ordinal: fontVariantBaseStyles,
'slashed-zero': fontVariantBaseStyles,
'lining-nums': fontVariantBaseStyles,
'oldstyle-nums': fontVariantBaseStyles,
'proportional-nums': fontVariantBaseStyles,
'tabular-nums': fontVariantBaseStyles,
'diagonal-fractions': fontVariantBaseStyles,
'stacked-fractions': fontVariantBaseStyles,
})
matchUtilities({
'normal-nums': { '.normal-nums': { 'font-variant-numeric': 'normal' } },
ordinal: { '.ordinal': { '--tw-ordinal': 'ordinal' } },
'slashed-zero': { '.slashed-zero': { '--tw-slashed-zero': 'slashed-zero' } },
'lining-nums': { '.lining-nums': { '--tw-numeric-figure': 'lining-nums' } },
'oldstyle-nums': { '.oldstyle-nums': { '--tw-numeric-figure': 'oldstyle-nums' } },
'proportional-nums': {
'.proportional-nums': { '--tw-numeric-spacing': 'proportional-nums' },
return function ({ addUtilities, variants }) {
addUtilities(
{
'.ordinal, .slashed-zero, .lining-nums, .oldstyle-nums, .proportional-nums, .tabular-nums, .diagonal-fractions, .stacked-fractions': {
'--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',
'--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',
'font-variant-numeric':
'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)',
},
'tabular-nums': { '.tabular-nums': { '--tw-numeric-spacing': 'tabular-nums' } },
'diagonal-fractions': {
'.diagonal-fractions': { '--tw-numeric-fraction': 'diagonal-fractions' },
},
variants('fontVariantNumeric')
)
addUtilities(
{
'.normal-nums': {
'font-variant-numeric': 'normal',
},
'stacked-fractions': {
'.stacked-fractions': { '--tw-numeric-fraction': 'stacked-fractions' },
'.ordinal': {
'--tw-ordinal': 'ordinal',
},
})
} else {
addUtilities(
{
...fontVariantBaseStyles,
'.normal-nums': {
'font-variant-numeric': 'normal',
},
'.ordinal': {
'--tw-ordinal': 'ordinal',
},
'.slashed-zero': {
'--tw-slashed-zero': 'slashed-zero',
},
'.lining-nums': {
'--tw-numeric-figure': 'lining-nums',
},
'.oldstyle-nums': {
'--tw-numeric-figure': 'oldstyle-nums',
},
'.proportional-nums': {
'--tw-numeric-spacing': 'proportional-nums',
},
'.tabular-nums': {
'--tw-numeric-spacing': 'tabular-nums',
},
'.diagonal-fractions': {
'--tw-numeric-fraction': 'diagonal-fractions',
},
'.stacked-fractions': {
'--tw-numeric-fraction': 'stacked-fractions',
},
'.slashed-zero': {
'--tw-slashed-zero': 'slashed-zero',
},
variants('fontVariantNumeric')
)
}
'.lining-nums': {
'--tw-numeric-figure': 'lining-nums',
},
'.oldstyle-nums': {
'--tw-numeric-figure': 'oldstyle-nums',
},
'.proportional-nums': {
'--tw-numeric-spacing': 'proportional-nums',
},
'.tabular-nums': {
'--tw-numeric-spacing': 'tabular-nums',
},
'.diagonal-fractions': {
'--tw-numeric-fraction': 'diagonal-fractions',
},
'.stacked-fractions': {
'--tw-numeric-fraction': 'stacked-fractions',
},
},
variants('fontVariantNumeric')
)
}
}

View File

@ -543,12 +543,12 @@
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums {
--tw-numeric-spacing: tabular-nums;
}
.ordinal {
--tw-ordinal: ordinal;
}
.tabular-nums {
--tw-numeric-spacing: tabular-nums;
}
.diagonal-fractions {
--tw-numeric-fraction: diagonal-fractions;
}