From 5075ef2718dff48693eeb115721dd21bd52515a4 Mon Sep 17 00:00:00 2001 From: James Brechtel Date: Wed, 15 Jul 2026 14:52:49 -0400 Subject: [PATCH] Add neo-brutalist landing page Title 'Sis' in nb-font-heading1, tagline 'For chores and stuff' Warm cream background, centered nb-box layout --- frontend/public/style.css | 1 + frontend/src/components/App.ts | 31 ++++++------------------------- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/frontend/public/style.css b/frontend/public/style.css index b75feea..d9ab245 100644 --- a/frontend/public/style.css +++ b/frontend/public/style.css @@ -2,6 +2,7 @@ body { min-height: 100vh; + background: #fff9e6; } #app { diff --git a/frontend/src/components/App.ts b/frontend/src/components/App.ts index 23c3bd2..5484113 100644 --- a/frontend/src/components/App.ts +++ b/frontend/src/components/App.ts @@ -1,34 +1,15 @@ import m, { Vnode } from "mithril"; -import { checkHealth } from "../api"; - interface AppAttrs {} -interface AppState { - health: string; -} +interface AppState {} export const App: m.Component = { - oninit(vnode: Vnode) { - vnode.state.health = "loading..."; - checkHealth() - .then((msg) => { - vnode.state.health = msg; - m.redraw(); - }) - .catch((err) => { - vnode.state.health = "error: " + String(err); - m.redraw(); - }); - }, - - view(vnode: Vnode) { - return m("main.container", { style: { maxWidth: "720px", margin: "2rem auto" } }, [ - m("h1", "Sis"), - m("p", "Shared household chore tracker."), - m("p", [ - m("strong", "API status: "), - m("span", vnode.state.health), + view(_vnode: Vnode) { + return m(".nb-container", { style: { maxWidth: "640px", margin: "0 auto" } }, [ + m(".nb-box", { style: { marginTop: "4rem", textAlign: "center", padding: "3rem 2rem" } }, [ + m("h1", { class: "nb-font-heading1" }, "Sis"), + m("p", { class: "nb-font-heading2", style: { marginTop: "1rem", opacity: "0.7" } }, "For chores and stuff"), ]), ]); },