UNPKG

gradient-generator-ui

Version:

Library to create a gradient generator in vanilla-js with interactive user interface in html

151 lines (100 loc) 4.64 kB
# Gradient Generator UI > Visual and interactive gradient generator <div style="text-align: center"> <img src="./gradient-generator-ui.png" alt="gradient generator ui" title="gradient generator ui"> </div> Library to create a gradient generator in vanilla-js with interactive user interface in html ## Installing ```bash yarn add gradient-generator-ui ``` or ```bash npm install gradient-generator-ui ``` Or with CDN links ```HTML <!-- Style --> <link rel="stylesheet" href="https://unpkg.com/gradient-generator-ui@1.0.5/dist/gradient-generator.css" crossorigin> <!-- Script --> <script src="https://unpkg.com/gradient-generator-ui@1.0.5/dist/gradient-generator.js" crossorigin ></script> ``` ## Basic Usage ```js 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](https://edisonpem.github.io/gradient-generator-ui/basicUsage/) ### Without UI Element ```js 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](https://edisonpem.github.io/gradient-generator-ui/withoutUI/) ### With a UI Manager ```js 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](https://edisonpem.github.io/gradient-generator-ui/withManager/) ## API ### GradientGenerator - 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. ### GeneratorManager - Constructor Options: - `generator`: GradientGenerator - Pass the generator to manage - `keepChanges` (_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()` - if `keepChanges` is false, it restores the colors of the last restore point - `saveColors()` - Create a new restore point with current colors ## Author Edison Peñuela – [@EdisonPeM](https://github.com/EdisonPeM/) – edisonpe961206@hotmail.com Distributed under the MIT license. See [`LICENSE`](https://github.com/EdisonPeM/gradient-generator-ui/blob/main/LICENSE) for more information. ## Contributing 1. Fork it (<https://github.com/EdisonPeM/gradient-generator-ui/fork>) 2. Create your feature branch (`git checkout -b feature/fooBar`) 3. Commit your changes (`git commit -am 'Add some fooBar'`) 4. Push to the branch (`git push origin feature/fooBar`) 5. Create a new Pull Request