From b2eaa55767c6300c358f6e6aabd634dedfeaf970 Mon Sep 17 00:00:00 2001 From: Pocco81 Date: Wed, 25 May 2022 09:20:34 -0500 Subject: [PATCH] feat: added dynamically generated circles --- README.md | 148 ++++++-- assets/palette/circles/black0.png | Bin 2272 -> 0 bytes assets/palette/circles/black1.png | Bin 2275 -> 0 bytes assets/palette/circles/black2.png | Bin 2273 -> 0 bytes assets/palette/circles/black3.png | Bin 2278 -> 0 bytes assets/palette/circles/black4.png | Bin 2280 -> 0 bytes assets/palette/circles/blue.png | Bin 2412 -> 0 bytes assets/palette/circles/flamingo.png | Bin 2249 -> 0 bytes assets/palette/circles/frappe_base.png | Bin 0 -> 1128 bytes assets/palette/circles/frappe_blue.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_crust.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_flamingo.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_green.png | Bin 0 -> 1127 bytes assets/palette/circles/frappe_lavender.png | Bin 0 -> 1125 bytes assets/palette/circles/frappe_mantle.png | Bin 0 -> 1127 bytes assets/palette/circles/frappe_maroon.png | Bin 0 -> 1125 bytes assets/palette/circles/frappe_mauve.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_overlay0.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_overlay1.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_overlay2.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_peach.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_pink.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_red.png | Bin 0 -> 1125 bytes assets/palette/circles/frappe_rosewater.png | Bin 0 -> 1125 bytes assets/palette/circles/frappe_sapphire.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_sky.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_subtext0.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_subtext1.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_surface0.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_surface1.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_surface2.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_teal.png | Bin 0 -> 1126 bytes assets/palette/circles/frappe_text.png | Bin 0 -> 1127 bytes assets/palette/circles/frappe_yellow.png | Bin 0 -> 1126 bytes assets/palette/circles/gray0.png | Bin 2277 -> 0 bytes assets/palette/circles/gray1.png | Bin 2249 -> 0 bytes assets/palette/circles/gray2.png | Bin 2255 -> 0 bytes assets/palette/circles/green.png | Bin 2409 -> 0 bytes assets/palette/circles/latte_base.png | Bin 0 -> 1122 bytes assets/palette/circles/latte_blue.png | Bin 0 -> 1124 bytes assets/palette/circles/latte_crust.png | Bin 0 -> 1124 bytes assets/palette/circles/latte_flamingo.png | Bin 0 -> 1123 bytes assets/palette/circles/latte_green.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_lavender.png | Bin 0 -> 1124 bytes assets/palette/circles/latte_mantle.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_maroon.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_mauve.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_overlay0.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_overlay1.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_overlay2.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_peach.png | Bin 0 -> 1122 bytes assets/palette/circles/latte_pink.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_red.png | Bin 0 -> 1127 bytes assets/palette/circles/latte_rosewater.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_sapphire.png | Bin 0 -> 1125 bytes assets/palette/circles/latte_sky.png | Bin 0 -> 1124 bytes assets/palette/circles/latte_subtext0.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_subtext1.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_surface0.png | Bin 0 -> 1127 bytes assets/palette/circles/latte_surface1.png | Bin 0 -> 1128 bytes assets/palette/circles/latte_surface2.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_teal.png | Bin 0 -> 1125 bytes assets/palette/circles/latte_text.png | Bin 0 -> 1126 bytes assets/palette/circles/latte_yellow.png | Bin 0 -> 1124 bytes assets/palette/circles/lavender.png | Bin 2409 -> 0 bytes assets/palette/circles/macchiato_base.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_blue.png | Bin 0 -> 1124 bytes assets/palette/circles/macchiato_crust.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_flamingo.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_green.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_lavender.png | Bin 0 -> 1123 bytes assets/palette/circles/macchiato_mantle.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_maroon.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_mauve.png | Bin 0 -> 1124 bytes assets/palette/circles/macchiato_overlay0.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_overlay1.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_overlay2.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_peach.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_pink.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_red.png | Bin 0 -> 1126 bytes .../palette/circles/macchiato_rosewater.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_sapphire.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_sky.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_subtext0.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_subtext1.png | Bin 0 -> 1125 bytes assets/palette/circles/macchiato_surface0.png | Bin 0 -> 1127 bytes assets/palette/circles/macchiato_surface1.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_surface2.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_teal.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_text.png | Bin 0 -> 1126 bytes assets/palette/circles/macchiato_yellow.png | Bin 0 -> 1126 bytes assets/palette/circles/maroon.png | Bin 2254 -> 0 bytes assets/palette/circles/mauve.png | Bin 2248 -> 0 bytes assets/palette/circles/mocha_base.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_blue.png | Bin 0 -> 1123 bytes assets/palette/circles/mocha_crust.png | Bin 0 -> 1124 bytes assets/palette/circles/mocha_flamingo.png | Bin 0 -> 1124 bytes assets/palette/circles/mocha_green.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_lavender.png | Bin 0 -> 1123 bytes assets/palette/circles/mocha_mantle.png | Bin 0 -> 1124 bytes assets/palette/circles/mocha_maroon.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_mauve.png | Bin 0 -> 1123 bytes assets/palette/circles/mocha_overlay0.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_overlay1.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_overlay2.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_peach.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_pink.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_red.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_rosewater.png | Bin 0 -> 1123 bytes assets/palette/circles/mocha_sapphire.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_sky.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_subtext0.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_subtext1.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_surface0.png | Bin 0 -> 1127 bytes assets/palette/circles/mocha_surface1.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_surface2.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_teal.png | Bin 0 -> 1125 bytes assets/palette/circles/mocha_text.png | Bin 0 -> 1126 bytes assets/palette/circles/mocha_yellow.png | Bin 0 -> 1125 bytes assets/palette/circles/peach.png | Bin 2256 -> 0 bytes assets/palette/circles/pink.png | Bin 2251 -> 0 bytes assets/palette/circles/red.png | Bin 2244 -> 0 bytes assets/palette/circles/rosewater.png | Bin 2256 -> 0 bytes assets/palette/circles/sky.png | Bin 2410 -> 0 bytes assets/palette/circles/teal.png | Bin 2410 -> 0 bytes assets/palette/circles/white.png | Bin 2253 -> 0 bytes assets/palette/circles/yellow.png | Bin 2255 -> 0 bytes docs/README.md | 239 ++++++++++++ samples/python2.py | 1 + tests/wcag-compliance/.npmrc | 1 - tests/wcag-compliance/README.md | 17 - tests/wcag-compliance/index.js | 104 ------ .../node_modules/.package-lock.json | 30 -- .../color-contrast-checker/.eslintrc.js | 29 -- .../.github/workflows/npmpublish.yml | 45 --- .../color-contrast-checker/LICENSE | 202 ----------- .../color-contrast-checker/README.md | 152 -------- .../color-contrast-checker/example/index.html | 71 ---- .../color-contrast-checker/package.json | 62 ---- .../src/color-contrast-checker.js | 241 ------------ .../test/color-contrast-checker.js | 342 ------------------ tests/wcag-compliance/package.json | 31 -- 142 files changed, 355 insertions(+), 1360 deletions(-) delete mode 100644 assets/palette/circles/black0.png delete mode 100644 assets/palette/circles/black1.png delete mode 100644 assets/palette/circles/black2.png delete mode 100644 assets/palette/circles/black3.png delete mode 100644 assets/palette/circles/black4.png delete mode 100644 assets/palette/circles/blue.png delete mode 100644 assets/palette/circles/flamingo.png create mode 100644 assets/palette/circles/frappe_base.png create mode 100644 assets/palette/circles/frappe_blue.png create mode 100644 assets/palette/circles/frappe_crust.png create mode 100644 assets/palette/circles/frappe_flamingo.png create mode 100644 assets/palette/circles/frappe_green.png create mode 100644 assets/palette/circles/frappe_lavender.png create mode 100644 assets/palette/circles/frappe_mantle.png create mode 100644 assets/palette/circles/frappe_maroon.png create mode 100644 assets/palette/circles/frappe_mauve.png create mode 100644 assets/palette/circles/frappe_overlay0.png create mode 100644 assets/palette/circles/frappe_overlay1.png create mode 100644 assets/palette/circles/frappe_overlay2.png create mode 100644 assets/palette/circles/frappe_peach.png create mode 100644 assets/palette/circles/frappe_pink.png create mode 100644 assets/palette/circles/frappe_red.png create mode 100644 assets/palette/circles/frappe_rosewater.png create mode 100644 assets/palette/circles/frappe_sapphire.png create mode 100644 assets/palette/circles/frappe_sky.png create mode 100644 assets/palette/circles/frappe_subtext0.png create mode 100644 assets/palette/circles/frappe_subtext1.png create mode 100644 assets/palette/circles/frappe_surface0.png create mode 100644 assets/palette/circles/frappe_surface1.png create mode 100644 assets/palette/circles/frappe_surface2.png create mode 100644 assets/palette/circles/frappe_teal.png create mode 100644 assets/palette/circles/frappe_text.png create mode 100644 assets/palette/circles/frappe_yellow.png delete mode 100644 assets/palette/circles/gray0.png delete mode 100644 assets/palette/circles/gray1.png delete mode 100644 assets/palette/circles/gray2.png delete mode 100644 assets/palette/circles/green.png create mode 100644 assets/palette/circles/latte_base.png create mode 100644 assets/palette/circles/latte_blue.png create mode 100644 assets/palette/circles/latte_crust.png create mode 100644 assets/palette/circles/latte_flamingo.png create mode 100644 assets/palette/circles/latte_green.png create mode 100644 assets/palette/circles/latte_lavender.png create mode 100644 assets/palette/circles/latte_mantle.png create mode 100644 assets/palette/circles/latte_maroon.png create mode 100644 assets/palette/circles/latte_mauve.png create mode 100644 assets/palette/circles/latte_overlay0.png create mode 100644 assets/palette/circles/latte_overlay1.png create mode 100644 assets/palette/circles/latte_overlay2.png create mode 100644 assets/palette/circles/latte_peach.png create mode 100644 assets/palette/circles/latte_pink.png create mode 100644 assets/palette/circles/latte_red.png create mode 100644 assets/palette/circles/latte_rosewater.png create mode 100644 assets/palette/circles/latte_sapphire.png create mode 100644 assets/palette/circles/latte_sky.png create mode 100644 assets/palette/circles/latte_subtext0.png create mode 100644 assets/palette/circles/latte_subtext1.png create mode 100644 assets/palette/circles/latte_surface0.png create mode 100644 assets/palette/circles/latte_surface1.png create mode 100644 assets/palette/circles/latte_surface2.png create mode 100644 assets/palette/circles/latte_teal.png create mode 100644 assets/palette/circles/latte_text.png create mode 100644 assets/palette/circles/latte_yellow.png delete mode 100644 assets/palette/circles/lavender.png create mode 100644 assets/palette/circles/macchiato_base.png create mode 100644 assets/palette/circles/macchiato_blue.png create mode 100644 assets/palette/circles/macchiato_crust.png create mode 100644 assets/palette/circles/macchiato_flamingo.png create mode 100644 assets/palette/circles/macchiato_green.png create mode 100644 assets/palette/circles/macchiato_lavender.png create mode 100644 assets/palette/circles/macchiato_mantle.png create mode 100644 assets/palette/circles/macchiato_maroon.png create mode 100644 assets/palette/circles/macchiato_mauve.png create mode 100644 assets/palette/circles/macchiato_overlay0.png create mode 100644 assets/palette/circles/macchiato_overlay1.png create mode 100644 assets/palette/circles/macchiato_overlay2.png create mode 100644 assets/palette/circles/macchiato_peach.png create mode 100644 assets/palette/circles/macchiato_pink.png create mode 100644 assets/palette/circles/macchiato_red.png create mode 100644 assets/palette/circles/macchiato_rosewater.png create mode 100644 assets/palette/circles/macchiato_sapphire.png create mode 100644 assets/palette/circles/macchiato_sky.png create mode 100644 assets/palette/circles/macchiato_subtext0.png create mode 100644 assets/palette/circles/macchiato_subtext1.png create mode 100644 assets/palette/circles/macchiato_surface0.png create mode 100644 assets/palette/circles/macchiato_surface1.png create mode 100644 assets/palette/circles/macchiato_surface2.png create mode 100644 assets/palette/circles/macchiato_teal.png create mode 100644 assets/palette/circles/macchiato_text.png create mode 100644 assets/palette/circles/macchiato_yellow.png delete mode 100644 assets/palette/circles/maroon.png delete mode 100644 assets/palette/circles/mauve.png create mode 100644 assets/palette/circles/mocha_base.png create mode 100644 assets/palette/circles/mocha_blue.png create mode 100644 assets/palette/circles/mocha_crust.png create mode 100644 assets/palette/circles/mocha_flamingo.png create mode 100644 assets/palette/circles/mocha_green.png create mode 100644 assets/palette/circles/mocha_lavender.png create mode 100644 assets/palette/circles/mocha_mantle.png create mode 100644 assets/palette/circles/mocha_maroon.png create mode 100644 assets/palette/circles/mocha_mauve.png create mode 100644 assets/palette/circles/mocha_overlay0.png create mode 100644 assets/palette/circles/mocha_overlay1.png create mode 100644 assets/palette/circles/mocha_overlay2.png create mode 100644 assets/palette/circles/mocha_peach.png create mode 100644 assets/palette/circles/mocha_pink.png create mode 100644 assets/palette/circles/mocha_red.png create mode 100644 assets/palette/circles/mocha_rosewater.png create mode 100644 assets/palette/circles/mocha_sapphire.png create mode 100644 assets/palette/circles/mocha_sky.png create mode 100644 assets/palette/circles/mocha_subtext0.png create mode 100644 assets/palette/circles/mocha_subtext1.png create mode 100644 assets/palette/circles/mocha_surface0.png create mode 100644 assets/palette/circles/mocha_surface1.png create mode 100644 assets/palette/circles/mocha_surface2.png create mode 100644 assets/palette/circles/mocha_teal.png create mode 100644 assets/palette/circles/mocha_text.png create mode 100644 assets/palette/circles/mocha_yellow.png delete mode 100644 assets/palette/circles/peach.png delete mode 100644 assets/palette/circles/pink.png delete mode 100644 assets/palette/circles/red.png delete mode 100644 assets/palette/circles/rosewater.png delete mode 100644 assets/palette/circles/sky.png delete mode 100644 assets/palette/circles/teal.png delete mode 100644 assets/palette/circles/white.png delete mode 100644 assets/palette/circles/yellow.png create mode 100644 docs/README.md delete mode 100644 tests/wcag-compliance/.npmrc delete mode 100644 tests/wcag-compliance/README.md delete mode 100644 tests/wcag-compliance/index.js delete mode 100644 tests/wcag-compliance/node_modules/.package-lock.json delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/.eslintrc.js delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/.github/workflows/npmpublish.yml delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/LICENSE delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/README.md delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/example/index.html delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/package.json delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/src/color-contrast-checker.js delete mode 100644 tests/wcag-compliance/node_modules/color-contrast-checker/test/color-contrast-checker.js delete mode 100644 tests/wcag-compliance/package.json diff --git a/README.md b/README.md index ac0f77a..cdf6242 100644 --- a/README.md +++ b/README.md @@ -51,39 +51,121 @@ To make the best use them please refer to the [Styleguide](https://github.com/catppuccin/style-guide).
-#### Morning - -| | Name | Hex | RGB | HSL | CMYK | -| ----------------------------------------------------------------------- | -------- | --------- | --------------- | --------------- | ------------------ | -| | Flamingo | `#F2CDCD` | `242, 205, 205` | `0, 59%, 88%` | `0%, 15%, 15%, 5%` | -| | Mauve | `#DDB6F2` | `221, 182, 242` | `279, 70%, 83%` | `9%, 25%, 0%, 5%` | -| | Pink | `#F5C2E7` | `245, 194, 231` | `316, 72%, 86%` | `0%, 21%, 6%, 4%` | -| | Maroon | `#E8A2AF` | `232, 162, 175` | `349, 60%, 77%` | `0%, 30%, 25%, 9%` | -| | Red | `#F28FAD` | `242, 143, 173` | `342, 79%, 75%` | `0%, 41%, 29%, 5%` | -| | Peach | `#F8BD96` | `248, 189, 150` | `24, 88%, 78%` | `0%, 24%, 40%, 3%` | -| | Yellow | `#FAE3B0` | `250, 227, 176` | `41, 88%, 84%` | `0%, 9%, 30%, 2%` | -| | Green | `#ABE9B3` | `171, 233, 179` | `128, 58%, 79%` | `27%, 0%, 23%, 9%` | -| | Teal | `#B5E8E0` | `181, 232, 224` | `171, 53%, 81%` | `22%, 0%, 3%, 9%` | -| | Blue | `#96CDFB` | `150, 205, 251` | `207, 93%, 79%` | `40%, 18%, 0%, 2%` | -| | Sky | `#89DCEB` | `137, 220, 235` | `189, 71%, 73%` | `42%, 6%, 0%, 8%` | - - - -#### Night - -| | Name | Hex | RGB | HSL | CMYK | -| ------------------------------------------------------------------------ | --------- | --------- | --------------- | ---------------- | ------------------- | -| | Black 0 | `#161320` | `22, 19, 32` | `254, 25%, 10%` | `31%, 41%, 0%, 87%` | -| | Black 1 | `#1A1826` | `26, 24, 38` | `249, 23%, 12%` | `32%, 37%, 0%, 85%` | -| | Black 2 | `#1E1E2E` | `30, 30, 46` | `240, 21%, 15%%` | `35%, 35%, 0%, 82%` | -| | Black 3 | `#302D41` | `48, 45, 65` | `249, 18%, 22%` | `26%, 31%, 0%, 75%` | -| | Black 4 | `#575268` | `87, 82, 104` | `254, 12%, 36%` | `16%, 21%, 0%, 59%` | -| | Gray 0 | `#6E6C7E` | `110, 108, 126` | `247, 8%, 46%` | `13%, 14%, 0%, 51%` | -| | Gray 1 | `#988BA2` | `152, 139, 162` | `274, 11%, 59%` | `6%, 14%, 0%, 36%` | -| | Gray 2 | `#C3BAC6` | `195, 186, 198` | `285, 10%, 75%` | `2%, 6%, 0%, 22%` | -| | White | `#D9E0EE` | `217, 224, 238` | `220, 38%, 89%` | `9%, 6%, 0%, 7%` | -| | Lavender | `#C9CBFF` | `201, 203, 255` | `238, 100%, 89%` | `21%, 20%, 0%, 0%` | -| | Rosewater | `#F5E0DC` | `245, 224, 220` | `10, 56%, 91%` | `0%, 9%, 10%, 4%` | +| | Labels | Hex | RGB | HSL | +| ------------------------------------------------------------------------------ | --------- | --------- | -------------------- | -------------------- | +| | Rosewater | `#dc8a78` | `rgb(220, 138, 120)` | `hsl(11, 59%, 67%)` | +| | Flamingo | `#dd7878` | `rgb(221, 120, 120)` | `hsl(0, 60%, 67%)` | +| | Pink | `#ea76cb` | `rgb(234, 118, 203)` | `hsl(316, 73%, 69%)` | +| | Mauve | `#8839ef` | `rgb(136, 57, 239)` | `hsl(266, 85%, 58%)` | +| | Red | `#d20f39` | `rgb(210, 15, 57)` | `hsl(347, 87%, 44%)` | +| | Maroon | `#e64553` | `rgb(230, 69, 83)` | `hsl(355, 76%, 59%)` | +| | Peach | `#fe640b` | `rgb(254, 100, 11)` | ` hsl(22, 99%, 52%)` | +| | Yellow | `#df8e1d` | `rgb(223, 142, 29)` | `hsl(35, 77%, 49%)` | +| | Green | `#40a02b` | `rgb(64, 160, 43)` | `hsl(109, 58%, 40%)` | +| | Teal | `#179299` | `rgb(23, 146, 153)` | `hsl(183, 74%, 35%)` | +| | Sky | `#04a5e5` | `rgb(4, 165, 229)` | `hsl(197, 97%, 46%)` | +| | Sapphire | `#209fb5` | `rgb(32, 159, 181)` | `hsl(189, 70%, 42%)` | +| | Blue | `#1e66f5` | `rgb(30, 102, 245)` | `hsl(220, 91%, 54%)` | +| | Lavender | `#7287fd` | `rgb(114, 135, 253)` | `hsl(231, 97%, 72%)` | +| | Text | `#4c4f69` | `rgb(76, 79, 105)` | `hsl(234, 16%, 35%)` | +| | Subtext1 | `#5c5f77` | `rgb(92, 95, 119)` | `hsl(233, 13%, 41%)` | +| | Subtext0 | `#6c6f85` | `rgb(108, 111, 133)` | `hsl(233, 10%, 47%)` | +| | Overlay2 | `#7c7f93` | `rgb(124, 127, 147)` | `hsl(232, 10%, 53%)` | +| | Overlay1 | `#8c8fa1` | `rgb(140, 143, 161)` | `hsl(231, 10%, 59%)` | +| | Overlay0 | `#9ca0b0` | `rgb(156, 160, 176)` | `hsl(228, 11%, 65%)` | +| | Surface2 | `#acb0be` | `rgb(172, 176, 190)` | `hsl(227, 12%, 71%)` | +| | Surface1 | `#bcc0cc` | `rgb(188, 192, 204)` | `hsl(225, 14%, 77%)` | +| | Surface0 | `#ccd0da` | `rgb(204, 208, 218)` | `hsl(223, 16%, 83%)` | +| | Base | `#eff1f5` | `rgb(239, 241, 245)` | `hsl(220, 23%, 95%)` | +| | Mantle | `#e6e9ef` | `rgb(230, 233, 239)` | `hsl(220, 22%, 92%)` | +| | Crust | `#dce0e8` | `rgb(220, 224, 232)` | `hsl(220, 21%, 89%)` | + +| | Labels | Hex | RGB | HSL | +| ------------------------------------------------------------------------------- | --------- | --------- | -------------------- | -------------------- | +| | Rosewater | `#f2d5cf` | `rgb(242, 213, 207)` | `hsl(10, 57%, 88%)` | +| | Flamingo | `#eebebe` | `rgb(238, 190, 190)` | `hsl(0, 59%, 84%)` | +| | Pink | `#f4b8e4` | `rgb(244, 184, 228)` | `hsl(316, 73%, 84%)` | +| | Mauve | `#ca9ee6` | `rgb(202, 158, 230)` | `hsl(277, 59%, 76%)` | +| | Red | `#e78284` | `rgb(231, 130, 132)` | `hsl(359, 68%, 71%)` | +| | Maroon | `#ea999c` | `rgb(234, 153, 156)` | `hsl(358, 66%, 76%)` | +| | Peach | `#ef9f76` | `rgb(239, 159, 118)` | `hsl(20, 79%, 70%)` | +| | Yellow | `#e5c890` | `rgb(229, 200, 144)` | `hsl(40, 62%, 73%)` | +| | Green | `#a6d189` | `rgb(166, 209, 137)` | `hsl(96, 44%, 68%)` | +| | Teal | `#81c8be` | `rgb(129, 200, 190)` | `hsl(172, 39%, 65%)` | +| | Sky | `#99d1db` | `rgb(153, 209, 219)` | `hsl(189, 48%, 73%)` | +| | Sapphire | `#85c1dc` | `rgb(133, 193, 220)` | `hsl(199, 55%, 69%)` | +| | Blue | `#8caaee` | `rgb(140, 170, 238)` | `hsl(222, 74%, 74%)` | +| | Lavender | `#babbf1` | `rgb(186, 187, 241)` | `hsl(239, 66%, 84%)` | +| | Text | `#c6ceef` | `rgb(198, 206, 239)` | `hsl(228, 56%, 86%)` | +| | Subtext1 | `#b5bddc` | `rgb(181, 189, 220)` | `hsl(228, 36%, 79%)` | +| | Subtext0 | `#a5acc9` | `rgb(165, 172, 201)` | `hsl(228, 25%, 72%)` | +| | Overlay2 | `#949bb7` | `rgb(148, 155, 183)` | `hsl(228, 20%, 65%)` | +| | Overlay1 | `#838aa4` | `rgb(131, 138, 164)` | `hsl(227, 15%, 58%)` | +| | Overlay0 | `#737891` | `rgb(115, 120, 145)` | `hsl(230, 12%, 51%)` | +| | Surface2 | `#62677e` | `rgb(98, 103, 126)` | `hsl(229, 13%, 44%)` | +| | Surface1 | `#51566c` | `rgb(81, 86, 108)` | `hsl(229, 14%, 37%)` | +| | Surface0 | `#414559` | `rgb(65, 69, 89)` | `hsl(230, 16%, 30%)` | +| | Base | `#303446` | `rgb(48, 52, 70)` | `hsl(229, 19%, 23%)` | +| | Mantle | `#292c3c` | `rgb(41, 44, 60)` | `hsl(231, 19%, 20%)` | +| | Crust | `#232634` | `rgb(35, 38, 52)` | `hsl(229, 20%, 17%)` | + +| | Labels | Hex | RGB | HSL | +| ---------------------------------------------------------------------------------- | --------- | --------- | -------------------- | -------------------- | +| | Rosewater | `#f4dbd6` | `rgb(244, 219, 214)` | `hsl(10, 58%, 90%)` | +| | Flamingo | `#f0c6c6` | `rgb(240, 198, 198)` | `hsl(0, 58%, 86%)` | +| | Pink | `#f5bde6` | `rgb(245, 189, 230)` | `hsl(316, 74%, 85%)` | +| | Mauve | `#c6a0f6` | `rgb(198, 160, 246)` | `hsl(267, 83%, 80%)` | +| | Red | `#ed8796` | `rgb(237, 135, 150)` | `hsl(351, 74%, 73%)` | +| | Maroon | `#ee99a0` | `rgb(238, 153, 160)` | `hsl(355, 71%, 77%)` | +| | Peach | `#f5a97f` | `rgb(245, 169, 127)` | `hsl(21, 86%, 73%)` | +| | Yellow | `#eed49f` | `rgb(238, 212, 159)` | `hsl(40, 70%, 78%)` | +| | Green | `#a6da95` | `rgb(166, 218, 149)` | `hsl(105, 48%, 72%)` | +| | Teal | `#8bd5ca` | `rgb(139, 213, 202)` | `hsl(171, 47%, 69%)` | +| | Sky | `#91d7e3` | `rgb(145, 215, 227)` | `hsl(189, 59%, 73%)` | +| | Sapphire | `#7dc4e4` | `rgb(125, 196, 228)` | `hsl(199, 66%, 69%)` | +| | Blue | `#8aadf4` | `rgb(138, 173, 244)` | `hsl(220, 83%, 75%)` | +| | Lavender | `#b7bdf8` | `rgb(183, 189, 248)` | `hsl(234, 82%, 85%)` | +| | Text | `#c5cff5` | `rgb(197, 207, 245)` | `hsl(228, 71%, 87%)` | +| | Subtext1 | `#b3bce0` | `rgb(179, 188, 224)` | `hsl(228, 42%, 79%)` | +| | Subtext0 | `#a1aacb` | `rgb(161, 170, 203)` | `hsl(227, 29%, 71%)` | +| | Overlay2 | `#8f97b7` | `rgb(143, 151, 183)` | `hsl(228, 22%, 64%)` | +| | Overlay1 | `#7d84a2` | `rgb(125, 132, 162)` | `hsl(229, 17%, 56%)` | +| | Overlay0 | `#6c728d` | `rgb(108, 114, 141)` | `hsl(229, 13%, 49%)` | +| | Surface2 | `#5a5f78` | `rgb(90, 95, 120)` | `hsl(230, 14%, 41%)` | +| | Surface1 | `#484c64` | `rgb(72, 76, 100)` | `hsl(231, 16%, 34%)` | +| | Surface0 | `#363a4f` | `rgb(54, 58, 79)` | `hsl(230, 19%, 26%)` | +| | Base | `#24273a` | `rgb(36, 39, 58)` | `hsl(232, 23%, 18%)` | +| | Mantle | `#1e2030` | `rgb(30, 32, 48)` | `hsl(233, 23%, 15%)` | +| | Crust | `#181926` | `rgb(24, 25, 38)` | `hsl(236, 23%, 12%)` | + +| | Labels | Hex | RGB | HSL | +| ------------------------------------------------------------------------------ | --------- | --------- | -------------------- | -------------------- | +| | Rosewater | `#f5e0dc` | `rgb(245, 224, 220)` | `hsl(10, 56%, 91%)` | +| | Flamingo | `#f2cdcd` | `rgb(242, 205, 205)` | `hsl(0, 59%, 88%)` | +| | Pink | `#f5c2e7` | `rgb(245, 194, 231)` | `hsl(316, 72%, 86%)` | +| | Mauve | `#cba6f7` | `rgb(203, 166, 247)` | `hsl(267, 84%, 81%)` | +| | Red | `#f38ba8` | `rgb(243, 139, 168)` | `hsl(343, 81%, 75%)` | +| | Maroon | `#eba0ac` | `rgb(235, 160, 172)` | `hsl(350, 65%, 77%)` | +| | Peach | `#fab387` | `rgb(250, 179, 135)` | `hsl(23, 92%, 75%)` | +| | Yellow | `#f9e2af` | `rgb(249, 226, 175)` | `hsl(41, 86%, 83%)` | +| | Green | `#a6e3a1` | `rgb(166, 227, 161)` | `hsl(115, 54%, 76%)` | +| | Teal | `#94e2d5` | `rgb(148, 226, 213)` | `hsl(170, 57%, 73%)` | +| | Sky | `#89dceb` | `rgb(137, 220, 235)` | `hsl(189, 71%, 73%)` | +| | Sapphire | `#74c7ec` | `rgb(116, 199, 236)` | `hsl(199, 76%, 69%)` | +| | Blue | `#87b0f9` | `rgb(135, 176, 249)` | `hsl(218, 90%, 75%)` | +| | Lavender | `#b4befe` | `rgb(180, 190, 254)` | `hsl(232, 97%, 85%)` | +| | Text | `#c6d0f5` | `rgb(198, 208, 245)` | `hsl(227, 70%, 87%)` | +| | Subtext1 | `#b3bcdf` | `rgb(179, 188, 223)` | `hsl(228, 41%, 79%)` | +| | Subtext0 | `#a1a8c9` | `rgb(161, 168, 201)` | `hsl(229, 27%, 71%)` | +| | Overlay2 | `#8e95b3` | `rgb(142, 149, 179)` | `hsl(229, 20%, 63%)` | +| | Overlay1 | `#7b819d` | `rgb(123, 129, 157)` | `hsl(229, 15%, 55%)` | +| | Overlay0 | `#696d86` | `rgb(105, 109, 134)` | `hsl(232, 12%, 47%)` | +| | Surface2 | `#565970` | `rgb(86, 89, 112)` | `hsl(233, 13%, 39%)` | +| | Surface1 | `#43465a` | `rgb(67, 70, 90)` | `hsl(232, 15%, 31%)` | +| | Surface0 | `#313244` | `rgb(49, 50, 68)` | `hsl(237, 16%, 23%)` | +| | Base | `#1e1e2e` | `rgb(30, 30, 46)` | `hsl(240, 21%, 15%)` | +| | Mantle | `#181825` | `rgb(24, 24, 37)` | `hsl(240, 21%, 12%)` | +| | Crust | `#11111b` | `rgb(17, 17, 27)` | `hsl(240, 23%, 9%)` |   diff --git a/assets/palette/circles/black0.png b/assets/palette/circles/black0.png deleted file mode 100644 index b6dfa4a7511a01b68b4911bf6af476e1f8af7977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcmai0eOyyz8$N);WI!PjWKyRgSR(s^F?ZY`J|HtS zhah33)ud7zPzugQbr>#U+-W?)fH94Tv6v@g%S z0Rl#pQo&YZ4o)Ig5yPR2fZz6M76W!rD1(ThlqJA1gc*f-OdgZXh;W02W{nm}id{G! z3`Qb`o}x?$isNk2ke>USnQ=u!7;EG?xdD-5)(1_T-GDYq&*dyr~~52PDW@za-j~vNk|$K zlVB#aSPsC*q_}8UDvk-~2*SfdxXiH?K+zBoi)n4KDhjZ;Y|xu*P6$V!;P8=9Ho|2G zvpEQx?ND~G!CBC#DAoVt+dCQ-f(V%mkzgc6m~D=!u{KXemyeCchB=s{zhT%>WkjX6 znnp>lf!0)Jsy#(M}gY2 z_r@B}jAcJ@f2Ag5J(0Z7L3redg1E6caP+|)!kV~5z+mDULUC~Sn879El@vfhkkcv* zl;w$XK+x-@meTIv;zYle$gBG7sw#SG^Ti|I_r`hf+jb_tZP?|`ziNp5?jQd;ey6fG z^=L-ok7pX_BhGk*p|0eEciMQ%i!;v~mX(P<9jrM&T>G;P`B{*)QCm@y*+DDuf4hZ=YxK^EFPkEVci^*(Fntd2P+ zzT7M8Ne%Q~IwRu62g}S+J%;2(ivPCuQfngP+dnSl>_7Zm4wY#+Y;kHO|l-XxsZm@n{ zX;6$;!|uR;)_%YX%u8BW>2q+j;9>ozuD=Ce_IKJ{z}~Qhxt}WVnsX?!>mXnrg8wV?D|EM9Y z^b0A&_4LlJB7AKwbET7YSl8c_ni2+H7t>6VG!la7-uA}{s;cpWAZLj*HcFvf^Yw=Z z4Bm;eS|V-Y_g>5yXp36lzue^2azjJy%gAUvTx^IMb#_56*KMQuHf}w(>-LSHL&ecw zRxh#ME>4|SE<=TZSuZK4 zFbk8fxzBfcP?)d2FYB@`6V%m0FUx+E=AZ8KH0FpoBRB@W+wTb}05@1Daih|ViNQTKx=e4P#-S=~!m z8rBmt9xD3ko)?CtzFIyVOWfy&kEH%y=h|95x_#~^?o}W;YhC!Rn0CCc zJsl_axfnQnc5C$a{8#@ocPBbndbnG+=jQ4B^y4C6$~#=+;(G2`&m(Oe;wfM3&0Mf) z-U##D(${z^EADNZ3WW~5ceAT*YjwsEy7056wgc$ikrxW2{IF_CYy!=nU$BbhKRWHM zUeogYHP^kc*Qv0QgJng|vkxw^?0Czilhv`_v#j*@v&ZI_-w!xxx$`-n-+0$cAeh-3 zAJy{h)Wd~5_5B7_@vpP1iNedyry~Md`v#5_m1~-AN?O7{y51h#8+anw8dP(}hc43u l-gIAdsZrv(k}a(onJQ)0&rH9e=(PVak&5N9pG9Y_`V#_BTG{{r diff --git a/assets/palette/circles/black1.png b/assets/palette/circles/black1.png deleted file mode 100644 index be66d76547e36c1963fdf5902a0fef9a87292ccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2275 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 diff --git a/assets/palette/circles/black3.png b/assets/palette/circles/black3.png deleted file mode 100644 index 4c341024baf70ecd63795dd5afd5fb586f428a71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2278 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 diff --git a/assets/palette/circles/flamingo.png b/assets/palette/circles/flamingo.png deleted file mode 100644 index 47068c2e9d24489b955d5201b1cd52dd7611f002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2249 zcmai0dsGuw9-aWAB#nD453}vk&5nX>fxJjaGfhZi5(r|Dr-1K}Op-B>iJ1ursP$CD zm4^pnc~}mpth6Gwf~Cimf=6mgX=tqvT0z-EtJ0#?A{;zb>K6AVP|&Koe@v2lzwh_m z-|PM+#Yu^Abm~h~2!iPGDn$zTUgmxl_=3-}!^r{&@@d7=GRaK!N<@q2vNSq88)Z3i zEdYlgvD9JFXiX@|%tj5ESpwhfI0G{=odnJhs5xqj95rI90xOzYkeH?|Flj|PSQkEAGK zXN<25jK~_VLwhMG5vGsZsaMt#fXzQVZ<%7 z0X%WUEc}!qNZ+$f92(2B$ZGZfrsw895e7jj^FShIlKO;CzaK!PCV_=K_G8CnJrkO(1LE;cjq8AOQ69lL zC|)j4vf_Fy2Vg`>+;V2TQXb6}MMp>SSkotfq9MQ*)8{KRBw+D4pf@?(NUkW2D@3BW z2u~Q!;UXN4N7=&$cR{BiHUE$A?r5eMSg6&A3L{9|n(x_~Zu3-h%k*k`nS*)yo5}Q4 z8PRCnNs_=8E3UI?QJv>-AUBN?xSq6Ytfm>i&eM0R zhgY|+Prm+n3vJ5FTxEK9PvyE^!Ir`e=S`dUNsdg^ou51~l8=mtHtp3{)otjfwQox< z_3<9PGEg@-wP)Vq$d95J8KjN>mxalFL*}Jx?(`ZiHwWKu5k!XC=0(uYE-7gaELyfp z{-yHUVfD4uA^sZ!VuF6zY?WOzrLIbQ;2I{2q$@A~)5&c;xuB!(%xmMNRb|!w)ipO< zXhQG#?O)Zrwr}zsEbDbN?~woBRFLrPvZ&n$V|I5x9KX1#{7#eeyNC5srOX;Q{%W`} z!Wk-G)Y24k^gyK`q#z}>ILDHI3u0(7xIgpG+*`_jK9(_D)nC_^pm` z&@QG=Hq!=%-ZB^4S=%U%NyF&b)#-fjy7058vIq#G`MVzqR9nY@ATMsbLY9_UbZ-9% zv%f4rSsq9Ip;5J~vhuw{#l~1_@NVD6ifUX%y{a0Umr12t-`?hZ%VG>ZqNw#M4q$ep zDHQ=jJXKKl);3;;DbAF4nm|l?N&oq%w!1??v$UK-Nj`qNQ+`MDcK#}DqC`k-L_wj)q2`Gl$lFI7u1!;EjRBORsdE z!mq>cjJ%4s#aRSGC>y&(dN1#ktk%?KgLWQ&peeZcKkuDbKl9V1mSc|Flh>Ja?zBzwhv; zXt8aBj|}4;j=c9Q4?+v7(=0Oh9U6oiioYmI+TGhG{{FGb9)8iRH4L&1^|zWCK3MWR&=0YJWejJG^<4=mTSke?sYBK8N%K zi8dTu|NQsu?1@<*@(Lo;tbB6IZhuR9GI$eW9bP=+2t(qw<8& z`b$7%dpgdqU&6q%pJ&l$9aV5CbJ%mwWpWeyO^OYQg`CZK%g7`F< zj_|t*$xbS|q0QjEU$^Y}Mt6p`{K>I9b3_{+-cBpF(_O=(#F-=5;9f7Ab1HK!&{(~& z=SRgJ%rRy9@M8Vs(4D%R2}vKBZk|o5^Ja>OpXmK8@=U%T!#w#d2Xp$0(ze2vbUIo6D7*r_99`oZR2$d2i>b>AD9j zof#wk)fPSav7J-^abJ#tD94aZ;4Qm~yKlwSmLfV6~L||t5 z%GV527U(2>)~!_R5SrpxGH>a6mY^nJa?0=XJ~%~zKk}LB^}P*zF==W?1ts}c&5n_F z+t0I-dA^pHVzsGmq4@;eM0wX|Yp=Y0z;~c_VeQp(wp?;1meCGp_&2EP1n!B-vJtq% zxFh(+`qXy|u4s9OH7M>skR=dc>wZZ{L7=X(UulMgudjEXY#J*J%8hQ7qA3j@O1TaS?83{1OU}C B;Aa2; literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_blue.png b/assets/palette/circles/frappe_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..777988794c4628bf38e866a2914dfb5188a26d53 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-N7b*{u2Jyil%=rTwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|1TNVv>)te4F#4T44$rj JF6*2UngD@s_9OrR literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_crust.png b/assets/palette/circles/frappe_crust.png new file mode 100644 index 0000000000000000000000000000000000000000..10cbce1855ebaf278870ab4b7cf8ac6a0be68e91 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-67SOahduFsY9Qjc*^Q4+#N&LP#=8va) zzcCmUvV2h5u~)bu{NUS}4;R=nF#0i^yV#!cqvCelp8m-n>_S#-WGZ3!m&wm`;Qfow z%vFY~7Kt&gX|X$AP;>P}LTrPUT4BpVp1HR)!V*FoqMGHE|LCc?ZcuaZK6reF$iXfK zU3U3oFP2&bCziFZ8RkE*{-c=w<@3TOH`as?*Z&EeVg*BW{_~AY0;`v}h zuTTcI{qx@EuXkPL*vWO^!}q|HdqrFy1bOVI8vm+15Js$GOc@7CRD(CCF7<_F+ZZddU zF5wWc7x66dIF-1bLFezb8*`7#F-q+7Eql5tl%Xwu_Sv6XHW+oNY;a|e`&+s}bNN=F zvAZJXibppTU*kBic)wrR(`_mZokzJ-%)5W;awgQe>dj0y+;7QPQFnoDv*o$kkLy1; zbntDq^y55m@4ndNN*KNAymh({!@l?VlP|_ZGR_g^o=_?&6!={0enf-Xe<`)f=UVaG z7@qU6Cj9(<(Dj@%W5mDOf{DgJYc(2*n;7=|c-;Mc4^W>o7!@XZXt_L!tpgGJ9?r$9hMCBUe8q)6;3aHL&jAK~G_35PK1IvbLpzUA> z#K=B@JHS}v!3s03ph?|x+L``n+6XKTBL1VtA=>AeW%-i&69xi7^KQyKXL+!{FT44s%=9YT^Q^DZ z4EHb1f3VZxuFkXV&p4i!Hd;kamG<6Ke2wdXR)F~G&$ogYH5_GgPIc-Yu#9F+5Z!S0 zSrt;o#nLED?H8NRoE3$^~PQE}l(4x^#{foU6D zK4z`_=-|Qrz%OzCw4KdCt92q7+x{@Ec69hEViHj@*9*K z7NiRLu*w6o&;nIKA2#_7S`G`O_gvc&wR6`0!@vx8K=NDa3bikarg}V_MlJkn+k^8L z7lw%21^Bbhc+7ge_8Z5|_Aq~jIM(gyZDK4Ek42C9?_2Xh{$)kg19=|<5n%bj;OXk; Jvd$@?2>?Bn?cM+Y literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_flamingo.png b/assets/palette/circles/frappe_flamingo.png new file mode 100644 index 0000000000000000000000000000000000000000..071e9bbc52aef04265db955fe05e499c69aff2cf GIT binary patch literal 1126 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 II;Vst0OQK{djJ3c literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_maroon.png b/assets/palette/circles/frappe_maroon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c49ff0d43094210389aa2dd95dd21ace0e654c2 GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1h(aSW-L^LFlCzdHs3t^V6q z>|QY?-CM})e*7iO8v1;PMT@0ZJ z4?%@GjY%&iOgS9K81XB2qjkS6lR?ewH>XlpGw|FuoBcU6F;&1bp_{?x*Xx8}zignf zr5mmEw=q0lBiP_xKX=WkTu%n!Zt)X&VxOah4*cqhF*=`ASIqR`&jQ}G;yJ$`#XoEm zkOi`Y8usqjRr?I1Q|6bSo54_X|GwJdotu~})WsBD8>uWh7rJjFgYQ36pHDzm4&ymV zt^=RmH+RozXWH=R_XDMLptS)E&si8NJ{}i;U%8pdq8*H$Gu-?A-HZJTlg*31W{r;w zK*mcDgXM$F0b7v+mLwr|hW=a43R*Tydl}B}daU4O!@QRvM)b*K;{(ME-+{J+9k9dd z1l$4X8V3S%MV6?DTk^C12(D0YY44tMlWC4H_W`pDX5l}NF>T=8au(tp;Rf;6TPY^t zVGPfGI2{acB^jMxssBN;aodbD#qT`+Pe@c)Vzb%u9Or?0+3ReZE%m-u&EvjuHmT10 z{(<7gU6E(<&kCM<%~ZNc%Y0hJ^EILkp$qiFo^M^s6wqXKV~TKeL-97Q16m2Q&;ER~ zl3~gLwcSNGZ!>8$>Xtp9Sj1N_`@?3Jz9lk2EES$N4F#1o+pm-}=CJNkIluqNZ3nLf zz|`R#%f5gmRd9CxNp8m}3wRcN)~QvUAoK*7oQh+(ma$ZxFj~L!9c#%0BV*0J6BPk> zpWHI|mFgk;BP5XP=IYGO-Hkb%zcq~Vm*%mTGrZ$|ySnUM;D-e#Z!#s-HRvXGKDrw8 zxN!pCfw_n3bc@-ShDB~-;`zxM*4*&Qa?&)0#t)~fMGhW0xp5l+FwwpX(~)9*9R6K44$rjF6*2U FngBAG^2-1K literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_mauve.png b/assets/palette/circles/frappe_mauve.png new file mode 100644 index 0000000000000000000000000000000000000000..01b134d771e7ab138dc5a7e8fec084c7297c4df8 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-NB|peg%KykE`r2TwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{vW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|6k6m+4!ZpP!L#tFnGH9 KxvX|QY?-C7xVCz|{pN0Ps;c<=4dZWf{GGH}RE|AA?PJ!t@b{;$(jD=6 zTi7RbDmRE9d^?w64_DrK9`?7490g1TeRe8`kKg|GsCG`v_k~Wqq6?Tm_*V-s)Va@> zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B|QY?-C zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B|QY?-NB~#|5wLfW*zA-TwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|2KHmcpewbdIc;$7(8A5 KT-G@yGywp=4EE>% literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_peach.png b/assets/palette/circles/frappe_peach.png new file mode 100644 index 0000000000000000000000000000000000000000..a3dd453e6b1275d1806888c60ab0abbd3396c73d GIT binary patch literal 1126 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 C_Tzp4 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_red.png b/assets/palette/circles/frappe_red.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6487bb5477d82621e3e44a7d948bb818529dd3 GIT binary patch literal 1125 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 Iol`;+00eLI#sB~S literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_sapphire.png b/assets/palette/circles/frappe_sapphire.png new file mode 100644 index 0000000000000000000000000000000000000000..25f47008880ddfe1663a49de5ade314e32a342b0 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C<9*{F?WHit`qVi)wAXEq_qs_1U}0=Wi6-ajq4ZATeLx_@+wRyVKY673y|g zlygw)V~AtfUe5GEYlp3|%ocWq1Dppee@)<#&%fRMy-?_0JC|u#1K$Drw~h=yWNYgj z^xZPAE&wt-;^)S^4WR&=4*L5b^kI}B_;qoFk`~I6Jt};pNk$GrVGHu#~#Y_f&Y*J>1 zXEI9E#T|Jb9>mZV&vvnLnoz^T>8?5ZR9O;!SaqDKUd6x@KmEy1f58Qv?Ml)Ln(ZQt zkJ^kQ+^@>GX8j4(&pOY{)fvw7-%2n$zEl67s2s<| zM6=_Xj5mJYPBJ9#)`ldzHY^- ztOe($Fo-PHRr@^W7t?&fjP8>*&-=dcOR_ngGM@c-4#S`8g}DZ^9|x^}zSH5Z&a>@b zcx}X2%s%?(n#{vJdI9RIi;_Fb&qXmtu)azvjf>V|P+igNYq^otB7HT(8m4VG=bWF% z<-nPN#$~y&l$FJ+Iv6oIHl;?Fnx-wu;HX4k6Q5qVGF!J{qf$zyMzUp zI(AtXLpwiU&fH{nXV~bAH z$_LEXfDDzUlRyzxj*{lzjbD@bLdC#FAC#Q@4W4@?V)4FHtjBCL1gTd3)&t;uc GLK6UaMd`f& literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_sky.png b/assets/palette/circles/frappe_sky.png new file mode 100644 index 0000000000000000000000000000000000000000..ecdbe9b50839e4f772e666ebf402bbe4f7f04b07 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C<9u{ObMMit`qVi)wAXEq_qs_1U}0=Wi6-ajq4ZATeLx_@+wRyVKY673y|g zlygw)V~AtfUe5GEYlp3|%ocWq1Dppee@)<#&%fRMy-?_0JC|u#1K$Drw~h=yWNYgj z^xZPAE&wt-;^)S^4WR&=4*L5b^kI}B_;qoFk`~I6Jt};pNk$GrVGHu#~#Y_f&Y*J>1 zXEI9E#T|Jb9>mZV&vvnLnoz^T>8?5ZR9O;!SaqDKUd6x@KmEy1f58Qv?Ml)Ln(ZQt zkJ^kQ+^@>GX8j4(&pOY{)fvw7-%2n$zEl67s2s<| zM6=_Xj5mJYPBJ9#)`ldzHY^- ztOe($Fo-PHRr@^W7t?&fjP8>*&-=dcOR_ngGM@c-4#S`8g}DZ^9|x^}zSH5Z&a>@b zcx}X2%s%?(n#{vJdI9RIi;_Fb&qXmtu)azvjf>V|P+igNYq^otB7HT(8m4VG=bWF% z<-nPN#$~y&l$FJ+Iv6oIHl;?Fnx-wu;HX4k6Q5qVGF!J{qf$zyMzUp zI(AtXLpwiU&fH{nXV~bAH z$_LEXfDDzUlRyzxj*{lzjbD@bLdC#FAC#Q@4V}4RsvtqBE$WvhX!QkoY=d#Wz Gp$Pyt1L+q4 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_subtext0.png b/assets/palette/circles/frappe_subtext0.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c4f290a587e2e02320e5e15154fa3779817639 GIT binary patch literal 1126 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 I&MBb@0Pkn@P5=M^ literal 0 HcmV?d00001 diff --git a/assets/palette/circles/frappe_yellow.png b/assets/palette/circles/frappe_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..6c78760dada0be74f39847d44c34c50827cd30ab GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-NB|%ezkw&kIUjOTwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{*e?vD7p zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC{~xTaS-^Jk;Ywin!QkoY K=d#Wzp$PyLp7$95 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/gray0.png b/assets/palette/circles/gray0.png deleted file mode 100644 index 53853a22bb85368a405880d11edca9463f562d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2277 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 diff --git a/assets/palette/circles/gray2.png b/assets/palette/circles/gray2.png deleted file mode 100644 index 00691e186a40a671d6e41cbc939414c2b644ac2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2255 zcmai0dsGu=79XA}5Il$vc3awEQcxSogCs&m!b1`uKp;E?*H%I@Nya=TP9_kjwhBtM z!eOxmss&43x=?B%J=&gnsD*N>oIou_w5V)-m6h&Ud}LWcWQ+SHP|&LFA2Z4K{eJg% z?|1M0Zn9sNnn3gVvlj$GG)bZ;1AMM_Jc~WSyW(%@d4QQ|_7h`FRb7Spc|Oj*T7jFo|z2s5d` z#D$oFqB}F;$O|gNEtoD>gzGVb31nA@a0R~s^PU055juj*1Wknr5suTwkvUYNm#eW& zxRTP$Yc1@jU0qu|aRLIiVau7AG9# za!@vp!3J-(Q`yM|cR?wqbTk|ZETmF25jRl;S?t`JZSzcQ`|N6Vsl%Q94a3eV zqjH5KNkYU(5=yfIQ#zdkxmnaisHh@2iN&fxfrUt{N`-@T7Q-?}=fWH&ht1?YZc(Jc zfZDUq#+r+a<+yRbh8D?sBKSxr;gKr}>}L1C)dw?#H9thaVtx!^1~7X_Fl27?w)jGj zODPV@@xi2n{B+$Zpo6?iDfAX10U_Lks}j=aMUF3E_mU2**38`G`Lo(~uo0$p0(U{};Jtwfjl68p*|?Wb`_H)*VG zzqx86|L5%glG)>9r6yYHcOP#q@J=22;8tp-)=t<$1`j8FJ?_Wr=`t^=9IrX@OTEeB zJ&--s>V5IbZo~c}<_;Ijl=^mePBstxTr4pr=9wVK+u!lHK!@uCAjmabB8tt*-Fx<3 z4lx)LQ2u_sJ3Vl7&}WK(Tv-p&pmgmEs%iUQd13x1?wz|5t&Qt$5slBSEvw^wHnN+x z-#2U9nZib&f8{pqyFRV+7?%7qzh_c6&|o6I`bR_Or2bPVJ>cr1BW~@x61q^U%Q2Us zu3)3b7O1C7a&1h1$-FsOEOeX5I$yS|>I#f3bycS^R;=1<_iz08=uBPIU8ZrO=N13a zw+?jQf8nm5#qC|MJ;5ovUa-CxG2MLPi!~LScGH!_h0~BFFk-qxW0h@Lex_=7drU{X zdlqjSw< z+p+gJcfW_52Up7>Mof?FY~Po@g+Ax1rV@wY%A-}so@*+*S50#}w*Hd>Pp#*gu@57! zU4~WPBrs_=4(=G~g(uD?#Cv|Ki#iwHwd4k4XMvATCA$4;Yti!&uf2C7Wl?34&9wOP z)HczzXM$cL%P~aW_a`4EobuV>Ry=Ry_C6 UWFS9?bo>vIh*L#v8}m#55AXL+00000 diff --git a/assets/palette/circles/green.png b/assets/palette/circles/green.png deleted file mode 100644 index 066f0a8a1922ecc9f7fc29cb14d633d46c19fcf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmah~Yfw{X8a@c5Xr!Zq2<_IIo)mGxB$sywCf7 z?=3rH6;a-E-k$?Okhd&4JRW=pIv+0z_}ukn91ns#68=)nR54{IKynOv5xHIE5!?$t_Y;k45JYXhM!6QJrH@^EI$UJV)pd z009$9s%Q?A(QFksM6gR&0De1PBQVWHAq^r}DUYQ|aRR0Bm^>y67SEvx35`||A09bj z3{E0gPm&e^g4peLrk%^g2_3@b^Z5vigK#(uz+hOj&7{h~Fk9(PiE)i^)T$;h3yI-o znp0Dif!jzC3g;)#H}Qpk}z3gkLiR>3*|`LuGjrSuX!$y2&)-8dfqQ3nXr$ z2s2`O<-nSlZ9$QE)QZ~(H5!oxvPX9%&Y2fMEapIs%5V%M)e5R1g1P+PfvIl+rMM9% z5?K?*V6IMw_!0lFS&m3uj78IfaSf5DqfU zP3jw=$vOyJ(aCWQ2#)I#oPuOhX)J+jF(bgN@lmU3vIyx4Hh;wm28TKB0TfLDY%y(i zxQYZU4h!@$i_Kv36WJjGE=Ry&2ea4$7R#mVVuRVys7TfS<2xsSCe)|}Bt{xh*J*qr z!i?njY5Zu!oMRv`s?0hO>|kh6t;%L3VR4e#WvCG%&ap9K6AG@=D+wVoLthBulgkCs zn3cqd>}f6&&`mR4x~7jtbM=%!rFND?1X~DPV^gCV*HuCA!8m^(NIX)E^grgabfG&aM!xe zhH6W0jeQ}B2qS!lgM#(TN|s3H*VhId-@lg^kP{zS;d|=kma)2Hl+oa;i`;6ruy$24 zPvXtG8?4?Z-gibI;}c6o{h;6D^m|GFA(BRhwpzUvKmB8U232wW&;!M8!!X{yq`PX( zg^~Ho+nQ~&caN0se_m~MP`i?z)lqwT^UXW$%v?9eGu>}3$w|w>pV@3nbgC7Cs6Nie z4XUd4hoD(pS$J5Ya@(bSY`lAwf8l{@5Bj3@s;|`k%GkDs`N~y6O~ad|p(m3MpU;a% z!%}~_)n`_uc9Rec|OLmO{x$6IVhs6u3hqXWbWy{U&hMwJ*ci7L^r$>O1a;bTVvW2*%fuo`^tsU z9}3-)|DMb);JGh&9RH!kFpt|$PoZp*i3!uZu|Yb$K)GV^{Xg~19WEEMDTR?=oW-w( z+VY!X)*t;c^2h+6@*tN7KRS~0{Nsjw=8FAMYMqmq<^pLYiq+d&^ekSszGeqwd{*8c$pR(~Y` diff --git a/assets/palette/circles/latte_base.png b/assets/palette/circles/latte_base.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6b16b08a1a4f8a5bba30839d48ef2d245b13f6 GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1q+aSW-L^LFlAzuOK1uIq!Z zuuT2L)A7CD+~xL)g+Z_X8Ax09?JqA&FMBS>>B_NT`rhNleQ#Tzz5UDcXgd2_MwLe# z50rN76>i`^_;%*Q1-1-~ehjw`wx|5~apzuvy!yl16#+@C84Q0e%ds@vZ$8ie;)q69 z5X%OkUow9`iYhmkGIq^4BKXV5Bx`X*V<@8+Z(Yxa-7`cE&SEfSwLh|iBaCH*3w!{%gwA7?MxQx90$7X_w9Igmg|8G7|mg>cz<7;_X6jKMb>_g$fMe z>^~pPGS_Y>)@UgH#Uyjp&9SIxa&dfv{Y;>LcbuH5d%)6}@dn$gXL|P+GUPCq7EjlY zZYVy+^1yYWmE_r}q6aL4nF4x1A@Yj5#%+O~+UGgem-eejaGX4!(^t&&!Ehre{8nE7 z9J3%t>~r)lwt3uB&L-7m_Z7s6YfKK^x$%f~`dWrHOsN~K*6WHk2u(S-Yz`<^LK(ss zfzg)k&$@uc?B>+d_rx4Hb2eJ{&nRv<-Z5Xb2pr|AX~$i9R>&mXXWbzB0+<|x@|iUo z`IJ8EmC7~f5q*ksdjZu6I^4qg+)KK}GA)SMx-MDgUFWxK>LG@L%O#6szz zYSXM%g8j(#Xzv;Ko>*f zELQ{3ngg?d3>O2*nggpC8kc>Kx|H=a=^sBZ$1&-?IUV5hqSh-$LMVkpK8k<29pACQ zm>&+7q6vN6?|#1#+{C|j9zzXB-gzEV4ufOtJ@acKAKFV6G^J>4Y<32g9SokXelF{r G5}E*1z48?R literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_blue.png b/assets/palette/circles/latte_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..ce2f7d7ff5df6832df4995c43561e52e73456736 GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlAzdHs3uKC+m z>|Qa&eT4x3_2X_f&e0(&uH@CTEM8-NU#|MtylRy#P7X;m{%M;$dG2n1udh(I^P-%C zS|39k>-KV{4{AGXjb*m5D;(fFVEJnTkNo@F-QNp^?zMB7hBfdVuz%~w@I$t?&OzTT z^oml$)Ct#|?^X{}jX*|;e|BAGqWu`{njbDNajBD1PQ2ng)%v_z}JpZi(v*SDU|B1?RTud}O zuE}`g_w6L3^HAFVTjlc}&I8~7<{Hh?)@~?HV%((Xtn@18sWkV6C-H|>6G#8$8#9|TrbQunEg0t{qvm;cXgg^|H5k{ zzGC*#Ki6a)?$HZSUtN^kS$-~xF@p6~QfXYY7K7@FW?##VtQP638P+guyE*6lJT3>$ zoK4!(_v$tX-AF2z(|pdbozvd?iN`5L*M{p;WQ7eU6?xQ(9|&9E{ppYQ9^NG^z|^t( zN-2X^fY`>L)Ak6saGp}II)5pgNz)OSoXn3eP4Jq~uJd`;>o^B?J>$ubI(pcz`mW<$ z9N%`O(O-1wguSz-?T|h(Z9~7(=df301?&&@UD%iPT#l80)*M}hXX-bErfJ0Kn#ys! zWVoaG=DJaNK-N@M?E@3UH%PIBoS(Rbg`*|@-eL|lzrL-k92G(bT|O{sGqFU89Sr%v zmu~3HIs5LeaQSZ zq`@+-@NRnlgxZX+EDwAOs?#zY8w~Fy{CRSk>px?0Z}lC6FZqXor3ZtjtDnm{r-UW| DQdi=n literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_crust.png b/assets/palette/circles/latte_crust.png new file mode 100644 index 0000000000000000000000000000000000000000..5d194e306c2effd9dfd4909f46aa5ac942fa22bf GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlCzdHs3t^V6q z>|QY?-C@svWyK?@>whnHT3S{u*t6;0pXxV~)#ua~iZTg3{+y~d`^W{`y*11qPxpRf zFe+sEptWPKaD(~5w=*9uuw`KMV>oxQJ>^Hm{kT2-lRwyntk}p@!tgJXpXtE+7oVA{ z3|B1@V_ef>cf6qH>WPHd1}(M1mW4cXZ)t=jgf>Jq%ParUQ*+&*=HPws_zaPQT@1SH z^2uH-xr{cf^2tstYhN?OKd}CznEvJS!X`J?gb&yM)YR+7@p^?dtWWsiJ?G;2U_-A^ z2Dbh4-oIb(y2`PW>%fQafhqTjxIReo*iSY7Re8p3o!Ef~PdTkajaXo|1-)%SM9+zX3*ymgJbWQLF>${_c*bc5#dtw3XU zMa&hCZYaLSabWR&zp$slCh%h0^4TGbG0AWe{ksF z+idB_dEnlCvB{M%deeF9bRUL&@AD^LjEQ8NBg{RaR8lDLxz_!N2DSfEYCj)n#cyMH z&cmAU^ZP;9bIyzr|7r^+8UwA>Xee%C*z@CYcmE!sK4&m0W_bU%dMR@iqg=^x$0-#I zRgCjWK@7GEz6Ww#4`fI|bC?_4-#QA2$~DF{h~F&~P>pMdV_3)a>7?WX%Z6&8?O+GQ z$UcEPz*ywL3Nx;tN!@eWnf_?n2rN46dM=0YTqkRSbjIw}HOY)O*ls-od#8u%`3nX$4XFk6o{-ehs+UJ>N`I7om1_D9zZpu7od9c4PyZNTf^eWr)tgq4x z_b<(Vu+!nL&a>^$IG&d_T18Hk_TE!`jq89`fcWaqw}Kco9A$G(b?P3ljAl&`-Ej6< z&9@K+uY}35JKy9oPB|d9`?H57`wrh9kxK4Ce40#qmc5zLF>#9XtKAISm|`bAkAIY_ zpn3tAI+m_u4rtocad!KYRt2vBwu_b1_6d1#egY;ZOFh=$CYzL**JHjjSryEjDdL`D zvm&o3SK_bH626*M8m(`xZaH$-VOvYB$jt3Q+ncQ!zPEl0wf?SAap6f0qoMtQX&YQV zX080_;KBaDFLD30oy|e3bs`zt{xGd}boeUc>D}P)|!lNe<(G3mif<7$r8}W(wJ(aMdOVy)E&OZSgYy>` zhKSn*__NMFVdQ I&MBb@039#u9smFU literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_flamingo.png b/assets/palette/circles/latte_flamingo.png new file mode 100644 index 0000000000000000000000000000000000000000..9b98d09481d322990b9bb40eff25d961d3c3d1b1 GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1k)aSW-L^LFlQzdHs3t^V6q z>|QY?-N8mxKl+IAmqkuX%YG|Mr0(5W{YJ9-occmhCZWflQ`Kf4xlmhO#q{xX?>7dc zLY5C&JN61Um>+yQ^Wg$p21Y-Ia~IoFepK9#+tWY!gI&mqjZ7sB|1$ZR4!nQynYqev z)gm#*H7$0>3u>;ONQiCFQY&m($TRnrMp!~?8LJ6HADOZ>pzO=Up_Bva$`;SaQ#nBy>1+@S6IXPgdg5>E}joI^a^EQ z+duF9`}MA?96PxVeE1%ia<7Q%gCvjrRO4TjXWZ6_9eD7RWBbC*TUum98y-GaJiW(@ z`@o0KN_P7vF&X?Z>NvM~3Ior6outpYiVTOZJEq(VW=;69OXYlh7lW^j$V~=M%OxBF z_9C7o9;Xu5GwA%?c4O{wIYx8a(_!VXfEFhGUCxABSG}3(hWjlUE9x$=ZMHmD`*HmThYr5Y zmVTTE?%fxgTnVE$owrW+Vc7RRfAYncNX9wB+!IPAg#w>z-H&Kc`!A*T^MO|UHiqXs ztO-BAA9OwE%oy>nwqT+$&{~a#;wFYYKOT4Y?*Zy_2BTtz_kXLGGFLIml^l1RQo&Hg zIIk4MV5{JJAjkDUh7>f1xxxLdqkyPfV_bvy-9iD?xP~}}bzGlLNbsJLMY9 z($;P$UdFOOBG+){^DE*%dK{vCo>`VJsXt{P5H#d1<3nj$FO)le<17f>BdswpX@cj{~d>$gzr?-~^sp5!nZ+8>y<|1B_fOl|9JE>|lCkX%(`rYDuQHzA4Guq^+IA&8dJ+-c(4a2p!y>;y$zegN zpbx7&FbgeE74%_~-=O8NKzh%$Em1pX{XY!Ma0ev6rLIu>qG+ne!)esQzqUO%e{o@m zxLtrh>x{>u*K5CV+-wi?XSm0*J-tngMdC5vQKFBZTtuZ*wwjd2ycrbXn`njxg HN@xNArt#^& literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_green.png b/assets/palette/circles/latte_green.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2ffb8fb2f3626028ae2b9f8409b1e8fb3b9460 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-Qmw$?=OMBQ##ULxVCz|{pN0Ps;c<=4dZWf{GGH}RE|AA?PJ!t@b|B`+#T_G zTi7RbDmRE9d^?w64_DrK9`?7490g1TeRe8`kKg|GsCG`v_k~Wqq6?Tm_*V-s)Va@> zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*BLq&dXt076>dq7(8A5 KT-G@yGywpp@An%3 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_lavender.png b/assets/palette/circles/latte_lavender.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c9cf3ad761d8fac8260056c1ccf04af3c61fcc GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlQzdHs3t^V6q z>|QY?-N8ml|KfHR8)tp3kgV;_nj2MuqzzkJYe~20+0Or+uh#_h3>U;nT9p+9k74v$nZn9w$4G{ zE%b^~!_*7UCHmG&Nv`1zII7ZTFlAw|^ii%gTmji1l3VT{UBYpVB}4Ov#AKxi!39qr zB>QwO&}~=_q&pUr%0A$(X}5pUQ)d@)VFd%vzghF&uRprl@g&y=QJ(rv<6o6pZY#MC zJh=Y(@87K+rW%2a694SF&P4k$+BH91UgT!qfAhpuCW$>V56w!ZO`EWo$>5Jo%FOUg zMv1z(BhSNw7~105E>=zxYIr!^HD{kHOTrJUjx*J(7bhNbt#c7ML1%y4-7$#pT?xDI^C-E28uER1a;%QlV!i}&-HJ>3!pG**1| z=Opfeb5e{IU#_2Ab!Qrj!N!WlH))3ZRTVN8I-+C~o zFPLe=_w7eh=E3MUpU+7OH@yFSJH;eCjN$narj*z=mn%C@nTstrxxdZRZpW$Vx(6(s z86*DH7EJscz%Z>|KIX|8u?I3-59TN^=>PliNI4&y~>n`(;KD)=7AaX}pr&i)hb z03KG0RlQA9o+v$E$WYJ4-}0hhqH%OXaT4PVwp-7%?nf|eYuvUI?44w$4~qh3_dGiV z^n@m(hFi4HGs~~6cFGsTCRd)5eL3HVr)5gI*>Ow8AL}23LT_o@`QpZ1k!SK>N>}Iw zn0NnNYk8a0Uf|QY?-C@svW5sn^Usnayhpf1gr{5HKZFYUXZSwh_DqEZ!l4|yyNtrCMOFw>p9H*^{e(@3?1$yw;TnMk|K@Ti6*Nlz;ij zxK|=Hu$v*wX@0WBzO0lDdJdwKEe-{=`Q?geZ_sjBd$3=yPJFUbgz$o;50ZVl5?mXm zHTN5;Hf>{=*VJ#Q*mSM5!T*EozX`^_eg-%$W-|DZUAJ$q*m^cq?E~ose^k%Cc)n6% zsTM&o^DTi|>d?;$UeIYW+sgLWxhtCsI zBZ0%FShaLG=YYPuN92muVgZ)iJkP^-nBtZt}CZuiA)en zhkTccmCDl%;SAI2qTifL?q}e+ueQ7BrWV8D?Ps6WL`6ut2;ER(=>KPRW6I?yps}%Q z&UNb^u*_z8a4}weby2j?fg_JtH_bl!XBx|feM-~MY@Ts{4ug$-M)OUX=lgzyS17o& z-;`O-lJGvi`=kwwzWIEvu^Pku@7qsitXsoyu9Nk|E}qU6#Z&Wj946QEPTo^IRX@6+ zxQ%JUpWhFZo-bt3`ER%5#7v;IA_puT8RGtYJX(DZsBa+{SvGwCxAzj`UIzYMj}^RZ z81^#wgBgrA>;?R+1$?BSbBqTTe^cn->UYpTu=$-uhtPQkeTHz>pHFx`$Q-Z*+75QW zI=)YE2S{=igh;b$o^(Cu%=k}4j^pA(rSxqK&yO%|;N5aIbl*mX9OhhzcaE_ffSzqL&J@4mu5nwStM+-0^(Ffh2@cKkIeo=UAL5U1J($zyy?5Sorcz*d zUNZj>vmj6Gb98ab=UonS*PQBAy=R%tnjpHO`)XzGN`@&5_{^Rj5qmIaEz<_B8)?OM z)mjXy8&0l^`L>P0E1~;t<&rtfchvsqOjOov7h#MGD)TwwaZ2%PEJJjo-pSAUAI&BR zy#S_;pzDkpj*&;6MSpS+jJ&-T{WZZjx#=8%0_Y_ z<~z-L>Li2M?LwzGeanh^l&27V$gb;5^vc@@WgC7w{a!V2PSi%VLR8@bZ(MfN+L*Kd6M-4-0ncxv5aC}Fq{Q1;BoDP;JG^rHMT=G3 z@++1zo%z`G+OE3gjq_@ChV@Oijh(rfdOmVJR*w(+!LOcOtN3KTV>z(=VDNPHb6Mw< G&;$VI$mj(C literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_maroon.png b/assets/palette/circles/latte_maroon.png new file mode 100644 index 0000000000000000000000000000000000000000..710ff9b29db3abe8cc224b0ec4835007d7d3997a GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C>XS`~~m(e_UmM;o9o;_M5xGsjA}dH;li{@psZ@Q91Vfw2xWm!r$MXYInrv zZDF6#soWrb@a{RASeR0KYBhzZ8D^h|Jn1~*&nk4HZj$(9gct0Q#Y?G za21omkFPcL)w)5vULg!^`}>tXPYZ77Px!HN&c*Y|W<^^W*!10Z@XlST`eX$Ik3E0n zv(PApw)x^8e@+!?csSj$WZqJigdeGbv-3F_CHC#rkGn%eA5n z53e76wdV%YoXu_wa(_!VX>C_!^wEh^*d2K$-;?3BcF{?j?w@Bl4}5Mmn{l@AU3Yye zyHg2}<;C#r-?kZNilOx6+IyDCOdo3NXZJii#r0rLM8lfX6FRKIe;#8p`FY*oq;>eu zO{^B_8VslR^XnDKaUJ;dzPWqOO{O`{jB|up9vqdA-}C$|*8>?an!{Z2{=T;C1?~?E ztoarlVFogmfEdCDiW$BKFgzy-$uQVt@i(pb!10C2=5=4Q#z&qnOa-A6{Le9*XS@Tn z9pZpj3UCL^S;*kNHE_bDm?t(O5BwiC3drgerEwSd=`h@OxE=FUn)`s+1v7|ud>Gq@-< z^X{Lzwan*PU!@uDH+8pI&wb_Osyh*n=57vS2y5IGG57j3E(gw63Bi6jjOT7@F|2OL zHG95!Ia2`B>^G-U^SKwWY`Zbn{gmZ_+(YMuEGHFt2tH6vJ?_%8L?-Ay>ju#mlWhJA z9|XHYK$U_DtO+dxvp{{+9K(cDf&IR!isZ_{q4f zMYSv3yO-U`ilLnA_trDAQ=(E&av3}kkKkom_1q(hiRF;~`#=_9_2ajgSZq2Ilzudb zGBW9QCusd>Fa4Vk|TjMPX2PD=T)O|{A{a?PL`eAe9y%)gpgTd3) K&t;ucLK6T`E%@sI literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_mauve.png b/assets/palette/circles/latte_mauve.png new file mode 100644 index 0000000000000000000000000000000000000000..3b2493203d58696254c67f3cb4db89881917867f GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C>XG{SE$|70q6IR|KrQ`;WsdGXI@i^|5)MJu_Mxj{K;Zc~Z@=Bz}Jl^T*S@ z-x!PvSw1N3*el!+e(>$ghYM^O82uQ|U2ISJQE@wNPygf(b|EV^GLf#yA3Q!oz6U*Ay4D%mY|4~f;@_AvC8*9Rc>wjvhb>n!w!Wzye{P3Q0@qDnM zS11G9{(0~7*SoHA?BqJ|;d@}py&|p;f;{$9jek|1aa$*L;K5Ul?F%<=X^|0ac=%lL z^d2wn10Oys+3laiWbntRW}JnsI!2dK{(jEWiF|E*riT*W9?a@=uB z1w$3%JTQZ)g71MG*8>?+&>ZFl_qUD$qH>LK4e56a1ytuX#xbnp`gBtAfn`HA&~~r` zVq~Ad9bhc-V1*f1(4_7;?M#0(Z3Gq_c0HHFc&?K*K{{jh>Y8N68*I0pfxXkid7#@V z*Jzfuc0=(pmIV^IhBKdE5&zNS5bg8KvV2MX2?K$kc{gRAvpm?}m)(3*W_p$FdDd5H zhWnT1KiKJTSLfOGXB^K<8?7RzN_+1qzQ%PxD?ohp=UYLH8ji9#r#f{HSVprZh;BIh ztmaz?gIB`j*qv{38K)c&+x^+Yl6{Bok4Po=AU;i|Jxkuq=$JUg`PFWQZA`I~p2t7R zRZzVEOdU(tF$Xkl>NvaoNvnca0NcgNY5RmcI6ncClcgSOaFb2S%PqXbE4#(h*R%GV(pzY1p4BuP7g<5~tsJQSXhtbgfz_bl6 zAG20|bnsw*;Fq|6+Ro;n)jE-kZGV_nJ34%o@$_zR`0>=XE8)?Ti0Fm}bwM8%`3*`A z3sMDrSml9PXo0Gr51af3Er$itd#-JX+Bxh0VPJ+kAo(qIh1wTIQ#~F|qZa10{mHLJZ8OK`;Fsfdze2%9P9S@ys?lb@Z literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_overlay0.png b/assets/palette/circles/latte_overlay0.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0904858f8d148f648bfc0892139918c4ae5795 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-NB~3{)^x*myYxouB~2gzquQnsw)0|!}!}AexbVq#N z7WN69$_?TN-_B*&!s{?!5ub?)=! zFLVcrZskZ&{bJenc(ohbYo-vxPGz3d7gyXiGOcF1BK1e&VY#7ZlPO~qm))@?9APXO zmOmtdl`^;=X#S88R?3KF|G{$qA;0C~`TU|LS`5wmpFO{w{V^+G6H^V_;rK^Ab@RFc zS1}p<_*zq6tsBJa6~fTAzhCL|wBUyRgdZ#CTs)s_Rn3&JD-zLVjrK<=XqKThp($v{tITwc(m{Yo5v|d z*M=VpJr+3!@l~@Xyxe~Doy|9n10QlXX-{9vWKeTE=iKtvsg5d*x=bHltZ(+UTr1k} z@cPkLdu}kz+3dz3_qTMD)^=4!ADuXb-H~VVJsDnW7oD`}{&|-3z~^SO8D|UMb=SAD zJCy)gUJT#!*i0541-M;f76N&9AB7hUiUR?eB}AUR1iAB{~W`4#yddU zAr5$@0C&Kgg$(Xn11C(1d152-!2e;RfUI6o8h3%84#RDS+c8h2xeu6KFoSr`JKvto!c5Gd^+>YLY?7%X^ixlXFIOEuG9-K z@BXP<%Y2^oRhr>`Q+JE?+*eMnx)bqe?&dItu*O{xbFWY1a^QTG5bT%3czUM zKC@;cFm>pa$~Fj1an0GMs?QSGWYlqP^Ova(UK4=H>1?6q4525Ar}sSDC4Qmt^qD0V zN{<~&CubjiFA@=+L literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_overlay1.png b/assets/palette/circles/latte_overlay1.png new file mode 100644 index 0000000000000000000000000000000000000000..010550052704d6beb479a5e130d7e03a47692d65 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-N7b*shx8?&qtoUD*{&D{m0=Jng33%`q;eBo*AtTM}E}IJgH__62GsG`Qz!{ zZwy9-EFYA1>=kYZKlpa$!v(esjD8H~F1DxqsJI=sr+@MXyO0$dnMxS`W%4r}c>m%v zbCuz$MPiI=TI`M&)LcE05Zj=oR@kzTXYMVHu!PWtsAhTPKYD7e8`K=U4<4T(as?nlc5)r~@I5f)UJ=&^K_2_5#=k1hxUCaA@Zc%O_Jy0bw8)4yJbbQr zdXE?Pfe)XR?DkJ$GWcWEac=Vz2A=&oNuPBU84h1}Ot}}#n($+n%K7>(245SIn+%?o zOE?7VMLbJ9P9?5q(D}RV#@yp_j1v2N%bsouWoXNvefH;;4MrU*8(bOW{+4dgT)q`( z?5>Ep;?WJo*EkL=-tQOobel>;=TYty^X{LzoC&qAdNb1v_ggYn)LmfPY6 zf}x6W9+<&Y!S_Ip>wyd@Xby9O`&&l=QMtyrhV;9I0;=;G;~3U)eL5-mz_OtlXgk;e zF|tqK4lovZu)>ThXj1o_cBVg?HUf(dyPnHoJlDyZAe}LLbxktk4Ypg)z~1TMJkafw zYcxw+yPZNyqhx5Ssv`~%Wl3YGrh|8JnO48 z!~IM1AMA9vtMhF8Gmht_jaHFUrM>qQU*kHU6(GL)^Q|C84M*9WQ=Pg8ETdTyL^qs$ zR`V@{!7E{M?9Mm2j8hJX?f&dx$-cw)N2HQ_5T7Q~o+WQ)bWEJ${AxGDHm2A~&*LBE zDyUunrjDiSm;;(Nb)4P)q*cKyfbC-Cw0%MzoS%Tn$x@FsxXC7E=JlBGOjZRmXNtI| z*sRDa%9Z$Qw1lr_l}78Et6PrTb=cNYD>8F?(Dr6)hVQN4Lao1RR9twH!)R!KVA=+k zk69}}I(V=@@Jrl3ZD(`PYMn^Nwm(d(9UZ>PczQQD{CH~HmGJ0EM07)gx}Xn>{01e5 z1*w8Qtn$Dtv_MtRhfRKimcs(+J=eBG?VR=hFfhX%ko=aqLhXy9sU8ofQ49at_Tc=* zg(2d00sgEr9@zi?NR^$ literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_overlay2.png b/assets/palette/circles/latte_overlay2.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9fe68b568029c935fd1e812aa482a5a08d754d GIT binary patch literal 1126 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 GLK6UBZtA80 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_red.png b/assets/palette/circles/latte_red.png new file mode 100644 index 0000000000000000000000000000000000000000..156e4bd6a9f572963d036b7a2b32f950a904193e GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1n*aSW-L^LB2o-yH*iw);7O z<$;=enI4Jl{m)y)a76OgLZ_u=zm+9Y_x}8L!}!~t{+2KfkDmML#y3^k-rb(QUZHO1 zML7qxK884!?d41#w077U%WPp+IKX+p^4A0&`TX16-wTEAwR4$|95Uy#rf6`ND7jj_*1JA!%^YhmqUF~?1>w_dueW&rSN-ejQ zTn8Rp|NQsuRu5B+Kt_pwc3o$p{TS_<9xg9(v+uuo;wqEG9+`(`CDW!&Sj=Sb$0lWF zcqXGnUEGo9;Xw>-@oX0>rwKJYobH;lPn9L%hgHX!>QxLp@zbCD^cP&v*{&q5pxG|M z_^4f}lh4!gjcCKt`(nF4-%w^ay#3_5m~C7KKICq;oG%u}Hj!l;$AQKB`OKbf2?H7{ zzWQ?#cfmO+#)>c3Pp-N%jm2PNMdO<^!~Lp^Yu2Ao{jBrMT%F-O|E&bG<2&{LiOO+Y zOf);L$#~=U?Ife~P}=`nhP z_F&FJ2A%(QJ5E$;Fr41cuUC}DUBJg$;3v=^USIQZo;gsT1{m=@*jvB8#6kZ+^E-|5ELN_L!>se8b3BSQ{zZt>K79fsQuw;|p!WUL5W;p-aUYKhz`*G0v=Q|zl>O9;2 zh1W)W#q6VhuE{*yqZgpQx+uA`{9F`c1naA$(zs|X2GteKzLpzVEz(yrtYO-AbI$pB zTn?N$o3y9z)ol>EkyI|H`J7=pr@i+Rk5h`S4b!K{3L8!;@~9O*5VpYk(;x3Wyh~Vs zsblw*QUurKSm94r5eG zmE(BHa7Xjab))ittf{Kn2PVWPm~yO`r<}4=PQa517MPIJW3C zt$e_I4aiVwItdhE)~e{(_F>`If>*gFeXkC& zzgo#qyywBL^Ky#6FTCPBu=>HbGZ&f|lJ^|?adNuoKW2wj)wPaWlO6#J5C%_IKbLh* G2~7YOJn8NL literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_rosewater.png b/assets/palette/circles/latte_rosewater.png new file mode 100644 index 0000000000000000000000000000000000000000..0ceafa0a386910c846d6bb7d0918618bd5e4c516 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-N7bx{=)MSit`qVi)wAXEq_qs_1U}0=Wi6-ajq4ZATeLx_@+wRyW7|G73y|g zlygw)V~AtfUe5GEYlp3|%ocWq1Dppee@)<#&%fRMy-?_0JC|u#1K$Drw~h=yWNYgj z^xZPAE&wt-;^)S^4WR&=4*L5b^kI}B_;qoFk`~I6Jt};pNk$GrVGHu#~#Y_f&Y*J>1 zXEI9E#T|Jb9>mZV&vvnLnoz^T>8?5ZR9O;!SaqDKUd6x@KmEy1f58Qv?Ml)Ln(ZQt zkJ^kQ+^@>GX8j4(&pOY{)fvw7-%2n$zEl67s2s<| zM6=_Xj5mJYPBJ9#)`ldzHY^- ztOe($Fo-PHRr@^W7t?&fjP8>*&-=dcOR_ngGM@c-4#S`8g}DZ^9|x^}zSH5Z&a>@b zcx}X2%s%?(n#{vJdI9RIi;_Fb&qXmtu)azvjf>V|P+igNYq^otB7HT(8m4VG=bWF% z<-nPN#$~y&l$FJ+Iv6oIHl;?Fnx-wu;HX4k6Q5qVGF!J{qf$zyMzUp zI(AtXLpwiU&fH{nXV~bAH z$_LEXfDDzUlRyzxj*{lzjbD@bLdC#FAC#Q@4V_uV4<5)9M|QY?-C>V~|HbQ$HqQE5Az9n)n*y)R-hF)D#^*IcQHlzNcJXPOJbCUOzHBbA|4s(K zg0MTo`lj2~j1|In=1KD1VitJ7@<686qpkn@+oQiNINv+BN@+W=KbZebf#FY|o&5sw z#adZ{2fSVs^BfQF<+;YXB1yhCf`O-A-u0R8a)$W_KLlGYo_{>&NfskdTwj5-mAChaKt_o=xlLzQ zZ(-oE*MIa`Ta)3ie)9_(Z_WcBPAi$+7h*D~k#%`y8_LkO-uu&^;mqeyTK)H);$tiie*ZI*JUdnNfaOMp$mxoLrRzTRvSxf*pE!ws-KSLU zf^z{3)9U48p4f;qJiX5@Zn>G&qMgY?o#Q~a{k|V3W&`z!fD!wLd;7z!7KlG^ESGWV zWCt=LL5%c<=M3)_GMpm`Su#{ykz)ybDENZ4;-V~j;3L)-tPfTx%%8(Jk9h~sc8CM6 zIwBn4%-EN;SV48?iAs$F^A9mATE#p$BlciU1jDw*Z97kyi#6mf$c1=k2E!hWD{6~( zZep@X_hRU}C^os$ueR|#$Cjfh^NQVnE$3lYd^+=Np&!G)*E`H+oGn~={d3HMJh9Kw zzu4w+Upbppm)%zoC%$5G=+2Ettkc&rtYIqMXtiEfv_a^~!DVx9FwNN<$`HnQJLg=w zKkEV(vzt>--xG7-%-Lw&Kc%?gcFTO#B9*5Tln!K{>g$y7v|O@}J3;$`YUMxGdu%~W zz|;}@%8Ef%qx(jUcO1temQ;bc=`Xb#rzilE)9lAV2C65Vr&XRU)nC9oeWquj%dzHH zYS-H?>N~$Wu)HhiM4Yep9o`i08}1V;wM(scFc-vU#BVL`Z({d7CnoTjIfv6*Wc@TL z{+1GkcOu`iXIg7)JvB)*;e`GMDVC7)6SuH%w8Ygu2NzzoMRCo#S)%Sk@y@u3L{&Oa_xS$s8QuV@+3?ezcv literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_sky.png b/assets/palette/circles/latte_sky.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2624d89d5e1e666f704b9a901e8ad2f8cb68ef GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlQzdHs3t^V6q z>|QY?-C>XQ`qm$p#b3C#dcFPTZg8rq`1=jxZ*%;ev{_V+JwNSZ*12$ZOu>(iCs+c2%E-%ztjlrf6W z?${KLTTB&PcE?&cqOLRUJ5c_^`P_@=&aAy$2Og~d`SV}Y9;qp77~&6pm~OFn{_>dZ|3w&QRcLHtoK)l? zs8FXd>BWR8hvOI{e&ueo?zd$!sG0rdRO)I5p8ICAKW8SU3V0@TGuZrkoe=Do4K%iN zqm}+PhUaSp8{F&Xt~r(K$spV0s!-9L95! zTn9eAZ|T=8au(tp;Rf;6TPY^t zVGPfGI2{acB^jMxssBN;aodbD#qT`+Pf1i*Vzb%u9Or?0+3ReZE%m-u&EvjuHmT10 z{(<7gU6E(<&kCM<%~ZNc%Y0hJ^EILkp$qiFo^M^s6wqXKV~TKeL-97Q16m2Q&;ER~ zl3~gLwcSNGZ!>8$>Xtp9Sj1N_`@?3Jz9lk2EET>t4F#1o+pm-}=CJNkIluqNZ3nLf zz|`R#%f5gmRd9CxNp8m}3wRcN)~QvUAoK*7oQh+(ma$ZxFj~L!9c#%0BV*0J6BPk> zpWHI|mFgk;BP5XP=IYGO-Hkb%zcq~Vm*%mTGrZ$|ySnUM;D-e#Z!#s-HRvXGKDrw8 zxN!pCfw_n3bc@-ShDB~-;`zxM*4*&Qa?&)0#t)~fMGhW0xp5l+SiLzf7H9M^f<8eVDNPHb6Mw< G&;$V00P(f} literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_subtext0.png b/assets/palette/circles/latte_subtext0.png new file mode 100644 index 0000000000000000000000000000000000000000..861186933bf60e49019179be1ad51f4ae5a5293c GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-N7b)shw-Q@JF7#D*{&D{m0=Jng33%`q;eBo*AtTM}E}IJgH__62GsG`Qz!{ zZwy9-EFYA1>=kYZKlpa$!v(esjD8H~F1DxqsJI=sr+@MXyO0$dnMxS`W%4r}c>m%v zbCuz$MPiI=TI`M&)LcE05Zj=oR@kzTXYMVHu!PWtsAhTPKYD7e8`K=U4<4T(as?nlc5)r~@I5f)UJ=&^K_2_5#=k1hxUCaA@Zc%O_Jy0bw8)4yJbbQr zdXE?Pfe)XR?DkJ$GWcWEac=Vz2A=&oNuPBU84h1}Ot}}#n($+n%K7>(245SIn+%?o zOE?7VMLbJ9P9?5q(D}RV#@yp_j1v2N%bsouWoXNvefH;;4MrU*8(bOW{+4dgT)q`( z?5>Ep;?WJo*EkL=-tQOobel>;=TYty^X{LzoC&qAdNb1v_ggYn)LmfPY6 zf}x6W9+<&Y!S_Ip>wyd@Xby9O`&&l=QMtyrhV;9I0;=;G;~3U)eL5-mz_OtlXgk;e zF|tqK4lovZu)>ThXj1o_cBVg?HUf(dyPnHoJlDyZAe}LLbxktk4Ypg)z~1TMJkafw zYcxw+yPZNyqhx5Ssv`~%Wl3YGrh|8JnO48 z!~IM1AMA9vtMhF8Gmht_jaHFUrM>qQU*kHU6(GL)^Q|C84M*9WQ=Pg8ETdTyL^qs$ zR`V@{!7E{M?9Mm2j8hJX?f&dx$-cw)N2HQ_5T7Q~o+WQ)bWEJ${AxGDHm2A~&*LBE zDyUunrjDiSm;;(Nb)4P)q*cKyfbC-Cw0%MzoS%Tn$x@FsxXC7E=JlBGOjZRmXNtI| z*sRDa%9Z$Qw1lr_l}78Et6PrTb=cNYD>8F?(Dr6)hVQN4Lao1RR9twH!)R!KVA=+k zk69}}I(V=@@Jrl3ZD(`PYMn^Nwm(d(9UZ>PczQQD{CH~HmGJ0EM07)gx}Xn>{01e5 z1*w8Qtn$Dtv_MtRhfRKimcs(+J=eBG?VR=hFfhX%ko=aqLhXy9sU8ofQ49at_Tc=* zg(2d00sgEr9|QY?-N7b&sh!(>v5!1^R|KrQ`;WsdGXI@i^|5)MJu_Mxj{K;Zc~Z@=Bz|8V^T*S@ z-x!PvSw1N3*el!+e(>$ghYM^O82uQ|U2ISJQE@wNPygf(b|EV^GLf#yA3Q!oz6U*Ay4D%mY|4~f;@_AvC8*9Rc>wjvhb>n!w!Wzye{P3Q0@qDnM zS11G9{(0~7*SoHA?BqJ|;d@}py&|p;f;{$9jek|1aa$*L;K5Ul?F%<=X^|0ac=%lL z^d2wn10Oys+3laiWbntRW}JnsI!2dK{(jEWiF|E*riT*W9?a@=uB z1w$3%JTQZ)g71MG*8>?+&>ZFl_qUD$qH>LK4e56a1ytuX#xbnp`gBtAfn`HA&~~r` zVq~Ad9bhc-V1*f1(4_7;?M#0(Z3Gq_c0HHFc&?K*K{{jh>Y8N68*I0pfxXkid7#@V z*Jzfuc0=(pmIV^IhBKdE5&zNS5bg8KvV2MX2?K$kc{gRAvpm?}m)(3*W_p$FdDd5H zhWnT1KiKJTSLfOGXB^K<8?7RzN_+1qzQ%PxD?ohp=UYLH8ji9#r#f{HSVprZh;BIh ztmaz?gIB`j*qv{38K)c&+x^+Yl6{Bok4Po=AU;i|Jxkuq=$JUg`PFWQZA`I~p2t7R zRZzVEOdU(tF$Xkl>NvaoNvnca0NcgNY5RmcI6ncClcgSOaFb2S%PqXbE4#(h*R%GV(pzY1p4BuP7g<5~tsJQSXhtbgfz_bl6 zAG20|bnsw*;Fq|6+Ro;n)jE-kZGV_nJ34%o@$_zR`0>=XE8)?Ti0Fm}bwM8%`3*`A z3sMDrSml9PXo0Gr51af3Er$itd#-JX+Bxh0VPJ+kAo(qIh1wTIQ#~F|qZa10{mHLJZ8OK`;Fsfdze2%9P9S%ag2 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_surface0.png b/assets/palette/circles/latte_surface0.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6955ed95c8e79854e665775a0a8a38db0c3cb6 GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1n*aSW-L^LFlCzdHs3t^V6q z>|QY?-C@uF#a|X(-|JxGTpzOHN}hgG;I-NH{kF;Hf2wS8a!9J#cP3@B#4i2#{f$4K zx>YmGv|y?bymOE9!0HFz&JcoKsAf;D{=MU#74lkFA{eb0{%>Jtd{F-7 zC*xj;(7gu(gyzzvi~L+|N0r=xR}Y{M|R!5y<+RxRJ9MJ8~jl{_u~0V ziKSW$&GF~IZ@;c|b%6_O!jIn?M){VkKRDXvpOXA*lcpTbo$#Tk<@SZhD5pNI10Oz5 zNR3+xR8}cCKi-p3qE6D~d88LZTfErDpVI^y9==vEdcTs%peAhYHMy>wh9xpV zEFJP)Dpo2_H-s}xtBZbfF1eq9=f2wRqMKR_hqs@7RudH==^}JPiJ||W)r~2aqkzW7 zt~uAOd%!ZA<-x^x_0>huLI;jKV%;?R=$~mU8}=zpKeKtp{W%Oa_8HALWuEW*5niF- z(tcBBIZML({O*%BF#6{6xyEV?_rGsHnXzsS!?{k@6T5giR}@dp*KwF!&pUZf@l^fj zhT=A+4S#+=PSo}?)gR9>`|G?&V79B$89rPK(S${s^`5<$^7HB)z z0qgia!5tvURS+W0s(I4&oHOG;5jl>F50%olF+4xQw1Ica+0cC(8FH9&A>KL0^1yYW zndI52q6aL4nF4yY%{Wv1io3>bfv(!;Io6l#QzSSv&*$_NGku6ZzV%>EpZDH*&zVYr z;d#mYL(GCavCq-PEuVKe%w2P;SM{D{Hfw_DitekGxhol_EZ{SHdPMBOoV83FxNf8s z+f{2ZsBSp9F6P@d2CszfyOm4kFyB%8qcc%ivt5KSE~w1sh{q|#udxi#jd~|P>wh$x zAoK#5I)bh~+#36rVz&#O;`A*m>QSCT^dY;hGtnz=ACztQ?eu%q+-eb)pRR@JXpX6K(3X9h0IvkkHq1MD7A*gU+ z6UQWp3%qgJQEOw){!avExCcDHjY5QfO^_0AW05@6e(mte?H4Up zam%k*&UEHu(`&oxmN(9;)fv_|-8OdSX6pIK^;kVV><9n<^))vc)s2q>3lIiRS3j3^ HP6%4tM@@{JqHhg{Q;#i*u{j+i&g$r>Z``-I)HSQl4|Izyyi?{%M;$dG1bMf8XIx z(PG;M9~s6y9C`0q9)uQDr&(n1J2VJ46n{~aw7a)W{QYBTfkOe6arY zry;Iq)e2Vz?S+Izl4EjKhL7iI;sqZ^}BD>cyk>1P%1F`IBRJ=7=^tyq#8Tr@Mwni8DvA!M$EK=Tzoeps{*k z&yR{dm}AQH;l=vNp*wXs6OukM-8`FA=gkxmKhgVH9xE{<=V9@{f|U0`Uit3LKwUP*k>0daTlBmV~k+U*=#xAR#7>7lXd0wOW$O(+R)y8rC{YfAVvBg|r7}iNMVA zm9H75EYL~%tXrwrAvDFYWZu&CEJ01cw6pcV$#%(3QF>?njItU zwx4Gu^L#BY#cEUCLh}i_iSn+`)?Ru0fbT%$gg{+LnDq25I*4O^S{w%y^b<4`4I$#OH;OXk;vd$@?2>?|@ B;Zpzr literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_surface2.png b/assets/palette/circles/latte_surface2.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8b3f18951e44045c35f9cceba20a24b2e29356 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-NB~5{tM?XjgIseuB~2gzquQnsw)0|!}!}AexbVq#N z7WN69$_?TN-_B*&!s{?!5ub?)=! zFLVcrZskZ&{bJenc(ohbYo-vxPGz3d7gyXiGOcF1BK1e&VY#7ZlPO~qm))@?9APXO zmOmtdl`^;=X#S88R?3KF|G{$qA;0C~`TU|LS`5wmpFO{w{V^+G6H^V_;rK^Ab@RFc zS1}p<_*zq6tsBJa6~fTAzhCL|wBUyRgdZ#CTs)s_Rn3&JD-zLVjrK<=XqKThp($v{tITwc(m{Yo5v|d z*M=VpJr+3!@l~@Xyxe~Doy|9n10QlXX-{9vWKeTE=iKtvsg5d*x=bHltZ(+UTr1k} z@cPkLdu}kz+3dz3_qTMD)^=4!ADuXb-H~VVJsDnW7oD`}{&|-3z~^SO8D|UMb=SAD zJCy)gUJT#!*i0541-M;f76N&9AB7hUiUR?eB}AUR1iAB{~W`4#yddU zAr5$@0C&Kgg$(Xn11C(1d152-!2e;RfUI6o8h3%84#RDS+c8h2xeu6KFoSr`JKvto!c5Gd^+>YLY?7%X^ixlXFIOEuG9-K z@BXP<%Y2^oRhr>`Q+JE?+*eMnx)bqe?&dItu*O{xbFWY1a^QTG5bT%3czUM zKC@;cFm>pa$~Fj1an0GMs?QSGWYlqP^Ova(UK4=H>1?6q4525Ar}sSDC4Qmt^qD0V zN{<~&CubjiF|QbD_B|!Jo#nNbM~uI?w|c$(rX-QN_viN;#^2`nJ88419D9D+$E~9%43YZG|>{JdPzy0k|?VOhH3!QpJ7chVDuNGjabDuAN zp*v7?D@TIr7t6NCtKHaMGldv-D)XeixZ<{vX*JUosXr1A%MCS~Oc|rN?2awr2xG~x z{2>vnl)?Q#^M{16QbsKM50?86`7IaE=NC26Vrbs~?D_5Nk68hmm}=M#$3N<+o7WY% zipk)|*P8lj-5_4C5Qet>{Ysyw1vm63{8%~X;`wB=qOA;U`tCb;=Pp%!vVwufoj9vd-_@?gPPkp=a#olbyR88W%}@9eY3CSTG57w z*N?v1bAxHlW;X`8zonbBwyQGw=)@`Pjy#j^$?#gc=%h{e&$FBdJ~x}qI9vFxyS|m( zsRYRKV)*uN+l({CP^aHd487bfeaYUVXk<8Ut9J9_lE`6 ze2b1S0~t#|4B-RC4BrD7o|A-R7;Limn^t___`+oKy02N|BhMG6g3t;6=NQg2-T~SU zalk7DxC7=aWN_aaIAK!E6C05S{tp`kWc7;DxC{Jr7;ZbJ0x&W2DbK+i~S}rCxw} z_fOqg=JTwt(hT>Tx?8O0zH)Naorp(sH-|BVHSUU-dwm+01Lv!RV80y3b2qgZRyX9D zJ>R^XDS&DAn^URz+zVK?-I(is%JM+&q4PqPlZre9AE>4tcj;Lo6Lg<-gXoJ%Hvfh4 znKc`MsY9<+wn1o$YtBAZeU`u`qmFZ%zf5)TngC2rXA3oF2t83ez3163@e7To&n&S} zdhA#_Is5R7>58Qff?YLJ)-O|i$F@oJ&EgY#rtXrx!?;6#%lcb8-48aarE_=uWZc%G z+7<5I%kE^wP|o#x>lxW8QK=`n44#Nb@G`A>?h(bra!CJuAd9g2@mowRHk}DdKN>_C znRL4ow0<<00vVkNMn4)t8JX@r*t+cMsjGkFffKBcz)51n4U^pEb9K49^|;OXk; Jvd$@?2>{|*_T~Tp literal 0 HcmV?d00001 diff --git a/assets/palette/circles/latte_text.png b/assets/palette/circles/latte_text.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f68e7043ef5468c28e7dd3a4352f29af4b482d GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-ND9xshxYg)JLAZD*{&D{m0=Jng33%`q;eBo*AtTM}E}IJgH__62GsG`Qz!{ zZwy9-EFYA1>=kYZKlpa$!v(esjD8H~F1DxqsJI=sr+@MXyO0$dnMxS`W%4r}c>m%v zbCuz$MPiI=TI`M&)LcE05Zj=oR@kzTXYMVHu!PWtsAhTPKYD7e8`K=U4<4T(as?nlc5)r~@I5f)UJ=&^K_2_5#=k1hxUCaA@Zc%O_Jy0bw8)4yJbbQr zdXE?Pfe)XR?DkJ$GWcWEac=Vz2A=&oNuPBU84h1}Ot}}#n($+n%K7>(245SIn+%?o zOE?7VMLbJ9P9?5q(D}RV#@yp_j1v2N%bsouWoXNvefH;;4MrU*8(bOW{+4dgT)q`( z?5>Ep;?WJo*EkL=-tQOobel>;=TYty^X{LzoC&qAdNb1v_ggYn)LmfPY6 zf}x6W9+<&Y!S_Ip>wyd@Xby9O`&&l=QMtyrhV;9I0;=;G;~3U)eL5-mz_OtlXgk;e zF|tqK4lovZu)>ThXj1o_cBVg?HUf(dyPnHoJlDyZAe}LLbxktk4Ypg)z~1TMJkafw zYcxw+yPZNyqhx5Ssv`~%Wl3YGrh|8JnO48 z!~IM1AMA9vtMhF8Gmht_jaHFUrM>qQU*kHU6(GL)^Q|C84M*9WQ=Pg8ETdTyL^qs$ zR`V@{!7E{M?9Mm2j8hJX?f&dx$-cw)N2HQ_5T7Q~o+WQ)bWEJ${AxGDHm2A~&*LBE zDyUunrjDiSm;;(Nb)4P)q*cKyfbC-Cw0%MzoS%Tn$x@FsxXC7E=JlBGOjZRmXNtI| z*sRDa%9Z$Qw1lr_l}78Et6PrTb=cNYD>8F?(Dr6)hVQN4Lao1RR9twH!)R!KVA=+k zk69}}I(V=@@Jrl3ZD(`PYMn^Nwm(d(9UZ>PczQQD{CH~HmGJ0EM07)gx}Xn>{01e5 z1*w8Qtn$Dtv_MtRhfRKimcs(+J=eBG?VR=hFfhX%ko=aqLhXy9sU8ofQ49at_Tc=* zg(2d00sgEr9|Qa&d__ye13RUsl2w5VgLeNF?Adhhj_tP|+vk%na4~j%{Ao1VH|fQ`+P_SXrc1wN zOnJodz_p-Sond{`ZR5j^)eKB?80IYIKl$O~w!Ibd>JMvI1SGS*VEA)cj-}!L#pmo_ zl0sZ{nIbrA`yT#SHSypshEShJ9L|zfTLae|SjDiF&ED-ttWQ^hZ^N{venZVBQN}1f zyJJ&0ZZTDG*&S=)h`P>bcd-12^SKw#omqRi4m?=@^XIpyJyKKFFw8&rVYC zIaRFT;d9rTI#t$$AE^R!(={0->LQOki*{mYTi<+Q&vLEm*Ncr zflu$7yXUksZTR#1fl@lq+5m>PEgPo24Ci+}R`9Z6-pddp`ed^4fntX5K-<9%*kN@7 z?tpZS1A)0BOH{-y`B{GiS17o&ch9-WG)I{GfY}AJ@Sn$+Ht=pa3-OL{gLvz$6qE2U zhUY$<4u-dqjLxsr{~+18ZN{16cOL&IBq}Vi*=%`^^FY1qb+*lxdS9#NabG!`ROfyF zKyl-)$TRt81<$=^D&3@IKCR;U8qtQ(1$tr6w=QK0XtKI7ML4>lcpKLNt%TWUf4*7C zFy(;S?xLHwnKT-8%brgx;wzZ_VY5r$5}6>D3eTH{g36lhSIQZ4Sa+$M-+$z`gVzFJ z>hO+bU%-+oI6MC&x8sxrJc~Z-)T&MpdIC&N#W7sVSSn8#t>5{Mwd8@3v1Z?iih#RM zZW;Va^^pA$63BIPb!O-8#vIPy8bi4*4kl<@ekkuh6Sm zFptaNIQP2WZv;2-ubs!Rhb!+qk1mJ7G3}oDHIWbP>zb?IDqQA}0G1vMp00i_>zopr E06nwvsQ>@~ literal 0 HcmV?d00001 diff --git a/assets/palette/circles/lavender.png b/assets/palette/circles/lavender.png deleted file mode 100644 index 7a741bf713203da32ec01f3b0a8fc1f90523e58e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmai0dsGu=79XflFpWJHDU`El927m$ya<72NI(n`s3yD;2`@=VCSjT(6EhPDRO@2Z zLn;=b1uRRgii$L^iRr{}ia^GdnI&ir7F%FJlMCbuZGllM)WMMvGetH8 z5agnihH1;iO(bFy!!BL~{B|C5V5UojGKyi9EP*K@EGSdJ7O=T+#7w5hqSGTu(aXn- zfh2}=D9Vg*IC*(_>^wf3uoyTzp-{--26KXgSwMqD=9?&ujb$POoD`!R(I~04U}g#< zOiU-ICY!KQVi*QEbBtW49p^S%Ex3zWr{$nHnv0q!lEY*3IFt2J8#WP*i5yE8NF2wB z0CnyZbqdqJK;4Nvqi)V2D1yu(%;P~#aWM`*V+hjyd=s0-{5)lu?9bJ6bEjN`q@-&> z;>LDx91@qSF`y}!j>;M5nmAvHnhbvgoRQ&HXDcX87`RLD1ea<86T@M_ zoJnp{p9_uG0dYkqBXl4*zKd`IijznZEQB7z0Y)apEMvw=C80cFXecX~J?a4z4FR^8 zK0jJR0j*#z=w&XC#S7`Cx=s9s~mDL6uDavADG9Ou~J*cgLLdP*VUOyL)S_+&C9 z79%Obl0V61GP-7}OV{)_*SPVgehEGrr=0 zFuo*F6WELvumT0^7Z@SPZ6gMn;F;n>(Be{SX;095iN2>IyK}Ous_1R47ry$jH--_` zzBh4&asSI<-NwjE?>2oiSkb%cSZ3n&@9ODK+)d@ieMKK-vai*ypR08VWh5h`lF!B{%!|0 zaEmM14MelyD)-t0#tjFAKQLF+_xapc|Dyb_Md|3@NHXL<98Alm%R6`fN50KCM6?B7 zta|H&V|K`?W~=8mNBPdj)ufGnUO8Mx@48lKvgfhax!Hyd11+nRA>d`^X^u@LA&Bnf zeB7X_YF`L)=f_1yDO8)!?%>6DFZJE>X}J9Z6jE;F`G2jz`;P9j_%lDT$ZieR_?}^Pxx644l^T>UT?hy2!%e^t24$)}Ut3!~eX!=anXK zkQt&{%r3reXinLstZCRZzu~64gCD-#tJZtuC{yDpQS;MJY`9-K@WqETx}!9MDCEo{656w`sPka2k;}Dm6EWdkVX@TRFswBnIZd#w{ zvrDF$q`Uo)?|OSr!a!zfSinzqsk}D61*#}Ky05A--ycukJI_&CA@!5aOFa@h<4(Yx z*Hlzq}rgsv6&&7Vup6qRJ8o?JM5`XAE%zm>eq%D%d8uc45CGUd@p4_}q_`nSr# zOSC>V_VEXP>77VrBcK$<(lggw2zD&LGe@>N!Bme*a diff --git a/assets/palette/circles/macchiato_base.png b/assets/palette/circles/macchiato_base.png new file mode 100644 index 0000000000000000000000000000000000000000..e70ec6f606be0334826ab39de536d095e678098c GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C;%0{e|!U%XFl_aBcN^`_0|pR8{f!8^+(}_&aH{s2qEK+Q+PO;qOmhr90yD zwy;m=RBjMI_;xPC9KDtl$E)4gUNeOlb}I9vzPRGHk!dy46{$ZG56cZTn@ky_xa^KC;Rs{N zu>2trtdzn1K=X%$uu?`W`wy1;5BV(@&*v94(PC)c|Lpng?2lOio0w|Y4#z+0shigo zxQfZ($Jd(rYTY1SuMmc|{ryUxrv*3kC;V7B=i>Qfv!bmGZ2Imyc;_xveX@dq$DTj( zS!fhP+kEklKc|W`Je=-WGH)qM!jDwJ+4-D|68rd+KF`x)IDB2T@?S7Z#-oKN*gQ@t zx;Fe+=&{H-h_9M8;pO(D?`*zt9QcsCNqhQQCWD&WIp>zQPIXji)MfhcVtuo(@5%65yXd4%_s_GO2R=8O%{W{5uDiaK z-Khk~@?!Y*Z`+JB#ZY>3?LEt6rVq9CvwNPM;(9PAqG8SH2_079KaVk){Jd^((mMR- zCRU4d4TjVE`SptAxDI@J-`qXtCes{e#yP?)501*m?|FWf>wydy&0(&1e_vbn0{4dn z)_jYOFasG&Kn&pn#SGsA7@m`aWEgC+_?uRI;P}F1^SZBD<0H=(rh?E3{^uCZGu{E( z4spOM1-Jv|EM#!s8aQE6%o7`t2mTKm1!VP#(zpx!bQo?s+>UuF&3(Y^f*Hg+J`8ap zS(7iuL^94XR%JMv(S6cp`Mv|`EVq)3&hJ$I>)h5j;nSIC7U~TDOJk(ZJlk>Qb){Z_ zdG}AUww%wTPe#-Jd?xFKSmXnG+1RtoT9(UX9zt}JiX`HF7XSEr_U_0 zPy{AAqL zqS_Vi-OKJ|#Zb=md+Qn5DN(5>xeT6&NANPOdhQX$#BxageISdl`te&#EH<49NZz-L4)iu-j6_^g(Nft??Fx0}|^E>OQ5m{(pPB>V@3>kG#P0gTd3) K&t;ucLK6U}zxa{> literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_blue.png b/assets/palette/circles/macchiato_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..e58c33bad39792b822513addc2ab1aaa245a9fa5 GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlQzdHs3t^V6q z>|QY?-N8oh{iSdx8)tp3kgV;_nYcJXPOJbCV3-acQUZs$cg z2em$iIM(guOdr&C*c!`hVOKc7dBC#Dv#tO8+oQiNINv+BN@+W=KbZebf#FY|o&5sw z#adZ{2fSVs^BfQF<+;YXB1yq$2MHJMC42Ba{nJe{EA z@Fzg!qM~N|UZxFSZYPz?RkI}gFuOVRbQq(=zFf2Cmk*s%m~=plvEs}1gUjYz0~-4} zsWdK!@m!=bL;pXk$f>s{F{p{@Pq?e|Y`aRsSJ9m*^N#*`#`55&qx6|)7T=HVKg6tP z1!So*RM$uQJhOz-C+*(PF=YI)Z@;fwaVl$ppN_+|R1cTAt80=OXZ^{Z@uYcm%}u5` z#v%<*@3V_r^0OxV{C?2&9MIZ@4CgqRK0NBzxBHaFTEGWJ=NR{Ve?OJ)1#86xS@yt3 zj6lXU5JU2TWka<_LorE+k3nuLJ1{Y^R58Yt9Cw^j!C1w(L+gZkdc$*ucR<_04k##{ z0C&K-fQH4lG(0@@isZOHEdSup!6$CHnbksFtRZ(n?z&ICtO?Q?vmxG5W6DdkuAI?t`Qsav6a=$o`nieE8@#BJB zC$}bkIX%JZ!^%Y>o5C*(l{4QI`WBdS&+9JVJBB;rx5D4vS^U6p@@Cc}e;A?<2_0R% z^cb_EY=d>{->7GNUTZg{uu6R5Uc<(CwOB=$k?G;|?;1^=laq59ndZ3|2-Y0vVrZP^ zY9Ly3U>14S-iM9LuAaL3N1p996U(^``p%{c`BxSudQ4E|QbD^*6r4i{I;&ju?M&Z}ocnO-Ukk@6YcyjK9tCchY82IrjXtk6Gu!-=Drpcf{vy zVV}^c+#r7N?OcXETzTht*xxd86fhO^*{K{pe*4>_+Bq%X7drKdE@1xPUoF5;=RRNl zLU*9(R*nSKFP3eOSG%#jW(qOvROU&2am8&T(`u$GQhy{KmK$m|nKDLk*&SQL5yp~X z`9mUDDTDig<_`&BrHokiA1wDD@>?#R&o64C#n8O}+4I}kAF~2BG1aggj(^lsH?J#j z6_de_uQm16xH&Mj}9>ZsDF%k<&J`et9twW19V zuOEH2=LXZ9&29{Ge@i!MZC7RV(TP*o9eF0-li{^?(Mg-`pJzD_d~PlMjy9r*OVxqHq{ra8`xbA(wQ9F>pX^ZYE=0~s)y!(8$HzP9WI?hgyB z`4$~v1~Qg_7{UjN8NLTFJSPdsFxX`AH?8=<@rB9ebzif_N1iWC1)&rC&oP{5yaTiy z;(%8Qa0kp;$l$&;aKfaRCpIDv{2w+7$m$iPaToaMFx+;y9rIM0`+(U6Gl+M57~({- zCSQz+WSnEH%5XHJ`=rhCeFxH6ZY3F=->Ll9xvg=+r!&ti)EWMl#z>!ew&Tj{O1%K{ z?w`7~%;#BOr5Wxwb+=g0edXk;I}wlOZVqDzYuptv_xdz02hLXs!G1Z6=Wc2-tZv9P zd%k%&QvlQKH>Xnbxfif(yD``Ol;wfkL+6DoClz@JK2S|P?$WbFCg?uv2GJLjZ2k-7 zGix>iQ-@xuY=h7g*PMN-`YeG>Mjhuif0^pwH368M&K7FU5PG6`de5_6;ujiEpIKs| z^w_a;AL9%+#`yK<&ggSKo(*3`I8_p1N^ literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_flamingo.png b/assets/palette/circles/macchiato_flamingo.png new file mode 100644 index 0000000000000000000000000000000000000000..230268c778c117297e829a693431cc8b2580ed14 GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1h(aSW-L^LFlQzdHs3t^V6q z>|QY?-C@uF;tvuX?klPS7Y6PAE7-H?-W}U-J+{v$U*KZw{P@#ovTxFheYUoZKc2c( zGt9JLst~<%kMqFn2j9*VT###EP-l4l!r7>1Prm-W$>2wJ-M;-|>)BMb4}=^1Q9bwK`AUhU zS`5wc=f8iyu5@*Q3v0rU-x@~wmaIQ`+UB2<{A-h@9L}Bap{V8dg~%wUKCS~FK2J!E zTMATGDL6mglTo5h(&c%i7eiaT*v6mJ1R5T`RxoTEW z*R6ZNGMnYW#d!7AMbSbBjyz)BH2dhEX)GJ|DNR4KdB*)Y3^w)|%{OJ9@B0y6q2SVf zQ)W3!!u$O0lQuB==JUD6Y7F}5C)W-!~Z7x1$d@R5SfF&ffSzqL&J@4mu5nwStM+-0^(FgM2@cKkIeo=UAL5U1J($zyy?5Sorcz*d zUNZj>vmj6Gb98ab=UonS*PQBAy=R%tnjpHO`)XzGN`@&5_{^Rj5qmIaEz<_B8)?OM z)mjXy8&0l^`L>P0E1~;t<&rtfchvsqOjOov7h#MGF7r9!aZ2%PEJJjo-pSAUAI&BR zy#S_;pzDkpj*&;6MSpS+jJ&-T{WZZjx#=8%0_Y_ z<~z-L>Li2M?LwzGeanh^l&27V$gb;5^vc@@WgC7w{a!V2PSi%VLR8@bZ(MfN+L*Kd6M-4-0ncxv5aC}Fq{Q1;BoDP;JG^rHMT=G3 z@++1zo%z`H+OE3gjq_@ChWw`6#?IVKJs;T~tH+1^;AeKJxi2GfZ62`rVDNPHb6Mw< G&;$S%ujl*# literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_green.png b/assets/palette/circles/macchiato_green.png new file mode 100644 index 0000000000000000000000000000000000000000..bd67b99b4874dd9ad4d4217ec93d0e07649db9b9 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C<90{6hY#@*U|fTwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{ve?vD7p zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|4${>R2bP>*8$5922WQ% Jmvv4FO#sac^-=%; literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_lavender.png b/assets/palette/circles/macchiato_lavender.png new file mode 100644 index 0000000000000000000000000000000000000000..5d7958d99f79effcabe9284ef01ab124838bdd5c GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1k)aSW-L^LB1@-faT`*Y$T6 zlwB~%=GgTAe@&^jQ~m zEYfgg&|Y}{qHMgOQH1z{4o{hd+Rls3x3eYy^QD1ti4%jDa%^8Xc}t6kXv4$hiYNDY zaUb|_S;=nyBqoDDHXY|SPhsG(*H8MatH^Npx?{?{WY&ZqyIjuK_b`Ooh(t05S{~uJ zP_HrRg}~Iqaf}haayMG{+cFu{%zkq!bu|OeeY4r0S0<(lbS88&*!(`75bT!?)StT1 zN`D)}^EHAE>Gd<$oXYiN5S}f5B2Vmdw9tWHeKAJolj@3@3Tgw`H(Q>o{k;BzLkHhx zOFzy7_u|DTSHkE`=dIIy80y}wpL{VUl5x&uafO#=DvQo3+~3C#`Y(URlT!-uKs!oU z6MlX_=zA`fG2&ls!DQp;hGLC|;wFYYKOT2y-&@0QZXp<1HhllL_Y%We2LD};6})U1 z*D|aJG4?RUFz;w*vLFdPXLt}duohVh`r*W5{7HH9oOjpW(K{ zU7k;=+y&=mFznF?QD3}s6O%={7eiMdC_HML&vRTknli6A{nv69X2qW~&ldVI{Cl;- zYR1{ZmDh`P1I)UA>i%V2$9gKwaKCA~#d_{3Cs*Bxcr*aKg)KA_;6mDkP;Vs zmpkJ?Zd#Dc#1Bh$d4D~Yv0c&hL9nZ#%KBxN@7Ok}zEM8C=jkrlI}8O4`dPUPR?ay zn&)C5SaYC@p>dY0foRQvSwM!1fn?2rRSb>GK1W^3dzw_o-(1SbBz|N1!WkEKPuXFp zazbF=7CFDY?|T>T_|RCSbwDPa=l2`IP5f);G3?>qH(xSKAfcyRBEBZ_q5aQaHRoq; S&|Qa&eT9Jkf#3E#k0h%C7Y6PAE7-H?-W}U-J+{v$U*KZw{P@#ovTxFheYQ4@Kc2c( zGt9JLst~<%kMqFn2j9*VT###EP-l4l!r7>1Prm-W$>2wJ-M;-|>)BMb4}=^1Q9bwK`AUhU zS`5wc=f8iyu5@*Q3v0rU-x@~wmaIQ`+UB2<{A-h@9L}Bap{V8dg~%wUKCS~FK2J!E zTMATGDL6mglTo5h(&c%i7eiaT*v6mJ1R5T`RxoTEW z*R6ZNGMnYW#d!7AMbSbBjyz)BH2dhEX)GJ|DNR4KdB*)Y3^w)|%{OJ9@B0y6q2SVf zQ)W3!!u$O0lQuB==JUD6Y7F}5C)W-!~Z7x1$d@R5SfF&ffSzqL&J@4mu5nwStM+-0^(FgM2@cKkIeo=UAL5U1J($zyy?5Sorcz*d zUNZj>vmj6Gb98ab=UonS*PQBAy=R%tnjpHO`)XzGN`@&5_{^Rj5qmIaEz<_B8)?OM z)mjXy8&0l^`L>P0E1~;t<&rtfchvsqOjOov7h#MGF7r9!aZ2%PEJJjo-pSAUAI&BR zy#S_;pzDkpj*&;6MSpS+jJ&-T{WZZjx#=8%0_Y_ z<~z-L>Li2M?LwzGeanh^l&27V$gb;5^vc@@WgC7w{a!V2PSi%VLR8@bZ(MfN+L*Kd6M-4-0ncxv5aC}Fq{Q1;BoDP;JG^rHMT=G3 z@++1zo%z`H+OE3gjq_@ChWw`6#?IVKJs;T~tH+1^;D2aRb#dYQPIh4N!QkoY=d#Wz Gp$P!*9Oy6r literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_maroon.png b/assets/palette/circles/macchiato_maroon.png new file mode 100644 index 0000000000000000000000000000000000000000..379f6fb1a0a1c13adc522b8bbdc3f92d09ee6ad3 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlCzdHs3t^V6q z>|QY?-CMvaDLsneL({BpAHoLyxHu?Ndl`T#VNj3YBm#I zYKEB>OcjE6?r|Pi{ovb~f(vpD4C)NeUpO1p?8()?cigi=Uh7H(qZPydE$oaB%D?<% z+$#|p*v$~;G(Xv5UslQnJqOXr7KZ}b{BlLKH)uJmJ=iZ;Cq7vzLU_T_2gyEN39b#( zn)?k^o3=5`Yw9;tY`Rw3;QvAP-vr}dKLZ>WGa3BIuG_a)Y(1N*_JMSRKdR?mJYOlX zREwcG{`~jt*Ojg=aA8gO@ms?v-;(tQN89{Ul7DT|l*73bJ`}awz7QGZ)W>z;!{-U9 zaZ7>9Dh21qdooJYNxD3b^kQg>7u)!Ann1(D*9u1OS27vY#7=r{@7kay*Ok+-L?(!( zL%vJJO6BQ>aE57h(QnQr_cQR^SKD25Q;Xs7_Os7wq9P<+gl;G?^#8NEG39a;(Ad~D z=el(dSZ1?4xEQa#x+q%cz>!C+n`R&VGmT}#KBehrHqW>}hrz}^qxq)H^L;MX zZ^|rZNqC>%ebNR--+VsTSdHQS_w6S$)~#VU*U5Tf7f;!3;(l_5yy^0zOjEImQEvzbSNZ^*iVv*!<3-L+HGNK0`R`&nG+|WDeK@Z3jDG z9p5Lo10=Z$LZn$WPr9CSX8b22$8qtYQu;QA=SP?}@NPL9x^E*x4s$NVJI7caxGpr4 zJUdnNfMqaKK+m=rXNq5O*SIavRr@^0`jUN$1c&DNoW5eF5Anyh9?a?U-aGF(Qz*R#J8FM)CMs*Ti!jComH8a;IHmYCmLa-P@8oCwk7g5u zUI0@^&~-))$H*hkqCYtasA@F7u^u9{JH#~Gh4Wh1!| z^POfrb&^5scA-<8zGX!{%2S9wWY={jdgbkdvJJnTey^HaEn<^Vw5?%=e1dnxqKd6o zDioG57cAcpfBKH&%FtRY1fpz!CDoU1`$(HdQc1Cu$_n)o9G6)tSz zSO#PWD_oewq1MbFA*yhJH!eGBZOqyKiNFl^fakYSi14ooQsQkal84%_9bUQpqQxq1 z`4!8V&U|coZCBm$#(A|m!}_M%#?IVKJs-IqtH+1^;J?yQ(^ZprcowkyVDNPHb6Mw< G&;$S+59#;- literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_mauve.png b/assets/palette/circles/macchiato_mauve.png new file mode 100644 index 0000000000000000000000000000000000000000..497bf5953db414c4e657da5615cfd5cec5990cad GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1w;aSW-L^LFlQzdHs3t^V6q z>|QY?-NB}E{<8kYinh3gLA(D7_H4R$$M#!~?eobOxEMP>{xq8GoAhE|-A~p>)1}`s zraak5qxV>6(lZb&*G&MLRLHt#3ZDXF1n_52c>-{);fqs?gZPIH|}( zP@zs^(u)aG4#zP@{L0;E-EYfeP&50@snpdBJon9Jf6h!y74S^xX0ZA7Iw9CE8)$6l zMl1bo4A0jHHn`W%U2`helR>y!{6wDE=V+k=zq(?K&L`CsGky58fH$pp&hJO@4;uw! zfh?hhz58|5KEvpg`Q_(kFx1??ueNySCMFAYF@@JgDvQpA?%T-V`_I(p6Ofg|cutb* zz^C`k-E-QRHvIYhKq(z)Z2-e_7RHK?$Hm`QZf3G*2czc<_kMr(V*kQq^P;a=<0Au* z@e;&f`5<$^R^)&sNr;`H|5metmJQQhhV#1~D|p#3?`4P)eKOhjKrzF2pzUA>?65ik zcR;$vfxujmB`V^U{H#BMD->MXyXV|wnj_48!0duq_|IcZ8+f;zg?LA}LA>==ib;4F z!*d@_2g6%QM(0=Re~@h4Hseh3JCFYp5*3!%Y_>edd7xhQI@@MTy{}dCxUZZ|s`I{o zptx~YJJFKi{lm zm~udEchSw;Od5^4WzQ!T@fFPeu-T<=iA)enh38E}L1oSME9Hzith-ds?>}r)Jpm@C;ux-FER`pW*6)1BTJpfiShMd$MZn!B zw+w!zddU6=3FNxDIi4*4kl<@ekkuh6Sm zFptaNIQP2WZv;2-ubs!Rhb!+qk1mJ7G3}oDHIWbPKU&x9*JuB&4J literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_overlay0.png b/assets/palette/circles/macchiato_overlay0.png new file mode 100644 index 0000000000000000000000000000000000000000..96bce398ad0a30f8f446affc22e17fe07f53f6c3 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-N7cl{;Tb;u8#BxbVq#N z7WN69$_?TN-_B*&!s{?!5ub?)=! zFLVcrZskZ&{bJenc(ohbYo-vxPGz3d7gyXiGOcF1BK1e&VY#7ZlPO~qm))@?9APXO zmOmtdl`^;=X#S88R?3KF|G{$qA;0C~`TU|LS`5wmpFO{w{V^+G6H^V_;rK^Ab@RFc zS1}p<_*zq6tsBJa6~fTAzhCL|wBUyRgdZ#CTs)s_Rn3&JD-zLVjrK<=XqKThp($v{tITwc(m{Yo5v|d z*M=VpJr+3!@l~@Xyxe~Doy|9n10QlXX-{9vWKeTE=iKtvsg5d*x=bHltZ(+UTr1k} z@cPkLdu}kz+3dz3_qTMD)^=4!ADuXb-H~VVJsDnW7oD`}{&|-3z~^SO8D|UMb=SAD zJCy)gUJT#!*i0541-M;f76N&9AB7hUiUR?eB}AUR1iAB{~W`4#yddU zAr5$@0C&Kgg$(Xn11C(1d152-!2e;RfUI6o8h3%84#RDS+c8h2xeu6KFoSr`JKvto!c5Gd^+>YLY?7%X^ixlXFIOEuG9-K z@BXP<%Y2^oRhr>`Q+JE?+*eMnx)bqe?&dItu*O{xbFWY1a^QTG5bT%3czUM zKC@;cFm>pa$~Fj1an0GMs?QSGWYlqP^Ova(UK4=H>1?6q4525Ar}sSDC4Qmt^qD0V zN{<~&CubjiF|QY?-C zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B|QY?-C<8b{kOnhW*zA-TwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|5pdpIGoreFcVmQFnGH9 KxvX;HXNU!IXu;(nq=0a0O(4NN%}*bP2~bmJH1w5|fo81Q$Gg zknGdBK(}EzknUJeD*J%DrrrKYPn})Jg%u1u|7OL%Uw?G9<4LX$qCEAT#=k1H+*WcO zcyRsm=-CH~oUor(5iv}=C2yvWVI|K^FSOcHx!9-5U*n>JxFlffUGl$qg~ zj1qNmN1lfVF|@_AU96lY)bMb+YtBAZmV_Tx9cQXnG4RAsfAZ5`a6xCglC*+my9nc> zcBM`}Ps=x=4NLEf?f!g2nc?vElj~x(aUJ-OyV-KSSQy(xmTepd7VqaXd%7hIXsr0^ z&q>?`=cE`bzFa@K>drJ4gN+r9Z_*6+t1_-xe?s-M&NFj$hV%Tl63mY8)c+?c$8j;y z?6@Z5jo-JEjLt)8|8JGgdpHk#|C?(xOIy34IEitSp0m=cn5WX*7oNl)R*{c+dRpwk zoP`WJ|Lu01sMKIMy`NvND2=;-kF~&0ph3L8=Ho2Q=8XvOAURI5AWAfaOMp9Om5Osrfn#w;gUnykp2%5xBzFtvHpn z;M^1jk;S@dpXdBynlG5qebVN6-xq&LHm6g@vmei4_;bB5*I@SJp!LspI^5NHw*3pQ zjrfY$NB>-tdALU}Kz(&la%cIuD8>lZS4pLD(OL|uE1G>RH?mr!uVz@owC(1c^YgeI zICC~>Pv5KCAaoj!*))4?C;6bqhbAaE|F}?P@zqSqz4RgT z*N_IwxWc>X{S#_4zOp>zopr E0EQpsga7~l literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_pink.png b/assets/palette/circles/macchiato_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..4bcd90042beedea1ef2f1b7754040a244ba82f7d GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlCzdHs3t^V6q z>|QY?-C@sv?JuDM;k6ChRs^iP8^^MEjro7M>SOahduFsY9Qjc*^Q4+#iT?e4%|D*H zRWr=AV5$(kbC2`D><8b@6kL#NU{Ggx{=(U)W>3EUz2lx0@>*9S7_AuoZ((PAQ2ym7 z<6eo-z;1>xr}@bi`?69t=sAc^wm1~f=9ep?y+O-i?ZJM*I`PR$5yA_WK1lZIN^otM z*4%HX+O&;fUQ@rJV$-$K2K^7R|0Wp!`WfK3n91NrcHQ3nV(ZydwGV_F{82sk;`vI6 zrCJQl@#p)$Ust-iz=bv8$8Qazd`s3JJZ~BU&&-p6Fcd-y=#M-TvtxR5}6>D z4*4z>E0w1k!WpL3MZYY`|&14kaQZkm1c&oq_|`;?}i**xR^90nWvjOLp%&-eWZuTXGl zzbUhvCEO2R-?yL4Sht4ZTqo;^T|AvDil^r5I83hRom^8eRX@6+ zxQ%JUpWhFZo-bt3`ER%5#7v;IA_puT8RGtYJnDWAsBa+{SvGwCxAzj`UIzYMj}^RZ z81^#wgBgrA>;?R+1$?BSbBqTTe^cn->UYpTu=$-uhtPQkeTHz>pHFx`$Q-Z*+75QW zI=)YE2S{=igh;b$o^(Cu%=k}4j^pA(rSxqK&yO%|;N5aIbl*mX9Om3&uy>BJJaAoT zCV6(M=mE=MrhuMpGtLyh;;wO9psV(Ij`bz`R0$5v^ErLROdsNpZ#|gP=e>8{bEZ;Y zcwRF95VIgp>~nN+%jaDVbJv{eRlR4K&6*&(qWfxP?n;I!3;4{Q9ua#mXD!nPt{Z8^ zcGX%8svAzOi}|*V!7HKrZsn3W%y-oO=uA}BY!_jS3oi3H;&DpxYb--_qu$BS`X9|E z2)zKNj-cy|8jg`io<)Ch5>VA>eqrMs&$)yJn4Ip*OmEV3l-qPBdtEi7?2a=&UCKss zA?7>Hdg>&D*zH26IDN~CdX%RSeaNosO!Ugz2W1<6JN;fYw_3y|qi9>hjQI)P5sNCe zUa3%6!d$R?L;UGGjw?f_tzmGEJCG$1VC#NKNI{^kvR`S2h2=Fdg$JH2!Ux&ca0p~X zvIGMeoB|o1ER%r@E`b+p>rK~&t$X(0AVOTBpsiMN6=$tSFSm0O&qL?e53k(Lkh$8* zeJ7`hURkgTd3)&t;uc GLK6T-Xz1wx literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_red.png b/assets/palette/circles/macchiato_red.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4126a5899f013b869fa8bef3c534398fb516b7 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B|QY?-C@uF&tH}aJ(7%C<+QY{TCiu+y+74&B&*MM})e*7iO8v1;PMT@0ZURAI|4qJa=a8Esom>Y#d=E^ySH$%}lE;3k@vq7=ZtKJjJb22nec|RUEi$4F51%WZ z-s8o6;KOGnyZw`x4E`8(oZCEwfoH!?(q~;ohQrq#Q|<+`Cj8i?a=yNc!PiFQCWEKt z5)J`-5zi8jQ;F*tbpCF;G55F}qr^VnvZtFu8QSt^pZ&RIgHead23H2Tzoi>Amv03c zyDMU@cyvSYHI4&|_xpuC-KNsed6YZFy!)pvXF{#3-pq8v{g#Xsbr;w+Tb`@^xc-Af z2j6B(Kh6X9?u$*XgwdPMTc`Ul?0cU-`C?2Y;~Zh`38j)kfzP$>M>MGYms0!rKr4P5 z!*d?igrDCJx}I}pjQCeuFwq!jtwuv}6T_Y#kGuQ#0QEV8Q8B~&ztu~bs~F`@dLTmzn#0`S{?<`IRIV|uA^mQlfa<))IEHmxpH50XuxzLX+75O= zjO-J*1B^u;tT5vWn$$g~o#~IJjliPAuIF+X&vmjUNN3DmU6agsgYDKcuy=Ym4|F@_ z8qLzyZYW;HvOpr&aOU$X;y-#EqJ5rOmM^J4WgrkV@21RimIwR$vYT(pOs}#%&-yCO zaR1W$2Rj|^>O9;2jN^G}qgCWoY41J7*SHR71&FWyd@G1i!%;TpRHyC%%V^dF(G6#x z)qD$K@Jg5*yYo#h9TTTGzuL{PjVX50^Y}-( z3aS@?sblFn=76S69cQ;cX;ttFV7pj3ZJ&?_=OXsvS9k#X9ip<;|w7uDy;d|@1Q0wm+6&If5FdEt)oVLN` zW7f)#4j$|e{1W$1+u0nnS|^gR?GMvxM~AO6p56@(Kc3olB|Lf(5#7+BF6hG|zd^}i zL8_n+tNaEvhXtyFK5X(Ev>X;l@42=mYUix~hZABO4oH4WU7_|x(NvFz)2M}iZF_M3 z;=&Mdy8wUI8IMJ;*M8%;*&gQ4aF1nsdYc%F#ADuL{`=N^ke57L%VBJGPY+mpFnGH9 KxvXIg literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_sapphire.png b/assets/palette/circles/macchiato_sapphire.png new file mode 100644 index 0000000000000000000000000000000000000000..48f281bee20308fc6ef418e07169b0628e5d3307 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C{RASeR0KYBhzZ8D^h|Jn1~*&nk4HZj$(9gct0Q#Y?G za21omkFPcL)w)5vULg!^`}>tXPYZ77Px!HN&c*Y|W<^^W*!10Z@XlST`eX$Ik3E0n zv(PApw)x^8e@+!?csSj$WZqJigdeGbv-3F_CHC#rkGn%eA5n z53e76wdV%YoXu_wa(_!VX>C_!^wEh^*d2K$-;?3BcF{?j?w@Bl4}5Mmn{l@AU3Yye zyHg2}<;C#r-?kZNilOx6+IyDCOdo3NXZJii#r0rLM8lfX6FRKIe;#8p`FY*oq;>eu zO{^B_8VslR^XnDKaUJ;dzPWqOO{O`{jB|up9vqdA-}C$|*8>?an!{Z2{=T;C1?~?E ztoarlVFogmfEdCDiW$BKFgzy-$uQVt@i(pb!10C2=5=4Q#z&qnOa-A6{Le9*XS@Tn z9pZpj3UCL^S;*kNHE_bDm?t(O5BwiC3drgerEwSd=`h@OxE=FUn)`s+1v7|ud>Gq@-< z^X{Lzwan*PU!@uDH+8pI&wb_Osyh*n=57vS2y5IGG57j3E(gw63Bi6jjOT7@F|2OL zHG95!Ia2`B>^G-U^SKwWY`Zbn{gmZ_+(YMuEGHFt2tH6vJ?_%8L?-Ay>ju#mlWhJA z9|XHYK$U_DtO+dxvp{{+9K(cDf&IR!isZ_{q4f zMYSv3yO-U`ilLnA_trDAQ=(E&av3}kkKkom_1q(hiRF;~`#=_9_2ajgSZq2Ilzudb zGBW9QCusd>Fa4Vk|TjMPX2PD=T)O|{A{eNj^O-E*g@PA|QY?-C$7*0&)+Dv<6J8+L1MnX@lBPscc-uCE7a}0 zDCeNo#}LP|y`1TT)(%@^nJw%J2RIK{{+hrepMSgid!f+1b}rMf2EGIKZygza$kx_5 z=(~kpQEHfa;kiWLdMU{@+yO^b`V6Kl43<91wT3Go`$KZe{i91buCZij{*aig6d}0a z>4RjS&IP&+%Yk&qf>PNB!Zq#oPkQR?LN2Ue;Q2Ree*XHSs~t~reURj-?==2ZspYnk z>%fESpZ~ty>S3x8$SCp8uIo&+AERBJcyw!p6z1gG@*uv(_M4+sj?*eupV`wbVL)TW zSAS08E;uK}Sn=ih$yIlzu^4QuXnd1qxL=iV&H59npLL#@t23PEzm;Hie5d|DQ8|u_ ziDt(&8E^c)on&+#O8bASeBQ%(;QQZPqgmS84aG@}oAjKOUd23>=DzSG{;uWyFGY9I^03*H!d+XPiIOrc}erM4k z#1CXl1~L2@&NJR|W}HJ3DrWew!j@yvA>|9)AJ$m&EjnU+f%`zHqn#zQ4SNAUE7Sq2 zn-LCZW0JY*=IB*4@pC|feJi_D$&M2WXNI8EuNaM!*JW-HpDxIj1_?^eBFvu zSqsihVGvoYtM+-$FQ)l|8Qmvsp7(v>mt=D~Wjy=w9ELyF3v&%-KMq>|e5b=*ooCy> z@Y;y4n0@rmHJOKd^a9jZ7bSO=pNnFQV11QT8W*j_pt_>j*K#APMfz%nHB8%X&N)Ai z%YidzllJtzx(z}%lFH>YpEGRdwD*4EaZ1s(VfqwVVZ%v99<|~J!WMXc`s2NacL@tH zb?m-U%HS0sw(;k*JpwMArxdKtUkYc^bOa_R^W#esye72ke4h0>&VgOec=Dr;9`>ug z>v$K(w_R!U7hO7G@2qJ%q)$xS(6974>{VF-`-6QK_GLYnW96SUM_1t)`wgLK8gaU& zavU!i?r6TbZd4wSHC0vnz=Ze&Q;rq$lruR6IQH*x7xbAUlg%ygL8Ynl0dp7&#}=KY zl@FM&0U0VyCxIfY93{=yXN75pf3BBU!!2NOcpuNz7P}?KS`{7JJ}mrN@G94&@6{pp zS1TEc_dM8jUQY4%g;$&hRzLW5=0X!g@}5IKPEHs7$NYRx&AN*H`7XfngTd3)&t;uc GLK6VGtLkY0 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_subtext0.png b/assets/palette/circles/macchiato_subtext0.png new file mode 100644 index 0000000000000000000000000000000000000000..ca912cdeaf94f839212a1485fc4751b04368f618 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B|QY?-C@sv+3mGrM~uI?w|c$(rX-QN_viN;#^2`nJ88419D9D+$E9+A<$7%+qISg|a^Pl|iao^qwdG&|2D*}>PUoiZ+EXUGt|KfA@ zFG(S;x=azAwS5nNteSXm7elDeBMxUttF3`+4y%4YBOBi5%Y!M9;rQ@^2RlPF^p zpWU%39JiP%xa^L#a70~a+;^b-hx54?&z)I&xeh#7|MTa+s6A3s)-c2${4m{O@%-gU zQ&utX)Y;y@AKx9)EF{|S@crTwd!C9sFqWv(O8@eCMsJL6!@<*ndCuvXoR(S)htE4t ztDGv<@bI~7O`R%h!jDvex#^mW5_OSBo<%z`w5@MGv1d8gfe)pg^Ztu4&Z^MZ#5k$Q zLr|ekW73NWQx3;5M*Pa%Xx(qiWKc8v&8gJY3_SPEW`E91Ocn4<=w`6_^*SNgFB@oV z=|(I4Z4A%X2sXIa&s}pW*ONiGTl_?x*ym`W1HZarjLs+36*GPKvw%0Pc+T%f@edmX zWPvQ9hQ0fB)jq@Ml=W2P{cK>{GXDju*7Dwc$k|=!W8LTnDrgW}p4} zW+lUv18TdAZr*0nXw)rxKCy_eVD^X2E`3X6f>+a4lo0JYlqc=R4Mt2S&!4eJ3gc z?moF?@GI3r_D4t{*UiU7SBo4xa&qG~21b9S860*At_=>S zm1c0+0ke>Ux6%wAyM)jN2lI-xnOloY|F;7(T%+-u(*eFOoU>vigi<)wdox+{C|j9>X5ayz@M|90tdvd*;_fKD2)&TC?e~q-O-M_+apK^>bP0 Hl+XkKoV)Ra literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_surface0.png b/assets/palette/circles/macchiato_surface0.png new file mode 100644 index 0000000000000000000000000000000000000000..6d507417f88b1b2a3214ada79b29c0b9575e4834 GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1n*aSW-L^LFlCzdHs3t^V6q z>|QY?-ND91|Cdnhf9WH}U))>0-hNY(NZtGM`wio7bNrpOSyYZaKkZ}Ix$yU=uhJdy zd0W^gbSgK9AACEPVGmc{c^>w+j2s0_1$}lZhmYU>_NaDF%lCy&y`l@4KloP*Fx0uv zm%q>*D7uv+LG_De+vC-4Y_FL@3_F#1QeRwg+sL$<>59}JiHGHenoXvRQCxP%mT-iz zWLW-?2v*AAexUh7LRcvymi-6I{fGRPi|6x;nrJaJ?|=6EcJ{}tfK5y_Y=`3?_0-Ml z3S7lx@Z)PueYI{7uU7~|+x~u~&(ne%`V)SvoOAJfvRTnq1~z^79lUdwsy4kS$DdP08Xit}ESa~ICE-V^;Ou-(Mu~lVN}uOxF&w_GTKO-SCF9Y;6Ko!* z6kQvBEc9699K=`6n(%V_(RViAI1YTs-K0HzEt5gb?VNMVTcITGbCYR~Gvgd#mIp`W*!Wa~3kVZw;ImnU`%T>~)^lGux#~{Dqq&>I7{VHNMa;cEjmv@aRYI^|4&%9-S`4cj za?PG^Ud|N2H2ck|)O_v*EZc6(bw6c!AotLDAbM#Uz{m zLix;^jlk5QS1Q{eG{rS%pQ=7fV3SeDxy@guI(SV0Ca1H7nlpr+D4yQ)Y?t_j#?xn( zSSUSqES;Qv_{DU^(g(q=nknm-slH>|r21y@i9J(y$=+eyp}%GQt)1=%o7K{}JAN{5 zYfwt{@j(3~gPuOj#V)~%9!`66bP0l+XkKYP$A9 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_surface1.png b/assets/palette/circles/macchiato_surface1.png new file mode 100644 index 0000000000000000000000000000000000000000..65a7e3ea21f166bfede1e5935bb47793c4d16d0e GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-NDAU{)^$SJ00mSTwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|8=daqo2jxk_MI^44$rj JF6*2UngDHY_F(`3 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/macchiato_surface2.png b/assets/palette/circles/macchiato_surface2.png new file mode 100644 index 0000000000000000000000000000000000000000..c8068255466f1ed4ec8db7aa47b2bfa88f6980af GIT binary patch literal 1126 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 Gp$Pz880l32 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/maroon.png b/assets/palette/circles/maroon.png deleted file mode 100644 index c4bb18531bb19c1a86abdc47f549e2c40c8b2adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2254 zcmai0dt4J&79K!Rh}i89l~mVuIy@`|@&E#4B(O0&f)XGQ5G<>NWJsoYOw3Fmuqy8s zD%yntwiKzNSfmfK%FkbYP|%g4Y>^_R%Cd_{(@MKk%fiaTRre-P(5l-%=5g=$o$sD| z&beo%G%hC6$#JbC1VK(w!mxPo++ewu+k<=A5itjXmY8r!GLO)LCF9DG&=AL9 zBMJmG7$t>`8nu>0jXcDvi-LE{G!ucX6iUTIl0|W_fY4(whrwa6kPt^WSTD~&1vUf(+I;znI6|s zIH83tn$mQ_K=BX+;PAXSX2ciOwdDNvK_HkGgvn;Gn2*vaJmVR33-SbArz9wXR1&&{ z4Lr8Q0{ny_2;b99j8fgx$Rg4Ir)xBiZG)u3GeIEcgZh|HzbrsXvUM0U9wP~ZUWSEd zVp_`88VO5W&^X+PsguKS4W=bQba{v$_g7%bGe7~MCiDrQs4yPFw%S-Chem0n3T!Jb zr<4m?i}TT#R`F}V;+fiDNo}GQ2Yc~d)Jk5&cu1fx^O0pzo(e7G0kwK3BILk1Kday( z6eSSE>4^+n4KOl3auXaCE(ll0=3Cv`>?qZb|C7< zMmhdoEH=twS(UA9a2DiJO8Q%TOGU%Mz(OQKg*ZtO`fTgeT$v|eJLg7oLp5%#Zy2^_ z8I{T`LE<4gJs~&9Fu8ScAUB7SLqw z#DLnf_r{#}jA=P>zql66e8Tx)E8&qN3hd_Qz|jXigt^c}z+j;bVOr38^q|RzoWARZ zAe#alq~(cpK+r4YhVmO;g<^VV=%6yariOO8i<`DDqpEiMHQMQ2 z;=N1kZVz0q9ehx-)WxU8kG_>M`2T*TxNk`7wr#9S@lDhEsb-FkhheF=(*@VJnpPKY zC=&cFyx%OkndI)gV^zqSyRYl{H&qF-lIhE4syHD2PGeQiPGd#lQ-ovROg zdl}o()wBD{13?ut@8KyMvCKoxFAJf-cgp(#&BrZJaQc7S0b+7$z=p(&?tCm{8d zuDbbqm%C}BiIe)oiLnCGDdx&Y+tO(<*AD*_vrjcnT=wXz*?fNDdH>FKgTuaws=E8N zq>Bp+gFA7uoD7m2C zPS|~YTmAYA$wy0W@?JZi8PB~we*e_ymDAu;aBFI}&l-5;k+bay!|p#r$;$%rIKz&g zL5zHIm>%R%+v<5X=A)yH8`|sMIxWmD4cTAW)210o z-MN$gPn!^^*(M?1ROIlL-CaAy!^$--Z}z^bD;oRc3>|8=RW$FlrvcN+-%Z=Ls8&_8 zY){!Ka^=hPBQ5DW4!C(sm#8tX>7J0Qyv!E4bTsD!>VD;zM{aEEpVTk*fcHtF|6e2P z`s=z*MCV23pH#?;C_IUNW>4VER|S*bzZB5Wm=`lVhQ}Xojc70rELHxn<-ac94OJQZ z>~F6#Q?qU>(w2_Wo3h`#c78v9mi-dG?x=XO+)zlFLQY8Y`i~`knbr*zw^lAoec@u+ z^rd2cYQ@{BYcGC2bLkRX-5oh=AH?6)5L=diSiIr(Yya7Arywe-e>f!e%wEagxMSb) zUB|bFmU{CA-6xf^cI{Wj61ePi|4it0UcN>AsXJ3J7H6nM}_XFWd;dO!}3r*=Mf z$oW)xN!kl;DN&!=cupQ)+oXQkg*v$6&t+ys?{Kv9Cv9f#&*eYHj)%2Pb$mQc>vDhp zPToPsqTLY{-6sb<7!?k8ko}s5i$`SUiqMaPov+kKoGX-^=pOUmT_kV+Yxvd4Hu_YJ VxYKoIqUARvDm*6a(@kjw{{y!jUv~fi diff --git a/assets/palette/circles/mauve.png b/assets/palette/circles/mauve.png deleted file mode 100644 index 055971a0b603486d38875edf4163a0584c021dfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2248 zcmai0Yg7~079O5OFf1%ug{n7>A}%0rAd)6xOd_Eggzzv}Um=+!Lmm@mCM2M(qQI@z zSFC}Sl?qm=NLPi{F0Dl>^{NzZ>nlE>bj2#%Yag^ou~?*)dlD#U)!rYI%sJn;zrD}i z`|M;}dRhu4I5HT5AWEuKEC=7wo+l^}eC{}ykpMydjcAsFRLGX|RG5*jRAYGv-DWfc z9D?}CHnUQtM@VWOqD4&txUcCnOhwfKcx8f&DKm=@9V#uxk<8+>ELE{ym86D~7X|Ze zJRo31NF~)~G?)mUO#pj!dEni%&48(13aJ;s3RyZ;gy9G^fu2BT!i$2bd|a*J$;C^@ zjKN9(>qyefV=$~%E8WVWW4M;VN=iy%Fxdu>@98EsrTJ-One6ZBM&o10AV^6eNW@rDAB*Wv2Siqp8DYo~0<+*ML{f;D z$hqE3c=EzaM{S5fAx4dei2&IZz?`JNfVs~AMVJA@GeJ`!0+{8s@nnvdYE){Gm8hE3 zjcZNpFGoz;zXG1f3>HsmvrQ;C3wuIKF@XtSE}QX)o7|^D<8|P9qmyB35FE!VI02=K zMCmxDK@9*SivS_TNEEbo?VevTJ zSSE|dWO|joY;YIUN>cg%_@0iY@_~g+#*?B1iQz@wt~CU@!bs;WZT&RzNB>z)(}xBXDYGW~m#xn26?tFN7E?yKm@ zIk_g|_W6d8hrT9K?@rSCof?O8?TwI=8#CVU z_xriC!`b!l^?>QLk2y0|l9u?Hp&2f>Y2K>dcJ1~0S@#x6Ap|t9)Jw@%@qy* zoj$n!yX<>-_CW6zf|7RO{Z)A(X*Ul1l(tjfkG0KrRlWTAz?Asb7R#ia1CITFI0;+G zNqataFe@qHe|{IDs)xAj6--+kHY82YZg&$Xm{ zOIx2GR>AfQY_Sgvu0R0K;H&+@oxgp`-Sb7mO@_v-)ia}Zmjr#6xF8PkwcYt?_wS2^ z&Ya#Kt4eE^Z*JZgFw&XwY3qgSag*2d9XncWzuEH-UEyw8cNuv9Hl_c80kIM2g30t-^- z;Ht3U7vS)%isNAsk>C3EJLa$g&M$q(rn~l%)$OjOxl-SkZ+C7f{48=xsk~Vknfv95 z|Mcyd{h3Tt@Ap>t;m&h46bUg|PWVYgM5)-{$h`6^XGy{Dth?lq?&mH|n!PRPy0FSI zHFA%Y+T4~3u=?TRzac1Uw*J`t#5VR$kdDXHmsvxOJj>H%~PeLDZea*SW&p*3C8r2k+=8BdE^4CVmMnY7jm9@UFlAix5P^u(N Ke00hBE&l@;drk!a diff --git a/assets/palette/circles/mocha_base.png b/assets/palette/circles/mocha_base.png new file mode 100644 index 0000000000000000000000000000000000000000..3f24ca5f50f47c3d69dd41c0c77646d750b44b39 GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1h(aSW-L^LFlQzdHs3t^V6q z>|Qa&-Jyg1#czAwN0L>63xjt573|q`?~d)a9^2=WFK{t-e*9@P**EEhoZP;~A5Yz? z8D?5ARfyiX$9Z7(gKuXFF32@7s53l&;cQg1Ctv^GanA~Qtt%0XRt*2Qurod=|MHV@ zuS95IH$#}y{A7!LSt%Rz97HEu913Xj%N5bypyjakV839U_++IB;RQ<{B>QwFxHe2{ z?l)9z+Qu-isozks=~`)n{s-BA6O4cT3~*e`Wbh-qZr^^f^=zuz2f_{hsGfWAe5J%v zEr#a!^WVQ;SGu~ug*D;FZw;e-OV%GeZSzk_{5opC_co zEd?s86r3OL$tY1L>GC|%i=i!EY~#;q0u2veD;T|B$z)IyJL$Q-YlE6xS5CtcnIM)9 z`7RYJm8ToR8K%`mzd4uO&%kqEZFkX4Er!F}&pxY(ijZ^>x}n6-|Ig~il*>^-V`JBx z>()JBna%RxV!Zn5qG+K5M;@_mntk-oG?oqfl%}8AJmdZx1{?c~=9@Cl_x%X3P;hC# zDYKj<;eCGhNgEh_^Z8t3HHQ1&x1Y>dw}#K;{JR*>V6NXZy^|2HhllL_Y&h?hW=fT6})Vi z_A;CYGnj4I3;0J7ZaEveZzDqvb8a!%JI7caxGpr4 zJUdnNfMqaKK+m=rXNq5O*SIavRr@^0`jUOB1c&DNoW5eF5Anyh9?a?U-aGF(Qz*R#J8FM)CMs*Ti!jCom-!s=IHmYCmLa-P@8oCwk7g5u zUI0@^&~-))$H*hkqCYtasA@F7u^u9{JH#~Gh4Wh1!| z^POfrb&^5scA-<8zGX!{%2S9wWY={jdgbkdvJJnTey^HaEn<^Vw5?%=e1dnxqKd6o zDioG57cAcpfBKH&%FtRY1fpz!CDoU1`$(HdQc1Cu$_n)o9G6)tSz zSO#PWD_oewq1MbFA*yhJH!eGBZOqyKiNFl^fakYSi14ooQsQkal84%_9bUQpqQxq1 z`4!8V&V1~8ZCBm$#(A|mLw?h3V`pxro{wyg)#Jl{@ZV>uI&1%H`g&mT!QkoY=d#Wz Gp$Py#!{|K# literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_blue.png b/assets/palette/circles/mocha_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..daf3659c24f14adb8728fe5c76868e809fd08bbf GIT binary patch literal 1123 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 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_green.png b/assets/palette/circles/mocha_green.png new file mode 100644 index 0000000000000000000000000000000000000000..fd39a1d4f76f1977c10ae39a09c47ecf54a3a7b0 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C$7*0&)+Dv<6J8+L1MnX@lBPscdxhWE7a}0 zDCeNo#}LP|y`1TT)(%@^nJw%J2RIK{{+hrepMSgid!f+1b}rMf2EGIKZygza$kx_5 z=(~kpQEHfa;kiWLdMU{@+yO^b`V6Kl43<91wT3Go`$KZe{i91buCZij{*aig6d}0a z>4RjS&IP&+%Yk&qf>PNB!Zq#oPkQR?LN2Ue;Q2Ree*XHSs~t~reURj-?==2ZspYnk z>%fESpZ~ty>S3x8$SCp8uIo&+AERBJcyw!p6z1gG@*uv(_M4+sj?*eupV`wbVL)TW zSAS08E;uK}Sn=ih$yIlzu^4QuXnd1qxL=iV&H59npLL#@t23PEzm;Hie5d|DQ8|u_ ziDt(&8E^c)on&+#O8bASeBQ%(;QQZPqgmS84aG@}oAjKOUd23>=DzSG{;uWyFGY9I^03*H!d+XPiIOrc}erM4k z#1CXl1~L2@&NJR|W}HJ3DrWew!j@yvA>|9)AJ$m&EjnU+f%`zHqn#zQ4SNAUE7Sq2 zn-LCZW0JY*=IB*4@pC|feJi_D$&M2WXNI8EuNaM!*JW-HpDxIj1_?^eBFvu zSqsihVGvoYtM+-$FQ)l|8Qmvsp7(v>mt=D~Wjy=w9ELyF3v&%-KMq>|e5b=*ooCy> z@Y;y4n0@rmHJOKd^a9jZ7bSO=pNnFQV11QT8W*j_pt_>j*K#APMfz%nHB8%X&N)Ai z%YidzllJtzx(z}%lFH>YpEGRdwD*4EaZ1s(VfqwVVZ%v99<|~J!WMXc`s2NacL@tH zb?m-U%HS0sw(;k*JpwMArxdKtUkYc^bOa_R^W#esye72ke4h0>&VgOec=Dr;9`>ug z>v$K(w_R!U7hO7G@2qJ%q)$xS(6974>{VF-`-6QK_GLYnW96SUM_1t)`wgLK8gaU& zavU!i?r6TbZd4wSHC0vnz=Ze&Q;rq$lruR6IQH*x7xbAUlg%ygL8Ynl0dp7&#}=KY zl@FM&0U0VyCxIfY93{=yXN75pf3BBU!!2NOcpuNz7P}?KS`{7JJ}mrN@G94&@6{pp zS1TEc_dM8jUQY4%g;$&hRzLW5=0X!g@}5IKPEHs7$9(l!O>bs_svfZXVDNPHb6Mw< G&;$TJV(G#F literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_lavender.png b/assets/palette/circles/mocha_lavender.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd74fc2ec1afb9cb21a99cbe976dcd9e32ab0f2 GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1k)aSW-L^LFlCzdHs3t^V6q z>|QY?-C@sv)$6q)M~uI?w|c$(rX-QN_viN;#^2`nJ88419D9D+$Eha`AkAQ4=kO=Kar}|IYrH6|jk^hV^j#qn^5XU4g5Z z41RpAsjt@!;`It)Xxrbf^m$rv!})|CE9YE1pKMmNm4Qv)eFyK{rK(R>F!0#(M?MRU zVrZK${_*Ejk%ouU9ZTjdWl8vvDmXizlTl(HpVH@fS`3G;t5*ICX32Q8@C2L3DMijTdOyEjksQ~7Pw$(%=iFqPG-O!+FL#K-(b> zc%=Y$z?_8)?pp&VOp1A8Bl5uiVWWVoUQrr%fu9b;ZHL=2Po=pJm|ZY~c*ln!P9$sc z#h6IOImW6CM>D!l+AQC9Af4q_lF|8{%725~8Yg@@^UOk>;eTn2^qFTnuDq_)3o!5g zsawl@p7m9l;eJzhi}l=BPOiEW@o4VmFov+kT@iDyPvdgne3cOFm&17OrWV8MhFr7f zo0l^MFwK5*Dm9;b0n4@_g(UdVD%k%!;|)70ZGJxgSQ?z3(XeKE=AzfeB2 zW+O0l=#|Pg2u*R#*{7<{64+$aac=XMsSaKffXV4>q2>&sCyJ-{JliFHq4D&YB^FAL z9ZM%?AAT`ivGhT(t7gjjWvcJkHmSZ@d}7bkU9xu=cj#|fe`}}v!Dh8|?v9^~+gen+ z!o7RhovawjxqfdwBReH3^(2?U6Y&UMrd7{9qL^3?>Aw$T5mrBbi;2aiGePM`gD4}D zZg+y#j|Nj9qcg$iM?)wh)7=MKmt8$|^^ZI-!?B#(pzmzDkbh-iqQ?Zqnhe`HRnonS zcYSEA(mEise#g7b?kDWFR55)}+hJ?GMd5%%zCqom)YkuhRBJ8=bd(+d79I?qu6{1- HoD!M<*lhTO literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_mantle.png b/assets/palette/circles/mocha_mantle.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe8e5cc5f17412d8bef43d0279e0ab1983eb86e GIT binary patch literal 1124 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 literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_overlay0.png b/assets/palette/circles/mocha_overlay0.png new file mode 100644 index 0000000000000000000000000000000000000000..f2b26accf2fbba9bcb63b4a88b375069e82a1a6d GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C<8`{TI_;Gdj{=xVCz|{pN0Ps;c<=4dZWf{GGH}RE|AA?PJ!t@b{;$(jD=6 zTi7RbDmRE9d^?w64_DrK9`?7490g1TeRe8`kKg|GsCG`v_k~Wqq6?Tm_*V-s)Va@> zzt9~hx|JhA^^0ZON0(JvA)^Ya;<2? z!|O+1?YY4;XR{lF+~3koTH93_eRSd!c1NDc_hfjjU3Ai>`{!BC1D~7CW}Gd2*InPr z?ohzppKOf&0S( zYraKCn1PHXAcpXPVutSl49`hIG7L6Z{7ox9aC~91dEM8n@sZ~XQ$gqi|8orI8SemX zhdAJs0^9*}7BaYR4V*A3=828S1OJDO0VIt;fRZpS>8=00F{!3^RZABH%Q ztjQN+A{plxt1=wT=ssz)eBXg|mRm_i=XWaqb#7~%@afDm3w4J7r7_ZHp6$5ux>7H| zy!)qaE%SNSS80a(P2DZlb6+{R>Q2O?xtqfn!Wwr)%)LI1%YpM%La<*B?|&F*Xap=j7(8A5 KT-G@yGywp=xAwgN literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_overlay1.png b/assets/palette/circles/mocha_overlay1.png new file mode 100644 index 0000000000000000000000000000000000000000..a2efaf032236608192e609fe5a5c1dab4baa2d38 GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1t-aSW-L^LFlQzdHs3t^V6q z>|QY?-C<8!{a43dSsm#wTwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|63nb|GAL4pcq(wFnGH9 KxvX|QY?-NB~d|5wjnb{*+2TwA@~esecCRaN}`hVi#K{!ZE~D#xCm_A%>R`1{jW>5llk zE$kCIl^etlzMadkhb!+q5Bpn2jsm8FK0B4e$8UdoR6D2T`$DH)(FM#O{Hp~R>fGnc zU+4}L-O7=m`o*&C@oG1=*GwUXoyt6^FRr+4WLnL1Me2{l!*WB-CR4^JF1uq(IKo&m zEPqG@D`jv$(EK4GtdtSU{)6TILw?J}^Z7+hv>2NAKYM;V`(swXCZ-y;!|{)L>gII? zu3|Fy@wKMDS~rN-D}#lEQ zcPat0ycoXy+cx7&F_fNMd(SeN=|gS(?4D<*xE{=jXjpT4LWfoO&tps`Kd&2{v=0Bd ziPa)qgW>dke!U_&t^=RmH+Rpu$u!5AagH#{gQN2Cd!C==dLRQvbC@gM-`AGC!2Mx? zHQ%Bm%s|Ex5JUJtF~j!&hUX+983vmy{-zZlIKD91yzXn(_{j5xsUUQM|2c;9jCX*x zLmco*0q%e~3mM$E22Pk1^TbBvf&ars0a?AGH0}aF9fsQuw_~14b009fUY=3bx1<-qwWA=od6@!U-63V!C4KgJ4(9l=aJ0-?42{eY5z)o~gTJ?=bGr-?IMJPWOY&YU$h^KN+{R zsCI>W_p&=#F_d%t-g-uMN>u7eE`ulH5xh*Ro_jWPIk!RI*>oZQ%ECmC35qotwsWea zdl&Ee&{(B)Kt_MZyUp$=?6y=febCxrYrI9_fW&%(x=*RC|Cd+PSh~F}cL$aq44$rj JF6*2UngH|H_RjzS literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_peach.png b/assets/palette/circles/mocha_peach.png new file mode 100644 index 0000000000000000000000000000000000000000..8b02b71dfb3f6169fecec4120f2b6d95562460e7 GIT binary patch literal 1125 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 CxaIZ$ literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_sapphire.png b/assets/palette/circles/mocha_sapphire.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fdf007e45436d75552a08672359626410d6b4 GIT binary patch literal 1126 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 G2~7Z74)J;b literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_surface0.png b/assets/palette/circles/mocha_surface0.png new file mode 100644 index 0000000000000000000000000000000000000000..063a0b6c1e7afe833e44cf90af96a19bf94d922c GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1n*aSW-L^LB2o-yH*iw);7O z<$;>%4tEyVI=`=HIU@OMq0`c`-^voHdw+hrVf<}Re@hsLN6&qA0 zQO-fFk0Fj_dpXkwtsS<;GF#Xc4saf@{563`KL2+2_d=n2?Odi|4SWae-#RkHqSP?;!gGnf^-_{+xC4%=^chT97%Y91YYkUG_J`z_`$v~>Tw}@5{2?(}DME0; z(+9~uoeOjumILXI1*NhNglpREpY+t(g1HrR(fB6KaK9?!n)N4CKkGa*S7$iSe=EW4_)h(QqH-J; z6U~lmGT!)oJIUxgl=lBt`Miho!1uqoMzgfF8;X+{H|aSmy^47%&3)lX{9%>%F;7p6 zJ(#nQLFd2SjuVv{45#<=>lLMO7x1wb_z5(K*VlZUXAab-0Y-ce_SUa2anL`|{LZ37 zh#$z93}W~*oM*h_%s7W6RLt;Ug)PUTL&_JpKdiClTXe+u0{4MXM>|Vq8}K?G%$dJRFTRb&ihvBxvZHRXa87l%;__`IR zvKE}1!XUC(SMBqhUrh4_GrCXOJn#F$FUjU~%6RtUIShZU7v>twejK#^`A&zsI?uL$ z;k6N8G5hGBYcdb_=mn^+E=uk!KNrOq!TKtxG%i|;L3Ks5ujNKoi}ckDYnZm(oO6C2 zmjh?cChh5absL0kB$dl)K4;j@Y482Sezjyl))=NY~#;qdjwoKPbpZPzZA}-=?F|t=Es*Ncui>6`8?}&oCCX_@#IGxJ?vL~ z*YPfnZ@bdyFS>NX-dWRjNS~OtpXCH zuU0Y??|HE6yqx0i3$Hj2tbXwA%!MX~|QY?-C>W{QacxUxsN=1R|KrQ`;WsdGXI@i^|5)MJu_Mxj{K;Zc~Z@=Bz|8V^T*S@ z-x!PvSw1N3*el!+e(>$ghYM^O82uQ|U2ISJQE@wNPygf(b|EV^GLf#yA3Q!oz6U*Ay4D%mY|4~f;@_AvC8*9Rc>wjvhb>n!w!Wzye{P3Q0@qDnM zS11G9{(0~7*SoHA?BqJ|;d@}py&|p;f;{$9jek|1aa$*L;K5Ul?F%<=X^|0ac=%lL z^d2wn10Oys+3laiWbntRW}JnsI!2dK{(jEWiF|E*riT*W9?a@=uB z1w$3%JTQZ)g71MG*8>?+&>ZFl_qUD$qH>LK4e56a1ytuX#xbnp`gBtAfn`HA&~~r` zVq~Ad9bhc-V1*f1(4_7;?M#0(Z3Gq_c0HHFc&?K*K{{jh>Y8N68*I0pfxXkid7#@V z*Jzfuc0=(pmIV^IhBKdE5&zNS5bg8KvV2MX2?K$kc{gRAvpm?}m)(3*W_p$FdDd5H zhWnT1KiKJTSLfOGXB^K<8?7RzN_+1qzQ%PxD?ohp=UYLH8ji9#r#f{HSVprZh;BIh ztmaz?gIB`j*qv{38K)c&+x^+Yl6{Bok4Po=AU;i|Jxkuq=$JUg`PFWQZA`I~p2t7R zRZzVEOdU(tF$Xkl>NvaoNvnca0NcgNY5RmcI6ncClcgSOaFb2S%PqXbE4#(h*R%GV(pzY1p4BuP7g<5~tsJQSXhtbgfz_bl6 zAG20|bnsw*;Fq|6+Ro;n)jE-kZGV_nJ34%o@$_zR`0>=XE8)?Ti0Fm}bwM8%`3*`A z3sMDrSml9PXo0Gr51af3Er$itd#-JX+Bxh0VPJ+kAo(qIh1wTIQ#~F|qZa10{mHLJZ8OK`;Fsfdze2%9P9S|QY?-N7bg=|0!_5+8Z?t_WCp_aBE_Wd1w3>SOahduFsY9Qjc*^Q4+#N&LP#=8va) zzcCmUvV2h5u~)bu{NUS}4;R=nF#0i^yV#!cqvCelp8m-n>_S#-WGZ3!m&wm`;Qfow z%vFY~7Kt&gX|X$AP;>P}LTrPUT4BpVp1HR)!V*FoqMGHE|LCc?ZcuaZK6reF$iXfK zU3U3oFP2&bCziFZ8RkE*{-c=w<@3TOH`as?*Z&EeVg*BW{_~AY0;`v}h zuTTcI{qx@EuXkPL*vWO^!}q|HdqrFy1bOVI8vm+15Js$GOc@7CRD(CCF7<_F+ZZddU zF5wWc7x66dIF-1bLFezb8*`7#F-q+7Eql5tl%Xwu_Sv6XHW+oNY;a|e`&+s}bNN=F zvAZJXibppTU*kBic)wrR(`_mZokzJ-%)5W;awgQe>dj0y+;7QPQFnoDv*o$kkLy1; zbntDq^y55m@4ndNN*KNAymh({!@l?VlP|_ZGR_g^o=_?&6!={0enf-Xe<`)f=UVaG z7@qU6Cj9(<(Dj@%W5mDOf{DgJYc(2*n;7=|c-;Mc4^W>o7!@XZXt_L!tpgGJ9?r$9hMCBUe8q)6;3aHL&jAK~G_35PK1IvbLpzUA> z#K=B@JHS}v!3s03ph?|x+L``n+6XKTBL1VtA=>AeW%-i&69xi7^KQyKXL+!{FT44s%=9YT^Q^DZ z4EHb1f3VZxuFkXV&p4i!Hd;kamG<6Ke2wdXR)F~G&$ogYH5_GgPIc-Yu#9F+5Z!S0 zSrt;o#nLED?H8NRoE3$^~PQE}l(4x^#{foU6D zK4z`_=-|Qrz%OzCw4KdCt92q7+x{@Ec69hEViHj@*9*K z7NiRLu*w6o&;nIKA2#_7S`G`O_gvc&wR6`0!@vx8K=NDa3bikarg}V_MlJkn+k^8L z7lw%21^Bbhc+7ge_8Z5|_Aq~jIM(gyZDK4Ek42C9?_2Xh-f2g56RYnYXJGlk;OXk; Jvd$@?2>?fa?L`0p literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_teal.png b/assets/palette/circles/mocha_teal.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b7120da3bcb06858b82c9c5f356b8f9bfa079f GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVA1h(aSW-L^LFlQzdHs3t^V6q z>|QY?-NB|fer>(rE9EbXoR*gTR+dQJyR-U@Wc4}qg`!MCk3XlX%|3FW_UAXzBl_mI zm`@xLJkb5%n;%0Q>-O}v=5Guv7K|3|@{=Au&aM7v=XdCLz`|o(7Z`smx8-2izxX`= zi=!*LqF6Qv{gOHSF;uy^lyTLJBZ6&4C0UCj8bcYgc*lF_dDp?;y8z5h{- zP)3PARr~hu6N{lzWc<=)0zj|4gQ3jd-2>*dS?_v^K|7qZRait6@@Ug&2QKF ztfk9v_Pj@MlxU+3hV1Jn`%kEB!?q9=@Jr^Iwz69{@ zidI0DDnoUBw9hk3D1FlI{TxHaAN%(Ex)rCg7WnBnTub$EnY+3snQ_*i>={phteZ@8 zj71ur-e(uLMyaU<}c0fVt z1h@mv1vD(arQzYJS0u;vVfhD#4nA?q&8!ycVhy^9N~ulR_l1viep}VwGm%2`{7!m2RGKf0pu`>#VO*Li2P!o{Q9GSnUwI=3KTn>jIY24VvoP7@p^dHiRB9oBjD_ zFr!AJZ`spL+gSscqTifTek$|8>|uJRjHl%ijt`SIB`diF@vVH%bc3tJb6$Pt_Qoj= zz|=8)7oP*?DJ8S}lf;`e93@?zNB;6sP(1-mPS19T_;7xjkQ!Hfm;1$m)U+U(i60m2 zI=MCR%jpSLA670B*%W?RsGRwx(6_*pdtP_>-Z9(}zZL%W&f*7-lQ**-`NI%>Na*P5 zrN@{RWgDzp|3*FI^IE$pg;nAc_Zl|FtHmn1j7$%wf7fX0oSdA?$TZKzK(OXO7enJT zR|CJ&AQO(cT9lA2ZN`ppUXO@ GgeCx`hVx$l literal 0 HcmV?d00001 diff --git a/assets/palette/circles/mocha_text.png b/assets/palette/circles/mocha_text.png new file mode 100644 index 0000000000000000000000000000000000000000..b1af5645177855811897d3e6172ada242a201e76 GIT binary patch literal 1126 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 YRJEDw->ta*1Jn@lboFyt=akR{0HxtotN;K2 diff --git a/assets/palette/circles/pink.png b/assets/palette/circles/pink.png deleted file mode 100644 index fd38941c9d49437e19b25e944e83efc18d280083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2251 zcmai0dsGuw9-bht664yU0^Qmj2SJ6B2aq6B0u2c-F$f{Z<5(n+$z&RmiJ6H6R6r~& zDzst+78RgTYgp*>h0TXlt1q4c1ItPhq}D7zxE)x8N6wCe63lgz!}_xpa& zdy}2KCtpJksV@FB>)iIAtzDblrQ7O7<`lw>BxHfi+$ zhoF!!lU|Xf!Du)W!wH=bxqqPrfeED$N#;wrQoR^c6VZ7FEHN)mo|UJ`3RWUvp)MgN z6bNWBS^=B1**Xd}2@#tv3f`^T90ayeXpIm_k;cPf(tyEyHlNK!LS5hxgHnacB#|@5 zU?oJ(BA`_X7++DpyAuEMU#eH+t&1$Ct{nXSJTUE!ZzP9Z0jwI!9r^L^x=$5D}?V1Sn@N9B-Xmn8)UE*@4emaBmOmS7+ANGCMDJpZ(Sn#R}>=ln|>qGC!za6ZZG~&%d}| zWm$jj-Gsrf8<~&obd{RJrTaE?@i*;AzoL0>ukh%&`O0M7om})za7MYR(wu&Sd2VaM zZu@yZ_Vt?kAD23~`85Z)C)38jHx?xH4Ct1pjdbDH8UEyzuH*ub*ye5-z!fRS+)4olY*&+qmGY!uPtTN7jVm}*-d0C-p3u7U=58!*%SJz z#@lWWGVUh*%aAlaQbe)hE+0?JWX9e2^oO`|%^2C~-BY{f%kftO+gpvVl#f@|{cNU8 z%&SS04b0ww?Yf;g?5zybB>v-9>yrY(&&4bH=u`@Vn6B1`0o9t_A;>NuMk11@6kqxS zkL-EJz2tz|ezzCe9De=-MTV#hyU=PUyVpgkovyDLWtQ4AySg7cp07B0WUQk^;Ixg*vc-3lh1H^aa4gP@*#o`rCmI{=_lvA$LpV9&Yzc?f6ni3J3QFE z`rN#&Q2M+hj*2=DF0{ZCe-wj~|G|HE@6ESUPjTrl)}7Cf%>St6XrJ(O84lhboEbKbmFKO) zl2olj9etD`{86*-{C8XKhtcqb$#(53pHJO_e>=5iX|vDaj?j0aHV!7swG9ahEo6Oy*WbYg?6)}HYY#u9*%Qf={85DVF6pl5uQ=>Uw@fVPyhe` diff --git a/assets/palette/circles/red.png b/assets/palette/circles/red.png deleted file mode 100644 index 75e7a05ea6e70bb449283e4719f3000a7b136fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2244 zcmaJ@dstIt7(W9>3M@0!sK@ej2r(|Z!N47uI5%$TxXhtohK%iu9d|k7oHG~;0x?Vy z`l!QaSkccRZ8a!Drb=$pQ#+tHl+mbgFC-sv-<*rJBgZ*cO8c;1CoU zWicsLI*f)hu`JvuLIw`EATX{LAxi}^uFNFCw0NAA#1>l<6e_DuB~&9(^E@IgC=f7U zv=X)$^hOG`h!CeP3f>*t90Yb!Xq^a2l_kLvg2Z3}TfpWb^E}{4QmsMd(wH%0uo59! znl_;vPHt{4J2!+)kXam_P$=YZ`5Zn!7%+mVJR_~N1RE(|hs3Cc6r)rmZlZC*2s<>D znS_}ZAqc?XF>%a-PpBKIvEze8a2yDS$L4Y#q|>2YM4?EmQo!$ZfQ=;$1fh_R$T6w|*BC`FzL5L zlL{_^T1hMam+a_eI1B( zS%s;co`KvbN)Z}5S4m>xEKphzBGzbdkjOkZ$;I%d*H@{(ZLy?9bhp&eJ~>!IV6}Z-{1iS5X30PK{Xz!0tC&m znQa#WS10?lM)hbjtE)ZRj-UDbhrU==c>B)eg}U8d;XS&j&bPieGEmjG^_t3>^mCqv@{`xOx&G08zNY8? zTIO@XO(8x@X>;hzr;|H+jjt^0Z_n!5`{JzzLGWxdGl+G}_uakIOZ?xKoQOW#C%d@B z&wItRc{6UVB*hnXixU;M+xqB|s6|~nY`n%#Cmrr+nLD_yvaHIxYV+kbY+?J!f^Rp^ ztr&g}Pm92EKJb1y4hr8`7P4mhyfw#122UrJ_t)7jjJzKeEheWA1_Ww@Y_la(8|wV_ zY}+L8v&v(trXT#faAa?-`<=kEFEZ*1xn-N#jf6d`o7;Pfb$JNV-!fG-{PNt*j9*i3 zkSRm`#S|;y`+dtYJrmA-_7-5}96yQBKGFNdavw%W~;*AG>0yH`V5JWr<#@AW+2 zyUJLa%g$$5hO_=Swj?DK{7OtV#idaYkk5tg+7d)E@sOCS7G+DPX-n~ zTg7z=J2?F=G3&RNBGM0V=_8!xw_eNHSh%xS6jr_&yx;lks(Enr%0w(}wmsxpF~wid z92)5LM$6WGt=Kv=Wvg5ne8LjZWE#*zDGjr~I(=0|)XLWP!D?0)-jhdok>Fuudtjw7FzB4epEwpx$vtt>Mz4zfubeBI zc1OWV3A1@NC%DJOTtBQe?Jn(FaoywgqQ7b_J1&e^m)vFkT=AW2My-o-g-tzlx4v|p z`q<&Ms@Go~{MF}BUwOdEw-44$9e^wKArZ1!FF*gM$rgHV#&2HLP5KuSQyqUk;-eF! J^$RkJ{{d)hP>uiq diff --git a/assets/palette/circles/rosewater.png b/assets/palette/circles/rosewater.png deleted file mode 100644 index 69432de4d47e5865c3e3ab3f25443ed8cb52fcdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2256 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 diff --git a/assets/palette/circles/teal.png b/assets/palette/circles/teal.png deleted file mode 100644 index 1b816d7f4e6973e025c550aae01aba7c87d5d01f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2410 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 diff --git a/assets/palette/circles/white.png b/assets/palette/circles/white.png deleted file mode 100644 index 143fe7395125acb640f4e8d303730688321fd42b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2253 zcmai0dsGuw9-dG|B&0poSGJZq9eiw|d4T~ENoY*MLro++1X|RDWJtz5CT1p(AXR~4 zK|mWyV&x#MT~VN|P}}2CtG0D<6@0BCqSckv#uj&3l%h~XbZ-I$t=j%Ek9)uG_ub#? z-kFjFc`VKU6@LhVXz_89MDU#Nx%_;=z3guaE(A?z!jjX-G}%(V8aFak8axwa+Kgs^ zLr_$-&8$-EQ4-EXwU|kO-2UcU1jaN1B$X>;%gka_hsEVu(4<^>vN~6<=4p^*o^4`NnV&_L$^MvbG(HgqK}xehB1V(?gipUMKqTAEC@T>qaH~a)O0!WD z8RX4`ColX2%!V4$B$yF35g@w)B#ievF#S287&qXSB+yi-0O5FTJelLi8&z5~71NNq zF|G0WrKm~!d%)wF!Rje(iU|X;gpO;ajbj2NB9!&mGU?BR#_GWLdMCp*z_~E5;5Za7 z7AIKnEX)8fA~ALm94{4zb9mw5j8Nvt3ZQ6wV2fqhB`OlILfN1<*&GIkm&}RahjI99 zUI-i9*-_y}>6tIxV_;DCP;ugDiYNXAR&^05Yk)Z+e_BRZBtISua zJxLNEW(%&ds!@%1aUeH>5_lGwqq3kPEhw-65oKjzAf0wN!PB`ghsj|x7d&Z^qeFq( z^J8O;ddBkXxZhlhVm;-2l$Y?>76o=Ab71R(GlVsEh=9S^F@&1H*<%5ROvF8PDg;pq zFi@7K$^k)tbyyvpA%zP1@#rhM%&IDC%dzwOe{jdrB3gGUmgsi{L|oBFUs!kO@NJiS z`GFOR8~MIY6C(dMi9Y#+jtqWd#QPFnIH0SN^R_(=xz=1|CW1e;5o3x`rn;NDU&3{jP zQrhm8U0*(T>Z)nN8U3p*qU-vkWy!y`xXGgEr58VSaGLh{ebe@BWN)dn%r(`u^~V-; zN$c5nPi>8?7~F=XFGRCHnfiJh6!BqM*v5~A8;=e3o?Eu1yUx)$v^`oXvP|y{4$-~o zm?xgnSU0!6rjk21H!;RF{i{dohZ=VK-VbRHq|~ivmu+P>;ooU5v#$-%e(Zw`17=s_ zPc!?KT`6}hDSh1q1WkVCv$r#;@{S$u<#RFcEYqu2(uJx7z9p0)nVhJr@P4s-{Db4>w*SN=_>}{SgOm zdyBsDJfbb_sb1T6v**EKymVsm4fpGJUba!AC>Qf-O4@#3W`4-O zeIhAxBmJst#qN~E3shyQR1nBU9Z#4UKZpbb_`f8B!_Zw=SMDluxUzfRBgx^lhSwUw`(3>Kzc(he*R<|k zx~4mOO~KdCh4J^L=fW zo4h|KKsm9C-eBL>@%=v0ea>ub)=tG;hqaJw67E%PXy27`N_iS8I$Sv^V^(w7uP16n z85LVH{?dG8@Wct&bvpLGZ=^J@c3D~e4#oVQckanSGzVR`niOx?H@~%TRk>eY{mM@1 zj5g!o+MVy?6(#?Hb~R(!=k$xtO%rHMFs|!&6n`?=_u#rstj&*nY{HJ-7rNeK%t6w8 znISD)xJZ~HcFNoZdp@L8I35JQQjL9jZ|fmnVbbs$HC+QowoP9zI-uzbYFd%s)EKwd zzOJ)b8hSmj`O7aVZDd)-FR@PT(ew+&IUg+Ew{82bEguBf_QzE{e5rqqi$IX(V$WYl Myi_jPvq)L+fA%C>E&u=k diff --git a/assets/palette/circles/yellow.png b/assets/palette/circles/yellow.png deleted file mode 100644 index 36b591de293aa6295d8808996a706687ad80af2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2255 zcmai0dstIt96o?xu;_^hp^`ivKug@t#x@3r4a5xrb;zB00XMb-I}CQ#&Y5f^DmNb$ zluH6>M4*zmGI+GdyrijV3Z-NuX!c+lDJCgASO|FO+d%MIf1GXK?|pyo_q%=H+4|_H zaA&7CogfHuj*O7Rg72A@=OqX5S+YHb4?&ZfiFg?;lP<)RWEM-IB2#geF-r$<2oi=E zbqb{hr{PpQozRMq+lRhEU_vEAlK4`#R42yOL`04rkIRXQSLSGxfhr^<*hy%_fIt>b zD_~<*rk28tBE+hTf!`K0iojM1tq~zIX*4V*^*GFD@mXvn*a;TuRcTnPWZsxFScwod zP3tfe&CbqdWpi1iJ{{!*1_q*RKh)2U2^dVuq@@)`rk3)uNQ`Poa7w8sbTmO~VT-0B zl{C;I1OYfaCXO4433V+smOdy1YC%vAi;X@`r-`%|&@IR_be)={NlH!X#uIpAi*fiF zM^L`!yBHO^=aHq-|E6bUJ&^`QhphmG7%S=%F+JLViZ|(SG!~~wgI zx?s_S5zmxKh%8)7f$EA7Zs1ek;unBoGLzKDfuX`h2*>JUsT>xWrAWt<2oXbF&u--MQI0uvzuKlHI}7C#pn?*nFyPD-jka9pe41QaP2N9)Nn zA`@U#Z1`L_GED5x3H0}8`msiL08PVyFOg=FC}_a)V}sdbbC{gKc#Z($`e7WNFPnq0 z*;ZvM8=M7|f>!(=-!jp#5O_$XSOh`Qq~2sTjgEO7{@&%58tlpPCSqt zbM?C>#sgbzrKVxs=4Gw?_X<+lG#M45odY#(L$%jU*!4j9#~3AW zP;=?QI(v8Kmt2n|+Q6IoN=$o~)_X~BYkG&-bFhieoMEt^?R?y8gW0WUW}*1|u=Cy0 zD~Ud?%U=(k@=u07^ok~KQT*MOZn`LBVaK*|PV>H(4z+(1&|h3xQsr7z{d)_(ptUXc zhw6Zep)JJXAbdrg>+}dn@IeW8?I*!&Pmc7TTU6THSbllrcLaJn*`3)I}_&Ac)~=d2FDqH69RTD~ObY#>{I3e@8Gp+BZ5a^_1@5cFLCuNz%jfLaQ#boBvaY}-Vpp1HklV@Zv}=5SdvpJ! zs66h?{QbSy?uu=-HY2nCRICqwh#;k(GtT*UFOO<(R0a7xN^RgvdULPlkB-%fRN^s=c%A017qOWxjG=+X>q z+@Lbooo*xhycLdK@}Q;1f<__+FSJw?)!)qR_&aXTNB7Ed1}_LxdWPS z(M=C~zbv=!@i3dVbRPR6beJ=Zcxy+@opM6~-5k6}vF7}z2|visKt+c)PyW^8M9JOL zm7&WjN|(KL;>ghH({R<9@L`7l@ydopC3*ERGjA>ZJ8C!M>JA*sh@W4p{PAp(m+f+M z=OU!|#=d)=KYc4`kr<%3tGq)!{Cf3 +

๐Ÿ“„ Docs

+

+ +
+ +

+ Documentation for Koy, the human-friendly data serialization language +

+ +  + +### ๐ŸŽ Koy Lang + +Koy is designed to be a minimal, simple and intuitive data serialization language; easy for you, your dog and your average 5 year-old. It has a small set of symbols, not too many rules and only one singular statement. Its lack of complexity makes it the perfect language for your project! easy to implement, debug and modularize. + +Go ahead and check out the [Conventions](https://github.com/Pocco81/koy-lang/blob/main/docs/conventions.md) to learn about the generalities of the language! if you end up liking it, consider checking out the [Specs sheet](https://github.com/Pocco81/koy-lang/blob/main/docs/specs.md) and the [Style Guide](https://github.com/Pocco81/koy-lang/blob/main/docs/style-guide.md). + +  + +### ๐Ÿ“š Cheat sheet + +
+ Cheat sheet for symbols +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Symbols Function Example
// Single-line comment + +``` +// hello world! +``` + +
/**/ Multi-line comment + +``` +/* + This is a multi-line comment and + you are watcing Disney channel! +*/ +``` + +
: Set a key, followed by its data type (optional) and then the value. To define a literal key put it between single quotes ('') + +``` +hello: "world!" + +// specifying data type +temperature:int 12.23 +``` + +
${} Call a variable + +``` +// simple usage +name: "Michael Theodor Mouse" +hello: "Good evening ${name}" + +// with arrays (using the `.` notation) +user: { + name: "Michael", + surnames: "Theodor Mouse" +} +hi: "Good morning ${user.name}" +``` + +
"" Define a normal string + +``` +hello: "world" +``` + +
""" """ Define a multi-line string + +``` +hello: """My name is + Michael Theodor Mouse, but + you can call me Peter. +""" +``` + +
'' Define a literal value + +``` +weird_path: 'pc/\fds!fd/\&24324%!@' +``` + +
[] Define an array + +``` +hosts: [ "omega", "alpha", "gama" ] +``` + +
{} Define an object + +``` +user: { + name: "Michael Theodor Mouse", + age: 92 +} +``` + +
import Import other .koy files + +``` +// single import +import "./directory/settings.koy" + +// multiple imports +import { + "./directory/user0.koy", + "./directory/user1.koy", + "./directory/user2.koy" +} +``` + +
<< Overwrite values from objects + +``` +user: { + name: "Michael Theodor Mouse", + age: 93 +} + +laptop: { + name: "Lenovo Thinkpad", + owner: ${user} << { + name: "Dominic Toretto" + } +} +``` + +
+ +
+
+ +
+ Cheat sheet for rules +  + +
+
+ +
+ Example .koy file using every feature +  + +
+
+ +& diff --git a/samples/python2.py b/samples/python2.py index 4f029c0..d0d5ef9 100644 --- a/samples/python2.py +++ b/samples/python2.py @@ -23,6 +23,7 @@ def get_vcs_settings(): except AttributeError: print(_("Error: Class {} not found").format(type)) continue + else instance = constructor() instance.verbose = verbose diff --git a/tests/wcag-compliance/.npmrc b/tests/wcag-compliance/.npmrc deleted file mode 100644 index 43c97e7..0000000 --- a/tests/wcag-compliance/.npmrc +++ /dev/null @@ -1 +0,0 @@ -package-lock=false diff --git a/tests/wcag-compliance/README.md b/tests/wcag-compliance/README.md deleted file mode 100644 index 9e1eb48..0000000 --- a/tests/wcag-compliance/README.md +++ /dev/null @@ -1,17 +0,0 @@ -### ๐Ÿ“„ Doc - -This program tests how compliant Catppuccin's variants are with WCAG standards. The test looks like this: ever color is put on top of the `base` color of the palette with a font size of 15; colors from `subtext0` up are expected to be acceptable. In the case of the dark palettes, they should meet Level AA requirements. As for the light palette, however, they must meet a contrast ratio greater than `2.314159265359`. - -#### Dev - -```sh -# clone this repo -npm install # fetch all dependencies -``` - -#### Testing - -```sh -npm start - -``` diff --git a/tests/wcag-compliance/index.js b/tests/wcag-compliance/index.js deleted file mode 100644 index 39f62c9..0000000 --- a/tests/wcag-compliance/index.js +++ /dev/null @@ -1,104 +0,0 @@ -import {variants, labels} from '@catppuccin/palette' -import ColorContrastChecker from "color-contrast-checker" -import chalk from "chalk" -var ccc = new ColorContrastChecker(); - -const FONT_SIZE = 15 -const LATTE_CONTRAST_RATIO = 2.314159265359 - - -function write(msg) { - process.stdout.write(msg) -} - -function get_tabs(str) { - if (str.length > 6) { - return '\t' - } - return '\t\t' -} - -function get_rgb(c) { - return parseInt(c, 16) || c -} - -function gets_rgb(c) { - return get_rgb(c) / 255 <= 0.03928 - ? get_rgb(c) / 255 / 12.92 - : Math.pow((get_rgb(c) / 255 + 0.055) / 1.055, 2.4) -} - -function get_luminance(hexColor) { - return ( - 0.2126 * gets_rgb(hexColor.substr(1, 2)) + - 0.7152 * gets_rgb(hexColor.substr(3, 2)) + - 0.0722 * gets_rgb(hexColor.substr(-2)) - ) -} - -function get_contrast(f, b) { - const L1 = get_luminance(f) - const L2 = get_luminance(b) - return (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05) -} - -function get_text_color(bg_color, preferred_white, preffered_black) { - let white = preferred_white ? preferred_white : '#ffffff' - let black = preffered_black ? preffered_black : '#000000' - const whiteContrast = get_contrast(bg_color, white) - const blackContrast = get_contrast(bg_color, black) - - return whiteContrast > blackContrast ? white : black -} - -function print_color(text, background, preferred_white, preffered_black) { - write( - chalk.bgHex(background)( - chalk.hex( - get_text_color(background, preferred_white, preffered_black) - )(text) - ) - ) -} - -function good_contrast(base, label_color, custom_ratio) { - - let good_contrast_ratio = ccc.isLevelAA(base, label_color, FONT_SIZE) - - if (custom_ratio) { - good_contrast_ratio = ccc.isLevelCustom(base, label_color, custom_ratio) - } - - if (good_contrast_ratio) { - return "โœ…" - } else { - return "โŒ" - } -} - -function get_symbol_space(str) { - if (str.length < 8) { - return '\t' + ' '.repeat(2) - } else if (str.length == 8) { - return ' ' - } - return ' ' -} - -write(chalk.hex('#fff')('|Latte|\t\t|Frappe|\t|Macchiato|\t|Moccha|\n\n')) -for (let label in labels) { - for (let palette in variants) { - let label_color = variants[palette][label]["hex"] - let base = variants[palette]["base"]["hex"] - var symbol_space = get_symbol_space(label) - let good_contrast_ratio = good_contrast(base, label_color) - - if (palette == "latte") { - good_contrast_ratio = good_contrast(base, label_color, LATTE_CONTRAST_RATIO) - } - - print_color(label, base, label_color, label_color) - write(symbol_space + good_contrast_ratio + "\t") - } - console.log('') -} diff --git a/tests/wcag-compliance/node_modules/.package-lock.json b/tests/wcag-compliance/node_modules/.package-lock.json deleted file mode 100644 index e5b9b5f..0000000 --- a/tests/wcag-compliance/node_modules/.package-lock.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "lockfileVersion": 2, - "requires": true, - "packages": { - "node_modules/@catppuccin/palette": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@catppuccin/palette/-/palette-0.1.2.tgz", - "integrity": "sha512-5Gt/goIgHAKjQtMqYhMJeoUWXj5d0HNai3gOPRzDVuz6V4ptTbnSxRyyooOY5OnYn/p0YLEtED/K0JvJPan9Aw==", - "dev": true - }, - "node_modules/chalk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", - "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/color-contrast-checker": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/color-contrast-checker/-/color-contrast-checker-2.1.0.tgz", - "integrity": "sha512-6Y0aIEej3pwZTVlicIqVzhO6T4izDWouaIXnYoDdTuFFAMQ9nnN0dgHNP9J94jRnH6asjPq1/wzUKxwoNbWtRQ==", - "dev": true - } - } -} diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/.eslintrc.js b/tests/wcag-compliance/node_modules/color-contrast-checker/.eslintrc.js deleted file mode 100644 index beb8ffa..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/.eslintrc.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - "env": { - "browser": true, - "node": true, - "mocha": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 6 - }, - "rules": { - "indent": [ - "error", - 4 - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "double" - ], - "semi": [ - "error", - "always" - ] - } -}; \ No newline at end of file diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/.github/workflows/npmpublish.yml b/tests/wcag-compliance/node_modules/color-contrast-checker/.github/workflows/npmpublish.yml deleted file mode 100644 index 5c98e5b..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/.github/workflows/npmpublish.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Node.js Package - -on: - release: - types: [created] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - run: npm ci - - run: npm test - - publish-npm: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: 12 - registry-url: https://registry.npmjs.org/ - - run: npm ci - - run: npm publish - env: - NODE_AUTH_TOKEN: ${{secrets.npm_token}} - - publish-gpr: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: 12 - registry-url: https://npm.pkg.github.com/ - scope: '@Qambar' - - run: npm ci - - run: npm publish - env: - NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/LICENSE b/tests/wcag-compliance/node_modules/color-contrast-checker/LICENSE deleted file mode 100644 index 055302e..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2019 BBC - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/README.md b/tests/wcag-compliance/node_modules/color-contrast-checker/README.md deleted file mode 100644 index a08b648..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/README.md +++ /dev/null @@ -1,152 +0,0 @@ -# Color Contast Checker - -An accessibility checker tool for validating the color contrast based on WCAG 2.0 and WCAG 2.1 standard. - -The formula (L1/L2) for contrast is based on [ISO-9241-3] and [ANSI-HFES-100-1988] standards as described here : - -http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef -http://www.w3.org/TR/WCAG20/#contrast-ratiodef -https://www.w3.org/TR/WCAG21/#contrast-minimum - -It also supports shorthand color codes e.g #FFF or #000 etc. - -https://www.w3.org/TR/2001/WD-css3-color-20010305#colorunits - -Installation: ------------- - -``` -npm install color-contrast-checker -``` -or using package.json - -``` -{ - "name": "my-app", - .. - "devDependencies": { - .. - "color-contrast-checker": "2.1.0" - } -} -``` -Then do `npm install` - -Usage: ------ - -To check specific WCAG levels -``` -var ccc = new ColorContrastChecker(); - -var color1 = "#FFFFFF"; -var color2 = "#000000; - -if (ccc.isLevelAA(color1, color2, 14)) { - alert("Valid Level AA"); -} else { - alert("Invalid Contrast"); -} - -``` - -To check custom ratios -``` -var ccc = new ColorContrastChecker(); - -var color1 = "#FFFFFF"; -var color2 = "#000000; -var customRatio = 5.7; - -// No need for font size, now that we are using a custom ratio. -// This is because we are no longer checking against WCAG requirements. -if (ccc.isLevelCustom(color1, color2, customRatio)) { - alert("Above given ratio"); -} else { - alert("Invalid Contrast"); -} - -``` - -Advanced Usage: --------------- - -You can pass pairs and get results: - - -``` - var pairs = [ - { - 'colorA': '#000000', - 'colorB': '#000000', // All should fail - 'fontSize': 14 - }, - { - 'colorA': '#000000', - 'colorB': '#FFFFFF', //All should pass - 'fontSize': 14 - }, - { - 'colorA': '#000000', - 'colorB': '#848484', //AAA should fail - 'fontSize': 14 - }, - { - 'colorA': '#000000', - 'colorB': '#848484', //All should pass (because of font) - 'fontSize': 19 - }, - { - 'colorA': '#000000', - 'colorB': '#757575', //AA should pass AAA should fail - 'fontSize': 14 - }, - { - 'colorA': '#000000', - 'colorB': '#656565', //All should fail - 'fontSize': 14 - } - ]; - - var results = ccc.checkPairs(pairs); - -``` - -The result will look like this: - -``` -[ - { - 'WCAG_AA' : false, - 'WCAG_AAA': false - }, - { - 'WCAG_AA' : true, - 'WCAG_AAA': true - }, - { - 'WCAG_AA' : true, - 'WCAG_AAA': false - }, - { - 'WCAG_AA' : true, - 'WCAG_AAA': true - }, - { - 'WCAG_AA' : true, - 'WCAG_AAA': false - }, - { - 'WCAG_AA' : false, - 'WCAG_AAA': false - } -] -``` - -## Tests - - `npm test` - -## Contributing - -In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code. diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/example/index.html b/tests/wcag-compliance/node_modules/color-contrast-checker/example/index.html deleted file mode 100644 index 4218da1..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/example/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - Example - Color Contrast Checker - - - -

Color Contrast Checker

-

Try changing the values in the fields below

- - - -
- - - -
- - - -
- -
- : - - -
- : - - - - - - - - \ No newline at end of file diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/package.json b/tests/wcag-compliance/node_modules/color-contrast-checker/package.json deleted file mode 100644 index 5d3efd2..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "color-contrast-checker", - "version": "2.1.0", - "description": "This is an accessibility validator based on WCAG 2.0 standard for checking the color contrast.", - "main": "src/color-contrast-checker.js", - "directories": { - "example": "example" - }, - "scripts": { - "test": "mocha --reporter spec", - "lint": "eslint test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Qambar/color-contrast-checker.git" - }, - "keywords": [ - "wcag", - "wcag-aa", - "color", - "contrast", - "verifier", - "accessibility", - "standard" - ], - "author": { - "name": "Qambar Raza", - "email": "qambar.raza@bbc.co.uk", - "url": "http://www.bbc.co.uk" - }, - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/Qambar/color-contrast-checker/issues" - }, - "homepage": "https://github.com/Qambar/color-contrast-checker#readme", - "gitHead": "45b65d45fc281ba90529183ff412299a7c1379d0", - "_id": "color-contrast-checker@1.2.0", - "_shasum": "a43bd41523775450e6f31ce38e64b44312157325", - "_from": "color-contrast-checker@1.2.0", - "_npmVersion": "2.13.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "qambar", - "email": "qambar.raza@bbc.co.uk" - }, - "dist": { - "shasum": "a43bd41523775450e6f31ce38e64b44312157325", - "tarball": "http://registry.npmjs.org/color-contrast-checker/-/color-contrast-checker-1.2.0.tgz" - }, - "maintainers": [ - { - "name": "qambar", - "email": "qambar.raza@bbc.co.uk" - } - ], - "_resolved": "http://registry.npmjs.org/color-contrast-checker/-/color-contrast-checker-1.2.0.tgz", - "devDependencies": { - "chai": "^4.2.0", - "eslint": "^5.12.1", - "mocha": "^5.2.0" - } -} diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/src/color-contrast-checker.js b/tests/wcag-compliance/node_modules/color-contrast-checker/src/color-contrast-checker.js deleted file mode 100644 index d4075b4..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/src/color-contrast-checker.js +++ /dev/null @@ -1,241 +0,0 @@ -"use strict"; - -/** - * Color Contast Checker - * An accessibility checker tool for validating the color contrast based on WCAG 2.0 standard. - * var ccc = new ColorContrastChecker(); - - * var color1 = "#FFFFFF"; - * var color2 = "#000000; - - * if (ccc.isLevelAA(color1, color2, 14)) { - * alert("Valid Level AA"); - * } else { - * alert("Invalid Contrast"); - * } - */ - -function ColorContrastChecker() {}; - -module.exports = ColorContrastChecker; - -ColorContrastChecker.prototype = { - fontSize: 14, - rgbClass : { - toString: function() { - return ""; - } - }, - isValidSixDigitColorCode: function (hex){ - var regSixDigitColorcode = /^(#)?([0-9a-fA-F]{6})?$/; - return regSixDigitColorcode.test(hex); - }, - isValidThreeDigitColorCode: function (hex){ - var regThreeDigitColorcode = /^(#)?([0-9a-fA-F]{3})?$/; - return regThreeDigitColorcode.test(hex); - }, - isValidColorCode : function (hex){ - return this.isValidSixDigitColorCode(hex) || this.isValidThreeDigitColorCode(hex); - }, - isValidRatio : function (ratio){ - return (typeof ratio === "number"); - }, - convertColorToSixDigit: function (hex) { - return "#" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3]; - }, - hexToLuminance: function (color) { - if (!this.isValidColorCode(color)) { - throw new Error("Invalid Color :" + color); - } - - if (this.isValidThreeDigitColorCode(color)) { - color = this.convertColorToSixDigit(color); - } - - color = this.getRGBFromHex(color); - - var LRGB = this.calculateLRGB(color); - - return this.calculateLuminance(LRGB); - }, - check: function (colorA, colorB, fontSize, customRatio) { - if (typeof fontSize !== "undefined") { - this.fontSize = fontSize; - } - - if(!colorA || !colorB) { - return false; - } - - var l1 = this.hexToLuminance(colorA); /* higher value */ - var l2 = this.hexToLuminance(colorB); /* lower value */ - var contrastRatio = this.getContrastRatio(l1, l2); - - if (typeof customRatio !== "undefined") { - if (!this.isValidRatio(customRatio)) { - return false; - } - return this.verifyCustomContrastRatio(contrastRatio, customRatio); - } else { - return this.verifyContrastRatio(contrastRatio); - } - }, - checkPairs: function (pairs, customRatio) { - var results = []; - - for (var i in pairs) { - var pair = pairs[i]; - if (typeof pair.fontSize !== "undefined") { - results.push( - this.check( - pair.colorA, - pair.colorB, - pair.fontSize, - customRatio - ) - ); - } else { - results.push( - this.check( - pair.colorA, - pair.colorB, - void 0, - customRatio - ) - ); - } - } - return results; - }, - calculateLuminance: function(lRGB) { - return (0.2126 * lRGB.r) + (0.7152 * lRGB.g) + (0.0722 * lRGB.b); - }, - isLevelAA : function(colorA, colorB, fontSize) { - var result = this.check(colorA, colorB, fontSize); - return result.WCAG_AA; - }, - isLevelAAA : function(colorA, colorB, fontSize) { - var result = this.check(colorA, colorB, fontSize); - return result.WCAG_AAA; - }, - isLevelCustom : function(colorA, colorB, ratio) { - var result = this.check(colorA, colorB, void 0, ratio); - return result.customRatio; - }, - getRGBFromHex : function(color) { - - var rgb = Object.create(this.rgbClass), - rVal, - gVal, - bVal; - - if (typeof color !== "string") { - throw new Error("must use string"); - } - - rVal = parseInt(color.slice(1, 3), 16); - gVal = parseInt(color.slice(3, 5), 16); - bVal = parseInt(color.slice(5, 7), 16); - - rgb.r = rVal; - rgb.g = gVal; - rgb.b = bVal; - - return rgb; - }, - calculateSRGB : function(rgb) { - var sRGB = Object.create(this.rgbClass), - key; - - for (key in rgb) { - if (rgb.hasOwnProperty(key)) { - sRGB[key] = parseFloat((rgb[key] / 255), 10); - } - } - - return sRGB; - }, - calculateLRGB: function (rgb) { - var sRGB = this.calculateSRGB(rgb); - var lRGB = Object.create(this.rgbClass), - key, - val = 0; - - for (key in sRGB) { - if (sRGB.hasOwnProperty(key)) { - val = parseFloat(sRGB[key], 10); - if (val <= 0.03928) { - lRGB[key] = (val / 12.92); - } else { - lRGB[key] = Math.pow(((val + 0.055) / 1.055), 2.4); - } - } - } - - return lRGB; - }, - getContrastRatio : function(lumA, lumB) { - var ratio, - lighter, - darker; - - if (lumA >= lumB) { - lighter = lumA; - darker = lumB; - } else { - lighter = lumB; - darker = lumA; - } - - ratio = (lighter + 0.05) / (darker + 0.05); - - return ratio; - }, - verifyContrastRatio : function(ratio) { - - - var resultsClass = { - toString: function() { - return "< WCAG-AA: " + ((this.WCAG_AA) ? "pass" : "fail") + - " WCAG-AAA: " + ((this.WCAG_AAA) ? "pass" : "fail") + - " >"; - } - }; - var WCAG_REQ_RATIO_AA_LG = 3.0, - WCAG_REQ_RATIO_AA_SM = 4.5, - WCAG_REQ_RATIO_AAA_LG = 4.5, - WCAG_REQ_RATIO_AAA_SM = 7.0, - WCAG_FONT_CUTOFF = 18; - - var results = Object.create(resultsClass), - fontSize = this.fontSize || 14; - - if (fontSize >= WCAG_FONT_CUTOFF) { - results.WCAG_AA = (ratio >= WCAG_REQ_RATIO_AA_LG); - results.WCAG_AAA = (ratio >= WCAG_REQ_RATIO_AAA_LG); - } else { - results.WCAG_AA = (ratio >= WCAG_REQ_RATIO_AA_SM); - results.WCAG_AAA = (ratio >= WCAG_REQ_RATIO_AAA_SM); - } - - return results; - }, - verifyCustomContrastRatio : function(inputRatio, checkRatio) { - - var resultsClass = { - toString: function() { - return "< Custom Ratio: " + ((this.customRatio) ? "pass" : "fail") + - " >"; - } - }; - - var results = Object.create(resultsClass); - - results.customRatio = (inputRatio >= checkRatio); - return results; - } - -}; diff --git a/tests/wcag-compliance/node_modules/color-contrast-checker/test/color-contrast-checker.js b/tests/wcag-compliance/node_modules/color-contrast-checker/test/color-contrast-checker.js deleted file mode 100644 index aedef22..0000000 --- a/tests/wcag-compliance/node_modules/color-contrast-checker/test/color-contrast-checker.js +++ /dev/null @@ -1,342 +0,0 @@ -"use strict"; - -var expect = require("chai").expect; -var ColorContrastChecker = require("../src/color-contrast-checker"); -var ccc = new ColorContrastChecker(); - -describe("Three Digit Color Code Lengths", function() { - it("should accept 3 digit color code", function() { - var result = ccc.isValidThreeDigitColorCode("#FFF"); - expect(result).to.be.true; - }); - - it("should reject 2 digit color code", function() { - var result = ccc.isValidThreeDigitColorCode("#FF"); - expect(result).to.be.false; - }); - - it("should reject 4 digit color code", function() { - var result = ccc.isValidThreeDigitColorCode("#FFFF"); - expect(result).to.be.false; - }); - - it("should reject 6 digit color code", function() { - var result = ccc.isValidThreeDigitColorCode("#FFFFFF"); - expect(result).to.be.false; - }); -}); - -describe("Six Digit Color Code Lengths", function() { - it("should accept 6 digit color code", function() { - var result = ccc.isValidSixDigitColorCode("#FFFFFF"); - expect(result).to.be.true; - }); - - it("should reject 5 digit color code", function() { - var result = ccc.isValidSixDigitColorCode("#FFFFF"); - expect(result).to.be.false; - }); - - it("should reject 7 digit color code", function() { - var result = ccc.isValidSixDigitColorCode("#FFFFFFF"); - expect(result).to.be.false; - }); - - it("should reject 3 digit color code", function() { - var result = ccc.isValidSixDigitColorCode("#FFF"); - expect(result).to.be.false; - }); -}); - -describe("Supported Color Code Lengths", function() { - it("should accept 3 digit color code", function() { - var result = ccc.isValidColorCode("#FFF"); - expect(result).to.be.true; - }); - - it("should accept 6 digit color code", function() { - var result = ccc.isValidColorCode("#FFFFFF"); - expect(result).to.be.true; - }); - - it("should reject 7 digit color code", function() { - var result = ccc.isValidColorCode("#FFFFFFF"); - expect(result).to.be.false; - }); -}); - -describe("Supported Custom Ratio Inputs", function() { - it("should accept an integer", function() { - var result = ccc.isValidRatio(1); - expect(result).to.be.true; - }); - - it("should accept a float", function() { - var result = ccc.isValidRatio(3.2); - expect(result).to.be.true; - }); - - it("should reject a string", function() { - var result = ccc.isValidRatio("3.2"); - expect(result).to.be.false; - }); -}); - -describe("Convert Color from 3 digit to 6 digit", function() { - it("should convert 3 digit color to 6 digit", function() { - var result = ccc.convertColorToSixDigit("#FFF"); - expect(result).to.equal("#FFFFFF"); - }); -}); - -describe("Convert Hex to Luminance", function() { - it("should convert 3 digit color luminance value", function() { - var result = ccc.hexToLuminance("#FFF"); - expect(result).to.equal(1); - }); - - it("should convert 6 digit color luminance value", function() { - var result = ccc.hexToLuminance("#FFFFFF"); - expect(result).to.equal(1); - }); - - it("should convert blue color luminance value", function() { - var result = ccc.hexToLuminance("#0000FF"); - expect(result).to.equal(0.0722); - }); - - it("should convert yellow color luminance value", function() { - var result = ccc.hexToLuminance("#ffff00"); - expect(result).to.equal(0.9278); - }); -}); - -describe("Basic Validation for LevelAA", function() { - it("should return true when contrast is valid for three digit color codes", function() { - var result = ccc.isLevelAA("#FFF", "#000", 14); - expect(result).to.be.true; - }); - - it("should return true when contrast is valid", function() { - var result = ccc.isLevelAA("#FFFFFF", "#000000", 14); - expect(result).to.be.true; - }); - - it("should return false when contrast is invalid", function() { - var result = ccc.isLevelAA("#000000", "#000000", 14); - expect(result).to.be.false; - }); -}); - -describe("Basic Validation for LevelAAA", function() { - it("should return true when contrast is valid for three digit color codes", function() { - var result = ccc.isLevelAA("#FFF", "#000", 14); - expect(result).to.be.true; - }); - - it("should return true when contrast is valid", function() { - var result = ccc.isLevelAA("#FFFFFF", "#000000", 14); - expect(result).to.be.true; - }); - - it("should return false when contrast is invalid", function() { - var result = ccc.isLevelAA("#000000", "#000000", 14); - expect(result).to.be.false; - }); -}); - -describe("Basic Validation for Custom Ratio", function() { - it("should return true when contrast is valid for three digit color codes", function() { - var result = ccc.isLevelCustom("#FFF", "#000", 5); - expect(result).to.be.true; - }); - - it("should return true when contrast is valid", function() { - var result = ccc.isLevelCustom("#FFFFFF", "#000000", 5); - expect(result).to.be.true; - }); - - it("should return false when contrast is invalid", function() { - var result = ccc.isLevelCustom("#000000", "#000000", 5); - expect(result).to.be.false; - }); -}); - -describe("Six Digit Pair Validation for LevelAAA", function() { - var pairs = [ - { - "colorA": "#000000", - "colorB": "#000000", // All should fail - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#FFFFFF", //All should pass - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#998899", //AAA should fail - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#998899", //All should pass (because of font) - "fontSize": 19 - }, - { - "colorA": "#000000", - "colorB": "#887788", //AA should pass AAA should fail - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#656565", //All should fail - "fontSize": 14 - } - ]; - - - var expectedResults = [ - { WCAG_AA: false, WCAG_AAA: false }, - { WCAG_AA: true, WCAG_AAA: true }, - { WCAG_AA: true, WCAG_AAA: false }, - { WCAG_AA: true, WCAG_AAA: true }, - { WCAG_AA: true, WCAG_AAA: false }, - { WCAG_AA: false, WCAG_AAA: false } ]; - - function objectsAreSame(x, y) { - var objectsAreSame = true; - x.forEach((element, index) => { - if (element.WCAG_AA !== y[index].WCAG_AA) { - objectsAreSame = false; - } - if (element.WCAG_AAA !== y[index].WCAG_AAA) { - objectsAreSame = false; - } - }); - return objectsAreSame; - } - - it("should return the expectedResults for checkPairs", function() { - var results = ccc.checkPairs(pairs); - expect(results).to.be.an("array"); - expect(results).to.have.lengthOf(6); - expect(objectsAreSame(results, expectedResults)).to.be.true; - }); -}); - -describe("Three Digit Pair Validation for LevelAAA", function() { - var pairs = [ - { - "colorA": "#000", - "colorB": "#000", // All should fail - "fontSize": 14 - }, - { - "colorA": "#000", - "colorB": "#FFF", //All should pass - "fontSize": 14 - }, - { - "colorA": "#000", - "colorB": "#989", //AAA should fail - "fontSize": 14 - }, - { - "colorA": "#000", - "colorB": "#989", //All should pass (because of font) - "fontSize": 19 - }, - { - "colorA": "#000", - "colorB": "#878", //AA should pass AAA should fail - "fontSize": 14 - }, - { - "colorA": "#000", - "colorB": "#656", //All should fail - "fontSize": 14 - } - ]; - - - var expectedResults = [ - { WCAG_AA: false, WCAG_AAA: false }, - { WCAG_AA: true, WCAG_AAA: true }, - { WCAG_AA: true, WCAG_AAA: false }, - { WCAG_AA: true, WCAG_AAA: true }, - { WCAG_AA: true, WCAG_AAA: false }, - { WCAG_AA: false, WCAG_AAA: false } ]; - - function objectsAreSame(x, y) { - var objectsAreSame = true; - x.forEach((element, index) => { - if (element.WCAG_AA !== y[index].WCAG_AA) { - objectsAreSame = false; - } - if (element.WCAG_AAA !== y[index].WCAG_AAA) { - objectsAreSame = false; - } - }); - return objectsAreSame; - } - it("should return the expectedResults for checkPairs", function() { - var results = ccc.checkPairs(pairs); - expect(results).to.be.an("array"); - expect(results).to.have.lengthOf(6); - expect(objectsAreSame(results, expectedResults)).to.be.true; - }); -}); - -describe("Six Digit Pair Validation for Custom Ratio", function() { - var pairs = [ - { - "colorA": "#000000", - "colorB": "#000000", // This should fail - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#FFFFFF", // This should pass - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#998899", // This should pass - "fontSize": 14 - }, - { - "colorA": "#000000", - "colorB": "#656565", // This should fail - "fontSize": 14 - } - ]; - - - var expectedResults = [ - { customRatio: false }, - { customRatio: true }, - { customRatio: true }, - { customRatio: false } ]; - - function objectsAreSame(x, y) { - var objectsAreSame = true; - x.forEach((element, index) => { - if (element.WCAG_AA !== y[index].WCAG_AA) { - objectsAreSame = false; - } - if (element.WCAG_AAA !== y[index].WCAG_AAA) { - objectsAreSame = false; - } - }); - return objectsAreSame; - } - - it("should return the expectedResults for checkPairs", function() { - var results = ccc.checkPairs(pairs, 5.6); - expect(results).to.be.an("array"); - expect(results).to.have.lengthOf(4); - expect(objectsAreSame(results, expectedResults)).to.be.true; - }); -}); diff --git a/tests/wcag-compliance/package.json b/tests/wcag-compliance/package.json deleted file mode 100644 index 4212881..0000000 --- a/tests/wcag-compliance/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "wcag-compliance", - "version": "0.1.0", - "description": "WCAG compliance checker", - "main": "index.js", - "type": "module", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node index.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/catppuccin/catppuccin.git#dev" - }, - "keywords": [ - "wcag-compliance", - "catppuccin", - "test" - ], - "author": "Catppuccin Org", - "license": "MIT", - "bugs": { - "url": "https://github.com/catppuccin/catppuccin/issues" - }, - "homepage": "https://github.com/catppuccin/catppuccin/tree/dev#readme", - "devDependencies": { - "@catppuccin/palette": "^0.1.0", - "chalk": "^5.0.1", - "color-contrast-checker": "^2.1.0" - } -}
+ Specs + ยท + Conventions + ยท + Cheat-sheets + ยท + Style-guide +