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

@ngneat/tailwind

v7.0.3

Published

A schematic that adds TailwindCSS to Angular applications

Downloads

21,158

Readme

Angular Tailwind CSS Schematics

This schematic will add Tailwind CSS to your Angular application.

Angular Tailwind CSS Schematics

Versions

| @ngneat/tailwind | AngularCLI | | :----------------- | :------------------- | | v7.x.x | >= 11.2.x | | v6.x.x | >= v11.1.x, < 11.2.x | | v5.2.5 | < v11.1.x |

v7.x.x

In v7, we leverage the built-in TailwindCSS support from AngularCLI if you use AngularCLI >= 11.2. When you invoke the schematics, and you have AngularCLI <11.2 installed, you'll see the following message:

Detected AngularCLI version is 11.0.7 which does not support TailwindCSS natively.
Please run "ng add @ngneat/tailwind@6" for Custom Webpack support.

v6.x.x

The main difference is Angular CLI v11.1+ uses PostCSS 8 already, so we remove that from our dependencies list. To use these schematics at specific version, please use this syntax: ng add @ngneat/[email protected] or npm i -D @ngneat/[email protected]

Usage

ng add @ngneat/tailwind

Usage with Nx

IMPORTANT for AngularCLI users: As of April 06 2021, create-nx-workspace@latest still generates Angular with AngularCLI 11.0.7 which does not have built-in TailwindCSS support. Please update AngularCLI by running ng update @angular/cli before running this schematics.

In Nx, you can either use AngularCLI or NxCLI. If you set up your Nx Workspace to use AngularCLI, the usage is the same as above. If you set up your Nx Workspace with NxCLI, follow the steps:

Install @ngneat/tailwind first:

npm i -D @ngneat/tailwind tailwindcss postcss autoprefixer
yarn add -D @ngneat/tailwind tailwindcss postcss autoprefixer

then execute the schematics:

nx generate @ngneat/tailwind:nx-setup

Manual steps

v7.x.x

In v7, we do not use a Custom Webpack anymore. If you use Custom Webpack, please follow the below guide and use @ngneat/tailwind@6

v6.x.x

If your projects are already using a custom Webpack builder with a custom webpack.config, follow these steps to add TailwindCSS to your project

  • npm i -D @ngneat/tailwind tailwindcss (or yarn add -D @ngneat/tailwind tailwindcss)
  • Import addTailwindPlugin from @ngneat/tailwind in your webpack.config
  • Import your TailwindCSS config in your webpack.config
  • Before you return or modify the original Webpack config, call addTailwindPlugin with the following parameters:
    • webpackConfig: the Webpack config
    • tailwindConfig: the TailwindCSS config that you import
    • patchComponentsStyles?: this flag will enable using TailwindCSS directives in components' stylesheets. Default to false because turning it on might impact your build time
// example
const { addTailwindPlugin } = require('@ngneat/tailwind');
const tailwindConfig = require('relative/path/to/tailwind.config');

module.exports = (config) => {
  addTailwindPlugin({
    webpackConfig: config,
    tailwindConfig,
    patchComponentsStyles: true,
  });
  return config;
};

Angular Material

If you plan to use @ngneat/tailwind with @angular/material, please make sure that you setup @angular/material before @ngneat/tailwind because @angular/material:ng-add schematics will error out if it detects a custom Webpack in your angular.json.

Purge

@ngneat/tailwind uses built-in purge functionality by tailwindcss (under the hood, it is postcss-purgecss). By default, @ngneat/tailwind sets the content to any HTML and any TS files in the project.

This behavior can be modified as the consumers see fit.

Tailwind JIT (v7.x.x only)

In v7, @ngneat/tailwind provides an option to enable JIT mode for TailwindCSS. This is a new compilation mode that improves the compilation time as it does not compile ALL of TailwindCSS anymore but only compiles what you use in your application. This mode is still in preview as of [email protected]

CSS Preprocessors

If you're using CSS Preprocessors (SASS/SCSS, LESS, Stylus) in your application, please check out TailwindCSS's Using with Preprocessors guide

Contributing

  • Fork this repo and clone the fork on your machine.
  • Run npm install to install all the dependencies
  • Start working on changes

Structure

_apps
 |__tailwind-e2e (e2e tests)
_libs
 |__tailwind
    |__src
       |__schematics
          |__ng-add (AngularCLI schematics)
          |__nx-setup (NxCLI schematics)
          |__files (files template to be generated)
          |__specs (unit tests)
          |__schema.d.ts (interface)
       |__constants (constants used in the project)
       |__utils (utilities functions)
       |__collection.json (schematics configuration)
       |__package.json (package.json of @ngneat/tailwind which will be published to npm)

Commit

  • Run git add . to stage your changes
  • Run npm run commit to start Conventional Commit flow

Commit Hooks

pre-commit will execute npm run lint and pretty-quick to lint and reformat.pre-commit does not run Unit Tests because Unit Tests will be ran in Github Actions. Feel free to run the Unit Tests with npm run test to test your changes

E2E Tests

Please run npm run e2e to run E2E tests before pushing

Updating README

README is in two places at the moment: root and libs/tailwind/README.md. The one in root is the one displayed on Github while the one in libs/tailwind is being used on npm. When you make changes to README, make sure to update both.

A script can be created to automating this.

PR

When everything passes and looks good, make a PR. Thanks for your contribution.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!