├── .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 |
5 |
6 |
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 |
36 |
37 | {{ ToastMessage }}
38 |
39 |
--------------------------------------------------------------------------------
/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 |
36 |
37 |
38 |
46 |
47 |
48 |
51 |
52 |
53 | Copy color code
54 |
55 |
56 | Add to color swatch
57 |
58 |
59 |
60 |
61 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/colorpicker/src/components/ColorSwatch.vue:
--------------------------------------------------------------------------------
1 |
23 |
24 |
25 |
26 |
27 |
35 |
36 |
37 |
42 |
43 |
44 | Copy color code
45 |
46 |
47 | Remove color
48 |
49 |
50 | Move left
51 |
52 |
53 | Move right
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | Remove all colors
62 |
63 |
64 | Copy all color codes
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/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 |
6 |
7 |
8 |
9 |
10 |
11 | Scicolor Color Picker
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Instructions
21 |
22 | Hover over on a color to see its hex code, click on the color to copy the code to your clipboard directly, or add it to the Color Swatches for screening.
23 | Click to copy the whole color palette.
24 |
25 |
About
26 |
27 | This is Kevin 's collection of colors for scientific visualizations.
28 | Currently, only discrete and categorical color schemes are included.
29 | For continuous schemes, check out the Python package scicolor .
30 |
31 |
32 | The color palettes are collected from different sources linked in each color palette.
33 |
34 |
35 | This tool is implemented as a Vue.js app, with Tailwind CSS and daisyUI for styling.
36 | The icons are from Font Awesome .
37 |
38 |
Contribution
39 |
40 | Want to add new color palettes? You can contribute by creating issues or pull requests on GitHub.
41 |
42 |
50 |
51 |
52 |
53 |
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 |
53 |
54 |
55 |
56 | Color Swatches 🎨
57 |
58 |
59 |
60 |
61 |
62 |
Color Collections 🌈
63 |
64 |
65 |
66 |
67 |
68 | Shuffle
69 |
70 |
71 |
72 | Restore
73 |
74 |
75 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/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 `