├── .python-version ├── guideline.png ├── list_of_cms.png ├── colorpicker ├── .vscode │ └── extensions.json ├── postcss.config.js ├── public │ └── favicon │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── apple-touch-icon.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ └── site.webmanifest ├── src │ ├── App.vue │ ├── main.css │ ├── router │ │ └── index.js │ ├── components │ │ ├── utils.js │ │ ├── ColorSwatchStore.js │ │ ├── Toast.vue │ │ ├── ColorScheme.vue │ │ ├── ColorSwatch.vue │ │ ├── HomePage.vue │ │ └── ColorPicker.vue │ └── main.js ├── .gitignore ├── vite.config.js ├── tailwind.config.js ├── package.json ├── index.html ├── CLAUDE.md └── README.md ├── scicolor ├── scientific_colors │ ├── vik10.txt │ ├── broc10.txt │ ├── oslo10.txt │ ├── roma10.txt │ ├── acton10.txt │ ├── turku10.txt │ ├── batlow10.txt │ ├── oleron10.txt │ ├── vik25.txt │ ├── broc25.txt │ ├── oslo25.txt │ ├── roma25.txt │ ├── acton25.txt │ ├── turku25.txt │ ├── batlow25.txt │ ├── oleron25.txt │ ├── batlowS.txt │ ├── acton.txt │ ├── bamako.txt │ ├── batlow.txt │ ├── bilbao.txt │ ├── broc.txt │ ├── buda.txt │ ├── cork.txt │ ├── davos.txt │ ├── devon.txt │ ├── grayC.txt │ ├── imola.txt │ ├── lajolla.txt │ ├── lapaz.txt │ ├── lipari.txt │ ├── managua.txt │ ├── navia.txt │ ├── nuuk.txt │ └── oleron.txt └── cet_colors │ ├── isolum.txt │ ├── cwr.txt │ └── glasbey.txt ├── pyproject.toml ├── .github └── workflows │ └── scicolor.yml ├── .gitignore └── CLAUDE.md /.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /guideline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/guideline.png -------------------------------------------------------------------------------- /list_of_cms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/list_of_cms.png -------------------------------------------------------------------------------- /colorpicker/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /colorpicker/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } -------------------------------------------------------------------------------- /colorpicker/public/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/favicon.ico -------------------------------------------------------------------------------- /colorpicker/public/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /colorpicker/public/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /colorpicker/public/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /colorpicker/src/App.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /colorpicker/public/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /colorpicker/public/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yang3kc/scicolor/HEAD/colorpicker/public/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /colorpicker/src/main.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | .link { 6 | @apply underline; 7 | @apply text-gray-500; 8 | @apply hover:text-gray-700; 9 | @apply hover:decoration-2; 10 | } -------------------------------------------------------------------------------- /colorpicker/public/favicon/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /colorpicker/src/router/index.js: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from "vue-router"; 2 | import HomePage from "@/components/HomePage.vue"; 3 | 4 | const router = createRouter({ 5 | history: createWebHistory('/scicolor/'), 6 | routes: [ 7 | { path: "/", name: "home", component: HomePage }, 8 | ], 9 | }); 10 | 11 | export default router; -------------------------------------------------------------------------------- /colorpicker/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /colorpicker/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | import { fileURLToPath, URL } from 'node:url' 4 | 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | base: '/scicolor/', 9 | plugins: [vue()], 10 | resolve: { 11 | alias: { 12 | '@': fileURLToPath(new URL('./src', import.meta.url)) 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/vik10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | vik 10 Swatches 3 | 0 18 97 vik-1 #001261 4 | 3 62 125 vik-29 #033E7D 5 | 30 111 157 vik-58 #1E6F9D 6 | 113 168 196 vik-86 #71A8C4 7 | 201 221 231 vik-114 #C9DDE7 8 | 234 206 189 vik-143 #EACEBD 9 | 211 151 116 vik-171 #D39774 10 | 190 101 51 vik-199 #BE6533 11 | 139 39 6 vik-228 #8B2706 12 | 89 0 8 vik-256 #590008 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/broc10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | broc 10 Swatches 3 | 44 26 76 broc-1 #2C1A4C 4 | 40 68 119 broc-29 #284477 5 | 75 118 160 broc-58 #4B76A0 6 | 139 167 194 broc-86 #8BA7C2 7 | 206 217 229 broc-114 #CED9E5 8 | 232 232 210 broc-143 #E8E8D2 9 | 197 197 143 broc-171 #C5C58F 10 | 141 141 86 broc-199 #8D8D56 11 | 85 85 39 broc-228 #555527 12 | 38 38 0 broc-256 #262600 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/oslo10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | oslo 10 Swatches 3 | 1 1 1 oslo-1 #010101 4 | 13 27 41 oslo-29 #0D1B29 5 | 19 50 81 oslo-58 #133251 6 | 31 76 123 oslo-86 #1F4C7B 7 | 56 105 168 oslo-114 #3869A8 8 | 101 138 199 oslo-143 #658AC7 9 | 137 160 202 oslo-171 #89A0CA 10 | 170 182 202 oslo-199 #AAB6CA 11 | 212 214 219 oslo-228 #D4D6DB 12 | 255 255 255 oslo-256 #FFFFFF 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/roma10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | roma 10 Swatches 3 | 127 25 0 roma-1 #7F1900 4 | 157 89 24 roma-29 #9D5918 5 | 185 147 51 roma-58 #B99333 6 | 217 207 109 roma-86 #D9CF6D 7 | 223 234 178 roma-114 #DFEAB2 8 | 169 228 213 roma-143 #A9E4D5 9 | 97 189 211 roma-171 #61BDD3 10 | 66 140 191 roma-199 #428CBF 11 | 47 94 171 roma-228 #2F5EAB 12 | 26 51 153 roma-256 #1A3399 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/acton10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | acton 10 Swatches 3 | 46 33 77 acton-1 #2E214D 4 | 75 59 102 acton-29 #4B3B66 5 | 110 84 128 acton-58 #6E5480 6 | 146 99 144 acton-86 #926390 7 | 178 103 149 acton-114 #B26795 8 | 209 123 165 acton-143 #D17BA5 9 | 212 149 184 acton-171 #D495B8 10 | 212 173 201 acton-199 #D4ADC9 11 | 219 201 220 acton-228 #DBC9DC 12 | 230 230 240 acton-256 #E6E6F0 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/turku10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | turku 10 Swatches 3 | 0 0 0 turku-1 #000000 4 | 36 36 32 turku-29 #242420 5 | 66 66 53 turku-58 #424235 6 | 95 95 68 turku-86 #5F5F44 7 | 126 124 82 turku-114 #7E7C52 8 | 169 153 101 turku-143 #A99965 9 | 207 166 124 turku-171 #CFA67C 10 | 234 173 152 turku-199 #EAAD98 11 | 252 199 195 turku-228 #FCC7C3 12 | 255 230 230 turku-256 #FFE6E6 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/batlow10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | batlow 10 Swatches 3 | 1 25 89 batlow-1 #011959 4 | 16 63 96 batlow-29 #103F60 5 | 28 90 98 batlow-58 #1C5A62 6 | 60 109 86 batlow-86 #3C6D56 7 | 104 123 62 batlow-114 #687B3E 8 | 157 137 43 batlow-143 #9D892B 9 | 210 147 67 batlow-171 #D29343 10 | 248 161 123 batlow-199 #F8A17B 11 | 253 183 188 batlow-228 #FDB7BC 12 | 250 204 250 batlow-256 #FACCFA 13 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/oleron10.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | oleron 10 Swatches 3 | 26 38 89 oleron-1 #1A2659 4 | 69 82 133 oleron-29 #455285 5 | 119 132 183 oleron-58 #7784B7 6 | 170 183 232 oleron-86 #AAB7E8 7 | 211 224 250 oleron-114 #D3E0FA 8 | 60 86 0 oleron-143 #3C5600 9 | 122 113 31 oleron-171 #7A711F 10 | 183 154 94 oleron-199 #B79A5E 11 | 241 206 164 oleron-228 #F1CEA4 12 | 253 253 230 oleron-256 #FDFDE6 13 | -------------------------------------------------------------------------------- /colorpicker/src/components/utils.js: -------------------------------------------------------------------------------- 1 | const getTextColor = (backgroundColor) => { 2 | let lightColor = 'white'; 3 | let darkColor = 'black'; 4 | let color = (backgroundColor.charAt(0) === '#') ? backgroundColor.substring(1, 7) : backgroundColor; 5 | let r = parseInt(color.substring(0, 2), 16); // hexToR 6 | let g = parseInt(color.substring(2, 4), 16); // hexToG 7 | let b = parseInt(color.substring(4, 6), 16); // hexToB 8 | return (((r * 0.299) + (g * 0.587) + (b * 0.114)) > 186) ? darkColor : lightColor; 9 | } 10 | 11 | export { getTextColor }; -------------------------------------------------------------------------------- /colorpicker/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/typography"), require("daisyui")], 8 | theme: { 9 | extend: { 10 | typography: (theme) => ({ 11 | DEFAULT: { 12 | css: { 13 | maxWidth: "none" 14 | } 15 | } 16 | }) 17 | } 18 | }, 19 | daisyui: { 20 | themes: [ 21 | { 22 | kevin: { 23 | ...require("daisyui/src/theming/themes")["autumn"], 24 | "primary": "#ac4142", 25 | "background-color": "white" 26 | } 27 | } 28 | ], 29 | styled: true, 30 | base: true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/vik25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | vik 25 Swatches 3 | 0 18 97 vik-1 #001261 4 | 2 35 108 vik-12 #02236C 5 | 2 51 118 vik-22 #023376 6 | 3 68 129 vik-33 #034481 7 | 6 86 140 vik-44 #06568C 8 | 21 103 152 vik-54 #156798 9 | 48 125 166 vik-65 #307DA6 10 | 78 146 180 vik-75 #4E92B4 11 | 113 168 196 vik-86 #71A8C4 12 | 148 190 210 vik-97 #94BED2 13 | 179 209 223 vik-107 #B3D1DF 14 | 213 227 233 vik-118 #D5E3E9 15 | 236 229 224 vik-129 #ECE5E0 16 | 237 213 200 vik-139 #EDD5C8 17 | 228 191 170 vik-150 #E4BFAA 18 | 220 172 144 vik-160 #DCAC90 19 | 211 151 116 vik-171 #D39774 20 | 203 131 90 vik-182 #CB835A 21 | 195 114 67 vik-192 #C37243 22 | 186 94 42 vik-203 #BA5E2A 23 | 169 69 18 vik-214 #A94512 24 | 148 47 6 vik-224 #942F06 25 | 126 29 6 vik-235 #7E1D06 26 | 108 14 7 vik-245 #6C0E07 27 | 89 0 8 vik-256 #590008 28 | -------------------------------------------------------------------------------- /colorpicker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "colorpicker", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@fortawesome/fontawesome-svg-core": "^6.6.0", 13 | "@fortawesome/free-brands-svg-icons": "^6.6.0", 14 | "@fortawesome/free-regular-svg-icons": "^6.6.0", 15 | "@fortawesome/free-solid-svg-icons": "^6.6.0", 16 | "@fortawesome/vue-fontawesome": "^3.0.8", 17 | "@tailwindcss/typography": "^0.5.14", 18 | "vue": "^3.4.35", 19 | "vue-router": "^4.4.3" 20 | }, 21 | "devDependencies": { 22 | "@vitejs/plugin-vue": "^5.1.2", 23 | "autoprefixer": "^10.4.20", 24 | "daisyui": "^4.12.10", 25 | "postcss": "^8.4.41", 26 | "tailwindcss": "^3.4.10", 27 | "vite": "^5.4.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["hatchling"] 3 | build-backend = "hatchling.build" 4 | 5 | [project] 6 | name = "scicolor" 7 | version = "1.3" 8 | description = "Collections of color maps for scientific visualizations" 9 | readme = "README.md" 10 | license = { text = "MIT" } 11 | authors = [ 12 | { name = "Kaicheng Yang", email = "yang3kc@gmail.com" } 13 | ] 14 | requires-python = ">=3.8" 15 | dependencies = [ 16 | "matplotlib", 17 | "numpy", 18 | "pandas", 19 | ] 20 | 21 | [project.urls] 22 | Homepage = "https://github.com/yang3kc/scicolor" 23 | Repository = "https://github.com/yang3kc/scicolor" 24 | 25 | [tool.hatch.build.targets.wheel] 26 | packages = ["scicolor"] 27 | 28 | [tool.hatch.build.targets.sdist] 29 | include = [ 30 | "scicolor/**/*.py", 31 | "scicolor/cet_colors/*.txt", 32 | "scicolor/ocean_colors/*.txt", 33 | "scicolor/scientific_colors/*.txt", 34 | ] 35 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/broc25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | broc 25 Swatches 3 | 44 26 76 broc-1 #2C1A4C 4 | 43 42 93 broc-12 #2B2A5D 5 | 41 57 108 broc-22 #29396C 6 | 41 75 125 broc-33 #294B7D 7 | 49 94 142 broc-44 #315E8E 8 | 67 111 155 broc-54 #436F9B 9 | 91 130 169 broc-65 #5B82A9 10 | 113 147 181 broc-75 #7193B5 11 | 139 167 194 broc-86 #8BA7C2 12 | 165 187 208 broc-97 #A5BBD0 13 | 189 205 220 broc-107 #BDCDDC 14 | 215 224 233 broc-118 #D7E0E9 15 | 235 238 236 broc-129 #EBEEEC 16 | 236 236 219 broc-139 #ECECDB 17 | 224 224 193 broc-150 #E0E0C1 18 | 212 212 170 broc-160 #D4D4AA 19 | 197 197 143 broc-171 #C5C58F 20 | 176 176 117 broc-182 #B0B075 21 | 155 155 98 broc-192 #9B9B62 22 | 133 133 79 broc-203 #85854F 23 | 112 112 61 broc-214 #70703D 24 | 93 93 45 broc-224 #5D5D2D 25 | 73 73 29 broc-235 #49491D 26 | 55 56 16 broc-245 #373810 27 | 38 38 0 broc-256 #262600 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/oslo25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | oslo 25 Swatches 3 | 1 1 1 oslo-1 #010101 4 | 7 13 21 oslo-12 #070D15 5 | 12 22 32 oslo-22 #0C1620 6 | 14 30 46 oslo-33 #0E1E2E 7 | 16 38 61 oslo-44 #10263D 8 | 18 47 75 oslo-54 #122F4B 9 | 21 57 91 oslo-65 #15395B 10 | 25 66 106 oslo-75 #19426A 11 | 31 76 123 oslo-86 #1F4C7B 12 | 38 87 140 oslo-97 #26578C 13 | 48 97 156 oslo-107 #30619C 14 | 62 109 174 oslo-118 #3E6DAE 15 | 80 123 188 oslo-129 #507BBC 16 | 96 134 197 oslo-139 #6086C5 17 | 111 144 201 oslo-150 #6F90C9 18 | 123 152 202 oslo-160 #7B98CA 19 | 137 160 202 oslo-171 #89A0CA 20 | 150 169 201 oslo-182 #96A9C9 21 | 162 176 202 oslo-192 #A2B0CA 22 | 176 186 203 oslo-203 #B0BACB 23 | 191 197 207 oslo-214 #BFC5CF 24 | 206 209 215 oslo-224 #CED1D7 25 | 222 224 226 oslo-235 #DEE0E2 26 | 238 238 239 oslo-245 #EEEEEF 27 | 255 255 255 oslo-256 #FFFFFF 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/roma25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | roma 25 Swatches 3 | 127 25 0 roma-1 #7F1900 4 | 139 53 9 roma-12 #8B3509 5 | 150 75 18 roma-22 #964B12 6 | 161 97 28 roma-33 #A1611C 7 | 172 118 37 roma-44 #AC7625 8 | 181 138 46 roma-54 #B58A2E 9 | 193 162 60 roma-65 #C1A23C 10 | 205 184 79 roma-75 #CDB84F 11 | 217 207 109 roma-86 #D9CF6D 12 | 225 223 139 roma-97 #E1DF8B 13 | 226 231 163 roma-107 #E2E7A3 14 | 219 235 185 roma-118 #DBEBB9 15 | 202 235 201 roma-129 #CAEBC9 16 | 179 231 211 roma-139 #B3E7D3 17 | 149 221 215 roma-150 #95DDD7 18 | 122 208 215 roma-160 #7AD0D7 19 | 97 189 211 roma-171 #61BDD3 20 | 82 170 204 roma-182 #52AACC 21 | 72 152 197 roma-192 #4898C5 22 | 64 133 189 roma-203 #4085BD 23 | 56 116 181 roma-214 #3874B5 24 | 50 100 174 roma-224 #3264AE 25 | 43 83 167 roma-235 #2B53A7 26 | 36 68 160 roma-245 #2444A0 27 | 26 51 153 roma-256 #1A3399 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/acton25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | acton 25 Swatches 3 | 46 33 77 acton-1 #2E214D 4 | 57 43 87 acton-12 #392B57 5 | 68 52 96 acton-22 #443460 6 | 80 62 106 acton-33 #503E6A 7 | 92 73 116 acton-44 #5C4974 8 | 105 81 125 acton-54 #69517D 9 | 119 90 134 acton-65 #775A86 10 | 133 95 140 acton-75 #855F8C 11 | 146 99 144 acton-86 #926390 12 | 159 101 147 acton-97 #9F6593 13 | 170 102 148 acton-107 #AA6694 14 | 183 104 150 acton-118 #B76896 15 | 196 110 155 acton-129 #C46E9B 16 | 206 119 162 acton-139 #CE77A2 17 | 212 130 170 acton-150 #D482AA 18 | 213 140 177 acton-160 #D58CB1 19 | 212 149 184 acton-171 #D495B8 20 | 211 158 190 acton-182 #D39EBE 21 | 212 166 196 acton-192 #D4A6C4 22 | 213 176 203 acton-203 #D5B0CB 23 | 215 187 210 acton-214 #D7BBD2 24 | 218 197 217 acton-224 #DAC5D9 25 | 222 208 225 acton-235 #DED0E1 26 | 225 218 232 acton-245 #E1DAE8 27 | 230 230 240 acton-256 #E6E6F0 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/turku25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | turku 25 Swatches 3 | 0 0 0 turku-1 #000000 4 | 18 18 17 turku-12 #121211 5 | 29 29 26 turku-22 #1D1D1A 6 | 40 40 35 turku-33 #282823 7 | 52 51 44 turku-44 #34332C 8 | 62 62 51 turku-54 #3E3E33 9 | 73 73 58 turku-65 #49493A 10 | 84 83 63 turku-75 #54533F 11 | 95 95 68 turku-86 #5F5F44 12 | 107 106 73 turku-97 #6B6A49 13 | 118 116 78 turku-107 #76744E 14 | 131 128 84 turku-118 #838054 15 | 147 140 91 turku-129 #938C5B 16 | 162 149 98 turku-139 #A29562 17 | 179 158 107 turku-150 #B39E6B 18 | 194 163 115 turku-160 #C2A373 19 | 207 166 124 turku-171 #CFA67C 20 | 219 168 133 turku-182 #DBA885 21 | 228 170 143 turku-192 #E4AA8F 22 | 238 176 158 turku-203 #EEB09E 23 | 246 185 174 turku-214 #F6B9AE 24 | 251 195 189 turku-224 #FBC3BD 25 | 254 207 204 turku-235 #FECFCC 26 | 255 218 217 turku-245 #FFDAD9 27 | 255 230 230 turku-256 #FFE6E6 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/batlow25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | batlow 25 Swatches 3 | 1 25 89 batlow-1 #011959 4 | 10 42 92 batlow-12 #0A2A5C 5 | 14 55 94 batlow-22 #0E375E 6 | 17 67 96 batlow-33 #114360 7 | 20 78 98 batlow-44 #144E62 8 | 25 87 98 batlow-54 #195762 9 | 34 96 97 batlow-65 #226061 10 | 45 103 93 batlow-75 #2D675D 11 | 60 109 86 batlow-86 #3C6D56 12 | 77 115 77 batlow-97 #4D734D 13 | 93 120 68 batlow-107 #5D7844 14 | 111 125 58 batlow-118 #6F7D3A 15 | 130 130 49 batlow-129 #828231 16 | 149 135 44 batlow-139 #95872C 17 | 171 140 45 batlow-150 #AB8C2D 18 | 190 144 53 batlow-160 #BE9035 19 | 210 147 67 batlow-171 #D29343 20 | 228 151 86 batlow-182 #E49756 21 | 241 157 107 batlow-192 #F19D6B 22 | 250 164 133 batlow-203 #FAA485 23 | 253 172 158 batlow-214 #FDAC9E 24 | 253 180 180 batlow-224 #FDB4B4 25 | 253 188 203 batlow-235 #FDBCCB 26 | 252 195 225 batlow-245 #FCC3E1 27 | 250 204 250 batlow-256 #FACCFA 28 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/oleron25.txt: -------------------------------------------------------------------------------- 1 | Scientific Colour Map Categorical Palette 2 | oleron 25 Swatches 3 | 26 38 89 oleron-1 #1A2659 4 | 43 55 106 oleron-12 #2B376A 5 | 58 71 122 oleron-22 #3A477A 6 | 76 89 140 oleron-33 #4C598C 7 | 94 107 158 oleron-44 #5E6B9E 8 | 112 125 176 oleron-54 #707DB0 9 | 131 144 195 oleron-65 #8390C3 10 | 150 162 213 oleron-75 #96A2D5 11 | 170 183 232 oleron-86 #AAB7E8 12 | 188 201 243 oleron-97 #BCC9F3 13 | 202 214 248 oleron-107 #CAD6F8 14 | 216 229 252 oleron-118 #D8E5FC 15 | 26 76 0 oleron-129 #1A4C00 16 | 51 84 0 oleron-139 #335400 17 | 75 91 1 oleron-150 #4B5B01 18 | 96 99 9 oleron-160 #606309 19 | 122 113 31 oleron-171 #7A711F 20 | 146 128 55 oleron-182 #928037 21 | 168 143 78 oleron-192 #A88F4E 22 | 193 161 103 oleron-203 #C1A167 23 | 217 181 129 oleron-214 #D9B581 24 | 236 199 154 oleron-224 #ECC79A 25 | 246 218 181 oleron-235 #F6DAB5 26 | 249 234 204 oleron-245 #F9EACC 27 | 253 253 230 oleron-256 #FDFDE6 28 | -------------------------------------------------------------------------------- /colorpicker/src/components/ColorSwatchStore.js: -------------------------------------------------------------------------------- 1 | import { reactive } from 'vue'; 2 | 3 | export const color_swatch_store = reactive({ 4 | colors: [], 5 | add_color: (color) => { 6 | color_swatch_store.colors.push(color); 7 | }, 8 | remove_color: (color_index) => { 9 | color_swatch_store.colors.splice(color_index, 1); 10 | }, 11 | move_color_left: (color_index) => { 12 | if (color_index > 0) { 13 | const color = color_swatch_store.colors[color_index]; 14 | color_swatch_store.colors.splice(color_index, 1); 15 | color_swatch_store.colors.splice(color_index - 1, 0, color); 16 | } 17 | }, 18 | move_color_right: (color_index) => { 19 | if (color_index < color_swatch_store.colors.length - 1) { 20 | const color = color_swatch_store.colors[color_index]; 21 | color_swatch_store.colors.splice(color_index, 1); 22 | color_swatch_store.colors.splice(color_index + 1, 0, color); 23 | } 24 | }, 25 | remove_all_colors: () => { 26 | color_swatch_store.colors = []; 27 | }, 28 | }); -------------------------------------------------------------------------------- /colorpicker/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import './main.css' 5 | 6 | import { library } from '@fortawesome/fontawesome-svg-core' 7 | /* import font awesome icon component */ 8 | import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' 9 | /* import specific icons */ 10 | import { faCopy as faCopyRegular, faCircleXmark as faCircleXmarkRegular, faTrashCan as faTrashCanRegular, faCircleLeft as faCircleLeftRegular, faCircleRight as faCircleRightRegular, faSquarePlus as faSquarePlusRegular, faCircleQuestion as faCircleQuestionRegular } from '@fortawesome/free-regular-svg-icons' 11 | import { faShuffle as faShuffleSolid, faBackwardStep as faBackwardStepSolid } from '@fortawesome/free-solid-svg-icons' 12 | import { faGithub, faTwitter } from '@fortawesome/free-brands-svg-icons' 13 | /* add icons to the library */ 14 | library.add(faCopyRegular, faCircleXmarkRegular, faGithub, faTrashCanRegular, faCircleLeftRegular, faCircleRightRegular, faSquarePlusRegular, faCircleQuestionRegular, faTwitter, faShuffleSolid, faBackwardStepSolid) 15 | 16 | createApp(App).use(router).component('font-awesome-icon', FontAwesomeIcon).mount('#app') 17 | -------------------------------------------------------------------------------- /colorpicker/src/components/Toast.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | -------------------------------------------------------------------------------- /colorpicker/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | Scicolor Color Picker 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /.github/workflows/scicolor.yml: -------------------------------------------------------------------------------- 1 | # Simple workflow for deploying static content to GitHub Pages 2 | name: Deploy static content to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ['main'] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages 13 | permissions: 14 | contents: read 15 | pages: write 16 | id-token: write 17 | 18 | # Allow one concurrent deployment 19 | concurrency: 20 | group: 'pages' 21 | cancel-in-progress: true 22 | 23 | jobs: 24 | # Single deploy job since we're just deploying 25 | deploy: 26 | environment: 27 | name: github-pages 28 | url: ${{ steps.deployment.outputs.page_url }} 29 | runs-on: ubuntu-latest 30 | defaults: 31 | run: 32 | working-directory: ./colorpicker 33 | steps: 34 | - name: Checkout 35 | uses: actions/checkout@v4 36 | - name: Set up Node 37 | uses: actions/setup-node@v4 38 | with: 39 | node-version: 20 40 | cache: 'npm' 41 | cache-dependency-path: './colorpicker/package-lock.json' 42 | - name: Install dependencies 43 | run: npm ci 44 | - name: Build 45 | run: npm run build 46 | - name: Setup Pages 47 | uses: actions/configure-pages@v4 48 | - name: Upload artifact 49 | uses: actions/upload-pages-artifact@v3 50 | with: 51 | # Upload dist folder 52 | path: './colorpicker/dist' 53 | - name: Deploy to GitHub Pages 54 | id: deployment 55 | uses: actions/deploy-pages@v4 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | .DS_Store 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | build/ 14 | develop-eggs/ 15 | dist/ 16 | downloads/ 17 | eggs/ 18 | .eggs/ 19 | lib/ 20 | lib64/ 21 | parts/ 22 | sdist/ 23 | var/ 24 | wheels/ 25 | pip-wheel-metadata/ 26 | share/python-wheels/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | MANIFEST 31 | 32 | # PyInstaller 33 | # Usually these files are written by a python script from a template 34 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 35 | *.manifest 36 | *.spec 37 | 38 | # Installer logs 39 | pip-log.txt 40 | pip-delete-this-directory.txt 41 | 42 | # Unit test / coverage reports 43 | htmlcov/ 44 | .tox/ 45 | .nox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | *.py,cover 53 | .hypothesis/ 54 | .pytest_cache/ 55 | 56 | # Translations 57 | *.mo 58 | *.pot 59 | 60 | # Django stuff: 61 | *.log 62 | local_settings.py 63 | db.sqlite3 64 | db.sqlite3-journal 65 | 66 | # Flask stuff: 67 | instance/ 68 | .webassets-cache 69 | 70 | # Scrapy stuff: 71 | .scrapy 72 | 73 | # Sphinx documentation 74 | docs/_build/ 75 | 76 | # PyBuilder 77 | target/ 78 | 79 | # Jupyter Notebook 80 | .ipynb_checkpoints 81 | 82 | # IPython 83 | profile_default/ 84 | ipython_config.py 85 | 86 | # pyenv (removed - uv uses .python-version for version management) 87 | # .python-version 88 | 89 | # pipenv 90 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 91 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 92 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 93 | # install all needed dependencies. 94 | #Pipfile.lock 95 | 96 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 97 | __pypackages__/ 98 | 99 | # Celery stuff 100 | celerybeat-schedule 101 | celerybeat.pid 102 | 103 | # SageMath parsed files 104 | *.sage.py 105 | 106 | # Environments 107 | .env 108 | .venv 109 | env/ 110 | venv/ 111 | ENV/ 112 | env.bak/ 113 | venv.bak/ 114 | 115 | # Spyder project settings 116 | .spyderproject 117 | .spyproject 118 | 119 | # Rope project settings 120 | .ropeproject 121 | 122 | # mkdocs documentation 123 | /site 124 | 125 | # mypy 126 | .mypy_cache/ 127 | .dmypy.json 128 | dmypy.json 129 | 130 | # Pyre type checker 131 | .pyre/ 132 | -------------------------------------------------------------------------------- /colorpicker/CLAUDE.md: -------------------------------------------------------------------------------- 1 | # CLAUDE.md 2 | 3 | This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. 4 | 5 | ## Project Overview 6 | 7 | This is a Vue.js 3 web application called "Scicolor Color Picker" - a tool for browsing and selecting color palettes specifically curated for scientific visualizations. The app allows users to view color schemes, copy individual colors or entire palettes, and manage a personal swatch collection. 8 | 9 | ## Development Commands 10 | 11 | ```bash 12 | # Install dependencies 13 | npm install 14 | 15 | # Start development server (runs on http://localhost:5173) 16 | npm run dev 17 | 18 | # Build for production 19 | npm run build 20 | 21 | # Preview production build 22 | npm run preview 23 | ``` 24 | 25 | ## Tech Stack & Architecture 26 | 27 | - **Vue.js 3** with Composition API (` 34 | 35 | -------------------------------------------------------------------------------- /colorpicker/src/components/ColorSwatch.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | -------------------------------------------------------------------------------- /scicolor/scientific_colors/batlowS.txt: -------------------------------------------------------------------------------- 1 | 0.005193 0.098238 0.349842 2 | 0.981354 0.800406 0.981267 3 | 0.511253 0.510898 0.193296 4 | 0.133298 0.375282 0.379395 5 | 0.946612 0.614218 0.419767 6 | 0.302379 0.450282 0.300122 7 | 0.066899 0.263188 0.377594 8 | 0.992900 0.704852 0.704114 9 | 0.754268 0.565033 0.211761 10 | 0.088353 0.322167 0.384731 11 | 0.989089 0.750968 0.837979 12 | 0.987567 0.658422 0.566226 13 | 0.209075 0.417412 0.349677 14 | 0.049378 0.191076 0.365810 15 | 0.631513 0.540752 0.170075 16 | 0.402968 0.480466 0.244731 17 | 0.865168 0.585882 0.302255 18 | 0.032053 0.146774 0.358239 19 | 0.992595 0.681914 0.636869 20 | 0.985980 0.775272 0.908448 21 | 0.693720 0.553797 0.182610 22 | 0.811692 0.575187 0.252572 23 | 0.570016 0.526186 0.175273 24 | 0.167952 0.397889 0.367784 25 | 0.455774 0.495585 0.217774 26 | 0.075833 0.293321 0.381922 27 | 0.973424 0.635183 0.492547 28 | 0.059164 0.229842 0.372252 29 | 0.254452 0.434529 0.326434 30 | 0.106842 0.349774 0.384548 31 | 0.991367 0.727614 0.770270 32 | 0.351976 0.465440 0.272492 33 | 0.912746 0.599191 0.360986 34 | 0.377291 0.472952 0.258588 35 | 0.278171 0.442524 0.313552 36 | 0.981918 0.646664 0.529602 37 | 0.990926 0.670230 0.602031 38 | 0.081553 0.307858 0.383598 39 | 0.483123 0.503216 0.205037 40 | 0.429094 0.488011 0.231096 41 | 0.783416 0.570162 0.230962 42 | 0.889900 0.592087 0.330454 43 | 0.961696 0.624282 0.455702 44 | 0.096618 0.336161 0.385134 45 | 0.724322 0.559628 0.195408 46 | 0.662691 0.547503 0.174044 47 | 0.054721 0.211234 0.369184 48 | 0.063071 0.247085 0.375050 49 | 0.327007 0.457900 0.286377 50 | 0.983913 0.787757 0.944626 51 | 0.149706 0.386975 0.374449 52 | 0.600520 0.533605 0.170648 53 | 0.071115 0.278497 0.379895 54 | 0.992258 0.716210 0.737146 55 | 0.118992 0.362849 0.382713 56 | 0.540225 0.518584 0.183099 57 | 0.993111 0.693451 0.670810 58 | 0.987672 0.762996 0.872864 59 | 0.990307 0.739184 0.803810 60 | 0.187886 0.408003 0.359484 61 | 0.019936 0.122985 0.354120 62 | 0.042104 0.169557 0.362151 63 | 0.231362 0.426197 0.338572 64 | 0.838999 0.580339 0.276353 65 | 0.928323 0.605212 0.385404 66 | 0.266241 0.438555 0.320085 67 | 0.092304 0.329220 0.385040 68 | 0.141260 0.381240 0.377135 69 | 0.739393 0.562386 0.203179 70 | 0.469368 0.499393 0.211318 71 | 0.290214 0.446420 0.306889 72 | 0.992967 0.687705 0.653934 73 | 0.678244 0.550712 0.177803 74 | 0.615972 0.537231 0.169826 75 | 0.989720 0.745039 0.820804 76 | 0.158620 0.392531 0.371320 77 | 0.967983 0.629639 0.474057 78 | 0.954574 0.619137 0.437582 79 | 0.314648 0.454107 0.293279 80 | 0.585199 0.529927 0.172493 81 | 0.045905 0.180460 0.364007 82 | 0.037449 0.158313 0.360216 83 | 0.555024 0.522391 0.178854 84 | 0.989496 0.664329 0.584246 85 | 0.986868 0.769105 0.890573 86 | 0.064936 0.255264 0.376362 87 | 0.647098 0.544183 0.171465 88 | 0.415967 0.484225 0.237895 89 | 0.012963 0.110779 0.351992 90 | 0.220112 0.421864 0.344261 91 | 0.078517 0.300622 0.382814 92 | 0.991935 0.676091 0.619575 93 | 0.198310 0.412798 0.354767 94 | 0.709098 0.556772 0.188546 95 | 0.073440 0.285942 0.380957 96 | 0.825472 0.577725 0.264197 97 | 0.125889 0.369160 0.381259 98 | 0.901590 0.595507 0.345429 99 | 0.937850 0.609582 0.402345 100 | 0.985066 0.652522 0.547998 101 | -------------------------------------------------------------------------------- /colorpicker/src/components/HomePage.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 54 | -------------------------------------------------------------------------------- /colorpicker/README.md: -------------------------------------------------------------------------------- 1 | # SciColor - Scientific Color Picker 2 | 3 | A Vue.js 3 web application for browsing and selecting color palettes specifically curated for scientific visualizations and data analysis. 4 | 5 | ## Features 6 | 7 | - **Curated Color Palettes**: Browse color schemes from Tableau, scientific publications, and other trusted sources 8 | - **Interactive Color Selection**: Click colors to copy hex codes, with visual feedback 9 | - **Personal Swatch Collection**: Save and manage your favorite colors across sessions 10 | - **Smart Filtering**: Filter by minimum color count and color-blind friendly palettes 11 | - **Palette Operations**: Shuffle, restore, and copy entire color schemes 12 | - **Responsive Design**: Works seamlessly on desktop and mobile devices 13 | 14 | ## Technology Stack 15 | 16 | - **Vue.js 3** with Composition API 17 | - **Vue Router 4** for navigation 18 | - **Vite** for development and build tooling 19 | - **Tailwind CSS** + **daisyUI** for styling 20 | - **Font Awesome** for icons 21 | 22 | ## Development 23 | 24 | ### Prerequisites 25 | 26 | - Node.js (v16 or higher) 27 | - npm or yarn 28 | 29 | ### Setup 30 | 31 | ```bash 32 | # Clone the repository 33 | git clone 34 | cd colorpicker 35 | 36 | # Install dependencies 37 | npm install 38 | 39 | # Start development server 40 | npm run dev 41 | ``` 42 | 43 | The application will be available at `http://localhost:5173` 44 | 45 | ### Build for Production 46 | 47 | ```bash 48 | # Build for production 49 | npm run build 50 | 51 | # Preview production build 52 | npm run preview 53 | ``` 54 | 55 | ## Usage 56 | 57 | 1. **Browse Palettes**: Scroll through the available color schemes 58 | 2. **Filter Options**: Use the controls to filter by color count or color-blind friendly options 59 | 3. **Copy Colors**: Click individual colors to copy their hex codes 60 | 4. **Manage Swatches**: Add colors to your personal collection for comparison 61 | 5. **Export Palettes**: Copy entire color schemes for use in your projects 62 | 63 | ## Project Structure 64 | 65 | ``` 66 | src/ 67 | ├── components/ 68 | │ ├── HomePage.vue # Main layout component 69 | │ ├── ColorPicker.vue # Core color picker functionality 70 | │ ├── ColorScheme.vue # Individual palette display 71 | │ ├── ColorSwatch.vue # Personal swatch management 72 | │ ├── ColorSwatchStore.js # State management 73 | │ ├── Toast.vue # Notification system 74 | │ └── utils.js # Utility functions 75 | ├── router/ 76 | │ └── index.js # Vue Router configuration 77 | ├── main.js # Application entry point 78 | ├── main.css # Global styles 79 | └── App.vue # Root component 80 | ``` 81 | 82 | ## Color Data 83 | 84 | Color palettes are stored in `/public/colors/colors.json` and include: 85 | - Collection metadata (name, source, description) 86 | - Individual color schemes with hex codes 87 | - Labels for categorization (categorical, sequential, etc.) 88 | - Color-blind friendly indicators 89 | 90 | ## Contributing 91 | 92 | 1. Fork the repository 93 | 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 94 | 3. Commit your changes (`git commit -m 'Add amazing feature'`) 95 | 4. Push to the branch (`git push origin feature/amazing-feature`) 96 | 5. Open a Pull Request 97 | 98 | ## License 99 | 100 | This project is open source and available under the [MIT License](LICENSE). -------------------------------------------------------------------------------- /colorpicker/src/components/ColorPicker.vue: -------------------------------------------------------------------------------- 1 | 51 | 52 | -------------------------------------------------------------------------------- /scicolor/cet_colors/isolum.txt: -------------------------------------------------------------------------------- 1 | 0.43773,0.82141,1 2 | 0.438,0.82178,1 3 | 0.43825,0.82216,1 4 | 0.43853,0.82252,1 5 | 0.4388,0.82289,1 6 | 0.43909,0.82325,0.99787 7 | 0.43939,0.82362,0.99477 8 | 0.43969,0.82398,0.99168 9 | 0.44,0.82433,0.98857 10 | 0.44031,0.82469,0.98546 11 | 0.44063,0.82504,0.98235 12 | 0.44095,0.8254,0.97923 13 | 0.44129,0.82575,0.97611 14 | 0.44163,0.82609,0.97299 15 | 0.44199,0.82644,0.96986 16 | 0.44234,0.82678,0.96673 17 | 0.4427,0.82712,0.96359 18 | 0.44307,0.82746,0.96045 19 | 0.44345,0.82779,0.95731 20 | 0.44384,0.82812,0.95416 21 | 0.44424,0.82845,0.95101 22 | 0.44464,0.82878,0.94785 23 | 0.44505,0.82911,0.94469 24 | 0.44546,0.82943,0.94152 25 | 0.44589,0.82975,0.93835 26 | 0.44634,0.83007,0.93517 27 | 0.44679,0.83038,0.93199 28 | 0.44725,0.83069,0.9288 29 | 0.4477,0.831,0.92562 30 | 0.4482,0.83131,0.92243 31 | 0.44869,0.83161,0.91922 32 | 0.44919,0.83191,0.91602 33 | 0.4497,0.83221,0.91281 34 | 0.45022,0.8325,0.9096 35 | 0.45076,0.83279,0.90638 36 | 0.4513,0.83308,0.90316 37 | 0.45186,0.83337,0.89993 38 | 0.45244,0.83365,0.8967 39 | 0.45301,0.83394,0.89345 40 | 0.4536,0.83421,0.89021 41 | 0.45421,0.83448,0.88696 42 | 0.45483,0.83475,0.8837 43 | 0.45546,0.83502,0.88044 44 | 0.45611,0.83528,0.87717 45 | 0.45676,0.83555,0.8739 46 | 0.45744,0.8358,0.87062 47 | 0.45813,0.83606,0.86733 48 | 0.45884,0.83631,0.86405 49 | 0.45956,0.83656,0.86075 50 | 0.46029,0.8368,0.85744 51 | 0.46104,0.83704,0.85414 52 | 0.46181,0.83728,0.85082 53 | 0.46259,0.83751,0.8475 54 | 0.46339,0.83774,0.84417 55 | 0.46422,0.83796,0.84084 56 | 0.46505,0.83818,0.8375 57 | 0.46591,0.8384,0.83416 58 | 0.46679,0.83861,0.8308 59 | 0.46767,0.83882,0.82744 60 | 0.46859,0.83903,0.82407 61 | 0.46953,0.83923,0.8207 62 | 0.47047,0.83943,0.81732 63 | 0.47145,0.83962,0.81393 64 | 0.47244,0.83981,0.81053 65 | 0.47345,0.83999,0.80714 66 | 0.47449,0.84017,0.80373 67 | 0.47556,0.84034,0.80031 68 | 0.47664,0.84051,0.79688 69 | 0.47774,0.84067,0.79346 70 | 0.47888,0.84083,0.79002 71 | 0.48003,0.84098,0.78658 72 | 0.48121,0.84113,0.78312 73 | 0.48242,0.84127,0.77966 74 | 0.48365,0.8414,0.77619 75 | 0.48491,0.84153,0.77272 76 | 0.4862,0.84166,0.76924 77 | 0.48753,0.84178,0.76575 78 | 0.48887,0.84189,0.76225 79 | 0.49025,0.842,0.75875 80 | 0.49167,0.8421,0.75524 81 | 0.49309,0.84219,0.75172 82 | 0.49457,0.84228,0.74819 83 | 0.49605,0.84236,0.74465 84 | 0.4976,0.84243,0.74111 85 | 0.49917,0.84249,0.73756 86 | 0.50078,0.84255,0.73401 87 | 0.50242,0.8426,0.73045 88 | 0.5041,0.84264,0.72687 89 | 0.5058,0.84267,0.7233 90 | 0.50756,0.8427,0.71972 91 | 0.50935,0.84271,0.71613 92 | 0.51117,0.84272,0.71253 93 | 0.51304,0.84272,0.70893 94 | 0.51496,0.84271,0.70532 95 | 0.51691,0.84269,0.70171 96 | 0.51891,0.84266,0.69809 97 | 0.52094,0.84262,0.69447 98 | 0.52303,0.84257,0.69084 99 | 0.52516,0.84251,0.68722 100 | 0.52734,0.84243,0.68359 101 | 0.52957,0.84235,0.67995 102 | 0.53184,0.84226,0.67632 103 | 0.53416,0.84215,0.67268 104 | 0.53654,0.84203,0.66904 105 | 0.53896,0.84189,0.66541 106 | 0.54142,0.84175,0.66178 107 | 0.54396,0.84159,0.65814 108 | 0.54654,0.84142,0.65451 109 | 0.54917,0.84123,0.65088 110 | 0.55185,0.84103,0.64727 111 | 0.55458,0.84082,0.64365 112 | 0.55737,0.84059,0.64005 113 | 0.56021,0.84035,0.63646 114 | 0.56311,0.84009,0.63287 115 | 0.56606,0.83981,0.6293 116 | 0.56906,0.83952,0.62575 117 | 0.57213,0.8392,0.6222 118 | 0.57524,0.83888,0.61869 119 | 0.5784,0.83854,0.61518 120 | 0.58162,0.83818,0.61171 121 | 0.5849,0.8378,0.60826 122 | 0.58821,0.83741,0.60483 123 | 0.59159,0.837,0.60142 124 | 0.595,0.83656,0.59805 125 | 0.59846,0.83612,0.59472 126 | 0.60197,0.83565,0.59142 127 | 0.60552,0.83517,0.58814 128 | 0.60913,0.83467,0.58492 129 | 0.61275,0.83415,0.58173 130 | 0.61642,0.83362,0.57858 131 | 0.62014,0.83306,0.57549 132 | 0.62388,0.83249,0.57243 133 | 0.62765,0.83191,0.56942 134 | 0.63145,0.8313,0.56646 135 | 0.63527,0.83068,0.56356 136 | 0.63912,0.83004,0.56069 137 | 0.64299,0.82939,0.55789 138 | 0.64689,0.82872,0.55514 139 | 0.6508,0.82803,0.55245 140 | 0.65472,0.82733,0.5498 141 | 0.65865,0.82662,0.54721 142 | 0.66261,0.82589,0.54468 143 | 0.66656,0.82515,0.54221 144 | 0.67053,0.82439,0.53979 145 | 0.6745,0.82363,0.53744 146 | 0.67847,0.82285,0.53513 147 | 0.68244,0.82206,0.53288 148 | 0.68642,0.82125,0.53068 149 | 0.69038,0.82043,0.52855 150 | 0.69435,0.8196,0.52647 151 | 0.6983,0.81877,0.5244 152 | 0.70224,0.81793,0.52237 153 | 0.70617,0.81709,0.52036 154 | 0.71008,0.81624,0.51839 155 | 0.71397,0.81537,0.51642 156 | 0.71785,0.81451,0.51449 157 | 0.72171,0.81363,0.51258 158 | 0.72557,0.81275,0.5107 159 | 0.7294,0.81187,0.50885 160 | 0.73323,0.81098,0.50702 161 | 0.73704,0.81008,0.50522 162 | 0.74083,0.80918,0.50344 163 | 0.74462,0.80826,0.50171 164 | 0.7484,0.80735,0.49999 165 | 0.75216,0.80642,0.49833 166 | 0.75591,0.80548,0.49666 167 | 0.75965,0.80455,0.49505 168 | 0.76337,0.8036,0.49346 169 | 0.76709,0.80265,0.49191 170 | 0.7708,0.80169,0.49039 171 | 0.77448,0.80072,0.4889 172 | 0.77817,0.79975,0.48745 173 | 0.78184,0.79876,0.48602 174 | 0.7855,0.79777,0.48463 175 | 0.78915,0.79678,0.48328 176 | 0.79278,0.79578,0.48198 177 | 0.7964,0.79477,0.4807 178 | 0.80002,0.79376,0.47946 179 | 0.80362,0.79273,0.47826 180 | 0.80722,0.7917,0.47709 181 | 0.8108,0.79066,0.47597 182 | 0.81437,0.78962,0.47489 183 | 0.81792,0.78857,0.47383 184 | 0.82147,0.78751,0.47283 185 | 0.82501,0.78645,0.47187 186 | 0.82853,0.78538,0.47094 187 | 0.83205,0.7843,0.47006 188 | 0.83555,0.78321,0.46922 189 | 0.83903,0.78212,0.46841 190 | 0.84251,0.78102,0.46765 191 | 0.84597,0.77992,0.46694 192 | 0.84943,0.77881,0.46626 193 | 0.85287,0.77769,0.46563 194 | 0.85629,0.77657,0.46504 195 | 0.85971,0.77544,0.46451 196 | 0.86311,0.7743,0.46401 197 | 0.86649,0.77316,0.46354 198 | 0.86986,0.77201,0.46313 199 | 0.87323,0.77086,0.46276 200 | 0.87657,0.7697,0.46244 201 | 0.87991,0.76853,0.46216 202 | 0.88323,0.76736,0.46193 203 | 0.88653,0.76619,0.46174 204 | 0.88982,0.76501,0.46159 205 | 0.89309,0.76382,0.46149 206 | 0.89636,0.76263,0.46143 207 | 0.8996,0.76143,0.46142 208 | 0.90283,0.76023,0.46145 209 | 0.90605,0.75903,0.46152 210 | 0.90924,0.75782,0.46164 211 | 0.91242,0.7566,0.4618 212 | 0.91559,0.75539,0.462 213 | 0.91874,0.75416,0.46225 214 | 0.92188,0.75293,0.46253 215 | 0.92499,0.75171,0.46286 216 | 0.92809,0.75047,0.46324 217 | 0.93118,0.74922,0.46366 218 | 0.93424,0.74799,0.46413 219 | 0.9373,0.74674,0.46462 220 | 0.94033,0.74549,0.46515 221 | 0.94335,0.74424,0.46573 222 | 0.94635,0.74299,0.46635 223 | 0.94933,0.74172,0.46702 224 | 0.95229,0.74046,0.46771 225 | 0.95524,0.7392,0.46844 226 | 0.95817,0.73792,0.46923 227 | 0.96108,0.73666,0.47004 228 | 0.96398,0.73539,0.47088 229 | 0.96685,0.73411,0.47177 230 | 0.96971,0.73284,0.47268 231 | 0.97256,0.73155,0.47363 232 | 0.97537,0.73027,0.47464 233 | 0.97818,0.72899,0.47566 234 | 0.98097,0.7277,0.47671 235 | 0.98374,0.72642,0.47781 236 | 0.98649,0.72513,0.47893 237 | 0.98923,0.72383,0.4801 238 | 0.99194,0.72254,0.48128 239 | 0.99464,0.72125,0.4825 240 | 0.99732,0.71995,0.48375 241 | 0.99999,0.71865,0.48503 242 | 1,0.71736,0.48634 243 | 1,0.71606,0.48769 244 | 1,0.71476,0.48905 245 | 1,0.71346,0.49046 246 | 1,0.71215,0.49188 247 | 1,0.71085,0.49332 248 | 1,0.70955,0.49481 249 | 1,0.70824,0.4963 250 | 1,0.70694,0.49785 251 | 1,0.70563,0.49939 252 | 1,0.70432,0.50098 253 | 1,0.70301,0.50257 254 | 1,0.70169,0.50421 255 | 1,0.70039,0.50584 256 | 1,0.69907,0.50753 257 | -------------------------------------------------------------------------------- /scicolor/cet_colors/cwr.txt: -------------------------------------------------------------------------------- 1 | 0.16144,0.79052,0.90539 2 | 0.17912,0.79202,0.90596 3 | 0.19524,0.79352,0.90654 4 | 0.21014,0.79501,0.90711 5 | 0.22404,0.7965,0.90769 6 | 0.23717,0.798,0.90826 7 | 0.24955,0.7995,0.90883 8 | 0.26139,0.80098,0.90941 9 | 0.27271,0.80247,0.90998 10 | 0.28359,0.80397,0.91056 11 | 0.29407,0.80545,0.91113 12 | 0.30421,0.80695,0.9117 13 | 0.31403,0.80844,0.91227 14 | 0.32357,0.80992,0.91285 15 | 0.33286,0.81141,0.91342 16 | 0.34189,0.81289,0.91399 17 | 0.35072,0.81438,0.91456 18 | 0.35933,0.81587,0.91513 19 | 0.36776,0.81735,0.9157 20 | 0.37604,0.81883,0.91627 21 | 0.38414,0.82032,0.91685 22 | 0.3921,0.82181,0.91742 23 | 0.39991,0.82329,0.91799 24 | 0.4076,0.82477,0.91856 25 | 0.41517,0.82625,0.91913 26 | 0.42261,0.82773,0.9197 27 | 0.42996,0.82921,0.92027 28 | 0.4372,0.83069,0.92083 29 | 0.44434,0.83217,0.92141 30 | 0.45139,0.83365,0.92198 31 | 0.45834,0.83512,0.92254 32 | 0.46522,0.8366,0.92311 33 | 0.47202,0.83808,0.92368 34 | 0.47874,0.83955,0.92425 35 | 0.48538,0.84102,0.92481 36 | 0.49197,0.8425,0.92538 37 | 0.49849,0.84397,0.92595 38 | 0.50493,0.84544,0.92651 39 | 0.51131,0.84691,0.92708 40 | 0.51766,0.84838,0.92765 41 | 0.52393,0.84986,0.92821 42 | 0.53015,0.85132,0.92878 43 | 0.53632,0.8528,0.92934 44 | 0.54244,0.85426,0.92991 45 | 0.54852,0.85573,0.93048 46 | 0.55454,0.8572,0.93104 47 | 0.56052,0.85867,0.93161 48 | 0.56646,0.86014,0.93217 49 | 0.57236,0.8616,0.93273 50 | 0.57822,0.86307,0.9333 51 | 0.58404,0.86453,0.93386 52 | 0.58982,0.86599,0.93442 53 | 0.59557,0.86745,0.93499 54 | 0.60128,0.86892,0.93555 55 | 0.60697,0.87037,0.93612 56 | 0.61261,0.87184,0.93668 57 | 0.61823,0.8733,0.93724 58 | 0.62382,0.87476,0.9378 59 | 0.62936,0.87622,0.93837 60 | 0.63489,0.87768,0.93893 61 | 0.64039,0.87913,0.93949 62 | 0.64586,0.88059,0.94005 63 | 0.65131,0.88205,0.94061 64 | 0.65673,0.88351,0.94117 65 | 0.66212,0.88496,0.94173 66 | 0.66749,0.88642,0.94229 67 | 0.67284,0.88787,0.94285 68 | 0.67816,0.88932,0.94341 69 | 0.68346,0.89078,0.94397 70 | 0.68874,0.89223,0.94453 71 | 0.69399,0.89368,0.94509 72 | 0.69923,0.89513,0.94565 73 | 0.70445,0.89658,0.9462 74 | 0.70965,0.89803,0.94676 75 | 0.71483,0.89948,0.94733 76 | 0.71999,0.90093,0.94788 77 | 0.72514,0.90238,0.94844 78 | 0.73026,0.90382,0.949 79 | 0.73536,0.90527,0.94955 80 | 0.74045,0.90672,0.95011 81 | 0.74553,0.90817,0.95067 82 | 0.75059,0.90961,0.95123 83 | 0.75563,0.91105,0.95178 84 | 0.76066,0.9125,0.95233 85 | 0.76567,0.91394,0.95289 86 | 0.77067,0.91538,0.95345 87 | 0.77565,0.91682,0.954 88 | 0.78062,0.91826,0.95456 89 | 0.78558,0.9197,0.95511 90 | 0.79052,0.92114,0.95567 91 | 0.79545,0.92258,0.95622 92 | 0.80037,0.92402,0.95677 93 | 0.80527,0.92546,0.95733 94 | 0.81016,0.9269,0.95789 95 | 0.81505,0.92833,0.95844 96 | 0.81991,0.92977,0.95899 97 | 0.82477,0.93121,0.95954 98 | 0.82962,0.93264,0.9601 99 | 0.83446,0.93407,0.96065 100 | 0.83928,0.93551,0.9612 101 | 0.8441,0.93695,0.96175 102 | 0.8489,0.93838,0.9623 103 | 0.85369,0.93981,0.96286 104 | 0.85848,0.94124,0.96341 105 | 0.86326,0.94267,0.96396 106 | 0.86803,0.9441,0.96451 107 | 0.87278,0.94553,0.96506 108 | 0.87753,0.94696,0.96561 109 | 0.88227,0.94839,0.96616 110 | 0.887,0.94982,0.96671 111 | 0.89172,0.95124,0.96726 112 | 0.89644,0.95267,0.96781 113 | 0.90114,0.9541,0.96836 114 | 0.90585,0.95552,0.9689 115 | 0.91054,0.95694,0.96944 116 | 0.91522,0.95835,0.96997 117 | 0.9199,0.95974,0.97048 118 | 0.92455,0.9611,0.97097 119 | 0.92919,0.96242,0.97141 120 | 0.93379,0.96369,0.97179 121 | 0.93836,0.96486,0.97208 122 | 0.94284,0.96593,0.97226 123 | 0.94723,0.96684,0.97228 124 | 0.95148,0.96757,0.97212 125 | 0.95556,0.96806,0.97173 126 | 0.95941,0.96828,0.97109 127 | 0.963,0.9682,0.97017 128 | 0.96629,0.9678,0.96895 129 | 0.96926,0.96707,0.96743 130 | 0.97189,0.96601,0.9656 131 | 0.97417,0.96464,0.96351 132 | 0.97613,0.96299,0.96117 133 | 0.97779,0.9611,0.95862 134 | 0.97918,0.95899,0.95589 135 | 0.98035,0.95671,0.95302 136 | 0.98133,0.9543,0.95004 137 | 0.98218,0.9518,0.94699 138 | 0.9829,0.94923,0.94388 139 | 0.98355,0.94661,0.94074 140 | 0.98415,0.94395,0.93757 141 | 0.9847,0.94128,0.93439 142 | 0.98522,0.9386,0.9312 143 | 0.98572,0.93591,0.92801 144 | 0.9862,0.93321,0.92482 145 | 0.98668,0.93052,0.92163 146 | 0.98714,0.92782,0.91844 147 | 0.98759,0.92512,0.91525 148 | 0.98804,0.92243,0.91207 149 | 0.98847,0.91973,0.90889 150 | 0.9889,0.91704,0.90572 151 | 0.98932,0.91435,0.90254 152 | 0.98973,0.91165,0.89936 153 | 0.99014,0.90895,0.89619 154 | 0.99053,0.90626,0.89302 155 | 0.99091,0.90356,0.88985 156 | 0.99129,0.90087,0.88668 157 | 0.99166,0.89817,0.88351 158 | 0.99202,0.89548,0.88035 159 | 0.99237,0.89278,0.87718 160 | 0.99272,0.89008,0.87403 161 | 0.99305,0.88739,0.87087 162 | 0.99338,0.88469,0.86772 163 | 0.9937,0.882,0.86456 164 | 0.99401,0.8793,0.86141 165 | 0.99431,0.8766,0.85826 166 | 0.9946,0.87391,0.85511 167 | 0.99489,0.87121,0.85197 168 | 0.99516,0.86852,0.84882 169 | 0.99543,0.86582,0.84568 170 | 0.9957,0.86312,0.84254 171 | 0.99595,0.86043,0.8394 172 | 0.9962,0.85772,0.83627 173 | 0.99643,0.85503,0.83313 174 | 0.99667,0.85234,0.83 175 | 0.99689,0.84964,0.82687 176 | 0.9971,0.84693,0.82374 177 | 0.99731,0.84424,0.82061 178 | 0.99751,0.84154,0.81749 179 | 0.9977,0.83884,0.81437 180 | 0.99789,0.83614,0.81125 181 | 0.99807,0.83344,0.80813 182 | 0.99824,0.83074,0.80502 183 | 0.9984,0.82804,0.8019 184 | 0.99855,0.82534,0.7988 185 | 0.9987,0.82264,0.79568 186 | 0.99884,0.81994,0.79258 187 | 0.99897,0.81724,0.78947 188 | 0.9991,0.81453,0.78637 189 | 0.99921,0.81183,0.78327 190 | 0.99932,0.80913,0.78017 191 | 0.99943,0.80643,0.77708 192 | 0.99952,0.80372,0.77397 193 | 0.99961,0.80102,0.77089 194 | 0.99969,0.79832,0.76779 195 | 0.99976,0.79561,0.76471 196 | 0.99983,0.79291,0.76162 197 | 0.99989,0.7902,0.75854 198 | 0.99994,0.7875,0.75545 199 | 0.99998,0.78479,0.75237 200 | 1,0.78208,0.74929 201 | 1,0.77937,0.74622 202 | 1,0.77667,0.74315 203 | 1,0.77395,0.74008 204 | 1,0.77125,0.737 205 | 1,0.76853,0.73394 206 | 1,0.76583,0.73087 207 | 1,0.76311,0.72781 208 | 1,0.7604,0.72475 209 | 1,0.75769,0.72169 210 | 1,0.75498,0.71863 211 | 0.99998,0.75226,0.71558 212 | 0.99994,0.74954,0.71252 213 | 0.99988,0.74683,0.70948 214 | 0.99983,0.74412,0.70643 215 | 0.99976,0.7414,0.70338 216 | 0.99969,0.73868,0.70034 217 | 0.99961,0.73596,0.69729 218 | 0.99953,0.73324,0.69425 219 | 0.99943,0.73052,0.69122 220 | 0.99934,0.7278,0.68819 221 | 0.99923,0.72508,0.68515 222 | 0.99912,0.72235,0.68212 223 | 0.999,0.71963,0.67909 224 | 0.99888,0.71691,0.67607 225 | 0.99875,0.71418,0.67305 226 | 0.99861,0.71146,0.67003 227 | 0.99846,0.70873,0.667 228 | 0.99831,0.706,0.66399 229 | 0.99816,0.70327,0.66097 230 | 0.99799,0.70054,0.65796 231 | 0.99782,0.6978,0.65494 232 | 0.99765,0.69507,0.65194 233 | 0.99746,0.69234,0.64894 234 | 0.99728,0.6896,0.64593 235 | 0.99708,0.68686,0.64293 236 | 0.99688,0.68412,0.63993 237 | 0.99667,0.68138,0.63694 238 | 0.99646,0.67864,0.63394 239 | 0.99624,0.6759,0.63095 240 | 0.99601,0.67316,0.62796 241 | 0.99578,0.67042,0.62497 242 | 0.99554,0.66767,0.62198 243 | 0.9953,0.66491,0.619 244 | 0.99505,0.66217,0.61602 245 | 0.9948,0.65942,0.61303 246 | 0.99453,0.65667,0.61006 247 | 0.99427,0.65391,0.60709 248 | 0.99399,0.65116,0.60412 249 | 0.99371,0.64839,0.60114 250 | 0.99343,0.64563,0.59817 251 | 0.99314,0.64288,0.59521 252 | 0.99284,0.64012,0.59226 253 | 0.99253,0.63735,0.58928 254 | 0.99222,0.63459,0.58633 255 | 0.99191,0.63182,0.58337 256 | 0.99158,0.62904,0.58043 257 | -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- 1 | # CLAUDE.md 2 | 3 | This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. 4 | 5 | ## Project Overview 6 | 7 | This is a dual-component project: 8 | 1. **scicolor** - A Python package providing curated color maps for scientific visualizations with emphasis on perceptual uniformity and color-blind friendliness 9 | 2. **Scicolor Color Picker** - A Vue.js 3 web application for browsing and selecting colors from the scicolor collection 10 | 11 | ## Repository Structure 12 | 13 | ``` 14 | scicolor/ # Python package 15 | __init__.py # Main package with get_cmap(), list_cmaps(), plot_cmaps() 16 | scientific_colors/ # Scientific colour maps (perceptually uniform) 17 | cet_colors/ # CET color maps 18 | ocean_colors/ # CMOcean color maps 19 | colorpicker/ # Vue.js web application 20 | src/ 21 | components/ # Vue components 22 | router/ # Vue Router configuration 23 | exps/ # Jupyter notebooks for experimentation 24 | ``` 25 | 26 | ## Python Package Development 27 | 28 | This project uses **uv** for dependency management and packaging. 29 | 30 | ### Installation and Testing 31 | ```bash 32 | # Install dependencies and sync virtual environment 33 | uv sync 34 | 35 | # Test the package 36 | uv run python -c "import scicolor; print(scicolor.list_cmaps())" 37 | 38 | # Or activate the virtual environment 39 | source .venv/bin/activate # On Unix/macOS 40 | python -c "import scicolor; print(scicolor.list_cmaps())" 41 | 42 | # Run Jupyter notebooks with uv 43 | uv run jupyter notebook exps/ 44 | ``` 45 | 46 | ### Adding Dependencies 47 | ```bash 48 | # Add a new dependency 49 | uv add package-name 50 | 51 | # Add a development dependency 52 | uv add --dev package-name 53 | ``` 54 | 55 | ### Key Architecture - scicolor Package 56 | 57 | The package uses a registry-based system defined in `scicolor/__init__.py`: 58 | 59 | - **color_info_list**: Central registry of all color maps with metadata (class, type, perceptually_uniform, color_blind_friendly) 60 | - **color_info_df**: Pandas DataFrame built from color_info_list for filtering operations 61 | - Color maps are loaded lazily via source-specific functions: 62 | - `_get_matplotlib_cmap()` - Matplotlib native maps 63 | - `_get_scientific_colors()` - Scientific colour maps (txt files) 64 | - `_get_wesanderson_cmap()` - Wes Anderson palettes (hardcoded hex values) 65 | - `_get_cet_cmap()` - CET maps (CSV format) 66 | - `_get_ocean_cmap()` - Ocean maps (txt files) 67 | - `_get_metbrewer_cmap()` - MetBrewer palettes (hardcoded hex values) 68 | 69 | ### Adding New Color Maps 70 | 71 | To add a new color map to scicolor: 72 | 1. Place color data files in the appropriate directory (e.g., `scicolor/scientific_colors/`) 73 | 2. Add entry to `color_info_list` in `scicolor/__init__.py` with format: 74 | ```python 75 | ["name", "source", "cm_class", "cm_type", perceptually_uniform, color_blind_friendly] 76 | ``` 77 | 3. Ensure the source-specific loader function handles the file format correctly 78 | 4. For hardcoded palettes (wesanderson, metbrewer), add hex values to the mapping dictionary 79 | 80 | ### Color Map Classification 81 | 82 | - **cm_class**: categorical, sequential, diverging, multi_sequential, misc 83 | - **cm_type**: categorical, discrete, continuous 84 | - **perceptually_uniform**: True/False/None - indicates if color transitions are perceptually linear 85 | - **color_blind_friendly**: True/False/None - indicates accessibility for color vision deficiency 86 | 87 | ## Web Application Development 88 | 89 | ### Commands 90 | ```bash 91 | cd colorpicker 92 | 93 | # Install dependencies 94 | npm install 95 | 96 | # Start dev server (http://localhost:5173) 97 | npm run dev 98 | 99 | # Build for production (outputs to dist/) 100 | npm run build 101 | 102 | # Preview production build 103 | npm run preview 104 | ``` 105 | 106 | ### Key Architecture - Web Application 107 | 108 | - **Vue 3 Composition API** with `