From 11eb4f034a782963316c52b85812a9961a3f0539 Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 10:50:02 -0600 Subject: [PATCH 1/7] Add color mode switcher --- src/components/Header.svelte | 32 +++++++- src/components/Switcher.svelte | 140 +++++++++++++++++++++++++++++++++ src/svg/moon.svg | 1 + src/svg/sun.svg | 1 + 4 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 src/components/Switcher.svelte create mode 100644 src/svg/moon.svg create mode 100644 src/svg/sun.svg diff --git a/src/components/Header.svelte b/src/components/Header.svelte index c4ceb4e..9a6aaa2 100644 --- a/src/components/Header.svelte +++ b/src/components/Header.svelte @@ -1,4 +1,26 @@ - + + +
+ + +
diff --git a/src/svg/moon.svg b/src/svg/moon.svg new file mode 100644 index 0000000..3425e02 --- /dev/null +++ b/src/svg/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svg/sun.svg b/src/svg/sun.svg new file mode 100644 index 0000000..0926648 --- /dev/null +++ b/src/svg/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file From fed1c6167918de971b237c69e8f536845d5557ae Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 10:50:17 -0600 Subject: [PATCH 2/7] Add some dark mode styling --- src/components/About.svelte | 11 +++++++++++ src/components/PortfolioItem.svelte | 3 ++- src/components/WorkItem.svelte | 4 ++++ src/static/global.css | 12 ++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/components/About.svelte b/src/components/About.svelte index 31061f3..c013dcf 100644 --- a/src/components/About.svelte +++ b/src/components/About.svelte @@ -67,6 +67,12 @@ gap: var(--gap); flex-wrap: wrap; } + + :global(.dark) .about { + background-color: var(--color-slate); + gap: calc(2 * var(--gap)); + } + .bio { flex: 4 4 25rem; } @@ -80,6 +86,11 @@ background: var(--color-apricot-light); } + :global(.dark) .work { + background: transparent; + padding: 0; + } + .work ul { list-style: none; margin: 0; diff --git a/src/components/PortfolioItem.svelte b/src/components/PortfolioItem.svelte index 0bdfded..2bd8e60 100644 --- a/src/components/PortfolioItem.svelte +++ b/src/components/PortfolioItem.svelte @@ -32,13 +32,14 @@ .project__date { font: bold var(--font-size-very-small) / var(--line-height) var(--sans-serif-fonts); - color: var(--color-purple); + color: var(--color-font-muted); margin-top: calc(-1 * var(--gap)); } .links { list-style: none; margin: 0; padding: 0; + color: var(--color-font); } .links li { diff --git a/src/components/WorkItem.svelte b/src/components/WorkItem.svelte index 825cfd0..5ca4957 100644 --- a/src/components/WorkItem.svelte +++ b/src/components/WorkItem.svelte @@ -49,6 +49,7 @@ .item__role { font: bold var(--font-size) / var(--line-height) var(--sans-serif-fonts); + color: var(--color-font); margin: 0; cursor: pointer; } @@ -101,6 +102,9 @@ padding: 0 0 0 calc(var(--icon-width) + var(--gap)); } + .item__description :global(p) { + font: var(--font-size-small) / var(--line-height) var(--sans-serif-fonts); + } .item__description :global(p:last-child) { margin-bottom: 0; } diff --git a/src/static/global.css b/src/static/global.css index edc0121..732a0fb 100644 --- a/src/static/global.css +++ b/src/static/global.css @@ -21,6 +21,7 @@ --color-link: var(--color-pink); --color-link-text: white; --color-font: var(--color-slate); + --color-font-muted: var(--color-purple); /* TYPE */ @@ -48,6 +49,14 @@ --speed-transition-quick: 80ms; } +/* ------ DARK MODE */ + +.dark { + --color-font: #eee; + --color-font-muted: #aaa; + background: var(--color-black); +} + html body { margin: 0; padding: 0; @@ -89,15 +98,18 @@ h6 { .header { font: var(--font-size-very-large) / var(--line-height-tight) var(--display-fonts); + color: var(--color-font); } .label { font: var(--font-size-large) / var(--line-height-tight) var(--display-fonts); font-weight: 200; + color: var(--color-font); } .sublabel { font: var(--font-size) / var(--line-height-tight) var(--display-fonts); font-weight: 200; + color: var(--color-font); } .agate { From 1b5d0d00ae10d5c4cfbb348c375018030ba7381b Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 10:51:37 -0600 Subject: [PATCH 3/7] Ignore more generated content --- .gitignore | 1 + src/functions/sprite.svg | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/functions/sprite.svg diff --git a/.gitignore b/.gitignore index 516fdcc..91243ca 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,4 @@ dist # Generated content public/ +functions/sprite.svg diff --git a/src/functions/sprite.svg b/src/functions/sprite.svg deleted file mode 100644 index 5354cdd..0000000 --- a/src/functions/sprite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 8b7c93ae7e0ff03563bdea97febd9d78fdf9c84f Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 10:52:26 -0600 Subject: [PATCH 4/7] Oops. Wrong path --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 91243ca..02a754d 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,4 @@ dist # Generated content public/ -functions/sprite.svg +src/functions/sprite.svg From 6dc4dbdae2e8390fcd0f9874ab5274bfbdf64747 Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 11:05:00 -0600 Subject: [PATCH 5/7] Schnazzier effect --- src/components/Switcher.svelte | 39 +++++++++++++++++++++++++++++----- src/static/global.css | 8 +++++-- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/components/Switcher.svelte b/src/components/Switcher.svelte index 88d8fa2..c0ef16c 100644 --- a/src/components/Switcher.svelte +++ b/src/components/Switcher.svelte @@ -17,9 +17,8 @@ right: var(--gap); list-style: none; margin: 0; - outline: 1px solid red; padding: 0.5rem; - background: white; + background: rgba(0, 0, 0, 0.35); } .visually-hidden { @@ -38,6 +37,30 @@ color: var(--color-gray); text-transform: uppercase; margin: 0; + padding: 0 0 0.15rem 0; + color: white; + transform: color var(--speed-transition) ease-in-out; + position: relative; + } + + .switcher__label::after { + content: ""; + display: block; + position: absolute; + left: 0; + top: 100%; + background-color: currentColor; + width: 100%; + height: 2px; + transition: transform var(--speed-transition) ease-in-out; + } + + .switcher__label--muted { + color: var(--color-gray); + border-color: transparent; + } + .switcher__label--muted::after { + transform: scaleX(0); } .switcher__toggle { @@ -116,8 +139,11 @@ bind:checked class="visually-hidden" /> diff --git a/src/static/global.css b/src/static/global.css index 732a0fb..98ee029 100644 --- a/src/static/global.css +++ b/src/static/global.css @@ -45,8 +45,8 @@ --tap-target: 48px; /* OTHER VISUAL THINGS */ - --speed-transition: 150ms; - --speed-transition-quick: 80ms; + --speed-transition: 1ms; + --speed-transition-quick: 1ms; } /* ------ DARK MODE */ @@ -165,6 +165,10 @@ a:where(:hover, :focus-visible) { } @media screen and (prefers-reduced-motion: no-preference) { + :root { + --speed-transition: 150ms; + --speed-transition-quick: 80ms; + } a::before { transform-origin: middle bottom; transform: translate(0, 100%) scaleY(0); From 1fdaa6146d8eeb1ec3893b21ab6e80bcd44da498 Mon Sep 17 00:00:00 2001 From: Ryan Marx Date: Tue, 20 Dec 2022 11:50:50 -0600 Subject: [PATCH 6/7] More dark modes --- src/components/About.svelte | 33 ++++++--- src/components/Contact.svelte | 2 +- src/components/Header.svelte | 8 ++- src/components/Portfolio.svelte | 14 ---- src/components/Switcher.svelte | 116 +++++++++++++++++++------------- src/components/Tags.svelte | 21 ++++++ src/static/global.css | 12 ++++ 7 files changed, 133 insertions(+), 73 deletions(-) diff --git a/src/components/About.svelte b/src/components/About.svelte index c013dcf..7e62db3 100644 --- a/src/components/About.svelte +++ b/src/components/About.svelte @@ -66,11 +66,7 @@ align-items: start; gap: var(--gap); flex-wrap: wrap; - } - - :global(.dark) .about { - background-color: var(--color-slate); - gap: calc(2 * var(--gap)); + transition: background-color var(--speed-transition) ease-in-out; } .bio { @@ -82,13 +78,10 @@ .work { flex: 1 1 20rem; + align-self: stretch; padding: var(--gap); background: var(--color-apricot-light); - } - - :global(.dark) .work { - background: transparent; - padding: 0; + transition: background var(--speed-transition) ease-in-out; } .work ul { @@ -96,6 +89,26 @@ margin: 0; padding: 0; } + + /* DARK MODE ---------- */ + :global(.dark) .about { + background-color: var(--color-slate); + gap: calc(2 * var(--gap)); + } + + :global(.dark) .work { + background: rgba(0, 0, 0, 0.35); + } + + @media screen and (prefers-color-scheme: dark) { + .about { + background-color: var(--color-slate); + gap: calc(2 * var(--gap)); + } + .work { + background: rgba(0, 0, 0, 0.35); + } + }
diff --git a/src/components/Contact.svelte b/src/components/Contact.svelte index 7586826..d2bb2b7 100644 --- a/src/components/Contact.svelte +++ b/src/components/Contact.svelte @@ -102,7 +102,7 @@