Skip to content

designbycode/tailwindcss-mask-image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Title banner

Tailwind CSS Image Mask Plugin

npm version npm NPM npm bundle size ts GitHub stars HitCount

NPM

The Tailwind CSS Image Mask Plugin is a custom plugin that extends Tailwind CSS with utilities for applying image masks using CSS gradients. With this plugin, you can easily create image masks with different directions and gradient styles.

Mask Image Plugin

๐Ÿ“‡ Table of Contents

Installation

To use this plugin, you need to install it via pnpm, npm or yarn.

Using pnpm

pnpm add @designbycode/tailwindcss-mask-image

Using npm

npm install @designbycode/tailwindcss-mask-image

Using yarn

yarn add @designbycode/tailwindcss-mask-image

Usage

Once the plugin is installed, you can enable it in your Tailwind CSS configuration file. Usually, this file is named tailwind.config.js.

module.exports = {
    // ...other configurations
    plugins: [
        // ...other plugins
        require("@designbycode/tailwindcss-mask-image"),
    ],
};

Utilities

The plugin generates several utility classes for applying image masks using CSS gradients. You can use these utility classes to easily apply masks to any element in your HTML.

Applying Image Masks

To make it work you only need to add the class of .mask-image-{value} to you html. The rest off the classes is just modifiers.

<div class="mask-image-r"></div>

You can apply image masks by using the following utility classes:

Css class name Description
.mask-image-t Applies a mask from top to bottom.
.mask-image-tr Applies a mask from top left to bottom right.
.mask-image-tl Applies a mask from top right to bottom left.
.mask-image-b Applies a mask from bottom to top.
.mask-image-br Applies a mask from bottom left to top right.
.mask-image-bl Applies a mask from bottom right to top left.
.mask-image-r Applies a mask from left to right.
.mask-image-l Applies a mask from right to left.

Default Values

The plugin sets some default CSS variables in the :root element, which define the default values for the color and direction of the image masks.

Css Variable Description
--mask-image-start-{value} Default gradient starting point (default: 0%)
--mask-image-end-{value} Default gradient ending point (default: 100%).

Changing Gradient Starting and Ending Points

You can dynamically change the starting and ending points of the gradient using the following utility classes:

  • .mask-image-start-0 to .mask-image-start-100: Changes the --mask-image-start variable to the specified percentage value.

  • .mask-image-end-0 to .mask-image-end-100: Changes the --mask-image-end variable to the specified percentage value.

<div class="mask-image-b mask-image-start-25 mask-image-end-75"></div>
<!-- or by arbitrary value -->
<div class="mask-image-[73%] mask-image-start-[33%] mask-image-end-[66%]"></div>

Available percentage values for --mask-image-start and --mask-image-end:

Key Value Output
0 "0%" .mask-image-start-0
5 "5%" .mask-image-start-5
10 "10%" .mask-image-start-10
15 "15%" .mask-image-start-15
20 "20%" .mask-image-start-20
25 "25%" .mask-image-start-25
30 "30%" .mask-image-start-30
40 "40%" .mask-image-start-40
45 "45%" .mask-image-start-45
50 "50%" .mask-image-start-50
55 "55%" .mask-image-start-55
60 "60%" .mask-image-start-60
70 "70%" .mask-image-start-70
75 "75%" .mask-image-start-75
80 "80%" .mask-image-start-80
85 "85%" .mask-image-start-85
90 "90%" .mask-image-start-90
95 "95%" .mask-image-start-95
100 "100%" .mask-image-start-100

Configuration

The plugin allows you to customize the gradient steps and directions by modifying the theme object in your Tailwind CSS configuration file.

// tailwind.config.js

module.exports = {
    // ...other configurations
    plugins: [
        // ...other plugins
        require("@designbycode/tailwindcss-mask-image"),
    ],
    theme: {
        imageMaskSteps: {
            // Add your custom gradient steps here
            0: "0%",
            10: "10%",
            25: "25%",
            // ...
        },
        imageMaskDirections: {
            // Add your custom mask directions here
            t: "to top",
            b: "to bottom",
            // ...
        },
    },
};

Example

Here's an example of how you can use the utility classes to apply image masks:

<div class="mask-image-t mask-image-start-30 mask-image-end-70">
    <!-- Your content here -->
</div>

Note New to v2. Start and end color opacity

Opacity for start and end Color

You can set the opacity for start and end color for more control over the mask.

<div class="mask-image-t mask-image-start-opacity-50 mask-image-end-opacity-70">
    <!-- Your content here -->
</div>

The arbitrary value have a range from 0 to 100 for even more control over the mask.

<div class="mask-image-t mask-image-start-opacity-[55] mask-image-end-opacity-[20]">
    <!-- Your content here -->
</div>

Contributing

Contributions to this plugin are welcome! If you encounter any issues, have feature requests, or want to improve the plugin, feel free to create a pull request or submit an issue on the GitHub repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Claude Myburgh

Claude Myburgh

Acknowledgments

  • This plugin is inspired by the needs of web developers using Tailwind CSS.
  • Special thanks to the Tailwind CSS team for creating such an amazing framework.