Typography

Font Size

Utilities for controlling the font size of an element.

Quick reference

Class
Properties
text-xsfont-size: 0.75rem; / 12px / line-height: 1rem; / 16px /
text-smfont-size: 0.875rem; / 14px / line-height: 1.25rem; / 20px /
text-basefont-size: 1rem; / 16px / line-height: 1.5rem; / 24px /
text-lgfont-size: 1.125rem; / 18px / line-height: 1.75rem; / 28px /
text-xlfont-size: 1.25rem; / 20px / line-height: 1.75rem; / 28px /
text-2xlfont-size: 1.5rem; / 24px / line-height: 2rem; / 32px /
text-3xlfont-size: 1.875rem; / 30px / line-height: 2.25rem; / 36px /
text-4xlfont-size: 2.25rem; / 36px / line-height: 2.5rem; / 40px /
text-5xlfont-size: 3rem; / 48px / line-height: 1;
text-6xlfont-size: 3.75rem; / 60px / line-height: 1;
text-7xlfont-size: 4.5rem; / 72px / line-height: 1;
text-8xlfont-size: 6rem; / 96px / line-height: 1;
text-9xlfont-size: 8rem; / 128px / line-height: 1;

Show all classes

Basic usage

Setting the font size

Control the font size of an element using the text-{size} utilities.

Font Size - 图1

  1. <p class="text-sm ...">The quick brown fox ...</p>
  2. <p class="text-base ...">The quick brown fox ...</p>
  3. <p class="text-lg ...">The quick brown fox ...</p>
  4. <p class="text-xl ...">The quick brown fox ...</p>
  5. <p class="text-2xl ...">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:text-base to only apply the text-base utility on hover.

  1. <p class="text-sm hover:text-base">
  2. <!-- ... -->
  3. </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:text-base to apply the text-base utility at only medium screen sizes and above.

  1. <p class="text-sm md:text-base">
  2. <!-- ... -->
  3. </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 10 font-size utilities. You change, add, or remove these by editing the theme.fontSize section of your Tailwind config.

tailwind.config.js

  1. module.exports = {
  2. theme: {
  3. fontSize: {
  4. 'xs': '.75rem',
  5. 'sm': '.875rem',
  6. 'tiny': '.875rem',
  7. 'base': '1rem',
  8. 'lg': '1.125rem',
  9. 'xl': '1.25rem',
  10. '2xl': '1.5rem',
  11. '3xl': '1.875rem',
  12. '4xl': '2.25rem',
  13. '5xl': '3rem',
  14. '6xl': '4rem',
  15. '7xl': '5rem',
  16. }
  17. }
  18. }

Learn more about customizing the default theme in the theme customization documentation.

Providing a default line-height

You can provide a default line-height for each of your font-sizes using a tuple of the form [fontSize, lineHeight] in your tailwind.config.js file.

tailwind.config.js

  1. module.exports = {
  2. theme: {
  3. fontSize: {
  4. sm: ['14px', '20px'],
  5. base: ['16px', '24px'],
  6. lg: ['20px', '28px'],
  7. xl: ['24px', '32px'],
  8. }
  9. }
  10. }

You can also specify a default line-height using object syntax:

tailwind.config.js

  1. module.exports = {
  2. theme: {
  3. fontSize: {
  4. sm: ['14px', {
  5. lineHeight: '20px',
  6. }],
  7. }
  8. }
  9. }

We already provide default line heights for each .text-{size} class.

Providing a default letter-spacing

If you also want to provide a default letter-spacing value for a font size, you can do so using a tuple of the form [fontSize, { letterSpacing, lineHeight }] in your tailwind.config.js file.

tailwind.config.js

  1. module.exports = {
  2. theme: {
  3. fontSize: {
  4. '2xl': ['24px', {
  5. letterSpacing: '-0.01em',
  6. }],
  7. // Or with a default line-height as well
  8. '3xl': ['32px', {
  9. letterSpacing: '-0.02em',
  10. lineHeight: '40px',
  11. }],
  12. }
  13. }
  14. }

Arbitrary values

If you need to use a one-off font-size 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.

  1. <p class="text-[14px]">
  2. <!-- ... -->
  3. </p>

Learn more about arbitrary value support in the arbitrary values documentation.