Skip to content
PluginStats

@thiagormoreira/nightwind weekly downloads statistics

By thiagormoreira · npm · Tailwind plugins

An automatic, overridable, customisable Tailwind dark mode plugin

View on npm Fresh · Oct 18, 2026

@thiagormoreira/nightwind has 15 recorded weekly downloads on npm, a decrease of 51.6% over the past 30 days, ranking #1972 of 2,322 tracked listings.

Weekly downloads
15
Official API · Oct 18, 2026
7-day growth
-76.9%
-50 weekly downloads
30-day growth
-51.6%
-16 weekly downloads
90-day growth
-21.1%
-4 weekly downloads
Rank
#1972
Among tracked npm listings

About @thiagormoreira/nightwind

Nightwind cover image

IMPORTANT: This repository is a maintained fork of the original "nightwind" project (https://github.com/jjranalli/nightwind). This fork is actively maintained, featuring 100% test coverage, support for modern Tailwind CSS (v3+), and additional features like manual dark: overrides.


A Tailwind CSS plugin that gives you an out-of-the-box, customisable, overridable dark mode.

v2.7.0


Nightwind uses the existing Tailwind color palette and your own custom colors to automatically generate the dark mode version of the Tailwind color classes you use.

For example, whenever you use a class like bg-red-600 it gets automatically switched to bg-red-300 in dark mode.

You can see it in action on https://nightwindcss.com

  1. Installation
  2. Helper functions
  3. Animation System
  4. Getting started
  5. Configuration
  6. Color mappings
  7. Overrides
  8. Typography
  9. Tailwind CSS v4 Support

Installation

npm install nightwind

Enable the Dark class variant in your tailwind.config.js file.

// tailwind.config.js - Tailwind ^2.0
module.exports = {
  darkMode: "class",
  // ...
  plugins: [require("nightwind")],
}
In older Tailwind versions (< 2.0)
// tailwind.config.js
module.exports = {
  experimental: {
    darkModeVariant: true,
    applyComplexClasses: true,
  },
  dark: "class",
  // ...
  plugins: [require("nightwind")],
}

Helper functions

Nightwind relies on a fixed 'nightwind' class to manage transitions, and a toggled 'dark' class applied on a top level element in the DOM, typically the root element.

You can define your own functions to manage the dark mode (or check the examples below), or use the helper functions included in 'nightwind/helper.js' to get started right away.

By default, the helper functions prevent the dreaded flicker of light mode and allow the chosen color mode to persist on update.

Initialization

To initialize nightwind, add the following script tag to the head element of your pages.

// React Example
import nightwind from "nightwind/helper"

export default function Layout() {
  return (
    <>
      <Head>
        <script dangerouslySetInnerHTML={{ __html: nightwind.init() }} />
      </Head>
      // ...
    </>
  )
}
Toggle

Similarly, you can use the toggle function to switch between dark and light mode.

// React Example — toggle with animation
import nightwind from 'nightwind/helper'

export default function Navbar() {
  return (
    <>
      {/* Simple toggle with default animation */}
      <button onClick={() => nightwind.toggle()}>Toggle</button>

      {/* Ripple from click point */}
      <button onClick={(e) => nightwind.toggle({ animation: 'ripple', event: e })}>
        Ripple Toggle
      </button>

      {/* Slide from left */}
      <button onClick={() => nightwind.toggle({ animation: 'slide', direction: 'left' })}>
        Slide Toggle
      </button>
    </>
  )
}
Enable mode

If you need to selectively choose between light/dark mode, you can use the enable function. It accepts a boolean argument to enable/disable dark mode.

// React Example
import nightwind from "nightwind/helper"

export default function Navbar() {
  return (
    // ...
    <button onClick={() => nightwind.enable(true)}></button>
    // ...
  )
}
BeforeTransition

Nightwind also exports a beforeTransition function that you can leverage in case you prefer to build your own toggle functions. It prevents unwanted transitions as a side-effect of having nightwind [...]

Check out the toggle function in the Nextjs example below for an example of how this could be implemented.

Animation System

Nightwind includes a built-in animation system powered by the View Transitions API. All animations fall back gracefully to a CSS transition for browsers that don't support the API.

Global Configuration

Configure the animation system once via nightwind.configure():

nightwind.configure({
  animation: {
    default: 'fade',              // Default animation for toggle/enable
    duration: 600,                // Duration in ms
    easing: 'cubic-bezier(0.7, 0, 0.3, 1)', // CSS easing or cubic-bezier
    reverse: false,               // Reverse direction on light mode
    slide: {
      direction: 'left',          // 'left' | 'right' | 'top' | 'bottom'
    },
  },
  transition: {
    duration: 400,                // CSS transition duration (ms)
    easing: 'ease-in-out',
  },
  persistence: true,              // Persist mode in localStorage
  storageKey: 'nightwind-mode',   // localStorage key
})
Per-call Options

Any option can be overridden per call:

// Use ripple just for this click
nightwind.toggle({ animation: 'ripple', event: e })

// Slide from top with custom duration
nightwind.toggle({ animation: 'slide', direction: 'top', duration: 400 })

// Disable animation for this call
nightwind.enable(true, { animation: 'none' })
Available Animations…

Description from the npm listing.

  • tailwind
  • tailwindcss
  • tailwindcss-plugin
  • dark-mode
  • dark-theme
  • postcss
  • css
  • javascript

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@thiagormoreira/nightwind weekly downloads on npm, last 90 days: 15 weekly downloads as of Oct 18, 2026, -21.1% over 90 days.@thiagormoreira/nightwindWeekly downloads on npm · Last 90 days15downloads / week-21.1% over 90 days050100150200250300Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@thiagormoreira/nightwind weekly downloads on npm, last 90 days: 15 weekly downloads as of Oct 18, 2026, -21.1% over 90 days.

7/30/90-day growth

@thiagormoreira/nightwind weekly downloads growth on npm: -76.9% over 7 days, -51.6% over 30 days, -21.1% over 90 days.@thiagormoreira/nightwindWeekly downloads growth on npm15downloads / week now7-day growth-50 weekly downloads-76.9%30-day growth-16 weekly downloads-51.6%90-day growth-4 weekly downloads-21.1%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@thiagormoreira/nightwind weekly downloads growth on npm: -76.9% over 7 days, -51.6% over 30 days, -21.1% over 90 days.

Ranking history

@thiagormoreira/nightwind npm ranking history: currently #1972 (by weekly downloads).@thiagormoreira/nightwindnpm ranking · by weekly downloads · Last 90 days#1972current rank#1880#1900#1920#1940#1960#1980Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@thiagormoreira/nightwind npm ranking history: currently #1972 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 99, #16 (overall #1,976)
All npm: every listing in weekly downloads order

Listing placement

Tailwind plugins252 listings · 13 pages · page 6, #18 (overall #118)
Tailwind plugins: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @thiagormoreira/nightwind
Date (UTC)Weekly downloadsChange vs. previous
15+3
12-2
14-11
25-13
38-15
530
53-12
65-9
74-14
88-5
93+2
91+12
79-3
82—

Similar npm Tailwind plugins plugins

All 20 @thiagormoreira/nightwind alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@thiagormoreira/nightwind. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.