• Stars
    star
    119
  • Rank 297,930 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

TailwindCSS Plugin that adds variants of pseudo elements.

tailwindcss-pseudo-elements

TailwindCSS Plug-in that adds variants of pseudo elements (::before, ::after, ::first-letter, etc.).



Getting Started

Install

NPM

npm install tailwindcss-pseudo-elements --save-dev

Yarn

yarn add tailwindcss-pseudo-elements -D

Write the configuration for the plug-in

Pass the option object to the plug-in as follows:

module.exports = {
  plugins: [
    require('tailwindcss-pseudo-elements')({
      customPseudoClasses: ['foo'],
      customPseudoElements: ['bar'],
      contentUtilities: false,
      emptyContent: false,
      classNameReplacer: {
        'hover:before:text-black': 'hbt',
      },
    }),
  ],
}

Set the variants

Naming convention of the variants is like pseudo-class:pseudo-class::pseudo-element.
An example configuration is shown below.

module.exports = {
  variants: {
    extend: {
      textColor: [
        'responsive',
        'hover',
        'focus',
        'before',
        'after',
        'hover::before',
        'hover::after',
        'focus::before',
        'checked:hover',
        'checked:hover::before',
      ],
    },
  },
}

Write the HTML

<div
  class="relative
    before:aspect-ratio-4/3
    hover:before:aspect-ratio-1/1
    before:empty-content"
>
  <img class="absolute pin w-full h-full" src="..." />
</div>

Content Property Utilities

There are utilities that set the attributes of HTML elements to the content property.

Mark it up as follows:

<p
  class="content-before content-after content-hover-before"
  tw-content-before="๐Ÿงก"
  tw-content-hover-before="๐Ÿ’–"
  tw-content-after="๐Ÿ’™๏ธ"
>
  Tailwind CSS
</p>

NOTE: If you encounter problems with AMP Validation, you can work around them by setting the prefix with the contentUtilities option.

Empty Property Utility

There is a utility class that sets { content: "" } in the ::before.

<p class="before:empty-content"></p>

Options

customPseudoClasses and customPseudoElements

You can set up your own pseudo-classes and pseudo-elements.

type: string[]
default: []

contentUtilities

Configuration of the Content Property Utilities.

type: boolean | { "prefix": string }
default: { "prefix": "tw-content" }

emptyContent

Whether to generate the Empty Property Utility.

type: boolean default: true

classNameReplacer

You can replace frequently used class names with different names.

type: Record<string, string>
default: {}

Recommended

tailwindcss-aspect-ratio

  plugins: [
    require('tailwindcss-pseudo-elements')(pseudoOptions),
    require('tailwindcss-aspect-ratio')({
      ratios: {
        '16/9': [16, 9],
        '4/3': [4, 3],
        '3/2': [3, 2],
        '1/1': [1, 1],
      },
      variants: ['before', 'hover::before', 'responsive'],
    }),
  ],
}