├── .gitignore ├── .meteor ├── .gitignore ├── release ├── platforms ├── .id ├── .finished-upgraders ├── packages └── versions ├── demoGif └── demo1.gif ├── .travis.yml ├── imports └── collections │ ├── FlatColors.js │ └── MaterialColors.js ├── client ├── layout │ ├── footer.js │ └── navigation.js ├── main.html ├── stylesheet │ ├── footer.import.less │ ├── selector.import.less │ ├── navbar.import.less │ ├── sliderpalette.import.less │ ├── palette.import.less │ ├── main.less │ └── home.import.less ├── components │ ├── converter.js │ ├── flatColorList.js │ ├── app.js │ ├── materialColorList.js │ ├── colorTabComponent.js │ ├── sampleModal.js │ ├── plate.js │ ├── materialColorCard.js │ ├── flatColorCard.js │ └── sliderPalette.js ├── main.js └── data │ ├── flatColors.js │ └── materialColors.js ├── package.json ├── server ├── main.js └── data │ ├── flatColors.js │ └── materialColors.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.4.2 2 | -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /demoGif/demo1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gongbaochicken/React-Hue/HEAD/demoGif/demo1.gif -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.12" 4 | before_install: 5 | - "curl -L https://raw.githubusercontent.com/arunoda/travis-ci-meteor-packages/master/configure.sh | /bin/sh" 6 | before_script: 7 | - "export PATH=$HOME/.meteor:$PATH" 8 | -------------------------------------------------------------------------------- /imports/collections/FlatColors.js: -------------------------------------------------------------------------------- 1 | import {Mongo} from 'meteor/mongo'; 2 | 3 | export const FlatColors = new Mongo.Collection('flatColors'); 4 | 5 | FlatColors.allow({ 6 | insert: function(){return true;}, 7 | update: function(){return true;}, 8 | }); 9 | -------------------------------------------------------------------------------- /imports/collections/MaterialColors.js: -------------------------------------------------------------------------------- 1 | import {Mongo} from 'meteor/mongo'; 2 | 3 | export const MaterialColors = new Mongo.Collection('materialColors'); 4 | 5 | MaterialColors.allow({ 6 | insert: function(){return true;}, 7 | update: function(){return true;}, 8 | }); 9 | -------------------------------------------------------------------------------- /client/layout/footer.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Footer = () => { 4 | return ( 5 |
6 | 7 | 8 | 9 |
10 | ); 11 | } 12 | 13 | export default Footer; 14 | -------------------------------------------------------------------------------- /client/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | React Hue 7 | 8 | 9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 1ods4ev71cz1813wpejr 8 | -------------------------------------------------------------------------------- /client/stylesheet/footer.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue footer less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | /*========Footer===========*/ 10 | .footerSection{ 11 | background: #000021; 12 | width: 100%; 13 | right: 0; 14 | bottom: 0; 15 | left: 0; 16 | color: #ffffff; 17 | padding-left: 45%; 18 | padding-top: 10px; 19 | } 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-hue", 3 | "private": true, 4 | "scripts": { 5 | "start": "meteor run" 6 | }, 7 | "dependencies": { 8 | "lodash": "^4.16.6", 9 | "material-ui": "^0.16.3", 10 | "meteor-node-stubs": "~0.2.0", 11 | "react": "^15.4.0", 12 | "react-addons-pure-render-mixin": "^15.3.2", 13 | "react-copy-to-clipboard": "^4.2.3", 14 | "react-dom": "^15.3.2", 15 | "react-highlight": "^0.9.0", 16 | "react-router": "^3.0.0", 17 | "react-tap-event-plugin": "^2.0.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | 1.2.0-standard-minifiers-package 10 | 1.2.0-meteor-platform-split 11 | 1.2.0-cordova-changes 12 | 1.2.0-breaking-changes 13 | 1.3.0-split-minifiers-package 14 | 1.4.0-remove-old-dev-bundle-link 15 | 1.4.1-add-shell-server-package 16 | -------------------------------------------------------------------------------- /client/components/converter.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import Plate from './plate'; 4 | 5 | class Converter extends Component { 6 | constructor(props){ 7 | super(props); 8 | 9 | this.state = {background: ''}; 10 | } 11 | 12 | render(){ 13 | let style = { 14 | background: this.state.background 15 | }; 16 | return ( 17 | 18 |
19 | 20 |
21 | ); 22 | } 23 | } 24 | 25 | export default Converter; 26 | -------------------------------------------------------------------------------- /client/stylesheet/selector.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue selector less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | .backgroundBoard{ 10 | background-color: #ecf0f1; 11 | width: 100%; 12 | } 13 | .colorScrollList{ 14 | height: 70%; 15 | } 16 | .colStyle{ 17 | font-size: 30px; 18 | text-align: center; 19 | } 20 | .columnColorBlock, .copyBtn{ 21 | width: 100%; 22 | height: auto; 23 | } 24 | .cssBoard{ 25 | height: 700px; 26 | background-color: #000000; 27 | border: 3px #fff; 28 | } 29 | -------------------------------------------------------------------------------- /client/components/flatColorList.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import FlatColorCard from './flatColorCard'; 3 | import {createContainer} from 'meteor/react-meteor-data'; 4 | import {FlatColors} from '../../imports/collections/FlatColors'; 5 | 6 | class FlatColorList extends Component { 7 | render(){ 8 | return ( 9 |
10 | {this.props.flatColors.map(color => ) } 11 |
12 | ); 13 | } 14 | }; 15 | 16 | export default createContainer(()=> { 17 | //set up subscribe 18 | Meteor.subscribe('flatColors'); 19 | return {flatColors: FlatColors.find({}).fetch()}; 20 | }, FlatColorList); 21 | -------------------------------------------------------------------------------- /client/stylesheet/navbar.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue navbar less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | @navbar-color: #00BCD4; 10 | 11 | /*========NavBar===========*/ 12 | .navbar-custome{ 13 | background: @navbar-color; 14 | height: 50px; 15 | font-size: 23px; 16 | color: white; 17 | border-bottom: lighten(@navbar-color, 5%) solid 3px; 18 | } 19 | 20 | .navbar-brand{ 21 | font-size: 24px !important; 22 | font-weight: bolder; 23 | font-family: sans-serif; 24 | } 25 | .nav .navbar-nav a{ 26 | font-size: 19px !important; 27 | color: white; 28 | } 29 | 30 | .nav .active{ 31 | background: darken(@navbar-color, 3%); 32 | } 33 | -------------------------------------------------------------------------------- /client/components/app.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 4 | import getMuiTheme from 'material-ui/styles/getMuiTheme'; 5 | import Navigation from '../layout/navigation'; 6 | import Footer from '../layout/footer'; 7 | 8 | const muiTheme = getMuiTheme({ 9 | slider: { 10 | trackColor: '#146eb4', 11 | selectionColor: '#fd5c63', 12 | trackSize: 10, 13 | handleSize: 20 14 | }, 15 | }); 16 | 17 | export default (props) => { 18 | return( 19 |
20 | 21 | 22 | {props.children} 23 | 24 |
26 | ); 27 | }; 28 | -------------------------------------------------------------------------------- /client/components/materialColorList.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import MaterialColorCard from './materialColorCard'; 3 | import {createContainer} from 'meteor/react-meteor-data'; 4 | import {MaterialColors} from '../../imports/collections/MaterialColors'; 5 | 6 | class MaterialColorList extends Component { 7 | render(){ 8 | return ( 9 |
10 | {this.props.materialColors.map(color => ) } 11 |
12 | ); 13 | } 14 | }; 15 | 16 | export default createContainer(()=> { 17 | //set up subscribe 18 | Meteor.subscribe('materialColors'); 19 | return {materialColors: MaterialColors.find({}).fetch()}; 20 | }, MaterialColorList); 21 | -------------------------------------------------------------------------------- /client/main.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom'; 3 | import {Router, Route, Link, IndexRoute, browserHistory} from 'react-router' 4 | 5 | import App from './components/app'; 6 | import ColorTabComponent from './components/colorTabComponent'; 7 | import Converter from './components/converter'; 8 | import SliderPalette from './components/sliderPalette'; 9 | 10 | const routes = ( 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ); 19 | 20 | Meteor.startup(() => { 21 | ReactDOM.render(routes, document.querySelector('.render-target')); 22 | }); 23 | -------------------------------------------------------------------------------- /client/stylesheet/sliderpalette.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue SliderPlatte less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | /*========SliderPlatte===========*/ 10 | .sliderPlate { 11 | height: 100vh; 12 | width: 100%; 13 | padding: 0; 14 | } 15 | .reatTimeUpdateSection { 16 | width: 30%; 17 | height: 100px; 18 | margin-left: 35%; 19 | position: relative; 20 | top: 100px; 21 | } 22 | .realTimeSample { 23 | color: #fff; 24 | font-size: 30px; 25 | text-align: center; 26 | } 27 | .sliderRGBValue{ 28 | margin-top: 20px; 29 | text-align: center; 30 | font-size: 24px; 31 | color: #ffffff; 32 | font-weight: bolder; 33 | } 34 | .sliderGroup { 35 | width: 30%; 36 | height: 200px; 37 | margin-left: 35%; 38 | margin-top: 150px; 39 | position: relative; 40 | } 41 | -------------------------------------------------------------------------------- /client/components/colorTabComponent.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import injectTapEventPlugin from 'react-tap-event-plugin'; 3 | import {Tabs, Tab} from 'material-ui/Tabs'; 4 | import FlatColorList from './flatColorList'; 5 | import MaterialColorList from './materialColorList'; 6 | 7 | injectTapEventPlugin(); 8 | 9 | class ColorTabComponent extends Component { 10 | constructor(props){ 11 | super(props); 12 | } 13 | 14 | render(){ 15 | return ( 16 | 17 | 18 |
19 | 20 |
21 |
22 | 23 |
24 | 25 |
26 |
27 | 28 |
29 |

30 | This is under development. 31 |

32 |
33 |
34 |
35 | ); 36 | } 37 | } 38 | 39 | export default ColorTabComponent; 40 | -------------------------------------------------------------------------------- /server/main.js: -------------------------------------------------------------------------------- 1 | import { Meteor } from 'meteor/meteor'; 2 | import _ from 'lodash'; 3 | import {FlatColors} from '../imports/collections/FlatColors'; 4 | import {MaterialColors} from '../imports/collections/MaterialColors'; 5 | import MaterialColorSample from './data/materialColors'; 6 | import FlatColorSample from './data/flatColors'; 7 | 8 | Meteor.startup(() => { 9 | const numberRecords = FlatColors.find({}).count(); 10 | if(numberRecords == 0) { 11 | _.forEach(FlatColorSample, function(color){ 12 | FlatColors.insert({ 13 | name: color.name, 14 | hex: color.hex, 15 | click: 0 16 | }); 17 | }); 18 | _.forEach(MaterialColorSample, function(color){ 19 | MaterialColors.insert({ 20 | name: color.name, 21 | hex: color.hex, 22 | click: 0 23 | }); 24 | }); 25 | } 26 | 27 | Meteor.publish('flatColors', function() { 28 | return FlatColors.find({}); 29 | }); 30 | Meteor.publish('materialColors', function() { 31 | return MaterialColors.find({}); 32 | }); 33 | 34 | }); 35 | -------------------------------------------------------------------------------- /client/data/flatColors.js: -------------------------------------------------------------------------------- 1 | const FlatColorSample = [ 2 | {name: 'turquoise', hex: '#1abc9c', click: 0}, 3 | {name: 'emerland', hex: '#2ecc71', click: 0}, 4 | {name: 'peterRiver', hex: '#3498db', click: 0}, 5 | {name: 'amethyst', hex: '#9b59b6', click: 0}, 6 | {name: 'wetAsphalt', hex: '#34495e', click: 0}, 7 | {name: 'greenSea', hex: '#16a085', click: 0}, 8 | {name: 'nephritis', hex: '#27ae60', click: 0}, 9 | {name: 'belizeHol', hex: '#2980b9', click: 0}, 10 | {name: 'wisteria', hex: '#8e44ad', click: 0}, 11 | {name: 'midnightBlue', hex: '#2c3e50', click: 0}, 12 | {name: 'sunFlower', hex: '#f1c40f', click: 0}, 13 | {name: 'carrot', hex: '#e67e22', click: 0}, 14 | {name: 'alizarin', hex: '#e74c3c', click: 0}, 15 | {name: 'clouds', hex: '#ecf0f1', click: 0}, 16 | {name: 'concrete', hex: '#95a5a6', click: 0}, 17 | {name: 'orange', hex: '#f39c12', click: 0}, 18 | {name: 'pumpkin', hex: '#d35400', click: 0}, 19 | {name: 'pomegranate', hex: '#c0392b', click: 0}, 20 | {name: 'silver', hex: '#bdc3c7', click: 0}, 21 | {name: 'asbestos', hex: '#7f8c8d', click: 0} 22 | ]; 23 | 24 | export default FlatColorSample; 25 | -------------------------------------------------------------------------------- /server/data/flatColors.js: -------------------------------------------------------------------------------- 1 | const FlatColorSample = [ 2 | {name: 'turquoise', hex: '#1abc9c', click: 0}, 3 | {name: 'emerland', hex: '#2ecc71', click: 0}, 4 | {name: 'peterRiver', hex: '#3498db', click: 0}, 5 | {name: 'amethyst', hex: '#9b59b6', click: 0}, 6 | {name: 'wetAsphalt', hex: '#34495e', click: 0}, 7 | {name: 'greenSea', hex: '#16a085', click: 0}, 8 | {name: 'nephritis', hex: '#27ae60', click: 0}, 9 | {name: 'belizeHol', hex: '#2980b9', click: 0}, 10 | {name: 'wisteria', hex: '#8e44ad', click: 0}, 11 | {name: 'midnightBlue', hex: '#2c3e50', click: 0}, 12 | {name: 'sunFlower', hex: '#f1c40f', click: 0}, 13 | {name: 'carrot', hex: '#e67e22', click: 0}, 14 | {name: 'alizarin', hex: '#e74c3c', click: 0}, 15 | {name: 'clouds', hex: '#ecf0f1', click: 0}, 16 | {name: 'concrete', hex: '#95a5a6', click: 0}, 17 | {name: 'orange', hex: '#f39c12', click: 0}, 18 | {name: 'pumpkin', hex: '#d35400', click: 0}, 19 | {name: 'pomegranate', hex: '#c0392b', click: 0}, 20 | {name: 'silver', hex: '#bdc3c7', click: 0}, 21 | {name: 'asbestos', hex: '#7f8c8d', click: 0} 22 | ]; 23 | 24 | export default FlatColorSample; 25 | -------------------------------------------------------------------------------- /client/stylesheet/palette.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue Platte less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | /*========Platte===========*/ 10 | .plateApp{ 11 | width: 100%; 12 | } 13 | .plate { 14 | height: 100vh; 15 | width: 100%; 16 | padding: 0; 17 | .inputSection { 18 | width: 50%; 19 | margin-left: 25%; 20 | padding-top: 200px; 21 | } 22 | } 23 | 24 | #hexInput, #rgbInput { 25 | color: #59626a; 26 | font-size: 4em; 27 | font-weight: bolder; 28 | text-align: center; 29 | background: transparent; 30 | border: 0; 31 | border-bottom: 1px solid rgba(34, 34, 34, .3); 32 | padding: 0; 33 | padding-bottom: 1px; 34 | margin: .5em 0 .25em; 35 | width: 100%; 36 | -webkit-transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); 37 | transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); 38 | } 39 | #hexInput:focus, #rgbInput:focus { 40 | border-width: 2px; 41 | border-color: rgba(34, 34, 34, .9); 42 | padding: 0; 43 | outline: 0; 44 | } 45 | -------------------------------------------------------------------------------- /.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # Check this file (and the other files in this directory) into your repository. 3 | # 4 | # 'meteor add' and 'meteor remove' will edit this file for you, 5 | # but you can also edit it by hand. 6 | 7 | meteor-base@1.0.4 # Packages every Meteor app needs to have 8 | mobile-experience@1.0.4 # Packages for a great mobile UX 9 | mongo@1.1.14 # The database Meteor supports right now 10 | blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views 11 | reactive-var@1.0.11 # Reactive variable for tracker 12 | jquery@1.11.10 # Helpful client-side library 13 | tracker@1.1.1 # Meteor's client-side reactive programming library 14 | 15 | standard-minifier-css@1.3.2 # CSS minifier run for production mode 16 | standard-minifier-js@1.2.1 # JS minifier run for production mode 17 | es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers. 18 | ecmascript@0.5.9 # Enable ECMAScript2015+ syntax in app code 19 | shell-server@0.2.1 # Server-side component of the `meteor shell` command 20 | 21 | react-meteor-data 22 | twbs:bootstrap 23 | remy:color-hex-rgb 24 | fortawesome:fontawesome 25 | less 26 | -------------------------------------------------------------------------------- /client/layout/navigation.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | 3 | class Navigation extends Component { 4 | constructor(props){ 5 | super(props); 6 | this.state = {selected: props.navSelected}; 7 | } 8 | 9 | handleClick(event) { 10 | const selectedId = event.target.id; 11 | console.log(selectedId); 12 | this.setState({selected: selectedId}); 13 | } 14 | 15 | render() { 16 | console.log() 17 | return ( 18 | 34 | ); 35 | } 36 | } 37 | 38 | export default Navigation; 39 | -------------------------------------------------------------------------------- /client/stylesheet/main.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue main less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | @import "./navbar.import.less"; 10 | @import "./footer.import.less"; 11 | @import "./home.import.less"; 12 | @import "./palette.import.less"; 13 | @import "./sliderpalette.import.less"; 14 | @import "./selector.import.less"; 15 | 16 | // * 1. Set default font family to sans-serif. 17 | // * 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. 18 | html { 19 | font-family: sans-serif; 20 | -ms-text-size-adjust: 100%; 21 | -webkit-text-size-adjust: 100%; 22 | } 23 | 24 | // Remove default margin. 25 | body { margin: 0 } 26 | 27 | // HTML5 display definitions ========================================================================== 28 | // * Correct `block` display not defined for any HTML5 element in IE 8/9. 29 | // * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. 30 | // * Correct `block` display not defined for `main` in IE 11. 31 | article, 32 | aside, 33 | details, 34 | figcaption, 35 | figure, 36 | footer, 37 | header, 38 | hgroup, 39 | main, 40 | nav, 41 | section, 42 | summary { 43 | display: block; 44 | } 45 | 46 | @media only screen and (max-width: 320px) { 47 | body { font-size: 0.5em; } 48 | } 49 | -------------------------------------------------------------------------------- /client/components/sampleModal.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const SampleModal = ({color}) => { 4 | const {name, hex} = color; 5 | let titleStyle = {background: hex}; 6 | let row1Style = {background: hex}; 7 | let row2Style = {color: hex}; 8 | return( 9 |
10 |
11 |
Color: {name}
12 |
Hex: {hex}
13 |
14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 |
37 | ); 38 | } 39 | 40 | export default SampleModal; 41 | -------------------------------------------------------------------------------- /.meteor/versions: -------------------------------------------------------------------------------- 1 | allow-deny@1.0.5 2 | autoupdate@1.2.11 3 | babel-compiler@6.13.0 4 | babel-runtime@0.1.13 5 | base64@1.0.10 6 | binary-heap@1.0.10 7 | blaze@2.1.9 8 | blaze-html-templates@1.0.5 9 | blaze-tools@1.0.10 10 | boilerplate-generator@1.0.11 11 | caching-compiler@1.1.8 12 | caching-html-compiler@1.0.7 13 | callback-hook@1.0.10 14 | check@1.2.4 15 | ddp@1.2.5 16 | ddp-client@1.2.9 17 | ddp-common@1.2.7 18 | ddp-server@1.2.10 19 | deps@1.0.12 20 | diff-sequence@1.0.7 21 | ecmascript@0.5.9 22 | ecmascript-runtime@0.3.15 23 | ejson@1.0.13 24 | es5-shim@4.6.15 25 | fastclick@1.0.13 26 | fortawesome:fontawesome@4.7.0 27 | geojson-utils@1.0.10 28 | hot-code-push@1.0.4 29 | html-tools@1.0.11 30 | htmljs@1.0.11 31 | http@1.1.8 32 | id-map@1.0.9 33 | jquery@1.11.10 34 | launch-screen@1.0.12 35 | less@2.7.6 36 | livedata@1.0.18 37 | logging@1.1.16 38 | meteor@1.6.0 39 | meteor-base@1.0.4 40 | minifier-css@1.2.15 41 | minifier-js@1.2.15 42 | minimongo@1.0.18 43 | mobile-experience@1.0.4 44 | mobile-status-bar@1.0.13 45 | modules@0.7.7 46 | modules-runtime@0.7.7 47 | mongo@1.1.14 48 | mongo-id@1.0.6 49 | npm-mongo@2.2.11_2 50 | observe-sequence@1.0.14 51 | ordered-dict@1.0.9 52 | promise@0.8.8 53 | random@1.0.10 54 | react-meteor-data@0.2.9 55 | reactive-var@1.0.11 56 | reload@1.1.11 57 | remy:color-hex-rgb@0.0.1 58 | retry@1.0.9 59 | routepolicy@1.0.12 60 | shell-server@0.2.1 61 | spacebars@1.0.13 62 | spacebars-compiler@1.0.13 63 | standard-minifier-css@1.3.2 64 | standard-minifier-js@1.2.1 65 | templating@1.2.15 66 | templating-compiler@1.2.15 67 | templating-runtime@1.2.15 68 | templating-tools@1.0.5 69 | tmeasday:check-npm-versions@0.2.0 70 | tracker@1.1.1 71 | twbs:bootstrap@3.3.6 72 | ui@1.0.12 73 | underscore@1.0.10 74 | url@1.0.11 75 | webapp@1.3.12 76 | webapp-hashing@1.0.9 77 | -------------------------------------------------------------------------------- /client/components/plate.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | 3 | class Plate extends Component { 4 | constructor(props){ 5 | super(props); 6 | this.state = {background: '#DB932A', outputRgb: 'rgb(219, 147, 42)'}; 7 | } 8 | 9 | handleHexRGB(event){ 10 | event.preventDefault(); 11 | let value = this.refs.hex.value; 12 | 13 | //For both '#ffffff' and 'ffffff' work 14 | if(value.length >0 && value.slice(0, 1) != '#'){ 15 | value = "#"+value; 16 | } 17 | 18 | //hex start with # is invalid, if length < 4; 19 | //hex start without # is invalid, if length < 3. 20 | if(value.slice(0, 1) == '#' && value.length < 4 21 | || value.length < 3){ 22 | this.setState({background: value, 23 | outputRgb: ""}); 24 | }else{ 25 | //conversion from hex to rgb 26 | var rgb = hexToRgb(value); 27 | if(rgb){ 28 | var rgbString = "RGB(" + rgb.r + "," + rgb.g + "," + rgb.b + ")"; 29 | } 30 | console.log(rgbString); 31 | this.setState({background: value, 32 | outputRgb: rgbString}); 33 | } 34 | } 35 | 36 | render(){ 37 | let style = { 38 | background: this.state.background 39 | }; 40 | 41 | return ( 42 |
43 |
44 | 45 | 46 |
47 |
48 | ); 49 | } 50 | } 51 | 52 | export default Plate; 53 | -------------------------------------------------------------------------------- /client/components/materialColorCard.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import FlatButton from 'material-ui/FlatButton'; 3 | import SampleModal from './sampleModal'; 4 | import Dialog from 'material-ui/Dialog'; 5 | import {MaterialColors} from '../../imports/collections/MaterialColors'; 6 | 7 | const customContentStyle = { 8 | width: '85%', 9 | height: '100%', 10 | maxWidth: 'none', 11 | }; 12 | 13 | class MaterialColorCard extends Component{ 14 | constructor(props){ 15 | super(props); 16 | this.state = {open: false}; 17 | } 18 | 19 | handleMaterialColorVote(event){ 20 | event.preventDefault(); 21 | var colorID = this.props.color._id; 22 | MaterialColors.update(colorID, {$inc: {click: 1}}); 23 | this.setState({open: true}); 24 | } 25 | 26 | handleClose(props){ 27 | this.setState({open: false}); 28 | }; 29 | 30 | render(){ 31 | const actions = [ 32 | 38 | ]; 39 | var style = { 40 | background: this.props.color.hex 41 | }; 42 | return ( 43 |
44 | 45 |
46 |
{this.props.color.name}
47 |
{this.props.color.hex}
48 |
{this.props.color.click}
49 |
50 | 57 | 58 | 59 |
60 | ); 61 | } 62 | }; 63 | 64 | export default MaterialColorCard; 65 | -------------------------------------------------------------------------------- /client/components/flatColorCard.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {FlatColors} from '../../imports/collections/FlatColors'; 3 | import Dialog from 'material-ui/Dialog'; 4 | import FlatButton from 'material-ui/FlatButton'; 5 | import SampleModal from './sampleModal'; 6 | 7 | const customContentStyle = { 8 | width: '85%', 9 | height: '100%', 10 | maxWidth: 'none', 11 | }; 12 | 13 | class FlatColorCard extends Component{ 14 | constructor(props){ 15 | super(props); 16 | this.state = {open: false}; 17 | } 18 | 19 | handleFlatColorVote(event){ 20 | event.preventDefault(); 21 | let colorID = this.props.color._id; 22 | FlatColors.update(colorID, {$inc: {click: 1}}); 23 | this.setState({open: true}); 24 | } 25 | 26 | handleClose(props){ 27 | this.setState({open: false}); 28 | }; 29 | 30 | render(){ 31 | const actions = [ 32 | 38 | ]; 39 | var style = { 40 | background: this.props.color.hex 41 | }; 42 | return ( 43 |
44 |
45 | 46 |
47 |
{this.props.color.name}
48 |
{this.props.color.hex}
49 |
{this.props.color.click}
50 |
51 |
52 | 59 | 60 | 61 |
62 | ); 63 | } 64 | }; 65 | 66 | export default FlatColorCard; 67 | -------------------------------------------------------------------------------- /client/components/sliderPalette.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import Slider from 'material-ui/Slider'; 3 | 4 | class SliderPalette extends Component { 5 | constructor(props){ 6 | super(props); 7 | this.state = {background: 'RGB(25, 178, 206)', r: 25, g: 187, b:206}; 8 | } 9 | 10 | /* Todo: Create a new slider collection to combine these three handles */ 11 | handleChangeR(event, value){ 12 | event.preventDefault(); 13 | let rVal = value; 14 | let gVal = this.state.g; 15 | let bVal = this.state.b; 16 | 17 | var rgbString = "RGB(" + rVal + "," + gVal + "," + bVal + ")"; 18 | this.setState({background: rgbString, 19 | r: rVal, g: gVal, b: bVal}); 20 | } 21 | 22 | handleChangeG(event, value){ 23 | event.preventDefault(); 24 | let rVal = this.state.r; 25 | let gVal = value; 26 | let bVal = this.state.b; 27 | 28 | var rgbString = "RGB(" + rVal + "," + gVal + "," + bVal + ")"; 29 | this.setState({background: rgbString, 30 | r: rVal, g: gVal, b: bVal}); 31 | } 32 | 33 | handleChangeB(event, value){ 34 | event.preventDefault(); 35 | let rVal = this.state.r; 36 | let gVal = this.state.g; 37 | let bVal = value; 38 | 39 | var rgbString = "RGB(" + rVal + "," + gVal + "," + bVal + ")"; 40 | this.setState({background: rgbString, 41 | r: rVal, g: gVal, b: bVal}); 42 | } 43 | 44 | render(){ 45 | let style = { 46 | background: this.state.background 47 | }; 48 | 49 | return ( 50 |
51 |
52 |
53 | 54 |
{this.state.background}
55 |
56 |
57 |
58 | 59 | 60 | 61 |
62 |
63 | ); 64 | } 65 | } 66 | 67 | export default SliderPalette; 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Hue 2 | [![Build Status](https://travis-ci.org/gongbaochicken/React-Hue.svg?branch=master)](https://travis-ci.org/gongbaochicken/React-Hue) 3 | 4 | React Hue is a color palette tool built in a combination of Meteor.js, React, Material UI, Bootstrap. This simple web app mainly built for exploring what are better colors for web, mobile, UI development, the popular color set used by industry companies, and it also provides with color toolboxes. 5 | 6 | For long term, I am planning to add some research result about color usage in modern web design, e.g. desgin adpation for users with color blindness. 7 | 8 | Demo: http://react-hue.herokuapp.com/ 9 | 10 | ![demo gif](demoGif/demo1.gif) 11 | 12 | Please forgive this compressed gif at this time, and try to run it locally if you are interested. 13 | 14 | ## :memo: Version: 1.0 15 | Successfully pass Travis-CI. 16 | 17 | ## :rocket: Features: 18 | - Pick up popular and suitable colors for design and development. 19 | - Fast realtime render for color changing to boost reactive UX. 20 | - Reactive way to converse color HEX value to RGB value. 21 | 22 | ## Why use Meteor? 23 | Meteor is a real-time, easy-use full-stack web platform with data synchronization client/server (DDP). It is on the top of Node.js and MongoDB, which means one language can be used in both front-end client and back-end server. It saves a lot of my time and it keeps its promise of optimizing for developer happiness. 24 | 25 | ## Why use React? 26 | React is fast rendered, and enforces a lot of rules and guidelines that make it clearer what the “right” way to do any given task is. While it’s not as tightly integrated with Meteor (yet), it does have a much larger overall ecosystem. 27 | 28 | ## Why use Material UI? 29 | As a superstar project host by Goolge, Material UI is more clear, attractive, delightful, when it is compared with other popular UI frameworks. Meanwhile, it leverages good sides of React.js, and improves the rendering effects. After using frameworks like Bootstrap for a long time, it is a good time for us to try new tastes. 30 | 31 | ## :octocat: Getting Started 32 | 33 | #### Install the latest version of Node and NPM. We recommend the usage of [NVM](http://nvm.sh). 34 | 35 | #### [Install Meteor](https://www.meteor.com/install): 36 | 37 | ```sh 38 | curl https://install.meteor.com/ | sh 39 | ``` 40 | 41 | #### Clone this repository to local directory: 42 | ```sh 43 | git clone https://github.com/gongbaochicken/React-Hue.git 44 | ``` 45 | 46 | #### Install the necessary NPM packages: 47 | 48 | ```sh 49 | cd React-Hue 50 | npm install 51 | ``` 52 | 53 | #### Then run the app with: 54 | 55 | ```sh 56 | meteor reset 57 | meteor 58 | ``` 59 | 60 | You'll then be able to access it on [http://localhost:3000](http://localhost:3000). 61 | 62 | ### :yum: Please star this project if you like it. 63 | -------------------------------------------------------------------------------- /client/stylesheet/home.import.less: -------------------------------------------------------------------------------- 1 | /* 2 | React Hue main less file 3 | Author: Zhuo Jia 4 | Version: 1.1 5 | Time: 2016 6 | license: MIT 7 | */ 8 | 9 | @background-color: #ffffff; 10 | 11 | /*========Flat UI Color===========*/ 12 | .flatColorList{ 13 | padding: 0; 14 | margin: 0; 15 | } 16 | .flatColorCard { 17 | position: relative; 18 | width: 20%; 19 | height: 25vh; 20 | float: left; 21 | background-color: @background-color; 22 | margin: 0; 23 | margin-top: 0px; 24 | box-shadow: 0 1px 0px rgba(0,0,10,0.15); 25 | transition: all 0.3s ease-in-out; 26 | 27 | &:after{ 28 | position: absolute; 29 | z-index: -1; 30 | width: 100%; 31 | height: 100%; 32 | opacity: 0; 33 | box-shadow: 0 5px 15px rgba(0,0,0,0.3); 34 | transition: opacity 0.3s ease-in-out; 35 | } 36 | 37 | &:hover { 38 | transform: scale(1.16, 1.16); 39 | z-index: 1; 40 | &:after { 41 | opacity: 1; 42 | } 43 | } 44 | > .img-responsive{ 45 | width: 100%; 46 | height: 100%; 47 | position: relative; 48 | } 49 | >.textblock{ 50 | position: absolute; 51 | width: 100%; 52 | height: 80%; 53 | top: 20%; 54 | font-size: 25px; 55 | font-weight: bold; 56 | text-align: center; 57 | color: @background-color; 58 | opacity: 0; 59 | 60 | &:hover{ 61 | transition: 1s ease-in-out; 62 | opacity: 1; 63 | } 64 | } 65 | .colorName { 66 | top: 50px; 67 | } 68 | .colorHex { 69 | top: 100px; 70 | } 71 | .colorClick { 72 | top: 150px; 73 | } 74 | } 75 | 76 | /*========Material UI Color===========*/ 77 | .materialColorList{ 78 | width: 90%; 79 | margin-left: 5%; 80 | } 81 | .materialColorCard { 82 | position: relative; 83 | width: 10%; 84 | max-width: 150px; 85 | min-width: 100px; 86 | height: 20vh; 87 | float: left; 88 | background-color: #fff; 89 | margin: 0; 90 | margin-top: 0px; 91 | box-shadow: 0 1px 0px rgba(0,0,10,0.15); 92 | transition: all 0.3s ease-in-out; 93 | 94 | &:after{ 95 | position: absolute; 96 | z-index: -1; 97 | width: 100%; 98 | height: 100%; 99 | opacity: 0; 100 | box-shadow: 0 5px 15px rgba(0,0,0,0.3); 101 | transition: opacity 0.3s ease-in-out; 102 | } 103 | 104 | &:hover { 105 | transform: scale(1.16, 1.16); 106 | z-index: 1; 107 | 108 | &:after { 109 | opacity: 1; 110 | } 111 | } 112 | 113 | > .img-responsive{ 114 | margin-top: 10px; 115 | width: 100%; 116 | height: 60%; 117 | position: relative; 118 | } 119 | > .textblock{ 120 | width: 100%; 121 | height: 30%; 122 | font-size: 14px; 123 | font-weight: bold; 124 | text-align: center; 125 | color: gray; 126 | } 127 | > .colorClick { 128 | position: absolute; 129 | top: 40px; 130 | width: 100%; 131 | height: 150px; 132 | font-size: 20px; 133 | color: #fff; 134 | text-align: center; 135 | opacity: 0; 136 | 137 | &:hover { 138 | transition: 1s ease-in-out; 139 | opacity: 1; 140 | } 141 | } 142 | } 143 | 144 | /*===============Modal===============*/ 145 | .sampleOnTest { 146 | border: 1px; 147 | border-color: @background-color; 148 | width: 100%; 149 | i { 150 | margin: 0px 25px 20px 25px; 151 | } 152 | .sampleTitle{ 153 | padding-top: 10px; 154 | font-size: 30px; 155 | font-weight: bold; 156 | color: white; 157 | } 158 | .firstRow{ 159 | padding-top: 10px; 160 | color: @background-color; 161 | } 162 | .secondRow{ 163 | padding-top: 10px; 164 | background: @background-color; 165 | } 166 | } 167 | 168 | .invert { 169 | -webkit-filter: invert(100%); 170 | filter: invert(100%); 171 | } 172 | -------------------------------------------------------------------------------- /client/data/materialColors.js: -------------------------------------------------------------------------------- 1 | const MaterialColorSample = [ 2 | {name: 'red-50', hex: '#FFEBEE', click: 0, lowLum: true}, 3 | {name: 'red-100', hex: '#FFCDD2', click: 0, lowLum: true}, 4 | {name: 'red-200', hex: '#EF9A9A', click: 0, lowLum: true}, 5 | {name: 'red-300', hex: '#E57373', click: 0, lowLum: true}, 6 | {name: 'red-400', hex: '#EF5350', click: 0, lowLum: false}, 7 | {name: 'red-500', hex: '#F44336', click: 0, lowLum: false}, 8 | {name: 'red-600', hex: '#E53935', click: 0, lowLum: false}, 9 | {name: 'red-700', hex: '#D32F2F', click: 0, lowLum: false}, 10 | {name: 'red-800', hex: '#C62828', click: 0, lowLum: false}, 11 | {name: 'red-900', hex: '#B71C1C', click: 0, lowLum: false}, 12 | {name: 'pink-50', hex: '#FCE4EC', click: 0, lowLum: true}, 13 | {name: 'pink-100', hex: '#F8BBD0', click: 0, lowLum: true}, 14 | {name: 'pink-200', hex: '#F48FB1', click: 0, lowLum: true}, 15 | {name: 'pink-300', hex: '#F06292', click: 0, lowLum: true}, 16 | {name: 'pink-400', hex: '#EC407A', click: 0, lowLum: false}, 17 | {name: 'pink-500', hex: '#E91E63', click: 0, lowLum: false}, 18 | {name: 'pink-600', hex: '#D81B60', click: 0, lowLum: false}, 19 | {name: 'pink-700', hex: '#C2185B', click: 0, lowLum: false}, 20 | {name: 'pink-800', hex: '#AD1457', click: 0, lowLum: false}, 21 | {name: 'pink-900', hex: '#880E4F', click: 0, lowLum: false}, 22 | {name: 'purple-50', hex: '#F3E5F5', click: 0, lowLum: false}, 23 | {name: 'purple-100', hex: '#E1BEE7', click: 0, lowLum: false}, 24 | {name: 'purple-200', hex: '#CE93D8', click: 0, lowLum: false}, 25 | {name: 'purple-300', hex: '#BA68C8', click: 0, lowLum: true}, 26 | {name: 'purple-400', hex: '#AB47BC', click: 0, lowLum: true}, 27 | {name: 'purple-500', hex: '#9C27B0', click: 0, lowLum: true}, 28 | {name: 'purple-600', hex: '#8E24AA', click: 0, lowLum: true}, 29 | {name: 'purple-700', hex: '#7B1FA2', click: 0, lowLum: true}, 30 | {name: 'purple-800', hex: '#6A1B9A', click: 0, lowLum: true}, 31 | {name: 'purple-900', hex: '#4A148C', click: 0, lowLum: true}, 32 | {name: 'deep-purple-50', hex: '#EDE7F6', click: 0, lowLum: false}, 33 | {name: 'deep-purple-100', hex: '#D1C4E9', click: 0, lowLum: false}, 34 | {name: 'deep-purple-200', hex: '#B39DDB', click: 0, lowLum: false}, 35 | {name: 'deep-purple-300', hex: '#9575CD', click: 0, lowLum: true}, 36 | {name: 'deep-purple-400', hex: '#7E57C2', click: 0, lowLum: true}, 37 | {name: 'deep-purple-500', hex: '#673AB7', click: 0, lowLum: true}, 38 | {name: 'deep-purple-600', hex: '#5E35B1', click: 0, lowLum: true}, 39 | {name: 'deep-purple-700', hex: '#512DA8', click: 0, lowLum: true}, 40 | {name: 'deep-purple-800', hex: '#4527A0', click: 0, lowLum: true}, 41 | {name: 'deep-purple-900', hex: '#311B92', click: 0, lowLum: true}, 42 | {name: 'indigo-50', hex: '#E8EAF6', click: 0, lowLum: false}, 43 | {name: 'indigo-100', hex: '#C5CAE9', click: 0, lowLum: false}, 44 | {name: 'indigo-200', hex: '#9FA8DA', click: 0, lowLum: false}, 45 | {name: 'indigo-300', hex: '#7986CB', click: 0, lowLum: true}, 46 | {name: 'indigo-400', hex: '#5C6BC0', click: 0, lowLum: true}, 47 | {name: 'indigo-500', hex: '#3F51B5', click: 0, lowLum: true}, 48 | {name: 'indigo-600', hex: '#3949AB', click: 0, lowLum: true}, 49 | {name: 'indigo-700', hex: '#303F9F', click: 0, lowLum: true}, 50 | {name: 'indigo-800', hex: '#283593', click: 0, lowLum: true}, 51 | {name: 'indigo-900', hex: '#1A237E', click: 0, lowLum: true}, 52 | {name: 'blue-50', hex: '#E3F2FD', click: 0, lowLum: false}, 53 | {name: 'blue-100', hex: '#BBDEFB', click: 0, lowLum: false}, 54 | {name: 'blue-200', hex: '#90CAF9', click: 0, lowLum: false}, 55 | {name: 'blue-300', hex: '#64B5F6', click: 0, lowLum: false}, 56 | {name: 'blue-400', hex: '#42A5F5', click: 0, lowLum: false}, 57 | {name: 'blue-500', hex: '#2196F3', click: 0, lowLum: true}, 58 | {name: 'blue-600', hex: '#1E88E5', click: 0, lowLum: true}, 59 | {name: 'blue-700', hex: '#1976D2', click: 0, lowLum: true}, 60 | {name: 'blue-800', hex: '#1565C0', click: 0, lowLum: true}, 61 | {name: 'blue-900', hex: '#0D47A1', click: 0, lowLum: true}, 62 | {name: 'light-blue-50', hex: '#E1F5FE', click: 0, lowLum: false}, 63 | {name: 'light-blue-100', hex: '#B3E5FC', click: 0, lowLum: false}, 64 | {name: 'light-blue-200', hex: '#81D4FA', click: 0, lowLum: false}, 65 | {name: 'light-blue-300', hex: '#4FC3F7', click: 0, lowLum: false}, 66 | {name: 'light-blue-400', hex: '#29B6F6', click: 0, lowLum: false}, 67 | {name: 'light-blue-500', hex: '#03A9F4', click: 0, lowLum: false}, 68 | {name: 'light-blue-600', hex: '#039BE5', click: 0, lowLum: true}, 69 | {name: 'light-blue-700', hex: '#0288D1', click: 0, lowLum: true}, 70 | {name: 'light-blue-800', hex: '#0277BD', click: 0, lowLum: true}, 71 | {name: 'light-blue-900', hex: '#01579B', click: 0, lowLum: true}, 72 | {name: 'cyan-50', hex: '#E0F7FA', click: 0, lowLum: false}, 73 | {name: 'cyan-100', hex: '#B2EBF2', click: 0, lowLum: false}, 74 | {name: 'cyan-200', hex: '#80DEEA', click: 0, lowLum: false}, 75 | {name: 'cyan-300', hex: '#4DD0E1', click: 0, lowLum: false}, 76 | {name: 'cyan-400', hex: '#26C6DA', click: 0, lowLum: false}, 77 | {name: 'cyan-500', hex: '#00BCD4', click: 0, lowLum: false}, 78 | {name: 'cyan-600', hex: '#00ACC1', click: 0, lowLum: false}, 79 | {name: 'cyan-700', hex: '#0097A7', click: 0, lowLum: true}, 80 | {name: 'cyan-800', hex: '#00838F', click: 0, lowLum: true}, 81 | {name: 'cyan-900', hex: '#006064', click: 0, lowLum: true}, 82 | {name: 'teal-50', hex: '#E0F2F1', click: 0, lowLum: false}, 83 | {name: 'teal-100', hex: '#B2DFDB', click: 0, lowLum: false}, 84 | {name: 'teal-200', hex: '#80CBC4', click: 0, lowLum: false}, 85 | {name: 'teal-300', hex: '#4DB6AC', click: 0, lowLum: false}, 86 | {name: 'teal-400', hex: '#26A69A', click: 0, lowLum: false}, 87 | {name: 'teal-500', hex: '#009688', click: 0, lowLum: true}, 88 | {name: 'teal-600', hex: '#00897B', click: 0, lowLum: true}, 89 | {name: 'teal-700', hex: '#00796B', click: 0, lowLum: true}, 90 | {name: 'teal-800', hex: '#00695C', click: 0, lowLum: true}, 91 | {name: 'teal-900', hex: '#004D40', click: 0, lowLum: true}, 92 | {name: 'green-50', hex: '#E8F5E9', click: 0, lowLum: false}, 93 | {name: 'green-100', hex: '#C8E6C9', click: 0, lowLum: false}, 94 | {name: 'green-200', hex: '#A5D6A7', click: 0, lowLum: false}, 95 | {name: 'green-300', hex: '#81C784', click: 0, lowLum: false}, 96 | {name: 'green-400', hex: '#66BB6A', click: 0, lowLum: false}, 97 | {name: 'green-500', hex: '#4CAF50', click: 0, lowLum: false}, 98 | {name: 'green-600', hex: '#43A047', click: 0, lowLum: true}, 99 | {name: 'green-700', hex: '#388E3C', click: 0, lowLum: true}, 100 | {name: 'green-800', hex: '#2E7D32', click: 0, lowLum: true}, 101 | {name: 'green-900', hex: '#1B5E20', click: 0, lowLum: true}, 102 | {name: 'light-green-50', hex: '#F1F8E9', click: 0, lowLum: false}, 103 | {name: 'light-green-100', hex: '#DCEDC8', click: 0, lowLum: false}, 104 | {name: 'light-green-200', hex: '#C5E1A5', click: 0, lowLum: false}, 105 | {name: 'light-green-300', hex: '#AED581', click: 0, lowLum: false}, 106 | {name: 'light-green-400', hex: '#9CCC65', click: 0, lowLum: false}, 107 | {name: 'light-green-500', hex: '#8BC34A', click: 0, lowLum: false}, 108 | {name: 'light-green-600', hex: '#7CB342', click: 0, lowLum: false}, 109 | {name: 'light-green-700', hex: '#689F38', click: 0, lowLum: true}, 110 | {name: 'light-green-800', hex: '#558B2F', click: 0, lowLum: true}, 111 | {name: 'light-green-900', hex: '#33691E', click: 0, lowLum: true}, 112 | {name: 'lime-50', hex: '#F9FBE7', click: 0, lowLum: false}, 113 | {name: 'lime-100', hex: '#F0F4C3', click: 0, lowLum: false}, 114 | {name: 'lime-200', hex: '#E6EE9C', click: 0, lowLum: false}, 115 | {name: 'lime-300', hex: '#DCE775', click: 0, lowLum: false}, 116 | {name: 'lime-400', hex: '#D4E157', click: 0, lowLum: false}, 117 | {name: 'lime-500', hex: '#CDDC39', click: 0, lowLum: false}, 118 | {name: 'lime-600', hex: '#C0CA33', click: 0, lowLum: false}, 119 | {name: 'lime-700', hex: '#AFB42B', click: 0, lowLum: false}, 120 | {name: 'lime-800', hex: '#9E9D24', click: 0, lowLum: false}, 121 | {name: 'lime-900', hex: '#827717', click: 0, lowLum: true}, 122 | {name: 'yellow-50', hex: '#FFFDE7', click: 0, lowLum: false}, 123 | {name: 'yellow-100', hex: '#FFF9C4', click: 0, lowLum: false}, 124 | {name: 'yellow-200', hex: '#FFF59D', click: 0, lowLum: false}, 125 | {name: 'yellow-300', hex: '#FFF176', click: 0, lowLum: false}, 126 | {name: 'yellow-400', hex: '#FFEE58', click: 0, lowLum: false}, 127 | {name: 'yellow-500', hex: '#FFEB3B', click: 0, lowLum: false}, 128 | {name: 'yellow-600', hex: '#FDD835', click: 0, lowLum: false}, 129 | {name: 'yellow-700', hex: '#FBC02D', click: 0, lowLum: false}, 130 | {name: 'yellow-800', hex: '#F9A825', click: 0, lowLum: false}, 131 | {name: 'yellow-900', hex: '#F57F17', click: 0, lowLum: false}, 132 | {name: 'amber-50', hex: '#FFF8E1', click: 0, lowLum: false}, 133 | {name: 'amber-100', hex: '#FFECB3', click: 0, lowLum: false}, 134 | {name: 'amber-200', hex: '#FFE082', click: 0, lowLum: false}, 135 | {name: 'amber-300', hex: '#FFD54F', click: 0, lowLum: false}, 136 | {name: 'amber-400', hex: '#FFCA28', click: 0, lowLum: false}, 137 | {name: 'amber-500', hex: '#FFC107', click: 0, lowLum: false}, 138 | {name: 'amber-600', hex: '#FFB300', click: 0, lowLum: false}, 139 | {name: 'amber-700', hex: '#FFA000', click: 0, lowLum: false}, 140 | {name: 'amber-800', hex: '#FF8F00', click: 0, lowLum: false}, 141 | {name: 'amber-900', hex: '#FF6F00', click: 0, lowLum: false}, 142 | {name: 'orange-50', hex: '#FFF3E0', click: 0, lowLum: false}, 143 | {name: 'orange-100', hex: '#FFE0B2', click: 0, lowLum: false}, 144 | {name: 'orange-200', hex: '#FFCC80', click: 0, lowLum: false}, 145 | {name: 'orange-300', hex: '#FFB74D', click: 0, lowLum: false}, 146 | {name: 'orange-400', hex: '#FFA726', click: 0, lowLum: false}, 147 | {name: 'orange-500', hex: '#FF9800', click: 0, lowLum: false}, 148 | {name: 'orange-600', hex: '#FB8C00', click: 0, lowLum: false}, 149 | {name: 'orange-700', hex: '#F57C00', click: 0, lowLum: false}, 150 | {name: 'orange-800', hex: '#EF6C00', click: 0, lowLum: false}, 151 | {name: 'orange-900', hex: '#E65100', click: 0, lowLum: false}, 152 | {name: 'deep-orange-50', hex: '#FBE9E7', click: 0, lowLum: false}, 153 | {name: 'deep-orange-100', hex: '#FFCCBC', click: 0, lowLum: false}, 154 | {name: 'deep-orange-200', hex: '#FFAB91', click: 0, lowLum: false}, 155 | {name: 'deep-orange-300', hex: '#FF8A65', click: 0, lowLum: false}, 156 | {name: 'deep-orange-400', hex: '#FF7043', click: 0, lowLum: false}, 157 | {name: 'deep-orange-500', hex: '#FF5722', click: 0, lowLum: false}, 158 | {name: 'deep-orange-600', hex: '#F4511E', click: 0, lowLum: false}, 159 | {name: 'deep-orange-700', hex: '#E64A19', click: 0, lowLum: false}, 160 | {name: 'deep-orange-800', hex: '#D84315', click: 0, lowLum: false}, 161 | {name: 'deep-orange-900', hex: '#BF360C', click: 0, lowLum: false}, 162 | {name: 'brown-50', hex: '#EFEBE9', click: 0, lowLum: false}, 163 | {name: 'brown-100', hex: '#D7CCC8', click: 0, lowLum: false}, 164 | {name: 'brown-200', hex: '#BCAAA4', click: 0, lowLum: false}, 165 | {name: 'brown-300', hex: '#A1887F', click: 0, lowLum: true}, 166 | {name: 'brown-400', hex: '#8D6E63', click: 0, lowLum: true}, 167 | {name: 'brown-500', hex: '#795548', click: 0, lowLum: true}, 168 | {name: 'brown-600', hex: '#6D4C41', click: 0, lowLum: true}, 169 | {name: 'brown-700', hex: '#5D4037', click: 0, lowLum: true}, 170 | {name: 'brown-800', hex: '#4E342E', click: 0, lowLum: true}, 171 | {name: 'brown-900', hex: '#3E2723', click: 0, lowLum: true}, 172 | {name: 'gray-50', hex: '#FAFAFA', click: 0, lowLum: false}, 173 | {name: 'gray-100', hex: '#F5F5F5', click: 0, lowLum: false}, 174 | {name: 'gray-200', hex: '#EEEEEE', click: 0, lowLum: false}, 175 | {name: 'gray-300', hex: '#E0E0E0', click: 0, lowLum: false}, 176 | {name: 'gray-400', hex: '#BDBDBD', click: 0, lowLum: false}, 177 | {name: 'gray-500', hex: '#9E9E9E', click: 0, lowLum: false}, 178 | {name: 'gray-600', hex: '#757575', click: 0, lowLum: true}, 179 | {name: 'gray-700', hex: '#616161', click: 0, lowLum: true}, 180 | {name: 'gray-800', hex: '#424242', click: 0, lowLum: true}, 181 | {name: 'gray-900', hex: '#212121', click: 0, lowLum: true}, 182 | {name: 'blue-gray-50', hex: '#ECEFF1', click: 0, lowLum: false}, 183 | {name: 'blue-gray-100', hex: '#CFD8DC', click: 0, lowLum: false}, 184 | {name: 'blue-gray-200', hex: '#B0BEC5', click: 0, lowLum: false}, 185 | {name: 'blue-gray-300', hex: '#90A4AE', click: 0, lowLum: false}, 186 | {name: 'blue-gray-400', hex: '#78909C', click: 0, lowLum: true}, 187 | {name: 'blue-gray-500', hex: '#607D8B', click: 0, lowLum: true}, 188 | {name: 'blue-gray-600', hex: '#546E7A', click: 0, lowLum: true}, 189 | {name: 'blue-gray-700', hex: '#455A64', click: 0, lowLum: true}, 190 | {name: 'blue-gray-800', hex: '#37474F', click: 0, lowLum: true}, 191 | {name: 'blue-gray-900', hex: '#263238', click: 0, lowLum: true}, 192 | ]; 193 | 194 | export default MaterialColorSample; 195 | -------------------------------------------------------------------------------- /server/data/materialColors.js: -------------------------------------------------------------------------------- 1 | const MaterialColorSample = [ 2 | {name: 'red-50', hex: '#FFEBEE', click: 0, lowLum: true}, 3 | {name: 'red-100', hex: '#FFCDD2', click: 0, lowLum: true}, 4 | {name: 'red-200', hex: '#EF9A9A', click: 0, lowLum: true}, 5 | {name: 'red-300', hex: '#E57373', click: 0, lowLum: true}, 6 | {name: 'red-400', hex: '#EF5350', click: 0, lowLum: false}, 7 | {name: 'red-500', hex: '#F44336', click: 0, lowLum: false}, 8 | {name: 'red-600', hex: '#E53935', click: 0, lowLum: false}, 9 | {name: 'red-700', hex: '#D32F2F', click: 0, lowLum: false}, 10 | {name: 'red-800', hex: '#C62828', click: 0, lowLum: false}, 11 | {name: 'red-900', hex: '#B71C1C', click: 0, lowLum: false}, 12 | {name: 'pink-50', hex: '#FCE4EC', click: 0, lowLum: true}, 13 | {name: 'pink-100', hex: '#F8BBD0', click: 0, lowLum: true}, 14 | {name: 'pink-200', hex: '#F48FB1', click: 0, lowLum: true}, 15 | {name: 'pink-300', hex: '#F06292', click: 0, lowLum: true}, 16 | {name: 'pink-400', hex: '#EC407A', click: 0, lowLum: false}, 17 | {name: 'pink-500', hex: '#E91E63', click: 0, lowLum: false}, 18 | {name: 'pink-600', hex: '#D81B60', click: 0, lowLum: false}, 19 | {name: 'pink-700', hex: '#C2185B', click: 0, lowLum: false}, 20 | {name: 'pink-800', hex: '#AD1457', click: 0, lowLum: false}, 21 | {name: 'pink-900', hex: '#880E4F', click: 0, lowLum: false}, 22 | {name: 'purple-50', hex: '#F3E5F5', click: 0, lowLum: false}, 23 | {name: 'purple-100', hex: '#E1BEE7', click: 0, lowLum: false}, 24 | {name: 'purple-200', hex: '#CE93D8', click: 0, lowLum: false}, 25 | {name: 'purple-300', hex: '#BA68C8', click: 0, lowLum: true}, 26 | {name: 'purple-400', hex: '#AB47BC', click: 0, lowLum: true}, 27 | {name: 'purple-500', hex: '#9C27B0', click: 0, lowLum: true}, 28 | {name: 'purple-600', hex: '#8E24AA', click: 0, lowLum: true}, 29 | {name: 'purple-700', hex: '#7B1FA2', click: 0, lowLum: true}, 30 | {name: 'purple-800', hex: '#6A1B9A', click: 0, lowLum: true}, 31 | {name: 'purple-900', hex: '#4A148C', click: 0, lowLum: true}, 32 | {name: 'deep-purple-50', hex: '#EDE7F6', click: 0, lowLum: false}, 33 | {name: 'deep-purple-100', hex: '#D1C4E9', click: 0, lowLum: false}, 34 | {name: 'deep-purple-200', hex: '#B39DDB', click: 0, lowLum: false}, 35 | {name: 'deep-purple-300', hex: '#9575CD', click: 0, lowLum: true}, 36 | {name: 'deep-purple-400', hex: '#7E57C2', click: 0, lowLum: true}, 37 | {name: 'deep-purple-500', hex: '#673AB7', click: 0, lowLum: true}, 38 | {name: 'deep-purple-600', hex: '#5E35B1', click: 0, lowLum: true}, 39 | {name: 'deep-purple-700', hex: '#512DA8', click: 0, lowLum: true}, 40 | {name: 'deep-purple-800', hex: '#4527A0', click: 0, lowLum: true}, 41 | {name: 'deep-purple-900', hex: '#311B92', click: 0, lowLum: true}, 42 | {name: 'indigo-50', hex: '#E8EAF6', click: 0, lowLum: false}, 43 | {name: 'indigo-100', hex: '#C5CAE9', click: 0, lowLum: false}, 44 | {name: 'indigo-200', hex: '#9FA8DA', click: 0, lowLum: false}, 45 | {name: 'indigo-300', hex: '#7986CB', click: 0, lowLum: true}, 46 | {name: 'indigo-400', hex: '#5C6BC0', click: 0, lowLum: true}, 47 | {name: 'indigo-500', hex: '#3F51B5', click: 0, lowLum: true}, 48 | {name: 'indigo-600', hex: '#3949AB', click: 0, lowLum: true}, 49 | {name: 'indigo-700', hex: '#303F9F', click: 0, lowLum: true}, 50 | {name: 'indigo-800', hex: '#283593', click: 0, lowLum: true}, 51 | {name: 'indigo-900', hex: '#1A237E', click: 0, lowLum: true}, 52 | {name: 'blue-50', hex: '#E3F2FD', click: 0, lowLum: false}, 53 | {name: 'blue-100', hex: '#BBDEFB', click: 0, lowLum: false}, 54 | {name: 'blue-200', hex: '#90CAF9', click: 0, lowLum: false}, 55 | {name: 'blue-300', hex: '#64B5F6', click: 0, lowLum: false}, 56 | {name: 'blue-400', hex: '#42A5F5', click: 0, lowLum: false}, 57 | {name: 'blue-500', hex: '#2196F3', click: 0, lowLum: true}, 58 | {name: 'blue-600', hex: '#1E88E5', click: 0, lowLum: true}, 59 | {name: 'blue-700', hex: '#1976D2', click: 0, lowLum: true}, 60 | {name: 'blue-800', hex: '#1565C0', click: 0, lowLum: true}, 61 | {name: 'blue-900', hex: '#0D47A1', click: 0, lowLum: true}, 62 | {name: 'light-blue-50', hex: '#E1F5FE', click: 0, lowLum: false}, 63 | {name: 'light-blue-100', hex: '#B3E5FC', click: 0, lowLum: false}, 64 | {name: 'light-blue-200', hex: '#81D4FA', click: 0, lowLum: false}, 65 | {name: 'light-blue-300', hex: '#4FC3F7', click: 0, lowLum: false}, 66 | {name: 'light-blue-400', hex: '#29B6F6', click: 0, lowLum: false}, 67 | {name: 'light-blue-500', hex: '#03A9F4', click: 0, lowLum: false}, 68 | {name: 'light-blue-600', hex: '#039BE5', click: 0, lowLum: true}, 69 | {name: 'light-blue-700', hex: '#0288D1', click: 0, lowLum: true}, 70 | {name: 'light-blue-800', hex: '#0277BD', click: 0, lowLum: true}, 71 | {name: 'light-blue-900', hex: '#01579B', click: 0, lowLum: true}, 72 | {name: 'cyan-50', hex: '#E0F7FA', click: 0, lowLum: false}, 73 | {name: 'cyan-100', hex: '#B2EBF2', click: 0, lowLum: false}, 74 | {name: 'cyan-200', hex: '#80DEEA', click: 0, lowLum: false}, 75 | {name: 'cyan-300', hex: '#4DD0E1', click: 0, lowLum: false}, 76 | {name: 'cyan-400', hex: '#26C6DA', click: 0, lowLum: false}, 77 | {name: 'cyan-500', hex: '#00BCD4', click: 0, lowLum: false}, 78 | {name: 'cyan-600', hex: '#00ACC1', click: 0, lowLum: false}, 79 | {name: 'cyan-700', hex: '#0097A7', click: 0, lowLum: true}, 80 | {name: 'cyan-800', hex: '#00838F', click: 0, lowLum: true}, 81 | {name: 'cyan-900', hex: '#006064', click: 0, lowLum: true}, 82 | {name: 'teal-50', hex: '#E0F2F1', click: 0, lowLum: false}, 83 | {name: 'teal-100', hex: '#B2DFDB', click: 0, lowLum: false}, 84 | {name: 'teal-200', hex: '#80CBC4', click: 0, lowLum: false}, 85 | {name: 'teal-300', hex: '#4DB6AC', click: 0, lowLum: false}, 86 | {name: 'teal-400', hex: '#26A69A', click: 0, lowLum: false}, 87 | {name: 'teal-500', hex: '#009688', click: 0, lowLum: true}, 88 | {name: 'teal-600', hex: '#00897B', click: 0, lowLum: true}, 89 | {name: 'teal-700', hex: '#00796B', click: 0, lowLum: true}, 90 | {name: 'teal-800', hex: '#00695C', click: 0, lowLum: true}, 91 | {name: 'teal-900', hex: '#004D40', click: 0, lowLum: true}, 92 | {name: 'green-50', hex: '#E8F5E9', click: 0, lowLum: false}, 93 | {name: 'green-100', hex: '#C8E6C9', click: 0, lowLum: false}, 94 | {name: 'green-200', hex: '#A5D6A7', click: 0, lowLum: false}, 95 | {name: 'green-300', hex: '#81C784', click: 0, lowLum: false}, 96 | {name: 'green-400', hex: '#66BB6A', click: 0, lowLum: false}, 97 | {name: 'green-500', hex: '#4CAF50', click: 0, lowLum: false}, 98 | {name: 'green-600', hex: '#43A047', click: 0, lowLum: true}, 99 | {name: 'green-700', hex: '#388E3C', click: 0, lowLum: true}, 100 | {name: 'green-800', hex: '#2E7D32', click: 0, lowLum: true}, 101 | {name: 'green-900', hex: '#1B5E20', click: 0, lowLum: true}, 102 | {name: 'light-green-50', hex: '#F1F8E9', click: 0, lowLum: false}, 103 | {name: 'light-green-100', hex: '#DCEDC8', click: 0, lowLum: false}, 104 | {name: 'light-green-200', hex: '#C5E1A5', click: 0, lowLum: false}, 105 | {name: 'light-green-300', hex: '#AED581', click: 0, lowLum: false}, 106 | {name: 'light-green-400', hex: '#9CCC65', click: 0, lowLum: false}, 107 | {name: 'light-green-500', hex: '#8BC34A', click: 0, lowLum: false}, 108 | {name: 'light-green-600', hex: '#7CB342', click: 0, lowLum: false}, 109 | {name: 'light-green-700', hex: '#689F38', click: 0, lowLum: true}, 110 | {name: 'light-green-800', hex: '#558B2F', click: 0, lowLum: true}, 111 | {name: 'light-green-900', hex: '#33691E', click: 0, lowLum: true}, 112 | {name: 'lime-50', hex: '#F9FBE7', click: 0, lowLum: false}, 113 | {name: 'lime-100', hex: '#F0F4C3', click: 0, lowLum: false}, 114 | {name: 'lime-200', hex: '#E6EE9C', click: 0, lowLum: false}, 115 | {name: 'lime-300', hex: '#DCE775', click: 0, lowLum: false}, 116 | {name: 'lime-400', hex: '#D4E157', click: 0, lowLum: false}, 117 | {name: 'lime-500', hex: '#CDDC39', click: 0, lowLum: false}, 118 | {name: 'lime-600', hex: '#C0CA33', click: 0, lowLum: false}, 119 | {name: 'lime-700', hex: '#AFB42B', click: 0, lowLum: false}, 120 | {name: 'lime-800', hex: '#9E9D24', click: 0, lowLum: false}, 121 | {name: 'lime-900', hex: '#827717', click: 0, lowLum: true}, 122 | {name: 'yellow-50', hex: '#FFFDE7', click: 0, lowLum: false}, 123 | {name: 'yellow-100', hex: '#FFF9C4', click: 0, lowLum: false}, 124 | {name: 'yellow-200', hex: '#FFF59D', click: 0, lowLum: false}, 125 | {name: 'yellow-300', hex: '#FFF176', click: 0, lowLum: false}, 126 | {name: 'yellow-400', hex: '#FFEE58', click: 0, lowLum: false}, 127 | {name: 'yellow-500', hex: '#FFEB3B', click: 0, lowLum: false}, 128 | {name: 'yellow-600', hex: '#FDD835', click: 0, lowLum: false}, 129 | {name: 'yellow-700', hex: '#FBC02D', click: 0, lowLum: false}, 130 | {name: 'yellow-800', hex: '#F9A825', click: 0, lowLum: false}, 131 | {name: 'yellow-900', hex: '#F57F17', click: 0, lowLum: false}, 132 | {name: 'amber-50', hex: '#FFF8E1', click: 0, lowLum: false}, 133 | {name: 'amber-100', hex: '#FFECB3', click: 0, lowLum: false}, 134 | {name: 'amber-200', hex: '#FFE082', click: 0, lowLum: false}, 135 | {name: 'amber-300', hex: '#FFD54F', click: 0, lowLum: false}, 136 | {name: 'amber-400', hex: '#FFCA28', click: 0, lowLum: false}, 137 | {name: 'amber-500', hex: '#FFC107', click: 0, lowLum: false}, 138 | {name: 'amber-600', hex: '#FFB300', click: 0, lowLum: false}, 139 | {name: 'amber-700', hex: '#FFA000', click: 0, lowLum: false}, 140 | {name: 'amber-800', hex: '#FF8F00', click: 0, lowLum: false}, 141 | {name: 'amber-900', hex: '#FF6F00', click: 0, lowLum: false}, 142 | {name: 'orange-50', hex: '#FFF3E0', click: 0, lowLum: false}, 143 | {name: 'orange-100', hex: '#FFE0B2', click: 0, lowLum: false}, 144 | {name: 'orange-200', hex: '#FFCC80', click: 0, lowLum: false}, 145 | {name: 'orange-300', hex: '#FFB74D', click: 0, lowLum: false}, 146 | {name: 'orange-400', hex: '#FFA726', click: 0, lowLum: false}, 147 | {name: 'orange-500', hex: '#FF9800', click: 0, lowLum: false}, 148 | {name: 'orange-600', hex: '#FB8C00', click: 0, lowLum: false}, 149 | {name: 'orange-700', hex: '#F57C00', click: 0, lowLum: false}, 150 | {name: 'orange-800', hex: '#EF6C00', click: 0, lowLum: false}, 151 | {name: 'orange-900', hex: '#E65100', click: 0, lowLum: false}, 152 | {name: 'deep-orange-50', hex: '#FBE9E7', click: 0, lowLum: false}, 153 | {name: 'deep-orange-100', hex: '#FFCCBC', click: 0, lowLum: false}, 154 | {name: 'deep-orange-200', hex: '#FFAB91', click: 0, lowLum: false}, 155 | {name: 'deep-orange-300', hex: '#FF8A65', click: 0, lowLum: false}, 156 | {name: 'deep-orange-400', hex: '#FF7043', click: 0, lowLum: false}, 157 | {name: 'deep-orange-500', hex: '#FF5722', click: 0, lowLum: false}, 158 | {name: 'deep-orange-600', hex: '#F4511E', click: 0, lowLum: false}, 159 | {name: 'deep-orange-700', hex: '#E64A19', click: 0, lowLum: false}, 160 | {name: 'deep-orange-800', hex: '#D84315', click: 0, lowLum: false}, 161 | {name: 'deep-orange-900', hex: '#BF360C', click: 0, lowLum: false}, 162 | {name: 'brown-50', hex: '#EFEBE9', click: 0, lowLum: false}, 163 | {name: 'brown-100', hex: '#D7CCC8', click: 0, lowLum: false}, 164 | {name: 'brown-200', hex: '#BCAAA4', click: 0, lowLum: false}, 165 | {name: 'brown-300', hex: '#A1887F', click: 0, lowLum: true}, 166 | {name: 'brown-400', hex: '#8D6E63', click: 0, lowLum: true}, 167 | {name: 'brown-500', hex: '#795548', click: 0, lowLum: true}, 168 | {name: 'brown-600', hex: '#6D4C41', click: 0, lowLum: true}, 169 | {name: 'brown-700', hex: '#5D4037', click: 0, lowLum: true}, 170 | {name: 'brown-800', hex: '#4E342E', click: 0, lowLum: true}, 171 | {name: 'brown-900', hex: '#3E2723', click: 0, lowLum: true}, 172 | {name: 'gray-50', hex: '#FAFAFA', click: 0, lowLum: false}, 173 | {name: 'gray-100', hex: '#F5F5F5', click: 0, lowLum: false}, 174 | {name: 'gray-200', hex: '#EEEEEE', click: 0, lowLum: false}, 175 | {name: 'gray-300', hex: '#E0E0E0', click: 0, lowLum: false}, 176 | {name: 'gray-400', hex: '#BDBDBD', click: 0, lowLum: false}, 177 | {name: 'gray-500', hex: '#9E9E9E', click: 0, lowLum: false}, 178 | {name: 'gray-600', hex: '#757575', click: 0, lowLum: true}, 179 | {name: 'gray-700', hex: '#616161', click: 0, lowLum: true}, 180 | {name: 'gray-800', hex: '#424242', click: 0, lowLum: true}, 181 | {name: 'gray-900', hex: '#212121', click: 0, lowLum: true}, 182 | {name: 'blue-gray-50', hex: '#ECEFF1', click: 0, lowLum: false}, 183 | {name: 'blue-gray-100', hex: '#CFD8DC', click: 0, lowLum: false}, 184 | {name: 'blue-gray-200', hex: '#B0BEC5', click: 0, lowLum: false}, 185 | {name: 'blue-gray-300', hex: '#90A4AE', click: 0, lowLum: false}, 186 | {name: 'blue-gray-400', hex: '#78909C', click: 0, lowLum: true}, 187 | {name: 'blue-gray-500', hex: '#607D8B', click: 0, lowLum: true}, 188 | {name: 'blue-gray-600', hex: '#546E7A', click: 0, lowLum: true}, 189 | {name: 'blue-gray-700', hex: '#455A64', click: 0, lowLum: true}, 190 | {name: 'blue-gray-800', hex: '#37474F', click: 0, lowLum: true}, 191 | {name: 'blue-gray-900', hex: '#263238', click: 0, lowLum: true}, 192 | ]; 193 | 194 | export default MaterialColorSample; 195 | --------------------------------------------------------------------------------