From 71366dda60b0365410cae5a6db2dfe2ba9dcaacd Mon Sep 17 00:00:00 2001 From: Colm Tuite Date: Fri, 11 Sep 2020 07:34:33 +0100 Subject: [PATCH] Progress --- .../border.png | Bin 14392 -> 0 bytes .../gray100.png | Bin 7010 -> 0 bytes .../hero.png | Bin 10898 -> 0 bytes .../index.mdx.draft | 397 ---------- .../tree.png | Bin 27340 -> 0 bytes .../backgrounds.png | Bin .../border-dark.png | Bin .../border-hover.png | Bin 0 -> 18104 bytes .../border.png | Bin 0 -> 6645 bytes .../brand-custom.png | Bin 0 -> 4181 bytes .../brand.png | Bin 0 -> 7628 bytes .../contrast.png | Bin 0 -> 13686 bytes .../gray100.png | Bin 0 -> 12050 bytes .../gray200.png | Bin .../grays.png | Bin .../hero.png | Bin 0 -> 9694 bytes .../image.jpg | Bin .../index.mdx | 740 ++++++++++++++++++ .../line-test.png | Bin 0 -> 3376 bytes .../line.png | Bin 0 -> 25140 bytes .../notifications.png | Bin .../tree.png | Bin 0 -> 25799 bytes 22 files changed, 740 insertions(+), 397 deletions(-) delete mode 100644 pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/border.png delete mode 100644 pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/gray100.png delete mode 100644 pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/hero.png delete mode 100644 pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/index.mdx.draft delete mode 100644 pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/tree.png rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/backgrounds.png (100%) rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/border-dark.png (100%) create mode 100755 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border-hover.png create mode 100755 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border.png create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/brand-custom.png create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/brand.png create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/contrast.png create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/gray100.png rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/gray200.png (100%) rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/grays.png (100%) create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/hero.png rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/image.jpg (100%) create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/index.mdx create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line-test.png create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line.png rename pages/blog/{designing-a-color-palette-with-dark-mode-using-stitches => designing-a-color-system-with-dark-mode-using-stitches}/notifications.png (100%) create mode 100644 pages/blog/designing-a-color-system-with-dark-mode-using-stitches/tree.png diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/border.png b/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/border.png deleted file mode 100644 index e7f1412f00b2258f23dab983f2d702cf9131c4f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14392 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 diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/hero.png b/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/hero.png deleted file mode 100644 index 998754e34d14df3c45421ee69ee6f1357c7a5e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10898 zcmeHNQA|@;7(T~Vii`sKAO%y0Ic0aU$CTf z;|zKTPn8z!0-bi=6uMz6#QVem+-&$FBwGo*gJMbU~C`BB7XpN^u~*x4w;FJy?o z97g&9w++L?a$G5Vg+jsVxRpP!ol*@b)48T;uev6=@5zXZ)$u-<+6)~|-PxT~*YMyJ z=ryPsIMVr_76?+k6)O_z87v@JKmguqnI>5L=|Y)M(UM@YH!O^$5aw2&a2?^C|Hlc2 zvUHYhR9<4%Ur3@}&UC}ZBLZP6VNR7i;z%{xY9W=k77se8CU{t68WYdQ5s}6^wM07g z$yPlrYcU|jx;((05gGe}Ris>^(8ZgkUzvSelRZ2(2|PS6g32?NF9~x^xsFeD=_lHt z<0dw9baAi|VOn%K8WEgQ(4}9>V8#@9*?xl~b&rh|v8FY%^KG!vD*UJ><;i|Nnxv|I zCrPz2y@i&mxpovq=>nr*D8Y>EVWk)cOsF_`17*}{@dy1+8z>GsX^NL)tU$bf9{va& z0q?!Lp!dj`g}2D(8FeC*JmpA`I{7Cxq?(_tJn;NrmZ~Muq z0*%su7brsnw!aJwOKg9`$Hwg^+Uo!Oy1rbzzG+W!@k3oXyKv(@qUuLYPy4s=S3ZPS z2@dZ)y<2M;bVN_F{_hRi{QDafskZZjF#N)e0xM%{f4oWQpBn+5zt7gD5C+?%jFe{{ zZ{_UpzMc7*l$-qxc*?>ejt-)+4Wip%DQyrwL8lr1Y*(lowy6YEUUQ9^#q(FseM5B( z*+8~7e`j2WI;_p1@@{lKOV&Q{PSlbUUR@}Sa0Ug|)s8M4Se^fQKuFhX0~b%5c9s>S00ns#{dHW;pea>)VX<3roJ=U)Z^e G`1M~KDAT?G diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/index.mdx.draft b/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/index.mdx.draft deleted file mode 100644 index 2072e32..0000000 --- a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/index.mdx.draft +++ /dev/null @@ -1,397 +0,0 @@ ---- -title: Designing a color palette with dark mode using Stitches -publishedAt: '2020-09-07' -description: The modern CSS-in-JS library with near-zero runtime. -by: colm ---- - -import { Box } from '@modulz/design-system'; -import image from './image.jpg'; -import hero from './hero.png'; -import gray100 from './gray100.png'; -import gray200 from './gray200.png'; -import grays from './grays.png'; -import border from './border.png'; -import borderDark from './border-dark.png'; -import tree from './tree.png'; -import notifications from './notifications.png'; - - - -Stitches is a new [CSS-in-JS library](/) which has [design tokens](/docs/tokens) and [theming](/docs/theming) built-in. This makes it super easy to set-up a color palette with dark mode. - -### Set up - -The first step is to install [Stitches](/docs/installation), create our `stitches.config.js` file, and set up our theme exports. - -```js -// stitches.config.js - -const theme = { - colors: { - // default colors go here - }, -}; - -const darkTheme = { - // dark mode colors go here -} as const; - -export const { styled, css } = createStyled({ - tokens: theme, -}); - -export const darkThemeClass = css.theme(darkTheme); -``` - -### Steps - -Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. - -More steps will provide more flexibility. However, more steps can also create more confusion amongst both your product team and your users. - -Somewhat counterintuitvely, a color palette with 9 steps is actually easier to design. - -For the sake of simplicity, we're going to design a 9-step color scale today. - -### Categories - -- Brand -- Contrast -- Gray -- Semantic - -#### Performance - -Built for the modern age, it features a near-zero runtime, server-side rendering, multi-variant support, and a best-in-class developer experience. - -{' '} - - - A video demonstrating the new layout tools in Modulz. - - -#### Steps 1–4: Backgrounds - -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - -A video demonstrating the new layout tools in Modulz. - -Another common use case would be emails, messages, or notifications. In the example below, we use `200` for "highlighted/unread", `300` for "hovered", and `400` for "active/selected". - -A video demonstrating the new layout tools in Modulz. - -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - -A video demonstrating the new layout tools in Modulz. - -#### Steps 5: Lines -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - - - A video demonstrating the new layout tools in Modulz. - - -#### Steps 6–7: Borders -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - - - A video demonstrating the new layout tools in Modulz. - - -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - - - A video demonstrating the new layout tools in Modulz. - - -#### Step 8: Background -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - - - A video demonstrating the new layout tools in Modulz. - - -Here is our full gray on both `gray100` and `gray200` backgrounds. - - - An image doing this that or th eother. - - -#### Step 9: Text -We need a gray for very subtle backgrounds. It might be a sidebar or a code block. - - - A video demonstrating the new layout tools in Modulz. - - -Here is our full gray on both `gray100` and `gray200` backgrounds. - - - An image doing this that or th eother. - - -```js -$gray100: 'hsl(206,22%,99%)', -$gray200: 'hsl(208,12%,96%)', -$gray300: 'hsl(208,11%,93%)', -``` - -#### Level 3: lines + dividers - -Almost every app - - - A video demonstrating the new layout tools in Modulz. - - -#### Utils - -Built for the modern age, it features a near-zero runtime, server-side rendering, multi-variant support, and a best-in-class developer experience. - -600 text must pass accessibility on 200 background -300 line must be visisble on 200 background -Subtle text should pass 4.5 200 background - -```js -$gray100: 'hsl(208,100%,99%)', // Subtle backgrounds -$gray200: 'hsl(208,100%,97%)', // Light backgrounds -$gray200: 'hsl(208,100%,94%)', // Light backgrounds -$gray300: 'hsl(216,11%,92%)', // Lines + hovered light backgrounds -$gray400: 'hsl(216,10%,84%)', // Borders -$gray400: 'hsl(216,10%,84%)', // Border j -$gray500: 'hsl(216,90%,52%)', // Backgrounds -$gray600: 'hsl(216,10%,44%)', // Subtle text -``` - -Background (Subtle) -Background (Light / Highlighted / Disabled) -Background (Hover) -Background (Pressed) -Line -Border -Border (Hover) -Background -Text - -#### Interoperability - -Built for the modern age, it features a near-zero runtime, server-side rendering, multi-variant support, and a best-in-class developer experience. - -```js -export const theme = { - colors: { - $gray100: 'hsl(206,22%,99%)', - $gray200: 'hsl(206,12%,97%)', - $gray300: 'hsl(206,11%,92%)', - $gray400: 'hsl(206,10%,84%)', - $gray500: 'hsl(206,10%,76%)', - $gray600: 'hsl(206,10%,44%)', - }, -}; - -export const darkTheme = { - $hiContrast: 'hsl(206,2%,93%)', - $loContrast: 'hsl(206,8%,8%)', - - $gray100: 'hsl(206,8%,12%)', - $gray200: 'hsl(206,7%,14%)', - $gray300: 'hsl(206,7%,15%)', - $gray400: 'hsl(206,7%,24%)', - $gray500: 'hsl(206,7%,30%)', - $gray600: 'hsl(206,5%,53%)', -} as const; - -export const { styled, css } = createStyled({ - tokens: theme, -}); - -export const darkThemeClass = css.theme(darkTheme); -``` - -### Naming - -Unexpectedly, color naming conventions can be quite controversial. - -#### Abstract naming - -Unexpectedly, color naming conventions can be quite controversial. - -```js -$africanSunset: 'hsl(206,22%,99%)', -$gray200: 'hsl(206,12%,97%)', -$gray300: 'hsl(206,11%,92%)', -``` - -#### Semantic naming - -This is problematic because not all colors in any given color group are intended to convey the same semantic, whether it be positivity, negativity, security, danger or otherwise. -In some contexts a color group it might mean "selected" - -```js -$positive: 'hsl(206,22%,99%)', -$negative: 'hsl(206,12%,97%)', -$warning: 'hsl(206,11%,92%)', -``` - -### All together now - -Finally, here is our finished color palette with both light and dark modes. - -```js - -// stitches.config.js - -const theme = { - colors: { - $hiContrast: 'hsl(206,10%,5%)', - $loContrast: 'white', - - $gray100: 'hsl(206,22%,99%)', - $gray200: 'hsl(206,12%,97%)', - $gray300: 'hsl(206,12%,94%)', - $gray400: 'hsl(206,10%,91%)', - $gray400: 'hsl(208,10%,90%)', - $gray500: 'hsl(208,10%,84%)', - $gray600: 'hsl(208,10%,76%)', - $gray700: 'hsl(208,10%,44%)', - $gray800: 'hsl(208,10%,44%)', - $gray900: 'hsl(208,10%,44%)', - - $blue100: 'hsl(206,100%,99%)', - $blue200: 'hsl(206,100%,97%)', - $blue300: 'hsl(206,100%,92%)', - $blue400: 'hsl(206,100%,84%)', - $blue500: 'hsl(206,100%,50%)', - $blue600: 'hsl(212,100%,47%)', - - $green100: 'hsl(152,75%,98%)', - $green200: 'hsl(152,72%,95%)', - $green300: 'hsl(150,60%,86%)', - $green400: 'hsl(150,60%,78%)', - $green500: 'hsl(148,60%,60%)', - $green600: 'hsl(148,58%,32%)', - - $red100: 'hsl(346,100%,98%)', - $red200: 'hsl(346,94%,97%)', - $red300: 'hsl(348,90%,91%)', - $red400: 'hsl(350,90%,85%)', - $red500: 'hsl(352,100%,62%)', - $red600: 'hsl(352,79%,48%)', - - $yellow100: 'hsl(42,100%,98%)', - $yellow200: 'hsl(50,98%,95%)', - $yellow300: 'hsl(52,92%,86%)', - $yellow400: 'hsl(52,92%,74%)', - $yellow500: 'hsl(52,100%,49%)', - $yellow600: 'hsl(42,54%,36%)', - }, -}; - -const darkTheme = { - $hiContrast: 'hsl(206,2%,93%)', - $loContrast: 'hsl(206,8%,8%)', - - $canvas: 'hsl(0,0%,15%)', - - $gray100: 'hsl(206,8%,12%)', - $gray200: 'hsl(206,7%,14%)', - $gray300: 'hsl(206,7%,15%)', - $gray400: 'hsl(206,7%,24%)', - $gray500: 'hsl(206,7%,30%)', - $gray600: 'hsl(206,5%,53%)', - - $blue100: 'hsl(212,100%,10%)', - $blue200: 'hsl(212,42%,12%)', - $blue300: 'hsl(211,55%,16%)', - $blue400: 'hsl(209,100%,84%)', - $blue500: 'hsl(206,100%,50%)', - $blue600: 'hsl(206,100%,60%)', - - $purple100: 'hsl(252,50%,10%)', - $purple200: 'hsl(252,22%,14%)', - $purple300: 'hsl(252,33%,20%)', - $purple400: 'hsl(252,75%,84%)', - $purple500: 'hsl(252,78%,60%)', - $purple600: 'hsl(252,78%,71%)', - - $green100: 'hsl(152,75%,8%)', - $green200: 'hsl(152,72%,11%)', - $green300: 'hsl(150,60%,20%)', - $green400: 'hsl(150,60%,40%)', - $green500: 'hsl(148,60%,50%)', - $green600: 'hsl(148,58%,60%)', - - $red100: 'hsl(346,100%,8%)', - $red200: 'hsl(346,94%,13%)', - $red300: 'hsl(348,90%,20%)', - $red400: 'hsl(350,90%,40%)', - $red500: 'hsl(352,100%,50%)', - $red600: 'hsl(352,79%,65%)', - - $yellow100: 'hsl(52,50%,10%)', - $yellow200: 'hsl(52,22%,14%)', - $yellow300: 'hsl(52,33%,20%)', - $yellow400: 'hsl(52,75%,78%)', - $yellow500: 'hsl(52,78%,45%)', - $yellow600: 'hsl(52,90%,45%)', -} as const; - -export const { styled, css } = createStyled({ - tokens: theme, -}); - -export const darkThemeClass = css.theme(darkTheme); -``` diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/tree.png b/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/tree.png deleted file mode 100644 index aeedf3b2dc57a77920107c1f0115ba427d14e32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27340 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 diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/backgrounds.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/backgrounds.png similarity index 100% rename from pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/backgrounds.png rename to pages/blog/designing-a-color-system-with-dark-mode-using-stitches/backgrounds.png diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/border-dark.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border-dark.png similarity index 100% rename from pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/border-dark.png rename to pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border-dark.png diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border-hover.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/border-hover.png new file mode 100755 index 0000000000000000000000000000000000000000..7f7b03c7ec0262d064950efb52b929d0732a0ee1 GIT binary patch literal 18104 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 literal 0 HcmV?d00001 diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/brand-custom.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/brand-custom.png new file mode 100644 index 0000000000000000000000000000000000000000..8eabd348b4e88ac0d9fc88820cdea9f0f7181880 GIT binary patch literal 4181 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 literal 0 HcmV?d00001 diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/contrast.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/contrast.png new file mode 100644 index 0000000000000000000000000000000000000000..8edb6283dca55f6f8ee13274d774f52bb0a25ccd GIT binary patch literal 13686 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 E0G8^^F#rGn literal 0 HcmV?d00001 diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/image.jpg b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/image.jpg similarity index 100% rename from pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/image.jpg rename to pages/blog/designing-a-color-system-with-dark-mode-using-stitches/image.jpg diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/index.mdx b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/index.mdx new file mode 100644 index 0000000..329bf43 --- /dev/null +++ b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/index.mdx @@ -0,0 +1,740 @@ +--- +title: Designing a color system with dark mode using Stitches +publishedAt: '2020-09-14' +description: A practical guide to designing a color system for your design system. +by: colm +--- + +import { Box } from '@modulz/design-system'; +import image from './image.jpg'; +import hero from './hero.png'; +import gray100 from './gray100.png'; +import gray200 from './gray200.png'; +import grays from './grays.png'; +import border from './border.png'; +import borderHover from './border-hover.png'; +import borderDark from './border-dark.png'; +import tree from './tree.png'; +import notifications from './notifications.png'; +import brand from './brand.png'; +import brandCustom from './brand-custom.png'; +import contrast from './contrast.png'; +import line from './line.png'; +import lineTest from './line-test.png'; + + + +One could study color theory for a lifetime and still be confused for the most part. So rather than debate high-level concepts, this is a practical guide to designing a color system for modern, digital design systems and applications. + +Stitches is a new [CSS-in-JS library](/) which has [design tokens](/docs/tokens) and [theming](/docs/theming) built-in, making it super easy to set-up a color palette with dark mode. + +### Set up Stitches + +The first step is to install [Stitches](/docs/installation), create our `stitches.config.js` file, and set up our theme exports. + +```js +// stitches.config.js + +const theme = { + colors: { + // default colors go here + }, +}; + +const darkTheme = { + // dark mode colors go here +} as const; + +export const { styled, css } = createStyled({ + tokens: theme, +}); + +export const darkThemeClass = css.theme(darkTheme); +``` + +### Color Categories + +I like to think of each color as belonging to one of four categories. There's no need to codify these categories, it just helps with understanding how the colors interact. + +- **Brand:** your primary brand colors which remain constant throughout color modes. +- **Contrast:** the light and dark extremeties of your color scale. Used for the highest contrast backgrounds and text. +- **Gray:** the majority of elements in an interface will be gray, whether it's text, lines, borders, backgrounds etc. +- **Semantic:** + +So let's get started defining our colors. + +--- + +### Brand Colors + +First up, we need a gray for extremely subtle backgrounds, around 98%–99% lightness. This might serve as the background color for a `Sidebar`, `AppBar`, `CodeBlock`, `Code`, `Button` or marketing site `Section`. + + + + +> Note: if you're using your brand color for small text, make sure it has a contrast ratio of at least 4.5:1. Twitter have failed to do this, meaning some text will be difficult to read for some people. + +For our primary brand color, let's go for a vibrant blue hue at `215` so it punches through. This is almost indigo, which would be more in the `230`–`250` range. + +Starting at around `212`, hues begin to get very bright. So let's roll off the saturation a touch so it's not too jarring. + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + }, +}; +``` + + + + +### Contrast Colors + +First up, we need a gray for extremely subtle backgrounds, around 98%–99% lightness. This might serve as the background color for a `Sidebar`, `AppBar`, `CodeBlock`, `Code`, `Button` or marketing site `Section`. + + + + +### Grays + +#### Saturate your grays + +#### Step 1: Subtle Backgrounds + +First up, we need a gray for extremely subtle backgrounds, around 98%–99% lightness. This might serve as the background color for a `Sidebar`, `AppBar`, `CodeBlock`, `Code`, `Button` or marketing site `Section`. + +Since this gray is so subtle, we can afford to crank up the saturation. Anything from 10%–40% will work well. + +So let's add our first gray to our color tokens. + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + }, +}; +``` + +Here's how it might look + + + A video demonstrating the new layout tools in Modulz. + + +> Note: Naming can be problematic because not all colors in any given color group are intended to convey the same semantic, whether it be positivity, negativity, security, danger or otherwise. +In some contexts a color group it might mean "selected" + +#### Steps 2–4: Interactive Backgrounds + +The next three grays; `200`, `300`, and `400`, will serve as background colors for many of our interactive UI components. That might include, `Button`, `MenuItem`, `TreeItem`, `Checkbox`, `Slider`, or something similar. + +We want something slightly darker than our `100`, but still very subtle so our UI controls aren't overpowering. + +A video demonstrating the new layout tools in Modulz. + +Another common use case would be emails, messages, or notifications. In the example below, we use `200` for "highlighted/unread", `300` for "hovered", and `400` for "active/selected". + +A video demonstrating the new layout tools in Modulz. + +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + +A video demonstrating the new layout tools in Modulz. + +fwfwfewfw + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Steps 5: Lines +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + + +Test your `500` color as a `1px` line on top of your `loContrast`, `100`, `200`, and `300` backgrounds to make sure its visible. + + + + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Steps 6–7: Borders +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + + +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 8: Background +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + + + An image doing this that or th eother. + + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 9: Text +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + gray900: 'hsl(208, 22%, 99%)', + }, +}; +``` + +--- + +### Semantic Colors + +#### Step 8: Background +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + + + An image doing this that or th eother. + + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 9: Text +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + gray900: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 9: Text +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Test your text color on all possible background colors from your grays scale. Make sure it passes 4.5:1 on each. + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + gray900: 'hsl(208, 22%, 99%)', + }, +}; +``` + +> Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. More steps will provide more flexibility. However, more steps can also create more confusion amongst both your product team and your users. Somewhat counterintuitvely, a color palette with 9 steps is actually easier to design. For the sake of simplicity, we're going to design a 9-step color scale today. + +--- + +### Implementing Dark Mode + +#### Step 8: Background +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + + + An image doing this that or th eother. + + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 9: Text +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + gray900: 'hsl(208, 22%, 99%)', + }, +}; +``` + +#### Step 9: Text +We need a gray for very subtle backgrounds. It might be a sidebar or a code block. + + + A video demonstrating the new layout tools in Modulz. + + +Here is our full gray on both `gray100` and `gray200` backgrounds. + +fewihfuweo + +```js +const theme = { + colors: { + // contrast + loContrast: 'hsl(215, 85%, 51%)', + hiContrast: 'hsl(215, 85%, 51%)', + + // brand + brand: 'hsl(215, 85%, 51%)', + + // gray + gray100: 'hsl(208, 22%, 99%)', + gray200: 'hsl(208, 22%, 99%)', + gray300: 'hsl(208, 22%, 99%)', + gray400: 'hsl(208, 22%, 99%)', + gray500: 'hsl(208, 22%, 99%)', + gray600: 'hsl(208, 22%, 99%)', + gray700: 'hsl(208, 22%, 99%)', + gray800: 'hsl(208, 22%, 99%)', + gray900: 'hsl(208, 22%, 99%)', + }, +}; +``` + +--- + +### All together now + +Finally, here is our finished color palette with both light and dark modes. + +```js + +// stitches.config.js + +const theme = { + colors: { + $hiContrast: 'hsl(206,10%,5%)', + $loContrast: 'white', + + $gray100: 'hsl(206,22%,99%)', + $gray200: 'hsl(206,12%,97%)', + $gray300: 'hsl(206,12%,94%)', + $gray400: 'hsl(206,10%,91%)', + $gray400: 'hsl(208,10%,90%)', + $gray500: 'hsl(208,10%,84%)', + $gray600: 'hsl(208,10%,76%)', + $gray700: 'hsl(208,10%,44%)', + $gray800: 'hsl(208,10%,44%)', + $gray900: 'hsl(208,10%,44%)', + + $blue100: 'hsl(206,100%,99%)', + $blue200: 'hsl(206,100%,97%)', + $blue300: 'hsl(206,100%,92%)', + $blue400: 'hsl(206,100%,84%)', + $blue500: 'hsl(206,100%,50%)', + $blue600: 'hsl(212,100%,47%)', + + $green100: 'hsl(152,75%,98%)', + $green200: 'hsl(152,72%,95%)', + $green300: 'hsl(150,60%,86%)', + $green400: 'hsl(150,60%,78%)', + $green500: 'hsl(148,60%,60%)', + $green600: 'hsl(148,58%,32%)', + + $red100: 'hsl(346,100%,98%)', + $red200: 'hsl(346,94%,97%)', + $red300: 'hsl(348,90%,91%)', + $red400: 'hsl(350,90%,85%)', + $red500: 'hsl(352,100%,62%)', + $red600: 'hsl(352,79%,48%)', + + $yellow100: 'hsl(42,100%,98%)', + $yellow200: 'hsl(50,98%,95%)', + $yellow300: 'hsl(52,92%,86%)', + $yellow400: 'hsl(52,92%,74%)', + $yellow500: 'hsl(52,100%,49%)', + $yellow600: 'hsl(42,54%,36%)', + }, +}; + +const darkTheme = { + $hiContrast: 'hsl(206,2%,93%)', + $loContrast: 'hsl(206,8%,8%)', + + $canvas: 'hsl(0,0%,15%)', + + $gray100: 'hsl(206,8%,12%)', + $gray200: 'hsl(206,7%,14%)', + $gray300: 'hsl(206,7%,15%)', + $gray400: 'hsl(206,7%,24%)', + $gray500: 'hsl(206,7%,30%)', + $gray600: 'hsl(206,5%,53%)', + + $blue100: 'hsl(212,100%,10%)', + $blue200: 'hsl(212,42%,12%)', + $blue300: 'hsl(211,55%,16%)', + $blue400: 'hsl(209,100%,84%)', + $blue500: 'hsl(206,100%,50%)', + $blue600: 'hsl(206,100%,60%)', + + $purple100: 'hsl(252,50%,10%)', + $purple200: 'hsl(252,22%,14%)', + $purple300: 'hsl(252,33%,20%)', + $purple400: 'hsl(252,75%,84%)', + $purple500: 'hsl(252,78%,60%)', + $purple600: 'hsl(252,78%,71%)', + + $green100: 'hsl(152,75%,8%)', + $green200: 'hsl(152,72%,11%)', + $green300: 'hsl(150,60%,20%)', + $green400: 'hsl(150,60%,40%)', + $green500: 'hsl(148,60%,50%)', + $green600: 'hsl(148,58%,60%)', + + $red100: 'hsl(346,100%,8%)', + $red200: 'hsl(346,94%,13%)', + $red300: 'hsl(348,90%,20%)', + $red400: 'hsl(350,90%,40%)', + $red500: 'hsl(352,100%,50%)', + $red600: 'hsl(352,79%,65%)', + + $yellow100: 'hsl(52,50%,10%)', + $yellow200: 'hsl(52,22%,14%)', + $yellow300: 'hsl(52,33%,20%)', + $yellow400: 'hsl(52,75%,78%)', + $yellow500: 'hsl(52,78%,45%)', + $yellow600: 'hsl(52,90%,45%)', +} as const; + +export const { styled, css } = createStyled({ + tokens: theme, +}); + +export const darkThemeClass = css.theme(darkTheme); +``` + +--- + +### What we didn't cover + +Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. + +- Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. +- Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. +- Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. +- Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. + +Your color scale can have as many steps as you like. Google's Material color system has nine steps and four alternate steps in each color group. diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line-test.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line-test.png new file mode 100644 index 0000000000000000000000000000000000000000..76152c1b7609ccee46837df207bf20c39afabf9e GIT binary patch literal 3376 zcmeAS@N?(olHy`uVBq!ia0y~yVBNyNz&L?}4JcA};n@=)#aZAHS(0r%1aer?9eo`c7&i8E|4C$JVBk6G>Eakt!T9!8W9DH85tfVZAN*U* z(^8TUc_MvkA@lo#W`=K)@3J-Yy#B?*Ap8Ea48ynYR(*^K)vwcmhA}WGI9vc(&!FHq zN{@!aXgV0p2czY{XgPpX4m|w%`@20TL>M+$^XGyYLUOOo7*b-cr!%~$nE#w%!~W}q zJPfy^aSx|&gWY09s%Ne My85}Sb4q9e06Ja)k^lez literal 0 HcmV?d00001 diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/line.png new file mode 100644 index 0000000000000000000000000000000000000000..61bb5d35ac73e2ddd5153b99511a55abcfb160b1 GIT binary patch literal 25140 zcmeEuXH-*b*KJf(j;M$pf=E+PREh{Fy@_BfAfSW}LAq4wHAECtS|Ug3O+$>WVt+&X1_*>kv28y(2m(F&c1PoezTdv3@jx$g99&>in=s3@Z={I$V1Lb+ zzY)7-<#N)`=4+{PLkCi>YrDkUY`bqAUZ`d-{1_CkZ?KeiJ7(#;G3VnLe=V0jVV9in zV=pRB&EIJMOR%JBANdKs`1(_u`Sfg-^P1rT`+wXHzTK2ExvzV$c@P6)eKt2fH9zC+ zaiv?Ho&uNnQ+zEDK_hZL3}fkOX-W658uKj*fb0i>EEk{%k_nkoec`E$47rvCxCs!5 z`-H;*=HJ%`Lu8nLLB{`T2g2A+F~?=^OiIH%_S>}CqP?h;{UB~idkBF*_FFEnR_p_T zroMpA2{3}av)s%(e8Z2QOG{dHKBNI8izNpO9vF6M=zEmMV8Htl*6eE6QCdz(d?-s&I6vs{A(aQayfbmnol0toHycI!tWm0ed4L<=kgHuU9awzQA6@;naZ=8L z++{(ZDXBt+;|{Y&#gSBt2|t%E1@Gz;gDTSHDb1PcE>HU_tny!j@WY$Z*f@GIlyn;e z>gmqEs;J(+)7T(Erc8L4%w)2ALih2;;yca_Sdgh#B&gW!!H1XaS2b@2eLvCo#)18z zfNLw)DLrVTtGS!_yW(fdr&@L1a?%IA=@gPE0=tU6yS?tdDgE++V(#ul~S{ z?z>|Z%FJ~s|LV0zDXX$jPgMJ8TH12O>E2qwrasn6p(Ukp-THB{c(uU(>@H0?I3i$a z72?E6Sye>INUe)6a)0*;#qaF+4h1(*k_a8{z;zUX1)d1}BkH_622!glaD$)`47hfn zB}7emBTUG)ApBsz`y>g zD$1_38LNp{MGvsx)r7Mx;(;ggRQhDmCBb)57T>y>mU3$wRxz?!#8Kb3P|WQ6m;(Zr z5A@05a(&0eZEYz(zS<}}nX;T7OJ4S!P{owad~Rmkf3di0{5bw9&)JK=*5^%*2QTcD zOELoj*R#7SPpq$eziAsrYDqkJP}YscWlQ$SG_UiGqdz~a8tcHWXDkp9h{Md81xa$i zj5Nq(ZP^L4s`R`7XIv!s!nt57C`Dy&qo;)A4o6Q(iTEW~vgdU}5-@HIxGmY+%(PNC z+|tv*;pg?4{E1GzEI#VgSj6N*{b|T-&=^Z+{dI1tT3bAWg%Kb{Z zR<)TbLl->owC0b!?RfMkJ9|8xH9uM2eOjZ&Z79OV+|8{710RUiRLV5;b6%a*W{sIGV^iZLN^iC8wMAjZR?n}xI>lz;i zLIG-0_sS1rH*6Xzo<0uD*x+bvZW~D~n2P>5A0q^Lpo8tk*K7(}dv!RR*)4x#o8{x2 z6JZ%-`X=r=s8hHH0Eeg2x(5gO_(YS_NXreiV~{K#Yfj(6z&i9|wM> zi>4u4zDP1xncs3iuMN+jKKMwftk)ob&>>b(l+2x)*WhXp0^4cO;cZkU;>nKh_+U2r zsu0diPExH%>VUx^%NxJ8IE#X!giFA7RYSu@-t+YQFdRqFtyliro8e_N*=J)d`I8a+ z9Yi+|5330$ld$jq_GF6%U*BJ_G0q!x)@#dcQTE!@#n(Uf%qO zb{w1}a=%icY-X-oJcQaoU<+eoSIhmZ^>wKmUh%3B)7P{~2&s0W3`+?=Ma4SGpUj{1 zjw<5fq#llxkbf^yw^+hQJ!BdDYn2{=-itx6J`^trS6d(ELdAXm89vh=sZnfRCqo{u za_=q;u(1h{Y+HVz_EsR8wPfbr%iIsBDfz0OS>uK{3!9miXxn$nSFa}cknqM%$|v_x zDRsVYOR8lyT9An2R$AN3IPeW0H#fH}?0(StuaL|Ab0N{@U6Vqedg9HI1yAU+`e@J92cvdZc(j7R+jiqVer%46c{)6`0P zY-`7mbg!XeL+-0Zq8;(pH1$k|U+6gTJuMKIU)?CauL6CUlNsHgyr5N&B~rkT<|dQ_ zozB_TBcDoZY;r#$*9!h9G>ICJILdwQu|DP2uyJKhZp+Ziu@qBi z`Ogf@Y0o%tj*Hnrl#ZB5ZNJ}5*b`v$v zDJm+S0_FT;5?;Simc~@v6x-(dyb<)-hvh@B$A`rdUhDVdHjfh_ZXBvMm{QwZ^(9(Q zE#e*`DIwv~m!*Yt5`ex$F__zAgAkw6O5U1x1!uU7)S&k{aAZ`R5V7x`X_(CGKg1zV zDHnlAaaL9@ktf54Gx*lKkt#eu;PS7<*{t^_cn3tKq6^dUC zYqsIAf+U!e8;kMH8nHXi+2L7AU{zE!DyvlhQ2{n-B`Gz0%nim8E3SS}<7o?3<8eSR zcb&(d=jMBQNL>}Vr_J)U%R|RuoP?};Z{v1XRWTTuHB1#@&#WBCbP(~Rq*b^r^N{|A7Ff((BD`H0-Zgu z_e&6{>?|{c0teXs)ee+eEiE)A-DM6A)H9LI+$q54b=ZGDgU(jxVSeqY(q8@v0<}F; z`*lFs z%KRSae!Av4W&i-SHOUwCs66a#&kW{hiHYgGrl5eYfZh?qpPtW*y^|725$M7vUJGnl zS$VRW(mgOZ7#k2!+pi8~(;S*Ca8&JcTy3NIw@BC3mAJ}dTMUFHDVwXO#9N{1*dQuU zsewQakdZ@pj!lceE^k{l)R%Pmw=(1CJZAz&mFs9y6{qR!RLJwk*ffmol&M7Vh>5Q` zCMG7P!kUi6D~obC2q*+O+<3GSGF=lGId5?2@FAxXp81an{su)_z)&1elk6H*RB|VO~RDCfbtSH%6C5p3UX<6l=WWJ?GBS!!hN<6|w;&gLsS3 zL3bsQTwmgZJRz6^R0049w-{tPId4hj~f{zZj0SRAO&MRvY1P)wWHY8GsjU{7-Bq8LaZs$#y8*?mY504zibNtx~ z-sf2k=7A>gut^Q2qfStVOmXqCT^NFEBIlyPBOjKwot>TX7L70p6N(3MqjPz#NP@MZ zypmbByETV{EE{UZtiYdAOc0;z4@!%5{QPaOvNXsgNra;Ji2o5I>AF+M_VqcIIsXXFotZ5sU3g zkqdr528s2QhT5(T=RGVz%IihfWGy7HHVG*qea;TPkFsC-J@Q4WHW>Q_YUK`?B;=BvGugxpS}PoeC-!3vj3|qqOD(+MuGM zt|`d1ZBCaMy74<=W6X}LDeQ2W%(?s|Mc^Y7}lIj zE}ziP1h;YBLu2F0%C-)?oWmR@Kzf)HeXL0HINz?9|Bf1m89O_B&V)CieI`>#XyH@H zb6eBba5~9!MX9!~t^?kgsZu&&&`H#qVbiHTUuNDKMNi$5hbKbeUmzGQEu1u3~U)iD3}=Huu8xGdVI+u=YFaPS6T`|B{K1%nEeb^$#l8S z03!s%n$nH@Mt~flkDgTHNmeM??{Zd$2~JPT@4Y)_W94Wpab$1EpVrR(t76x`EU5l3 z42&z=)4|zUNqlH=&^#|y>;C=h@bGT~BO@^YlmJOL@VQ4wIfTbqc)FNG4Hg*YwDKda zRlb>NMdf@BL4Bxn!ev{-l#=$oX=E~gt!J4qI=r#DvhwYkjEq6(7umPpy)%)>?zeC9 zPh!UN+xI}m!{hz|BAiaWuB-x79W5_fm^@EhhVOkKptrwP5vk66_6yGY?e%_PW7(7Y zq7_*EinUx=sJqP`)gw zY5O{hj0S`jjaFs5G#kkKOq$2t1K^>SjF|on-_It5#SlRYhf&(_5wl&$0o(g zHwW2`ymrm&Jm2LiIqK9+_G?9@#fIIPrv& znLP3E78iphXGg&G6ClHlc3nwpK|A$LF^QI@009Jiew?Lio)bEXw5%~^d(9ehvwU68 zeY|nDdyNd#y*MO9j+Ywsx>}{Pc*A8$RJ6PxP$EoO+U1T32Ia_4UQh9E@DqrhaU~E$ zsT`f8F>kC>OCfmJ*6)q(=So=X2-OkiAp|;0|nOi^{rhWD+oVZ zVMS%~-LAYelc*ryKUzDeRA&!<&%0axeQv(4F1fqBufMVW$_hX|)0p8oDalo{)$L-h?Dv97owC^G7ua<&Z7=t3`&?%9 zr^gk&Jl@C)-C3U5CN&d7WjheuW0YxObN6q^K^Gn%=4v5_&Ju=-OrOMhaGrt8`oba& zgzvdXuJ4h?a+6|_{P?26oz(^Y5g{QVZ7ie!W%PQrttSSLo|sse7=gTaVKU*H`?0~K z&Hb`Ird-E9ZEt(dC)@HlP^pu~%ZCrEJRm$Ymr$R^9Q*7g_9yq?2#`l6A8O;UV?Ta$ z2<&0@syI<)vIrbgDDwHAem?GTzG>lS7~i86nyKvDeZIarI^1U<2Yo_^lmWii`leIN z&6ld?7OJ`|xG!J6YfP^9`E z#+L^D%T^kH53DH+t3;RG15pq@^$38iz~^7L68vvK>&YX9mubPYg$kp1b01^Ji&#}g zP)(6pP1)Gqo$R5_?j&xAMTrt&D9am}o&YBVLf#)gV08^q?0se8LqvyLVD~`J50+_jp|r|0Eh77(iohNC~E; z?|60eC|*=tp0Ieaaae_%w_%OjHriVTQya#A?!n|!v6TKJL}|_`73qXWd|!k;r2nq)sk53D@j8$cTJOA$BediX{?gD)8F;e zmS}PP`&lI()5NdCFBu!(<7V=)_6_vCOIBn$A0V=NTI+o?3Uwzn(EA$CY~LOk5(?U6 zY}agjPp8-5D;w#Gjc-)8NGg(|W>-o?i^H9g!&iK>Rytt!5u1l$SFrHi zwx0UPhb>BbmD6rNg3@1kwmujcnQHIiEP17AQBGiHy8M;3Ia$1vf^ zD(&2}ts-AcRhi!n!J z3~NMzCO1}pkO@nZ*UL}L;?4wE;<_6N5!vg7U-!R`o>21Ktvj|;`zwQiQp6#1CMjqW zvsJ`St7^>L8kaY;eJ~;4ywxlX_WtU}BQ5jE^HyKxw*uh5(9zOZ?1+3kt7mfMm_vQG zUIoLba=Ovy>Zr7a3J@e1pW{s@s2$B@N!L96o!WoG5sptC?K~BmbBat7yb>l>0&^7qPp#=8gBr^ zAO+pf=D=MdhKWvy75m_9plXT)(bgd^+V3v0z9ooO3I$Ej?)k<-$JjWr;ZJD3j2+T| zNKt{$C3~rVluS8{#gd#p|7o7d&095_R-s=xZcEtgYx$_s5_Z~C;f7Cnpk}GLGUD<) zfJ_}F^$-57VA^Xam;66bGI2HRlH<=m^`TTt)F&|4np)VuXbb#5@6CU_>fVxe1|cFo zG;1E8v&ZSBr3a}LEg2>LT|KGQop6u{NuHojRGf~71^Wj~=?L5<{?HK!x&&X!6wt<* z1-j6d+z@;0JE(#!gmThvl0G@Pu{ncMj!O$z%=2>LI1cmKauP*n9#Oamy%10bjosV5 z^M`>iZ^pvtgW0XBlnw!H9r(gM+o_!f)5&xXuGmqIKEzzLs^No$`qs3sMuMu zp@lc}7gqH*W72A!Yj;Xl|@Tss{ggh(WPejSnWsBFZVA75s^WksL*Ae(W8w*IT2_!&o@QQ@gd< zp3}wb%s-evBNZ0B%MV<{)E19UFlMQS@5cId90s35s}7!#?a-A+GGL6g`HuD!F0he;cj_Yw)M5(X2a}>@yN`Gal_Ej%`={B*g9FDCocf`f zmfHoIZM-vc1x!jXGVX%yJ2-)!{G!#p7{H0ZnZSNxb5K%O`2%q|LOJw1RFn4DIE57r3tb?Lm>pW&{5OZLr?YoD zVq_$NdTeky0tb`!y%$}gx!8rO>BcoYj5GbvVs9x_c zp?m!z91Vtp?9XpXT9#^^jL#hlu0l)s)0$@C@oGpK;IT_wR2W_wyyUuNLf1*v{Ik z$X)fbfX@MQEZ^&K{s6~)h{O_WC~0$qJu4lvb913xv_$0Q3~PZrP54m}5BrH&W^Rob&q@pd_;AD^OXVxp@D>c%4sHG@OT7SQBr)OASwF zguyO}eh?A^cDn!dP^7NHvl+R`pX~+3cUyO-?%BTM3-N$wQLbxlZug?#6$ajz69Tn6 zlnpPA`-tM-6(% zp}CI${Zn2eqkBMao3R2k4@^GQ1@FArn0n6sfytxIiii|(ov~~6256NKa+QneLth{8)kIs{Z4N)TON{YR zTs8W!Tyo~O@NdAnqO6fMR!Moexy2 ztKj5d0(Ve{CHG`8 z*CXoA#bur9jR`4&pS~RA(!`}@&POhxH2?$Sh^Y}ei|naKC&`OsX71by{fItoZO@V7 z3s95ZgrV!lJaR@ovoj$2={n0f8AF4Ocj;3ec-t&7azSIuN&y$#yC?)UhtkC=a24csVt8(&3BLNhlsY zI9lxnqb(XXCh-Sve)n3)iqFQuJnqnjeA5cZ14v6AIoX!`+An)O$q{KC#pa6rUw>#2 z=KE(|tBWaQ*1x{NDeO09THU`FTy*7rPgEl4GK zrHIE4sw(U0k*yFk%FFpP$H`0BvKSoVd_jGqOr$OWc3n8&FT=TfF$vNn+`9&qznp6Z zTOt9}$T5LaLf0z#YdQ(z}kY9M%CaWZjtdD7pBx%(fQshS^4Bv{3~ zt}}c-l2&mVqiJMba->4Y2KiJ$BxioH+8p{s$MC7Dt|GrGguJn-#Yu56XEh67hZ+S< zefpdo;vM>(0|~iKIkv9O~oZ4cw3V-=`e)`^P85BoiV zreet-WjvZjim(JeAJRnZ5Sfx)48B1;rs-gQ2%o8QO?eV%1{EGs^;@yTKd5&Nve=kC zz8V$A(v~CoY;8+})m-42tW$5<39`5`5Lo4WKNyu3YIXTn9jR>G$dbtNZKRJckm_gq zHi+}WefLziAJtlB9}K_iB1e56eY^6tbtbTa){jYWDW*tt9(UJ<%kgIr^B!8;&iXk6 z9BqQfGS>0*YC~n4wr|;JCWWW^XRo(7AAzxb!nfo7L=4D_h~o;s84d zjWN%kY&U23$D&XCSkM=Qgn3Q6z-PwATbpiV#}& zgDy{ZLq6XvYt$lZMD_JQD&kF)0(Xjd99`rD{ffacQE4~`a(kj4OC(~l>V-wx0TERP zNO75q?e2?)hUmwao9+8Q_E?MdN6L3w_?6=&Y%*H=jnx3k>8U_8?!wtX+fB1MYz~(? z`|;!1sfxaFB@*K5?`0dllWnsoq9yfxUha1+A8Vo(uSzNS+Ip3XENAJ4jr1#5qq3Qe z9O7tW$x<}mzGe0Nzl1(nD3(vn0JM8NJ>UH9nD5NV!}xRH`lDUofPQ*Td&q8`H~q8hB-_0>7qtk>U?AIZB+a}?q*e_8 z9fSfXiUjm?7Or#n7`o_K#dHQh2mQ=WVZJ1fJftQ9vSMN2x#OR!@x+Bld8IA*V}?OA z>GUnF8Y3IAGh5lR_2)3;zI*+mC0Z}>Ca*t@lzZa3O-}QQtL2}N(U>xs1lwF5q#`Fg zNlTxU@(T|G(go#wuCk|A6_@{jUiaVVPIKyBjr#e>yixmpJuSr#Ti!ibX?8g>zJQ*2mIC26s%Za=9(^Mk zF`tvWGTm=;P_Ap~+=vgSMIq|XY7Fr-tDxliWruUX=TPw$pZ%Rd_j za>Q&vZKBUsI!G=+~vd<ASfnx+`h?@fXVv(n|o1MsCs%1Hrl;cZ={E8%!x@rb?oS zT_6WBapiDE5KJfU>nM};18P|F3qbT(tH_@1>3di1$D6IuHULr|U1jdE+6&X!_dU^2G z=Ke?3zcgfiCE$6%`jLlSp{1_&{Kf z(Eo%2w1ROVd9}@F3AnJrrX^A^wQj))v76oj*a}`~)V*HKNfRk~49$Xn(_$g2UTpwTXV6tqA@?8?*NliZji-?gDw_S z7&dHa&sx2K=I(Wl=l=q(8!px7n)_~-(6~#uCPlO1uxrey`Z$w3u{{SYFU)0guij?n z{UpzNGgr_u6qdzz129qiQf+o$50Mc&z##(}17=~P^0S9FWH z+TtRW8qmXng}dFp4dxbsbYgW5FgF!GjjZLW^bu@a$>c`1Y<4^>Ag{0wh-(0V-(hZU zID)_?@$oEt-Eys_H`_5&8JIzS)z#$H*1c3 z%vAo?p_yP_$c-K0k!luZEW`1CwpxX>Zpy1KL|&=Q z1-q(}H>3dq!62KNF%6akU&oN(q+}?12SY+MI@<#@Pro?i{rW5KJx!t<7cy?0E2*=j)#gqhhlCJ2ORyYdtY|+lS#N=^VMXn67j^_f^A4O#j4Gk+Ul!JoyAj6W+ZJ>KQK>IqyKf!0#?Q8zg!c(@j|v? zb#SHxH8C1LKyv|BF_Yo_RCBiH#k&5;Jvy+B!_EoiBBuftWAiHB%ke8$7Ytn(tg-?M z*S)g>lBs!g{`EVRw{3F8d5u#F+@uAWs0ErbJLT}jKmSN>!IT0x!ueCIX*p_+hegGkoG@D*VfiP zP)tlo5vxWbksf5QiN zJ&D6FLY&MqB&)ppQwRkZK{$^4dYkVit=B-+3}b&14WP$?D}z!5Sn&6z00Djyf1}fA z)wN(RC6`P4Nn{?G4`a>r@YlP(jVoJTaE`vc5o}-jM;kV`$MwK3_3FhmKS5<<=l-I* zcGc8Z2YF_;A2ug+M0%P_kE*Aw0vCUaedTTlgM06h+IN-e{vlu8Dv0=-(dNO_n?@I? zq;D;=F^454v7hKE)--0MFV#fQ;or2Ot;Dg%fA&0mn)g!GXME*LcD}oGDlwh&iVjTH z$YNA0w6V^YSUg^SGK6w5VqX0G(c(1Ia7`f?oU-&=AY^oQeI?_|?4}*i`i!ubZHTX# zP-R|q7e;Kv=12u1+A~h$eYcnJ%ylmW6qG0GIxgO-bv@2DJTn8Gh zk#gV}E4?m1zQI}Qa!oZ;uG$Ur-SMUc?5#nmi#@KVdXt2zSQC;fhjZ1Zjb5X7gF-(F zTza;U>)5a`m;86fHM=X>K05r9ocdhutF)3@`C=3?M$kF!c!lh>U;WmJp!Ke1B{wHP z>lr#ip2>F-{D~4rA{yjiswF2fd_qTmMLDAhu_GhGf=73o1^>C{>NZiI7qs)qkUy8N zq-j3)T`_yPC{Kj0LW@ilRqhnj^e+RF^?Ik$;=Hlj!&Q|tt(t!Pf(ZCp(mYg} zO;3jM$yI4m4tuveOw6!5F3n5qe~BD@A{U)Y5AWjseD%sqf*nMLQ}y*q95nx;ff zr@N&^!Y6_-4SS(+RvTa-Sv^g~vyBkinIT}J>KxC%wONB$@Z7IJa`{PawOexsUw$6+ z=CCVq>utBm6Sw=N-C@gm>2nBZvg#EJKFItRp zzc-tm7(AXM{j1v;cGAJ#vVTr{b~nCid=Ma)fdv$AiXlXvP|7d2-q&Kc&m(limy;U! zBL)J9xPcCQuj55a80t+;rDplMVeh+D?5vS!J;Oqj975;Xm`A&9lsg<_Y{_J}2G?^t|q%XzR{ zireS5fYlV%GIjw4vw{jF{pg1f>7-w+YV|@Odn9RJC_AZ~Z@t>g8ZPwOqHTYaJA80d zp(SNci^}0_h=sNLt4mMPx;_846@l)#Z714y?EGy33IY5&d*q6J{2nX#w=Vu)-(m2# z?&trWkv1`bNXiSaCIL2sB&NkdhT>AlC&0sVFOa&V4On&_H2 zT0jF}77ZvYJsQy^B_DCe7POknt&anK4)|8PGnAedvnpLB-5nUEju7^X<)+}@C_|ED^QxPfvJ>J{GSHR zlzRnr1~?0xp_R^kt+!zZ^vGrcKIuvR<0B)9K%Sz+bdt6`fY?JgtV*ujB=p9_n7rfL z$+dQGJq1wSGu|OSWLR>uRdkUCD}SW+En8pCzo=w#*J7`Ei3zAIv87prFi7n@-g~&d zY-hPH`NguQxCys%olc5e%zf~BT0(-@{P=kP8ycM?rYZz@qOJgq+OxYJ&_>poQ#wj9 zX<}6i1{cal1HZz`rvFE{O=ElXs}Vh4B9aEkPos;pteiL2T(1|?g68TZK&9K7a(p3c z!<$~YyzsIa>`9KfTW&chZ#aEyb0XR9;J~WFvgEaE0~N8iD?v7*ML>3! zHWDrP$}M~FeJn>l>2g&7d3^%oWZ2;kIgWJUOr@aA>)7xoi%{=}NzK5eF4eKPV^18r%<)2vge zz(5$SHuwGJ%Z}Bq7NCudbq$j6#2`SH{ssA{%p?U3Z;zjs)d^_8elO&m;qI*s{Wk7E z(z-MT@U>=7Jjy=eJ~M5qUpUUVjaGRNB@{Jdd3Z!BP)BzxxV^9!=BfdYab>zt5UPEp z)Ct#JMyuB=UtFSHRSXD&JTZqBweAS=3Y;J2N)}b>;t8^N&ydxisl-fQw`{*e3f(T>)zm;ma~Bx}cp<^KASu|8{%fdavt` z7M`4fDxJ7<NqER zi8?ahQmR-?GRK*|=n|5qI&lGA!q49D1ak?IwwHh<?S(7bv#j=9nc{&(rp zc9zXLfck{P4QpydKTZ|MLFR8qbVK_jtI(L%#9aJe6#)Xt_H%lw*ns2+YOmatru7qu zef0k-U+PvJ+>g>LGApJ_O6n0}%%M8*%2hgD`u4un#oY}VcPhQNqLvpbA;K4hA1ZS5 zB_1E1*|}vo?tJgDCXx1CmFGU-3sU67yV!gI^lg{Gw~s;rnVTbBQblFRrc+zHRRbuX z-SrWW70jP(q6U~E)2{XW#IQ>|ftIpqZYlOzBkFOY_T91+!XZ#Md#{PmZv6=a_|@)+ zkY<}HIjOiinhS_R_7Nf=*zx=$8_y53$BhOFZ~OlNJWn;?dCnbqTTn_FXG{rX*9;h5 zHnh(7;qx@k2P{ylOv4aei4iUa>d|7saV#G{b}SarZA71OvQLe?JDZ2c+V5Tnu3I1y zwNq2q8S;OCnqMr`!=Gw=qRdhL zL8_vZ*ZCrTLO@r|7&LaFcSezhH~^^W)ZV3rEJ}#Vjt8wj`!cmy%UX`BcCalQ00ZgT zQ)y_}0Mm-KOknUnNKIb8$OmnAdZ1`>JIp)N=%>^K?x#{D^cGKCn(ct&LBPS3ta(ma zm)wR7#&u~Fpn$|KD-(hmLXKbSZ>9b0wH7A@76Oto@z`WLns<6PFvjkIq`?BG62%D1 zk2yIxvo$_0b$S9#sOVIao`h&==*VGqUNNo)XJO=|*NpZ8V5Sy*MvMV8Lp7)VDT#yv zx^Xu~!_KS$i6+Q`T3j-EiZ*`A`-o!RyutE>=ZK#1#YXc$6Ci1 z`wUz8<|i2wARM%3ih5sv5;_ze;st}jiuS{Sj);Y{a4>S_TyX(AZ6D~Yp$XFF>~F34 zVK=%O_Y;^mdC<0W&jSTB->%QdsBF7zxIYXqpC;2RLLa ztVia5E1CV27||oMf6Pu?bJ}bpaoKhK$gI)WDq!o+#ssQZg#P$a-rby@WrC?bU2cz^ z@L28GJeq%2v1P+;LB}+riv|oxj7!wQZ#D2?cp>1-S`f)ZN&%@bOm~_ofRB<-JzF<| z5gaZ~Yka#NYS%zcoo|QZ@_o;P1R?{TwFYGA9!a@M-iYB_@#r# zhp7ervHb?IeQHk!&(2s-&GuRQWZ3Z6GTz6qc9}-#p9i>-J@H=;kY?Sp+<8IPMyb-; zGJ*G(gnltMk8hj{a^>v#_u9gbzSy+vRuaBSJX(NHhbQ7w;LeLoO_1a#E)+RJ7Z8bJ%2ulU$n_Mb8i7o!y zrRBbxKkZ*MH!|FQzU7t#$>5))?;Vk9bl%9Tvf$XL722D_Dv2ufvtMjicn=*q9N|*x zLjTNtixJpE0{e+FCqH}Y^S27V;kX7f#N`A4HMi|;-d3Ud z==LA1Q4DQK;qGQaUG=0g(=LoysbYUSpDzid3rjzHtrQK?=$WcpGyYsTQT|8&O!WR` z749AcL}M_%y2hggGeJ?2SV3g-M&OIU@D9NU#$S32Ic#y%OI) zXD2R`|5^@gQ>ZF%ZuxM8rNSOtkZqjd%4r8ttAD&cXKXEa75Q3T}XPV`AI-j^l>qXm1Z3|lP=MX!-{I;@_n!R<)Dv~ja07+XMK)9 zv&JO@PK6%%Yl;GcgUPaPA~4mJ*u##k1uOC*xr8rE?Jor1BGG`op<81x?!zE`SV z)@~Ua@X`t$;oyhpnu)jjW&aZY4R)%(jaDw@!O8+QEa!6_vC{KAbniXBuLBh)5q%{BNOqx-6{3jd@*5e*nP*o5lkL=;KdfP7x%gf;|K$EZ#7z@1L1XB%J+ua{ z3%=VCbM&{meRs-5;L?HRg5rkSqj8!071ap^k?FG6D!^M`Lv-SBkWbqV9A=Yd1@D5T z_*A@do!LA{X@OiyD8Cl;G(r+(c!0n;%T(Mk?+3(ouBZF!rzy+Y`U26N01hx|qO#6M zNqqrGZgJ|f0UZ2{-t=vEfV{0L6QmoNXZch}hBx!fn_exmP`dbR>C4OGIHnEwz~iZ? z-!jG%|AaV3L6YjztRJ|_K-Ok3aurf?&vIqRGCH^(?~&HiS>3R1Rs*~X4GDy#PksNd zpbHnExrjf%H@yzNBFy(N{a^7~ioZ#trmzLxGdw&xk(B}7hK?8Cym7?B2)xM6{g!OmDkZ1ZBJUG1XO!H%*b1vzA)yMp8C9X0hFL5 z;64qjR^+x5Z|;d=tN0%gs)`<)qM^t6+RxSYiDfCJ*8LaK`~c?b-eGoru~u0gu5_qU-72P&yt}td@Y+M1_}Dtq zgoS|sq>)%G=zu&zyvx$gaS{UJ+vn=baU0-hvWc2Te65+!0&vTz<;z_A_AHp6Jy;r) z$H((B%Y}{|^Yzz;8Bo!6xMw!o zqjQ#n2ZI4eW;>j$GQD}MS!sj3H`5+WTha~pzYF1---WOn#v5)tGFG=7_X}{Ij!jOg zI%(-UxHSesjNurUw8goPDpha3e3|8y1&8>QugG-+o&ewtR#qxq^Tv7L6f<+S4qSGg zl>p})2c^WgJX;B%{h!zf5C8UA$^TbAt0|_>%8cq(Qyv5d-U$d8ZjQGq3;iepNPjpF zy}f;DapK-1tQM2?&rE{sDA}hurs7hR4q?CV{g=1!8@&2Wcs1qWn7D55!xxZ!SN>W}Qd#R{TWr41mIiVa{3E`<;n3x>3oiYT%L1X+U+z_2f2DWdh*iCy1IT_=$w$-LD8Q!sz72Vk4*2NxC{eOIChUpILb)XEIU3O6H># zRM7!!NJHXU`B+XRg;{gXE-BU(bu7f zmEWl#|J8m?0R)#8^4qvEm2ay50fSXcL9@pbW2E83imRjz7EGT%shnA`QGDl;weOBJ zLo&c^ZEZsTs>9-ZQTy<4AV9&KXf(ZwvN8lB0%g(~L1-yuVrLJd)dMVc1VMSw#yWK_ z;X`1rcyZ%M;Ek6lH+t#6#R7H$x+>vqqgCP*5D!HsC*0Rm}_yCz_GQ$HH`zB!N+WrSHqi$TsM!%Kx^aEQP8hHTEx^aHhF0aGUUs zjzX!FD0KVe3NfH4cRo$EBP^tQTo+RDte?J-SGv6GmnKrs#6vJb%tMI+`q%e_Ncz&k3Cc`#)rXVA-@oI3G zICk36(Xl&c!saL?&)r!##qt_HtX?xAv%sF@E?6H@3jr`Xaqx=JV1Qx zIbOl_ocZ7Nrpx>2y?}0TI6+MObmW!zBwD8%j$@bN;Y`H%#hSpkv7~0VDil8v_ zEwMV528+{;W1XuKK@II4YHMO!a_eUg^lld-a;O~fRy`%z;H@eEB1txAo)h@YHU!_U z9~>kb(3K^AIJ;JjgR32IZ=V6y=#ZepHNQRJ;=V@A=$@UU1&jcrRk@Q^q72t;%i@Z> z?TADAdvdTLAH3Cw)Fv)hhBbw9*tY^$$=g!J$n~mBpkEez9BnS}pmN+B#`rr5yShw{ zR-0_u!lyth6lvS~^_?3!AMFi6qg!sIOnHYt!!C%Vbd*^(&QP*0pMS;Ufj1_EnLkD{ z?@x=N%`8})aB{)MTbMs{_`}3C>r)(`P zyAi$ggPJa6j4JfTCTI#81v(2yC?~SUDygVK`@1%aQK+aU&wCkhX>VvFsj#8s*xj8r zG9K(->%_A^9<*Hj-Y?jBaeGwi-wBvCgn4<{JlI5$kMbt s50>Y_@;q364*t6i3=Apv-738#{nNT7I}!yHEHY8P#_ij~viJM$Z-UHd4*&oF literal 0 HcmV?d00001 diff --git a/pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/notifications.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/notifications.png similarity index 100% rename from pages/blog/designing-a-color-palette-with-dark-mode-using-stitches/notifications.png rename to pages/blog/designing-a-color-system-with-dark-mode-using-stitches/notifications.png diff --git a/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/tree.png b/pages/blog/designing-a-color-system-with-dark-mode-using-stitches/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..f34573232e27d2b0b3ac7cdabfd8c1cc7959e9ab GIT binary patch literal 25799 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 W)80Q$bzg#hbII7^*Ru21@BIha4`3qz literal 0 HcmV?d00001