Compare commits

...

9 commits

Author SHA1 Message Date
winston 335fe429fd
refactor: point to docs/ folder in README for Sass 2023-04-30 22:54:06 +02:00
winston f9385d31c1
chore: remove en-GB spelling 2023-04-30 22:52:44 +02:00
winston 21e24c4b60
refactor: some style reshuffling 2023-04-30 22:52:07 +02:00
winston f086ae53c0
chore: remove en-GB spelling 2023-04-30 22:51:04 +02:00
winston 37e8bd8336
chore: fix typo in changelog 2023-04-30 22:49:56 +02:00
winston f1f6ad3194
refactor: move sass doc to docs/ folder 2023-04-30 22:49:20 +02:00
winston 75d3875693
refactor: generate procreate via node 2023-04-30 22:35:31 +02:00
winston 1392312ef6
refactor: exclude generated palettes from VCS, add GIMP to autogen 2023-04-30 22:08:02 +02:00
winston 41832efd7a
refactor: move SIP generator to src, use yarn 2023-04-30 20:48:21 +02:00
35 changed files with 3743 additions and 7847 deletions

4
.gitignore vendored
View file

@ -1,3 +1,3 @@
dist/
node_modules/
/dist/
/node_modules/
/*.tgz

View file

@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file. See [standa
* add LESS palette ([094ebb6](https://github.com/catppuccin/palette/commit/094ebb62a5229ec0ac77bdaf17d427c16c90d8e0))
* add machine-readable palette ([#45](https://github.com/catppuccin/palette/issues/45)) ([df35c12](https://github.com/catppuccin/palette/commit/df35c12c2fc6d2f7a68315a71fe85327199b883c))
* **less:** add accents mixins ([#47](https://github.com/catppuccin/palette/issues/47)) ([baa0469](https://github.com/catppuccin/palette/commit/baa0469b86b4319b26b1f584827924e562924003))
* **npm:** incluse LESS in package ([e78e016](https://github.com/catppuccin/palette/commit/e78e016e01d0144ad3b594357e230bb0eccf3c60))
* **npm:** include LESS in package ([e78e016](https://github.com/catppuccin/palette/commit/e78e016e01d0144ad3b594357e230bb0eccf3c60))
### [0.1.7](https://github.com/catppuccin/palette/compare/v0.1.6...v0.1.7) (2023-03-03)

View file

@ -1,11 +0,0 @@
LOG_INFO=$(shell date +"%H:%M:%S") \e[0;34mINFO\e[0m
LOG_ERROR=$(shell date +"%H:%M:%S") \e[1;31mERROR\e[0m
LOG_WARNING=$(shell date +"%H:%M:%S") \e[0;33mWARNING\e[0m
LOG_SUCCESS=$(shell date +"%H:%M:%S") \e[0;32mSUCCESS\e[0m
.DEFAULT_GOAL := publish
publish:
@echo -e "$(LOG_INFO) Publishing to NPM..."
@npm publish --access public

View file

@ -33,7 +33,7 @@
- [Gimp](#gimp)
- [Inkscape](#inkscape)
- [Krita](#krita)
- Colour pickers
- Color pickers
- [macOS Color Picker](#macos-color-picker)
- [Sip](#sip)
- Reference
@ -81,7 +81,7 @@ body {
### Sass
The usage instructions for Sass are documented [here](https://github.com/catppuccin/palette/tree/main/scss), in the `scss` folder.
The usage instructions for Sass are documented [here](https://github.com/catppuccin/palette/tree/main/docs/Sass.md), in the `docs` folder.
### Affinity

View file

@ -1,71 +0,0 @@
import {variants,labels} from "./index.js"
import * as fs from 'fs';
const argv = process.argv.slice(2)
let theme = ""
let format = argv[0]
let out_file = argv[1]
function append(str) {
theme = theme + str
}
function write(msg) {
process.stdout.write(msg)
}
function capitalize_first_letter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function write_result(content=theme) {
if (out_file != undefined) {
try {
fs.writeFileSync(out_file, content);
} catch (err) {
console.error(err);
}
return
}
console.log(content)
}
switch (format) {
case 'css':
append(":root {\n")
for (let label in labels) {
for (let palette in variants) {
append("\t--ctp-" + palette + "-" + label + ": " + variants[palette][label]["hex"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-rgb" + ": " + variants[palette][label]["rgb"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-hsl" + ": " + variants[palette][label]["hsl"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-raw" + ": " + variants[palette][label]["raw"] + ";\n")
}
}
append("}")
write_result()
break
case 'json':
append(JSON.stringify(variants))
write_result()
break
case 'markdown':
for (let palette in variants) {
append("| | Labels | Hex | RGB | HSL |\n")
append("| ----------------------------------------------------------------------- | ---------- | --------- | --------------- | --------------- |\n")
for (let label in labels) {
append(`| <img src="assets/palette/circles/.png" height="23" width="23"/> |`)
append(`${capitalize_first_letter(label)}` + "| ")
append(`\`${labels[label][palette]["hex"]} \`` + "| ")
append(`\`${labels[label][palette]["rgb"]} \`` + "| ")
append(`\`${labels[label][palette]["hsl"]} \`` + "| ")
append("\n")
}
append("\n")
}
write_result()
break
default:
console.log('Wrong parameter')
break
}

View file

@ -29,10 +29,10 @@ Output:
## Import the single-map file
Another way to create all four flavours, in a single file, from a single file,
Another way to create all four flavors, in a single file, from a single file,
is to use `_catppuccin.scss`.
**NB**: Due to websafe colors being predefined in CSS, colors like `red`, `green`, `blue` will **not** be generated with this method, **when they are not** explicitly cast as a string. To ensure proper generation, wrap your values with `'`.
**NB**: Due to web safe colors being predefined in CSS, colors like `red`, `green`, `blue` will **not** be generated with this method, **when they are not** explicitly cast as a string. To ensure proper generation, wrap your values with `'`.
In short:\
❌ Don't do this:
@ -47,11 +47,11 @@ Input:
// sass is also part of the npm package:
// @use "~@catppuccin/palette/scss/catppuccin";
@each $flavour, $colour in catppuccin.$palette {
.my-#{flavour}-class {
@each $flavor, $color in catppuccin.$palette {
.my-#{flavor}-class {
// you need surround the catppuccin color names with quotes
background: map-get($colour, 'base');
color: map-get($colour, 'blue');
background: map-get($color, 'base');
color: map-get($color, 'blue');
}
}
```

View file

@ -1,15 +0,0 @@
const esbuild = require('esbuild');
const buildCJS = esbuild.build({
entryPoints: ['./index.js'],
outfile: './dist/index.cjs',
format: 'cjs'
})
const buildESM = esbuild.build({
entryPoints: ['./index.js'],
outfile: './dist/index.mjs',
format: 'esm'
})
Promise.all([buildCJS, buildESM]).catch(() => process.exit(1))

View file

@ -1,29 +0,0 @@
GIMP Palette
#Palette Name: Catppuccin Frappe
#Colors: 26
242 213 207 f2d5cf
238 190 190 eebebe
244 184 228 f4b8e4
202 158 230 ca9ee6
231 130 132 e78284
234 153 156 ea999c
239 159 118 ef9f76
229 200 144 e5c890
166 209 137 a6d189
129 200 190 81c8be
153 209 219 99d1db
133 193 220 85c1dc
140 170 238 8caaee
186 187 241 babbf1
198 208 245 c6d0f5
181 191 226 b5bfe2
165 173 206 a5adce
148 156 187 949cbb
131 139 167 838ba7
115 121 148 737994
98 104 128 626880
81 87 109 51576d
65 69 89 414559
48 52 70 303446
41 44 60 292c3c
35 38 52 232634

View file

@ -1,29 +0,0 @@
GIMP Palette
#Palette Name: Catppuccin Latte
#Colors: 26
220 138 120 dc8a78
221 120 120 dd7878
234 118 203 ea76cb
136 57 239 8839ef
210 15 57 d20f39
230 69 83 e64553
254 100 11 fe640b
223 142 29 df8e1d
64 160 43 40a02b
23 146 153 179299
4 165 229 04a5e5
32 159 181 209fb5
30 102 245 1e66f5
114 135 253 7287fd
76 79 105 4c4f69
92 95 119 5c5f77
108 111 133 6c6f85
124 127 147 7c7f93
140 143 161 8c8fa1
156 160 176 9ca0b0
172 176 190 acb0be
188 192 204 bcc0cc
204 208 218 ccd0da
220 224 232 dce0e8
230 233 239 e6e9ef
239 241 245 eff1f5

View file

@ -1,29 +0,0 @@
GIMP Palette
#Palette Name: Catppuccin Macchiato
#Colors: 26
244 219 214 f4dbd6
240 198 198 f0c6c6
245 189 230 f5bde6
198 160 246 c6a0f6
237 135 150 ed8796
238 153 160 ee99a0
245 169 127 f5a97f
238 212 159 eed49f
166 218 149 a6da95
139 213 202 8bd5ca
145 215 227 91d7e3
125 196 228 7dc4e4
138 173 244 8aadf4
183 189 248 b7bdf8
202 211 245 cad3f5
184 192 224 b8c0e0
165 173 203 a5adcb
147 154 183 939ab7
128 135 162 8087a2
110 115 141 6e738d
91 96 120 5b6078
73 77 100 494d64
54 58 79 363a4f
36 39 58 24273a
30 32 48 1e2030
24 25 38 181926

View file

@ -1,29 +0,0 @@
GIMP Palette
#Palette Name: Catppuccin Mocha
#Colors: 26
245 224 220 f5e0dc
242 205 205 f2cdcd
245 194 231 f5c2e7
203 166 247 cba6f7
243 139 168 f38ba8
235 160 172 eba0ac
250 179 135 fab387
249 226 175 f9e2af
166 227 161 a6e3a1
148 226 213 94e2d5
137 220 235 89dceb
116 199 236 74c7ec
137 180 250 89b4fa
180 190 254 b4befe
205 214 244 cdd6f4
186 194 222 bac2de
166 173 200 a6adc8
147 153 178 9399b2
127 132 156 7f849c
108 112 134 6c7086
88 91 112 585b70
69 71 90 45475a
49 50 68 313244
30 30 46 1e1e2e
24 24 37 181825
17 17 27 11111b

143
index.d.ts vendored
View file

@ -1,143 +0,0 @@
/**
* Catppuccin variants
*/
export namespace variants {
/**
* Light variant
*/
const latte: Labels<Color, AlphaColor>
/**
* Low-saturation, low-contrast dark variant
*/
const frappe: Labels<Color, AlphaColor>
/**
* Mid-saturation, mid-contrast dark variant
*/
const macchiato: Labels<Color, AlphaColor>
/**
* High-saturation, High-contrast dark variant
*/
const mocha: Labels<Color, AlphaColor>
}
/**
* Palette labels
*/
export namespace labels {
const rosewater: Variants<Color>
const flamingo: Variants<Color>
const pink: Variants<Color>
const mauve: Variants<Color>
const red: Variants<Color>
const maroon: Variants<Color>
const peach: Variants<Color>
const yellow: Variants<Color>
const green: Variants<Color>
const teal: Variants<Color>
const sky: Variants<Color>
const sapphire: Variants<Color>
const blue: Variants<Color>
const lavender: Variants<Color>
const surface2: Variants<AlphaColor>
const subtext0: Variants<AlphaColor>
const subtext1: Variants<AlphaColor>
const overlay0: Variants<AlphaColor>
const overlay2: Variants<AlphaColor>
const surface0: Variants<AlphaColor>
const text: Variants<AlphaColor>
const overlay1: Variants<AlphaColor>
const surface1: Variants<AlphaColor>
const base: Variants<AlphaColor>
const mantle: Variants<AlphaColor>
const crust: Variants<AlphaColor>
}
export default palette
export interface Color {
/**
* Formatted hex value
* @example #babbf1
*/
hex: string
/**
* Formatted rgb value
* @example rgb(186, 187, 241)
*/
rgb: string
/**
* Formatted hsl value
* @example hsl(239, 66%, 84%)
*/
hsl: string
}
export interface AlphaColor extends Color {
alpha: Color
}
export interface Labels<T, U> {
rosewater: T
flamingo: T
pink: T
mauve: T
red: T
maroon: T
peach: T
yellow: T
green: T
teal: T
sky: T
sapphire: T
blue: T
lavender: T
text: U
subtext1: U
subtext0: U
overlay2: U
overlay1: U
overlay0: U
surface2: U
surface1: U
surface0: U
base: U
mantle: U
crust: U
}
export interface Variants<T> {
/**
* Light variant
*/
latte: T
/**
* Low-saturation, low-contrast dark variant
*/
frappe: T
/**
* Mid-saturation, mid-contrast dark variant
*/
macchiato: T
/**
* High-saturation, High-contrast dark variant
*/
mocha: T
}
declare namespace palette {
/**
* Palette variants
*/
const variants: Variants<Labels<Color, AlphaColor>>
/**
* Palette labels
*/
const labels: Labels<Variants<Color>, Variants<Color>>
}

