Back to all posts
Styling Your Markdown Content with Tailwind Typography

Styling Your Markdown Content with Tailwind Typography

Styling Your Markdown Content with Tailwind Typography

When building content-heavy websites like blogs, documentation sites, or portfolios, you often need to render rich text content. Markdown is a popular choice for writing such content, but styling it consistently can be challenging. This is where Tailwind's Typography plugin comes in.

What is Tailwind Typography?

The Typography plugin for Tailwind CSS provides a set of ready-to-use styles for your HTML content. It's designed to make your prose look great right out of the box.

Key Features

  • Responsive typography: Text sizes adjust appropriately for different screen sizes
  • Balanced headings: Properly sized and weighted headings (h1-h6)
  • Consistent spacing: Margins and line heights that create a pleasant reading experience
  • Styled elements: Lists, blockquotes, code blocks, tables, and more

Getting Started

To use the Typography plugin, you first need to install it:

npm install -D @tailwindcss/typography

Then, add it to your tailwind.config.js file:

module.exports = {
  theme: {
    // ...
  },
  plugins: [
    require('@tailwindcss/typography'),
    // ...
  ],
}

Basic Usage

Once installed, you can apply typography styles to any block of content by adding the prose class:

<article class="prose">
  <!-- Your markdown content rendered as HTML -->
</article>

Adjusting Size

The plugin comes with different size modifiers:

  • prose-sm: Smaller text
  • prose: Default size
  • prose-lg: Larger text
  • prose-xl: Extra large text
  • prose-2xl: Double extra large text
<article class="prose prose-lg">
  <!-- Larger typography -->
</article>

Customizing Typography

Color Themes

The plugin includes several color themes:

  • prose-gray (default)
  • prose-slate
  • prose-zinc
  • prose-neutral
  • prose-stone

For dark mode support, add dark:prose-invert:

<article class="prose dark:prose-invert">
  <!-- Content that works in both light and dark modes -->
</article>

Element-Specific Customization

You can target specific elements with modifiers:

<article class="prose prose-img:rounded-xl prose-headings:underline prose-a:text-blue-600">
  <!-- Content with custom styles for images, headings, and links -->
</article>

Advanced Customization

For more advanced customization, you can modify the Typography plugin's default styles in your Tailwind configuration:

module.exports = {
  theme: {
    extend: {
      typography: (theme) => ({
        DEFAULT: {
          css: {
            color: theme('colors.gray.800'),
            a: {
              color: theme('colors.blue.600'),
              '&:hover': {
                color: theme('colors.blue.800'),
              },
            },
            // Add more custom styles here
          },
        },
      }),
    },
  },
  plugins: [require('@tailwindcss/typography')],
}

Example: Code Block Styling

Here's a sample code block to demonstrate syntax highlighting:

import React from 'react';

function ExampleComponent({ title, description }) {
  return (
    <div className="card">
      <h2 className="text-xl font-bold">{title}</h2>
      <p className="mt-2 text-gray-600">{description}</p>
      <button 
        className="mt-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
        onClick={() => alert('Hello!')}
      >
        Click me
      </button>
    </div>
  );
}

Tables

Typography plugin also styles tables beautifully:

FeatureDescriptionDefault
ResponsiveAdjusts for screen sizeYes
Dark modeSupports dark themeWith prose-invert
CustomizableCan be extendedYes
Size variantsDifferent text sizes5 options

Lists

The plugin handles various list types:

Unordered Lists

  • Typography makes lists look great
  • With proper spacing and bullets
  • And nested lists
    • Like this one
    • Are properly indented

Ordered Lists

  1. First item
  2. Second item
  3. Third item with sub-items:
    1. Sub-item one
    2. Sub-item two

Blockquotes

The Typography plugin styles blockquotes with a subtle border and italic text, making quoted content stand out beautifully within your documents.

— Typography Enthusiast

Conclusion

Tailwind's Typography plugin is an excellent tool for styling Markdown content with minimal effort. It provides a solid foundation that you can customize to match your design system.

By leveraging this plugin, you can focus on writing great content without worrying about the underlying styles needed to make it look professional.


This post was written to demonstrate the capabilities of the Tailwind Typography plugin.