From 14172f9dd64ce91ba5cf51f82c53deb6a81d68a6 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Wed, 3 Jun 2026 17:22:48 -0700 Subject: create daily/unlimited mode, CDN audio file for daily mode --- src/pages/LandingPage.tsx | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/pages/LandingPage.tsx (limited to 'src/pages/LandingPage.tsx') diff --git a/src/pages/LandingPage.tsx b/src/pages/LandingPage.tsx new file mode 100644 index 0000000..e1d29cd --- /dev/null +++ b/src/pages/LandingPage.tsx @@ -0,0 +1,92 @@ +import React from "react"; +import { useNavigate } from "react-router-dom"; +import styled from "styled-components"; + +import { appName } from "../constants"; + +const Container = styled.div` + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 60vh; + gap: 24px; +`; + +const Title = styled.h1` + font-family: "Roboto Mono", monospace; + font-size: 2rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--cl-white); +`; + +const Subtitle = styled.p` + font-family: "Roboto Mono", monospace; + font-size: 0.9rem; + color: var(--cl-gray-6); + margin: 0; +`; + +const ButtonGroup = styled.div` + display: flex; + gap: 16px; + margin-top: 16px; + + @media (max-width: 480px) { + flex-direction: column; + width: 100%; + padding: 0 24px; + } +`; + +const ModeButton = styled.button<{ variant?: "green" | "purple" }>` + font-family: "Roboto Mono", monospace; + font-size: 1rem; + font-weight: 600; + padding: 16px 32px; + border: 2px solid + ${({ variant }) => + variant === "purple" ? "var(--cl-purple, #a855f7)" : "var(--cl-green-6)"}; + background: transparent; + color: ${({ variant }) => + variant === "purple" ? "var(--cl-purple, #a855f7)" : "var(--cl-green-6)"}; + cursor: pointer; + transition: all 0.15s ease; + + &:hover { + background: ${({ variant }) => + variant === "purple" ? "var(--cl-purple, #a855f7)" : "var(--cl-green-6)"}; + color: var(--cl-black, #000); + } +`; + +const ModeDescription = styled.span` + display: block; + font-size: 0.7rem; + font-weight: 400; + color: var(--cl-gray-6); + margin-top: 4px; +`; + +export function LandingPage() { + const navigate = useNavigate(); + + return ( + + {appName} + Choose a game mode + + navigate("/daily")}> + Daily + One song per day + + navigate("/unlimited")}> + Unlimited + Endless songs, no limits + + + + ); +} -- cgit v1.2.3