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 @@
diff --git a/src/components/Switcher.svelte b/src/components/Switcher.svelte
index c0ef16c..c0f11d1 100644
--- a/src/components/Switcher.svelte
+++ b/src/components/Switcher.svelte
@@ -1,15 +1,19 @@
-
+{/if}
diff --git a/src/components/Tags.svelte b/src/components/Tags.svelte
index 858f577..812072a 100644
--- a/src/components/Tags.svelte
+++ b/src/components/Tags.svelte
@@ -19,6 +19,27 @@
.tag {
flex: 0 0 fit-content;
+ padding: 0.25rem 0.5rem;
+ border-radius: 0.25rem;
+ font: bold var(--font-size-very-small) / var(--line-height) var(--sans-serif-fonts);
+ text-transform: uppercase;
+
+ color: var(--color-purple);
+ border: 1px solid currentColor;
+ background-color: transparent;
+ transition: background-color var(--speed-transition) ease-in-out,
+ border-color var(--speed-transition) ease-in-out;
+ }
+
+ /* ---- DARK MODE ------------ */
+ :global(.dark) .tag {
+ color: var(--color-font-muted);
+ }
+
+ @media screen and (prefers-color-scheme: dark) {
+ .tag {
+ color: var(--color-font-muted);
+ }
}
diff --git a/src/static/global.css b/src/static/global.css
index 98ee029..a4c02bc 100644
--- a/src/static/global.css
+++ b/src/static/global.css
@@ -52,6 +52,7 @@
/* ------ DARK MODE */
.dark {
+ /* Also applied in media query below */
--color-font: #eee;
--color-font-muted: #aaa;
background: var(--color-black);
@@ -177,3 +178,14 @@ a:where(:hover, :focus-visible) {
transform: translate(0, 0) scaleY(1);
}
}
+
+@media screen and (prefers-color-scheme: dark) {
+ :root {
+ /* Also applied in media query below */
+ --color-font: #eee;
+ --color-font-muted: #aaa;
+ }
+ body {
+ background: var(--color-black);
+ }
+}
From 2e37a78e660318ac45ae301593803cd9e6fac254 Mon Sep 17 00:00:00 2001
From: Ryan Marx
Date: Thu, 1 Jun 2023 22:12:07 -0500
Subject: [PATCH 7/7] more eupdates
---
src/App.svelte | 3 ---
src/components/Header.svelte | 1 +
src/components/Tags.svelte | 21 ++++++++++++++++++---
src/config/portfolioItems.json | 22 +++++++++++-----------
src/config/tagDefinitions.json | 2 +-
src/stores.js | 3 +++
6 files changed, 34 insertions(+), 18 deletions(-)
create mode 100644 src/stores.js
diff --git a/src/App.svelte b/src/App.svelte
index 2802a3b..b16552a 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -1,7 +1,4 @@