Compare commits

...

3 Commits

Author SHA1 Message Date
b4183507a8 chore: remove logo from header and README
All checks were successful
Build and Deploy / Build & Push (push) Successful in 3m3s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:28:39 -04:00
81ff6ea659 feat: roller coaster logo and working favicon
- public/logo.svg: amber coaster silhouette (lift hill + vertical loop +
  camelback) on transparent background; used in header and README
- app/icon.tsx: PNG favicon via Next.js ImageResponse (works in all
  browsers including Safari); renders simplified hill + loop on dark
  rounded-square background
- app/page.tsx: logo img added next to "Thoosie Calendar" title in header
- README.md: logo displayed at top of document
- Remove app/icon.svg (replaced by icon.tsx → PNG)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:26:45 -04:00
8b1c8dcb29 chore: rebrand to Thoosie Calendar, add favicon
- Rename app title and header from "Six Flags Calendar" to "Thoosie Calendar"
- Update layout metadata title and description
- Update README title
- Add app/icon.svg favicon: amber T on dark background, picked up
  automatically by Next.js App Router

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:18:22 -04:00
5 changed files with 82 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
# Six Flags Super Calendar
# Thoosie Calendar
A week-by-week calendar showing operating hours for all Six Flags Entertainment Group theme parks — including the former Cedar Fair parks. Data is scraped from the Six Flags internal API and stored locally in SQLite. Click any park to see its full month calendar and live ride status with current wait times.

59
app/icon.tsx Normal file
View File

@@ -0,0 +1,59 @@
import { ImageResponse } from "next/og";
export const size = { width: 32, height: 32 };
export const contentType = "image/png";
export default function Icon() {
return new ImageResponse(
(
<div
style={{
width: 32,
height: 32,
borderRadius: 8,
backgroundColor: "#0c1220",
display: "flex",
position: "relative",
}}
>
{/* Ground line */}
<div
style={{
position: "absolute",
left: 3,
right: 3,
bottom: 7,
height: 2,
backgroundColor: "#f59e0b",
borderRadius: 1,
}}
/>
{/* Lift hill — semicircle bump */}
<div
style={{
position: "absolute",
left: 3,
bottom: 9,
width: 10,
height: 13,
backgroundColor: "#f59e0b",
borderRadius: "50% 50% 0 0",
}}
/>
{/* Vertical loop — circle outline */}
<div
style={{
position: "absolute",
right: 5,
bottom: 7,
width: 12,
height: 12,
border: "2.5px solid #f59e0b",
borderRadius: "50%",
}}
/>
</div>
),
{ width: 32, height: 32 },
);
}

View File

@@ -2,8 +2,8 @@ import type { Metadata } from "next";
import "./globals.css";
export const metadata: Metadata = {
title: "Six Flags Calendar",
description: "Theme park operating calendars at a glance",
title: "Thoosie Calendar",
description: "Theme park operating hours and live ride status at a glance",
};
export default function RootLayout({ children }: { children: React.ReactNode }) {

View File

@@ -84,7 +84,7 @@ export default async function HomePage({ searchParams }: PageProps) {
color: "var(--color-text)",
letterSpacing: "-0.02em",
}}>
Six Flags Calendar
Thoosie Calendar
</span>
<span style={{

19
public/logo.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 56" fill="none">
<!-- Lift hill + ground + camelback -->
<path
d="M 2 52 L 20 6 L 38 52 L 116 52 Q 134 22 152 52 L 196 52"
stroke="#f59e0b"
stroke-width="3.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
<!-- Vertical loop -->
<circle
cx="75"
cy="33"
r="19"
stroke="#f59e0b"
stroke-width="3.5"
fill="none"
/>
</svg>

After

Width:  |  Height:  |  Size: 434 B