Skip to main

TailwindCSS Image Mask Plugin

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

Installation

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

Example

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 TailwindCSS 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>

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 TailwindCSS 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>

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.

Contributors

contrib

License

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

Acknowledgments

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

©2024 DesignByCode, Inc. All rights reserved.

Design & Developed by DesignByCode