DEV Community

Cover image for Text-Shadow with TailwindCSS
Claude Myburgh
Claude Myburgh

Posted on

Text-Shadow with TailwindCSS

Adding Text Shadows to Tailwind CSS with a Third-Party Plugin

When working with Tailwind CSS, you're already familiar with its utility-first approach, making styling your applications incredibly efficient. However, sometimes you need features that go beyond the core utility set. One such feature is text shadows, which aren’t natively provided by Tailwind. But don't worry—using a third-party plugin, you can extend Tailwind CSS to include customizable text shadows!

In this post, we'll walk through how to add and customize text shadows in Tailwind CSS using the @designbycode/tailwindcss-text-shadow plugin.

Why Text Shadows?

Text shadows can add a touch of flair and visual depth to your typography, enhancing your site's overall look and feel. Whether you're aiming for subtle elegance or bold emphasis, text shadows are a powerful tool in your design arsenal.

Installation

Before diving into the configuration, you'll first need to add the plugin to your project. Make sure you have Tailwind CSS installed and running. Once ready, install the plugin with your preferred package manager:

Using pnpm:
pnpm add -D @designbycode/tailwindcss-text-shadow
Enter fullscreen mode Exit fullscreen mode
Using npm:
npm install --save-dev @designbycode/tailwindcss-text-shadow
Enter fullscreen mode Exit fullscreen mode
Using yarn:
yarn add -D @designbycode/tailwindcss-text-shadow
Enter fullscreen mode Exit fullscreen mode

Setting Up the Plugin

After installation, you'll need to integrate the plugin into your Tailwind CSS configuration. Open up your tailwind.config.js file and add the plugin to the plugins array:

module.exports = {
    // ...other configurations
    plugins: [
        // ...other plugins
        require("@designbycode/tailwindcss-text-shadow"),
    ],
};
Enter fullscreen mode Exit fullscreen mode

With this setup, you now have access to a variety of utility classes that let you easily add and customize text shadows.

Using the Text Shadow Utilities

Once the plugin is integrated, adding text shadows is as simple as applying Tailwind classes to your elements. For example:

<h1 class="text-4xl text-shadow">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

This simple setup will add a basic text shadow to the heading element.

Customizing Text Shadows
The plugin doesn't just stop at the default text shadows—you can customize the shadow's blur, color, and positioning.

Blur Modifier
To control the blur of the text shadow, you can use the text-shadow-blur-{value} class:

<h1 class="text-4xl text-shadow text-shadow-blur-2">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

This will make the text shadow softer, spreading it out by 2px.

X and Y Axis Offsets
You can also control the horizontal and vertical positioning of the shadow with the text-shadow-x-{value} and text-shadow-y-{value} classes:

<h1 class="text-4xl text-shadow text-shadow-x-md text-shadow-y-lg text-shadow-blur-2">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

In this example, the shadow is shifted on the x-axis by a medium value and the y-axis by a large value, giving the shadow a slightly diagonal effect.

Color Customization

Text shadow colors can be customized using Tailwind's color palette, allowing you to match your design system:

<h1 class="text-4xl text-shadow text-shadow-red-500">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

Here, the shadow will appear in a vivid red. You can also specify arbitrary color values for more control:

<h1 class="text-4xl text-shadow text-shadow-[rgba(0,0,0,0.5)]">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

Opacity Control

To change the opacity of the text shadow color, you can append an opacity value using Tailwind's color opacity utilities:

<h1 class="text-shadow text-shadow-red-500/20">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

This reduces the opacity of the red shadow, making it more transparent.

Long Shadows

The plugin also introduces an long shadow feature, perfect for adding a dramatic, stacked shadow effect:

<h1 class="text-shadow-[1000]">Hello, Tailwind CSS!</h1>
Enter fullscreen mode Exit fullscreen mode

This applies a long shadow to the text, making it appear like it's stretching into the distance.

Customizing the Prefix

// Change the class names
module.exports = {
    theme: {
        prefix: 'ts',
    },
};

Enter fullscreen mode Exit fullscreen mode

Now, instead of using text-shadow, you can use ts as the prefix:

<div class="ts-lg ts-indigo-500"></div>
Enter fullscreen mode Exit fullscreen mode

Wrapping Up

Extending Tailwind CSS with third-party plugins like @designbycode/tailwindcss-text-shadow gives you the flexibility to introduce more nuanced styling options. Whether you're adding a subtle depth to text or going for a bold, creative design, text shadows can elevate the look of your typography. Best of all, integrating the plugin is simple, and the utilities are fully customizable to fit your needs.

Now that you’ve learned how to set up text shadows in Tailwind CSS, go ahead and experiment with different shadow effects to enhance your next project!

Top comments (9)

Collapse
 
wizard798 profile image
Wizard

A demo would've worked very well, still thanks for this

Collapse
 
claudemyburgh profile image
Claude Myburgh
Collapse
 
wizard798 profile image
Wizard

Thanks

Collapse
 
andrewbaisden profile image
Andrew Baisden

Love Tailwind CSS. A codepen demo would be useful though to see it in action.

Collapse
 
claudemyburgh profile image
Claude Myburgh

I’d love to provide a CodePen example, but third-party plugins don’t seem to work on CodePen or Tailwind Play. However, you can view an example on my website: designbycode.co.za/open-source/npm...

Collapse
 
martinbaun profile image
Martin Baun

Same here. It solves some problems that I find very valuable.

Collapse
 
tanmayagrawal profile image
Tanmay Agrawal

OMFG text shadow was much needed in tailwind. Thanks for informing!

Collapse
 
serhiyandryeyev profile image
Serhiy

Insightful for me! Thanks!

Collapse
 
claudemyburgh profile image
Claude Myburgh

👋 Thanks! 😊