├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── LICENSE.md ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── favicon.ico ├── icon │ ├── github.svg │ └── google.svg └── share.png ├── src ├── App.vue ├── assets │ ├── css │ │ ├── carbon-ads.pcss │ │ ├── form.pcss │ │ ├── highlightjs-theme.css │ │ ├── prism-vsc-dark-plus.css │ │ ├── style.pcss │ │ ├── table.pcss │ │ ├── tooltip.pcss │ │ └── variables.css │ └── main.css ├── components │ ├── BaseSelect.vue │ ├── BaseStopSelect.vue │ ├── CarbonAds.vue │ ├── CommunityQuickSelect.vue │ ├── CommunityShades.vue │ ├── CustomDropdown.vue │ ├── CustomPagination.vue │ ├── Modal.vue │ ├── MyColors.vue │ ├── NotFound404.vue │ ├── ShadeInterface.vue │ ├── SliderInput.vue │ └── UserControl.vue ├── composables │ └── community.js ├── lib │ └── ntc.js ├── main.js ├── router │ ├── index.js │ └── routes.js └── store │ └── index.js ├── tailwind.config.js ├── vite.config.js └── vue.config.js /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | # See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/javascript-node/.devcontainer/base.Dockerfile 2 | 3 | # [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster 4 | ARG VARIANT="18" 5 | FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} 6 | 7 | # [Optional] Uncomment this section to install additional OS packages. 8 | # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ 9 | # && apt-get -y install --no-install-recommends 10 | 11 | # [Optional] Uncomment if you want to install an additional version of node using nvm 12 | # ARG EXTRA_NODE_VERSION=10 13 | # RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" 14 | 15 | # [Optional] Uncomment if you want to install more global node modules 16 | # RUN su node -c "npm install -g " 17 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: 2 | // https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/javascript-node 3 | { 4 | "name": "Node.js", 5 | "build": { 6 | "dockerfile": "Dockerfile", 7 | "args": { 8 | "VARIANT": "18" 9 | } 10 | }, 11 | "runArgs": [ 12 | "--name", 13 | "devcontainer_tailwindshades" 14 | ], 15 | "customizations": { 16 | "vscode": { 17 | "extensions": [ 18 | "dbaeumer.vscode-eslint", 19 | "EditorConfig.EditorConfig", 20 | "streetsidesoftware.code-spell-checker", 21 | "esbenp.prettier-vscode", 22 | "Vue.volar", 23 | "bradlc.vscode-tailwindcss", 24 | "Zignd.html-css-class-completion", 25 | "tombonnike.vscode-status-bar-format-toggle", 26 | "eamodio.gitlens" 27 | ] 28 | } 29 | }, 30 | "postCreateCommand": "npm install", 31 | "remoteUser": "node" 32 | } 33 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | require('@rushstack/eslint-patch/modern-module-resolution') 3 | 4 | module.exports = { 5 | root: true, 6 | extends: [ 7 | 'plugin:vue/vue3-essential', 8 | 'eslint:recommended', 9 | '@vue/eslint-config-prettier', 10 | ], 11 | parserOptions: { 12 | ecmaVersion: 'latest', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "trailingComma": "es5", 5 | "arrowParens": "avoid" 6 | } 7 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 tailwindshades.com 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 | # tailwindshades 2 | 3 | A tool to help generate color shades for tailwindcss 4 | 5 | https://www.tailwindshades.com 6 | 7 | To run locally: 8 | 9 | ``` 10 | npm install && npm run serve 11 | ``` 12 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 |
24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwindshades", 3 | "version": "0.3.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore" 10 | }, 11 | "dependencies": { 12 | "@kyvg/vue3-notification": "^2.7.0", 13 | "@supabase/supabase-js": "^2.2.3", 14 | "@unhead/vue": "^1.0.15", 15 | "color-convert": "^3.0.0", 16 | "colorjs.io": "^0.5.2", 17 | "floating-vue": "^2.0.0-beta.20", 18 | "lodash": "^4.17.21", 19 | "maska": "^2.1.3", 20 | "vue": "^3.1.0-0", 21 | "vue-color": "^2.7.0", 22 | "vue-gtag": "^2.0.1", 23 | "vue-router": "^4.0.0", 24 | "vue3-highlightjs": "^1.0.5", 25 | "vuex": "^4.0.0" 26 | }, 27 | "devDependencies": { 28 | "@fortawesome/fontawesome-free": "^5.10.1", 29 | "@rushstack/eslint-patch": "^1.1.4", 30 | "@vitejs/plugin-vue": "^1.2.2", 31 | "@vue/compiler-sfc": "^3.1.0-0", 32 | "@vue/eslint-config-prettier": "^7.0.0", 33 | "autoprefixer": "^10.4.13", 34 | "eslint": "^8.22.0", 35 | "eslint-plugin-vue": "^9.3.0", 36 | "postcss": "^8.4.21", 37 | "postcss-import": "^12.0.1", 38 | "postcss-nested": "^4.1.2", 39 | "tailwindcss": "^3.2.4", 40 | "timeago.js": "^4.0.2", 41 | "vite": "^2.2.3" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | module.exports = { 3 | plugins: { 4 | 'postcss-import': {}, 5 | 'tailwindcss/nesting': {}, 6 | tailwindcss: {}, 7 | autoprefixer: {}, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leoquack/tailwindshades/8c29efa4af245e865d0ef28383b89c53b1fc8096/public/favicon.ico -------------------------------------------------------------------------------- /public/icon/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/icon/google.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leoquack/tailwindshades/8c29efa4af245e865d0ef28383b89c53b1fc8096/public/share.png -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 66 | 67 | 91 | -------------------------------------------------------------------------------- /src/assets/css/carbon-ads.pcss: -------------------------------------------------------------------------------- 1 | #root.theme-light { 2 | #carbonads { 3 | background-color: hsl(0, 0%, 98%); 4 | box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1); 5 | z-index: 100; 6 | 7 | a { 8 | color: inherit; 9 | &:hover { 10 | color: inherit; 11 | } 12 | } 13 | 14 | .carbon-poweredby { 15 | background: #f1f1f2; 16 | color: inherit; 17 | border-top-left-radius: 3px; 18 | } 19 | } 20 | } 21 | 22 | #carbonads { 23 | * { 24 | margin: initial; 25 | padding: initial; 26 | } 27 | 28 | @apply bg-theme-darker; 29 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif; 30 | display: flex; 31 | max-width: 330px; 32 | 33 | a { 34 | color: #ddd; 35 | text-decoration: none; 36 | 37 | &:hover { 38 | color: #ddd; 39 | } 40 | } 41 | 42 | span { 43 | position: relative; 44 | display: block; 45 | overflow: hidden; 46 | } 47 | 48 | .carbon-wrap { 49 | display: flex; 50 | } 51 | 52 | .carbon-img { 53 | display: block; 54 | margin: 0; 55 | line-height: 1; 56 | 57 | img { 58 | display: block; 59 | } 60 | } 61 | 62 | .carbon-text { 63 | padding: 10px; 64 | text-align: left; 65 | font-size: 13px; 66 | margin-bottom: 16px; 67 | line-height: 1.5; 68 | } 69 | 70 | .carbon-poweredby { 71 | display: block; 72 | padding: 6px 8px; 73 | background: #1e2021; 74 | color: #aaa; 75 | text-align: center; 76 | text-transform: uppercase; 77 | letter-spacing: 0.5px; 78 | font-weight: 600; 79 | font-size: 8px; 80 | line-height: 1; 81 | position: absolute; 82 | bottom: 0; 83 | right: 0; 84 | border-top-left-radius: 6px; 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/assets/css/form.pcss: -------------------------------------------------------------------------------- 1 | .form-control { 2 | @apply appearance-none rounded-sm bg-white w-full py-2 px-3 bg-theme-600; 3 | &:focus { 4 | @apply outline-none; 5 | } 6 | &:not(.form-no-outline):focus { 7 | @apply ring; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/assets/css/highlightjs-theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | Modified from: 3 | Atom One Dark by Daniel Gamage 4 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 5 | 6 | base: #282c34 7 | mono-1: #abb2bf 8 | mono-2: #818896 9 | mono-3: #5c6370 10 | hue-1: #56b6c2 11 | hue-2: #61aeee 12 | hue-3: #c678dd 13 | hue-4: #98c379 14 | hue-5: #e06c75 15 | hue-5-2: #be5046 16 | hue-6: #d19a66 17 | hue-6-2: #e6c07b 18 | 19 | */ 20 | 21 | .hljs { 22 | display: block; 23 | overflow-x: auto; 24 | padding: 0.5em; 25 | color: #abb2bf; 26 | /* background: #282c34; */ 27 | } 28 | 29 | .hljs-comment, 30 | .hljs-quote { 31 | color: #5c6370; 32 | font-style: italic; 33 | } 34 | 35 | .hljs-doctag, 36 | .hljs-keyword, 37 | .hljs-formula { 38 | color: #c678dd; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name, 43 | .hljs-selector-tag, 44 | .hljs-deletion, 45 | .hljs-subst { 46 | color: #e06c75; 47 | } 48 | 49 | .hljs-literal { 50 | color: #56b6c2; 51 | } 52 | 53 | .hljs-string, 54 | .hljs-regexp, 55 | .hljs-addition, 56 | .hljs-attribute, 57 | .hljs-meta-string { 58 | color: #7fd159; 59 | } 60 | 61 | .hljs-built_in, 62 | .hljs-class .hljs-title { 63 | color: #e6c07b; 64 | } 65 | 66 | .hljs-attr, 67 | .hljs-variable, 68 | .hljs-template-variable, 69 | .hljs-type, 70 | .hljs-selector-class, 71 | .hljs-selector-attr, 72 | .hljs-selector-pseudo, 73 | .hljs-number { 74 | color: #82af77; 75 | } 76 | 77 | .hljs-symbol, 78 | .hljs-bullet, 79 | .hljs-link, 80 | .hljs-meta, 81 | .hljs-selector-id, 82 | .hljs-title { 83 | color: #61aeee; 84 | } 85 | 86 | .hljs-emphasis { 87 | font-style: italic; 88 | } 89 | 90 | .hljs-strong { 91 | font-weight: bold; 92 | } 93 | 94 | .hljs-link { 95 | text-decoration: underline; 96 | } 97 | -------------------------------------------------------------------------------- /src/assets/css/prism-vsc-dark-plus.css: -------------------------------------------------------------------------------- 1 | pre[class*="language-"], 2 | code[class*="language-"] { 3 | color: #d4d4d4; 4 | font-size: 13px; 5 | text-shadow: none; 6 | font-family: Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace; 7 | direction: ltr; 8 | text-align: left; 9 | white-space: pre; 10 | word-spacing: normal; 11 | word-break: normal; 12 | line-height: 1.5; 13 | -moz-tab-size: 4; 14 | -o-tab-size: 4; 15 | tab-size: 4; 16 | -webkit-hyphens: none; 17 | -moz-hyphens: none; 18 | -ms-hyphens: none; 19 | hyphens: none; 20 | } 21 | 22 | pre[class*="language-"]::selection, 23 | code[class*="language-"]::selection, 24 | pre[class*="language-"] *::selection, 25 | code[class*="language-"] *::selection { 26 | text-shadow: none; 27 | background: #75a7ca; 28 | } 29 | 30 | @media print { 31 | 32 | pre[class*="language-"], 33 | code[class*="language-"] { 34 | text-shadow: none; 35 | } 36 | } 37 | 38 | pre[class*="language-"] { 39 | padding: 1em; 40 | margin: .5em 0; 41 | overflow: auto; 42 | background: #404040; 43 | } 44 | 45 | :not(pre)>code[class*="language-"] { 46 | padding: .1em .3em; 47 | border-radius: .3em; 48 | color: #db4c69; 49 | background: #f9f2f4; 50 | } 51 | 52 | /********************************************************* 53 | * Tokens 54 | */ 55 | .namespace { 56 | opacity: .7; 57 | } 58 | 59 | .token.doctype .token.doctype-tag { 60 | color: #569CD6; 61 | } 62 | 63 | .token.doctype .token.name { 64 | color: #9cdcfe; 65 | } 66 | 67 | .token.comment, 68 | .token.prolog { 69 | color: #6a9955; 70 | } 71 | 72 | .token.punctuation, 73 | .language-html .language-css .token.punctuation, 74 | .language-html .language-javascript .token.punctuation { 75 | color: #d4d4d4; 76 | } 77 | 78 | .token.property, 79 | .token.tag, 80 | .token.boolean, 81 | .token.number, 82 | .token.constant, 83 | .token.symbol, 84 | .token.deleted, 85 | .token.unit { 86 | color: #b5cea8; 87 | } 88 | 89 | .token.selector, 90 | .token.attr-name, 91 | .token.string, 92 | .token.char, 93 | .token.builtin, 94 | .token.inserted { 95 | color: #ce9178; 96 | } 97 | 98 | .language-css .token.string.url { 99 | text-decoration: underline; 100 | } 101 | 102 | .token.operator, 103 | .token.entity { 104 | color: #d4d4d4; 105 | } 106 | 107 | .token.operator.arrow { 108 | color: #569CD6; 109 | } 110 | 111 | .token.atrule { 112 | color: #ce9178; 113 | } 114 | 115 | .token.atrule .token.rule { 116 | color: #c586c0; 117 | } 118 | 119 | .token.atrule .token.url { 120 | color: #9cdcfe; 121 | } 122 | 123 | .token.atrule .token.url .token.function { 124 | color: #dcdcaa; 125 | } 126 | 127 | .token.atrule .token.url .token.punctuation { 128 | color: #d4d4d4; 129 | } 130 | 131 | .token.keyword { 132 | color: #569CD6; 133 | } 134 | 135 | .token.keyword.module, 136 | .token.keyword.control-flow { 137 | color: #c586c0; 138 | } 139 | 140 | .token.function, 141 | .token.function .token.maybe-class-name { 142 | color: #dcdcaa; 143 | } 144 | 145 | .token.regex { 146 | color: #d16969; 147 | } 148 | 149 | .token.important { 150 | color: #569cd6; 151 | } 152 | 153 | .token.italic { 154 | font-style: italic; 155 | } 156 | 157 | .token.constant { 158 | color: #9cdcfe; 159 | } 160 | 161 | .token.class-name, 162 | .token.maybe-class-name { 163 | color: #4ec9b0; 164 | } 165 | 166 | .token.console { 167 | color: #9cdcfe; 168 | } 169 | 170 | .token.parameter { 171 | color: #9cdcfe; 172 | } 173 | 174 | .token.interpolation { 175 | color: #9cdcfe; 176 | } 177 | 178 | .token.punctuation.interpolation-punctuation { 179 | color: #569cd6; 180 | } 181 | 182 | .token.boolean { 183 | color: #569cd6; 184 | } 185 | 186 | .token.property, 187 | .token.variable, 188 | .token.imports .token.maybe-class-name, 189 | .token.exports .token.maybe-class-name { 190 | color: #9cdcfe; 191 | } 192 | 193 | .token.selector { 194 | color: #d7ba7d; 195 | } 196 | 197 | .token.escape { 198 | color: #d7ba7d; 199 | } 200 | 201 | .token.tag { 202 | color: #569cd6; 203 | } 204 | 205 | .token.tag .token.punctuation { 206 | color: #808080; 207 | } 208 | 209 | .token.cdata { 210 | color: #808080; 211 | } 212 | 213 | .token.attr-name { 214 | color: #9cdcfe; 215 | } 216 | 217 | .token.attr-value, 218 | .token.attr-value .token.punctuation { 219 | color: #ce9178; 220 | } 221 | 222 | .token.attr-value .token.punctuation.attr-equals { 223 | color: #d4d4d4; 224 | } 225 | 226 | .token.entity { 227 | color: #569cd6; 228 | } 229 | 230 | .token.namespace { 231 | color: #4ec9b0; 232 | } 233 | 234 | /********************************************************* 235 | * Language Specific 236 | */ 237 | 238 | pre[class*="language-javascript"], 239 | code[class*="language-javascript"], 240 | pre[class*="language-jsx"], 241 | code[class*="language-jsx"], 242 | pre[class*="language-typescript"], 243 | code[class*="language-typescript"], 244 | pre[class*="language-tsx"], 245 | code[class*="language-tsx"] { 246 | color: #9cdcfe; 247 | } 248 | 249 | pre[class*="language-css"], 250 | code[class*="language-css"] { 251 | color: #ce9178; 252 | } 253 | 254 | pre[class*="language-html"], 255 | code[class*="language-html"] { 256 | color: #d4d4d4; 257 | } 258 | 259 | .language-regex .token.anchor { 260 | color: #dcdcaa; 261 | } 262 | 263 | .language-html .token.punctuation { 264 | color: #808080; 265 | } 266 | 267 | /********************************************************* 268 | * Line highlighting 269 | */ 270 | pre[data-line] { 271 | position: relative; 272 | } 273 | 274 | pre[class*="language-"]>code[class*="language-"] { 275 | position: relative; 276 | z-index: 1; 277 | } 278 | 279 | .line-highlight { 280 | position: absolute; 281 | left: 0; 282 | right: 0; 283 | padding: inherit 0; 284 | margin-top: 1em; 285 | background: #f7ebc6; 286 | box-shadow: inset 5px 0 0 #f7d87c; 287 | z-index: 0; 288 | pointer-events: none; 289 | line-height: inherit; 290 | white-space: pre; 291 | } 292 | -------------------------------------------------------------------------------- /src/assets/css/style.pcss: -------------------------------------------------------------------------------- 1 | @import 'form.pcss'; 2 | @import 'carbon-ads.pcss'; 3 | @import 'tooltip.pcss'; 4 | @import 'highlightjs-theme.css'; 5 | 6 | html { 7 | font-family: 'Inter', sans-serif; 8 | background: white; 9 | } 10 | 11 | html, 12 | body { 13 | height: 100%; 14 | } 15 | 16 | #root { 17 | overflow: auto; 18 | min-height: 100vh; 19 | height: 100%; 20 | @apply bg-theme; 21 | } 22 | 23 | .container-fluid { 24 | max-width: 91.666667%; 25 | margin-left: auto; 26 | margin-right: auto; 27 | } 28 | 29 | .btn { 30 | @apply inline-block cursor-pointer py-2 px-4 rounded-lg font-black text-sm; 31 | } 32 | 33 | .btn.btn-blue { 34 | @apply bg-blue-500 text-white; 35 | &:hover { 36 | @apply bg-blue-700; 37 | } 38 | } 39 | 40 | .btn.btn-red { 41 | @apply bg-red-500 text-black; 42 | &:hover { 43 | @apply bg-red-700; 44 | } 45 | } 46 | 47 | .btn.btn-action { 48 | @apply text-2xl py-0 px-2 cursor-pointer leading-normal; 49 | } 50 | 51 | .logo-text { 52 | background: linear-gradient( 53 | 240deg, 54 | rgba(88, 249, 185, 1) 11%, 55 | rgba(63, 194, 240, 1) 20%, 56 | rgba(63, 194, 240, 1) 26%, 57 | rgba(242, 96, 205, 1) 37%, 58 | rgba(242, 96, 205, 1) 51%, 59 | rgba(255, 255, 255, 1) 51% 60 | ); 61 | -webkit-background-clip: text; 62 | color: transparent; 63 | } 64 | 65 | #root.theme-light { 66 | .logo-text { 67 | background: linear-gradient( 68 | 240deg, 69 | rgba(88, 249, 185, 1) 11%, 70 | rgba(63, 194, 240, 1) 20%, 71 | rgba(63, 194, 240, 1) 26%, 72 | rgba(242, 96, 205, 1) 37%, 73 | rgba(242, 96, 205, 1) 51%, 74 | rgba(120, 120, 120, 1) 51% 75 | ); 76 | -webkit-background-clip: text; 77 | color: transparent; 78 | } 79 | } 80 | 81 | .fade-enter-active, 82 | .fade-leave-active { 83 | transition: opacity 1s; 84 | } 85 | .fade-enter, 86 | .fade-leave-to { 87 | opacity: 0; 88 | } 89 | 90 | input[type='range'] { 91 | outline: 0; 92 | border: 0; 93 | border-radius: 500px; 94 | /* width: 400px; */ 95 | /* max-width: 100%; */ 96 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 97 | & { 98 | overflow: hidden; 99 | height: 20px; 100 | -webkit-appearance: none; 101 | background-color: theme('colors.theme.600'); 102 | &.slim { 103 | height: 20px; 104 | margin-top: 2px; 105 | margin-bottom: 2px; 106 | overflow: visible; 107 | } 108 | } 109 | 110 | &::-webkit-slider-thumb { 111 | width: 20px; 112 | -webkit-appearance: none; 113 | height: 20px; 114 | cursor: ew-resize; 115 | background: theme('colors.theme.700'); 116 | /* box-shadow: -330px 0 0 320px theme('colors.theme.200'), inset 0 0 0 20px theme('colors.theme.700'); */ 117 | border-radius: 50%; 118 | transition: box-shadow 0.2s ease-in-out; 119 | position: relative; 120 | } 121 | 122 | &.slim::-webkit-slider-thumb { 123 | opacity: 0.9; 124 | width: 16px; 125 | height: 16px; 126 | } 127 | } 128 | &::-moz-range-progress { 129 | background-color: theme('colors.theme.600'); 130 | } 131 | &::-ms-fill-lower { 132 | background-color: theme('colors.theme.600'); 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /src/assets/css/table.pcss: -------------------------------------------------------------------------------- 1 | table.table { 2 | @apply w-full bg-theme-400 mt-4 text-sm; 3 | thead { 4 | @apply text-left border-t border-b border-theme-700; 5 | th { 6 | @apply py-4 px-4 tracking-wider; 7 | } 8 | } 9 | 10 | tbody { 11 | tr { 12 | @apply bg-theme-400 border-b border-theme-600; 13 | &:hover { 14 | td { 15 | @apply text-theme-lighter; 16 | } 17 | } 18 | td { 19 | @apply py-4 px-4; 20 | } 21 | } 22 | } 23 | &.striped tbody>tr:nth-child(odd) { 24 | @apply bg-theme-300; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/assets/css/tooltip.pcss: -------------------------------------------------------------------------------- 1 | #root.theme-dark { 2 | .tooltip .tooltip-inner { 3 | @apply text-theme-lighter; 4 | } 5 | } 6 | 7 | .tooltip { 8 | display: block !important; 9 | z-index: 10000; 10 | 11 | .tooltip-inner { 12 | @apply bg-theme-800 text-sm rounded-xl py-2 px-4; 13 | } 14 | 15 | .tooltip-arrow { 16 | width: 0; 17 | height: 0; 18 | border-style: solid; 19 | position: absolute; 20 | margin: 5px; 21 | z-index: 1; 22 | @apply border-theme-800; 23 | } 24 | 25 | &[x-placement^='top'] { 26 | margin-bottom: 5px; 27 | 28 | .tooltip-arrow { 29 | border-width: 5px 5px 0 5px; 30 | border-left-color: transparent !important; 31 | border-right-color: transparent !important; 32 | border-bottom-color: transparent !important; 33 | bottom: -5px; 34 | left: calc(50% - 5px); 35 | margin-top: 0; 36 | margin-bottom: 0; 37 | } 38 | } 39 | 40 | &[x-placement^='bottom'] { 41 | margin-top: 5px; 42 | 43 | .tooltip-arrow { 44 | border-width: 0 5px 5px 5px; 45 | border-left-color: transparent !important; 46 | border-right-color: transparent !important; 47 | border-top-color: transparent !important; 48 | top: -5px; 49 | left: calc(50% - 5px); 50 | margin-top: 0; 51 | margin-bottom: 0; 52 | } 53 | } 54 | 55 | &[x-placement^='right'] { 56 | margin-left: 5px; 57 | 58 | .tooltip-arrow { 59 | border-width: 5px 5px 5px 0; 60 | border-left-color: transparent !important; 61 | border-top-color: transparent !important; 62 | border-bottom-color: transparent !important; 63 | left: -5px; 64 | top: calc(50% - 5px); 65 | margin-left: 0; 66 | margin-right: 0; 67 | } 68 | } 69 | 70 | &[x-placement^='left'] { 71 | margin-right: 5px; 72 | 73 | .tooltip-arrow { 74 | border-width: 5px 0 5px 5px; 75 | border-top-color: transparent !important; 76 | border-right-color: transparent !important; 77 | border-bottom-color: transparent !important; 78 | right: -5px; 79 | top: calc(50% - 5px); 80 | margin-left: 0; 81 | margin-right: 0; 82 | } 83 | } 84 | 85 | &.popover { 86 | .popover-inner { 87 | @apply bg-theme-800; 88 | } 89 | 90 | .popover-arrow { 91 | @apply border-theme-800; 92 | } 93 | } 94 | 95 | &[aria-hidden='true'] { 96 | visibility: hidden; 97 | opacity: 0; 98 | transition: opacity 0.15s, visibility 0.15s; 99 | } 100 | 101 | &[aria-hidden='false'] { 102 | visibility: visible; 103 | opacity: 1; 104 | transition: opacity 0.15s; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/assets/css/variables.css: -------------------------------------------------------------------------------- 1 | .theme-dark { 2 | --color-theme-100: #737373; 3 | --color-theme-200: #666666; 4 | --color-theme-300: #595959; 5 | --color-theme-400: #4D4D4D; 6 | --color-theme-500: #404040; 7 | --color-theme-600: #333333; 8 | --color-theme-700: #262626; 9 | --color-theme-800: #1A1A1A; 10 | --color-theme-900: #0D0D0D; 11 | 12 | --color-theme: var(--color-theme-500); 13 | --color-theme-lighter: var(--color-theme-400); 14 | --color-theme-darker: var(--color-theme-600); 15 | 16 | --color-text-theme: #dddddd; 17 | --color-text-theme-lighter: #eeeeee; 18 | --color-text-theme-darker: #c6c6c6; 19 | --color-text-theme-reverse: #262626; 20 | } 21 | 22 | .theme-light { 23 | --color-theme-100: #F5F5F5; 24 | --color-theme-200: #EDEDED; 25 | --color-theme-300: #E6E6E6; 26 | --color-theme-400: #DEDEDE; 27 | --color-theme-500: #e2e2e2; 28 | --color-theme-600: #C4C4C4; 29 | --color-theme-700: #B3B3B3; 30 | --color-theme-800: #A1A1A1; 31 | --color-theme-900: #8F8F8F; 32 | 33 | --color-theme: var(--color-theme-500); 34 | --color-theme-lighter: var(--color-theme-100); 35 | --color-theme-darker: var(--color-theme-600); 36 | 37 | --color-text-theme: #262626; 38 | --color-text-theme-lighter: #4D4D4D; 39 | --color-text-theme-darker: #0D0D0D; 40 | --color-text-theme-reverse: #dddddd; 41 | } 42 | -------------------------------------------------------------------------------- /src/assets/main.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss/base'; 2 | @import 'tailwindcss/components'; 3 | @import 'css/variables.css'; 4 | @import 'css/style.pcss'; 5 | @import 'tailwindcss/utilities'; 6 | -------------------------------------------------------------------------------- /src/components/BaseSelect.vue: -------------------------------------------------------------------------------- 1 | 239 | 240 | 515 | -------------------------------------------------------------------------------- /src/components/BaseStopSelect.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 37 | -------------------------------------------------------------------------------- /src/components/CarbonAds.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 29 | -------------------------------------------------------------------------------- /src/components/CommunityQuickSelect.vue: -------------------------------------------------------------------------------- 1 | 270 | 271 | 397 | -------------------------------------------------------------------------------- /src/components/CommunityShades.vue: -------------------------------------------------------------------------------- 1 | 105 | 106 | 251 | -------------------------------------------------------------------------------- /src/components/CustomDropdown.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 75 | -------------------------------------------------------------------------------- /src/components/CustomPagination.vue: -------------------------------------------------------------------------------- 1 | 106 | 107 | 162 | -------------------------------------------------------------------------------- /src/components/Modal.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 58 | -------------------------------------------------------------------------------- /src/components/MyColors.vue: -------------------------------------------------------------------------------- 1 | 114 | 115 | 250 | -------------------------------------------------------------------------------- /src/components/NotFound404.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/ShadeInterface.vue: -------------------------------------------------------------------------------- 1 | 374 | 375 | 912 | -------------------------------------------------------------------------------- /src/components/SliderInput.vue: -------------------------------------------------------------------------------- 1 | 76 | 77 | 129 | -------------------------------------------------------------------------------- /src/components/UserControl.vue: -------------------------------------------------------------------------------- 1 | 85 | 86 | 139 | -------------------------------------------------------------------------------- /src/composables/community.js: -------------------------------------------------------------------------------- 1 | import { mapActions, mapGetters } from 'vuex' 2 | 3 | export default { 4 | data() { 5 | return { 6 | myLikedShades: [], 7 | loading: false, 8 | } 9 | }, 10 | computed: { 11 | ...mapGetters(['user', 'isLoggedIn']), 12 | }, 13 | methods: { 14 | ...mapActions(['fromCache']), 15 | toggleLikeShade(shade) { 16 | if (!shade.id) { 17 | return 18 | } 19 | if (!this.isLoggedIn) { 20 | this.$notify({ 21 | text: 'Please login to access this feature', 22 | type: 'error', 23 | duration: 4000, 24 | }) 25 | return 26 | } 27 | 28 | if ( 29 | this.myLikedShades && 30 | this.myLikedShades.find(l => l.shade_id === shade.id) 31 | ) { 32 | this.unlikeShade(shade) 33 | return 34 | } 35 | this.likeShade(shade) 36 | }, 37 | async likeShade(shade) { 38 | const row = { 39 | user_id: this.user.id, 40 | shade_id: shade.id, 41 | recorded_shade_code: shade.code, 42 | recorded_shade_colors: shade.colors, 43 | } 44 | const { error } = await this.$supabase.from('liked_shades').insert(row) 45 | if (error) { 46 | this.$notify({ 47 | text: "Couldn't like shade", 48 | type: 'error', 49 | duration: 4000, 50 | }) 51 | return 52 | } 53 | 54 | this.$notify({ 55 | text: 'Shade saved in liked shades', 56 | type: 'info', 57 | duration: 2000, 58 | }) 59 | this.myLikedShades.push(row) 60 | shade.likes++ 61 | }, 62 | async unlikeShade(shade) { 63 | const { error } = await this.$supabase 64 | .from('liked_shades') 65 | .delete() 66 | .match({ 67 | user_id: this.user.id, 68 | shade_id: shade.id, 69 | }) 70 | if (error) { 71 | this.$notify({ 72 | text: "Couldn't unlike shade", 73 | type: 'error', 74 | duration: 4000, 75 | }) 76 | return 77 | } 78 | 79 | this.$notify({ 80 | text: 'Shade removed from liked shades', 81 | type: 'info', 82 | duration: 2000, 83 | }) 84 | 85 | this.myLikedShades = this.myLikedShades.filter( 86 | l => l.shade_id !== shade.id 87 | ) 88 | shade.likes-- 89 | }, 90 | async getMyLikedShades() { 91 | if (!this.isLoggedIn) { 92 | return 93 | } 94 | const cacheKey = 'shades.myLikedShades' 95 | const { data: cache, error } = await this.fromCache({ 96 | key: cacheKey, 97 | expiry: new Date(+new Date() - 15 * 60000), // - 15 minutes 98 | }) 99 | if (error) { 100 | this.loading = true 101 | const { data, error } = await this.$supabase 102 | .from('liked_shades') 103 | .select() 104 | .eq('user_id', this.user.id) 105 | this.loading = false 106 | if (error) { 107 | this.$notify({ 108 | text: "Couldn't get my liked shades", 109 | type: 'error', 110 | duration: 4000, 111 | }) 112 | return 113 | } 114 | this.$store.commit('setCacheValue', { key: cacheKey, value: data }) 115 | this.myLikedShades = data 116 | return 117 | } 118 | 119 | this.myLikedShades = cache 120 | }, 121 | }, 122 | } 123 | -------------------------------------------------------------------------------- /src/lib/ntc.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | +-----------------------------------------------------------------+ 4 | | Created by Chirag Mehta - http://chir.ag/projects/ntc | 5 | |-----------------------------------------------------------------| 6 | | ntc js (Name that Color JavaScript) | 7 | +-----------------------------------------------------------------+ 8 | 9 | All the functions, code, lists etc. have been written specifically 10 | for the Name that Color JavaScript by Chirag Mehta unless otherwise 11 | specified. 12 | 13 | This script is released under the: Creative Commons License: 14 | Attribution 2.5 http://creativecommons.org/licenses/by/2.5/ 15 | 16 | Sample Usage: 17 | 18 | 19 | 20 | 30 | 31 | */ 32 | 33 | export const ntc = { 34 | init: function () { 35 | var color, rgb, hsl 36 | for (var i = 0; i < ntc.names.length; i++) { 37 | color = '#' + ntc.names[i][0] 38 | rgb = ntc.rgb(color) 39 | hsl = ntc.hsl(color) 40 | ntc.names[i].push(rgb[0], rgb[1], rgb[2], hsl[0], hsl[1], hsl[2]) 41 | } 42 | }, 43 | 44 | name: function (color) { 45 | color = color.toUpperCase() 46 | if (color.length < 3 || color.length > 7) 47 | return ['#000000', 'Invalid Color: ' + color, false] 48 | if (color.length % 3 == 0) color = '#' + color 49 | if (color.length == 4) 50 | color = 51 | '#' + 52 | color.substr(1, 1) + 53 | color.substr(1, 1) + 54 | color.substr(2, 1) + 55 | color.substr(2, 1) + 56 | color.substr(3, 1) + 57 | color.substr(3, 1) 58 | 59 | var rgb = ntc.rgb(color) 60 | var r = rgb[0] 61 | var g = rgb[1] 62 | var b = rgb[2] 63 | var hsl = ntc.hsl(color) 64 | var h = hsl[0] 65 | var s = hsl[1] 66 | var l = hsl[2] 67 | var ndf1 = 0 68 | var ndf2 = 0 69 | var ndf = 0 70 | var cl = -1 71 | var df = -1 72 | 73 | for (var i = 0; i < ntc.names.length; i++) { 74 | if (color == '#' + ntc.names[i][0]) 75 | return ['#' + ntc.names[i][0], ntc.names[i][1], true] 76 | 77 | ndf1 = 78 | Math.pow(r - ntc.names[i][2], 2) + 79 | Math.pow(g - ntc.names[i][3], 2) + 80 | Math.pow(b - ntc.names[i][4], 2) 81 | ndf2 = 82 | Math.pow(h - ntc.names[i][5], 2) + 83 | Math.pow(s - ntc.names[i][6], 2) + 84 | Math.pow(l - ntc.names[i][7], 2) 85 | ndf = ndf1 + ndf2 * 2 86 | if (df < 0 || df > ndf) { 87 | df = ndf 88 | cl = i 89 | } 90 | } 91 | 92 | return cl < 0 93 | ? ['#000000', 'Invalid Color: ' + color, false] 94 | : ['#' + ntc.names[cl][0], ntc.names[cl][1], false] 95 | }, 96 | 97 | // adopted from: Farbtastic 1.2 98 | // http://acko.net/dev/farbtastic 99 | hsl: function (color) { 100 | var rgb = [ 101 | parseInt('0x' + color.substring(1, 3)) / 255, 102 | parseInt('0x' + color.substring(3, 5)) / 255, 103 | parseInt('0x' + color.substring(5, 7)) / 255, 104 | ] 105 | var min, max, delta, h, s, l 106 | var r = rgb[0], 107 | g = rgb[1], 108 | b = rgb[2] 109 | 110 | min = Math.min(r, Math.min(g, b)) 111 | max = Math.max(r, Math.max(g, b)) 112 | delta = max - min 113 | l = (min + max) / 2 114 | 115 | s = 0 116 | if (l > 0 && l < 1) s = delta / (l < 0.5 ? 2 * l : 2 - 2 * l) 117 | 118 | h = 0 119 | if (delta > 0) { 120 | if (max == r && max != g) h += (g - b) / delta 121 | if (max == g && max != b) h += 2 + (b - r) / delta 122 | if (max == b && max != r) h += 4 + (r - g) / delta 123 | h /= 6 124 | } 125 | return [parseInt(h * 255), parseInt(s * 255), parseInt(l * 255)] 126 | }, 127 | 128 | // adopted from: Farbtastic 1.2 129 | // http://acko.net/dev/farbtastic 130 | rgb: function (color) { 131 | return [ 132 | parseInt('0x' + color.substring(1, 3)), 133 | parseInt('0x' + color.substring(3, 5)), 134 | parseInt('0x' + color.substring(5, 7)), 135 | ] 136 | }, 137 | 138 | names: [ 139 | ['000000', 'Black'], 140 | ['000080', 'Navy Blue'], 141 | ['0000C8', 'Dark Blue'], 142 | ['0000FF', 'Blue'], 143 | ['000741', 'Stratos'], 144 | ['001B1C', 'Swamp'], 145 | ['002387', 'Resolution Blue'], 146 | ['002900', 'Deep Fir'], 147 | ['002E20', 'Burnham'], 148 | ['002FA7', 'International Klein Blue'], 149 | ['003153', 'Prussian Blue'], 150 | ['003366', 'Midnight Blue'], 151 | ['003399', 'Smalt'], 152 | ['003532', 'Deep Teal'], 153 | ['003E40', 'Cyprus'], 154 | ['004620', 'Kaitoke Green'], 155 | ['0047AB', 'Cobalt'], 156 | ['004816', 'Crusoe'], 157 | ['004950', 'Sherpa Blue'], 158 | ['0056A7', 'Endeavour'], 159 | ['00581A', 'Camarone'], 160 | ['0066CC', 'Science Blue'], 161 | ['0066FF', 'Blue Ribbon'], 162 | ['00755E', 'Tropical Rain Forest'], 163 | ['0076A3', 'Allports'], 164 | ['007BA7', 'Deep Cerulean'], 165 | ['007EC7', 'Lochmara'], 166 | ['007FFF', 'Azure Radiance'], 167 | ['008080', 'Teal'], 168 | ['0095B6', 'Bondi Blue'], 169 | ['009DC4', 'Pacific Blue'], 170 | ['00A693', 'Persian Green'], 171 | ['00A86B', 'Jade'], 172 | ['00CC99', 'Caribbean Green'], 173 | ['00CCCC', "Robin's Egg Blue"], 174 | ['00FF00', 'Green'], 175 | ['00FF7F', 'Spring Green'], 176 | ['00FFFF', 'Cyan / Aqua'], 177 | ['010D1A', 'Blue Charcoal'], 178 | ['011635', 'Midnight'], 179 | ['011D13', 'Holly'], 180 | ['012731', 'Daintree'], 181 | ['01361C', 'Cardin Green'], 182 | ['01371A', 'County Green'], 183 | ['013E62', 'Astronaut Blue'], 184 | ['013F6A', 'Regal Blue'], 185 | ['014B43', 'Aqua Deep'], 186 | ['015E85', 'Orient'], 187 | ['016162', 'Blue Stone'], 188 | ['016D39', 'Fun Green'], 189 | ['01796F', 'Pine Green'], 190 | ['017987', 'Blue Lagoon'], 191 | ['01826B', 'Deep Sea'], 192 | ['01A368', 'Green Haze'], 193 | ['022D15', 'English Holly'], 194 | ['02402C', 'Sherwood Green'], 195 | ['02478E', 'Congress Blue'], 196 | ['024E46', 'Evening Sea'], 197 | ['026395', 'Bahama Blue'], 198 | ['02866F', 'Observatory'], 199 | ['02A4D3', 'Cerulean'], 200 | ['03163C', 'Tangaroa'], 201 | ['032B52', 'Green Vogue'], 202 | ['036A6E', 'Mosque'], 203 | ['041004', 'Midnight Moss'], 204 | ['041322', 'Black Pearl'], 205 | ['042E4C', 'Blue Whale'], 206 | ['044022', 'Zuccini'], 207 | ['044259', 'Teal Blue'], 208 | ['051040', 'Deep Cove'], 209 | ['051657', 'Gulf Blue'], 210 | ['055989', 'Venice Blue'], 211 | ['056F57', 'Watercourse'], 212 | ['062A78', 'Catalina Blue'], 213 | ['063537', 'Tiber'], 214 | ['069B81', 'Gossamer'], 215 | ['06A189', 'Niagara'], 216 | ['073A50', 'Tarawera'], 217 | ['080110', 'Jaguar'], 218 | ['081910', 'Black Bean'], 219 | ['082567', 'Deep Sapphire'], 220 | ['088370', 'Elf Green'], 221 | ['08E8DE', 'Bright Turquoise'], 222 | ['092256', 'Downriver'], 223 | ['09230F', 'Palm Green'], 224 | ['09255D', 'Madison'], 225 | ['093624', 'Bottle Green'], 226 | ['095859', 'Deep Sea Green'], 227 | ['097F4B', 'Salem'], 228 | ['0A001C', 'Black Russian'], 229 | ['0A480D', 'Dark Fern'], 230 | ['0A6906', 'Japanese Laurel'], 231 | ['0A6F75', 'Atoll'], 232 | ['0B0B0B', 'Cod Gray'], 233 | ['0B0F08', 'Marshland'], 234 | ['0B1107', 'Gordons Green'], 235 | ['0B1304', 'Black Forest'], 236 | ['0B6207', 'San Felix'], 237 | ['0BDA51', 'Malachite'], 238 | ['0C0B1D', 'Ebony'], 239 | ['0C0D0F', 'Woodsmoke'], 240 | ['0C1911', 'Racing Green'], 241 | ['0C7A79', 'Surfie Green'], 242 | ['0C8990', 'Blue Chill'], 243 | ['0D0332', 'Black Rock'], 244 | ['0D1117', 'Bunker'], 245 | ['0D1C19', 'Aztec'], 246 | ['0D2E1C', 'Bush'], 247 | ['0E0E18', 'Cinder'], 248 | ['0E2A30', 'Firefly'], 249 | ['0F2D9E', 'Torea Bay'], 250 | ['10121D', 'Vulcan'], 251 | ['101405', 'Green Waterloo'], 252 | ['105852', 'Eden'], 253 | ['110C6C', 'Arapawa'], 254 | ['120A8F', 'Ultramarine'], 255 | ['123447', 'Elephant'], 256 | ['126B40', 'Jewel'], 257 | ['130000', 'Diesel'], 258 | ['130A06', 'Asphalt'], 259 | ['13264D', 'Blue Zodiac'], 260 | ['134F19', 'Parsley'], 261 | ['140600', 'Nero'], 262 | ['1450AA', 'Tory Blue'], 263 | ['151F4C', 'Bunting'], 264 | ['1560BD', 'Denim'], 265 | ['15736B', 'Genoa'], 266 | ['161928', 'Mirage'], 267 | ['161D10', 'Hunter Green'], 268 | ['162A40', 'Big Stone'], 269 | ['163222', 'Celtic'], 270 | ['16322C', 'Timber Green'], 271 | ['163531', 'Gable Green'], 272 | ['171F04', 'Pine Tree'], 273 | ['175579', 'Chathams Blue'], 274 | ['182D09', 'Deep Forest Green'], 275 | ['18587A', 'Blumine'], 276 | ['19330E', 'Palm Leaf'], 277 | ['193751', 'Nile Blue'], 278 | ['1959A8', 'Fun Blue'], 279 | ['1A1A68', 'Lucky Point'], 280 | ['1AB385', 'Mountain Meadow'], 281 | ['1B0245', 'Tolopea'], 282 | ['1B1035', 'Haiti'], 283 | ['1B127B', 'Deep Koamaru'], 284 | ['1B1404', 'Acadia'], 285 | ['1B2F11', 'Seaweed'], 286 | ['1B3162', 'Biscay'], 287 | ['1B659D', 'Matisse'], 288 | ['1C1208', 'Crowshead'], 289 | ['1C1E13', 'Rangoon Green'], 290 | ['1C39BB', 'Persian Blue'], 291 | ['1C402E', 'Everglade'], 292 | ['1C7C7D', 'Elm'], 293 | ['1D6142', 'Green Pea'], 294 | ['1E0F04', 'Creole'], 295 | ['1E1609', 'Karaka'], 296 | ['1E1708', 'El Paso'], 297 | ['1E385B', 'Cello'], 298 | ['1E433C', 'Te Papa Green'], 299 | ['1E90FF', 'Dodger Blue'], 300 | ['1E9AB0', 'Eastern Blue'], 301 | ['1F120F', 'Night Rider'], 302 | ['1FC2C2', 'Java'], 303 | ['20208D', 'Jacksons Purple'], 304 | ['202E54', 'Cloud Burst'], 305 | ['204852', 'Blue Dianne'], 306 | ['211A0E', 'Eternity'], 307 | ['220878', 'Deep Blue'], 308 | ['228B22', 'Forest Green'], 309 | ['233418', 'Mallard'], 310 | ['240A40', 'Violet'], 311 | ['240C02', 'Kilamanjaro'], 312 | ['242A1D', 'Log Cabin'], 313 | ['242E16', 'Black Olive'], 314 | ['24500F', 'Green House'], 315 | ['251607', 'Graphite'], 316 | ['251706', 'Cannon Black'], 317 | ['251F4F', 'Port Gore'], 318 | ['25272C', 'Shark'], 319 | ['25311C', 'Green Kelp'], 320 | ['2596D1', 'Curious Blue'], 321 | ['260368', 'Paua'], 322 | ['26056A', 'Paris M'], 323 | ['261105', 'Wood Bark'], 324 | ['261414', 'Gondola'], 325 | ['262335', 'Steel Gray'], 326 | ['26283B', 'Ebony Clay'], 327 | ['273A81', 'Bay of Many'], 328 | ['27504B', 'Plantation'], 329 | ['278A5B', 'Eucalyptus'], 330 | ['281E15', 'Oil'], 331 | ['283A77', 'Astronaut'], 332 | ['286ACD', 'Mariner'], 333 | ['290C5E', 'Violent Violet'], 334 | ['292130', 'Bastille'], 335 | ['292319', 'Zeus'], 336 | ['292937', 'Charade'], 337 | ['297B9A', 'Jelly Bean'], 338 | ['29AB87', 'Jungle Green'], 339 | ['2A0359', 'Cherry Pie'], 340 | ['2A140E', 'Coffee Bean'], 341 | ['2A2630', 'Baltic Sea'], 342 | ['2A380B', 'Turtle Green'], 343 | ['2A52BE', 'Cerulean Blue'], 344 | ['2B0202', 'Sepia Black'], 345 | ['2B194F', 'Valhalla'], 346 | ['2B3228', 'Heavy Metal'], 347 | ['2C0E8C', 'Blue Gem'], 348 | ['2C1632', 'Revolver'], 349 | ['2C2133', 'Bleached Cedar'], 350 | ['2C8C84', 'Lochinvar'], 351 | ['2D2510', 'Mikado'], 352 | ['2D383A', 'Outer Space'], 353 | ['2D569B', 'St Tropaz'], 354 | ['2E0329', 'Jacaranda'], 355 | ['2E1905', 'Jacko Bean'], 356 | ['2E3222', 'Rangitoto'], 357 | ['2E3F62', 'Rhino'], 358 | ['2E8B57', 'Sea Green'], 359 | ['2EBFD4', 'Scooter'], 360 | ['2F270E', 'Onion'], 361 | ['2F3CB3', 'Governor Bay'], 362 | ['2F519E', 'Sapphire'], 363 | ['2F5A57', 'Spectra'], 364 | ['2F6168', 'Casal'], 365 | ['300529', 'Melanzane'], 366 | ['301F1E', 'Cocoa Brown'], 367 | ['302A0F', 'Woodrush'], 368 | ['304B6A', 'San Juan'], 369 | ['30D5C8', 'Turquoise'], 370 | ['311C17', 'Eclipse'], 371 | ['314459', 'Pickled Bluewood'], 372 | ['315BA1', 'Azure'], 373 | ['31728D', 'Calypso'], 374 | ['317D82', 'Paradiso'], 375 | ['32127A', 'Persian Indigo'], 376 | ['32293A', 'Blackcurrant'], 377 | ['323232', 'Mine Shaft'], 378 | ['325D52', 'Stromboli'], 379 | ['327C14', 'Bilbao'], 380 | ['327DA0', 'Astral'], 381 | ['33036B', 'Christalle'], 382 | ['33292F', 'Thunder'], 383 | ['33CC99', 'Shamrock'], 384 | ['341515', 'Tamarind'], 385 | ['350036', 'Mardi Gras'], 386 | ['350E42', 'Valentino'], 387 | ['350E57', 'Jagger'], 388 | ['353542', 'Tuna'], 389 | ['354E8C', 'Chambray'], 390 | ['363050', 'Martinique'], 391 | ['363534', 'Tuatara'], 392 | ['363C0D', 'Waiouru'], 393 | ['36747D', 'Ming'], 394 | ['368716', 'La Palma'], 395 | ['370202', 'Chocolate'], 396 | ['371D09', 'Clinker'], 397 | ['37290E', 'Brown Tumbleweed'], 398 | ['373021', 'Birch'], 399 | ['377475', 'Oracle'], 400 | ['380474', 'Blue Diamond'], 401 | ['381A51', 'Grape'], 402 | ['383533', 'Dune'], 403 | ['384555', 'Oxford Blue'], 404 | ['384910', 'Clover'], 405 | ['394851', 'Limed Spruce'], 406 | ['396413', 'Dell'], 407 | ['3A0020', 'Toledo'], 408 | ['3A2010', 'Sambuca'], 409 | ['3A2A6A', 'Jacarta'], 410 | ['3A686C', 'William'], 411 | ['3A6A47', 'Killarney'], 412 | ['3AB09E', 'Keppel'], 413 | ['3B000B', 'Temptress'], 414 | ['3B0910', 'Aubergine'], 415 | ['3B1F1F', 'Jon'], 416 | ['3B2820', 'Treehouse'], 417 | ['3B7A57', 'Amazon'], 418 | ['3B91B4', 'Boston Blue'], 419 | ['3C0878', 'Windsor'], 420 | ['3C1206', 'Rebel'], 421 | ['3C1F76', 'Meteorite'], 422 | ['3C2005', 'Dark Ebony'], 423 | ['3C3910', 'Camouflage'], 424 | ['3C4151', 'Bright Gray'], 425 | ['3C4443', 'Cape Cod'], 426 | ['3C493A', 'Lunar Green'], 427 | ['3D0C02', 'Bean '], 428 | ['3D2B1F', 'Bistre'], 429 | ['3D7D52', 'Goblin'], 430 | ['3E0480', 'Kingfisher Daisy'], 431 | ['3E1C14', 'Cedar'], 432 | ['3E2B23', 'English Walnut'], 433 | ['3E2C1C', 'Black Marlin'], 434 | ['3E3A44', 'Ship Gray'], 435 | ['3EABBF', 'Pelorous'], 436 | ['3F2109', 'Bronze'], 437 | ['3F2500', 'Cola'], 438 | ['3F3002', 'Madras'], 439 | ['3F307F', 'Minsk'], 440 | ['3F4C3A', 'Cabbage Pont'], 441 | ['3F583B', 'Tom Thumb'], 442 | ['3F5D53', 'Mineral Green'], 443 | ['3FC1AA', 'Puerto Rico'], 444 | ['3FFF00', 'Harlequin'], 445 | ['401801', 'Brown Pod'], 446 | ['40291D', 'Cork'], 447 | ['403B38', 'Masala'], 448 | ['403D19', 'Thatch Green'], 449 | ['405169', 'Fiord'], 450 | ['40826D', 'Viridian'], 451 | ['40A860', 'Chateau Green'], 452 | ['410056', 'Ripe Plum'], 453 | ['411F10', 'Paco'], 454 | ['412010', 'Deep Oak'], 455 | ['413C37', 'Merlin'], 456 | ['414257', 'Gun Powder'], 457 | ['414C7D', 'East Bay'], 458 | ['4169E1', 'Royal Blue'], 459 | ['41AA78', 'Ocean Green'], 460 | ['420303', 'Burnt Maroon'], 461 | ['423921', 'Lisbon Brown'], 462 | ['427977', 'Faded Jade'], 463 | ['431560', 'Scarlet Gum'], 464 | ['433120', 'Iroko'], 465 | ['433E37', 'Armadillo'], 466 | ['434C59', 'River Bed'], 467 | ['436A0D', 'Green Leaf'], 468 | ['44012D', 'Barossa'], 469 | ['441D00', 'Morocco Brown'], 470 | ['444954', 'Mako'], 471 | ['454936', 'Kelp'], 472 | ['456CAC', 'San Marino'], 473 | ['45B1E8', 'Picton Blue'], 474 | ['460B41', 'Loulou'], 475 | ['462425', 'Crater Brown'], 476 | ['465945', 'Gray Asparagus'], 477 | ['4682B4', 'Steel Blue'], 478 | ['480404', 'Rustic Red'], 479 | ['480607', 'Bulgarian Rose'], 480 | ['480656', 'Clairvoyant'], 481 | ['481C1C', 'Cocoa Bean'], 482 | ['483131', 'Woody Brown'], 483 | ['483C32', 'Taupe'], 484 | ['49170C', 'Van Cleef'], 485 | ['492615', 'Brown Derby'], 486 | ['49371B', 'Metallic Bronze'], 487 | ['495400', 'Verdun Green'], 488 | ['496679', 'Blue Bayoux'], 489 | ['497183', 'Bismark'], 490 | ['4A2A04', 'Bracken'], 491 | ['4A3004', 'Deep Bronze'], 492 | ['4A3C30', 'Mondo'], 493 | ['4A4244', 'Tundora'], 494 | ['4A444B', 'Gravel'], 495 | ['4A4E5A', 'Trout'], 496 | ['4B0082', 'Pigment Indigo'], 497 | ['4B5D52', 'Nandor'], 498 | ['4C3024', 'Saddle'], 499 | ['4C4F56', 'Abbey'], 500 | ['4D0135', 'Blackberry'], 501 | ['4D0A18', 'Cab Sav'], 502 | ['4D1E01', 'Indian Tan'], 503 | ['4D282D', 'Cowboy'], 504 | ['4D282E', 'Livid Brown'], 505 | ['4D3833', 'Rock'], 506 | ['4D3D14', 'Punga'], 507 | ['4D400F', 'Bronzetone'], 508 | ['4D5328', 'Woodland'], 509 | ['4E0606', 'Mahogany'], 510 | ['4E2A5A', 'Bossanova'], 511 | ['4E3B41', 'Matterhorn'], 512 | ['4E420C', 'Bronze Olive'], 513 | ['4E4562', 'Mulled Wine'], 514 | ['4E6649', 'Axolotl'], 515 | ['4E7F9E', 'Wedgewood'], 516 | ['4EABD1', 'Shakespeare'], 517 | ['4F1C70', 'Honey Flower'], 518 | ['4F2398', 'Daisy Bush'], 519 | ['4F69C6', 'Indigo'], 520 | ['4F7942', 'Fern Green'], 521 | ['4F9D5D', 'Fruit Salad'], 522 | ['4FA83D', 'Apple'], 523 | ['504351', 'Mortar'], 524 | ['507096', 'Kashmir Blue'], 525 | ['507672', 'Cutty Sark'], 526 | ['50C878', 'Emerald'], 527 | ['514649', 'Emperor'], 528 | ['516E3D', 'Chalet Green'], 529 | ['517C66', 'Como'], 530 | ['51808F', 'Smalt Blue'], 531 | ['52001F', 'Castro'], 532 | ['520C17', 'Maroon Oak'], 533 | ['523C94', 'Gigas'], 534 | ['533455', 'Voodoo'], 535 | ['534491', 'Victoria'], 536 | ['53824B', 'Hippie Green'], 537 | ['541012', 'Heath'], 538 | ['544333', 'Judge Gray'], 539 | ['54534D', 'Fuscous Gray'], 540 | ['549019', 'Vida Loca'], 541 | ['55280C', 'Cioccolato'], 542 | ['555B10', 'Saratoga'], 543 | ['556D56', 'Finlandia'], 544 | ['5590D9', 'Havelock Blue'], 545 | ['56B4BE', 'Fountain Blue'], 546 | ['578363', 'Spring Leaves'], 547 | ['583401', 'Saddle Brown'], 548 | ['585562', 'Scarpa Flow'], 549 | ['587156', 'Cactus'], 550 | ['589AAF', 'Hippie Blue'], 551 | ['591D35', 'Wine Berry'], 552 | ['592804', 'Brown Bramble'], 553 | ['593737', 'Congo Brown'], 554 | ['594433', 'Millbrook'], 555 | ['5A6E9C', 'Waikawa Gray'], 556 | ['5A87A0', 'Horizon'], 557 | ['5B3013', 'Jambalaya'], 558 | ['5C0120', 'Bordeaux'], 559 | ['5C0536', 'Mulberry Wood'], 560 | ['5C2E01', 'Carnaby Tan'], 561 | ['5C5D75', 'Comet'], 562 | ['5D1E0F', 'Redwood'], 563 | ['5D4C51', 'Don Juan'], 564 | ['5D5C58', 'Chicago'], 565 | ['5D5E37', 'Verdigris'], 566 | ['5D7747', 'Dingley'], 567 | ['5DA19F', 'Breaker Bay'], 568 | ['5E483E', 'Kabul'], 569 | ['5E5D3B', 'Hemlock'], 570 | ['5F3D26', 'Irish Coffee'], 571 | ['5F5F6E', 'Mid Gray'], 572 | ['5F6672', 'Shuttle Gray'], 573 | ['5FA777', 'Aqua Forest'], 574 | ['5FB3AC', 'Tradewind'], 575 | ['604913', 'Horses Neck'], 576 | ['605B73', 'Smoky'], 577 | ['606E68', 'Corduroy'], 578 | ['6093D1', 'Danube'], 579 | ['612718', 'Espresso'], 580 | ['614051', 'Eggplant'], 581 | ['615D30', 'Costa Del Sol'], 582 | ['61845F', 'Glade Green'], 583 | ['622F30', 'Buccaneer'], 584 | ['623F2D', 'Quincy'], 585 | ['624E9A', 'Butterfly Bush'], 586 | ['625119', 'West Coast'], 587 | ['626649', 'Finch'], 588 | ['639A8F', 'Patina'], 589 | ['63B76C', 'Fern'], 590 | ['6456B7', 'Blue Violet'], 591 | ['646077', 'Dolphin'], 592 | ['646463', 'Storm Dust'], 593 | ['646A54', 'Siam'], 594 | ['646E75', 'Nevada'], 595 | ['6495ED', 'Cornflower Blue'], 596 | ['64CCDB', 'Viking'], 597 | ['65000B', 'Rosewood'], 598 | ['651A14', 'Cherrywood'], 599 | ['652DC1', 'Purple Heart'], 600 | ['657220', 'Fern Frond'], 601 | ['65745D', 'Willow Grove'], 602 | ['65869F', 'Hoki'], 603 | ['660045', 'Pompadour'], 604 | ['660099', 'Purple'], 605 | ['66023C', 'Tyrian Purple'], 606 | ['661010', 'Dark Tan'], 607 | ['66B58F', 'Silver Tree'], 608 | ['66FF00', 'Bright Green'], 609 | ['66FF66', "Screamin' Green"], 610 | ['67032D', 'Black Rose'], 611 | ['675FA6', 'Scampi'], 612 | ['676662', 'Ironside Gray'], 613 | ['678975', 'Viridian Green'], 614 | ['67A712', 'Christi'], 615 | ['683600', 'Nutmeg Wood Finish'], 616 | ['685558', 'Zambezi'], 617 | ['685E6E', 'Salt Box'], 618 | ['692545', 'Tawny Port'], 619 | ['692D54', 'Finn'], 620 | ['695F62', 'Scorpion'], 621 | ['697E9A', 'Lynch'], 622 | ['6A442E', 'Spice'], 623 | ['6A5D1B', 'Himalaya'], 624 | ['6A6051', 'Soya Bean'], 625 | ['6B2A14', 'Hairy Heath'], 626 | ['6B3FA0', 'Royal Purple'], 627 | ['6B4E31', 'Shingle Fawn'], 628 | ['6B5755', 'Dorado'], 629 | ['6B8BA2', 'Bermuda Gray'], 630 | ['6B8E23', 'Olive Drab'], 631 | ['6C3082', 'Eminence'], 632 | ['6CDAE7', 'Turquoise Blue'], 633 | ['6D0101', 'Lonestar'], 634 | ['6D5E54', 'Pine Cone'], 635 | ['6D6C6C', 'Dove Gray'], 636 | ['6D9292', 'Juniper'], 637 | ['6D92A1', 'Gothic'], 638 | ['6E0902', 'Red Oxide'], 639 | ['6E1D14', 'Moccaccino'], 640 | ['6E4826', 'Pickled Bean'], 641 | ['6E4B26', 'Dallas'], 642 | ['6E6D57', 'Kokoda'], 643 | ['6E7783', 'Pale Sky'], 644 | ['6F440C', 'Cafe Royale'], 645 | ['6F6A61', 'Flint'], 646 | ['6F8E63', 'Highland'], 647 | ['6F9D02', 'Limeade'], 648 | ['6FD0C5', 'Downy'], 649 | ['701C1C', 'Persian Plum'], 650 | ['704214', 'Sepia'], 651 | ['704A07', 'Antique Bronze'], 652 | ['704F50', 'Ferra'], 653 | ['706555', 'Coffee'], 654 | ['708090', 'Slate Gray'], 655 | ['711A00', 'Cedar Wood Finish'], 656 | ['71291D', 'Metallic Copper'], 657 | ['714693', 'Affair'], 658 | ['714AB2', 'Studio'], 659 | ['715D47', 'Tobacco Brown'], 660 | ['716338', 'Yellow Metal'], 661 | ['716B56', 'Peat'], 662 | ['716E10', 'Olivetone'], 663 | ['717486', 'Storm Gray'], 664 | ['718080', 'Sirocco'], 665 | ['71D9E2', 'Aquamarine Blue'], 666 | ['72010F', 'Venetian Red'], 667 | ['724A2F', 'Old Copper'], 668 | ['726D4E', 'Go Ben'], 669 | ['727B89', 'Raven'], 670 | ['731E8F', 'Seance'], 671 | ['734A12', 'Raw Umber'], 672 | ['736C9F', 'Kimberly'], 673 | ['736D58', 'Crocodile'], 674 | ['737829', 'Crete'], 675 | ['738678', 'Xanadu'], 676 | ['74640D', 'Spicy Mustard'], 677 | ['747D63', 'Limed Ash'], 678 | ['747D83', 'Rolling Stone'], 679 | ['748881', 'Blue Smoke'], 680 | ['749378', 'Laurel'], 681 | ['74C365', 'Mantis'], 682 | ['755A57', 'Russett'], 683 | ['7563A8', 'Deluge'], 684 | ['76395D', 'Cosmic'], 685 | ['7666C6', 'Blue Marguerite'], 686 | ['76BD17', 'Lima'], 687 | ['76D7EA', 'Sky Blue'], 688 | ['770F05', 'Dark Burgundy'], 689 | ['771F1F', 'Crown of Thorns'], 690 | ['773F1A', 'Walnut'], 691 | ['776F61', 'Pablo'], 692 | ['778120', 'Pacifika'], 693 | ['779E86', 'Oxley'], 694 | ['77DD77', 'Pastel Green'], 695 | ['780109', 'Japanese Maple'], 696 | ['782D19', 'Mocha'], 697 | ['782F16', 'Peanut'], 698 | ['78866B', 'Camouflage Green'], 699 | ['788A25', 'Wasabi'], 700 | ['788BBA', 'Ship Cove'], 701 | ['78A39C', 'Sea Nymph'], 702 | ['795D4C', 'Roman Coffee'], 703 | ['796878', 'Old Lavender'], 704 | ['796989', 'Rum'], 705 | ['796A78', 'Fedora'], 706 | ['796D62', 'Sandstone'], 707 | ['79DEEC', 'Spray'], 708 | ['7A013A', 'Siren'], 709 | ['7A58C1', 'Fuchsia Blue'], 710 | ['7A7A7A', 'Boulder'], 711 | ['7A89B8', 'Wild Blue Yonder'], 712 | ['7AC488', 'De York'], 713 | ['7B3801', 'Red Beech'], 714 | ['7B3F00', 'Cinnamon'], 715 | ['7B6608', 'Yukon Gold'], 716 | ['7B7874', 'Tapa'], 717 | ['7B7C94', 'Waterloo '], 718 | ['7B8265', 'Flax Smoke'], 719 | ['7B9F80', 'Amulet'], 720 | ['7BA05B', 'Asparagus'], 721 | ['7C1C05', 'Kenyan Copper'], 722 | ['7C7631', 'Pesto'], 723 | ['7C778A', 'Topaz'], 724 | ['7C7B7A', 'Concord'], 725 | ['7C7B82', 'Jumbo'], 726 | ['7C881A', 'Trendy Green'], 727 | ['7CA1A6', 'Gumbo'], 728 | ['7CB0A1', 'Acapulco'], 729 | ['7CB7BB', 'Neptune'], 730 | ['7D2C14', 'Pueblo'], 731 | ['7DA98D', 'Bay Leaf'], 732 | ['7DC8F7', 'Malibu'], 733 | ['7DD8C6', 'Bermuda'], 734 | ['7E3A15', 'Copper Canyon'], 735 | ['7F1734', 'Claret'], 736 | ['7F3A02', 'Peru Tan'], 737 | ['7F626D', 'Falcon'], 738 | ['7F7589', 'Mobster'], 739 | ['7F76D3', 'Moody Blue'], 740 | ['7FFF00', 'Chartreuse'], 741 | ['7FFFD4', 'Aquamarine'], 742 | ['800000', 'Maroon'], 743 | ['800B47', 'Rose Bud Cherry'], 744 | ['801818', 'Falu Red'], 745 | ['80341F', 'Red Robin'], 746 | ['803790', 'Vivid Violet'], 747 | ['80461B', 'Russet'], 748 | ['807E79', 'Friar Gray'], 749 | ['808000', 'Olive'], 750 | ['808080', 'Gray'], 751 | ['80B3AE', 'Gulf Stream'], 752 | ['80B3C4', 'Glacier'], 753 | ['80CCEA', 'Seagull'], 754 | ['81422C', 'Nutmeg'], 755 | ['816E71', 'Spicy Pink'], 756 | ['817377', 'Empress'], 757 | ['819885', 'Spanish Green'], 758 | ['826F65', 'Sand Dune'], 759 | ['828685', 'Gunsmoke'], 760 | ['828F72', 'Battleship Gray'], 761 | ['831923', 'Merlot'], 762 | ['837050', 'Shadow'], 763 | ['83AA5D', 'Chelsea Cucumber'], 764 | ['83D0C6', 'Monte Carlo'], 765 | ['843179', 'Plum'], 766 | ['84A0A0', 'Granny Smith'], 767 | ['8581D9', 'Chetwode Blue'], 768 | ['858470', 'Bandicoot'], 769 | ['859FAF', 'Bali Hai'], 770 | ['85C4CC', 'Half Baked'], 771 | ['860111', 'Red Devil'], 772 | ['863C3C', 'Lotus'], 773 | ['86483C', 'Ironstone'], 774 | ['864D1E', 'Bull Shot'], 775 | ['86560A', 'Rusty Nail'], 776 | ['868974', 'Bitter'], 777 | ['86949F', 'Regent Gray'], 778 | ['871550', 'Disco'], 779 | ['87756E', 'Americano'], 780 | ['877C7B', 'Hurricane'], 781 | ['878D91', 'Oslo Gray'], 782 | ['87AB39', 'Sushi'], 783 | ['885342', 'Spicy Mix'], 784 | ['886221', 'Kumera'], 785 | ['888387', 'Suva Gray'], 786 | ['888D65', 'Avocado'], 787 | ['893456', 'Camelot'], 788 | ['893843', 'Solid Pink'], 789 | ['894367', 'Cannon Pink'], 790 | ['897D6D', 'Makara'], 791 | ['8A3324', 'Burnt Umber'], 792 | ['8A73D6', 'True V'], 793 | ['8A8360', 'Clay Creek'], 794 | ['8A8389', 'Monsoon'], 795 | ['8A8F8A', 'Stack'], 796 | ['8AB9F1', 'Jordy Blue'], 797 | ['8B00FF', 'Electric Violet'], 798 | ['8B0723', 'Monarch'], 799 | ['8B6B0B', 'Corn Harvest'], 800 | ['8B8470', 'Olive Haze'], 801 | ['8B847E', 'Schooner'], 802 | ['8B8680', 'Natural Gray'], 803 | ['8B9C90', 'Mantle'], 804 | ['8B9FEE', 'Portage'], 805 | ['8BA690', 'Envy'], 806 | ['8BA9A5', 'Cascade'], 807 | ['8BE6D8', 'Riptide'], 808 | ['8C055E', 'Cardinal Pink'], 809 | ['8C472F', 'Mule Fawn'], 810 | ['8C5738', 'Potters Clay'], 811 | ['8C6495', 'Trendy Pink'], 812 | ['8D0226', 'Paprika'], 813 | ['8D3D38', 'Sanguine Brown'], 814 | ['8D3F3F', 'Tosca'], 815 | ['8D7662', 'Cement'], 816 | ['8D8974', 'Granite Green'], 817 | ['8D90A1', 'Manatee'], 818 | ['8DA8CC', 'Polo Blue'], 819 | ['8E0000', 'Red Berry'], 820 | ['8E4D1E', 'Rope'], 821 | ['8E6F70', 'Opium'], 822 | ['8E775E', 'Domino'], 823 | ['8E8190', 'Mamba'], 824 | ['8EABC1', 'Nepal'], 825 | ['8F021C', 'Pohutukawa'], 826 | ['8F3E33', 'El Salva'], 827 | ['8F4B0E', 'Korma'], 828 | ['8F8176', 'Squirrel'], 829 | ['8FD6B4', 'Vista Blue'], 830 | ['900020', 'Burgundy'], 831 | ['901E1E', 'Old Brick'], 832 | ['907874', 'Hemp'], 833 | ['907B71', 'Almond Frost'], 834 | ['908D39', 'Sycamore'], 835 | ['92000A', 'Sangria'], 836 | ['924321', 'Cumin'], 837 | ['926F5B', 'Beaver'], 838 | ['928573', 'Stonewall'], 839 | ['928590', 'Venus'], 840 | ['9370DB', 'Medium Purple'], 841 | ['93CCEA', 'Cornflower'], 842 | ['93DFB8', 'Algae Green'], 843 | ['944747', 'Copper Rust'], 844 | ['948771', 'Arrowtown'], 845 | ['950015', 'Scarlett'], 846 | ['956387', 'Strikemaster'], 847 | ['959396', 'Mountain Mist'], 848 | ['960018', 'Carmine'], 849 | ['964B00', 'Brown'], 850 | ['967059', 'Leather'], 851 | ['9678B6', "Purple Mountain's Majesty"], 852 | ['967BB6', 'Lavender Purple'], 853 | ['96A8A1', 'Pewter'], 854 | ['96BBAB', 'Summer Green'], 855 | ['97605D', 'Au Chico'], 856 | ['9771B5', 'Wisteria'], 857 | ['97CD2D', 'Atlantis'], 858 | ['983D61', 'Vin Rouge'], 859 | ['9874D3', 'Lilac Bush'], 860 | ['98777B', 'Bazaar'], 861 | ['98811B', 'Hacienda'], 862 | ['988D77', 'Pale Oyster'], 863 | ['98FF98', 'Mint Green'], 864 | ['990066', 'Fresh Eggplant'], 865 | ['991199', 'Violet Eggplant'], 866 | ['991613', 'Tamarillo'], 867 | ['991B07', 'Totem Pole'], 868 | ['996666', 'Copper Rose'], 869 | ['9966CC', 'Amethyst'], 870 | ['997A8D', 'Mountbatten Pink'], 871 | ['9999CC', 'Blue Bell'], 872 | ['9A3820', 'Prairie Sand'], 873 | ['9A6E61', 'Toast'], 874 | ['9A9577', 'Gurkha'], 875 | ['9AB973', 'Olivine'], 876 | ['9AC2B8', 'Shadow Green'], 877 | ['9B4703', 'Oregon'], 878 | ['9B9E8F', 'Lemon Grass'], 879 | ['9C3336', 'Stiletto'], 880 | ['9D5616', 'Hawaiian Tan'], 881 | ['9DACB7', 'Gull Gray'], 882 | ['9DC209', 'Pistachio'], 883 | ['9DE093', 'Granny Smith Apple'], 884 | ['9DE5FF', 'Anakiwa'], 885 | ['9E5302', 'Chelsea Gem'], 886 | ['9E5B40', 'Sepia Skin'], 887 | ['9EA587', 'Sage'], 888 | ['9EA91F', 'Citron'], 889 | ['9EB1CD', 'Rock Blue'], 890 | ['9EDEE0', 'Morning Glory'], 891 | ['9F381D', 'Cognac'], 892 | ['9F821C', 'Reef Gold'], 893 | ['9F9F9C', 'Star Dust'], 894 | ['9FA0B1', 'Santas Gray'], 895 | ['9FD7D3', 'Sinbad'], 896 | ['9FDD8C', 'Feijoa'], 897 | ['A02712', 'Tabasco'], 898 | ['A1750D', 'Buttered Rum'], 899 | ['A1ADB5', 'Hit Gray'], 900 | ['A1C50A', 'Citrus'], 901 | ['A1DAD7', 'Aqua Island'], 902 | ['A1E9DE', 'Water Leaf'], 903 | ['A2006D', 'Flirt'], 904 | ['A23B6C', 'Rouge'], 905 | ['A26645', 'Cape Palliser'], 906 | ['A2AAB3', 'Gray Chateau'], 907 | ['A2AEAB', 'Edward'], 908 | ['A3807B', 'Pharlap'], 909 | ['A397B4', 'Amethyst Smoke'], 910 | ['A3E3ED', 'Blizzard Blue'], 911 | ['A4A49D', 'Delta'], 912 | ['A4A6D3', 'Wistful'], 913 | ['A4AF6E', 'Green Smoke'], 914 | ['A50B5E', 'Jazzberry Jam'], 915 | ['A59B91', 'Zorba'], 916 | ['A5CB0C', 'Bahia'], 917 | ['A62F20', 'Roof Terracotta'], 918 | ['A65529', 'Paarl'], 919 | ['A68B5B', 'Barley Corn'], 920 | ['A69279', 'Donkey Brown'], 921 | ['A6A29A', 'Dawn'], 922 | ['A72525', 'Mexican Red'], 923 | ['A7882C', 'Luxor Gold'], 924 | ['A85307', 'Rich Gold'], 925 | ['A86515', 'Reno Sand'], 926 | ['A86B6B', 'Coral Tree'], 927 | ['A8989B', 'Dusty Gray'], 928 | ['A899E6', 'Dull Lavender'], 929 | ['A8A589', 'Tallow'], 930 | ['A8AE9C', 'Bud'], 931 | ['A8AF8E', 'Locust'], 932 | ['A8BD9F', 'Norway'], 933 | ['A8E3BD', 'Chinook'], 934 | ['A9A491', 'Gray Olive'], 935 | ['A9ACB6', 'Aluminium'], 936 | ['A9B2C3', 'Cadet Blue'], 937 | ['A9B497', 'Schist'], 938 | ['A9BDBF', 'Tower Gray'], 939 | ['A9BEF2', 'Perano'], 940 | ['A9C6C2', 'Opal'], 941 | ['AA375A', 'Night Shadz'], 942 | ['AA4203', 'Fire'], 943 | ['AA8B5B', 'Muesli'], 944 | ['AA8D6F', 'Sandal'], 945 | ['AAA5A9', 'Shady Lady'], 946 | ['AAA9CD', 'Logan'], 947 | ['AAABB7', 'Spun Pearl'], 948 | ['AAD6E6', 'Regent St Blue'], 949 | ['AAF0D1', 'Magic Mint'], 950 | ['AB0563', 'Lipstick'], 951 | ['AB3472', 'Royal Heath'], 952 | ['AB917A', 'Sandrift'], 953 | ['ABA0D9', 'Cold Purple'], 954 | ['ABA196', 'Bronco'], 955 | ['AC8A56', 'Limed Oak'], 956 | ['AC91CE', 'East Side'], 957 | ['AC9E22', 'Lemon Ginger'], 958 | ['ACA494', 'Napa'], 959 | ['ACA586', 'Hillary'], 960 | ['ACA59F', 'Cloudy'], 961 | ['ACACAC', 'Silver Chalice'], 962 | ['ACB78E', 'Swamp Green'], 963 | ['ACCBB1', 'Spring Rain'], 964 | ['ACDD4D', 'Conifer'], 965 | ['ACE1AF', 'Celadon'], 966 | ['AD781B', 'Mandalay'], 967 | ['ADBED1', 'Casper'], 968 | ['ADDFAD', 'Moss Green'], 969 | ['ADE6C4', 'Padua'], 970 | ['ADFF2F', 'Green Yellow'], 971 | ['AE4560', 'Hippie Pink'], 972 | ['AE6020', 'Desert'], 973 | ['AE809E', 'Bouquet'], 974 | ['AF4035', 'Medium Carmine'], 975 | ['AF4D43', 'Apple Blossom'], 976 | ['AF593E', 'Brown Rust'], 977 | ['AF8751', 'Driftwood'], 978 | ['AF8F2C', 'Alpine'], 979 | ['AF9F1C', 'Lucky'], 980 | ['AFA09E', 'Martini'], 981 | ['AFB1B8', 'Bombay'], 982 | ['AFBDD9', 'Pigeon Post'], 983 | ['B04C6A', 'Cadillac'], 984 | ['B05D54', 'Matrix'], 985 | ['B05E81', 'Tapestry'], 986 | ['B06608', 'Mai Tai'], 987 | ['B09A95', 'Del Rio'], 988 | ['B0E0E6', 'Powder Blue'], 989 | ['B0E313', 'Inch Worm'], 990 | ['B10000', 'Bright Red'], 991 | ['B14A0B', 'Vesuvius'], 992 | ['B1610B', 'Pumpkin Skin'], 993 | ['B16D52', 'Santa Fe'], 994 | ['B19461', 'Teak'], 995 | ['B1E2C1', 'Fringy Flower'], 996 | ['B1F4E7', 'Ice Cold'], 997 | ['B20931', 'Shiraz'], 998 | ['B2A1EA', 'Biloba Flower'], 999 | ['B32D29', 'Tall Poppy'], 1000 | ['B35213', 'Fiery Orange'], 1001 | ['B38007', 'Hot Toddy'], 1002 | ['B3AF95', 'Taupe Gray'], 1003 | ['B3C110', 'La Rioja'], 1004 | ['B43332', 'Well Read'], 1005 | ['B44668', 'Blush'], 1006 | ['B4CFD3', 'Jungle Mist'], 1007 | ['B57281', 'Turkish Rose'], 1008 | ['B57EDC', 'Lavender'], 1009 | ['B5A27F', 'Mongoose'], 1010 | ['B5B35C', 'Olive Green'], 1011 | ['B5D2CE', 'Jet Stream'], 1012 | ['B5ECDF', 'Cruise'], 1013 | ['B6316C', 'Hibiscus'], 1014 | ['B69D98', 'Thatch'], 1015 | ['B6B095', 'Heathered Gray'], 1016 | ['B6BAA4', 'Eagle'], 1017 | ['B6D1EA', 'Spindle'], 1018 | ['B6D3BF', 'Gum Leaf'], 1019 | ['B7410E', 'Rust'], 1020 | ['B78E5C', 'Muddy Waters'], 1021 | ['B7A214', 'Sahara'], 1022 | ['B7A458', 'Husk'], 1023 | ['B7B1B1', 'Nobel'], 1024 | ['B7C3D0', 'Heather'], 1025 | ['B7F0BE', 'Madang'], 1026 | ['B81104', 'Milano Red'], 1027 | ['B87333', 'Copper'], 1028 | ['B8B56A', 'Gimblet'], 1029 | ['B8C1B1', 'Green Spring'], 1030 | ['B8C25D', 'Celery'], 1031 | ['B8E0F9', 'Sail'], 1032 | ['B94E48', 'Chestnut'], 1033 | ['B95140', 'Crail'], 1034 | ['B98D28', 'Marigold'], 1035 | ['B9C46A', 'Wild Willow'], 1036 | ['B9C8AC', 'Rainee'], 1037 | ['BA0101', 'Guardsman Red'], 1038 | ['BA450C', 'Rock Spray'], 1039 | ['BA6F1E', 'Bourbon'], 1040 | ['BA7F03', 'Pirate Gold'], 1041 | ['BAB1A2', 'Nomad'], 1042 | ['BAC7C9', 'Submarine'], 1043 | ['BAEEF9', 'Charlotte'], 1044 | ['BB3385', 'Medium Red Violet'], 1045 | ['BB8983', 'Brandy Rose'], 1046 | ['BBD009', 'Rio Grande'], 1047 | ['BBD7C1', 'Surf'], 1048 | ['BCC9C2', 'Powder Ash'], 1049 | ['BD5E2E', 'Tuscany'], 1050 | ['BD978E', 'Quicksand'], 1051 | ['BDB1A8', 'Silk'], 1052 | ['BDB2A1', 'Malta'], 1053 | ['BDB3C7', 'Chatelle'], 1054 | ['BDBBD7', 'Lavender Gray'], 1055 | ['BDBDC6', 'French Gray'], 1056 | ['BDC8B3', 'Clay Ash'], 1057 | ['BDC9CE', 'Loblolly'], 1058 | ['BDEDFD', 'French Pass'], 1059 | ['BEA6C3', 'London Hue'], 1060 | ['BEB5B7', 'Pink Swan'], 1061 | ['BEDE0D', 'Fuego'], 1062 | ['BF5500', 'Rose of Sharon'], 1063 | ['BFB8B0', 'Tide'], 1064 | ['BFBED8', 'Blue Haze'], 1065 | ['BFC1C2', 'Silver Sand'], 1066 | ['BFC921', 'Key Lime Pie'], 1067 | ['BFDBE2', 'Ziggurat'], 1068 | ['BFFF00', 'Lime'], 1069 | ['C02B18', 'Thunderbird'], 1070 | ['C04737', 'Mojo'], 1071 | ['C08081', 'Old Rose'], 1072 | ['C0C0C0', 'Silver'], 1073 | ['C0D3B9', 'Pale Leaf'], 1074 | ['C0D8B6', 'Pixie Green'], 1075 | ['C1440E', 'Tia Maria'], 1076 | ['C154C1', 'Fuchsia Pink'], 1077 | ['C1A004', 'Buddha Gold'], 1078 | ['C1B7A4', 'Bison Hide'], 1079 | ['C1BAB0', 'Tea'], 1080 | ['C1BECD', 'Gray Suit'], 1081 | ['C1D7B0', 'Sprout'], 1082 | ['C1F07C', 'Sulu'], 1083 | ['C26B03', 'Indochine'], 1084 | ['C2955D', 'Twine'], 1085 | ['C2BDB6', 'Cotton Seed'], 1086 | ['C2CAC4', 'Pumice'], 1087 | ['C2E8E5', 'Jagged Ice'], 1088 | ['C32148', 'Maroon Flush'], 1089 | ['C3B091', 'Indian Khaki'], 1090 | ['C3BFC1', 'Pale Slate'], 1091 | ['C3C3BD', 'Gray Nickel'], 1092 | ['C3CDE6', 'Periwinkle Gray'], 1093 | ['C3D1D1', 'Tiara'], 1094 | ['C3DDF9', 'Tropical Blue'], 1095 | ['C41E3A', 'Cardinal'], 1096 | ['C45655', 'Fuzzy Wuzzy Brown'], 1097 | ['C45719', 'Orange Roughy'], 1098 | ['C4C4BC', 'Mist Gray'], 1099 | ['C4D0B0', 'Coriander'], 1100 | ['C4F4EB', 'Mint Tulip'], 1101 | ['C54B8C', 'Mulberry'], 1102 | ['C59922', 'Nugget'], 1103 | ['C5994B', 'Tussock'], 1104 | ['C5DBCA', 'Sea Mist'], 1105 | ['C5E17A', 'Yellow Green'], 1106 | ['C62D42', 'Brick Red'], 1107 | ['C6726B', 'Contessa'], 1108 | ['C69191', 'Oriental Pink'], 1109 | ['C6A84B', 'Roti'], 1110 | ['C6C3B5', 'Ash'], 1111 | ['C6C8BD', 'Kangaroo'], 1112 | ['C6E610', 'Las Palmas'], 1113 | ['C7031E', 'Monza'], 1114 | ['C71585', 'Red Violet'], 1115 | ['C7BCA2', 'Coral Reef'], 1116 | ['C7C1FF', 'Melrose'], 1117 | ['C7C4BF', 'Cloud'], 1118 | ['C7C9D5', 'Ghost'], 1119 | ['C7CD90', 'Pine Glade'], 1120 | ['C7DDE5', 'Botticelli'], 1121 | ['C88A65', 'Antique Brass'], 1122 | ['C8A2C8', 'Lilac'], 1123 | ['C8A528', 'Hokey Pokey'], 1124 | ['C8AABF', 'Lily'], 1125 | ['C8B568', 'Laser'], 1126 | ['C8E3D7', 'Edgewater'], 1127 | ['C96323', 'Piper'], 1128 | ['C99415', 'Pizza'], 1129 | ['C9A0DC', 'Light Wisteria'], 1130 | ['C9B29B', 'Rodeo Dust'], 1131 | ['C9B35B', 'Sundance'], 1132 | ['C9B93B', 'Earls Green'], 1133 | ['C9C0BB', 'Silver Rust'], 1134 | ['C9D9D2', 'Conch'], 1135 | ['C9FFA2', 'Reef'], 1136 | ['C9FFE5', 'Aero Blue'], 1137 | ['CA3435', 'Flush Mahogany'], 1138 | ['CABB48', 'Turmeric'], 1139 | ['CADCD4', 'Paris White'], 1140 | ['CAE00D', 'Bitter Lemon'], 1141 | ['CAE6DA', 'Skeptic'], 1142 | ['CB8FA9', 'Viola'], 1143 | ['CBCAB6', 'Foggy Gray'], 1144 | ['CBD3B0', 'Green Mist'], 1145 | ['CBDBD6', 'Nebula'], 1146 | ['CC3333', 'Persian Red'], 1147 | ['CC5500', 'Burnt Orange'], 1148 | ['CC7722', 'Ochre'], 1149 | ['CC8899', 'Puce'], 1150 | ['CCCAA8', 'Thistle Green'], 1151 | ['CCCCFF', 'Periwinkle'], 1152 | ['CCFF00', 'Electric Lime'], 1153 | ['CD5700', 'Tenn'], 1154 | ['CD5C5C', 'Chestnut Rose'], 1155 | ['CD8429', 'Brandy Punch'], 1156 | ['CDF4FF', 'Onahau'], 1157 | ['CEB98F', 'Sorrell Brown'], 1158 | ['CEBABA', 'Cold Turkey'], 1159 | ['CEC291', 'Yuma'], 1160 | ['CEC7A7', 'Chino'], 1161 | ['CFA39D', 'Eunry'], 1162 | ['CFB53B', 'Old Gold'], 1163 | ['CFDCCF', 'Tasman'], 1164 | ['CFE5D2', 'Surf Crest'], 1165 | ['CFF9F3', 'Humming Bird'], 1166 | ['CFFAF4', 'Scandal'], 1167 | ['D05F04', 'Red Stage'], 1168 | ['D06DA1', 'Hopbush'], 1169 | ['D07D12', 'Meteor'], 1170 | ['D0BEF8', 'Perfume'], 1171 | ['D0C0E5', 'Prelude'], 1172 | ['D0F0C0', 'Tea Green'], 1173 | ['D18F1B', 'Geebung'], 1174 | ['D1BEA8', 'Vanilla'], 1175 | ['D1C6B4', 'Soft Amber'], 1176 | ['D1D2CA', 'Celeste'], 1177 | ['D1D2DD', 'Mischka'], 1178 | ['D1E231', 'Pear'], 1179 | ['D2691E', 'Hot Cinnamon'], 1180 | ['D27D46', 'Raw Sienna'], 1181 | ['D29EAA', 'Careys Pink'], 1182 | ['D2B48C', 'Tan'], 1183 | ['D2DA97', 'Deco'], 1184 | ['D2F6DE', 'Blue Romance'], 1185 | ['D2F8B0', 'Gossip'], 1186 | ['D3CBBA', 'Sisal'], 1187 | ['D3CDC5', 'Swirl'], 1188 | ['D47494', 'Charm'], 1189 | ['D4B6AF', 'Clam Shell'], 1190 | ['D4BF8D', 'Straw'], 1191 | ['D4C4A8', 'Akaroa'], 1192 | ['D4CD16', 'Bird Flower'], 1193 | ['D4D7D9', 'Iron'], 1194 | ['D4DFE2', 'Geyser'], 1195 | ['D4E2FC', 'Hawkes Blue'], 1196 | ['D54600', 'Grenadier'], 1197 | ['D591A4', 'Can Can'], 1198 | ['D59A6F', 'Whiskey'], 1199 | ['D5D195', 'Winter Hazel'], 1200 | ['D5F6E3', 'Granny Apple'], 1201 | ['D69188', 'My Pink'], 1202 | ['D6C562', 'Tacha'], 1203 | ['D6CEF6', 'Moon Raker'], 1204 | ['D6D6D1', 'Quill Gray'], 1205 | ['D6FFDB', 'Snowy Mint'], 1206 | ['D7837F', 'New York Pink'], 1207 | ['D7C498', 'Pavlova'], 1208 | ['D7D0FF', 'Fog'], 1209 | ['D84437', 'Valencia'], 1210 | ['D87C63', 'Japonica'], 1211 | ['D8BFD8', 'Thistle'], 1212 | ['D8C2D5', 'Maverick'], 1213 | ['D8FCFA', 'Foam'], 1214 | ['D94972', 'Cabaret'], 1215 | ['D99376', 'Burning Sand'], 1216 | ['D9B99B', 'Cameo'], 1217 | ['D9D6CF', 'Timberwolf'], 1218 | ['D9DCC1', 'Tana'], 1219 | ['D9E4F5', 'Link Water'], 1220 | ['D9F7FF', 'Mabel'], 1221 | ['DA3287', 'Cerise'], 1222 | ['DA5B38', 'Flame Pea'], 1223 | ['DA6304', 'Bamboo'], 1224 | ['DA6A41', 'Red Damask'], 1225 | ['DA70D6', 'Orchid'], 1226 | ['DA8A67', 'Copperfield'], 1227 | ['DAA520', 'Golden Grass'], 1228 | ['DAECD6', 'Zanah'], 1229 | ['DAF4F0', 'Iceberg'], 1230 | ['DAFAFF', 'Oyster Bay'], 1231 | ['DB5079', 'Cranberry'], 1232 | ['DB9690', 'Petite Orchid'], 1233 | ['DB995E', 'Di Serria'], 1234 | ['DBDBDB', 'Alto'], 1235 | ['DBFFF8', 'Frosted Mint'], 1236 | ['DC143C', 'Crimson'], 1237 | ['DC4333', 'Punch'], 1238 | ['DCB20C', 'Galliano'], 1239 | ['DCB4BC', 'Blossom'], 1240 | ['DCD747', 'Wattle'], 1241 | ['DCD9D2', 'Westar'], 1242 | ['DCDDCC', 'Moon Mist'], 1243 | ['DCEDB4', 'Caper'], 1244 | ['DCF0EA', 'Swans Down'], 1245 | ['DDD6D5', 'Swiss Coffee'], 1246 | ['DDF9F1', 'White Ice'], 1247 | ['DE3163', 'Cerise Red'], 1248 | ['DE6360', 'Roman'], 1249 | ['DEA681', 'Tumbleweed'], 1250 | ['DEBA13', 'Gold Tips'], 1251 | ['DEC196', 'Brandy'], 1252 | ['DECBC6', 'Wafer'], 1253 | ['DED4A4', 'Sapling'], 1254 | ['DED717', 'Barberry'], 1255 | ['DEE5C0', 'Beryl Green'], 1256 | ['DEF5FF', 'Pattens Blue'], 1257 | ['DF73FF', 'Heliotrope'], 1258 | ['DFBE6F', 'Apache'], 1259 | ['DFCD6F', 'Chenin'], 1260 | ['DFCFDB', 'Lola'], 1261 | ['DFECDA', 'Willow Brook'], 1262 | ['DFFF00', 'Chartreuse Yellow'], 1263 | ['E0B0FF', 'Mauve'], 1264 | ['E0B646', 'Anzac'], 1265 | ['E0B974', 'Harvest Gold'], 1266 | ['E0C095', 'Calico'], 1267 | ['E0FFFF', 'Baby Blue'], 1268 | ['E16865', 'Sunglo'], 1269 | ['E1BC64', 'Equator'], 1270 | ['E1C0C8', 'Pink Flare'], 1271 | ['E1E6D6', 'Periglacial Blue'], 1272 | ['E1EAD4', 'Kidnapper'], 1273 | ['E1F6E8', 'Tara'], 1274 | ['E25465', 'Mandy'], 1275 | ['E2725B', 'Terracotta'], 1276 | ['E28913', 'Golden Bell'], 1277 | ['E292C0', 'Shocking'], 1278 | ['E29418', 'Dixie'], 1279 | ['E29CD2', 'Light Orchid'], 1280 | ['E2D8ED', 'Snuff'], 1281 | ['E2EBED', 'Mystic'], 1282 | ['E2F3EC', 'Apple Green'], 1283 | ['E30B5C', 'Razzmatazz'], 1284 | ['E32636', 'Alizarin Crimson'], 1285 | ['E34234', 'Cinnabar'], 1286 | ['E3BEBE', 'Cavern Pink'], 1287 | ['E3F5E1', 'Peppermint'], 1288 | ['E3F988', 'Mindaro'], 1289 | ['E47698', 'Deep Blush'], 1290 | ['E49B0F', 'Gamboge'], 1291 | ['E4C2D5', 'Melanie'], 1292 | ['E4CFDE', 'Twilight'], 1293 | ['E4D1C0', 'Bone'], 1294 | ['E4D422', 'Sunflower'], 1295 | ['E4D5B7', 'Grain Brown'], 1296 | ['E4D69B', 'Zombie'], 1297 | ['E4F6E7', 'Frostee'], 1298 | ['E4FFD1', 'Snow Flurry'], 1299 | ['E52B50', 'Amaranth'], 1300 | ['E5841B', 'Zest'], 1301 | ['E5CCC9', 'Dust Storm'], 1302 | ['E5D7BD', 'Stark White'], 1303 | ['E5D8AF', 'Hampton'], 1304 | ['E5E0E1', 'Bon Jour'], 1305 | ['E5E5E5', 'Mercury'], 1306 | ['E5F9F6', 'Polar'], 1307 | ['E64E03', 'Trinidad'], 1308 | ['E6BE8A', 'Gold Sand'], 1309 | ['E6BEA5', 'Cashmere'], 1310 | ['E6D7B9', 'Double Spanish White'], 1311 | ['E6E4D4', 'Satin Linen'], 1312 | ['E6F2EA', 'Harp'], 1313 | ['E6F8F3', 'Off Green'], 1314 | ['E6FFE9', 'Hint of Green'], 1315 | ['E6FFFF', 'Tranquil'], 1316 | ['E77200', 'Mango Tango'], 1317 | ['E7730A', 'Christine'], 1318 | ['E79F8C', 'Tonys Pink'], 1319 | ['E79FC4', 'Kobi'], 1320 | ['E7BCB4', 'Rose Fog'], 1321 | ['E7BF05', 'Corn'], 1322 | ['E7CD8C', 'Putty'], 1323 | ['E7ECE6', 'Gray Nurse'], 1324 | ['E7F8FF', 'Lily White'], 1325 | ['E7FEFF', 'Bubbles'], 1326 | ['E89928', 'Fire Bush'], 1327 | ['E8B9B3', 'Shilo'], 1328 | ['E8E0D5', 'Pearl Bush'], 1329 | ['E8EBE0', 'Green White'], 1330 | ['E8F1D4', 'Chrome White'], 1331 | ['E8F2EB', 'Gin'], 1332 | ['E8F5F2', 'Aqua Squeeze'], 1333 | ['E96E00', 'Clementine'], 1334 | ['E97451', 'Burnt Sienna'], 1335 | ['E97C07', 'Tahiti Gold'], 1336 | ['E9CECD', 'Oyster Pink'], 1337 | ['E9D75A', 'Confetti'], 1338 | ['E9E3E3', 'Ebb'], 1339 | ['E9F8ED', 'Ottoman'], 1340 | ['E9FFFD', 'Clear Day'], 1341 | ['EA88A8', 'Carissma'], 1342 | ['EAAE69', 'Porsche'], 1343 | ['EAB33B', 'Tulip Tree'], 1344 | ['EAC674', 'Rob Roy'], 1345 | ['EADAB8', 'Raffia'], 1346 | ['EAE8D4', 'White Rock'], 1347 | ['EAF6EE', 'Panache'], 1348 | ['EAF6FF', 'Solitude'], 1349 | ['EAF9F5', 'Aqua Spring'], 1350 | ['EAFFFE', 'Dew'], 1351 | ['EB9373', 'Apricot'], 1352 | ['EBC2AF', 'Zinnwaldite'], 1353 | ['ECA927', 'Fuel Yellow'], 1354 | ['ECC54E', 'Ronchi'], 1355 | ['ECC7EE', 'French Lilac'], 1356 | ['ECCDB9', 'Just Right'], 1357 | ['ECE090', 'Wild Rice'], 1358 | ['ECEBBD', 'Fall Green'], 1359 | ['ECEBCE', 'Aths Special'], 1360 | ['ECF245', 'Starship'], 1361 | ['ED0A3F', 'Red Ribbon'], 1362 | ['ED7A1C', 'Tango'], 1363 | ['ED9121', 'Carrot Orange'], 1364 | ['ED989E', 'Sea Pink'], 1365 | ['EDB381', 'Tacao'], 1366 | ['EDC9AF', 'Desert Sand'], 1367 | ['EDCDAB', 'Pancho'], 1368 | ['EDDCB1', 'Chamois'], 1369 | ['EDEA99', 'Primrose'], 1370 | ['EDF5DD', 'Frost'], 1371 | ['EDF5F5', 'Aqua Haze'], 1372 | ['EDF6FF', 'Zumthor'], 1373 | ['EDF9F1', 'Narvik'], 1374 | ['EDFC84', 'Honeysuckle'], 1375 | ['EE82EE', 'Lavender Magenta'], 1376 | ['EEC1BE', 'Beauty Bush'], 1377 | ['EED794', 'Chalky'], 1378 | ['EED9C4', 'Almond'], 1379 | ['EEDC82', 'Flax'], 1380 | ['EEDEDA', 'Bizarre'], 1381 | ['EEE3AD', 'Double Colonial White'], 1382 | ['EEEEE8', 'Cararra'], 1383 | ['EEEF78', 'Manz'], 1384 | ['EEF0C8', 'Tahuna Sands'], 1385 | ['EEF0F3', 'Athens Gray'], 1386 | ['EEF3C3', 'Tusk'], 1387 | ['EEF4DE', 'Loafer'], 1388 | ['EEF6F7', 'Catskill White'], 1389 | ['EEFDFF', 'Twilight Blue'], 1390 | ['EEFF9A', 'Jonquil'], 1391 | ['EEFFE2', 'Rice Flower'], 1392 | ['EF863F', 'Jaffa'], 1393 | ['EFEFEF', 'Gallery'], 1394 | ['EFF2F3', 'Porcelain'], 1395 | ['F091A9', 'Mauvelous'], 1396 | ['F0D52D', 'Golden Dream'], 1397 | ['F0DB7D', 'Golden Sand'], 1398 | ['F0DC82', 'Buff'], 1399 | ['F0E2EC', 'Prim'], 1400 | ['F0E68C', 'Khaki'], 1401 | ['F0EEFD', 'Selago'], 1402 | ['F0EEFF', 'Titan White'], 1403 | ['F0F8FF', 'Alice Blue'], 1404 | ['F0FCEA', 'Feta'], 1405 | ['F18200', 'Gold Drop'], 1406 | ['F19BAB', 'Wewak'], 1407 | ['F1E788', 'Sahara Sand'], 1408 | ['F1E9D2', 'Parchment'], 1409 | ['F1E9FF', 'Blue Chalk'], 1410 | ['F1EEC1', 'Mint Julep'], 1411 | ['F1F1F1', 'Seashell'], 1412 | ['F1F7F2', 'Saltpan'], 1413 | ['F1FFAD', 'Tidal'], 1414 | ['F1FFC8', 'Chiffon'], 1415 | ['F2552A', 'Flamingo'], 1416 | ['F28500', 'Tangerine'], 1417 | ['F2C3B2', 'Mandys Pink'], 1418 | ['F2F2F2', 'Concrete'], 1419 | ['F2FAFA', 'Black Squeeze'], 1420 | ['F34723', 'Pomegranate'], 1421 | ['F3AD16', 'Buttercup'], 1422 | ['F3D69D', 'New Orleans'], 1423 | ['F3D9DF', 'Vanilla Ice'], 1424 | ['F3E7BB', 'Sidecar'], 1425 | ['F3E9E5', 'Dawn Pink'], 1426 | ['F3EDCF', 'Wheatfield'], 1427 | ['F3FB62', 'Canary'], 1428 | ['F3FBD4', 'Orinoco'], 1429 | ['F3FFD8', 'Carla'], 1430 | ['F400A1', 'Hollywood Cerise'], 1431 | ['F4A460', 'Sandy brown'], 1432 | ['F4C430', 'Saffron'], 1433 | ['F4D81C', 'Ripe Lemon'], 1434 | ['F4EBD3', 'Janna'], 1435 | ['F4F2EE', 'Pampas'], 1436 | ['F4F4F4', 'Wild Sand'], 1437 | ['F4F8FF', 'Zircon'], 1438 | ['F57584', 'Froly'], 1439 | ['F5C85C', 'Cream Can'], 1440 | ['F5C999', 'Manhattan'], 1441 | ['F5D5A0', 'Maize'], 1442 | ['F5DEB3', 'Wheat'], 1443 | ['F5E7A2', 'Sandwisp'], 1444 | ['F5E7E2', 'Pot Pourri'], 1445 | ['F5E9D3', 'Albescent White'], 1446 | ['F5EDEF', 'Soft Peach'], 1447 | ['F5F3E5', 'Ecru White'], 1448 | ['F5F5DC', 'Beige'], 1449 | ['F5FB3D', 'Golden Fizz'], 1450 | ['F5FFBE', 'Australian Mint'], 1451 | ['F64A8A', 'French Rose'], 1452 | ['F653A6', 'Brilliant Rose'], 1453 | ['F6A4C9', 'Illusion'], 1454 | ['F6F0E6', 'Merino'], 1455 | ['F6F7F7', 'Black Haze'], 1456 | ['F6FFDC', 'Spring Sun'], 1457 | ['F7468A', 'Violet Red'], 1458 | ['F77703', 'Chilean Fire'], 1459 | ['F77FBE', 'Persian Pink'], 1460 | ['F7B668', 'Rajah'], 1461 | ['F7C8DA', 'Azalea'], 1462 | ['F7DBE6', 'We Peep'], 1463 | ['F7F2E1', 'Quarter Spanish White'], 1464 | ['F7F5FA', 'Whisper'], 1465 | ['F7FAF7', 'Snow Drift'], 1466 | ['F8B853', 'Casablanca'], 1467 | ['F8C3DF', 'Chantilly'], 1468 | ['F8D9E9', 'Cherub'], 1469 | ['F8DB9D', 'Marzipan'], 1470 | ['F8DD5C', 'Energy Yellow'], 1471 | ['F8E4BF', 'Givry'], 1472 | ['F8F0E8', 'White Linen'], 1473 | ['F8F4FF', 'Magnolia'], 1474 | ['F8F6F1', 'Spring Wood'], 1475 | ['F8F7DC', 'Coconut Cream'], 1476 | ['F8F7FC', 'White Lilac'], 1477 | ['F8F8F7', 'Desert Storm'], 1478 | ['F8F99C', 'Texas'], 1479 | ['F8FACD', 'Corn Field'], 1480 | ['F8FDD3', 'Mimosa'], 1481 | ['F95A61', 'Carnation'], 1482 | ['F9BF58', 'Saffron Mango'], 1483 | ['F9E0ED', 'Carousel Pink'], 1484 | ['F9E4BC', 'Dairy Cream'], 1485 | ['F9E663', 'Portica'], 1486 | ['F9EAF3', 'Amour'], 1487 | ['F9F8E4', 'Rum Swizzle'], 1488 | ['F9FF8B', 'Dolly'], 1489 | ['F9FFF6', 'Sugar Cane'], 1490 | ['FA7814', 'Ecstasy'], 1491 | ['FA9D5A', 'Tan Hide'], 1492 | ['FAD3A2', 'Corvette'], 1493 | ['FADFAD', 'Peach Yellow'], 1494 | ['FAE600', 'Turbo'], 1495 | ['FAEAB9', 'Astra'], 1496 | ['FAECCC', 'Champagne'], 1497 | ['FAF0E6', 'Linen'], 1498 | ['FAF3F0', 'Fantasy'], 1499 | ['FAF7D6', 'Citrine White'], 1500 | ['FAFAFA', 'Alabaster'], 1501 | ['FAFDE4', 'Hint of Yellow'], 1502 | ['FAFFA4', 'Milan'], 1503 | ['FB607F', 'Brink Pink'], 1504 | ['FB8989', 'Geraldine'], 1505 | ['FBA0E3', 'Lavender Rose'], 1506 | ['FBA129', 'Sea Buckthorn'], 1507 | ['FBAC13', 'Sun'], 1508 | ['FBAED2', 'Lavender Pink'], 1509 | ['FBB2A3', 'Rose Bud'], 1510 | ['FBBEDA', 'Cupid'], 1511 | ['FBCCE7', 'Classic Rose'], 1512 | ['FBCEB1', 'Apricot Peach'], 1513 | ['FBE7B2', 'Banana Mania'], 1514 | ['FBE870', 'Marigold Yellow'], 1515 | ['FBE96C', 'Festival'], 1516 | ['FBEA8C', 'Sweet Corn'], 1517 | ['FBEC5D', 'Candy Corn'], 1518 | ['FBF9F9', 'Hint of Red'], 1519 | ['FBFFBA', 'Shalimar'], 1520 | ['FC0FC0', 'Shocking Pink'], 1521 | ['FC80A5', 'Tickle Me Pink'], 1522 | ['FC9C1D', 'Tree Poppy'], 1523 | ['FCC01E', 'Lightning Yellow'], 1524 | ['FCD667', 'Goldenrod'], 1525 | ['FCD917', 'Candlelight'], 1526 | ['FCDA98', 'Cherokee'], 1527 | ['FCF4D0', 'Double Pearl Lusta'], 1528 | ['FCF4DC', 'Pearl Lusta'], 1529 | ['FCF8F7', 'Vista White'], 1530 | ['FCFBF3', 'Bianca'], 1531 | ['FCFEDA', 'Moon Glow'], 1532 | ['FCFFE7', 'China Ivory'], 1533 | ['FCFFF9', 'Ceramic'], 1534 | ['FD0E35', 'Torch Red'], 1535 | ['FD5B78', 'Wild Watermelon'], 1536 | ['FD7B33', 'Crusta'], 1537 | ['FD7C07', 'Sorbus'], 1538 | ['FD9FA2', 'Sweet Pink'], 1539 | ['FDD5B1', 'Light Apricot'], 1540 | ['FDD7E4', 'Pig Pink'], 1541 | ['FDE1DC', 'Cinderella'], 1542 | ['FDE295', 'Golden Glow'], 1543 | ['FDE910', 'Lemon'], 1544 | ['FDF5E6', 'Old Lace'], 1545 | ['FDF6D3', 'Half Colonial White'], 1546 | ['FDF7AD', 'Drover'], 1547 | ['FDFEB8', 'Pale Prim'], 1548 | ['FDFFD5', 'Cumulus'], 1549 | ['FE28A2', 'Persian Rose'], 1550 | ['FE4C40', 'Sunset Orange'], 1551 | ['FE6F5E', 'Bittersweet'], 1552 | ['FE9D04', 'California'], 1553 | ['FEA904', 'Yellow Sea'], 1554 | ['FEBAAD', 'Melon'], 1555 | ['FED33C', 'Bright Sun'], 1556 | ['FED85D', 'Dandelion'], 1557 | ['FEDB8D', 'Salomie'], 1558 | ['FEE5AC', 'Cape Honey'], 1559 | ['FEEBF3', 'Remy'], 1560 | ['FEEFCE', 'Oasis'], 1561 | ['FEF0EC', 'Bridesmaid'], 1562 | ['FEF2C7', 'Beeswax'], 1563 | ['FEF3D8', 'Bleach White'], 1564 | ['FEF4CC', 'Pipi'], 1565 | ['FEF4DB', 'Half Spanish White'], 1566 | ['FEF4F8', 'Wisp Pink'], 1567 | ['FEF5F1', 'Provincial Pink'], 1568 | ['FEF7DE', 'Half Dutch White'], 1569 | ['FEF8E2', 'Solitaire'], 1570 | ['FEF8FF', 'White Pointer'], 1571 | ['FEF9E3', 'Off Yellow'], 1572 | ['FEFCED', 'Orange White'], 1573 | ['FF0000', 'Red'], 1574 | ['FF007F', 'Rose'], 1575 | ['FF00CC', 'Purple Pizzazz'], 1576 | ['FF00FF', 'Magenta / Fuchsia'], 1577 | ['FF2400', 'Scarlet'], 1578 | ['FF3399', 'Wild Strawberry'], 1579 | ['FF33CC', 'Razzle Dazzle Rose'], 1580 | ['FF355E', 'Radical Red'], 1581 | ['FF3F34', 'Red Orange'], 1582 | ['FF4040', 'Coral Red'], 1583 | ['FF4D00', 'Vermilion'], 1584 | ['FF4F00', 'International Orange'], 1585 | ['FF6037', 'Outrageous Orange'], 1586 | ['FF6600', 'Blaze Orange'], 1587 | ['FF66FF', 'Pink Flamingo'], 1588 | ['FF681F', 'Orange'], 1589 | ['FF69B4', 'Hot Pink'], 1590 | ['FF6B53', 'Persimmon'], 1591 | ['FF6FFF', 'Blush Pink'], 1592 | ['FF7034', 'Burning Orange'], 1593 | ['FF7518', 'Pumpkin'], 1594 | ['FF7D07', 'Flamenco'], 1595 | ['FF7F00', 'Flush Orange'], 1596 | ['FF7F50', 'Coral'], 1597 | ['FF8C69', 'Salmon'], 1598 | ['FF9000', 'Pizazz'], 1599 | ['FF910F', 'West Side'], 1600 | ['FF91A4', 'Pink Salmon'], 1601 | ['FF9933', 'Neon Carrot'], 1602 | ['FF9966', 'Atomic Tangerine'], 1603 | ['FF9980', 'Vivid Tangerine'], 1604 | ['FF9E2C', 'Sunshade'], 1605 | ['FFA000', 'Orange Peel'], 1606 | ['FFA194', 'Mona Lisa'], 1607 | ['FFA500', 'Web Orange'], 1608 | ['FFA6C9', 'Carnation Pink'], 1609 | ['FFAB81', 'Hit Pink'], 1610 | ['FFAE42', 'Yellow Orange'], 1611 | ['FFB0AC', 'Cornflower Lilac'], 1612 | ['FFB1B3', 'Sundown'], 1613 | ['FFB31F', 'My Sin'], 1614 | ['FFB555', 'Texas Rose'], 1615 | ['FFB7D5', 'Cotton Candy'], 1616 | ['FFB97B', 'Macaroni and Cheese'], 1617 | ['FFBA00', 'Selective Yellow'], 1618 | ['FFBD5F', 'Koromiko'], 1619 | ['FFBF00', 'Amber'], 1620 | ['FFC0A8', 'Wax Flower'], 1621 | ['FFC0CB', 'Pink'], 1622 | ['FFC3C0', 'Your Pink'], 1623 | ['FFC901', 'Supernova'], 1624 | ['FFCBA4', 'Flesh'], 1625 | ['FFCC33', 'Sunglow'], 1626 | ['FFCC5C', 'Golden Tainoi'], 1627 | ['FFCC99', 'Peach Orange'], 1628 | ['FFCD8C', 'Chardonnay'], 1629 | ['FFD1DC', 'Pastel Pink'], 1630 | ['FFD2B7', 'Romantic'], 1631 | ['FFD38C', 'Grandis'], 1632 | ['FFD700', 'Gold'], 1633 | ['FFD800', 'School bus Yellow'], 1634 | ['FFD8D9', 'Cosmos'], 1635 | ['FFDB58', 'Mustard'], 1636 | ['FFDCD6', 'Peach Schnapps'], 1637 | ['FFDDAF', 'Caramel'], 1638 | ['FFDDCD', 'Tuft Bush'], 1639 | ['FFDDCF', 'Watusi'], 1640 | ['FFDDF4', 'Pink Lace'], 1641 | ['FFDEAD', 'Navajo White'], 1642 | ['FFDEB3', 'Frangipani'], 1643 | ['FFE1DF', 'Pippin'], 1644 | ['FFE1F2', 'Pale Rose'], 1645 | ['FFE2C5', 'Negroni'], 1646 | ['FFE5A0', 'Cream Brulee'], 1647 | ['FFE5B4', 'Peach'], 1648 | ['FFE6C7', 'Tequila'], 1649 | ['FFE772', 'Kournikova'], 1650 | ['FFEAC8', 'Sandy Beach'], 1651 | ['FFEAD4', 'Karry'], 1652 | ['FFEC13', 'Broom'], 1653 | ['FFEDBC', 'Colonial White'], 1654 | ['FFEED8', 'Derby'], 1655 | ['FFEFA1', 'Vis Vis'], 1656 | ['FFEFC1', 'Egg White'], 1657 | ['FFEFD5', 'Papaya Whip'], 1658 | ['FFEFEC', 'Fair Pink'], 1659 | ['FFF0DB', 'Peach Cream'], 1660 | ['FFF0F5', 'Lavender blush'], 1661 | ['FFF14F', 'Gorse'], 1662 | ['FFF1B5', 'Buttermilk'], 1663 | ['FFF1D8', 'Pink Lady'], 1664 | ['FFF1EE', 'Forget Me Not'], 1665 | ['FFF1F9', 'Tutu'], 1666 | ['FFF39D', 'Picasso'], 1667 | ['FFF3F1', 'Chardon'], 1668 | ['FFF46E', 'Paris Daisy'], 1669 | ['FFF4CE', 'Barley White'], 1670 | ['FFF4DD', 'Egg Sour'], 1671 | ['FFF4E0', 'Sazerac'], 1672 | ['FFF4E8', 'Serenade'], 1673 | ['FFF4F3', 'Chablis'], 1674 | ['FFF5EE', 'Seashell Peach'], 1675 | ['FFF5F3', 'Sauvignon'], 1676 | ['FFF6D4', 'Milk Punch'], 1677 | ['FFF6DF', 'Varden'], 1678 | ['FFF6F5', 'Rose White'], 1679 | ['FFF8D1', 'Baja White'], 1680 | ['FFF9E2', 'Gin Fizz'], 1681 | ['FFF9E6', 'Early Dawn'], 1682 | ['FFFACD', 'Lemon Chiffon'], 1683 | ['FFFAF4', 'Bridal Heath'], 1684 | ['FFFBDC', 'Scotch Mist'], 1685 | ['FFFBF9', 'Soapstone'], 1686 | ['FFFC99', 'Witch Haze'], 1687 | ['FFFCEA', 'Buttery White'], 1688 | ['FFFCEE', 'Island Spice'], 1689 | ['FFFDD0', 'Cream'], 1690 | ['FFFDE6', 'Chilean Heath'], 1691 | ['FFFDE8', 'Travertine'], 1692 | ['FFFDF3', 'Orchid White'], 1693 | ['FFFDF4', 'Quarter Pearl Lusta'], 1694 | ['FFFEE1', 'Half and Half'], 1695 | ['FFFEEC', 'Apricot White'], 1696 | ['FFFEF0', 'Rice Cake'], 1697 | ['FFFEF6', 'Black White'], 1698 | ['FFFEFD', 'Romance'], 1699 | ['FFFF00', 'Yellow'], 1700 | ['FFFF66', 'Laser Lemon'], 1701 | ['FFFF99', 'Pale Canary'], 1702 | ['FFFFB4', 'Portafino'], 1703 | ['FFFFF0', 'Ivory'], 1704 | ['FFFFFF', 'White'], 1705 | ], 1706 | } 1707 | 1708 | ntc.init() 1709 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import { createStore } from './store' 3 | import { createRouter } from './router' 4 | import App from './App.vue' 5 | import '@/assets/main.css' 6 | import '@fortawesome/fontawesome-free/css/all.min.css' 7 | import VueGtag from 'vue-gtag' 8 | import Notifications from '@kyvg/vue3-notification' 9 | import FloatingVue from 'floating-vue' 10 | import 'floating-vue/dist/style.css' 11 | import VueHighlightJS from 'vue3-highlightjs' 12 | // import 'highlight.js/styles/atom-one-dark.css' 13 | import { createClient } from '@supabase/supabase-js' 14 | import { createHead, VueHeadMixin } from '@unhead/vue' 15 | 16 | const router = createRouter() 17 | const store = createStore(router) 18 | 19 | const app = createApp(App) 20 | 21 | app.use(store) 22 | app.use(router) 23 | app.use(FloatingVue, { 24 | container: '#root', 25 | }) 26 | app.use(Notifications) 27 | 28 | const head = createHead() 29 | app.mixin(VueHeadMixin) 30 | app.use(head) 31 | app.use(VueHighlightJS) 32 | 33 | app.use(VueGtag, { 34 | config: { id: 'G-RKC3YFFTTL' }, 35 | }) 36 | 37 | const supabase = createClient( 38 | 'https://tsmcdgolhhtzzotghypz.supabase.co', 39 | 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTY0MTQ2MDU1MiwiZXhwIjoxOTU3MDM2NTUyfQ.wKYvxV79TzOi82vwodfZjJqf2IRR7hYhxaWyj8cA-lk' 40 | ) 41 | app.config.globalProperties.$supabase = supabase 42 | 43 | supabase.auth.onAuthStateChange((event, session) => { 44 | const user = session?.user 45 | store.commit('setUser', user) 46 | }) 47 | 48 | const theme = localStorage.getItem('theme') 49 | if (theme === 'light') { 50 | store.commit('setTheme', 'light') 51 | } else { 52 | store.commit('setTheme', 'dark') 53 | } 54 | 55 | router.beforeEach((to, from, next) => { 56 | if ( 57 | to.matched.some(record => record.meta.auth) && 58 | !store.getters.isLoggedIn 59 | ) { 60 | // alert('You need to be logged in to access this page') 61 | next('/') 62 | } else { 63 | next() 64 | } 65 | }) 66 | 67 | app.mount('#app') 68 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import { createRouter as _createRouter, createWebHistory } from 'vue-router' 2 | import routes from './routes' 3 | // import Meta from 'vue-meta' 4 | 5 | // Vue.use(Meta) 6 | 7 | export function createRouter() { 8 | return new _createRouter({ 9 | history: createWebHistory(), 10 | scrollBehavior(to, from, savedPosition) { 11 | if (savedPosition) { 12 | return savedPosition 13 | } 14 | return { x: 0, y: 0 } 15 | }, 16 | routes, 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/router/routes.js: -------------------------------------------------------------------------------- 1 | import NotFound404 from '@/components/NotFound404.vue' 2 | import BaseSelect from '@/components/BaseSelect.vue' 3 | import MyColors from '@/components/MyColors.vue' 4 | import CommunityShades from '@/components/CommunityShades.vue' 5 | 6 | export default [ 7 | { 8 | path: '/:pathMatch(.*)*', 9 | name: '404', 10 | meta: { 11 | auth: false, 12 | }, 13 | component: NotFound404, 14 | }, 15 | { 16 | path: '/', 17 | name: 'shade', 18 | meta: { 19 | auth: false, 20 | title: 'Shade', 21 | }, 22 | component: BaseSelect, 23 | }, 24 | { 25 | path: '/my-colors', 26 | name: 'my-colors', 27 | meta: { 28 | auth: true, 29 | title: 'My colors', 30 | }, 31 | component: MyColors, 32 | }, 33 | { 34 | path: '/community/shades', 35 | name: 'community-shades', 36 | meta: { 37 | auth: false, 38 | title: 'Community shades', 39 | }, 40 | props: { 41 | mode: 'all', 42 | }, 43 | component: CommunityShades, 44 | }, 45 | { 46 | path: '/community/my-liked-shades', 47 | name: 'my-liked-shades', 48 | meta: { 49 | auth: false, 50 | title: 'My liked shades', 51 | }, 52 | props: { 53 | mode: 'my-liked', 54 | }, 55 | component: CommunityShades, 56 | }, 57 | ] 58 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore as _createStore } from 'vuex' 2 | 3 | export function createStore(router) { 4 | return _createStore({ 5 | state: { 6 | get route() { 7 | return router.currentRoute.value 8 | }, 9 | theme: 'light', 10 | user: {}, 11 | loginFeatures: true, 12 | cache: {}, 13 | originShade: {}, 14 | }, 15 | mutations: { 16 | setTheme(state, theme) { 17 | state.theme = theme 18 | }, 19 | setUser(state, user) { 20 | state.user = user 21 | }, 22 | setCacheValue(state, { key, value }) { 23 | state.cache[key] = { 24 | value, 25 | createdAt: Date.now(), 26 | } 27 | }, 28 | setOriginShade(state, shade) { 29 | state.originShade = shade 30 | }, 31 | }, 32 | actions: { 33 | fromCache({ state }, { key, expiry }) { 34 | return new Promise(resolve => { 35 | if (!state.cache[key]) { 36 | return resolve({ error: "doesn't exist" }) 37 | } 38 | if (!state.cache[key]?.value) { 39 | return resolve({ error: 'empty' }) 40 | } 41 | if (state.cache[key]?.createdAt < expiry) { 42 | return resolve({ error: 'expired' }) 43 | } 44 | 45 | return resolve({ data: state.cache[key].value }) 46 | }) 47 | }, 48 | }, 49 | getters: { 50 | theme: state => state.theme, 51 | user: state => state.user, 52 | cache: state => state.cache, 53 | isLoggedIn: state => { 54 | if (!state.user) { 55 | return false 56 | } 57 | return Object.entries(state.user).length > 0 58 | }, 59 | loginFeatures: state => state.loginFeatures, 60 | originShade: state => state.originShade, 61 | }, 62 | }) 63 | } 64 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | module.exports = { 3 | content: ['./public/**/*.html', './src/**/*.{js,jsx,ts,tsx,vue}'], 4 | theme: { 5 | container: { 6 | center: true, 7 | }, 8 | extend: { 9 | screens: { 10 | '2xl': '1536px', 11 | }, 12 | opacity: { 13 | 10: 0.1, 14 | 20: 0.2, 15 | }, 16 | colors: { 17 | theme: { 18 | DEFAULT: 'var(--color-theme)', 19 | lighter: 'var(--color-theme-lighter)', 20 | darker: 'var(--color-theme-darker)', 21 | reverse: 'var(--color-theme-reverse)', 22 | 100: 'var(--color-theme-100)', 23 | 200: 'var(--color-theme-200)', 24 | 300: 'var(--color-theme-300)', 25 | 400: 'var(--color-theme-400)', 26 | 500: 'var(--color-theme-500)', 27 | 600: 'var(--color-theme-600)', 28 | 700: 'var(--color-theme-700)', 29 | 800: 'var(--color-theme-800)', 30 | 900: 'var(--color-theme-900)', 31 | }, 32 | blue: { 33 | DEFAULT: '#49BBE9', 34 | 100: '#FFFFFF', 35 | 200: '#D2EEF9', 36 | 300: '#A4DDF4', 37 | 400: '#77CCEE', 38 | 500: '#49BBE9', 39 | 600: '#21ACE4', 40 | 700: '#188FBF', 41 | 800: '#137196', 42 | 900: '#0D526D', 43 | }, 44 | }, 45 | textColor: { 46 | theme: { 47 | DEFAULT: 'var(--color-text-theme)', 48 | lighter: 'var(--color-text-theme-lighter)', 49 | darker: 'var(--color-text-theme-darker)', 50 | reverse: 'var(--color-text-theme-reverse)', 51 | 100: 'var(--color-theme-100)', 52 | 200: 'var(--color-theme-200)', 53 | 300: 'var(--color-theme-300)', 54 | 400: 'var(--color-theme-400)', 55 | 500: 'var(--color-theme-500)', 56 | 600: 'var(--color-theme-600)', 57 | 700: 'var(--color-theme-700)', 58 | 800: 'var(--color-theme-800)', 59 | 900: 'var(--color-theme-900)', 60 | }, 61 | }, 62 | }, 63 | }, 64 | variants: { 65 | borderColor: ['hover', 'focus', 'dark', 'light'], 66 | backgroundColor: ['hover', 'focus', 'dark', 'light'], 67 | textColor: ['hover', 'focus', 'dark', 'light'], 68 | }, 69 | plugins: [ 70 | // rules that apply only for dark theme 71 | function ({ addVariant, e }) { 72 | addVariant('dark', ({ modifySelectors, separator }) => { 73 | modifySelectors(({ className }) => { 74 | return `.theme-dark .${e(`dark${separator}${className}`)}` 75 | }) 76 | }) 77 | }, 78 | // rules that apply only for light theme 79 | function ({ addVariant, e }) { 80 | addVariant('light', ({ modifySelectors, separator }) => { 81 | modifySelectors(({ className }) => { 82 | return `.theme-light .${e(`light${separator}${className}`)}` 83 | }) 84 | }) 85 | }, 86 | ], 87 | } 88 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | import { defineConfig } from 'vite' 3 | import createVuePlugin from '@vitejs/plugin-vue' 4 | import path from 'path' 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | resolve: { 9 | alias: { 10 | '@': path.resolve(__dirname, './src'), 11 | }, 12 | }, 13 | plugins: [createVuePlugin()], 14 | }) 15 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | module.exports = { 3 | css: { 4 | extract: false, 5 | }, 6 | } 7 | --------------------------------------------------------------------------------