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

tailwind-plugin-realtime-colors

v1.2.0

Published

A Tailwind CSS plugin that allows you to load colors from URL of Realtime Colors

Downloads

85

Readme

✨ Tailwind Plugin Realtime Colors

This plugin allows you to load colors from URL of Realtime Colors.


❄️ Installation

First install the package using a package manager of your choice.

# using npm
npm install tailwind-plugin-realtime-colors
# or pnpm
pnpm install tailwind-plugin-realtime-colors
# or bun
bun add tailwind-plugin-realtime-colors

If you haven't setup Tailwind CSS yet, you can follow the official guide.

Now go to Realtime Colors and choose your colors and copy the URL.

Now add the plugin to your tailwind.config.js file.

// tailwind.config.js

// Using ESM Syntax
import realtimeColors from "tailwind-plugin-realtime-colors";
export default {
  // ...
  plugins: [realtimeColors("https://www.realtimecolors.com/?colors=...")],
  // ...
};

// Using CommonJS Modules
const realtimeColors = require("tailwind-plugin-realtime-colors");
module.exports = {
  // ...
  plugins: [realtimeColors("https://www.realtimecolors.com/?colors=...")],
  // ...
};

Paste the your url as the argument for the plugin.

Now you can use the colors in your CSS.

<div class="bg-primary-500 text-text hover:bg-secondary-400/90">
  Hello World
</div>

🛠️ Configuration

You can configure the plugin by either passing an url and a optional config object or by passing a config object with colors.

realtimeColors("https://www.realtimecolors.com/?colors=...", {
  theme: true,
});

// or pass a config object with colors
realtimeColors({
  colors: {
    text: "#ededee",
    background: "#0c0d13",
    primary: "#9aa5d1",
    secondary: "#243579",
    accent: "#3053dc",
  },
  theme: true,
});

🔎 Options

| Option | Type | Default | Description | | ---------------- | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------- | | colors | object | {} | The colors to use. If you pass an url, this will be ignored. | | theme | boolean | true | Whether to generate invert variant and use them with css variables. | | shades | string[] | ["primary", "secondary", "accent"] | The colors to generate shades of | | prefix | string | "" | The prefix to use for the colors. | | shadeAlgorithm | string | "tailwind" | The algorithm to use for generating shades. See Shading Algorithms | | colorFormat | string | "rgb" | The format to use for the colors. Can be rgb, hsl, lch, lab |

🎨 Shading Algorithms

| Algorithm | Description | Notes | | ---------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | tailwind | Uses a Tint and Shade based approach like TailwindCSS. | Generates better results. This is the default. | | realtimeColors | Uses the same algorithm like Realtime Colors. | Shades are not that great. You can use this if you want feature parity with Realtime Colors. |

🔥 Dynamic Colors

This doesn't work with URL based colors.

Sometimes you may want to use dynamic colors based on user preferences. To skip generating a color at build time, you can pass dynamic() as the color value.

realtimeColors({
  colors: {
    text: "#ededee",
    background: "#0c0d13",
    primary: "dynamic()",
    secondary: "#243579",
    accent: "#3053dc",
  },
  theme: true,
});

This will skip generating the primary color in the CSS. You will need to manually set the primary color using CSS variables. To help in generating the CSS, you can use the new helper functions exported along with the plugin.

import { generateDynamicPalette, invertColor } from "tailwind-plugin-realtime-colors";

const primaryColor = getPrimaryColorSomehow();

// You can also pass a config object as the second argument
const palette = generateDynamicPalette({primary: primaryColor});
const darkPalette = generateDynamicPalette(invertColor({primary: primaryColor}));

// Now you can use the styles in your CSS
for (const [key, value] of Object.entries(palette)) {
  document.documentElement.style.setProperty(key, value);
}
// Use dark palette for dark mode later

🏗️ How to contribute

🐛 Reporting Bugs

If you encounter any bugs, please report them in the Issues.

🎋 Adding new features

You need to first fork this repository and then clone it to your local machine.

git clone https://github.com/<your-username>/tailwind-plugin-realtime-colors
cd tailwind-plugin-realtime-colors

Now you need to create a new branch for your changes. For features, you may want to use feat/<feature-name> as the branch name.

git checkout -b feat/<feature-name>

Now you can make your changes. After you are done, you need to commit your changes.

git add .
git commit -m "feat: ✨ My Awesome feature"

We follow Conventional Commits for commit messages.

Now you need to push the changes to your forked repository.

git push origin feat/<feature-name>

Now you need to create a Pull Request to the original repository. And you are done!

We will review your changes and merge them if everything looks good.

💸 Sponsorship

If you find this plugin useful, please consider sponsoring me. This will help me spend more time on these projects.

📜 License

This project is licensed under the MIT License.