Visual and interactive gradient generator
Library to create a gradient generator in vanilla-js with interactive user interface in html
yarn add gradient-generator-ui
or
npm install gradient-generator-ui
Or with CDN links
<!-- Style -->
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/gradient-generator.css" crossorigin>
<!-- Script -->
<script src="https://unpkg.com/[email protected]/dist/gradient-generator.js" crossorigin ></script>
const gradientRoot = document.getElementById('gradient-root');
const myColorGen = new GradientGenerator({
mainElement: gradientRoot,
initialColors: [
{ colorHex: '#ff0000', position: 0 },
{ colorHex: '#00ff00', position: 50 },
{ colorHex: '#0000ff', position: 100 },
],
});
const colors1 = myColorGen.generateColors(50);
console.log(colors1); // Generate 50 colors using the first values
myColorGen.addColors(
{ colorHex: '#fafa00', position: 80 },
{ colorHex: '#001919', position: 30 }
);
const colors2 = myColorGen.generateColors(100);
console.log(colors2); // Generate 100 colors using the first values and the news
see example here
const myColorGen = new GradientGenerator();
const colors1 = myColorGen.generateColors();
console.log(colors1); // Generate 100 colors using the default values
myColorGen.addColors(
{ colorHex: '#fafa00', position: 80 },
{ colorHex: '#001919', position: 30 }
);
const colors2 = myColorGen.generateColors(100);
console.log(colors2); // Generate 100 colors using the default values and the news
See this example here
const gradientRoot = document.getElementById('gradient-root');
const myColorGen = new GradientGenerator({ mainElement: gradientRoot });
const myGenManager = myColorGen.createUIManager({ keepChanges: false });
const addBtn = document.getElementById('add');
addBtn.addEventListener('click', () => {
myGenManager.setAddMode();
});
const cancelBtn = document.getElementById('cancel');
cancelBtn.addEventListener('click', () => {
myGenManager.cancelAddMode();
});
See this example here
-
Constructor Options:
mainElement
(default: null) - pass a empty HTMLElement root of the gradient.initialColors
(default: [ { colorHex: '#ff0000', position: 10 }, { colorHex: '#ffff00', position: 40 }, { colorHex: '#00ff77', position: 70 } ]) - pass an array of objects with a hexadecimal color and relative position (0 - 100)
-
generateColors(size = 100)
- Generate the intermediate colors accord an expected number of colors generated -
addColors(...{ colorHex, position })
- Add one or many new intermediate color with ther respective relative position -
getGradientColors()
- Get the gradient generator colors ordered by position -
setGradientColors([{colorHex, position}])
- Reset the gradient generator colors base -
createUIManager(ManagerConstructorOptions)
- Get a new Generator Manager with this generator to interact with the user interface.
-
Constructor Options:
generator
: GradientGenerator - Pass the generator to managekeepChanges
(default: true) - keep the changes on the interface in each interaction
-
activateAddMode()
- Activates the interaction with the user interface to add a new element on click on the main element -
cancelAddMode()
- Deactivate the interaction with the user interface to add new elements -
restoreColors()
- ifkeepChanges
is false, it restores the colors of the last restore point -
saveColors()
- Create a new restore point with current colors
Edison Peñuela – @EdisonPeM – [email protected]
Distributed under the MIT license. See LICENSE
for more information.
- Fork it (https://github.com/EdisonPeM/gradient-generator-ui/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request