├── .babelrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .travis.yml ├── LICENSE.md ├── README.md ├── build ├── build.js ├── check-versions.js ├── dev-client.js ├── dev-server.js ├── utils.js ├── vue-loader.conf.js ├── webpack.base.conf.js ├── webpack.dev.conf.js ├── webpack.prod.conf.js └── webpack.test.conf.js ├── config ├── dev.env.js ├── index.js ├── prod.env.js └── test.env.js ├── gradients.json ├── index.html ├── package.json ├── src ├── App.vue ├── assets │ ├── add.svg │ ├── arrow.svg │ ├── code.svg │ ├── download.svg │ ├── facebook.svg │ ├── github.svg │ ├── help.svg │ ├── leftchev.svg │ ├── logo.svg │ ├── logo2.svg │ ├── plus.svg │ ├── rightchev.svg │ ├── rotate.svg │ ├── skillshare.svg │ └── twitter.svg ├── components │ ├── Actionbar.vue │ ├── Display.vue │ ├── List.vue │ ├── Modal.vue │ ├── Palette.vue │ ├── Preload.vue │ ├── Swatch.vue │ ├── Topbar.vue │ └── modals │ │ ├── CodeModal.vue │ │ └── GradientModal.vue ├── main.js ├── services │ ├── canvasHelpers.js │ ├── colorDetector.js │ ├── faviconUpdater.js │ └── gradientDownloader.js └── stylesheets │ ├── app.scss │ ├── base │ ├── _animations.scss │ ├── _breakpoints.scss │ └── _layout.scss │ ├── components │ ├── _burger.scss │ ├── _buttons.scss │ ├── _menu.scss │ ├── _spinner.scss │ └── _tooltips.scss │ ├── helpers │ ├── _mixin.scss │ └── _utils.scss │ └── modules │ ├── _actionbar.scss │ ├── _codeblock.scss │ ├── _display.scss │ ├── _header.scss │ ├── _hex.scss │ ├── _loader.scss │ ├── _modal.scss │ ├── _nav.scss │ ├── _palette.scss │ ├── _shortlist.scss │ └── _social.scss ├── static ├── .gitkeep └── images │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ └── uigradients.jpg ├── test ├── e2e │ ├── custom-assertions │ │ └── elementCount.js │ ├── nightwatch.conf.js │ ├── runner.js │ └── specs │ │ └── app.js └── unit │ ├── .eslintrc │ ├── index.js │ ├── karma.conf.js │ └── specs │ ├── Display.spec.js │ ├── Gradients.spec.js │ ├── Palette.spec.js │ ├── Swatch.spec.js │ └── Topbar.spec.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { "modules": false }], 4 | "stage-2" 5 | ], 6 | "plugins": ["transform-runtime"], 7 | "comments": false, 8 | "env": { 9 | "test": { 10 | "presets": ["env", "stage-2"], 11 | "plugins": [ "istanbul" ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | env: { 8 | browser: true, 9 | }, 10 | extends: 'airbnb-base', 11 | // required to lint *.vue files 12 | plugins: [ 13 | 'html', 14 | 'json' 15 | ], 16 | // check if imports actually resolve 17 | 'settings': { 18 | 'import/resolver': { 19 | 'webpack': { 20 | 'config': 'build/webpack.base.conf.js' 21 | } 22 | } 23 | }, 24 | // add your custom rules here 25 | 'rules': { 26 | // don't require .vue extension when importing 27 | 'import/extensions': ['error', 'always', { 28 | 'js': 'never', 29 | 'vue': 'never' 30 | }], 31 | // allow optionalDependencies 32 | 'import/no-extraneous-dependencies': ['error', { 33 | 'optionalDependencies': ['test/unit/index.js'] 34 | }], 35 | // allow debugger during development 36 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .grunt/ 3 | .gulp/ 4 | node_modules/ 5 | dist/ 6 | npm-debug.log 7 | yarn-error.log 8 | test/unit/coverage 9 | test/e2e/reports 10 | selenium-debug.log 11 | npm-debug.log 12 | .env 13 | .next 14 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | // to edit target browsers: use "browserlist" field in package.json 6 | "autoprefixer": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: trusty 3 | language: node_js 4 | node_js: 5 | - "8" 6 | before_install: 7 | - export CHROME_BIN=/usr/bin/google-chrome 8 | - export DISPLAY=:99.0 9 | - sh -e /etc/init.d/xvfb start 10 | - sudo apt-get update 11 | - sudo apt-get install -y libappindicator1 fonts-liberation 12 | - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 13 | - sudo dpkg -i google-chrome*.deb 14 | script: 15 | - jdk_switcher use oraclejdk8 -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Indrashish Ghosh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 | uiGradients is a community contributed collection of beautiful multi-color gradients 22 |
23 | 24 | --- 25 | 26 | 27 | 28 | ## About 29 | This is an effort to give back to the community, by the community. Hopefully this will help you draw inspiration and serve as a resource for picking gradients for your own projects. 30 | 31 | 32 | 33 | ## Contributing 34 | Adding a gradient to the library is super simple. All the gradients are loaded and rendered from a single `gradients.json` file in the root. 35 | 36 | To add your gradient, fork this repository, add your gradient colors in the HEX format along with a name to the end of the json file and submit a pull request. Don't forget the commas! 37 | 38 | ``` 39 | [ 40 | { 41 | … 42 | }, 43 | { 44 | "name": "Career", 45 | "colors": ["#cb202d", "#dc1e28", "#3366cc"] 46 | } 47 | ] 48 | ``` 49 | 50 | *NOTE* - Please keep gradient submissions and bug fixes in separate PRs. 51 | 52 | 53 | 54 | ### Improvements and Bugs 55 | Please feel free to open a new issue [here](https://github.com/Ghosh/uiGradients/issues) with your suggestions or any bugs which you may have come across. 56 | 57 | 58 | 59 | ## Data 60 | While there is no official api, all the gradients are present in the `gradients.json` file. The code below is an example of fetching the data via a CURL request 61 | ``` 62 | curl -i https://raw.githubusercontent.com/ghosh/uiGradients/master/gradients.json 63 | ``` 64 | 65 | 66 | 67 | ## Built with uiGradients 68 | A few open source projects built with uiGradients 69 | - [UIColor-uiGradientsAdditions](https://github.com/kaiinui/UIColor-uiGradientsAdditions) - uiGradients for iOS 70 | - [NilColorKit](https://github.com/NilStack/NilColorKit) - uiGradients made for swift 71 | - [uigradients](https://github.com/JSBros/uigradients) - Styled components for uiGradients 72 | - [uigradients-scss](https://github.com/subinsebastian/uigradients-scss) - uiGradients ported to scss 73 | - [helper-uigradient](https://github.com/helpers/helper-uigradient) - Handlebar helper for uiGradients 74 | - [Uigradients iOS Viewer](https://github.com/thexande/uiGradients-Viewer-iOS) - Open source iOS app for viewing gradients 75 | - [Potion](http://numberpicture.com/build) - React components for declaratively composing animated, interactive visualizations 76 | - [Randient](https://github.com/uias/Randient) - Randomised, radient gradients for iOS. 77 | - [RandomGradient](https://github.com/Gabriel-Denys/RandomGradient) - Radomised gradients via json api 78 | 79 | 80 | 81 | ## License 82 | 83 | [MIT](https://github.com/ghosh/uiGradients/blob/master/LICENSE.md) 84 | 85 | 86 | 87 |✌️
88 |89 | A little project by @i_ghosh 90 |
91 | -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | require('./check-versions')() 2 | 3 | process.env.NODE_ENV = 'production' 4 | 5 | var ora = require('ora') 6 | var rm = require('rimraf') 7 | var path = require('path') 8 | var chalk = require('chalk') 9 | var webpack = require('webpack') 10 | var config = require('../config') 11 | var webpackConfig = require('./webpack.prod.conf') 12 | 13 | var spinner = ora('building for production...') 14 | spinner.start() 15 | 16 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 17 | if (err) throw err 18 | webpack(webpackConfig, function (err, stats) { 19 | spinner.stop() 20 | if (err) throw err 21 | process.stdout.write(stats.toString({ 22 | colors: true, 23 | modules: false, 24 | children: false, 25 | chunks: false, 26 | chunkModules: false 27 | }) + '\n\n') 28 | 29 | console.log(chalk.cyan(' Build complete.\n')) 30 | console.log(chalk.yellow( 31 | ' Tip: built files are meant to be served over an HTTP server.\n' + 32 | ' Opening index.html over file:// won\'t work.\n' 33 | )) 34 | }) 35 | }) 36 | -------------------------------------------------------------------------------- /build/check-versions.js: -------------------------------------------------------------------------------- 1 | var chalk = require('chalk') 2 | var semver = require('semver') 3 | var packageConfig = require('../package.json') 4 | 5 | function exec (cmd) { 6 | return require('child_process').execSync(cmd).toString().trim() 7 | } 8 | 9 | var versionRequirements = [ 10 | { 11 | name: 'node', 12 | currentVersion: semver.clean(process.version), 13 | versionRequirement: packageConfig.engines.node 14 | }, 15 | { 16 | name: 'npm', 17 | currentVersion: exec('npm --version'), 18 | versionRequirement: packageConfig.engines.npm 19 | } 20 | ] 21 | 22 | module.exports = function () { 23 | var warnings = [] 24 | for (var i = 0; i < versionRequirements.length; i++) { 25 | var mod = versionRequirements[i] 26 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 27 | warnings.push(mod.name + ': ' + 28 | chalk.red(mod.currentVersion) + ' should be ' + 29 | chalk.green(mod.versionRequirement) 30 | ) 31 | } 32 | } 33 | 34 | if (warnings.length) { 35 | console.log('') 36 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 37 | console.log() 38 | for (var i = 0; i < warnings.length; i++) { 39 | var warning = warnings[i] 40 | console.log(' ' + warning) 41 | } 42 | console.log() 43 | process.exit(1) 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /build/dev-client.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | require('eventsource-polyfill') 3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 4 | 5 | hotClient.subscribe(function (event) { 6 | if (event.action === 'reload') { 7 | window.location.reload() 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /build/dev-server.js: -------------------------------------------------------------------------------- 1 | require('./check-versions')() 2 | 3 | var config = require('../config') 4 | if (!process.env.NODE_ENV) { 5 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) 6 | } 7 | 8 | var opn = require('opn') 9 | var path = require('path') 10 | var express = require('express') 11 | var webpack = require('webpack') 12 | var proxyMiddleware = require('http-proxy-middleware') 13 | var webpackConfig = process.env.NODE_ENV === 'testing' 14 | ? require('./webpack.prod.conf') 15 | : require('./webpack.dev.conf') 16 | 17 | // default port where dev server listens for incoming traffic 18 | var port = process.env.PORT || config.dev.port 19 | // automatically open browser, if not set will be false 20 | var autoOpenBrowser = !!config.dev.autoOpenBrowser 21 | // Define HTTP proxies to your custom API backend 22 | // https://github.com/chimurai/http-proxy-middleware 23 | var proxyTable = config.dev.proxyTable 24 | 25 | var app = express() 26 | var compiler = webpack(webpackConfig) 27 | 28 | var devMiddleware = require('webpack-dev-middleware')(compiler, { 29 | publicPath: webpackConfig.output.publicPath, 30 | quiet: true 31 | }) 32 | 33 | var hotMiddleware = require('webpack-hot-middleware')(compiler, { 34 | log: () => {} 35 | }) 36 | // force page reload when html-webpack-plugin template changes 37 | compiler.plugin('compilation', function (compilation) { 38 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { 39 | hotMiddleware.publish({ action: 'reload' }) 40 | cb() 41 | }) 42 | }) 43 | 44 | // proxy api requests 45 | Object.keys(proxyTable).forEach(function (context) { 46 | var options = proxyTable[context] 47 | if (typeof options === 'string') { 48 | options = { target: options } 49 | } 50 | app.use(proxyMiddleware(options.filter || context, options)) 51 | }) 52 | 53 | // handle fallback for HTML5 history API 54 | app.use(require('connect-history-api-fallback')()) 55 | 56 | // serve webpack bundle output 57 | app.use(devMiddleware) 58 | 59 | // enable hot-reload and state-preserving 60 | // compilation error display 61 | app.use(hotMiddleware) 62 | 63 | // serve pure static assets 64 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) 65 | app.use(staticPath, express.static('./static')) 66 | 67 | var uri = 'http://localhost:' + port 68 | 69 | devMiddleware.waitUntilValid(function () { 70 | console.log('> Listening at ' + uri + '\n') 71 | }) 72 | 73 | module.exports = app.listen(port, function (err) { 74 | if (err) { 75 | console.log(err) 76 | return 77 | } 78 | 79 | // when env is testing, don't need open it 80 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { 81 | opn(uri) 82 | } 83 | }) 84 | -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var config = require('../config') 3 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 4 | 5 | exports.assetsPath = function (_path) { 6 | var assetsSubDirectory = process.env.NODE_ENV === 'production' 7 | ? config.build.assetsSubDirectory 8 | : config.dev.assetsSubDirectory 9 | return path.posix.join(assetsSubDirectory, _path) 10 | } 11 | 12 | exports.cssLoaders = function (options) { 13 | options = options || {} 14 | 15 | var cssLoader = { 16 | loader: 'css-loader', 17 | options: { 18 | minimize: process.env.NODE_ENV === 'production', 19 | sourceMap: options.sourceMap 20 | } 21 | } 22 | 23 | // generate loader string to be used with extract text plugin 24 | function generateLoaders (loader, loaderOptions) { 25 | var loaders = [cssLoader] 26 | if (loader) { 27 | loaders.push({ 28 | loader: loader + '-loader', 29 | options: Object.assign({}, loaderOptions, { 30 | sourceMap: options.sourceMap 31 | }) 32 | }) 33 | } 34 | 35 | // Extract CSS when that option is specified 36 | // (which is the case during production build) 37 | if (options.extract) { 38 | return ExtractTextPlugin.extract({ 39 | use: loaders, 40 | fallback: 'vue-style-loader' 41 | }) 42 | } else { 43 | return ['vue-style-loader'].concat(loaders) 44 | } 45 | } 46 | 47 | // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html 48 | return { 49 | css: generateLoaders(), 50 | postcss: generateLoaders(), 51 | less: generateLoaders('less'), 52 | sass: generateLoaders('sass', { indentedSyntax: true }), 53 | scss: generateLoaders('sass'), 54 | stylus: generateLoaders('stylus'), 55 | styl: generateLoaders('stylus') 56 | } 57 | } 58 | 59 | // Generate loaders for standalone style files (outside of .vue) 60 | exports.styleLoaders = function (options) { 61 | var output = [] 62 | var loaders = exports.cssLoaders(options) 63 | for (var extension in loaders) { 64 | var loader = loaders[extension] 65 | output.push({ 66 | test: new RegExp('\\.' + extension + '$'), 67 | use: loader 68 | }) 69 | } 70 | return output 71 | } 72 | -------------------------------------------------------------------------------- /build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils') 2 | var config = require('../config') 3 | var isProduction = process.env.NODE_ENV === 'production' 4 | 5 | module.exports = { 6 | loaders: utils.cssLoaders({ 7 | sourceMap: isProduction 8 | ? config.build.productionSourceMap 9 | : config.dev.cssSourceMap, 10 | extract: isProduction 11 | }) 12 | } 13 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var utils = require('./utils') 3 | var config = require('../config') 4 | var vueLoaderConfig = require('./vue-loader.conf') 5 | 6 | function resolve (dir) { 7 | return path.join(__dirname, '..', dir) 8 | } 9 | 10 | module.exports = { 11 | entry: { 12 | app: './src/main.js' 13 | }, 14 | output: { 15 | path: config.build.assetsRoot, 16 | filename: '[name].js', 17 | publicPath: process.env.NODE_ENV === 'production' 18 | ? config.build.assetsPublicPath 19 | : config.dev.assetsPublicPath 20 | }, 21 | resolve: { 22 | extensions: ['.js', '.vue', '.json'], 23 | alias: { 24 | 'vue$': 'vue/dist/vue.esm.js', 25 | '@': resolve('src'), 26 | } 27 | }, 28 | module: { 29 | rules: [ 30 | { 31 | test: /\.(js|vue)$/, 32 | loader: 'eslint-loader', 33 | enforce: "pre", 34 | include: [resolve('src'), resolve('test')], 35 | options: { 36 | formatter: require('eslint-friendly-formatter') 37 | } 38 | }, 39 | { 40 | test: /\.vue$/, 41 | loader: 'vue-loader', 42 | options: vueLoaderConfig 43 | }, 44 | { 45 | test: /\.js$/, 46 | loader: 'babel-loader', 47 | include: [resolve('src'), resolve('test')] 48 | }, 49 | { 50 | test: /\.svg$/, 51 | loader: 'vue-svg-loader', 52 | }, 53 | { 54 | test: /\.(png|jpe?g|gif)(\?.*)?$/, 55 | loader: 'url-loader', 56 | query: { 57 | limit: 10000, 58 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 59 | } 60 | }, 61 | { 62 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 63 | loader: 'url-loader', 64 | query: { 65 | limit: 10000, 66 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 67 | } 68 | } 69 | ] 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils') 2 | var webpack = require('webpack') 3 | var config = require('../config') 4 | var merge = require('webpack-merge') 5 | var baseWebpackConfig = require('./webpack.base.conf') 6 | var HtmlWebpackPlugin = require('html-webpack-plugin') 7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 8 | 9 | // add hot-reload related code to entry chunks 10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) { 11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) 12 | }) 13 | 14 | module.exports = merge(baseWebpackConfig, { 15 | module: { 16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) 17 | }, 18 | // cheap-module-eval-source-map is faster for development 19 | devtool: '#cheap-module-eval-source-map', 20 | plugins: [ 21 | new webpack.DefinePlugin({ 22 | 'process.env': config.dev.env 23 | }), 24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage 25 | new webpack.HotModuleReplacementPlugin(), 26 | new webpack.NoEmitOnErrorsPlugin(), 27 | // https://github.com/ampedandwired/html-webpack-plugin 28 | new HtmlWebpackPlugin({ 29 | filename: 'index.html', 30 | template: 'index.html', 31 | inject: true 32 | }), 33 | new FriendlyErrorsPlugin() 34 | ] 35 | }) 36 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var utils = require('./utils') 3 | var webpack = require('webpack') 4 | var config = require('../config') 5 | var merge = require('webpack-merge') 6 | var baseWebpackConfig = require('./webpack.base.conf') 7 | var CopyWebpackPlugin = require('copy-webpack-plugin') 8 | var HtmlWebpackPlugin = require('html-webpack-plugin') 9 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 10 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') 11 | 12 | var env = process.env.NODE_ENV === 'testing' 13 | ? require('../config/test.env') 14 | : config.build.env 15 | 16 | var webpackConfig = merge(baseWebpackConfig, { 17 | module: { 18 | rules: utils.styleLoaders({ 19 | sourceMap: config.build.productionSourceMap, 20 | extract: true 21 | }) 22 | }, 23 | devtool: config.build.productionSourceMap ? '#source-map' : false, 24 | output: { 25 | path: config.build.assetsRoot, 26 | filename: utils.assetsPath('js/[name].[chunkhash].js'), 27 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') 28 | }, 29 | plugins: [ 30 | // http://vuejs.github.io/vue-loader/en/workflow/production.html 31 | new webpack.DefinePlugin({ 32 | 'process.env': env 33 | }), 34 | new webpack.optimize.UglifyJsPlugin({ 35 | compress: { 36 | warnings: false 37 | }, 38 | sourceMap: true 39 | }), 40 | // extract css into its own file 41 | new ExtractTextPlugin({ 42 | filename: utils.assetsPath('css/[name].[contenthash].css') 43 | }), 44 | // Compress extracted CSS. We are using this plugin so that possible 45 | // duplicated CSS from different components can be deduped. 46 | new OptimizeCSSPlugin(), 47 | // generate dist index.html with correct asset hash for caching. 48 | // you can customize output by editing /index.html 49 | // see https://github.com/ampedandwired/html-webpack-plugin 50 | new HtmlWebpackPlugin({ 51 | filename: process.env.NODE_ENV === 'testing' 52 | ? 'index.html' 53 | : config.build.index, 54 | template: 'index.html', 55 | inject: true, 56 | minify: { 57 | removeComments: true, 58 | collapseWhitespace: true, 59 | removeAttributeQuotes: true 60 | // more options: 61 | // https://github.com/kangax/html-minifier#options-quick-reference 62 | }, 63 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin 64 | chunksSortMode: 'dependency' 65 | }), 66 | // Commenting the lines below, because we want to compile the js into one file 67 | // split vendor js into its own file 68 | // new webpack.optimize.CommonsChunkPlugin({ 69 | // name: 'vendor', 70 | // minChunks: function (module, count) { 71 | // // any required modules inside node_modules are extracted to vendor 72 | // return ( 73 | // module.resource && 74 | // /\.js$/.test(module.resource) && 75 | // module.resource.indexOf( 76 | // path.join(__dirname, '../node_modules') 77 | // ) === 0 78 | // ) 79 | // } 80 | // }), 81 | // extract webpack runtime and module manifest to its own file in order to 82 | // prevent vendor hash from being updated whenever app bundle is updated 83 | // new webpack.optimize.CommonsChunkPlugin({ 84 | // name: 'manifest', 85 | // chunks: ['vendor'] 86 | // }), 87 | // copy custom static assets 88 | new CopyWebpackPlugin([ 89 | { 90 | from: path.resolve(__dirname, '../static'), 91 | to: config.build.assetsSubDirectory, 92 | ignore: ['.*'] 93 | } 94 | ]) 95 | ] 96 | }) 97 | 98 | if (config.build.productionGzip) { 99 | var CompressionWebpackPlugin = require('compression-webpack-plugin') 100 | 101 | webpackConfig.plugins.push( 102 | new CompressionWebpackPlugin({ 103 | asset: '[path].gz[query]', 104 | algorithm: 'gzip', 105 | test: new RegExp( 106 | '\\.(' + 107 | config.build.productionGzipExtensions.join('|') + 108 | ')$' 109 | ), 110 | threshold: 10240, 111 | minRatio: 0.8 112 | }) 113 | ) 114 | } 115 | 116 | if (config.build.bundleAnalyzerReport) { 117 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin 118 | webpackConfig.plugins.push(new BundleAnalyzerPlugin()) 119 | } 120 | 121 | module.exports = webpackConfig 122 | -------------------------------------------------------------------------------- /build/webpack.test.conf.js: -------------------------------------------------------------------------------- 1 | // This is the webpack config used for unit tests. 2 | 3 | var utils = require('./utils') 4 | var webpack = require('webpack') 5 | var merge = require('webpack-merge') 6 | var baseConfig = require('./webpack.base.conf') 7 | 8 | var webpackConfig = merge(baseConfig, { 9 | // use inline sourcemap for karma-sourcemap-loader 10 | module: { 11 | rules: utils.styleLoaders() 12 | }, 13 | devtool: '#inline-source-map', 14 | plugins: [ 15 | new webpack.DefinePlugin({ 16 | 'process.env': require('../config/test.env') 17 | }) 18 | ] 19 | }) 20 | 21 | // no need for app entry during tests 22 | delete webpackConfig.entry 23 | 24 | module.exports = webpackConfig 25 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var prodEnv = require('./prod.env') 3 | 4 | module.exports = merge(prodEnv, { 5 | NODE_ENV: '"development"' 6 | }) 7 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | // see http://vuejs-templates.github.io/webpack for documentation. 2 | var path = require('path') 3 | 4 | module.exports = { 5 | build: { 6 | env: require('./prod.env'), 7 | index: path.resolve(__dirname, '../dist/index.html'), 8 | assetsRoot: path.resolve(__dirname, '../dist'), 9 | assetsSubDirectory: 'static', 10 | assetsPublicPath: '/', 11 | productionSourceMap: false, 12 | // Gzip off by default as many popular static hosts such as 13 | // Surge or Netlify already gzip all static assets for you. 14 | // Before setting to `true`, make sure to: 15 | // npm install --save-dev compression-webpack-plugin 16 | productionGzip: false, 17 | productionGzipExtensions: ['js', 'css'], 18 | // Run the build command with an extra argument to 19 | // View the bundle analyzer report after build finishes: 20 | // `npm run build --report` 21 | // Set to `true` or `false` to always turn it on or off 22 | bundleAnalyzerReport: process.env.npm_config_report 23 | }, 24 | dev: { 25 | env: require('./dev.env'), 26 | port: 9000, 27 | autoOpenBrowser: true, 28 | assetsSubDirectory: 'static', 29 | assetsPublicPath: '/', 30 | proxyTable: {}, 31 | // CSS Sourcemaps off by default because relative paths are "buggy" 32 | // with this option, according to the CSS-Loader README 33 | // (https://github.com/webpack/css-loader#sourcemaps) 34 | // In our experience, they generally work as expected, 35 | // just be aware of this issue when enabling this option. 36 | cssSourceMap: false 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /config/test.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var devEnv = require('./dev.env') 3 | 4 | module.exports = merge(devEnv, { 5 | NODE_ENV: '"testing"' 6 | }) 7 | -------------------------------------------------------------------------------- /gradients.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Omolon", 4 | "colors": ["#091E3A", "#2F80ED", "#2D9EE0"] 5 | }, 6 | { 7 | "name": "Farhan", 8 | "colors": ["#9400D3", "#4B0082"] 9 | }, 10 | { 11 | "name": "Purple", 12 | "colors": ["#c84e89", "#F15F79"] 13 | }, 14 | { 15 | "name": "Ibtesam", 16 | "colors": ["#00F5A0", "#00D9F5"] 17 | }, 18 | { 19 | "name": "Radioactive Heat", 20 | "colors": ["#F7941E", "#72C6EF", "#00A651"] 21 | }, 22 | { 23 | "name": "The Sky And The Sea", 24 | "colors": ["#F7941E", "#004E8F"] 25 | }, 26 | { 27 | "name": "From Ice To Fire", 28 | "colors": ["#72C6EF", "#004E8F"] 29 | }, 30 | 31 | { 32 | "name": "Blue & Orange", 33 | "colors": ["#FD8112", "#0085CA"] 34 | }, 35 | { 36 | "name": "Purple Dream", 37 | "colors": ["#bf5ae0","#a811da"] 38 | }, 39 | { 40 | "name": "Blu", 41 | "colors": ["#00416A", "#E4E5E6"] 42 | }, 43 | { 44 | "name": "Summer Breeze", 45 | "colors": ["#fbed96", "#abecd6"] 46 | }, 47 | { 48 | "name": "Ver", 49 | "colors": ["#FFE000", "#799F0C"] 50 | }, 51 | { 52 | "name": "Ver Black", 53 | "colors": ["#F7F8F8", "#ACBB78"] 54 | }, 55 | { 56 | "name": "Combi", 57 | "colors": ["#00416A", "#799F0C", "#FFE000"] 58 | }, 59 | { 60 | "name": "Anwar", 61 | "colors": ["#334d50", "#cbcaa5"] 62 | }, 63 | { 64 | "name": "Bluelagoo", 65 | "colors": ["#0052D4", "#4364F7", "#6FB1FC"] 66 | }, 67 | { 68 | "name": "Lunada", 69 | "colors": ["#5433FF", "#20BDFF", "#A5FECB"] 70 | }, 71 | { 72 | "name": "Reaqua", 73 | "colors": ["#799F0C", "#ACBB78"] 74 | }, 75 | { 76 | "name": "Mango", 77 | "colors": ["#ffe259", "#ffa751"] 78 | }, 79 | { 80 | "name": "Bupe", 81 | "colors": ["#00416A", "#E4E5E6"] 82 | }, 83 | { 84 | "name": "Rea", 85 | "colors": ["#FFE000", "#799F0C"] 86 | }, 87 | { 88 | "name": "Windy", 89 | "colors": ["#acb6e5", "#86fde8"] 90 | }, 91 | { 92 | "name": "Royal Blue", 93 | "colors": ["#536976", "#292E49"] 94 | }, 95 | { 96 | "name": "Royal Blue + Petrol", 97 | "colors": ["#BBD2C5", "#536976", "#292E49"] 98 | }, 99 | { 100 | "name": "Copper", 101 | "colors": ["#B79891", "#94716B"] 102 | }, 103 | { 104 | "name": "Anamnisar", 105 | "colors": ["#9796f0", "#fbc7d4"] 106 | }, 107 | { 108 | "name": "Petrol", 109 | "colors": ["#BBD2C5", "#536976"] 110 | }, 111 | { 112 | "name": "Sky", 113 | "colors": ["#076585", "#fff"] 114 | }, 115 | { 116 | "name": "Sel", 117 | "colors": ["#00467F", "#A5CC82"] 118 | }, 119 | { 120 | "name": "Afternoon", 121 | "colors": ["#000C40", "#607D8B"] 122 | }, 123 | { 124 | "name": "Skyline", 125 | "colors": ["#1488CC", "#2B32B2"] 126 | }, 127 | { 128 | "name": "DIMIGO", 129 | "colors": ["#ec008c", "#fc6767"] 130 | }, 131 | { 132 | "name": "Purple Love", 133 | "colors": ["#cc2b5e", "#753a88"] 134 | }, 135 | { 136 | "name": "Sexy Blue", 137 | "colors": ["#2193b0", "#6dd5ed"] 138 | }, 139 | { 140 | "name": "Blooker20", 141 | "colors": ["#e65c00", "#F9D423"] 142 | }, 143 | { 144 | "name": "Sea Blue", 145 | "colors": ["#2b5876", "#4e4376"] 146 | }, 147 | { 148 | "name": "Nimvelo", 149 | "colors": ["#314755", "#26a0da"] 150 | }, 151 | { 152 | "name": "Hazel", 153 | "colors": ["#77A1D3", "#79CBCA", "#E684AE"] 154 | }, 155 | { 156 | "name": "Noon to Dusk", 157 | "colors": ["#ff6e7f", "#bfe9ff"] 158 | }, 159 | { 160 | "name": "YouTube", 161 | "colors": ["#e52d27", "#b31217"] 162 | }, 163 | { 164 | "name": "Cool Brown", 165 | "colors": ["#603813", "#b29f94"] 166 | }, 167 | { 168 | "name": "Harmonic Energy", 169 | "colors": ["#16A085", "#F4D03F"] 170 | }, 171 | { 172 | "name": "Playing with Reds", 173 | "colors": ["#D31027", "#EA384D"] 174 | }, 175 | { 176 | "name": "Sunny Days", 177 | "colors": ["#EDE574", "#E1F5C4"] 178 | }, 179 | { 180 | "name": "Green Beach", 181 | "colors": ["#02AAB0", "#00CDAC"] 182 | }, 183 | { 184 | "name": "Intuitive Purple", 185 | "colors": ["#DA22FF", "#9733EE"] 186 | }, 187 | { 188 | "name": "Emerald Water", 189 | "colors": ["#348F50", "#56B4D3"] 190 | }, 191 | { 192 | "name": "Lemon Twist", 193 | "colors": ["#3CA55C", "#B5AC49"] 194 | }, 195 | { 196 | "name": "Monte Carlo", 197 | "colors": ["#CC95C0", "#DBD4B4", "#7AA1D2"] 198 | }, 199 | { 200 | "name": "Horizon", 201 | "colors": ["#003973", "#E5E5BE"] 202 | }, 203 | { 204 | "name": "Rose Water", 205 | "colors": ["#E55D87", "#5FC3E4"] 206 | }, 207 | { 208 | "name": "Frozen", 209 | "colors": ["#403B4A", "#E7E9BB"] 210 | }, 211 | { 212 | "name": "Mango Pulp", 213 | "colors": ["#F09819", "#EDDE5D"] 214 | }, 215 | { 216 | "name": "Bloody Mary", 217 | "colors": ["#FF512F", "#DD2476"] 218 | }, 219 | { 220 | "name": "Aubergine", 221 | "colors": ["#AA076B", "#61045F"] 222 | }, 223 | { 224 | "name": "Aqua Marine", 225 | "colors": ["#1A2980", "#26D0CE"] 226 | }, 227 | { 228 | "name": "Sunrise", 229 | "colors": ["#FF512F", "#F09819"] 230 | }, 231 | { 232 | "name": "Purple Paradise", 233 | "colors": ["#1D2B64", "#F8CDDA"] 234 | }, 235 | { 236 | "name": "Stripe", 237 | "colors": ["#1FA2FF", "#12D8FA", "#A6FFCB"] 238 | }, 239 | { 240 | "name": "Sea Weed", 241 | "colors": ["#4CB8C4", "#3CD3AD"] 242 | }, 243 | { 244 | "name": "Pinky", 245 | "colors": ["#DD5E89", "#F7BB97"] 246 | }, 247 | { 248 | "name": "Cherry", 249 | "colors": ["#EB3349", "#F45C43"] 250 | }, 251 | { 252 | "name": "Mojito", 253 | "colors": ["#1D976C", "#93F9B9"] 254 | }, 255 | { 256 | "name": "Juicy Orange", 257 | "colors": ["#FF8008", "#FFC837"] 258 | }, 259 | { 260 | "name": "Mirage", 261 | "colors": ["#16222A", "#3A6073"] 262 | }, 263 | { 264 | "name": "Steel Gray", 265 | "colors": ["#1F1C2C", "#928DAB"] 266 | }, 267 | { 268 | "name": "Kashmir", 269 | "colors": ["#614385", "#516395"] 270 | }, 271 | { 272 | "name": "Electric Violet", 273 | "colors": ["#4776E6", "#8E54E9"] 274 | }, 275 | { 276 | "name": "Venice Blue", 277 | "colors": ["#085078", "#85D8CE"] 278 | }, 279 | { 280 | "name": "Bora Bora", 281 | "colors": ["#2BC0E4", "#EAECC6"] 282 | }, 283 | { 284 | "name": "Moss", 285 | "colors": ["#134E5E", "#71B280"] 286 | }, 287 | { 288 | "name": "Shroom Haze", 289 | "colors": ["#5C258D", "#4389A2"] 290 | }, 291 | { 292 | "name": "Mystic", 293 | "colors": ["#757F9A", "#D7DDE8"] 294 | }, 295 | { 296 | "name": "Midnight City", 297 | "colors": ["#232526", "#414345"] 298 | }, 299 | { 300 | "name": "Sea Blizz", 301 | "colors": ["#1CD8D2", "#93EDC7"] 302 | }, 303 | { 304 | "name": "Opa", 305 | "colors": ["#3D7EAA", "#FFE47A"] 306 | }, 307 | { 308 | "name": "Titanium", 309 | "colors": ["#283048", "#859398"] 310 | }, 311 | { 312 | "name": "Mantle", 313 | "colors": ["#24C6DC", "#514A9D"] 314 | }, 315 | { 316 | "name": "Dracula", 317 | "colors": ["#DC2424", "#4A569D"] 318 | }, 319 | { 320 | "name": "Peach", 321 | "colors": ["#ED4264", "#FFEDBC"] 322 | }, 323 | { 324 | "name": "Moonrise", 325 | "colors": ["#DAE2F8", "#D6A4A4"] 326 | }, 327 | { 328 | "name": "Clouds", 329 | "colors": ["#ECE9E6", "#FFFFFF"] 330 | }, 331 | { 332 | "name": "Stellar", 333 | "colors": ["#7474BF", "#348AC7"] 334 | }, 335 | { 336 | "name": "Bourbon", 337 | "colors": ["#EC6F66", "#F3A183"] 338 | }, 339 | { 340 | "name": "Calm Darya", 341 | "colors": ["#5f2c82", "#49a09d"] 342 | }, 343 | { 344 | "name": "Influenza", 345 | "colors": ["#C04848", "#480048"] 346 | }, 347 | { 348 | "name": "Shrimpy", 349 | "colors": ["#e43a15", "#e65245"] 350 | }, 351 | { 352 | "name": "Army", 353 | "colors": ["#414d0b", "#727a17"] 354 | }, 355 | { 356 | "name": "Miaka", 357 | "colors": ["#FC354C", "#0ABFBC"] 358 | }, 359 | { 360 | "name": "Pinot Noir", 361 | "colors": ["#4b6cb7", "#182848"] 362 | }, 363 | { 364 | "name": "Day Tripper", 365 | "colors": ["#f857a6", "#ff5858"] 366 | }, 367 | { 368 | "name": "Namn", 369 | "colors": ["#a73737", "#7a2828"] 370 | }, 371 | { 372 | "name": "Blurry Beach", 373 | "colors": ["#d53369", "#cbad6d"] 374 | }, 375 | { 376 | "name": "Vasily", 377 | "colors": ["#e9d362", "#333333"] 378 | }, 379 | { 380 | "name": "A Lost Memory", 381 | "colors": ["#DE6262", "#FFB88C"] 382 | }, 383 | { 384 | "name": "Petrichor", 385 | "colors": ["#666600", "#999966"] 386 | }, 387 | { 388 | "name": "Jonquil", 389 | "colors": ["#FFEEEE", "#DDEFBB"] 390 | }, 391 | { 392 | "name": "Sirius Tamed", 393 | "colors": ["#EFEFBB", "#D4D3DD"] 394 | }, 395 | { 396 | "name": "Kyoto", 397 | "colors": ["#c21500", "#ffc500"] 398 | }, 399 | { 400 | "name": "Misty Meadow", 401 | "colors": ["#215f00", "#e4e4d9"] 402 | }, 403 | { 404 | "name": "Aqualicious", 405 | "colors": ["#50C9C3", "#96DEDA"] 406 | }, 407 | { 408 | "name": "Moor", 409 | "colors": ["#616161", "#9bc5c3"] 410 | }, 411 | { 412 | "name": "Almost", 413 | "colors": ["#ddd6f3", "#faaca8"] 414 | }, 415 | { 416 | "name": "Forever Lost", 417 | "colors": ["#5D4157", "#A8CABA"] 418 | }, 419 | { 420 | "name": "Winter", 421 | "colors": ["#E6DADA", "#274046"] 422 | }, 423 | { 424 | "name": "Nelson", 425 | "colors": ["#f2709c", "#ff9472"] 426 | }, 427 | { 428 | "name": "Autumn", 429 | "colors": ["#DAD299", "#B0DAB9"] 430 | }, 431 | { 432 | "name": "Candy", 433 | "colors": ["#D3959B", "#BFE6BA"] 434 | }, 435 | { 436 | "name": "Reef", 437 | "colors": ["#00d2ff", "#3a7bd5"] 438 | }, 439 | { 440 | "name": "The Strain", 441 | "colors": ["#870000", "#190A05"] 442 | }, 443 | { 444 | "name": "Dirty Fog", 445 | "colors": ["#B993D6", "#8CA6DB"] 446 | }, 447 | { 448 | "name": "Earthly", 449 | "colors": ["#649173", "#DBD5A4"] 450 | }, 451 | { 452 | "name": "Virgin", 453 | "colors": ["#C9FFBF", "#FFAFBD"] 454 | }, 455 | { 456 | "name": "Ash", 457 | "colors": ["#606c88", "#3f4c6b"] 458 | }, 459 | { 460 | "name": "Cherryblossoms", 461 | "colors": ["#FBD3E9", "#BB377D"] 462 | }, 463 | { 464 | "name": "Parklife", 465 | "colors": ["#ADD100", "#7B920A"] 466 | }, 467 | { 468 | "name": "Dance To Forget", 469 | "colors": ["#FF4E50", "#F9D423"] 470 | }, 471 | { 472 | "name": "Starfall", 473 | "colors": ["#F0C27B", "#4B1248"] 474 | }, 475 | { 476 | "name": "Red Mist", 477 | "colors": ["#000000", "#e74c3c"] 478 | }, 479 | { 480 | "name": "Teal Love", 481 | "colors": ["#AAFFA9", "#11FFBD"] 482 | }, 483 | { 484 | "name": "Neon Life", 485 | "colors": ["#B3FFAB", "#12FFF7"] 486 | }, 487 | { 488 | "name": "Man of Steel", 489 | "colors": ["#780206", "#061161"] 490 | }, 491 | { 492 | "name": "Amethyst", 493 | "colors": ["#9D50BB", "#6E48AA"] 494 | }, 495 | { 496 | "name": "Cheer Up Emo Kid", 497 | "colors": ["#556270", "#FF6B6B"] 498 | }, 499 | { 500 | "name": "Shore", 501 | "colors": ["#70e1f5", "#ffd194"] 502 | }, 503 | { 504 | "name": "Facebook Messenger", 505 | "colors": ["#00c6ff", "#0072ff"] 506 | }, 507 | { 508 | "name": "SoundCloud", 509 | "colors": ["#fe8c00", "#f83600"] 510 | }, 511 | { 512 | "name": "Behongo", 513 | "colors": ["#52c234", "#061700"] 514 | }, 515 | { 516 | "name": "ServQuick", 517 | "colors": ["#485563", "#29323c"] 518 | }, 519 | { 520 | "name": "Friday", 521 | "colors": ["#83a4d4", "#b6fbff"] 522 | }, 523 | { 524 | "name": "Martini", 525 | "colors": ["#FDFC47", "#24FE41"] 526 | }, 527 | { 528 | "name": "Metallic Toad", 529 | "colors": ["#abbaab", "#ffffff"] 530 | }, 531 | { 532 | "name": "Between The Clouds", 533 | "colors": ["#73C8A9", "#373B44"] 534 | }, 535 | { 536 | "name": "Crazy Orange I", 537 | "colors": ["#D38312", "#A83279"] 538 | }, 539 | { 540 | "name": "Hersheys", 541 | "colors": ["#1e130c", "#9a8478"] 542 | }, 543 | { 544 | "name": "Talking To Mice Elf", 545 | "colors": ["#948E99", "#2E1437"] 546 | }, 547 | { 548 | "name": "Purple Bliss", 549 | "colors": ["#360033", "#0b8793"] 550 | }, 551 | { 552 | "name": "Predawn", 553 | "colors": ["#FFA17F", "#00223E"] 554 | }, 555 | { 556 | "name": "Endless River", 557 | "colors": ["#43cea2", "#185a9d"] 558 | }, 559 | { 560 | "name": "Pastel Orange at the Sun", 561 | "colors": ["#ffb347", "#ffcc33"] 562 | }, 563 | { 564 | "name": "Twitch", 565 | "colors": ["#6441A5", "#2a0845"] 566 | }, 567 | { 568 | "name": "Atlas", 569 | "colors": ["#FEAC5E", "#C779D0", "#4BC0C8"] 570 | }, 571 | { 572 | "name": "Instagram", 573 | "colors": ["#833ab4", "#fd1d1d", "#fcb045"] 574 | }, 575 | { 576 | "name": "Flickr", 577 | "colors": ["#ff0084", "#33001b"] 578 | }, 579 | { 580 | "name": "Vine", 581 | "colors": ["#00bf8f", "#001510"] 582 | }, 583 | { 584 | "name": "Turquoise flow", 585 | "colors": ["#136a8a", "#267871"] 586 | }, 587 | { 588 | "name": "Portrait", 589 | "colors": ["#8e9eab", "#eef2f3"] 590 | }, 591 | { 592 | "name": "Virgin America", 593 | "colors": ["#7b4397", "#dc2430"] 594 | }, 595 | { 596 | "name": "Koko Caramel", 597 | "colors": ["#D1913C", "#FFD194"] 598 | }, 599 | { 600 | "name": "Fresh Turboscent", 601 | "colors": ["#F1F2B5", "#135058"] 602 | }, 603 | { 604 | "name": "Green to dark", 605 | "colors": ["#6A9113", "#141517"] 606 | }, 607 | { 608 | "name": "Ukraine", 609 | "colors": ["#004FF9", "#FFF94C"] 610 | }, 611 | { 612 | "name": "Curiosity blue", 613 | "colors": ["#525252", "#3d72b4"] 614 | }, 615 | { 616 | "name": "Dark Knight", 617 | "colors": ["#BA8B02", "#181818"] 618 | }, 619 | { 620 | "name": "Piglet", 621 | "colors": ["#ee9ca7", "#ffdde1"] 622 | }, 623 | { 624 | "name": "Lizard", 625 | "colors": ["#304352", "#d7d2cc"] 626 | }, 627 | { 628 | "name": "Sage Persuasion", 629 | "colors": ["#CCCCB2", "#757519"] 630 | }, 631 | { 632 | "name": "Between Night and Day", 633 | "colors": ["#2c3e50", "#3498db"] 634 | }, 635 | { 636 | "name": "Timber", 637 | "colors": ["#fc00ff", "#00dbde"] 638 | }, 639 | { 640 | "name": "Passion", 641 | "colors": ["#e53935", "#e35d5b"] 642 | }, 643 | { 644 | "name": "Clear Sky", 645 | "colors": ["#005C97", "#363795"] 646 | }, 647 | { 648 | "name": "Master Card", 649 | "colors": ["#f46b45", "#eea849"] 650 | }, 651 | { 652 | "name": "Back To Earth", 653 | "colors": ["#00C9FF", "#92FE9D"] 654 | }, 655 | { 656 | "name": "Deep Purple", 657 | "colors": ["#673AB7", "#512DA8"] 658 | }, 659 | { 660 | "name": "Little Leaf", 661 | "colors": ["#76b852", "#8DC26F"] 662 | }, 663 | { 664 | "name": "Netflix", 665 | "colors": ["#8E0E00", "#1F1C18"] 666 | }, 667 | { 668 | "name": "Light Orange", 669 | "colors": ["#FFB75E", "#ED8F03"] 670 | }, 671 | { 672 | "name": "Green and Blue", 673 | "colors": ["#c2e59c", "#64b3f4"] 674 | }, 675 | { 676 | "name": "Poncho", 677 | "colors": ["#403A3E", "#BE5869"] 678 | }, 679 | { 680 | "name": "Back to the Future", 681 | "colors": ["#C02425", "#F0CB35"] 682 | }, 683 | { 684 | "name": "Blush", 685 | "colors": ["#B24592", "#F15F79"] 686 | }, 687 | { 688 | "name": "Inbox", 689 | "colors": ["#457fca", "#5691c8"] 690 | }, 691 | { 692 | "name": "Purplin", 693 | "colors": ["#6a3093", "#a044ff"] 694 | }, 695 | { 696 | "name": "Pale Wood", 697 | "colors": ["#eacda3", "#d6ae7b"] 698 | }, 699 | { 700 | "name": "Haikus", 701 | "colors": ["#fd746c", "#ff9068"] 702 | }, 703 | { 704 | "name": "Pizelex", 705 | "colors": ["#114357", "#F29492"] 706 | }, 707 | { 708 | "name": "Joomla", 709 | "colors": ["#1e3c72", "#2a5298"] 710 | }, 711 | { 712 | "name": "Christmas", 713 | "colors": ["#2F7336", "#AA3A38"] 714 | }, 715 | { 716 | "name": "Minnesota Vikings", 717 | "colors": ["#5614B0", "#DBD65C"] 718 | }, 719 | { 720 | "name": "Miami Dolphins", 721 | "colors": ["#4DA0B0", "#D39D38"] 722 | }, 723 | { 724 | "name": "Forest", 725 | "colors": ["#5A3F37", "#2C7744"] 726 | }, 727 | { 728 | "name": "Nighthawk", 729 | "colors": ["#2980b9", "#2c3e50"] 730 | }, 731 | { 732 | "name": "Superman", 733 | "colors": ["#0099F7", "#F11712"] 734 | }, 735 | { 736 | "name": "Suzy", 737 | "colors": ["#834d9b", "#d04ed6"] 738 | }, 739 | { 740 | "name": "Dark Skies", 741 | "colors": ["#4B79A1", "#283E51"] 742 | }, 743 | { 744 | "name": "Deep Space", 745 | "colors": ["#000000", "#434343"] 746 | }, 747 | { 748 | "name": "Decent", 749 | "colors": ["#4CA1AF", "#C4E0E5"] 750 | }, 751 | { 752 | "name": "Colors Of Sky", 753 | "colors": ["#E0EAFC", "#CFDEF3"] 754 | }, 755 | { 756 | "name": "Purple White", 757 | "colors": ["#BA5370", "#F4E2D8"] 758 | }, 759 | { 760 | "name": "Ali", 761 | "colors": ["#ff4b1f", "#1fddff"] 762 | }, 763 | { 764 | "name": "Alihossein", 765 | "colors": ["#f7ff00", "#db36a4"] 766 | }, 767 | { 768 | "name": "Shahabi", 769 | "colors": ["#a80077", "#66ff00"] 770 | }, 771 | { 772 | "name": "Red Ocean", 773 | "colors": ["#1D4350", "#A43931"] 774 | }, 775 | { 776 | "name": "Tranquil", 777 | "colors": ["#EECDA3", "#EF629F"] 778 | }, 779 | { 780 | "name": "Transfile", 781 | "colors": ["#16BFFD", "#CB3066"] 782 | }, 783 | 784 | { 785 | "name": "Sylvia", 786 | "colors": ["#ff4b1f", "#ff9068"] 787 | }, 788 | { 789 | "name": "Sweet Morning", 790 | "colors": ["#FF5F6D", "#FFC371"] 791 | }, 792 | { 793 | "name": "Politics", 794 | "colors": ["#2196f3", "#f44336"] 795 | }, 796 | { 797 | "name": "Bright Vault", 798 | "colors": ["#00d2ff", "#928DAB"] 799 | }, 800 | { 801 | "name": "Solid Vault", 802 | "colors": ["#3a7bd5", "#3a6073"] 803 | }, 804 | { 805 | "name": "Sunset", 806 | "colors": ["#0B486B", "#F56217"] 807 | }, 808 | { 809 | "name": "Grapefruit Sunset", 810 | "colors": ["#e96443", "#904e95"] 811 | }, 812 | { 813 | "name": "Deep Sea Space", 814 | "colors": ["#2C3E50", "#4CA1AF"] 815 | }, 816 | { 817 | "name": "Dusk", 818 | "colors": ["#2C3E50", "#FD746C"] 819 | }, 820 | { 821 | "name": "Minimal Red", 822 | "colors": ["#F00000", "#DC281E"] 823 | }, 824 | { 825 | "name": "Royal", 826 | "colors": ["#141E30", "#243B55"] 827 | }, 828 | { 829 | "name": "Mauve", 830 | "colors": ["#42275a", "#734b6d"] 831 | }, 832 | { 833 | "name": "Frost", 834 | "colors": ["#000428", "#004e92"] 835 | }, 836 | { 837 | "name": "Lush", 838 | "colors": ["#56ab2f", "#a8e063"] 839 | }, 840 | { 841 | "name": "Firewatch", 842 | "colors": ["#cb2d3e", "#ef473a"] 843 | }, 844 | { 845 | "name": "Sherbert", 846 | "colors": ["#f79d00", "#64f38c"] 847 | }, 848 | { 849 | "name": "Blood Red", 850 | "colors": ["#f85032", "#e73827"] 851 | }, 852 | { 853 | "name": "Sun on the Horizon", 854 | "colors": ["#fceabb", "#f8b500"] 855 | }, 856 | { 857 | "name": "IIIT Delhi", 858 | "colors": ["#808080", "#3fada8"] 859 | }, 860 | { 861 | "name": "Jupiter", 862 | "colors": ["#ffd89b", "#19547b"] 863 | }, 864 | { 865 | "name": "50 Shades of Grey", 866 | "colors": ["#bdc3c7", "#2c3e50"] 867 | }, 868 | { 869 | "name": "Dania", 870 | "colors": ["#BE93C5", "#7BC6CC"] 871 | }, 872 | { 873 | "name": "Limeade", 874 | "colors": ["#A1FFCE", "#FAFFD1"] 875 | }, 876 | { 877 | "name": "Disco", 878 | "colors": ["#4ECDC4", "#556270"] 879 | }, 880 | { 881 | "name": "Love Couple", 882 | "colors": ["#3a6186", "#89253e"] 883 | }, 884 | { 885 | "name": "Azure Pop", 886 | "colors": ["#ef32d9", "#89fffd"] 887 | }, 888 | { 889 | "name": "Nepal", 890 | "colors": ["#de6161", "#2657eb"] 891 | }, 892 | { 893 | "name": "Cosmic Fusion", 894 | "colors": ["#ff00cc", "#333399"] 895 | }, 896 | { 897 | "name": "Snapchat", 898 | "colors": ["#fffc00", "#ffffff"] 899 | }, 900 | { 901 | "name": "Ed's Sunset Gradient", 902 | "colors": ["#ff7e5f", "#feb47b"] 903 | }, 904 | { 905 | "name": "Brady Brady Fun Fun", 906 | "colors": ["#00c3ff", "#ffff1c"] 907 | }, 908 | { 909 | "name": "Black Rosé", 910 | "colors": ["#f4c4f3", "#fc67fa"] 911 | }, 912 | { 913 | "name": "80's Purple", 914 | "colors": ["#41295a", "#2F0743"] 915 | }, 916 | { 917 | "name": "Radar", 918 | "colors": ["#A770EF", "#CF8BF3", "#FDB99B"] 919 | }, 920 | { 921 | "name": "Ibiza Sunset", 922 | "colors": ["#ee0979", "#ff6a00"] 923 | }, 924 | { 925 | "name": "Dawn", 926 | "colors": ["#F3904F", "#3B4371"] 927 | }, 928 | { 929 | "name": "Mild", 930 | "colors": ["#67B26F", "#4ca2cd"] 931 | }, 932 | { 933 | 934 | "name": "Vice City", 935 | "colors": ["#3494E6", "#EC6EAD"] 936 | }, 937 | { 938 | "name": "Jaipur", 939 | "colors": ["#DBE6F6", "#C5796D"] 940 | 941 | }, 942 | { 943 | "name": "Jodhpur", 944 | "colors": ["#9CECFB", "#65C7F7", "#0052D4"] 945 | 946 | }, 947 | { 948 | "name": "Cocoaa Ice", 949 | "colors": ["#c0c0aa", "#1cefff"] 950 | }, 951 | { 952 | "name": "EasyMed", 953 | "colors": ["#DCE35B", "#45B649"] 954 | }, 955 | { 956 | "name": "Rose Colored Lenses", 957 | "colors": ["#E8CBC0", "#636FA4"] 958 | }, 959 | { 960 | "name": "What lies Beyond", 961 | "colors": ["#F0F2F0", "#000C40"] 962 | }, 963 | { 964 | "name": "Roseanna", 965 | "colors": ["#FFAFBD", "#ffc3a0"] 966 | }, 967 | { 968 | "name": "Honey Dew", 969 | "colors": ["#43C6AC", "#F8FFAE"] 970 | }, 971 | { 972 | "name": "Under the Lake", 973 | "colors": ["#093028", "#237A57"] 974 | }, 975 | { 976 | "name": "The Blue Lagoon", 977 | "colors": ["#43C6AC", "#191654"] 978 | }, 979 | { 980 | "name": "Can You Feel The Love Tonight", 981 | "colors": ["#4568DC", "#B06AB3"] 982 | }, 983 | { 984 | "name": "Very Blue", 985 | "colors": ["#0575E6", "#021B79"] 986 | }, 987 | { 988 | "name": "Love and Liberty", 989 | "colors": ["#200122", "#6f0000"] 990 | }, 991 | { 992 | "name": "Orca", 993 | "colors": ["#44A08D", "#093637"] 994 | }, 995 | { 996 | "name": "Venice", 997 | "colors": ["#6190E8", "#A7BFE8"] 998 | }, 999 | { 1000 | "name": "Pacific Dream", 1001 | "colors": ["#34e89e", "#0f3443"] 1002 | }, 1003 | { 1004 | "name": "Learning and Leading", 1005 | "colors": ["#F7971E", "#FFD200"] 1006 | }, 1007 | { 1008 | "name": "Celestial", 1009 | "colors": ["#C33764", "#1D2671"] 1010 | }, 1011 | { 1012 | "name": "Purplepine", 1013 | "colors": ["#20002c", "#cbb4d4"] 1014 | }, 1015 | { 1016 | "name": "Sha la la", 1017 | "colors": ["#D66D75", "#E29587"] 1018 | }, 1019 | { 1020 | "name": "Mini", 1021 | "colors": ["#30E8BF", "#FF8235"] 1022 | }, 1023 | { 1024 | "name": "Maldives", 1025 | "colors": ["#B2FEFA", "#0ED2F7"] 1026 | }, 1027 | { 1028 | "name": "Cinnamint", 1029 | "colors": ["#4AC29A", "#BDFFF3"] 1030 | }, 1031 | { 1032 | "name": "Html", 1033 | "colors": ["#E44D26", "#F16529"] 1034 | }, 1035 | { 1036 | "name": "Coal", 1037 | "colors": ["#EB5757", "#000000"] 1038 | }, 1039 | { 1040 | "name": "Sunkist", 1041 | "colors": ["#F2994A", "#F2C94C"] 1042 | }, 1043 | { 1044 | "name": "Blue Skies", 1045 | "colors": ["#56CCF2", "#2F80ED"] 1046 | }, 1047 | { 1048 | "name": "Chitty Chitty Bang Bang", 1049 | "colors": ["#007991", "#78ffd6"] 1050 | }, 1051 | { 1052 | "name": "Visions of Grandeur", 1053 | "colors": ["#000046", "#1CB5E0"] 1054 | }, 1055 | { 1056 | "name": "Crystal Clear", 1057 | "colors": ["#159957", "#155799"] 1058 | }, 1059 | { 1060 | "name": "Mello", 1061 | "colors": ["#c0392b", "#8e44ad"] 1062 | }, 1063 | { 1064 | "name": "Compare Now", 1065 | "colors": ["#EF3B36", "#FFFFFF"] 1066 | }, 1067 | { 1068 | "name": "Meridian", 1069 | "colors": ["#283c86", "#45a247"] 1070 | }, 1071 | { 1072 | "name": "Relay", 1073 | "colors": ["#3A1C71", "#D76D77", "#FFAF7B"] 1074 | }, 1075 | { 1076 | "name": "Alive", 1077 | "colors": ["#CB356B", "#BD3F32"] 1078 | }, 1079 | { 1080 | "name": "Scooter", 1081 | "colors": ["#36D1DC", "#5B86E5"] 1082 | }, 1083 | { 1084 | "name": "Terminal", 1085 | "colors": ["#000000", "#0f9b0f"] 1086 | }, 1087 | { 1088 | "name": "Telegram", 1089 | "colors": ["#1c92d2", "#f2fcfe"] 1090 | }, 1091 | { 1092 | "name": "Crimson Tide", 1093 | "colors": ["#642B73", "#C6426E"] 1094 | }, 1095 | { 1096 | "name": "Socialive", 1097 | "colors": ["#06beb6", "#48b1bf"] 1098 | }, 1099 | { 1100 | "name": "Subu", 1101 | "colors": ["#0cebeb", "#20e3b2", "#29ffc6"] 1102 | }, 1103 | { 1104 | "name": "Broken Hearts", 1105 | "colors": ["#d9a7c7", "#fffcdc"] 1106 | }, 1107 | { 1108 | "name": "Kimoby Is The New Blue", 1109 | "colors": ["#396afc", "#2948ff"] 1110 | }, 1111 | { 1112 | "name": "Dull", 1113 | "colors": ["#C9D6FF", "#E2E2E2"] 1114 | }, 1115 | { 1116 | "name": "Purpink", 1117 | "colors": ["#7F00FF", "#E100FF"] 1118 | }, 1119 | { 1120 | "name": "Orange Coral", 1121 | "colors": ["#ff9966", "#ff5e62"] 1122 | }, 1123 | { 1124 | "name": "Summer", 1125 | "colors": ["#22c1c3", "#fdbb2d"] 1126 | }, 1127 | { 1128 | "name": "King Yna", 1129 | "colors": ["#1a2a6c", "#b21f1f", "#fdbb2d"] 1130 | }, 1131 | { 1132 | "name": "Velvet Sun", 1133 | "colors": ["#e1eec3", "#f05053"] 1134 | }, 1135 | { 1136 | "name": "Zinc", 1137 | "colors": ["#ADA996", "#F2F2F2", "#DBDBDB", "#EAEAEA"] 1138 | }, 1139 | { 1140 | "name": "Hydrogen", 1141 | "colors": ["#667db6", "#0082c8", "#0082c8", "#667db6"] 1142 | }, 1143 | { 1144 | "name": "Argon", 1145 | "colors": ["#03001e", "#7303c0", "#ec38bc", "#fdeff9"] 1146 | }, 1147 | { 1148 | "name": "Lithium", 1149 | "colors": ["#6D6027", "#D3CBB8"] 1150 | }, 1151 | { 1152 | "name": "Digital Water", 1153 | "colors": ["#74ebd5","#ACB6E5"] 1154 | }, 1155 | { 1156 | "name": "Orange Fun", 1157 | "colors": ["#fc4a1a", "#f7b733"] 1158 | }, 1159 | { 1160 | "name": "Rainbow Blue", 1161 | "colors": ["#00F260", "#0575E6"] 1162 | }, 1163 | { 1164 | "name": "Pink Flavour", 1165 | "colors": ["#800080", "#ffc0cb"] 1166 | }, 1167 | { 1168 | "name": "Sulphur", 1169 | "colors": ["#CAC531", "#F3F9A7"] 1170 | }, 1171 | { 1172 | "name": "Selenium", 1173 | "colors": ["#3C3B3F", "#605C3C"] 1174 | }, 1175 | { 1176 | "name": "Delicate", 1177 | "colors": ["#D3CCE3", "#E9E4F0"] 1178 | }, 1179 | { 1180 | 1181 | "name": "Ohhappiness", 1182 | "colors": ["#00b09b", "#96c93d"] 1183 | }, 1184 | { 1185 | "name": "Lawrencium", 1186 | "colors": ["#0f0c29", "#302b63", "#24243e"] 1187 | }, 1188 | { 1189 | "name": "Relaxing red", 1190 | "colors": ["#fffbd5", "#b20a2c"] 1191 | }, 1192 | { 1193 | "name": "Taran Tado", 1194 | "colors": ["#23074d", "#cc5333"] 1195 | }, 1196 | { 1197 | "name": "Bighead", 1198 | "colors": ["#c94b4b", "#4b134f"] 1199 | }, 1200 | { 1201 | "name": "Sublime Vivid", 1202 | "colors": ["#FC466B", "#3F5EFB"] 1203 | }, 1204 | { 1205 | "name": "Sublime Light", 1206 | "colors": ["#FC5C7D", "#6A82FB"] 1207 | }, 1208 | { 1209 | "name": "Pun Yeta", 1210 | "colors": ["#108dc7", "#ef8e38"] 1211 | }, 1212 | { 1213 | "name": "Quepal", 1214 | "colors": ["#11998e", "#38ef7d"] 1215 | }, 1216 | { 1217 | "name": "Sand to Blue", 1218 | "colors": ["#3E5151", "#DECBA4"] 1219 | }, 1220 | { 1221 | "name": "Wedding Day Blues", 1222 | "colors": ["#40E0D0", "#FF8C00", "#FF0080"] 1223 | }, 1224 | { 1225 | "name": "Shifter", 1226 | "colors": ["#bc4e9c", "#f80759"] 1227 | }, 1228 | { 1229 | "name": "Red Sunset", 1230 | "colors": ["#355C7D", "#6C5B7B", "#C06C84"] 1231 | }, 1232 | { 1233 | "name": "Moon Purple", 1234 | "colors": ["#4e54c8", "#8f94fb"] 1235 | }, 1236 | { 1237 | "name": "Pure Lust", 1238 | "colors": ["#333333", "#dd1818"] 1239 | }, 1240 | { 1241 | "name": "Slight Ocean View", 1242 | "colors": ["#a8c0ff", "#3f2b96"] 1243 | }, 1244 | { 1245 | "name": "eXpresso", 1246 | "colors": ["#ad5389", "#3c1053"] 1247 | }, 1248 | { 1249 | "name": "Shifty", 1250 | "colors": ["#636363", "#a2ab58"] 1251 | }, 1252 | { 1253 | "name": "Vanusa", 1254 | "colors": ["#DA4453", "#89216B"] 1255 | }, 1256 | { 1257 | "name": "Evening Night", 1258 | "colors": ["#005AA7", "#FFFDE4"] 1259 | }, 1260 | { 1261 | "name": "Magic", 1262 | "colors": ["#59C173", "#a17fe0", "#5D26C1"] 1263 | }, 1264 | { 1265 | "name": "Margo", 1266 | "colors": ["#FFEFBA", "#FFFFFF"] 1267 | }, 1268 | { 1269 | "name": "Blue Raspberry", 1270 | "colors": ["#00B4DB", "#0083B0"] 1271 | }, 1272 | { 1273 | "name": "Citrus Peel", 1274 | "colors": ["#FDC830", "#F37335"] 1275 | }, 1276 | { 1277 | "name": "Sin City Red", 1278 | "colors": ["#ED213A", "#93291E"] 1279 | }, 1280 | { 1281 | "name": "Rastafari", 1282 | "colors": ["#1E9600", "#FFF200", "#FF0000"] 1283 | }, 1284 | { 1285 | "name": "Summer Dog", 1286 | "colors": ["#a8ff78", "#78ffd6"] 1287 | }, 1288 | { 1289 | "name": "Wiretap", 1290 | "colors": ["#8A2387", "#E94057", "#F27121"] 1291 | }, 1292 | { 1293 | "name": "Burning Orange", 1294 | "colors": ["#FF416C", "#FF4B2B"] 1295 | }, 1296 | { 1297 | "name": "Ultra Voilet", 1298 | "colors": ["#654ea3", "#eaafc8"] 1299 | }, 1300 | { 1301 | "name": "By Design", 1302 | "colors": ["#009FFF", "#ec2F4B"] 1303 | }, 1304 | { 1305 | "name": "Kyoo Tah", 1306 | "colors": ["#544a7d", "#ffd452"] 1307 | }, 1308 | { 1309 | "name": "Kye Meh", 1310 | "colors": ["#8360c3", "#2ebf91"] 1311 | }, 1312 | { 1313 | "name": "Kyoo Pal", 1314 | "colors": ["#dd3e54", "#6be585"] 1315 | }, 1316 | { 1317 | "name": "Metapolis", 1318 | "colors": ["#659999", "#f4791f"] 1319 | }, 1320 | { 1321 | "name": "Flare", 1322 | "colors": ["#f12711", "#f5af19"] 1323 | }, 1324 | { 1325 | "name": "Witching Hour", 1326 | "colors": ["#c31432", "#240b36"] 1327 | }, 1328 | { 1329 | "name": "Azur Lane", 1330 | "colors": ["#7F7FD5", "#86A8E7", "#91EAE4"] 1331 | }, 1332 | { 1333 | "name": "Neuromancer", 1334 | "colors": ["#f953c6", "#b91d73"] 1335 | }, 1336 | { 1337 | "name": "Harvey", 1338 | "colors": ["#1f4037", "#99f2c8"] 1339 | }, 1340 | { 1341 | "name": "Amin", 1342 | "colors": ["#8E2DE2", "#4A00E0"] 1343 | }, 1344 | { 1345 | "name": "Memariani", 1346 | "colors": ["#aa4b6b", "#6b6b83" , "#3b8d99"] 1347 | }, 1348 | { 1349 | "name": "Yoda", 1350 | "colors": ["#FF0099", "#493240"] 1351 | }, 1352 | { 1353 | "name": "Cool Sky", 1354 | "colors": ["#2980B9", "#6DD5FA", "#FFFFFF"] 1355 | }, 1356 | { 1357 | "name": "Dark Ocean", 1358 | "colors": ["#373B44", "#4286f4"] 1359 | }, 1360 | { 1361 | "name": "Evening Sunshine", 1362 | "colors": ["#b92b27", "#1565C0"] 1363 | }, 1364 | { 1365 | "name": "JShine", 1366 | "colors": ["#12c2e9", "#c471ed", "#f64f59"] 1367 | }, 1368 | { 1369 | "name": "Moonlit Asteroid", 1370 | "colors": ["#0F2027", "#203A43", "#2C5364"] 1371 | }, 1372 | { 1373 | "name": "MegaTron", 1374 | "colors": ["#C6FFDD", "#FBD786", "#f7797d"] 1375 | }, 1376 | { 1377 | "name": "Cool Blues", 1378 | "colors": ["#2193b0", "#6dd5ed"] 1379 | }, 1380 | { 1381 | "name": "Piggy Pink", 1382 | "colors": ["#ee9ca7", "#ffdde1"] 1383 | }, 1384 | { 1385 | "name": "Grade Grey", 1386 | "colors": ["#bdc3c7","#2c3e50"] 1387 | }, 1388 | { 1389 | "name": "Telko", 1390 | "colors": ["#F36222", "#5CB644", "#007FC3"] 1391 | }, 1392 | { 1393 | "name": "Zenta", 1394 | "colors": ["#2A2D3E","#FECB6E"] 1395 | }, 1396 | { 1397 | "name": "Electric Peacock", 1398 | "colors": ["#8a2be2","#0000cd","#228b22","#ccff00"] 1399 | }, 1400 | { 1401 | "name": "Under Blue Green", 1402 | "colors": ["#051937","#004d7a","#008793","#00bf72","#a8eb12"] 1403 | }, 1404 | { 1405 | "name": "Lensod", 1406 | "colors": ["#6025F5","#FF5555"] 1407 | }, 1408 | { 1409 | "name": "Newspaper", 1410 | "colors": ["#8a2be2","#ffa500","#f8f8ff"] 1411 | }, 1412 | { 1413 | "name": "Dark Blue Gradient", 1414 | "colors": ["#2774ae", "#002E5D", "#002E5D"] 1415 | }, 1416 | { 1417 | "name": "Dark Blu Two", 1418 | "colors": ["#004680","#4484BA"] 1419 | }, 1420 | { 1421 | "name": "Lemon Lime", 1422 | "colors":["#7ec6bc","#ebe717"] 1423 | }, 1424 | { 1425 | "name": "Beleko", 1426 | "colors": ["#ff1e56", "#f9c942", "#1e90ff"] 1427 | }, 1428 | { 1429 | "name": "Mango Papaya", 1430 | "colors": ["#de8a41","#2ada53"] 1431 | }, 1432 | { 1433 | "name": "Unicorn Rainbow", 1434 | "colors": ["#f7f0ac","#acf7f0","#f0acf7"] 1435 | }, 1436 | { 1437 | "name": "Flame", 1438 | "colors": ["#ff0000", "#fdcf58"] 1439 | }, 1440 | { 1441 | "name": "Blue Red", 1442 | "colors": ["#36B1C7", "#960B33"] 1443 | }, 1444 | { 1445 | "name" : "Twitter", 1446 | "colors" : ["#1DA1F2", "#009ffc"] 1447 | }, 1448 | { 1449 | "name": "Blooze", 1450 | "colors": ["#6da6be", "#4b859e", "#6da6be"] 1451 | }, 1452 | { 1453 | "name": "Blue Slate", 1454 | "colors": ["#B5B9FF", "#2B2C49"] 1455 | }, 1456 | { 1457 | "name": "Space Light Green", 1458 | "colors": ["#9FA0A8", "#5C7852"] 1459 | }, 1460 | { 1461 | "name": "Flower", 1462 | "colors": ["#DCFFBD", "#CC86D1"] 1463 | }, 1464 | { 1465 | "name": "Elate The Euge", 1466 | "colors": ["#8BDEDA", "43ADD0", "998EE0", "E17DC2", "EF9393"] 1467 | }, 1468 | { 1469 | "name": "Peach Sea", 1470 | "colors": ["#E6AE8C", "#A8CECF"] 1471 | }, 1472 | { 1473 | "name": "Abbas", 1474 | "colors": ["#00fff0","#0083fe"] 1475 | }, 1476 | { 1477 | "name": "Winter Woods", 1478 | "colors": ["#333333", "#a2ab58", "#A43931"] 1479 | }, 1480 | { 1481 | "name": "Ameena", 1482 | "colors": ["#0c0c6d", "#de512b", "#98d0c1", "#5bb226", "#023c0d"] 1483 | }, 1484 | { 1485 | "name": "Emerald Sea", 1486 | "colors": ["#05386b","#5cdb95"] 1487 | }, 1488 | { 1489 | "name": "Bleem", 1490 | "colors": ["#4284DB", "#29EAC4"] 1491 | }, 1492 | { 1493 | "name": "Coffee Gold", 1494 | "colors": ["#554023", "#c99846"] 1495 | }, 1496 | { 1497 | "name": "Compass", 1498 | "colors": ["#516b8b", "#056b3b"] 1499 | }, 1500 | { 1501 | "name": "Andreuzza's", 1502 | "colors": ["#D70652", "#FF025E"] 1503 | }, 1504 | { 1505 | "name": "Moonwalker", 1506 | "colors": ["#152331", "#000000"] 1507 | }, 1508 | { 1509 | "name": "Whinehouse", 1510 | "colors": ["#f7f7f7", "#b9a0a0", "#794747", "#4e2020", "#111111"] 1511 | }, 1512 | { 1513 | "name": "Hyper Blue", 1514 | "colors": ["#59CDE9", "#0A2A88"] 1515 | }, 1516 | { 1517 | "name": "Racker", 1518 | "colors": ["#EB0000","#95008A","#3300FC"] 1519 | }, 1520 | { 1521 | "name": "After the Rain", 1522 | "colors": ["#ff75c3", "#ffa647", "#ffe83f", "#9fff5b", "#70e2ff", "#cd93ff"] 1523 | }, 1524 | { 1525 | "name": "Neon Green", 1526 | "colors": ["#81ff8a", "#64965e"] 1527 | }, 1528 | { 1529 | "name": "Dusty Grass", 1530 | "colors": ["#d4fc79", "#96e6a1"] 1531 | }, 1532 | { 1533 | "name": "Visual Blue", 1534 | "colors": ["#003d4d", "#00c996"] 1535 | } 1536 | ] 1537 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |{{gradient.name}}
5 |{{ gradient.name }}
4 |46 | {{ messages | randomize }} 47 |
48 | 49 | 50 | 51 |{{this.showSuccessMessage()}}
12 |
15 | background: {{ this.gradient.colors[0] | lowercase }}; /* fallback for old browsers */
16 | background: -webkit-linear-gradient({{ this.direction }}, {{ [...this.gradient.colors].reverse().join(', ') | lowercase }}); /* Chrome 10-25, Safari 5.1-6 */
17 | background: linear-gradient({{ this.direction }}, {{ [...this.gradient.colors].reverse().join(', ') | lowercase }}); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
18 |
19 |
20 | 9 | Adding a gradient is easy. All gradients are read from a gradients.json file which is available in this project's repo. Simply add your gradient details to it and submit a pull request. 10 |
11 | 12 | 13 | Tell me more 14 | 15 | 16 |