905
index.js
View file

@ -1,905 +0,0 @@
const latte = {
rosewater: {
hex: '#dc8a78',
rgb: 'rgb(220, 138, 120)',
hsl: 'hsl(11, 59%, 67%)',
raw: '220, 138, 120'
},
flamingo: {
hex: '#dd7878',
rgb: 'rgb(221, 120, 120)',
hsl: 'hsl(0, 60%, 67%)',
raw: '221, 120, 120'
},
pink: {
hex: '#ea76cb',
rgb: 'rgb(234, 118, 203)',
hsl: 'hsl(316, 73%, 69%)',
raw: '234, 118, 203'
},
mauve: {
hex: '#8839ef',
rgb: 'rgb(136, 57, 239)',
hsl: 'hsl(266, 85%, 58%)',
raw: '136, 57, 239'
},
red: {
hex: '#d20f39',
rgb: 'rgb(210, 15, 57)',
hsl: 'hsl(347, 87%, 44%)',
raw: '210, 15, 57'
},
maroon: {
hex: '#e64553',
rgb: 'rgb(230, 69, 83)',
hsl: 'hsl(355, 76%, 59%)',
raw: '230, 69, 83'
},
peach: {
hex: '#fe640b',
rgb: 'rgb(254, 100, 11)',
hsl: 'hsl(22, 99%, 52%)',
raw: '254, 100, 11'
},
yellow: {
hex: '#df8e1d',
rgb: 'rgb(223, 142, 29)',
hsl: 'hsl(35, 77%, 49%)',
raw: '223, 142, 29'
},
green: {
hex: '#40a02b',
rgb: 'rgb(64, 160, 43)',
hsl: 'hsl(109, 58%, 40%)',
raw: '64, 160, 43'
},
teal: {
hex: '#179299',
rgb: 'rgb(23, 146, 153)',
hsl: 'hsl(183, 74%, 35%)',
raw: '23, 146, 153'
},
sky: {
hex: '#04a5e5',
rgb: 'rgb(4, 165, 229)',
hsl: 'hsl(197, 97%, 46%)',
raw: '4, 165, 229'
},
sapphire: {
hex: '#209fb5',
rgb: 'rgb(32, 159, 181)',
hsl: 'hsl(189, 70%, 42%)',
raw: '32, 159, 181'
},
blue: {
hex: '#1e66f5',
rgb: 'rgb(30, 102, 245)',
hsl: 'hsl(220, 91%, 54%)',
raw: '30, 102, 245'
},
lavender: {
hex: '#7287fd',
rgb: 'rgb(114, 135, 253)',
hsl: 'hsl(231, 97%, 72%)',
raw: '114, 135, 253'
},
text: {
hex: '#4c4f69',
rgb: 'rgb(76, 79, 105)',
hsl: 'hsl(234, 16%, 35%)',
raw: '76, 79, 105'
},
subtext1: {
hex: '#5c5f77',
rgb: 'rgb(92, 95, 119)',
hsl: 'hsl(233, 13%, 41%)',
raw: '92, 95, 119'
},
subtext0: {
hex: '#6c6f85',
rgb: 'rgb(108, 111, 133)',
hsl: 'hsl(233, 10%, 47%)',
raw: '108, 111, 133'
},
overlay2: {
hex: '#7c7f93',
rgb: 'rgb(124, 127, 147)',
hsl: 'hsl(232, 10%, 53%)',
raw: '124, 127, 147'
},
overlay1: {
hex: '#8c8fa1',
rgb: 'rgb(140, 143, 161)',
hsl: 'hsl(231, 10%, 59%)',
raw: '140, 143, 161'
},
overlay0: {
hex: '#9ca0b0',
rgb: 'rgb(156, 160, 176)',
hsl: 'hsl(228, 11%, 65%)',
raw: '156, 160, 176'
},
surface2: {
hex: '#acb0be',
rgb: 'rgb(172, 176, 190)',
hsl: 'hsl(227, 12%, 71%)',
raw: '172, 176, 190'
},
surface1: {
hex: '#bcc0cc',
rgb: 'rgb(188, 192, 204)',
hsl: 'hsl(225, 14%, 77%)',
raw: '188, 192, 204'
},
surface0: {
hex: '#ccd0da',
rgb: 'rgb(204, 208, 218)',
hsl: 'hsl(223, 16%, 83%)',
raw: '204, 208, 218'
},
base: {
hex: '#eff1f5',
rgb: 'rgb(239, 241, 245)',
hsl: 'hsl(220, 23%, 95%)',
raw: '239, 241, 245'
},
mantle: {
hex: '#e6e9ef',
rgb: 'rgb(230, 233, 239)',
hsl: 'hsl(220, 22%, 92%)',
raw: '230, 233, 239'
},
crust: {
hex: '#dce0e8',
rgb: 'rgb(220, 224, 232)',
hsl: 'hsl(220, 21%, 89%)',
raw: '220, 224, 232'
}
}
const frappe = {
rosewater: {
hex: '#f2d5cf',
rgb: 'rgb(242, 213, 207)',
hsl: 'hsl(10, 57%, 88%)',
raw: '242, 213, 207'
},
flamingo: {
hex: '#eebebe',
rgb: 'rgb(238, 190, 190)',
hsl: 'hsl(0, 59%, 84%)',
raw: '238, 190, 190',
},
pink: {
hex: '#f4b8e4',
rgb: 'rgb(244, 184, 228)',
hsl: 'hsl(316, 73%, 84%)',
raw: '244, 184, 228',
},
mauve: {
hex: '#ca9ee6',
rgb: 'rgb(202, 158, 230)',
hsl: 'hsl(277, 59%, 76%)',
raw: '202, 158, 230',
},
red: {
hex: '#e78284',
rgb: 'rgb(231, 130, 132)',
hsl: 'hsl(359, 68%, 71%)',
raw: '231, 130, 132',
},
maroon: {
hex: '#ea999c',
rgb: 'rgb(234, 153, 156)',
hsl: 'hsl(358, 66%, 76%)',
raw: '234, 153, 156',
},
peach: {
hex: '#ef9f76',
rgb: 'rgb(239, 159, 118)',
hsl: 'hsl(20, 79%, 70%)',
raw: '239, 159, 118',
},
yellow: {
hex: '#e5c890',
rgb: 'rgb(229, 200, 144)',
hsl: 'hsl(40, 62%, 73%)',
raw: '229, 200, 144',
},
green: {
hex: '#a6d189',
rgb: 'rgb(166, 209, 137)',
hsl: 'hsl(96, 44%, 68%)',
raw: '166, 209, 137',
},
teal: {
hex: '#81c8be',
rgb: 'rgb(129, 200, 190)',
hsl: 'hsl(172, 39%, 65%)',
raw: '129, 200, 190',
},
sky: {
hex: '#99d1db',
rgb: 'rgb(153, 209, 219)',
hsl: 'hsl(189, 48%, 73%)',
raw: '153, 209, 219',
},
sapphire: {
hex: '#85c1dc',
rgb: 'rgb(133, 193, 220)',
hsl: 'hsl(199, 55%, 69%)',
raw: '133, 193, 220',
},
blue: {
hex: '#8caaee',
rgb: 'rgb(140, 170, 238)',
hsl: 'hsl(222, 74%, 74%)',
raw: '140, 170, 238',
},
lavender: {
hex: '#babbf1',
rgb: 'rgb(186, 187, 241)',
hsl: 'hsl(239, 66%, 84%)',
raw: '186, 187, 241',
},
text: {
hex: '#c6d0f5',
rgb: 'rgb(198, 208, 245)',
hsl: 'hsl(227, 70%, 87%)',
raw: '198, 208, 245'
},
subtext1: {
hex: '#b5bfe2',
rgb: 'rgb(181, 191, 226)',
hsl: 'hsl(227, 44%, 80%)',
raw: '181, 191, 226'
},
subtext0: {
hex: '#a5adce',
rgb: 'rgb(165, 173, 206)',
hsl: 'hsl(228, 29%, 73%)',
raw: '165, 173, 206'
},
overlay2: {
hex: '#949cbb',
rgb: 'rgb(148, 156, 187)',
hsl: 'hsl(228, 22%, 66%)',
raw: '148, 156, 187',
},
overlay1: {
hex: '#838ba7',
rgb: 'rgb(131, 139, 167)',
hsl: 'hsl(227, 17%, 58%)',
raw: '131, 139, 167',
},
overlay0: {
hex: '#737994',
rgb: 'rgb(115, 121, 148)',
hsl: 'hsl(229, 13%, 52%)',
raw: '115, 121, 148',
},
surface2: {
hex: '#626880',
rgb: 'rgb(98, 104, 128)',
hsl: 'hsl(228, 13%, 44%)',
raw: '98, 104, 128',
},
surface1: {
hex: '#51576d',
rgb: 'rgb(81, 87, 109)',
hsl: 'hsl(227, 15%, 37%)',
raw: '81, 87, 109',
},
surface0: {
hex: '#414559',
rgb: 'rgb(65, 69, 89)',
hsl: 'hsl(230, 16%, 30%)',
raw: '65, 69, 89',
},
base: {
hex: '#303446',
rgb: 'rgb(48, 52, 70)',
hsl: 'hsl(229, 19%, 23%)',
raw: '48, 52, 70',
},
mantle: {
hex: '#292c3c',
rgb: 'rgb(41, 44, 60)',
hsl: 'hsl(231, 19%, 20%)',
raw: '41, 44, 60',
},
crust: {
hex: '#232634',
rgb: 'rgb(35, 38, 52)',
hsl: 'hsl(229, 20%, 17%)',
raw: '35, 38, 52',
},
}
const macchiato = {
rosewater: {
hex: '#f4dbd6',
rgb: 'rgb(244, 219, 214)',
hsl: 'hsl(10, 58%, 90%)',
raw: '244, 219, 214',
},
flamingo: {
hex: '#f0c6c6',
rgb: 'rgb(240, 198, 198)',
hsl: 'hsl(0, 58%, 86%)',
raw: '240, 198, 198',
},
pink: {
hex: '#f5bde6',
rgb: 'rgb(245, 189, 230)',
hsl: 'hsl(316, 74%, 85%)',
raw: '245, 189, 230',
},
mauve: {
hex: '#c6a0f6',
rgb: 'rgb(198, 160, 246)',
hsl: 'hsl(267, 83%, 80%)',
raw: '198, 160, 246',
},
red: {
hex: '#ed8796',
rgb: 'rgb(237, 135, 150)',
hsl: 'hsl(351, 74%, 73%)',
raw: '237, 135, 150',
},
maroon: {
hex: '#ee99a0',
rgb: 'rgb(238, 153, 160)',
hsl: 'hsl(355, 71%, 77%)',
raw: '238, 153, 160',
},
peach: {
hex: '#f5a97f',
rgb: 'rgb(245, 169, 127)',
hsl: 'hsl(21, 86%, 73%)',
raw: '245, 169, 127',
},
yellow: {
hex: '#eed49f',
rgb: 'rgb(238, 212, 159)',
hsl: 'hsl(40, 70%, 78%)',
raw: '238, 212, 159',
},
green: {
hex: '#a6da95',
rgb: 'rgb(166, 218, 149)',
hsl: 'hsl(105, 48%, 72%)',
raw: '166, 218, 149',
},
teal: {
hex: '#8bd5ca',
rgb: 'rgb(139, 213, 202)',
hsl: 'hsl(171, 47%, 69%)',
raw: '139, 213, 202',
},
sky: {
hex: '#91d7e3',
rgb: 'rgb(145, 215, 227)',
hsl: 'hsl(189, 59%, 73%)',
raw: '145, 215, 227',
},
sapphire: {
hex: '#7dc4e4',
rgb: 'rgb(125, 196, 228)',
hsl: 'hsl(199, 66%, 69%)',
raw: '125, 196, 228',
},
blue: {
hex: '#8aadf4',
rgb: 'rgb(138, 173, 244)',
hsl: 'hsl(220, 83%, 75%)',
raw: '138, 173, 244',
},
lavender: {
hex: '#b7bdf8',
rgb: 'rgb(183, 189, 248)',
hsl: 'hsl(234, 82%, 85%)',
raw: '183, 189, 248',
},
text: {
hex: '#cad3f5',
rgb: 'rgb(202, 211, 245)',
hsl: 'hsl(227, 68%, 88%)',
raw: '202, 211, 245',
},
subtext1: {
hex: '#b8c0e0',
rgb: 'rgb(184, 192, 224)',
hsl: 'hsl(228, 39%, 80%)',
raw: '184, 192, 224',
},
subtext0: {
hex: '#a5adcb',
rgb: 'rgb(165, 173, 203)',
hsl: 'hsl(227, 27%, 72%)',
raw: '165, 173, 203',
},
overlay2: {
hex: '#939ab7',
rgb: 'rgb(147, 154, 183)',
hsl: 'hsl(228, 20%, 65%)',
raw: '147, 154, 183',
},
overlay1: {
hex: '#8087a2',
rgb: 'rgb(128, 135, 162)',
hsl: 'hsl(228, 15%, 57%)',
raw: '128, 135, 162',
},
overlay0: {
hex: '#6e738d',
rgb: 'rgb(110, 115, 141)',
hsl: 'hsl(230, 12%, 49%)',
raw: '110, 115, 141',
},
surface2: {
hex: '#5b6078',
rgb: 'rgb(91, 96, 120)',
hsl: 'hsl(230, 14%, 41%)',
raw: '91, 96, 120',
},
surface1: {
hex: '#494d64',
rgb: 'rgb(73, 77, 100)',
hsl: 'hsl(231, 16%, 34%)',
raw: '73, 77, 100',
},
surface0: {
hex: '#363a4f',
rgb: 'rgb(54, 58, 79)',
hsl: 'hsl(230, 19%, 26%)',
raw: '54, 58, 79',
},
base: {
hex: '#24273a',
rgb: 'rgb(36, 39, 58)',
hsl: 'hsl(232, 23%, 18%)',
raw: '36, 39, 58',
},
mantle: {
hex: '#1e2030',
rgb: 'rgb(30, 32, 48)',
hsl: 'hsl(233, 23%, 15%)',
raw: '30, 32, 48',
},
crust: {
hex: '#181926',
rgb: 'rgb(24, 25, 38)',
hsl: 'hsl(236, 23%, 12%)',
raw: '24, 25, 38',
},
}
const mocha = {
rosewater: {
hex: '#f5e0dc',
rgb: 'rgb(245, 224, 220)',
hsl: 'hsl(10, 56%, 91%)',
raw: '245, 224, 220',
},
flamingo: {
hex: '#f2cdcd',
rgb: 'rgb(242, 205, 205)',
hsl: 'hsl(0, 59%, 88%)',
raw: '242, 205, 205',
},
pink: {
hex: '#f5c2e7',
rgb: 'rgb(245, 194, 231)',
hsl: 'hsl(316, 72%, 86%)',
raw: '245, 194, 231',
},
mauve: {
hex: '#cba6f7',
rgb: 'rgb(203, 166, 247)',
hsl: 'hsl(267, 84%, 81%)',
raw: '203, 166, 247',
},
red: {
hex: '#f38ba8',
rgb: 'rgb(243, 139, 168)',
hsl: 'hsl(343, 81%, 75%)',
raw: '243, 139, 168',
},
maroon: {
hex: '#eba0ac',
rgb: 'rgb(235, 160, 172)',
hsl: 'hsl(350, 65%, 77%)',
raw: '235, 160, 172',
},
peach: {
hex: '#fab387',
rgb: 'rgb(250, 179, 135)',
hsl: 'hsl(23, 92%, 75%)',
raw: '250, 179, 135',
},
yellow: {
hex: '#f9e2af',
rgb: 'rgb(249, 226, 175)',
hsl: 'hsl(41, 86%, 83%)',
raw: '249, 226, 175',
},
green: {
hex: '#a6e3a1',
rgb: 'rgb(166, 227, 161)',
hsl: 'hsl(115, 54%, 76%)',
raw: '166, 227, 161',
},
teal: {
hex: '#94e2d5',
rgb: 'rgb(148, 226, 213)',
hsl: 'hsl(170, 57%, 73%)',
raw: '148, 226, 213',
},
sky: {
hex: '#89dceb',
rgb: 'rgb(137, 220, 235)',
hsl: 'hsl(189, 71%, 73%)',
raw: '137, 220, 235',
},
sapphire: {
hex: '#74c7ec',
rgb: 'rgb(116, 199, 236)',
hsl: 'hsl(199, 76%, 69%)',
raw: '116, 199, 236',
},
blue: {
hex: '#89b4fa',
rgb: 'rgb(137, 180, 250)',
hsl: 'hsl(217, 92%, 76%)',
raw: '137, 180, 250',
},
lavender: {
hex: '#b4befe',
rgb: 'rgb(180, 190, 254)',
hsl: 'hsl(232, 97%, 85%)',
raw: '180, 190, 254',
},
text: {
hex: '#cdd6f4',
rgb: 'rgb(205, 214, 244)',
hsl: 'hsl(226, 64%, 88%)',
raw: '205, 214, 244',
},
subtext1: {
hex: '#bac2de',
rgb: 'rgb(186, 194, 222)',
hsl: 'hsl(227, 35%, 80%)',
raw: '186, 194, 222',
},
subtext0: {
hex: '#a6adc8',
rgb: 'rgb(166, 173, 200)',
hsl: 'hsl(228, 24%, 72%)',
raw: '166, 173, 200',
},
overlay2: {
hex: '#9399b2',
rgb: 'rgb(147, 153, 178)',
hsl: 'hsl(228, 17%, 64%)',
raw: '147, 153, 178',
},
overlay1: {
hex: '#7f849c',
rgb: 'rgb(127, 132, 156)',
hsl: 'hsl(230, 13%, 55%)',
raw: '127, 132, 156',
},
overlay0: {
hex: '#6c7086',
rgb: 'rgb(108, 112, 134)',
hsl: 'hsl(231, 11%, 47%)',
raw: '108, 112, 134',
},
surface2: {
hex: '#585b70',
rgb: 'rgb(88, 91, 112)',
hsl: 'hsl(233, 12%, 39%)',
raw: '88, 91, 112',
},
surface1: {
hex: '#45475a',
rgb: 'rgb(69, 71, 90)',
hsl: 'hsl(234, 13%, 31%)',
raw: '69, 71, 90',
},
surface0: {
hex: '#313244',
rgb: 'rgb(49, 50, 68)',
hsl: 'hsl(237, 16%, 23%)',
raw: '49, 50, 68',
},
base: {
hex: '#1e1e2e',
rgb: 'rgb(30, 30, 46)',
hsl: 'hsl(240, 21%, 15%)',
raw: '30, 30, 46',
},
mantle: {
hex: '#181825',
rgb: 'rgb(24, 24, 37)',
hsl: 'hsl(240, 21%, 12%)',
raw: '24, 24, 37',
},
crust: {
hex: '#11111b',
rgb: 'rgb(17, 17, 27)',
hsl: 'hsl(240, 23%, 9%)',
raw: '17, 17, 27',
},
}
const palettes = {
variants: {
latte,
frappe,
macchiato,
mocha,
},
labels: {
rosewater: {
latte: latte.rosewater,
frappe: frappe.rosewater,
macchiato: macchiato.rosewater,
mocha: mocha.rosewater,
},
flamingo: {
latte: latte.flamingo,
frappe: frappe.flamingo,
macchiato: macchiato.flamingo,
mocha: mocha.flamingo,
},
pink: {
latte: latte.pink,
frappe: frappe.pink,
macchiato: macchiato.pink,
mocha: mocha.pink,
},
mauve: {
latte: latte.mauve,
frappe: frappe.mauve,
macchiato: macchiato.mauve,
mocha: mocha.mauve,
},
red: {
latte: latte.red,
frappe: frappe.red,
macchiato: macchiato.red,
mocha: mocha.red,
},
maroon: {
latte: latte.maroon,
frappe: frappe.maroon,
macchiato: macchiato.maroon,
mocha: mocha.maroon,
},
peach: {
latte: latte.peach,
frappe: frappe.peach,
macchiato: macchiato.peach,
mocha: mocha.peach,
},
yellow: {
latte: latte.yellow,
frappe: frappe.yellow,
macchiato: macchiato.yellow,
mocha: mocha.yellow,
},
green: {
latte: latte.green,
frappe: frappe.green,
macchiato: macchiato.green,
mocha: mocha.green,
},
teal: {
latte: latte.teal,
frappe: frappe.teal,
macchiato: macchiato.teal,
mocha: mocha.teal,
},
sky: {
latte: latte.sky,
frappe: frappe.sky,
macchiato: macchiato.sky,
mocha: mocha.sky,
},
sapphire: {
latte: latte.sapphire,
frappe: frappe.sapphire,
macchiato: macchiato.sapphire,
mocha: mocha.sapphire,
},
blue: {
latte: latte.blue,
frappe: frappe.blue,
macchiato: macchiato.blue,
mocha: mocha.blue,
},
lavender: {
latte: latte.lavender,
frappe: frappe.lavender,
macchiato: macchiato.lavender,
mocha: mocha.lavender,
},
text: {
latte: latte.text,
frappe: frappe.text,
macchiato: macchiato.text,
mocha: mocha.text,
},
subtext1: {
latte: latte.subtext1,
frappe: frappe.subtext1,
macchiato: macchiato.subtext1,
mocha: mocha.subtext1,
},
subtext0: {
latte: latte.subtext0,
frappe: frappe.subtext0,
macchiato: macchiato.subtext0,
mocha: mocha.subtext0,
},
overlay2: {
latte: latte.overlay2,
frappe: frappe.overlay2,
macchiato: macchiato.overlay2,
mocha: mocha.overlay2,
},
overlay1: {
latte: latte.overlay1,
frappe: frappe.overlay1,
macchiato: macchiato.overlay1,
mocha: mocha.overlay1,
},
overlay0: {
latte: latte.overlay0,
frappe: frappe.overlay0,
macchiato: macchiato.overlay0,
mocha: mocha.overlay0,
},
surface2: {
latte: latte.surface2,
frappe: frappe.surface2,
macchiato: macchiato.surface2,
mocha: mocha.surface2,
},
surface1: {
latte: latte.surface1,
frappe: frappe.surface1,
macchiato: macchiato.surface1,
mocha: mocha.surface1,
},
surface0: {
latte: latte.surface0,
frappe: frappe.surface0,
macchiato: macchiato.surface0,
mocha: mocha.surface0,
},
base: {
latte: latte.base,
frappe: frappe.base,
macchiato: macchiato.base,
mocha: mocha.base,
},
mantle: {
latte: latte.mantle,
frappe: frappe.mantle,
macchiato: macchiato.mantle,
mocha: mocha.mantle,
},
crust: {
latte: latte.crust,
frappe: frappe.crust,
macchiato: macchiato.crust,
mocha: mocha.crust,
},
},
}
export const {variants, labels} = palettes
export default palettes

4075
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,7 @@
"./less/*": "./less/*"
},
"scripts": {
"test": "ava",
"build:npm": "node esbuild.js",
"build:npm": "tsup",
"build:json": "jq -f porcelain.jq palette.json > palette-porcelain.json",
"build": "npm run build:npm && npm run build:json",
"prepublishOnly": "npm run build",
@ -63,6 +62,10 @@
"devDependencies": {
"ava": "^4.2.0",
"esbuild": "^0.14.42",
"standard-version": "^9.5.0"
"procreate-swatches": "^0.1.1",
"standard-version": "^9.5.0",
"ts-node": "^10.9.1",
"tsup": "^6.7.0",
"typescript": "^5.0.4"
}
}

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,29 +0,0 @@
#!/usr/bin/env deno run --allow-read --allow-write --allow-env
import { createSwatchesFile } from "npm:procreate-swatches";
const capitalize = (str: string) => str[0].toUpperCase() + str.slice(1);
type Color = {
hex: string;
rgb: string;
hsl: string;
};
type Palette = Record<string, Color>;
const library: Palette[] = JSON.parse(
await Deno.readTextFile("../palette.json"),
);
for (const palette in library) {
const colours: Palette = library[palette];
const rgbValues = Object.values(colours).map((colour) => [
colour.rgb.match(/\d+/g),
"rgb",
]);
const name = `Catppuccin ${capitalize(palette)}`;
const data: ArrayBuffer = await createSwatchesFile(name, rgbValues);
Deno.writeFileSync(`./${name}.swatches`, new Uint8Array(data));
}

View file

@ -1,253 +0,0 @@
{
"cloud": true,
"updatedAt": "2022-08-23 01:31:31",
"sip": {
"version": "2.6",
"build": "260"
},
"id": "18DF7B36-98A0-4D73-82E3-8053B97ECAE8",
"readOnly": false,
"createdAt": "2022-08-23 01:31:31",
"dock": false,
"name": "Catppuccin Frappe",
"index": 1,
"originalName": "Catppuccin Frappe",
"like": false,
"colors": [
{
"alpha": 1,
"red": 0.9490196078431372,
"green": 0.8352941176470589,
"blue": 0.8117647058823529,
"name": "rosewater",
"createdAt": "2022-08-23 01:31:31",
"id": "2BBD6092-96CF-45B5-808E-775E185C2869"
},
{
"alpha": 1,
"red": 0.9333333333333333,
"green": 0.7450980392156863,
"blue": 0.7450980392156863,
"name": "flamingo",
"createdAt": "2022-08-23 01:31:31",
"id": "AB8F1569-301B-4539-8561-CE465F1417F1"
},
{
"alpha": 1,
"red": 0.9568627450980393,
"green": 0.7215686274509804,
"blue": 0.8941176470588236,
"name": "pink",
"createdAt": "2022-08-23 01:31:31",
"id": "DE9DF984-4032-4BD6-AFAE-34736C2320DB"
},
{
"alpha": 1,
"red": 0.792156862745098,
"green": 0.6196078431372549,
"blue": 0.9019607843137255,
"name": "mauve",
"createdAt": "2022-08-23 01:31:31",
"id": "76B8F52F-4C6E-4CB7-8DCF-9DD857E32FFF"
},
{
"alpha": 1,
"red": 0.9058823529411765,
"green": 0.5098039215686274,
"blue": 0.5176470588235295,
"name": "red",
"createdAt": "2022-08-23 01:31:31",
"id": "AD9537BB-373A-4066-BEAD-2694E7E9C749"
},
{
"alpha": 1,
"red": 0.9176470588235294,
"green": 0.6,
"blue": 0.611764705882353,
"name": "maroon",
"createdAt": "2022-08-23 01:31:31",
"id": "D27F29E6-D672-4B03-B51B-E425894A1340"
},
{
"alpha": 1,
"red": 0.9372549019607843,
"green": 0.6235294117647059,
"blue": 0.4627450980392157,
"name": "peach",
"createdAt": "2022-08-23 01:31:31",
"id": "91CBE236-CC9E-49BA-9EEA-3A9000DA2CC0"
},
{
"alpha": 1,
"red": 0.8980392156862745,
"green": 0.7843137254901961,
"blue": 0.5647058823529412,
"name": "yellow",
"createdAt": "2022-08-23 01:31:31",
"id": "D47DA9C1-F2DC-4DE9-911E-C6677EFC25E1"
},
{
"alpha": 1,
"red": 0.6509803921568628,
"green": 0.8196078431372549,
"blue": 0.5372549019607843,
"name": "green",
"createdAt": "2022-08-23 01:31:31",
"id": "39BC3F76-E1F0-45C0-B15F-579D99FEF475"
},
{
"alpha": 1,
"red": 0.5058823529411764,
"green": 0.7843137254901961,
"blue": 0.7450980392156863,
"name": "teal",
"createdAt": "2022-08-23 01:31:31",
"id": "A63AC2B1-5623-4D75-9B81-BB1063D9A2E2"
},
{
"alpha": 1,
"red": 0.6,
"green": 0.8196078431372549,
"blue": 0.8588235294117647,
"name": "sky",
"createdAt": "2022-08-23 01:31:31",
"id": "290B14B0-9875-4C82-9830-6147EB6D3787"
},
{
"alpha": 1,
"red": 0.5215686274509804,
"green": 0.7568627450980392,
"blue": 0.8627450980392157,
"name": "sapphire",
"createdAt": "2022-08-23 01:31:31",
"id": "0FE2C14B-10A4-435C-BBA3-559CE6463A42"
},
{
"alpha": 1,
"red": 0.5490196078431373,
"green": 0.6666666666666666,
"blue": 0.9333333333333333,
"name": "blue",
"createdAt": "2022-08-23 01:31:31",
"id": "D0588520-8C18-4F0D-902F-E0229DE57322"
},
{
"alpha": 1,
"red": 0.7294117647058823,
"green": 0.7333333333333333,
"blue": 0.9450980392156862,
"name": "lavender",
"createdAt": "2022-08-23 01:31:31",
"id": "422E7A8C-642B-4C2F-AFF2-14858C35A454"
},
{
"alpha": 1,
"red": 0.7764705882352941,
"green": 0.8156862745098039,
"blue": 0.9607843137254902,
"name": "text",
"createdAt": "2022-08-23 01:31:31",
"id": "C34B6817-F9A6-4C3E-971A-9C5A9BD9C87A"
},
{
"alpha": 1,
"red": 0.7098039215686275,
"green": 0.7490196078431373,
"blue": 0.8862745098039215,
"name": "subtext1",
"createdAt": "2022-08-23 01:31:31",
"id": "4AB04B63-C58D-453A-91DE-67F4A2A5CD29"
},
{
"alpha": 1,
"red": 0.6470588235294118,
"green": 0.6784313725490196,
"blue": 0.807843137254902,
"name": "subtext0",
"createdAt": "2022-08-23 01:31:31",
"id": "79A2C117-561B-4A03-BFE0-AD3C1C3E07C7"
},
{
"alpha": 1,
"red": 0.5803921568627451,
"green": 0.611764705882353,
"blue": 0.7333333333333333,
"name": "overlay2",
"createdAt": "2022-08-23 01:31:31",
"id": "AA764177-F736-4D3A-96CA-E7DEEC3B0087"
},
{
"alpha": 1,
"red": 0.5137254901960784,
"green": 0.5450980392156862,
"blue": 0.6549019607843137,
"name": "overlay1",
"createdAt": "2022-08-23 01:31:31",
"id": "835FB08C-2B2F-47B0-937B-F2948E03C84D"
},
{
"alpha": 1,
"red": 0.45098039215686275,
"green": 0.4745098039215686,
"blue": 0.5803921568627451,
"name": "overlay0",
"createdAt": "2022-08-23 01:31:31",
"id": "A3A87AB8-5963-4529-B48B-8E0A672D4ABE"
},
{
"alpha": 1,
"red": 0.3843137254901961,
"green": 0.40784313725490196,
"blue": 0.5019607843137255,
"name": "surface2",
"createdAt": "2022-08-23 01:31:31",
"id": "E2D42735-922B-45E8-A89E-E75FCCC4D04E"
},
{
"alpha": 1,
"red": 0.3176470588235294,
"green": 0.3411764705882353,
"blue": 0.42745098039215684,
"name": "surface1",
"createdAt": "2022-08-23 01:31:31",
"id": "C8023A12-28A4-4377-AFD2-084646AC4DAB"
},
{
"alpha": 1,
"red": 0.2549019607843137,
"green": 0.27058823529411763,
"blue": 0.34901960784313724,
"name": "surface0",
"createdAt": "2022-08-23 01:31:31",
"id": "7538A3D0-B28D-493E-9F15-2B7CC9D49F5C"
},
{
"alpha": 1,
"red": 0.18823529411764706,
"green": 0.20392156862745098,
"blue": 0.27450980392156865,
"name": "base",
"createdAt": "2022-08-23 01:31:31",
"id": "8DADA9BC-A9E2-46D7-835F-AD1AF8521A00"
},
{
"alpha": 1,
"red": 0.1607843137254902,
"green": 0.17254901960784313,
"blue": 0.23529411764705882,
"name": "mantle",
"createdAt": "2022-08-23 01:31:31",
"id": "FB79AEF6-7CEA-44CF-B28A-79CC6ADD6B22"
},
{
"alpha": 1,
"red": 0.13725490196078433,
"green": 0.14901960784313725,
"blue": 0.20392156862745098,
"name": "crust",
"createdAt": "2022-08-23 01:31:31",
"id": "89F6DBA4-BB1B-428C-B395-F0CFB4E00044"
}
],
"lock": true
}

View file

@ -1,253 +0,0 @@
{
"cloud": true,
"updatedAt": "2022-08-23 01:31:31",
"sip": {
"version": "2.6",
"build": "260"
},
"id": "0A4E0BB4-13CE-4CC5-A88D-E6DF246FABD5",
"readOnly": false,
"createdAt": "2022-08-23 01:31:31",
"dock": false,
"name": "Catppuccin Latte",
"index": 1,
"originalName": "Catppuccin Latte",
"like": false,
"colors": [
{
"alpha": 1,
"red": 0.8627450980392157,
"green": 0.5411764705882353,
"blue": 0.47058823529411764,
"name": "rosewater",
"createdAt": "2022-08-23 01:31:31",
"id": "4D6669C3-38D7-4927-B63F-ACA5147CF82B"
},
{
"alpha": 1,
"red": 0.8666666666666667,
"green": 0.47058823529411764,
"blue": 0.47058823529411764,
"name": "flamingo",
"createdAt": "2022-08-23 01:31:31",
"id": "6BFB9A22-7B20-4727-891B-4A8C3DEE4826"
},
{
"alpha": 1,
"red": 0.9176470588235294,
"green": 0.4627450980392157,
"blue": 0.796078431372549,
"name": "pink",
"createdAt": "2022-08-23 01:31:31",
"id": "E1629BB7-B17C-4BAC-B74E-3470FA535D7D"
},
{
"alpha": 1,
"red": 0.5333333333333333,
"green": 0.2235294117647059,
"blue": 0.9372549019607843,
"name": "mauve",
"createdAt": "2022-08-23 01:31:31",
"id": "3546E3F1-A17E-4248-A186-B68AD8C1BD84"
},
{
"alpha": 1,
"red": 0.8235294117647058,
"green": 0.058823529411764705,
"blue": 0.2235294117647059,
"name": "red",
"createdAt": "2022-08-23 01:31:31",
"id": "00AD721C-55CF-4DEE-A568-B79B0D62D4D8"
},
{
"alpha": 1,
"red": 0.9019607843137255,
"green": 0.27058823529411763,
"blue": 0.3254901960784314,
"name": "maroon",
"createdAt": "2022-08-23 01:31:31",
"id": "AE327B48-4732-454B-B36E-0A219CFA55CD"
},
{
"alpha": 1,
"red": 0.996078431372549,
"green": 0.39215686274509803,
"blue": 0.043137254901960784,
"name": "peach",
"createdAt": "2022-08-23 01:31:31",
"id": "B0112561-1A97-492E-9EE7-B12CE1818C08"
},
{
"alpha": 1,
"red": 0.8745098039215686,
"green": 0.5568627450980392,
"blue": 0.11372549019607843,
"name": "yellow",
"createdAt": "2022-08-23 01:31:31",
"id": "48D8F949-1274-4D6B-BE64-3771FB3D5F28"
},
{
"alpha": 1,
"red": 0.25098039215686274,
"green": 0.6274509803921569,
"blue": 0.16862745098039217,
"name": "green",
"createdAt": "2022-08-23 01:31:31",
"id": "E2E02B93-43B6-44B4-85F0-E6753C246364"
},
{
"alpha": 1,
"red": 0.09019607843137255,
"green": 0.5725490196078431,
"blue": 0.6,
"name": "teal",
"createdAt": "2022-08-23 01:31:31",
"id": "C7E49959-9676-45D8-BBC6-878F4AD02DA4"
},
{
"alpha": 1,
"red": 0.01568627450980392,
"green": 0.6470588235294118,
"blue": 0.8980392156862745,
"name": "sky",
"createdAt": "2022-08-23 01:31:31",
"id": "C820C515-B5F0-4A4C-BCE8-C6EB8FE76630"
},
{
"alpha": 1,
"red": 0.12549019607843137,
"green": 0.6235294117647059,
"blue": 0.7098039215686275,
"name": "sapphire",
"createdAt": "2022-08-23 01:31:31",
"id": "EA2CB004-B885-4B5C-8EEA-770D76D7E866"
},
{
"alpha": 1,
"red": 0.11764705882352941,
"green": 0.4,
"blue": 0.9607843137254902,
"name": "blue",
"createdAt": "2022-08-23 01:31:31",
"id": "FAE5BD66-1E05-4550-8483-B21DB37310A2"
},
{
"alpha": 1,
"red": 0.4470588235294118,
"green": 0.5294117647058824,
"blue": 0.9921568627450981,
"name": "lavender",
"createdAt": "2022-08-23 01:31:31",
"id": "3C87C90A-DDA0-4E05-8A45-2028E28A1DF6"
},
{
"alpha": 1,
"red": 0.2980392156862745,
"green": 0.30980392156862746,
"blue": 0.4117647058823529,
"name": "text",
"createdAt": "2022-08-23 01:31:31",
"id": "3627FC34-AD6E-4EF7-8660-0D721882B430"
},
{
"alpha": 1,
"red": 0.3607843137254902,
"green": 0.37254901960784315,
"blue": 0.4666666666666667,
"name": "subtext1",
"createdAt": "2022-08-23 01:31:31",
"id": "047B54F7-1C49-483F-9A5E-960FF52C55DC"
},
{
"alpha": 1,
"red": 0.4235294117647059,
"green": 0.43529411764705883,
"blue": 0.5215686274509804,
"name": "subtext0",
"createdAt": "2022-08-23 01:31:31",
"id": "D7A4572B-45D6-41C2-9477-38A547F9F41D"
},
{
"alpha": 1,
"red": 0.48627450980392156,
"green": 0.4980392156862745,
"blue": 0.5764705882352941,
"name": "overlay2",
"createdAt": "2022-08-23 01:31:31",
"id": "E1A934E3-2D7F-4200-B703-3FAF46F98C09"
},
{
"alpha": 1,
"red": 0.5490196078431373,
"green": 0.5607843137254902,
"blue": 0.6313725490196078,
"name": "overlay1",
"createdAt": "2022-08-23 01:31:31",
"id": "E19CF39C-5960-4DE6-9598-B3A2FA201CA5"
},
{
"alpha": 1,
"red": 0.611764705882353,
"green": 0.6274509803921569,
"blue": 0.6901960784313725,
"name": "overlay0",
"createdAt": "2022-08-23 01:31:31",
"id": "0C287140-A583-4B9E-9E9D-76ED109F8100"
},
{
"alpha": 1,
"red": 0.6745098039215687,
"green": 0.6901960784313725,
"blue": 0.7450980392156863,
"name": "surface2",
"createdAt": "2022-08-23 01:31:31",
"id": "3F0D6963-8181-4A6E-AE45-B647930C0C45"
},
{
"alpha": 1,
"red": 0.7372549019607844,
"green": 0.7529411764705882,
"blue": 0.8,
"name": "surface1",
"createdAt": "2022-08-23 01:31:31",
"id": "EB316C71-9747-4468-87AC-6E2FC4D02B20"
},
{
"alpha": 1,
"red": 0.8,
"green": 0.8156862745098039,
"blue": 0.8549019607843137,
"name": "surface0",
"createdAt": "2022-08-23 01:31:31",
"id": "E57FF1B3-0FE3-43EE-B3DB-C5DE23E30104"
},
{
"alpha": 1,
"red": 0.9019607843137255,
"green": 0.9137254901960784,
"blue": 0.9372549019607843,
"name": "mantle",
"createdAt": "2022-08-23 01:31:31",
"id": "4A12B121-6328-46A6-A952-45E747E23B5D"
},
{
"alpha": 1,
"red": 0.9372549019607843,
"green": 0.9450980392156862,
"blue": 0.9607843137254902,
"name": "base",
"createdAt": "2022-08-23 01:31:31",
"id": "D8595BFA-950A-4DD1-97D6-009117BD91B9"
},
{
"alpha": 1,
"red": 0.8627450980392157,
"green": 0.8784313725490196,
"blue": 0.9098039215686274,
"name": "crust",
"createdAt": "2022-08-23 01:31:31",
"id": "49198C1B-2491-400B-AA6B-5DAE695304FE"
}
],
"lock": true
}

View file

@ -1,253 +0,0 @@
{
"cloud": true,
"updatedAt": "2022-08-23 01:31:31",
"sip": {
"version": "2.6",
"build": "260"
},
"id": "CA54481B-600E-4837-8AB5-7AAE106022DF",
"readOnly": false,
"createdAt": "2022-08-23 01:31:31",
"dock": false,
"name": "Catppuccin Macchiato",
"index": 1,
"originalName": "Catppuccin Macchiato",
"like": false,
"colors": [
{
"alpha": 1,
"red": 0.9568627450980393,
"green": 0.8588235294117647,
"blue": 0.8392156862745098,
"name": "rosewater",
"createdAt": "2022-08-23 01:31:31",
"id": "29F49344-4F4E-4879-B062-EBBF2569747E"
},
{
"alpha": 1,
"red": 0.9411764705882353,
"green": 0.7764705882352941,
"blue": 0.7764705882352941,
"name": "flamingo",
"createdAt": "2022-08-23 01:31:31",
"id": "0C52B3A2-48CA-4829-A7D1-19ED0C7C95BC"
},
{
"alpha": 1,
"red": 0.9607843137254902,
"green": 0.7411764705882353,
"blue": 0.9019607843137255,
"name": "pink",
"createdAt": "2022-08-23 01:31:31",
"id": "E2E9D68B-BD26-45F9-BD72-46150293A037"
},
{
"alpha": 1,
"red": 0.7764705882352941,
"green": 0.6274509803921569,
"blue": 0.9647058823529412,
"name": "mauve",
"createdAt": "2022-08-23 01:31:31",
"id": "83976010-9ABB-4EFE-8856-0160D2EC8225"
},
{
"alpha": 1,
"red": 0.9294117647058824,
"green": 0.5294117647058824,
"blue": 0.5882352941176471,
"name": "red",
"createdAt": "2022-08-23 01:31:31",
"id": "39A6A6D7-0DB4-4F8E-BA78-740A15245ACF"
},
{
"alpha": 1,
"red": 0.9333333333333333,
"green": 0.6,
"blue": 0.6274509803921569,
"name": "maroon",
"createdAt": "2022-08-23 01:31:31",
"id": "51609D99-A636-48EC-8D9E-F0E4D6B17784"
},
{
"alpha": 1,
"red": 0.9607843137254902,
"green": 0.6627450980392157,
"blue": 0.4980392156862745,
"name": "peach",
"createdAt": "2022-08-23 01:31:31",
"id": "864AD503-FEA6-423E-A4F9-06585789F26E"
},
{
"alpha": 1,
"red": 0.9333333333333333,
"green": 0.8313725490196079,
"blue": 0.6235294117647059,
"name": "yellow",
"createdAt": "2022-08-23 01:31:31",
"id": "3BCCE538-5192-49B9-AFD8-64E94A965E3F"
},
{
"alpha": 1,
"red": 0.6509803921568628,
"green": 0.8549019607843137,
"blue": 0.5843137254901961,
"name": "green",
"createdAt": "2022-08-23 01:31:31",
"id": "22F4E670-FFBA-4A6C-9181-B211EF51BE0A"
},
{
"alpha": 1,
"red": 0.5450980392156862,
"green": 0.8352941176470589,
"blue": 0.792156862745098,
"name": "teal",
"createdAt": "2022-08-23 01:31:31",
"id": "AEFFF8D8-9BD4-4D77-BACA-DB8912BA9260"
},
{
"alpha": 1,
"red": 0.5686274509803921,
"green": 0.8431372549019608,
"blue": 0.8901960784313725,
"name": "sky",
"createdAt": "2022-08-23 01:31:31",
"id": "EC68A593-F970-4E56-ABC0-F7D36B029FEE"
},
{
"alpha": 1,
"red": 0.49019607843137253,
"green": 0.7686274509803922,
"blue": 0.8941176470588236,
"name": "sapphire",
"createdAt": "2022-08-23 01:31:31",
"id": "C402CE5B-DE01-4FD7-A90A-386181B02C87"
},
{
"alpha": 1,
"red": 0.5411764705882353,
"green": 0.6784313725490196,
"blue": 0.9568627450980393,
"name": "blue",
"createdAt": "2022-08-23 01:31:31",
"id": "5365F84B-9297-4E6A-B8EF-317F98ECF26D"
},
{
"alpha": 1,
"red": 0.7176470588235294,
"green": 0.7411764705882353,
"blue": 0.9725490196078431,
"name": "lavender",
"createdAt": "2022-08-23 01:31:31",
"id": "4A068044-01A8-4DAF-B368-BC79A13AB615"
},
{
"alpha": 1,
"red": 0.792156862745098,
"green": 0.8274509803921568,
"blue": 0.9607843137254902,
"name": "text",
"createdAt": "2022-08-23 01:31:31",
"id": "66002B34-E0DA-4C9C-8B34-F88C612EF770"
},
{
"alpha": 1,
"red": 0.7215686274509804,
"green": 0.7529411764705882,
"blue": 0.8784313725490196,
"name": "subtext1",
"createdAt": "2022-08-23 01:31:31",
"id": "21FFF04C-1A8F-4825-9087-AA9C1B705B33"
},
{
"alpha": 1,
"red": 0.6470588235294118,
"green": 0.6784313725490196,
"blue": 0.796078431372549,
"name": "subtext0",
"createdAt": "2022-08-23 01:31:31",
"id": "7BC188FF-70FC-4F00-96A5-0BD7A40F3618"
},
{
"alpha": 1,
"red": 0.5764705882352941,
"green": 0.6039215686274509,
"blue": 0.7176470588235294,
"name": "overlay2",
"createdAt": "2022-08-23 01:31:31",
"id": "514A67EA-B9B6-4D13-BC92-815ACC741CED"
},
{
"alpha": 1,
"red": 0.5019607843137255,
"green": 0.5294117647058824,
"blue": 0.6352941176470588,
"name": "overlay1",
"createdAt": "2022-08-23 01:31:31",
"id": "0CA5E504-5ED3-4601-B2EE-00DA41B8E985"
},
{
"alpha": 1,
"red": 0.43137254901960786,
"green": 0.45098039215686275,
"blue": 0.5529411764705883,
"name": "overlay0",
"createdAt": "2022-08-23 01:31:31",
"id": "61CE95C1-88A4-4C74-9B3C-660454C6CBD8"
},
{
"alpha": 1,
"red": 0.3568627450980392,
"green": 0.3764705882352941,
"blue": 0.47058823529411764,
"name": "surface2",
"createdAt": "2022-08-23 01:31:31",
"id": "3CBF180E-EDE5-4560-A9F2-267E8ACB5E44"
},
{
"alpha": 1,
"red": 0.28627450980392155,
"green": 0.30196078431372547,
"blue": 0.39215686274509803,
"name": "surface1",
"createdAt": "2022-08-23 01:31:31",
"id": "8352A48C-D6A9-4335-A2FC-1AE1E8610456"
},
{
"alpha": 1,
"red": 0.21176470588235294,
"green": 0.22745098039215686,
"blue": 0.30980392156862746,
"name": "surface0",
"createdAt": "2022-08-23 01:31:31",
"id": "BFEB7FF0-4451-4123-BEE5-48B30619C497"
},
{
"alpha": 1,
"red": 0.1411764705882353,
"green": 0.15294117647058825,
"blue": 0.22745098039215686,
"name": "base",
"createdAt": "2022-08-23 01:31:31",
"id": "1114E76C-867C-426D-A5EC-E21E8AB62664"
},
{
"alpha": 1,
"red": 0.11764705882352941,
"green": 0.12549019607843137,
"blue": 0.18823529411764706,
"name": "mantle",
"createdAt": "2022-08-23 01:31:31",
"id": "76812966-4E8F-455D-9479-073239876EF9"
},
{
"alpha": 1,
"red": 0.09411764705882353,
"green": 0.09803921568627451,
"blue": 0.14901960784313725,
"name": "crust",
"createdAt": "2022-08-23 01:31:31",
"id": "0AC41C7F-D318-4FB8-8179-3C349707C93A"
}
],
"lock": true
}

View file

@ -1,253 +0,0 @@
{
"cloud": true,
"updatedAt": "2022-08-23 01:31:31",
"sip": {
"version": "2.6",
"build": "260"
},
"id": "C0E15598-13C3-4D5C-AC5C-7D993EC66DDE",
"readOnly": false,
"createdAt": "2022-08-23 01:31:31",
"dock": false,
"name": "Catppuccin Mocha",
"index": 1,
"originalName": "Catppuccin Mocha",
"like": false,
"colors": [
{
"alpha": 1,
"red": 0.9607843137254902,
"green": 0.8784313725490196,
"blue": 0.8627450980392157,
"name": "rosewater",
"createdAt": "2022-08-23 01:31:31",
"id": "5B82357E-3564-4E2B-ACAC-2112BD66FC68"
},
{
"alpha": 1,
"red": 0.9490196078431372,
"green": 0.803921568627451,
"blue": 0.803921568627451,
"name": "flamingo",
"createdAt": "2022-08-23 01:31:31",
"id": "4CE5C9A2-0C87-4AD8-A5AD-2670140638E0"
},
{
"alpha": 1,
"red": 0.9607843137254902,
"green": 0.7607843137254902,
"blue": 0.9058823529411765,
"name": "pink",
"createdAt": "2022-08-23 01:31:31",
"id": "93B6410F-1070-48EB-82BE-2AD36C1C45AA"
},
{
"alpha": 1,
"red": 0.796078431372549,
"green": 0.6509803921568628,
"blue": 0.9686274509803922,
"name": "mauve",
"createdAt": "2022-08-23 01:31:31",
"id": "756E8285-6097-471A-A2C7-3EA0ADE085F5"
},
{
"alpha": 1,
"red": 0.9529411764705882,
"green": 0.5450980392156862,
"blue": 0.6588235294117647,
"name": "red",
"createdAt": "2022-08-23 01:31:31",
"id": "CB304A27-856E-4DC5-A9BE-B9C9465650F5"
},
{
"alpha": 1,
"red": 0.9215686274509803,
"green": 0.6274509803921569,
"blue": 0.6745098039215687,
"name": "maroon",
"createdAt": "2022-08-23 01:31:31",
"id": "59694E0B-C37C-48C5-9268-2D6AD5C0131D"
},
{
"alpha": 1,
"red": 0.9803921568627451,
"green": 0.7019607843137254,
"blue": 0.5294117647058824,
"name": "peach",
"createdAt": "2022-08-23 01:31:31",
"id": "92BEE411-4C18-4C14-88D7-F17DDA149E8E"
},
{
"alpha": 1,
"red": 0.9764705882352941,
"green": 0.8862745098039215,
"blue": 0.6862745098039216,
"name": "yellow",
"createdAt": "2022-08-23 01:31:31",
"id": "6B9F7448-3B0E-4961-8B41-4AB9D8BCF2E4"
},
{
"alpha": 1,
"red": 0.6509803921568628,
"green": 0.8901960784313725,
"blue": 0.6313725490196078,
"name": "green",
"createdAt": "2022-08-23 01:31:31",
"id": "775666E0-2748-4849-B7A0-5A4643435E62"
},
{
"alpha": 1,
"red": 0.5803921568627451,
"green": 0.8862745098039215,
"blue": 0.8352941176470589,
"name": "teal",
"createdAt": "2022-08-23 01:31:31",
"id": "CCE5F2B3-49C4-4DC0-96FB-C7B4B9117CCE"
},
{
"alpha": 1,
"red": 0.5372549019607843,
"green": 0.8627450980392157,
"blue": 0.9215686274509803,
"name": "sky",
"createdAt": "2022-08-23 01:31:31",
"id": "9C9BE33C-A273-4238-B9A6-B8F7CBF62ECA"
},
{
"alpha": 1,
"red": 0.4549019607843137,
"green": 0.7803921568627451,
"blue": 0.9254901960784314,
"name": "sapphire",
"createdAt": "2022-08-23 01:31:31",
"id": "294A895D-0E4C-4FC3-9795-0FF5CA13B0CE"
},
{
"alpha": 1,
"red": 0.5372549019607843,
"green": 0.7058823529411765,
"blue": 0.9803921568627451,
"name": "blue",
"createdAt": "2022-08-23 01:31:31",
"id": "B6081EB9-4933-4505-8073-ED4F0241EF8B"
},
{
"alpha": 1,
"red": 0.7058823529411765,
"green": 0.7450980392156863,
"blue": 0.996078431372549,
"name": "lavender",
"createdAt": "2022-08-23 01:31:31",
"id": "D20A3869-4993-401D-A2C2-9AA17391D258"
},
{
"alpha": 1,
"red": 0.803921568627451,
"green": 0.8392156862745098,
"blue": 0.9568627450980393,
"name": "text",
"createdAt": "2022-08-23 01:31:31",
"id": "A2EC7E7F-1017-47AA-8866-0B027B706693"
},
{
"alpha": 1,
"red": 0.7294117647058823,
"green": 0.7607843137254902,
"blue": 0.8705882352941177,
"name": "subtext1",
"createdAt": "2022-08-23 01:31:31",
"id": "1BA48D6A-5A59-4850-9A65-6CB44A58C1C3"
},
{
"alpha": 1,
"red": 0.6509803921568628,
"green": 0.6784313725490196,
"blue": 0.7843137254901961,
"name": "subtext0",
"createdAt": "2022-08-23 01:31:31",
"id": "CE44137A-9CF8-4284-A199-1B7269A8D655"
},
{
"alpha": 1,
"red": 0.5764705882352941,
"green": 0.6,
"blue": 0.6980392156862745,
"name": "overlay2",
"createdAt": "2022-08-23 01:31:31",
"id": "01FD9C29-2227-4D20-8733-F25159C4D0B3"
},
{
"alpha": 1,
"red": 0.4980392156862745,
"green": 0.5176470588235295,
"blue": 0.611764705882353,
"name": "overlay1",
"createdAt": "2022-08-23 01:31:31",
"id": "27A5C88F-F0AA-4809-8517-CEAE7B458EA1"
},
{
"alpha": 1,
"red": 0.4235294117647059,
"green": 0.4392156862745098,
"blue": 0.5254901960784314,
"name": "overlay0",
"createdAt": "2022-08-23 01:31:31",
"id": "4575190A-7BCE-4A7A-97E9-BFF98DB59EFB"
},
{
"alpha": 1,
"red": 0.34509803921568627,
"green": 0.3568627450980392,
"blue": 0.4392156862745098,
"name": "surface2",
"createdAt": "2022-08-23 01:31:31",
"id": "7AE941F0-9AF2-4181-981B-2F7EB6C3DFE0"
},
{
"alpha": 1,
"red": 0.27058823529411763,
"green": 0.2784313725490196,
"blue": 0.35294117647058826,
"name": "surface1",
"createdAt": "2022-08-23 01:31:31",
"id": "B7C5D0FD-B0B1-40CA-9FDE-9E2B4A5C21D9"
},
{
"alpha": 1,
"red": 0.19215686274509805,
"green": 0.19607843137254902,
"blue": 0.26666666666666666,
"name": "surface0",
"createdAt": "2022-08-23 01:31:31",
"id": "68507BCB-03DE-423F-8BA2-ED2B1CB9D7E2"
},
{
"alpha": 1,
"red": 0.11764705882352941,
"green": 0.11764705882352941,
"blue": 0.1803921568627451,
"name": "base",
"createdAt": "2022-08-23 01:31:31",
"id": "24754678-15FD-4517-8DA5-EAA92C3874C5"
},
{
"alpha": 1,
"red": 0.09411764705882353,
"green": 0.09411764705882353,
"blue": 0.1450980392156863,
"name": "mantle",
"createdAt": "2022-08-23 01:31:31",
"id": "0B3EB587-BBE0-4B6E-8F0A-ED38CCCF069C"
},
{
"alpha": 1,
"red": 0.06666666666666667,
"green": 0.06666666666666667,
"blue": 0.10588235294117647,
"name": "crust",
"createdAt": "2022-08-23 01:31:31",
"id": "EEAC1048-A3A5-4DE7-AF23-3AF40D40A5CD"
}
],
"lock": true
}

View file

@ -1,59 +0,0 @@
#!/usr/bin/env deno run --allow-read --allow-write
const dateString = new Date().toISOString().replace(/T/, " ").replace(
/\..+/,
"",
);
const library = JSON.parse(await Deno.readTextFile("../palette.json"));
const output = [];
for (const palette in library) {
const colours = library[palette];
const name = `Catppuccin ${
palette.charAt(0).toUpperCase() + palette.slice(1)
}`;
const data = {
cloud: true,
updatedAt: dateString,
sip: {
version: "2.6",
build: "260",
},
id: crypto.randomUUID().toUpperCase(),
readOnly: false,
createdAt: dateString,
dock: false,
name: name,
index: 1,
originalName: name,
like: false,
colors: Object.keys(colours).map((key) => {
const hex = colours[key].hex;
const r = parseInt(hex.substring(1, 3), 16) / 255;
const g = parseInt(hex.substring(3, 5), 16) / 255;
const b = parseInt(hex.substring(5, 7), 16) / 255;
return {
alpha: 1,
red: r,
green: g,
blue: b,
name: key,
createdAt: dateString,
id: crypto.randomUUID().toUpperCase(),
};
}),
lock: true,
};
output.push(data);
}
output.map((palette) => {
Deno.writeTextFile(
`./${palette.name}.palette`,
JSON.stringify(palette, null, 2),
);
});

726
src/index.ts Normal file
View file

@ -0,0 +1,726 @@
const latte = {
rosewater: {
hex: "dc8a78",
rgb: { r: 220, g: 138, b: 120 },
hsl: { h: 11, s: 59, l: 67 },
},
flamingo: {
hex: "dd7878",
rgb: { r: 221, g: 120, b: 120 },
hsl: { h: 0, s: 60, l: 67 },
},
pink: {
hex: "ea76cb",
rgb: { r: 234, g: 118, b: 203 },
hsl: { h: 316, s: 73, l: 69 },
},
mauve: {
hex: "8839ef",
rgb: { r: 136, g: 57, b: 239 },
hsl: { h: 266, s: 85, l: 58 },
},
red: {
hex: "d20f39",
rgb: { r: 210, g: 15, b: 57 },
hsl: { h: 347, s: 87, l: 44 },
},
maroon: {
hex: "e64553",
rgb: { r: 230, g: 69, b: 83 },
hsl: { h: 355, s: 76, l: 59 },
},
peach: {
hex: "fe640b",
rgb: { r: 254, g: 100, b: 11 },
hsl: { h: 22, s: 99, l: 52 },
},
yellow: {
hex: "df8e1d",
rgb: { r: 223, g: 142, b: 29 },
hsl: { h: 35, s: 77, l: 49 },
},
green: {
hex: "40a02b",
rgb: { r: 64, g: 160, b: 43 },
hsl: { h: 109, s: 58, l: 40 },
},
teal: {
hex: "179299",
rgb: { r: 23, g: 146, b: 153 },
hsl: { h: 183, s: 74, l: 35 },
},
sky: {
hex: "04a5e5",
rgb: { r: 4, g: 165, b: 229 },
hsl: { h: 197, s: 97, l: 46 },
},
sapphire: {
hex: "209fb5",
rgb: { r: 32, g: 159, b: 181 },
hsl: { h: 189, s: 70, l: 42 },
},
blue: {
hex: "1e66f5",
rgb: { r: 30, g: 102, b: 245 },
hsl: { h: 220, s: 91, l: 54 },
},
lavender: {
hex: "7287fd",
rgb: { r: 114, g: 135, b: 253 },
hsl: { h: 231, s: 97, l: 72 },
},
text: {
hex: "4c4f69",
rgb: { r: 76, g: 79, b: 105 },
hsl: { h: 234, s: 16, l: 35 },
},
subtext1: {
hex: "5c5f77",
rgb: { r: 92, g: 95, b: 119 },
hsl: { h: 233, s: 13, l: 41 },
},
subtext0: {
hex: "6c6f85",
rgb: { r: 108, g: 111, b: 133 },
hsl: { h: 233, s: 10, l: 47 },
},
overlay2: {
hex: "7c7f93",
rgb: { r: 124, g: 127, b: 147 },
hsl: { h: 232, s: 10, l: 53 },
},
overlay1: {
hex: "8c8fa1",
rgb: { r: 140, g: 143, b: 161 },
hsl: { h: 231, s: 10, l: 59 },
},
overlay0: {
hex: "9ca0b0",
rgb: { r: 156, g: 160, b: 176 },
hsl: { h: 228, s: 11, l: 65 },
},
surface2: {
hex: "acb0be",
rgb: { r: 172, g: 176, b: 190 },
hsl: { h: 227, s: 12, l: 71 },
},
surface1: {
hex: "bcc0cc",
rgb: { r: 188, g: 192, b: 204 },
hsl: { h: 225, s: 14, l: 77 },
},
surface0: {
hex: "ccd0da",
rgb: { r: 204, g: 208, b: 218 },
hsl: { h: 223, s: 16, l: 83 },
},
base: {
hex: "eff1f5",
rgb: { r: 239, g: 241, b: 245 },
hsl: { h: 220, s: 23, l: 95 },
},
mantle: {
hex: "e6e9ef",
rgb: { r: 230, g: 233, b: 239 },
hsl: { h: 220, s: 22, l: 92 },
},
crust: {
hex: "dce0e8",
rgb: { r: 220, g: 224, b: 232 },
hsl: { h: 220, s: 21, l: 89 },
},
};
const frappe = {
rosewater: {
hex: "f2d5cf",
rgb: { r: 242, g: 213, b: 207 },
hsl: { h: 10, s: 57, l: 88 },
},
flamingo: {
hex: "eebebe",
rgb: { r: 238, g: 190, b: 190 },
hsl: { h: 0, s: 59, l: 84 },
},
pink: {
hex: "f4b8e4",
rgb: { r: 244, g: 184, b: 228 },
hsl: { h: 316, s: 73, l: 84 },
},
mauve: {
hex: "ca9ee6",
rgb: { r: 202, g: 158, b: 230 },
hsl: { h: 277, s: 59, l: 76 },
},
red: {
hex: "e78284",
rgb: { r: 231, g: 130, b: 132 },
hsl: { h: 359, s: 68, l: 71 },
},
maroon: {
hex: "ea999c",
rgb: { r: 234, g: 153, b: 156 },
hsl: { h: 358, s: 66, l: 76 },
},
peach: {
hex: "ef9f76",
rgb: { r: 239, g: 159, b: 118 },
hsl: { h: 20, s: 79, l: 70 },
},
yellow: {
hex: "e5c890",
rgb: { r: 229, g: 200, b: 144 },
hsl: { h: 40, s: 62, l: 73 },
},
green: {
hex: "a6d189",
rgb: { r: 166, g: 209, b: 137 },
hsl: { h: 96, s: 44, l: 68 },
},
teal: {
hex: "81c8be",
rgb: { r: 129, g: 200, b: 190 },
hsl: { h: 172, s: 39, l: 65 },
},
sky: {
hex: "99d1db",
rgb: { r: 153, g: 209, b: 219 },
hsl: { h: 189, s: 48, l: 73 },
},
sapphire: {
hex: "85c1dc",
rgb: { r: 133, g: 193, b: 220 },
hsl: { h: 199, s: 55, l: 69 },
},
blue: {
hex: "8caaee",
rgb: { r: 140, g: 170, b: 238 },
hsl: { h: 222, s: 74, l: 74 },
},
lavender: {
hex: "babbf1",
rgb: { r: 186, g: 187, b: 241 },
hsl: { h: 239, s: 66, l: 84 },
},
text: {
hex: "c6d0f5",
rgb: { r: 198, g: 208, b: 245 },
hsl: { h: 227, s: 70, l: 87 },
},
subtext1: {
hex: "b5bfe2",
rgb: { r: 181, g: 191, b: 226 },
hsl: { h: 227, s: 44, l: 80 },
},
subtext0: {
hex: "a5adce",
rgb: { r: 165, g: 173, b: 206 },
hsl: { h: 228, s: 29, l: 73 },
},
overlay2: {
hex: "949cbb",
rgb: { r: 148, g: 156, b: 187 },
hsl: { h: 228, s: 22, l: 66 },
},
overlay1: {
hex: "838ba7",
rgb: { r: 131, g: 139, b: 167 },
hsl: { h: 227, s: 17, l: 58 },
},
overlay0: {
hex: "737994",
rgb: { r: 115, g: 121, b: 148 },
hsl: { h: 229, s: 13, l: 52 },
},
surface2: {
hex: "626880",
rgb: { r: 98, g: 104, b: 128 },
hsl: { h: 228, s: 13, l: 44 },
},
surface1: {
hex: "51576d",
rgb: { r: 81, g: 87, b: 109 },
hsl: { h: 227, s: 15, l: 37 },
},
surface0: {
hex: "414559",
rgb: { r: 65, g: 69, b: 89 },
hsl: { h: 230, s: 16, l: 30 },
},
base: {
hex: "303446",
rgb: { r: 48, g: 52, b: 70 },
hsl: { h: 229, s: 19, l: 23 },
},
mantle: {
hex: "292c3c",
rgb: { r: 41, g: 44, b: 60 },
hsl: { h: 231, s: 19, l: 20 },
},
crust: {
hex: "232634",
rgb: { r: 35, g: 38, b: 52 },
hsl: { h: 229, s: 20, l: 17 },
},
};
const macchiato = {
rosewater: {
hex: "f4dbd6",
rgb: { r: 244, g: 219, b: 214 },
hsl: { h: 10, s: 58, l: 90 },
},
flamingo: {
hex: "f0c6c6",
rgb: { r: 240, g: 198, b: 198 },
hsl: { h: 0, s: 58, l: 86 },
},
pink: {
hex: "f5bde6",
rgb: { r: 245, g: 189, b: 230 },
hsl: { h: 316, s: 74, l: 85 },
},
mauve: {
hex: "c6a0f6",
rgb: { r: 198, g: 160, b: 246 },
hsl: { h: 267, s: 83, l: 80 },
},
red: {
hex: "ed8796",
rgb: { r: 237, g: 135, b: 150 },
hsl: { h: 351, s: 74, l: 73 },
},
maroon: {
hex: "ee99a0",
rgb: { r: 238, g: 153, b: 160 },
hsl: { h: 355, s: 71, l: 77 },
},
peach: {
hex: "f5a97f",
rgb: { r: 245, g: 169, b: 127 },
hsl: { h: 21, s: 86, l: 73 },
},
yellow: {
hex: "eed49f",
rgb: { r: 238, g: 212, b: 159 },
hsl: { h: 40, s: 70, l: 78 },
},
green: {
hex: "a6da95",
rgb: { r: 166, g: 218, b: 149 },
hsl: { h: 105, s: 48, l: 72 },
},
teal: {
hex: "8bd5ca",
rgb: { r: 139, g: 213, b: 202 },
hsl: { h: 171, s: 47, l: 69 },
},
sky: {
hex: "91d7e3",
rgb: { r: 145, g: 215, b: 227 },
hsl: { h: 189, s: 59, l: 73 },
},
sapphire: {
hex: "7dc4e4",
rgb: { r: 125, g: 196, b: 228 },
hsl: { h: 199, s: 66, l: 69 },
},
blue: {
hex: "8aadf4",
rgb: { r: 138, g: 173, b: 244 },
hsl: { h: 220, s: 83, l: 75 },
},
lavender: {
hex: "b7bdf8",
rgb: { r: 183, g: 189, b: 248 },
hsl: { h: 234, s: 82, l: 85 },
},
text: {
hex: "cad3f5",
rgb: { r: 202, g: 211, b: 245 },
hsl: { h: 227, s: 68, l: 88 },
},
subtext1: {
hex: "b8c0e0",
rgb: { r: 184, g: 192, b: 224 },
hsl: { h: 228, s: 39, l: 80 },
},
subtext0: {
hex: "a5adcb",
rgb: { r: 165, g: 173, b: 203 },
hsl: { h: 227, s: 27, l: 72 },
},
overlay2: {
hex: "939ab7",
rgb: { r: 147, g: 154, b: 183 },
hsl: { h: 228, s: 20, l: 65 },
},
overlay1: {
hex: "8087a2",
rgb: { r: 128, g: 135, b: 162 },
hsl: { h: 228, s: 15, l: 57 },
},
overlay0: {
hex: "6e738d",
rgb: { r: 110, g: 115, b: 141 },
hsl: { h: 230, s: 12, l: 49 },
},
surface2: {
hex: "5b6078",
rgb: { r: 91, g: 96, b: 120 },
hsl: { h: 230, s: 14, l: 41 },
},
surface1: {
hex: "494d64",
rgb: { r: 73, g: 77, b: 100 },
hsl: { h: 231, s: 16, l: 34 },
},
surface0: {
hex: "363a4f",
rgb: { r: 54, g: 58, b: 79 },
hsl: { h: 230, s: 19, l: 26 },
},
base: {
hex: "24273a",
rgb: { r: 36, g: 39, b: 58 },
hsl: { h: 232, s: 23, l: 18 },
},
mantle: {
hex: "1e2030",
rgb: { r: 30, g: 32, b: 48 },
hsl: { h: 233, s: 23, l: 15 },
},
crust: {
hex: "181926",
rgb: { r: 24, g: 25, b: 38 },
hsl: { h: 236, s: 23, l: 12 },
},
};
const mocha = {
rosewater: {
hex: "f5e0dc",
rgb: { r: 245, g: 224, b: 220 },
hsl: { h: 10, s: 56, l: 91 },
},
flamingo: {
hex: "f2cdcd",
rgb: { r: 242, g: 205, b: 205 },
hsl: { h: 0, s: 59, l: 88 },
},
pink: {
hex: "f5c2e7",
rgb: { r: 245, g: 194, b: 231 },
hsl: { h: 316, s: 72, l: 86 },
},
mauve: {
hex: "cba6f7",
rgb: { r: 203, g: 166, b: 247 },
hsl: { h: 267, s: 84, l: 81 },
},
red: {
hex: "f38ba8",
rgb: { r: 243, g: 139, b: 168 },
hsl: { h: 343, s: 81, l: 75 },
},
maroon: {
hex: "eba0ac",
rgb: { r: 235, g: 160, b: 172 },
hsl: { h: 350, s: 65, l: 77 },
},
peach: {
hex: "fab387",
rgb: { r: 250, g: 179, b: 135 },
hsl: { h: 23, s: 92, l: 75 },
},
yellow: {
hex: "f9e2af",
rgb: { r: 249, g: 226, b: 175 },
hsl: { h: 41, s: 86, l: 83 },
},
green: {
hex: "a6e3a1",
rgb: { r: 166, g: 227, b: 161 },
hsl: { h: 115, s: 54, l: 76 },
},
teal: {
hex: "94e2d5",
rgb: { r: 148, g: 226, b: 213 },
hsl: { h: 170, s: 57, l: 73 },
},
sky: {
hex: "89dceb",
rgb: { r: 137, g: 220, b: 235 },
hsl: { h: 189, s: 71, l: 73 },
},
sapphire: {
hex: "74c7ec",
rgb: { r: 116, g: 199, b: 236 },
hsl: { h: 199, s: 76, l: 69 },
},
blue: {
hex: "89b4fa",
rgb: { r: 137, g: 180, b: 250 },
hsl: { h: 217, s: 92, l: 76 },
},
lavender: {
hex: "b4befe",
rgb: { r: 180, g: 190, b: 254 },
hsl: { h: 232, s: 97, l: 85 },
},
text: {
hex: "cdd6f4",
rgb: { r: 205, g: 214, b: 244 },
hsl: { h: 226, s: 64, l: 88 },
},
subtext1: {
hex: "bac2de",
rgb: { r: 186, g: 194, b: 222 },
hsl: { h: 227, s: 35, l: 80 },
},
subtext0: {
hex: "a6adc8",
rgb: { r: 166, g: 173, b: 200 },
hsl: { h: 228, s: 24, l: 72 },
},
overlay2: {
hex: "9399b2",
rgb: { r: 147, g: 153, b: 178 },
hsl: { h: 228, s: 17, l: 64 },
},
overlay1: {
hex: "7f849c",
rgb: { r: 127, g: 132, b: 156 },
hsl: { h: 230, s: 13, l: 55 },
},
overlay0: {
hex: "6c7086",
rgb: { r: 108, g: 112, b: 134 },
hsl: { h: 231, s: 11, l: 47 },
},
surface2: {
hex: "585b70",
rgb: { r: 88, g: 91, b: 112 },
hsl: { h: 233, s: 12, l: 39 },
},
surface1: {
hex: "45475a",
rgb: { r: 69, g: 71, b: 90 },
hsl: { h: 234, s: 13, l: 31 },
},
surface0: {
hex: "313244",
rgb: { r: 49, g: 50, b: 68 },
hsl: { h: 237, s: 16, l: 23 },
},
base: {
hex: "1e1e2e",
rgb: { r: 30, g: 30, b: 46 },
hsl: { h: 240, s: 21, l: 15 },
},
mantle: {
hex: "181825",
rgb: { r: 24, g: 24, b: 37 },
hsl: { h: 240, s: 21, l: 12 },
},
crust: {
hex: "11111b",
rgb: { r: 17, g: 17, b: 27 },
hsl: { h: 240, s: 23, l: 9 },
},
};
const palettes = {
variants: {
latte,
frappe,
macchiato,
mocha,
},
labels: {
rosewater: {
latte: latte.rosewater,
frappe: frappe.rosewater,
macchiato: macchiato.rosewater,
mocha: mocha.rosewater,
},
flamingo: {
latte: latte.flamingo,
frappe: frappe.flamingo,
macchiato: macchiato.flamingo,
mocha: mocha.flamingo,
},
pink: {
latte: latte.pink,
frappe: frappe.pink,
macchiato: macchiato.pink,
mocha: mocha.pink,
},
mauve: {
latte: latte.mauve,
frappe: frappe.mauve,
macchiato: macchiato.mauve,
mocha: mocha.mauve,
},
red: {
latte: latte.red,
frappe: frappe.red,
macchiato: macchiato.red,
mocha: mocha.red,
},
maroon: {
latte: latte.maroon,
frappe: frappe.maroon,
macchiato: macchiato.maroon,
mocha: mocha.maroon,
},
peach: {
latte: latte.peach,
frappe: frappe.peach,
macchiato: macchiato.peach,
mocha: mocha.peach,
},
yellow: {
latte: latte.yellow,
frappe: frappe.yellow,
macchiato: macchiato.yellow,
mocha: mocha.yellow,
},
green: {
latte: latte.green,
frappe: frappe.green,
macchiato: macchiato.green,
mocha: mocha.green,
},
teal: {
latte: latte.teal,
frappe: frappe.teal,
macchiato: macchiato.teal,
mocha: mocha.teal,
},
sky: {
latte: latte.sky,
frappe: frappe.sky,
macchiato: macchiato.sky,
mocha: mocha.sky,
},
sapphire: {
latte: latte.sapphire,
frappe: frappe.sapphire,
macchiato: macchiato.sapphire,
mocha: mocha.sapphire,
},
blue: {
latte: latte.blue,
frappe: frappe.blue,
macchiato: macchiato.blue,
mocha: mocha.blue,
},
lavender: {
latte: latte.lavender,
frappe: frappe.lavender,
macchiato: macchiato.lavender,
mocha: mocha.lavender,
},
text: {
latte: latte.text,
frappe: frappe.text,
macchiato: macchiato.text,
mocha: mocha.text,
},
subtext1: {
latte: latte.subtext1,
frappe: frappe.subtext1,
macchiato: macchiato.subtext1,
mocha: mocha.subtext1,
},
subtext0: {
latte: latte.subtext0,
frappe: frappe.subtext0,
macchiato: macchiato.subtext0,
mocha: mocha.subtext0,
},
overlay2: {
latte: latte.overlay2,
frappe: frappe.overlay2,
macchiato: macchiato.overlay2,
mocha: mocha.overlay2,
},
overlay1: {
latte: latte.overlay1,
frappe: frappe.overlay1,
macchiato: macchiato.overlay1,
mocha: mocha.overlay1,
},
overlay0: {
latte: latte.overlay0,
frappe: frappe.overlay0,
macchiato: macchiato.overlay0,
mocha: mocha.overlay0,
},
surface2: {
latte: latte.surface2,
frappe: frappe.surface2,
macchiato: macchiato.surface2,
mocha: mocha.surface2,
},
surface1: {
latte: latte.surface1,
frappe: frappe.surface1,
macchiato: macchiato.surface1,
mocha: mocha.surface1,
},
surface0: {
latte: latte.surface0,
frappe: frappe.surface0,
macchiato: macchiato.surface0,
mocha: mocha.surface0,
},
base: {
latte: latte.base,
frappe: frappe.base,
macchiato: macchiato.base,
mocha: mocha.base,
},
mantle: {
latte: latte.mantle,
frappe: frappe.mantle,
macchiato: macchiato.mantle,
mocha: mocha.mantle,
},
crust: {
latte: latte.crust,
frappe: frappe.crust,
macchiato: macchiato.crust,
mocha: mocha.crust,
},
},
};
export const { variants, labels } = palettes;
export default palettes;

View file

@ -0,0 +1,97 @@
import fs from "fs";
import crypto from "crypto";
import { variants } from "@catppuccin/palette";
import url from "url";
import path from "path";
import { createSwatchesFile } from "procreate-swatches";
const root = path.resolve(
url.fileURLToPath(new URL(".", import.meta.url)),
"..",
"..",
"dist"
);
const generateGimp = (name, palette) => {
const n = Object.keys(palette).length;
const head = `GIMP Palette\n#Palette Name: ${name}\n#Colors: ${n}\n`;
const pad = (str) => str.toString().padStart(3, " ");
const body = Object.values(palette)
.map((value) => {
const v = [
pad(value.rgb.r),
pad(value.rgb.g),
pad(value.rgb.b),
value.hex,
];
return v.join(" ");
})
.join("\n");
return head + body;
};
const generateProcreate = async (name, palette) => {
const rgbValues = Object.values(palette).map((color) => [
[color.rgb.r, color.rgb.g, color.rgb.b],
"rgb",
]);
return await createSwatchesFile(name, rgbValues);
};
const generateSip = (name, palette) => {
const dateString = new Date()
.toISOString()
.replace(/T/, " ")
.replace(/\..+/, "");
const data = {
cloud: true,
updatedAt: dateString,
sip: {
version: "2.6",
build: "260",
},
id: crypto.randomUUID().toUpperCase(),
readOnly: false,
createdAt: dateString,
dock: false,
name: name,
index: 1,
originalName: name,
like: false,
colors: Object.entries(palette).map(([key, value]) => {
return {
alpha: 1,
red: value.rgb.r / 255,
green: value.rgb.g / 255,
blue: value.rgb.b / 255,
name: key,
createdAt: dateString,
id: crypto.randomUUID().toUpperCase(),
};
}),
lock: true,
};
return JSON.stringify(data, null, 2);
};
Object.entries(variants).map(async ([name, palette]) => {
// formatted "pretty" name, Catppuccin <Flavor>
const pname = `Catppuccin ${name.charAt(0).toUpperCase() + name.slice(1)}`;
["gimp", "procreate", "sip"].map((folder) =>
fs.mkdirSync(path.join(root, folder), { recursive: true })
);
fs.writeFileSync(
path.resolve(root, `gimp/${pname}.gpl`),
generateGimp(pname, palette)
);
fs.writeFileSync(
path.resolve(root, `procreate/${pname}.swatches`),
await generateProcreate(pname, palette)
);
fs.writeFileSync(
path.resolve(root, `sip/${pname}.palette`),
generateSip(pname, palette)
);
});

35
test.js
View file

@ -1,35 +0,0 @@
import test from 'ava'
import {variants, labels} from './index.js'
test('Labels', (t) => {
t.deepEqual(labels.base, {
latte: {
hex: '#eff1f5',
rgb: 'rgb(239, 241, 245)',
hsl: 'hsl(220, 23%, 95%)',
},
frappe: {
hex: '#303446',
rgb: 'rgb(48, 52, 70)',
hsl: 'hsl(229, 19%, 23%)',
},
macchiato: {
hex: '#24273a',
rgb: 'rgb(36, 39, 58)',
hsl: 'hsl(232, 23%, 18%)',
},
mocha: {
hex: '#1e1e2e',
rgb: 'rgb(30, 30, 46)',
hsl: 'hsl(240, 21%, 15%)',
},
})
})
test('Variants', (t) => {
t.deepEqual(variants.macchiato.rosewater, {
hex: '#f4dbd6',
rgb: 'rgb(244, 219, 214)',
hsl: 'hsl(10, 58%, 90%)',
})
})

9
tsup.config.ts Normal file
View file

@ -0,0 +1,9 @@
import { defineConfig } from "tsup";
export default defineConfig({
entry: ["src/index.ts"],
minify: false,
target: "node16",
clean: true,
format: ["cjs", "esm"],
});

2894
yarn.lock Normal file

File diff suppressed because it is too large Load diff