Typography
Font Family
Utilities for controlling the font family of an element.
Quick reference
Class | Properties |
---|---|
font-sans | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, “Helvetica Neue”, Arial, “Noto Sans”, sans-serif, “Apple Color Emoji”, “Segoe UI Emoji”, “Segoe UI Symbol”, “Noto Color Emoji”; |
font-serif | font-family: ui-serif, Georgia, Cambria, “Times New Roman”, Times, serif; |
font-mono | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, “Liberation Mono”, “Courier New”, monospace; |
Basic usage
Setting the font family
You can control the typeface of text using the font family utilities.
<p class="font-sans ...">The quick brown fox ...</p>
<p class="font-serif ...">The quick brown fox ...</p>
<p class="font-mono ...">The quick brown fox ...</p>
Applying conditionally
Hover, focus, and other states
Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:font-serif
to only apply the font-serif
utility on hover.
<p class="font-sans hover:font-serif">
<!-- ... -->
</p>
For a complete list of all available state modifiers, check out the Hover, Focus, & Other States documentation.
Breakpoints and media queries
You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:font-serif
to apply the font-serif
utility at only medium screen sizes and above.
<p class="font-sans md:font-serif">
<!-- ... -->
</p>
To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.
Using custom values
Customizing your theme
By default, Tailwind provides three font family utilities: a cross-browser sans-serif stack, a cross-browser serif stack, and a cross-browser monospaced stack. You can change, add, or remove these by editing the theme.fontFamily
section of your Tailwind config.
tailwind.config.js
module.exports = { theme: { fontFamily: { 'sans': ['ui-sans-serif', 'system-ui', ...], 'serif': ['ui-serif', 'Georgia', ...], 'mono': ['ui-monospace', 'SFMono-Regular', ...], 'display': ['Oswald', ...], 'body': ['"Open Sans"', ...], } }}
Font families can be specified as an array or as a simple comma-delimited string:
{
// Array format:
'sans': ['Helvetica', 'Arial', 'sans-serif'],
// Comma-delimited format:
'sans': 'Helvetica, Arial, sans-serif',
}
Note that Tailwind does not automatically escape font names for you. If you’re using a font that contains an invalid identifier, wrap it in quotes or escape the invalid characters.
{
// Won't work:
'sans': ['Exo 2', ...],
// Add quotes:
'sans': ['"Exo 2"', ...],
// ...or escape the space:
'sans': ['Exo\\ 2', ...],
}
Learn more about customizing the default theme in the theme customization documentation.
Arbitrary values
If you need to use a one-off font-family
value that doesn’t make sense to include in your theme, use square brackets to generate a property on the fly using any arbitrary value.
<p class="font-['Open_Sans']">
<!-- ... -->
</p>
Learn more about arbitrary value support in the arbitrary values documentation.