replaced good-morning-icon

This commit is contained in:
Oliver Bryan
2026-01-08 12:08:49 +00:00
parent 55bc6da873
commit 649821378e
3 changed files with 87 additions and 88 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -100,7 +100,6 @@ Object.values(
options[i].classList.remove("text-ayu-accent", "font-bold"); options[i].classList.remove("text-ayu-accent", "font-bold");
} }
if (options.length > 0) { if (options.length > 0) {
// options[selectedOptionIndex].classList.add("border-ayu-gutter");
options[selectedOptionIndex].classList.add( options[selectedOptionIndex].classList.add(
"text-ayu-accent", "text-ayu-accent",
"font-bold" "font-bold"

View File

@@ -3,99 +3,99 @@ import ProjectPage from "../../components/ProjectPage.astro";
import Demo from "../../components/Demo.astro"; import Demo from "../../components/Demo.astro";
export const metadata = { export const metadata = {
title: "good morning!", title: "good morning!",
description: description:
"An app for couples or friends to share daily notices with songs and photos", "An app for couples or friends to share daily notices with songs and photos",
date: "October 2025", date: "October 2025",
slug: "good-morning", slug: "good-morning",
image: "/good-morning-icon.svg", image: "/good-morning-icon.png",
url: "https://gm.ob248.com", url: "https://gm.ob248.com",
github: "https://github.com/hex248/good-morning", github: "https://github.com/hex248/good-morning",
hidden: false, hidden: false,
tags: [ tags: [
"Web", "Web",
"React", "React",
"TypeScript", "TypeScript",
"Go", "Go",
"PostgreSQL", "PostgreSQL",
"AWS S3", "AWS S3",
"Databases", "Databases",
"OAuth2", "OAuth2",
"Spotify API", "Spotify API",
"Web", "Web",
], ],
type: "personal", type: "personal",
}; };
--- ---
<ProjectPage metadata={metadata}> <ProjectPage metadata={metadata}>
<p> <p>
"good morning!" is a web app I built to help couples or friends share "good morning!" is a web app I built to help couples or friends share daily
daily notices, songs, and photos with each other. It features a simple notices, songs, and photos with each other. It features a simple and
and intuitive interface for sending and receiving messages, along with intuitive interface for sending and receiving messages, along with support
support for photo attachments. The app is built with React and for photo attachments. The app is built with React and TypeScript on the
TypeScript on the frontend, and Go with PostgreSQL on the backend. Media frontend, and Go with PostgreSQL on the backend. Media files are stored
files are stored securely using Cloudflare R2 (AWS S3). securely using Cloudflare R2 (AWS S3).
</p> </p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4"> <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-ayu-highlight p-4 rounded mt-4"> <div class="bg-ayu-highlight p-4 rounded mt-4">
<h2 class="text-lg text-ayu-green-500 mb-2">Key features</h2> <h2 class="text-lg text-ayu-green-500 mb-2">Key features</h2>
<ul class="list-disc list-inside space-y-1"> <ul class="list-disc list-inside space-y-1">
<li>Create daily notices with photos and Spotify songs</li> <li>Create daily notices with photos and Spotify songs</li>
<li>Simple user interface</li> <li>Simple user interface</li>
<li>Google OAuth2 authentication for user accounts</li> <li>Google OAuth2 authentication for user accounts</li>
</ul> </ul>
</div>
<div class="bg-ayu-highlight p-4 rounded mt-4">
<h2 class="text-lg text-ayu-green-500 mb-2">Technologies</h2>
<ul class="list-disc list-inside space-y-1">
<li>React</li>
<li>TypeScript</li>
<li>Go</li>
<li>PostgreSQL</li>
<li>Cloudflare R2 (AWS S3)</li>
<li>Spotify API</li>
<li>OAuth2 Authentication</li>
<li>Progressive Web App (PWA)</li>
</ul>
</div>
</div> </div>
<div class="mt-4"> <div class="bg-ayu-highlight p-4 rounded mt-4">
<h2 class="text-2xl text-ayu-accent mb-3">Demo</h2> <h2 class="text-lg text-ayu-green-500 mb-2">Technologies</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4"> <ul class="list-disc list-inside space-y-1">
<Demo <li>React</li>
image="/images/good-morning/notice.png" <li>TypeScript</li>
title="Notice from partner" <li>Go</li>
type="boxed" <li>PostgreSQL</li>
/> <li>Cloudflare R2 (AWS S3)</li>
<Demo <li>Spotify API</li>
image="/images/good-morning/no-notice.png" <li>OAuth2 Authentication</li>
title="No notice from partner" <li>Progressive Web App (PWA)</li>
type="boxed" </ul>
/>
<Demo
image="/images/good-morning/create-notice.png"
title="Create notice"
type="boxed"
/>
<Demo
image="/images/good-morning/login-with-google.png"
title="Login with Google"
type="boxed"
/>
<Demo
image="/images/good-morning/partner-pairing.png"
title="Partner pairing"
type="boxed"
/>
<Demo
image="/images/good-morning/me.png"
title="'Me' page"
type="boxed"
/>
</div>
</div> </div>
</div>
<div class="mt-4">
<h2 class="text-2xl text-ayu-accent mb-3">Demo</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<Demo
image="/images/good-morning/notice.png"
title="Notice from partner"
type="boxed"
/>
<Demo
image="/images/good-morning/no-notice.png"
title="No notice from partner"
type="boxed"
/>
<Demo
image="/images/good-morning/create-notice.png"
title="Create notice"
type="boxed"
/>
<Demo
image="/images/good-morning/login-with-google.png"
title="Login with Google"
type="boxed"
/>
<Demo
image="/images/good-morning/partner-pairing.png"
title="Partner pairing"
type="boxed"
/>
<Demo
image="/images/good-morning/me.png"
title="'Me' page"
type="boxed"
/>
</div>
</div>
</ProjectPage> </ProjectPage>