npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tailwindcss-injector

v0.1.5

Published

tsup(esbuild) build package template

Downloads

631

Readme

TailwindCSS Injector

English | 中文


Overview

tailwindcss-injector is a library designed to dynamically inject TailwindCSS directives and configurations into your CSS workflow. It includes a PostCSS plugin that supports multiple file extensions, dynamic configuration, and flexible filtering, enabling seamless integration into modern build pipelines.


Features

  • Dynamic Directive Injection: Automatically inserts TailwindCSS directives like @tailwind base, @tailwind components, and @tailwind utilities.
  • Multi-extension Support: Processes files with customizable extensions (e.g., .html, .js, .ts).
  • Inline or External Configuration: Accepts inline configuration objects or paths to configuration files.
  • Customizable Filters: Use a filter function to process specific files.
  • TailwindCSS Integration: Dynamically adjusts TailwindCSS configurations per file.

Installation

Install the package and its dependencies:

npm install tailwindcss-injector tailwindcss postcss --save-dev

Usage

To use the PostCSS plugin, import it from tailwindcss-injector/postcss:

Basic Example

const tailwindInjector = require('tailwindcss-injector/postcss')

module.exports = {
  plugins: [
    tailwindInjector({
      cwd: process.cwd(),
      config: './tailwind.config.js',
      directiveParams: ['base', 'components', 'utilities'],
      extensions: ['html', 'js', 'ts'],
      filter: input => !!input?.file && input.file.endsWith('.css'),
    }),
  ],
}

Options

The plugin accepts the following options:

| Option | Type | Description | | ----------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------- | | cwd | string | Current working directory. | | config | string \| Partial<Config> \| (input) => InlineTailwindcssOptions | TailwindCSS configuration file path or inline configuration object. | | directiveParams | ('base' \| 'components' \| 'utilities' \| 'variants')[] | Array of TailwindCSS directives to inject. | | extensions | string[] | Array of supported file extensions. | | filter | (input?: postcss.Input) => boolean | Custom function to filter files to process. |

Example Configuration

{
  cwd: process.cwd(), // Set current working directory
  config: './tailwind.config.js', // Use an external TailwindCSS configuration file
  directiveParams: ['base', 'components', 'utilities'], // Inject directives dynamically
  extensions: ['html', 'js', 'ts'], // Process specific file extensions
  filter: (input) => !!input?.file && input.file.endsWith('.css'), // Filter for CSS files only
}

How It Works

  1. Directive Injection: The plugin ensures that the specified TailwindCSS directives (@tailwind base, @tailwind components, etc.) are injected into the CSS files.

  2. Dynamic Configuration: TailwindCSS configurations are dynamically adjusted based on the processed files, including custom extensions.

  3. File Filtering: Files to process can be filtered using the filter option.

  4. PostCSS Processing: The plugin integrates with PostCSS to apply TailwindCSS transformations seamlessly.


License

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