DEV Community

Cover image for How to customize Tailwind CSS Typography
Oz Ertas
Oz Ertas

Posted on • Originally published at ertas.dev

How to customize Tailwind CSS Typography

Tailwind CSS Typography provides a set of prose classes you can use to style your markdown posts. But sometimes the default styles are not enough to hit the mark. That's when Tailwind's customization API swoops in to save the day.

If you don't know what Typography is, you should read How to style markdown with Tailwind CSS to learn more.

Inline code styling that comes default with the plugin is one style that is replaced by many. It inserts back ticks before and after the inline code and makes it bold, instead of the more common approach:

<p> Hello world! </p>

The solution to this is customizing the tailwind.config.js file. This allows you to target specific Tailwind classes and adjust their default behavior.

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      typography: {
        DEFAULT: {
          css: {
            'code': {
              color: "#333",
              // You can also use @apply to inline existing utility classes
              "@apply bg-gray-50 text-gray-700": "",
            },
            'code::before': {
              content: '""'
            },
            'code::after': {
              content: '""'
            }
          }
        }
      },
    },
  },
  plugins: [require("@tailwindcss/typography")],
};
Enter fullscreen mode Exit fullscreen mode

Above example is only modifying the look of the inline code blocks. But the same method applies when altering different selectors.

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      typography: {
        DEFAULT: {
          css: {
            color: '#333',
            a: {
              color: '#3182ce',
              '&:hover': {
                color: '#2c5282',
              },
            },
          },
        },
      }
    },
  },
  plugins: [
    require('@tailwindcss/typography'),
    // ...
  ],
}

Enter fullscreen mode Exit fullscreen mode

You can also add new modifiers by creating a new key under typography.

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      typography: {
        '3xl': {
          css: {
            fontSize: '1.875rem',
            h1: {
              fontSize: '4rem',
            },
            // ...
          },
        },
      },
    }
  },
  plugins: [
    require('@tailwindcss/typography'),
    // ...
  ],
}
Enter fullscreen mode Exit fullscreen mode

If you want to delve into more detail, you can check out the repository.

Top comments (0)