JavaScript Color Gradient Generator
javascript-color-gradient is a lightweight JavaScript library designed for generating an array of color gradients. It allows users to define a gradient by providing two or more hexadecimal start and end colors, along with the desired number of midpoints. The library is currently at version 2.5.0 and appears to have an active, though not rapid, release cadence with updates focused on improvements and bug fixes, such as refactoring color generation logic and adding support for short hex codes in its most recent release. Its key differentiator is its simplicity and direct focus on generating color arrays for gradients, making it suitable for web and Node.js projects requiring programmatic color interpolation without complex UI components. It avoids external dependencies, offering a lean solution for color manipulation.
Common errors
-
SyntaxError: Cannot use import statement outside a module
cause Attempting to use ES module `import` syntax in a CommonJS environment (e.g., a Node.js script without 'type: module' in package.json, or an older browser without transpilation/bundling).fixFor Node.js, ensure your `package.json` includes `"type": "module"`. For browser environments, use a bundler (Webpack, Rollup, Parcel) to transpile the module, or serve it in a `<script type="module">` tag. Alternatively, consider dynamic `import()` for specific use cases. -
TypeError: Gradient is not a constructor
cause This error typically occurs if `Gradient` is undefined or not correctly imported/exposed. This could be due to a faulty import, or attempting to use a CommonJS `require` in an ESM-only context.fixVerify that `import Gradient from 'javascript-color-gradient'` is correctly placed at the top of your ES module file. Ensure the file itself is treated as an ES module. If using CommonJS for other reasons, dynamic `import()` might be an option. -
TypeError: this.setColorGradient is not a function
cause You are attempting to call `setColorGradient` on an object that is not an instance of the `Gradient` class, likely because the `new Gradient()` part of the chain was omitted or executed incorrectly.fixAlways instantiate the `Gradient` class using `new Gradient()` before calling its methods. The correct pattern is `new Gradient().setColorGradient(...)`. -
Error: Invalid color value provided
cause One or more of the color strings passed to the `setColorGradient` method is not a valid hexadecimal color code (e.g., missing '#', incorrect length, invalid characters).fixDouble-check all color strings passed to `setColorGradient`. Ensure they are valid hex codes, starting with `#`, and either 3 or 6 hexadecimal characters long (e.g., `#FFF`, `#RRGGBB`).
Warnings
- breaking The gradient color generation logic was refactored in v2.5.0. While intended as an improvement, it might introduce subtle changes in the interpolated color values.
- breaking The library's initialization method became more intuitive in v2.3.2, moving towards chained method calls (e.g., `new Gradient().setColorGradient(...)`). Older, direct constructor parameter patterns might be deprecated or no longer supported.
- gotcha Prior to v2.5.0, there was a bug where the first color in the gradient might have been skipped from the output array returned by `getColors()`.
- gotcha Short hex codes (e.g., `#fff`) were not supported before v2.5.0; only full 6-digit hex codes (e.g., `#ffffff`) were accepted.
- gotcha The library is written using ES6 syntax (e.g., `import`/`export`). Older browser environments or Node.js versions without full ES module support may require transpilation (e.g., Babel) or different module loading configurations.
Install
-
npm install javascript-color-gradient -
yarn add javascript-color-gradient -
pnpm add javascript-color-gradient
Imports
- Gradient
const Gradient = require('javascript-color-gradient')import Gradient from 'javascript-color-gradient'
- Gradient (dynamic)
const { default: Gradient } = await import('javascript-color-gradient')
Quickstart
import Gradient from "javascript-color-gradient"; const startColor = "#3F2CAF"; const endColor = "#e9446a"; const numberOfMidpoints = 10; // Default if not set const gradientGenerator = new Gradient(); const gradientArray = gradientGenerator .setColorGradient(startColor, endColor) .setMidpoint(numberOfMidpoints) // Explicitly setting, though it's the default .getColors(); console.log(gradientArray); /* Example output: [ '#3f2caf', '#522fa7', '#6531a0', '#783498', '#8b3790', '#9d3989', '#b03c81', '#c33f79', '#d64172', '#e9446a' ] */