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.
- Installation
- Usage
- Utilities
- Applying Image Masks
- Default Values
- Changing Gradient Starting and Ending Points
- Configuration
- Example
- Contributing
- License
- Author
- Acknowledgments
To use this plugin, you need to install it via pnpm, npm or yarn.
pnpm add @designbycode/tailwindcss-mask-image
npm install @designbycode/tailwindcss-mask-image
yarn add @designbycode/tailwindcss-mask-image
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"),
],
};
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.
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. |
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%). |
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>
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 |
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",
// ...
},
},
};
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
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>
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.
This project is licensed under the MIT License - see the LICENSE file for details.
- Github: @designbycode
- Npm: @designbycode_
- 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.