Shrink avatar, drop availability signal, slim deploy deps
My Gatsby Deployment pipeline / build-and-deploy (push) Successful in 3m42s
My Gatsby Deployment pipeline / build-and-deploy (push) Successful in 3m42s
Make the portrait smaller (200px) and tighten the hero columns. Remove the "Open to new work" status and neutralise the contact copy so nothing reads as job-seeking; show a plain location in the top bar instead. Deploy/tooling: drop the unneeded `--force` from the install (verified a clean --legacy-peer-deps install + gatsby build both pass). Replace gatsby-plugin-offline with gatsby-plugin-remove-serviceworker to retire the service worker (fixes stale-cache-after-deploy and removes the workbox deprecation). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ jobs:
|
|||||||
node-version: 20
|
node-version: 20
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm install --legacy-peer-deps --force
|
run: npm install --legacy-peer-deps
|
||||||
|
|
||||||
- name: Build Gatsby site
|
- name: Build Gatsby site
|
||||||
run: npx gatsby build
|
run: npx gatsby build
|
||||||
|
|||||||
+1
-1
@@ -19,6 +19,6 @@ module.exports = {
|
|||||||
icon: 'src/assets/images/website-icon-dt.png',
|
icon: 'src/assets/images/website-icon-dt.png',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'gatsby-plugin-offline'
|
'gatsby-plugin-remove-serviceworker'
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -6,8 +6,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"gatsby": "^5.12.12",
|
"gatsby": "^5.12.12",
|
||||||
"gatsby-plugin-manifest": "^5.12.3",
|
"gatsby-plugin-manifest": "^5.12.3",
|
||||||
"gatsby-plugin-offline": "^6.12.3",
|
|
||||||
"gatsby-plugin-react-helmet": "^6.12.0",
|
"gatsby-plugin-react-helmet": "^6.12.0",
|
||||||
|
"gatsby-plugin-remove-serviceworker": "^1.0.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-helmet": "^6.1.0",
|
"react-helmet": "^6.1.0",
|
||||||
|
|||||||
+7
-20
@@ -94,22 +94,10 @@ a { color: inherit; }
|
|||||||
|
|
||||||
.topbar__name { color: var(--ink); text-transform: uppercase; }
|
.topbar__name { color: var(--ink); text-transform: uppercase; }
|
||||||
|
|
||||||
.status {
|
.topbar__place {
|
||||||
display: inline-flex;
|
color: var(--graphite);
|
||||||
align-items: center;
|
|
||||||
gap: 0.55rem;
|
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.16em;
|
letter-spacing: 0.16em;
|
||||||
color: var(--graphite);
|
|
||||||
}
|
|
||||||
|
|
||||||
.status__dot {
|
|
||||||
width: 7px;
|
|
||||||
height: 7px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: var(--signal);
|
|
||||||
box-shadow: 0 0 0 4px var(--signal-weak);
|
|
||||||
animation: pulse 2.6s ease-in-out infinite;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse {
|
@keyframes pulse {
|
||||||
@@ -121,7 +109,7 @@ a { color: inherit; }
|
|||||||
|
|
||||||
.hero {
|
.hero {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.7fr);
|
grid-template-columns: minmax(0, 1fr) auto;
|
||||||
gap: clamp(2rem, 5vw, 4rem);
|
gap: clamp(2rem, 5vw, 4rem);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(3.5rem, 7vw, 5.5rem);
|
padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(3.5rem, 7vw, 5.5rem);
|
||||||
@@ -183,9 +171,8 @@ a { color: inherit; }
|
|||||||
.actions a:hover { color: var(--signal); border-color: var(--signal); }
|
.actions a:hover { color: var(--signal); border-color: var(--signal); }
|
||||||
|
|
||||||
.portrait {
|
.portrait {
|
||||||
justify-self: end;
|
width: 200px;
|
||||||
width: 100%;
|
max-width: 100%;
|
||||||
max-width: 280px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.portrait img {
|
.portrait img {
|
||||||
@@ -426,7 +413,7 @@ a { color: inherit; }
|
|||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
gap: 2.5rem;
|
gap: 2.5rem;
|
||||||
}
|
}
|
||||||
.portrait { justify-self: start; order: -1; max-width: 150px; }
|
.portrait { justify-self: start; order: -1; width: 140px; }
|
||||||
.portrait img { aspect-ratio: 1 / 1; }
|
.portrait img { aspect-ratio: 1 / 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,7 +423,7 @@ a { color: inherit; }
|
|||||||
|
|
||||||
@media (max-width: 460px) {
|
@media (max-width: 460px) {
|
||||||
.topbar { font-size: 0.68rem; letter-spacing: 0.05em; }
|
.topbar { font-size: 0.68rem; letter-spacing: 0.05em; }
|
||||||
.status { letter-spacing: 0.12em; }
|
.topbar__place { letter-spacing: 0.12em; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------- motion ---------- */
|
/* ---------- motion ---------- */
|
||||||
|
|||||||
+3
-6
@@ -91,10 +91,7 @@ const IndexPage = () => (
|
|||||||
<div className="wrap">
|
<div className="wrap">
|
||||||
<header className="topbar">
|
<header className="topbar">
|
||||||
<span className="topbar__name">Dennis Thiessen</span>
|
<span className="topbar__name">Dennis Thiessen</span>
|
||||||
<span className="status">
|
<span className="topbar__place">Bern, Switzerland</span>
|
||||||
<span className="status__dot" aria-hidden="true" />
|
|
||||||
Open to new work
|
|
||||||
</span>
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section className="hero">
|
<section className="hero">
|
||||||
@@ -176,8 +173,8 @@ const IndexPage = () => (
|
|||||||
<h2 className="section__label">Contact</h2>
|
<h2 className="section__label">Contact</h2>
|
||||||
<div>
|
<div>
|
||||||
<p className="contact__intro">
|
<p className="contact__intro">
|
||||||
Open to interesting problems in data, ML and platform engineering, in Switzerland or
|
Always happy to talk about data, ML and platform engineering. Email is the fastest way
|
||||||
remote. Email is the fastest way to reach me.
|
to reach me.
|
||||||
</p>
|
</p>
|
||||||
<a className="contact__email" href={`mailto:${EMAIL}`}>
|
<a className="contact__email" href={`mailto:${EMAIL}`}>
|
||||||
{EMAIL}
|
{EMAIL}
|
||||||
|
|||||||
Reference in New Issue
Block a user