Compare commits

...

2 Commits

Author SHA1 Message Date
0335b34ed9 Add retro overlay 2025-01-12 23:28:14 -05:00
fd8d3831a1 Change home link target 2025-01-12 22:35:16 -05:00
8 changed files with 55 additions and 22 deletions

BIN
resources/lines.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

BIN
resources/lines.xcf Normal file

Binary file not shown.

View File

@ -5,6 +5,7 @@ import SiteHeader from '@/components/SiteHeader.vue'
import HomeView from '@/components/HomeView.vue' import HomeView from '@/components/HomeView.vue'
import NotFoundView from '@/components/NotFoundView.vue' import NotFoundView from '@/components/NotFoundView.vue'
import PlaygroundView from '@/components/PlaygroundView.vue' import PlaygroundView from '@/components/PlaygroundView.vue'
import RetroScreenOverlay from '@/components/RetroScreenOverlay.vue'
const routes: { [index: string]: Component } = { const routes: { [index: string]: Component } = {
'/': HomeView, '/': HomeView,
@ -19,6 +20,7 @@ window.addEventListener('hashchange', () => {
</script> </script>
<template> <template>
<RetroScreenOverlay />
<SiteHeader /> <SiteHeader />
<main> <main>
<component :is="routes[currentPath.slice(1) || '/'] || NotFoundView" /> <component :is="routes[currentPath.slice(1) || '/'] || NotFoundView" />

View File

@ -1,9 +1,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import SiteHeader from '@/components/SiteHeader.vue' import SiteHeader from '@/components/SiteHeader.vue'
import NotFoundView from '@/components/NotFoundView.vue' import NotFoundView from '@/components/NotFoundView.vue'
import RetroScreenOverlay from '@/components/RetroScreenOverlay.vue'
</script> </script>
<template> <template>
<RetroScreenOverlay />
<SiteHeader /> <SiteHeader />
<main> <main>
<NotFoundView /> <NotFoundView />

BIN
src/assets/lines.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

View File

@ -1,30 +1,32 @@
:root { :root {
--bg-color: #141414; --bg-color: #141414;
--fg-color: #ff00ff; --fg-color: #ff00ff;
--fg-color-header: #00ffff; --fg-color-header: #00ffff;
--fg-color-link: #ffff40; --fg-color-link: #ffff40;
--fg-color-link-visited: #ff8040; --fg-color-link-visited: #ff8040;
} }
html, html,
body { body {
font-family: 'Courier New', monospace; font-family: 'Courier New', monospace;
background: var(--bg-color); background: var(--bg-color);
color: var(--fg-color); color: var(--fg-color);
font-size: 12pt; font-size: 12pt;
margin: auto; margin: auto;
padding: 0.5em; padding: 0.5em;
} }
button { button {
font-family: 'Courier New', monospace; font-family: 'Courier New', monospace;
margin: 0.5em 0; font-weight: bold;
padding: 0.5em 0.75em; font-size: 1.1em;
margin: 0.5em 0;
padding: 0.5em 0.75em;
} }
progress::-webkit-progress-bar, progress::-webkit-progress-bar,
progress::-moz-progress-bar { progress::-moz-progress-bar {
background: var(--fg-color); background: var(--fg-color);
} }
h1, h1,
@ -33,20 +35,20 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
margin: 0 0 0.25em; margin: 0 0 0.25em;
color: var(--fg-color-header); color: var(--fg-color-header);
} }
a { a {
color: var(--fg-color-link); color: var(--fg-color-link);
} }
a:visited { a:visited {
color: var(--fg-color-link-visited); color: var(--fg-color-link-visited);
} }
section { section {
margin-top: 2em; margin-top: 2em;
} }
section h2, section h2,
@ -54,5 +56,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
border-bottom: 2px solid color(from var(--fg-color-header) srgb r g b / 30%); border-bottom: 2px solid color(from var(--fg-color-header) srgb r g b / 30%);
} }

View File

@ -4,7 +4,7 @@
<section> <section>
<h2>Oops... Page Not Found</h2> <h2>Oops... Page Not Found</h2>
<p>I couldn't seem to find that.</p> <p>I couldn't seem to find that.</p>
<p>You should probably just head back <a href="/">Home</a>.</p> <p>You should probably just head back <a href="/#/">Home</a>.</p>
</section> </section>
</template> </template>

View File

@ -0,0 +1,27 @@
<script lang="ts" setup>
import { onMounted, ref } from 'vue'
const isActive = ref(false)
onMounted(() => {
isActive.value = !window.matchMedia('(prefers-contrast: more)').matches
})
</script>
<template>
<div :class="{ lines: isActive }"></div>
</template>
<style scoped>
.lines {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('../assets/lines.png') transparent;
opacity: 0.25;
z-index: 99;
pointer-events: none;
}
</style>