2.0.0 • Published 3 years ago

tailwind-filter-utilities v2.0.0

Weekly downloads
138
License
MIT
Repository
github
Last release
3 years ago

Filter Utilities for Tailwind CSS

Composable filter utilities for Tailwind CSS.

The problem with the filter property is that filters can't be composed using different classes. This plugin uses the same trick Adam Wathan used to get font-variant-numeric utilities working, which makes each and every filter function totally composable!

For example, if you want to increase the brightness of a button when it's being hovered, you can use the hover:brightness-125 utility:

<button class="[your button utils] hover:brightness-125">
    Button text
</button>

And because the filters are composable, you can combine them however you wish. For instance, this will make the element blurry and slightly dim:

<div class="blur brightness-75"></div>

The backdrop-filter property is also supported. Simply prefix the various filter utilities with bg- to get the backdrop variant of the filter. For example, bg-blur bg-brightness-125 will apply backdrop-filter: blur(1px) brightness(1.25);

For that sweet, sweet, frosty Apple effect, you can, for instance, combine the bg-white, bg-opacity-75, and bg-blur-xl classes, as such:

<div class="fixed top-0 left-0 w-full h-16 shadow-sm bg-white bg-opacity-75 bg-blur-xl">
  Frosty Sticky Header
</div>

Installing

Add tailwind-filter-utilities to your NPM dependencies:

npm add -D tailwind-filter-utilities

Add the plugin to your tailwind.config.js:

plugins: [
  require('tailwind-filter-utilities'),
],

Supported Filters

The supported filters are blur, brightness, grayscale, and drop shadow.

Blur

ClassProperties
.blur-xsfilter: blur(0.5px)
.blur-smfilter: blur(1px)
.blurfilter: blur(2px)
.blur-mdfilter: blur(4px)
.blur-lgfilter: blur(10px)
.blur-xlfilter: blur(22px)
.blur-2xlfilter: blur(48px)
ClassProperties
.bg-blur-xsbackdrop-filter: blur(0.5px)
.bg-blur-smbackdrop-filter: blur(1px)
.bg-blurbackdrop-filter: blur(2px)
.bg-blur-mdbackdrop-filter: blur(4px)
.bg-blur-lgbackdrop-filter: blur(10px)
.bg-blur-xlbackdrop-filter: blur(22px)
.bg-blur-2xlbackdrop-filter: blur(48px)

Brightness

ClassProperties
.brightness-25filter: brightness(0.25)
.brightness-50filter: brightness(0.5)
.brightness-75filter: brightness(0.75)
.brightness-100filter: brightness(1)
.brightness-125filter: brightness(1.25)
.brightness-150filter: brightness(1.5)
.brightness-175filter: brightness(1.75)
ClassProperties
.bg-brightness-25backdrop-filter: brightness(0.25)
.bg-brightness-50backdrop-filter: brightness(0.5)
.bg-brightness-75backdrop-filter: brightness(0.75)
.bg-brightness-100backdrop-filter: brightness(1)
.bg-brightness-125backdrop-filter: brightness(1.25)
.bg-brightness-150backdrop-filter: brightness(1.5)
.bg-brightness-175backdrop-filter: brightness(1.75)

Grayscale

ClassProperties
.grayscale-0filter: grayscale(0)
.grayscale-25filter: grayscale(0.25)
.grayscale-50filter: grayscale(0.5)
.grayscale-75filter: grayscale(0.75)
.grayscalefilter: grayscale(1)
ClassProperties
.bg-grayscale-0backdrop-filter: grayscale(0)
.bg-grayscale-25backdrop-filter: grayscale(0.25)
.bg-grayscale-50backdrop-filter: grayscale(0.5)
.bg-grayscale-75backdrop-filter: grayscale(0.75)
.bg-grayscalebackdrop-filter: grayscale(1)

Drop Shadow

ClassProperties
.drop-shadow-xsfilter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.05))
.drop-shadow-smfilter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.05))
.drop-shadowfilter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.06))
.drop-shadow-mdfilter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.06))
.drop-shadow-lgfilter: drop-shadow(0 7px 12px rgba(0, 0, 0, 0.1)) drop-shadow(0 2px 4px rgba(0, 0, 0, 0.05))
.drop-shadow-xlfilter: drop-shadow(0 15px 20px rgba(0, 0, 0, 0.1)) drop-shadow( 0 5px 5px rgba(0, 0, 0, 0.04))
.drop-shadow-2xlfilter: drop-shadow(0 13px 36px rgba(0, 0, 0, 0.25))

Configuration

This plugin is configured like any other Tailwind plugin. For example, if you wish to add additional blur levels, you would do as follows:

// tailwind.config.js
module.exports = {
  theme: {
    extends: {
      blur: {
        '10xl': '9000px',
        // ...
      },
    }
  },
  plugins: [
    require('tailwind-filter-utilities'),
    // ...
  ],
}

For more details on what you can configure and how, please take a look at the default configuration file.

Contributing

If you encounter any problems, or have ideas to improve the plugin, please don't hesitate to submit a pull request. If it's a bug fix, or a not entirely terrible idea, I'll definitely push the merge button! (as long as it doesn't break anything)

MIT License

See the LICENSE file for details.