diff --git a/astro.config.mjs b/astro.config.mjs index b04f6fe..5135dc1 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -34,9 +34,11 @@ export default defineConfig({ AstroPWA({ workbox: { // Not sure how this differs from `includeAssets`... - // globPatterns: ['**/*.{js,css,html,ico,png,svg}'], + globPatterns: ['**/*.{css,js,html,woff2}', 'assets/*.{png,webp}'], // Not sure if we actually want to specify this fallback. - navigateFallback: '/404', + navigateFallback: '/', + // The `chicken` image is 2.2MB, so we increase the limit to 3MB. + maximumFileSizeToCacheInBytes: 3000000, }, // Specify which public assets (in addition to the default html/css/js) diff --git a/src/components/ContentBlock.astro b/src/components/ContentBlock.astro index 61aa29f..3871967 100644 --- a/src/components/ContentBlock.astro +++ b/src/components/ContentBlock.astro @@ -63,6 +63,12 @@ const inactive = !title || !subtitle; /* Just a small nudge for better vertical centering */ padding-top: calc(var(--space-tightest) + 0.1rem); + /* Consider improveing the legibility of text */ + /* + background-color: rgb(255, 255, 255, 0.04); + backdrop-filter: blur(2px); + */ + & > h3 { font-weight: 800; } diff --git a/src/layouts/Page.astro b/src/layouts/Page.astro index d30b4bf..77e59b9 100644 --- a/src/layouts/Page.astro +++ b/src/layouts/Page.astro @@ -27,7 +27,7 @@ const OG_IMAGE = new URL('/dulmage-social.png', Astro.site).href; --- - +
+ + @@ -129,23 +131,45 @@ const OG_IMAGE = new URL('/dulmage-social.png', Astro.site).href; display: flex; justify-content: center; } + + /* --- Page load --- */ + + @keyframes pageLoadScreenCover { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + visibility: hidden; + } + } + + body { + position: relative; + + &::after { + content: ''; + z-index: var(--index-mesosphere); + position: fixed; + inset: 0; + pointer-events: none; + background-color: black; + } + } + + html[data-ready='done'] body::after { + animation: pageLoadScreenCover var(--speed-slower) var(--ease) forwards; + } diff --git a/src/pages/404.astro b/src/pages/404.astro index ad74bec..7756be6 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -47,17 +47,23 @@ import Stars from '@components/Stars.astro'; } } - .ErrorContent { + :global(#Main404) { --color-portfolio: hsl(var(--color-rainbow) 100% 50%); + animation: rainbowSpin 4s linear infinite both; + } - position: relative; + .ErrorContent { display: grid; justify-content: center; gap: var(--space-tight); padding: var(--space); text-align: center; max-width: 90rem; - animation: rainbowSpin 4s linear infinite both; + + /* Page load (fade-in) */ + position: relative; + z-index: var(--index-thermosphere); + animation: fadeIn var(--speed-slower) var(--speed-slow) var(--ease) both; } .ErrorContent h4 a { diff --git a/src/pages/index.astro b/src/pages/index.astro index 42b0d92..b23de78 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -4,6 +4,7 @@ import Page from '@layouts/Page.astro'; import {NAV_ID, NAV_TOGGLE_ID, OVERLAY_ID} from '@data/app'; import {sections} from '@data/sections'; +import Contact from '@components/Contact.astro'; import Hamburger from '@components/Hamburger.astro'; import Navigation from '@components/Navigation.astro'; import Project from '@components/Project.astro'; @@ -14,8 +15,9 @@ import ProjectOverlay from '@sections/ProjectOverlay.astro'; const [intro, ...portfolioSections] = sections; --- -+
Curtis Dulmage. Front end web developer. - Ottawa, Canada. Here are a few of my most recent projects. Please - get in touch if you have any questions. Thank you. + Ottawa, Canada. + Here are a few of my most recent projects. + Please get in touch if you have any questions. Thank you.
- -