Skip to content

Instantly share code, notes, and snippets.

@brennanangel
Last active January 12, 2025 14:36
Show Gist options
  • Save brennanangel/2f5b511d87bf6161c3c80dc55372856a to your computer and use it in GitHub Desktop.
Save brennanangel/2f5b511d87bf6161c3c80dc55372856a to your computer and use it in GitHub Desktop.
TailwindCSS plugin for variable fonts
@tailwind base;
@tailwind components;
@tailwind utilities;
i, em {
@apply italic;
}
}
const plugin = require("tailwindcss/plugin");
const fontVariationSettings = plugin(function ({ addUtilities }) {
addUtilities({
".font-thin": {
fontWeight: 100,
fontVariationSettings: '"wght" 100',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 100',
},
},
});
addUtilities({
".font-extralight": {
fontWeight: 200,
fontVariationSettings: '"wght" 200',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 200',
},
},
});
addUtilities({
".font-light": {
fontWeight: 300,
fontVariationSettings: '"wght" 300',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 300',
},
},
});
addUtilities({
".font-normal": {
fontWeight: 400,
fontVariationSettings: '"wght" 400',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 400',
},
},
});
addUtilities({
".font-medium": {
fontWeight: 500,
fontVariationSettings: '"wght" 500',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 500',
},
},
});
addUtilities({
".font-semibold": {
fontWeight: 600,
fontVariationSettings: '"wght" 600',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 600',
},
},
});
addUtilities({
".font-bold": {
fontWeight: 700,
fontVariationSettings: '"wght" 700',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 700',
},
},
});
addUtilities({
".font-extrabold": {
fontWeight: 800,
fontVariationSettings: '"wght" 800',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 800',
},
},
});
addUtilities({
".font-black": {
fontWeight: 900,
fontVariationSettings: '"wght" 900',
"&.italic": {
fontVariationSettings: '"slnt" 1, "wght" 900',
},
},
});
addUtilities({
".italic": {
fontStyle: "italic",
fontVariationSettings: '"slnt" 1',
},
});
});
module.exports = fontVariationSettings;
module.exports = {
corePlugins: {
fontWeight: false
},
plugins: [
require("./fontVariationSettingsPlugin"),
],
};
@jereswinnen
Copy link

Thanks for this! I’m having trouble using the “wdth” setting in this setup. For some reason, it’s not working with Instrument Sans that I’m importing from Google Fonts. You have any idea? Thanks!

@izznat
Copy link

izznat commented Feb 5, 2024

Thanks for this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment