This commit is contained in:
ozwaldorf 2023-05-05 13:48:01 -04:00 committed by GitHub
commit 2f4624f7ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
70 changed files with 3954 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,8 @@
- [Gimp](#gimp)
- [Inkscape](#inkscape)
- [Krita](#krita)
- Colour pickers
- [Lookup Tables](/lut/README.md)
- Color pickers
- [macOS Color Picker](#macos-color-picker)
- [Sip](#sip)
- Reference
@ -81,7 +82,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,7 +29,7 @@ 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 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 `'`.
@ -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

91
lut/README.md Normal file
View file

@ -0,0 +1,91 @@
<h3 align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
Catppuccin Lookup Tables (Hald-CLUT)
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
</h3>
<p align="center">
<img src="examples/preview.png"/>
</p>
## Previews
> Generated using `noise_2` variant
<details>
<summary>🌻 Latte</summary>
<img src="examples/simon-berger-unsplash-latte.png"/>
</details>
<details>
<summary>🪴 Frappé</summary>
<img src="examples/simon-berger-unsplash-frappe.png"/>
</details>
<details>
<summary>🌺 Macchiato</summary>
<img src="examples/simon-berger-unsplash-macchiato.png"/>
</details>
<details>
<summary>🌿 Mocha</summary>
<img src="examples/simon-berger-unsplash-mocha.png"/>
</details>
<details>
<summary>⚫ Oled</summary>
<img src="examples/simon-berger-unsplash-oled.png"/>
</details>
## Usage
Images:
```bash
magick input.png src/noise_2/mocha.png -hald-clut output.png
```
Videos:
```bash
ffmpeg -i input.mkv -i src/noise_2/mocha.png -filter_complex '[0][1] haldclut' output.mp4
```
### Example script
`apply.sh` is an example script that uses the LUTs provided in `src` to theme an image with each of the flavors. Multiple images and flavors at a time are supported.
```bash
bash examples/apply.sh -i examples/simon-berger-unsplash.png [-n noise] [-f flavors]
```
### (Re)generating LUTs
Requirements: [cargo-play](https://crates.io/crates/cargo-play), [imagemagick](https://imagemagick.org)
```bash
# Clone the repo
git clone https://github.com/catppuccin/palette
cd palette
# Install deps
yarn install # or npm i
# Run the script
node src/scripts/build_luts.mjs
```
## 💝 Thanks to
- Gingeh for pioneering the process :)
&nbsp;
<p align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
</p>
<p align="center">
Copyright &copy; 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
</p>
<p align="center">
<a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
</p>

55
lut/apply.sh Executable file
View file

@ -0,0 +1,55 @@
#!/bin/bash
set -e
# ensure src is where the script is located, even if symlinked
src="$( cd -- "$( dirname -- "$(readlink -f "${BASH_SOURCE[0]}" || ${BASH_SOURCE[0]})" )" &> /dev/null && pwd )/src"
print_usage() {
name=`basename $0`
cat <<EOF
Usage: $name -i <image1> ... [args]
-i image : Image to apply LUT to, can be repeated
-f flavor : Flavor to apply, can be repeated. Defaults to all
-n noise : LUT Noise level (0-4). Defaults to 2
EOF
}
noise="2"
images=""
flavors=""
while getopts ':f:i:n:' flag; do
case "$flag" in
n)
if [[ $OPTARG -gt 4 ]]; then
echo "Invalid noise level (0-4)"
exit 1
else
noise=$OPTARG
fi
;;
f) flavors="$flavors $OPTARG" ;;
i) images="$images `realpath $OPTARG`" ;;
*) print_usage
exit 1 ;;
esac
done
if [[ "$images" == "" ]]; then
print_usage
fi
if [[ "$flavors" == "" ]]; then
flavors="Oled Mocha Macchiato Frappe Latte"
fi
for file in $images; do
echo "Performing magick on `basename $file` (noise: $noise)"
for flavor in $flavors; do
printf "$flavor ..."
out="${file%%.*}-${flavor}.png"
magick $file "$src/noise_$noise/Catppuccin ${flavor}.png" -hald-clut "$out"
printf "\r$flavor ✓ ($out)\n"
done
done

BIN
lut/example/preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

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,11 @@
"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",
"canvas": "^2.11.2"
}
}

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,42 @@
import { exec } from "child_process";
import url from "url";
import path from "path";
import fs from "fs";
import util from "util";
import { variants } from "@catppuccin/palette";
const root = path.resolve(
url.fileURLToPath(new URL(".", import.meta.url)),
"..",
"..",
"dist"
);
const generateLut = async (name, out) => {
for (let i = 0; i <= 4; i++) {
fs.mkdirSync(path.join(root, `lut/noise_${i}`), { recursive: true });
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write(`${name}: [${i + 1}/5]`);
const cmd = `convert HALD:8 -duplicate 512 -attenuate ${i} +noise Gaussian -quantize LAB +dither -remap "${root}/png/${name}.png" -evaluate-sequence Mean "${root}/../lut/noise_${i}/${name}.png"`;
await util.promisify(exec)(cmd);
}
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
console.log(`${name}: done`);
};
console.log("Generating Hald CLUTs...")
const flavors = Object.keys(variants);
for (let i = 0; i < flavors.length; i++) {
const name = flavors[i];
// formatted "pretty" name, Catppuccin <Flavor>
const pname = `Catppuccin ${name.charAt(0).toUpperCase() + name.slice(1)}`;
await generateLut(pname);
}

View file

@ -0,0 +1,118 @@
import fs from "fs";
import { createCanvas } from "canvas";
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);
};
const generatePng = (name, palette) => {
const colors = Object.entries(palette).map(([key, value]) => value.hex);
const size = 25;
const width = size * colors.length;
const canvas = createCanvas(width, size * 2);
const ctx = canvas.getContext("2d");
for (let x = 0; x < width; x += size) {
const index = (x / size) % colors.length;
ctx.fillStyle = `#${colors[index]}`;
ctx.fillRect(x, 0, size, size * 2);
}
return canvas.toBuffer("image/png");
};
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", "png"].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)
);
fs.writeFileSync(
path.resolve(root, `png/${pname}.png`),
generatePng(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