Compare commits

..

No commits in common. "main" and "analog-effects" have entirely different histories.

2 changed files with 78 additions and 7 deletions

View file

@ -12,8 +12,7 @@ jobs:
container: container:
image: node:18 image: node:18
volumes: volumes:
# This is the path mounted in the Forgejo stack's docker-compose - /media/Media:/media/Media
- /sites:/sites
steps: steps:
- name: Checkout code - name: Checkout code
@ -30,15 +29,14 @@ jobs:
- name: Move built site - name: Move built site
run: | run: |
set -e # Exit on any error
if [ "${{ github.ref }}" = "refs/heads/main" ]; then if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "Deploying production..." echo "Deploying production..."
rm -rf /sites/devon.lol && mkdir /sites/devon.lol && mv dist/* /sites/devon.lol rm -rf /media/Media/sites/devon.lol && mkdir /media/Media/sites/devon.lol && mv dist/* /media/Media/sites/devon.lol
echo "Running webmention..." echo "Running webmention..."
echo "ls dist:" echo "ls dist:"
ls dist ls dist
npx webmention /sites/devon.lol/feed.xml --send npx webmention /media/Media/sites/devon.lol/feed.xml --send
else else
echo "Deploying staging..." echo "Deploying staging..."
rm -rf /sites/staging.devon.lol && mkdir /sites/staging.devon.lol && mv dist/* /sites/staging.devon.lol rm -rf /media/Media/sites/staging.devon.lol && mkdir /media/Media/sites/staging.devon.lol && mv dist/* /media/Media/sites/staging.devon.lol
fi fi

View file

@ -50,6 +50,71 @@ body {
grid-template-columns: 1fr; grid-template-columns: 1fr;
justify-items: start; justify-items: start;
column-gap: 3rem; column-gap: 3rem;
/* Styles for CRT effect */
margin: 0;
min-height: 100vh;
/* Text glow */
text-shadow:
2px 2px 0px #000, /* Hard shadow for legibility */
-1px -1px 0 rgba(255,255,255,0.3), /* Slight highlight */
0 0 8px rgba(255, 255, 255, 0.5), /* Soft bloom */
0 0 20px rgba(255, 255, 255, 0.3); /* Wide bloom */
}
/* Scanline overlay pseudo-element */
body::before {
content: " ";
display: block;
position: fixed;
top: 0; left: 0; bottom: 0; right: 0;
z-index: 9999;
pointer-events: none;
background: linear-gradient(
to bottom,
rgba(0,0,0, 0) 50%,
rgba(0,0,0, 0.1) 50%
);
background-size: 100% 4px;
}
/* Rolling refresh rate mismatch bar pseudo-element */
body::after {
content: " ";
display: block;
position: fixed;
z-index: 9999;
top: -5vh;
left: 0; right: 0;
height: 5vh;
pointer-events: none;
background: linear-gradient(
to bottom,
rgba(255,255,255,0) 0%,
rgba(255,255,255,0.05) 50%,
rgba(255,255,255,0) 100%
);
will-change: transform;
animation: scan-drop 15s linear infinite;
}
@keyframes scan-drop {
0% { transform: translateY(0); }
25% { transform: translateY(0); }
50% { transform: translateY(150vh); }
100% { transform: translateY(150vh); }
}
/* Theme scrollbars */
body::-webkit-scrollbar {
width: 12px;
background: #000;
}
body::-webkit-scrollbar-thumb {
background: var(--accent-alt);
border: 1px solid #fff;
} }
body > nav, body > nav,
@ -60,6 +125,10 @@ h4,
h5, h5,
h6 { h6 {
font-family: var(--fancy-font-stack); font-family: var(--fancy-font-stack);
text-shadow:
3px 0px 0px rgba(255, 0, 0, 0.5),
-3px 0px 0px rgba(0, 0, 255, 0.5);
} }
img { img {
@ -126,7 +195,11 @@ h1 {
z-index: 1; z-index: 1;
position: relative; position: relative;
margin-top: 0; margin-top: 0;
text-shadow: 0.1em 0 black; text-shadow:
0.1em 0 black,
/* Chromatic aberration */
-0.03em 0 rgba(255, 0, 0, 0.8),
0.13em 0 rgba(0, 0, 255, 0.6);
color: var(--text-over-background); color: var(--text-over-background);
} }
h1 + article { h1 + article {