Compare commits
3 Commits
e7b72ff95b
...
b4183507a8
| Author | SHA1 | Date | |
|---|---|---|---|
| b4183507a8 | |||
| 81ff6ea659 | |||
| 8b1c8dcb29 |
@@ -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
59
app/icon.tsx
Normal 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 },
|
||||
);
|
||||
}
|
||||
@@ -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 }) {
|
||||
|
||||
@@ -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
19
public/logo.svg
Normal 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 |
Reference in New Issue
Block a user