From e0cd829b9fd078f460f20df27db227f30c935772 Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Thu, 2 Apr 2026 10:31:10 -0700 Subject: [PATCH] Redesign home page with new layout and component system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Two-column layout (My Leagues 2/3, Upcoming Events 1/3) with mobile stack - LeagueRow: square avatar, gradient draft highlight, rank/points display, progress bar - MyLeaguesCard, CreateLeagueCard with shared SectionCardHeader - UpcomingEventsCard: vertical timeline with grouped multi-league events - Shared gradient system: BracktGradients SVG defs, GradientIcon wrapper, brand.ts constants - Button default variant updated to green→cyan gradient - Navbar: plain nav links with gradient hover, support/admin icon buttons - Accessibility fixes: semantic h2 headings, aria-label on LeagueAvatar and nav elements - Storybook stories for all new components Co-Authored-By: Claude Sonnet 4.6 --- app/app.css | 65 +++-- .../league/CreateLeagueCard.stories.tsx | 15 + app/components/league/CreateLeagueCard.tsx | 21 ++ app/components/league/LeagueAvatar.tsx | 52 ++++ app/components/league/LeagueRow.stories.tsx | 99 +++++++ app/components/league/LeagueRow.tsx | 234 ++++++++++++++++ .../league/MyLeaguesCard.stories.tsx | 96 +++++++ app/components/league/MyLeaguesCard.tsx | 59 ++++ app/components/navbar.tsx | 132 ++++----- .../UpcomingEventsCard.stories.tsx | 136 +++++++++ .../sport-season/UpcomingEventsCard.tsx | 264 ++++++++++++++++++ .../UpcomingEventsCardFull.stories.tsx | 121 ++++++++ app/components/ui/BracktGradients.tsx | 19 ++ app/components/ui/GradientIcon.tsx | 30 ++ app/components/ui/SectionCardHeader.tsx | 28 ++ app/components/ui/button.tsx | 5 +- app/components/ui/card.tsx | 28 +- app/lib/brand.ts | 3 + app/root.tsx | 14 +- app/routes/home.tsx | 196 +++++++------ public/apple-touch-icon.png | Bin 3803 -> 6003 bytes public/favicon-96x96.png | Bin 1852 -> 3218 bytes public/favicon.ico | Bin 15086 -> 15086 bytes public/favicon.svg | 44 ++- public/logo.svg | 42 ++- public/logomark.svg | 18 ++ public/site.webmanifest | 8 +- public/web-app-manifest-192x192.png | Bin 4205 -> 5924 bytes public/web-app-manifest-512x512.png | Bin 15910 -> 19458 bytes 29 files changed, 1499 insertions(+), 230 deletions(-) create mode 100644 app/components/league/CreateLeagueCard.stories.tsx create mode 100644 app/components/league/CreateLeagueCard.tsx create mode 100644 app/components/league/LeagueAvatar.tsx create mode 100644 app/components/league/LeagueRow.stories.tsx create mode 100644 app/components/league/LeagueRow.tsx create mode 100644 app/components/league/MyLeaguesCard.stories.tsx create mode 100644 app/components/league/MyLeaguesCard.tsx create mode 100644 app/components/sport-season/UpcomingEventsCard.stories.tsx create mode 100644 app/components/sport-season/UpcomingEventsCard.tsx create mode 100644 app/components/sport-season/UpcomingEventsCardFull.stories.tsx create mode 100644 app/components/ui/BracktGradients.tsx create mode 100644 app/components/ui/GradientIcon.tsx create mode 100644 app/components/ui/SectionCardHeader.tsx create mode 100644 app/lib/brand.ts create mode 100644 public/logomark.svg diff --git a/app/app.css b/app/app.css index f456645..e27fd40 100644 --- a/app/app.css +++ b/app/app.css @@ -4,7 +4,7 @@ @custom-variant dark (&:is(.dark *)); @theme { - --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif, + --font-sans: "Barlow", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } @@ -51,42 +51,43 @@ html { color-scheme: dark; + font-size: 18px; } :root { --radius: 0.625rem; - --background: oklch(0.13 0.015 255); - --foreground: oklch(0.95 0.01 255); - --card: oklch(0.18 0.02 255); - --card-foreground: oklch(0.95 0.01 255); - --popover: oklch(0.18 0.02 255); - --popover-foreground: oklch(0.95 0.01 255); - --primary: oklch(0.623 0.214 259.815); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.22 0.025 255); - --secondary-foreground: oklch(0.95 0.01 255); - --muted: oklch(0.22 0.025 255); - --muted-foreground: oklch(0.65 0.02 255); - --accent: oklch(0.25 0.03 255); - --accent-foreground: oklch(0.95 0.01 255); + --background: #14171e; + --foreground: #ffffff; + --card: #1c1f26; + --card-foreground: #ffffff; + --popover: #1c1f26; + --popover-foreground: #ffffff; + --primary: #adf661; + --primary-foreground: #14171e; + --secondary: #1c1f26; + --secondary-foreground: #ffffff; + --muted: #1c1f26; + --muted-foreground: rgb(255 255 255 / 55%); + --accent: #2ce1c1; + --accent-foreground: #14171e; --destructive: oklch(0.65 0.22 25); - --border: oklch(1 0 0 / 8%); - --input: oklch(1 0 0 / 12%); - --ring: oklch(0.623 0.214 259.815 / 50%); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); + --border: rgb(255 255 255 / 10%); + --input: rgb(255 255 255 / 12%); + --ring: #adf661; + --chart-1: #adf661; + --chart-2: #2ce1c1; + --chart-3: oklch(0.646 0.222 41.116); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.18 0.02 255); - --sidebar-foreground: oklch(0.95 0.01 255); - --sidebar-primary: oklch(0.623 0.214 259.815); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.25 0.03 255); - --sidebar-accent-foreground: oklch(0.95 0.01 255); - --sidebar-border: oklch(1 0 0 / 8%); - --sidebar-ring: oklch(0.623 0.214 259.815 / 50%); - --electric: oklch(0.623 0.214 259.815); + --sidebar: #1c1f26; + --sidebar-foreground: #ffffff; + --sidebar-primary: #adf661; + --sidebar-primary-foreground: #14171e; + --sidebar-accent: #2ce1c1; + --sidebar-accent-foreground: #14171e; + --sidebar-border: rgb(255 255 255 / 10%); + --sidebar-ring: #adf661; + --electric: #2ce1c1; --amber-accent: oklch(0.79 0.17 70); --coral-accent: oklch(0.68 0.19 35); } @@ -98,6 +99,10 @@ html { body { @apply bg-background text-foreground; } + .bg-card { + background: #1c1f26; + border-color: #2a2e38 !important; + } } /* NProgress theme override */ diff --git a/app/components/league/CreateLeagueCard.stories.tsx b/app/components/league/CreateLeagueCard.stories.tsx new file mode 100644 index 0000000..59cade3 --- /dev/null +++ b/app/components/league/CreateLeagueCard.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from "@storybook/react-vite"; +import { CreateLeagueCard } from "./CreateLeagueCard"; + +const meta: Meta = { + title: "League/CreateLeagueCard", + component: CreateLeagueCard, + parameters: { + layout: "padded", + }, +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = {}; diff --git a/app/components/league/CreateLeagueCard.tsx b/app/components/league/CreateLeagueCard.tsx new file mode 100644 index 0000000..fd415d9 --- /dev/null +++ b/app/components/league/CreateLeagueCard.tsx @@ -0,0 +1,21 @@ +import { Swords } from "lucide-react"; +import { Link } from "react-router"; +import { Button } from "~/components/ui/button"; +import { Card, CardContent } from "~/components/ui/card"; +import { SectionCardHeader } from "~/components/ui/SectionCardHeader"; + +export function CreateLeagueCard() { + return ( + + + +

+ Invite friends, pick your sports, and start drafting. +

+ +
+
+ ); +} diff --git a/app/components/league/LeagueAvatar.tsx b/app/components/league/LeagueAvatar.tsx new file mode 100644 index 0000000..4774053 --- /dev/null +++ b/app/components/league/LeagueAvatar.tsx @@ -0,0 +1,52 @@ +const AVATAR_COLORS = [ + "#adf661", + "#2ce1c1", + "#8b5cf6", + "#f59e0b", + "#ef4444", + "#3b82f6", +]; + +function hashLeagueId(id: string): number { + let hash = 0; + for (let i = 0; i < id.length; i++) { + hash = (hash * 31 + id.charCodeAt(i)) & 0xffff; + } + return hash; +} + +interface LeagueAvatarProps { + leagueId: string; + leagueName: string; + /** Tailwind size classes, e.g. "h-10 w-10" (default) or "h-5 w-5" */ + className?: string; + /** Font size class, e.g. "text-sm" (default) or "text-[10px]" */ + textClassName?: string; +} + +export function LeagueAvatar({ + leagueId, + leagueName, + className = "h-10 w-10", + textClassName = "text-sm", +}: LeagueAvatarProps) { + const color = AVATAR_COLORS[hashLeagueId(leagueId) % AVATAR_COLORS.length]; + const initials = + leagueName + .split(/\s+/) + .filter(Boolean) + .slice(0, 2) + .map((w) => w[0].toUpperCase()) + .join("") || "?"; + + return ( +
+ {initials} +
+ ); +} diff --git a/app/components/league/LeagueRow.stories.tsx b/app/components/league/LeagueRow.stories.tsx new file mode 100644 index 0000000..335df58 --- /dev/null +++ b/app/components/league/LeagueRow.stories.tsx @@ -0,0 +1,99 @@ +import type { Meta, StoryObj } from "@storybook/react-vite"; +import { LeagueRow } from "./LeagueRow"; + +const meta: Meta = { + title: "League/LeagueRow", + component: LeagueRow, + parameters: { + layout: "padded", + }, +}; + +export default meta; +type Story = StoryObj; + +const baseLeague = { + leagueId: "league-abc-123", + leagueName: "Alpha Dynasty", + numSports: 2, +}; + +export const DraftInProgress: Story = { + args: { + ...baseLeague, + status: "draft", + seasonId: "season-xyz-456", + }, +}; + +export const ActiveRankUp: Story = { + args: { + ...baseLeague, + leagueName: "Hardcourt Elites", + leagueId: "league-hce-999", + numSports: 1, + status: "active", + currentRank: 4, + previousRank: 6, + totalPoints: 1422.8, + }, +}; + +export const ActiveRankDown: Story = { + args: { + ...baseLeague, + leagueName: "Monday Night Madness", + leagueId: "league-mnm-777", + numSports: 3, + status: "active", + currentRank: 7, + previousRank: 5, + totalPoints: 987.5, + }, +}; + +export const ActiveNoChange: Story = { + args: { + ...baseLeague, + leagueName: "The Bracket Boys", + leagueId: "league-tbb-555", + numSports: 2, + status: "active", + currentRank: 1, + previousRank: 1, + totalPoints: 2810.0, + }, +}; + +export const ActiveNoStanding: Story = { + args: { + ...baseLeague, + leagueName: "Fresh Start", + leagueId: "league-fs-222", + numSports: 2, + status: "active", + }, +}; + +export const PreDraft: Story = { + args: { + ...baseLeague, + leagueName: "Summer Smash League", + leagueId: "league-ssl-333", + numSports: 4, + status: "pre_draft", + seasonId: "season-ssl-999", + }, +}; + +export const Completed: Story = { + args: { + ...baseLeague, + leagueName: "2023 World Tour", + leagueId: "league-wt-111", + numSports: 2, + status: "completed", + currentRank: 3, + totalPoints: 3150.2, + }, +}; diff --git a/app/components/league/LeagueRow.tsx b/app/components/league/LeagueRow.tsx new file mode 100644 index 0000000..7db8546 --- /dev/null +++ b/app/components/league/LeagueRow.tsx @@ -0,0 +1,234 @@ +import { formatDistanceToNow } from "date-fns"; +import { Link } from "react-router"; +import { Button } from "~/components/ui/button"; +import { LeagueAvatar } from "./LeagueAvatar"; + +export interface LeagueRowProps { + leagueId: string; + leagueName: string; + numSports: number; + status: "draft" | "active" | "pre_draft" | "completed"; + seasonId?: string; + currentRank?: number; + totalPoints?: number; + previousRank?: number; + completionPercentage?: number; + draftDateTime?: string | null; + picksUntilMyTurn?: number; + draftPosition?: number; +} + +// ─── Helpers ────────────────────────────────────────────────────────────────── + +function ordinal(n: number): string { + const s = ["th", "st", "nd", "rd"]; + const v = n % 100; + return n + (s[(v - 20) % 10] ?? s[v] ?? s[0]); +} + + +// ─── Shared stat column ─────────────────────────────────────────────────────── + +function StatColumn({ + label, + children, +}: { + label: string; + children: React.ReactNode; +}) { + return ( +
+

+ {label} +

+
{children}
+
+ ); +} + +function StatDivider() { + return
; +} + +// ─── Season progress bar ────────────────────────────────────────────────────── + +function SeasonProgress({ pct, status }: { pct: number; status: "active" | "completed" }) { + const label = status === "completed" ? "100%" : `${pct}%`; + const fill = status === "completed" ? 100 : pct; + return ( +
+
+
+
+ {label} +
+ ); +} + +// ─── Rank change indicator ──────────────────────────────────────────────────── + +function RankChange({ current, previous }: { current: number; previous: number | undefined }) { + if (previous === undefined || previous === current) return null; + const delta = previous - current; + if (delta > 0) { + return ▲{delta}; + } + return ( + + ▼{Math.abs(delta)} + + ); +} + +// ─── Row variants ───────────────────────────────────────────────────────────── + +function DraftRow({ leagueId, leagueName, seasonId, picksUntilMyTurn }: LeagueRowProps) { + const picksLabel = + picksUntilMyTurn === 0 + ? "You're on the clock!" + : picksUntilMyTurn !== undefined + ? `Up in ${picksUntilMyTurn} pick${picksUntilMyTurn === 1 ? "" : "s"}` + : null; + + return ( +
+ +
+

{leagueName}

+
+
+ + + Draft in Progress + +
+ {picksLabel && ( + {picksLabel} + )} +
+
+ {seasonId && ( + + )} +
+ ); +} + +function ActiveRow({ + leagueId, + leagueName, + currentRank, + totalPoints, + previousRank, + completionPercentage = 0, +}: LeagueRowProps) { + const showStats = currentRank !== undefined || totalPoints !== undefined; + + return ( + + +
+

{leagueName}

+ +
+ {showStats && ( +
+ {currentRank !== undefined && ( + + #{currentRank} + + + )} + {currentRank !== undefined && totalPoints !== undefined && } + {totalPoints !== undefined && ( + + + {Math.round(totalPoints).toLocaleString("en-US")} + + + )} +
+ )} + + ); +} + +function PreDraftRow({ + leagueId, + leagueName, + draftDateTime, + draftPosition, +}: LeagueRowProps) { + let draftTimeValue = "Not scheduled"; + if (draftDateTime) { + const draftDate = new Date(draftDateTime); + draftTimeValue = + draftDate > new Date() + ? formatDistanceToNow(draftDate, { addSuffix: true }) + : "Starting soon"; + } + + return ( + + +
+

{leagueName}

+

Pre-Draft

+
+
+ + {draftTimeValue} + + {draftPosition !== undefined && ( + <> + + + + {ordinal(draftPosition)} + + + + )} +
+ + ); +} + +function CompletedRow({ + leagueId, + leagueName, + completionPercentage = 0, +}: LeagueRowProps) { + return ( + + +
+

{leagueName}

+ +
+ + ); +} + +// ─── Public export ──────────────────────────────────────────────────────────── + +export function LeagueRow(props: LeagueRowProps) { + if (props.status === "draft") return ; + if (props.status === "active") return ; + if (props.status === "pre_draft") return ; + return ; +} diff --git a/app/components/league/MyLeaguesCard.stories.tsx b/app/components/league/MyLeaguesCard.stories.tsx new file mode 100644 index 0000000..20f1f1e --- /dev/null +++ b/app/components/league/MyLeaguesCard.stories.tsx @@ -0,0 +1,96 @@ +import type { Meta, StoryObj } from "@storybook/react-vite"; +import { MyLeaguesCard } from "./MyLeaguesCard"; + +const meta: Meta = { + title: "League/MyLeaguesCard", + component: MyLeaguesCard, + parameters: { + layout: "padded", + }, +}; + +export default meta; +type Story = StoryObj; + +export const MixedStatuses: Story = { + args: { + leagues: [ + { + leagueId: "league-abc-123", + leagueName: "Alpha Dynasty", + numSports: 2, + status: "active", + currentRank: 4, + previousRank: 6, + totalPoints: 1422.8, + }, + { + leagueId: "league-hce-999", + leagueName: "Hardcourt Elites", + numSports: 1, + status: "draft", + seasonId: "season-xyz-456", + }, + { + leagueId: "league-ssl-333", + leagueName: "Summer Smash", + numSports: 3, + status: "pre_draft", + }, + { + leagueId: "league-wt-111", + leagueName: "2023 World Tour", + numSports: 2, + status: "completed", + currentRank: 2, + totalPoints: 3150.2, + }, + ], + }, +}; + +export const DraftingOnly: Story = { + args: { + leagues: [ + { + leagueId: "league-abc-123", + leagueName: "World Aquatics Open", + numSports: 2, + status: "draft", + seasonId: "season-wao-789", + }, + ], + }, +}; + +export const ActiveOnly: Story = { + args: { + leagues: [ + { + leagueId: "league-abc-123", + leagueName: "Alpha Dynasty", + numSports: 2, + status: "active", + currentRank: 4, + previousRank: 6, + totalPoints: 1422.8, + }, + { + leagueId: "league-hce-999", + leagueName: "Hardcourt Elites", + numSports: 1, + status: "active", + currentRank: 12, + previousRank: 11, + totalPoints: 2810.0, + }, + ], + viewAllUrl: "/leagues", + }, +}; + +export const Empty: Story = { + args: { + leagues: [], + }, +}; diff --git a/app/components/league/MyLeaguesCard.tsx b/app/components/league/MyLeaguesCard.tsx new file mode 100644 index 0000000..ccfec9f --- /dev/null +++ b/app/components/league/MyLeaguesCard.tsx @@ -0,0 +1,59 @@ +import { Shield } from "lucide-react"; +import { Link } from "react-router"; +import { Card, CardContent } from "~/components/ui/card"; +import { SectionCardHeader } from "~/components/ui/SectionCardHeader"; +import { LeagueRow, type LeagueRowProps } from "./LeagueRow"; + +const STATUS_ORDER: Record = { + draft: 0, + active: 1, + pre_draft: 2, + completed: 3, +}; + +interface MyLeaguesCardProps { + leagues: LeagueRowProps[]; + viewAllUrl?: string; +} + +export function MyLeaguesCard({ leagues, viewAllUrl }: MyLeaguesCardProps) { + const sorted = leagues.toSorted( + (a, b) => STATUS_ORDER[a.status] - STATUS_ORDER[b.status] + ); + + const right = viewAllUrl ? ( + + View All Leagues + + ) : undefined; + + return ( + + + + {sorted.length === 0 ? ( +
+

+ You aren't a member of any leagues yet. +

+ + Create your first league → + +
+ ) : ( +
+ {sorted.map((league) => ( + + ))} +
+ )} +
+
+ ); +} diff --git a/app/components/navbar.tsx b/app/components/navbar.tsx index 6e83d40..40747b7 100644 --- a/app/components/navbar.tsx +++ b/app/components/navbar.tsx @@ -1,12 +1,5 @@ import { useState } from "react"; import { Link } from "react-router"; -import { - NavigationMenu, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - navigationMenuTriggerStyle, -} from "~/components/ui/navigation-menu"; import { Sheet, SheetContent, @@ -14,8 +7,9 @@ import { SheetTitle, SheetTrigger, } from "~/components/ui/sheet"; +import { Button } from "~/components/ui/button"; import { SignedIn, SignedOut, SignInButton, UserButton } from "@clerk/react-router"; -import { MenuIcon } from "lucide-react"; +import { HelpCircle, MenuIcon, Settings } from "lucide-react"; interface NavbarProps { isAdmin: boolean; @@ -27,51 +21,38 @@ export function Navbar({ isAdmin }: NavbarProps) { return (
- {/* Logo */} - - Brackt - + {/* Left: Logo + Nav links */} +
+ + Brackt + + +
- {/* Desktop Navigation */} - - - - - Home - - - - - How To Play - - - - - Rules - - - - - Support - - - {isAdmin && ( - - - Admin - - - )} - - - - {/* Desktop Auth */} -
+ {/* Desktop Right: Support + Admin icons + Auth */} +
+ + + + {isAdmin && ( + + + + )} - + @@ -79,19 +60,33 @@ export function Navbar({ isAdmin }: NavbarProps) {
- {/* Mobile Menu */} -
+ {/* Mobile: icons + Auth + Hamburger */} +
+ + + + {isAdmin && ( + + + + )} - + - + + {/* + Desktop: 3-col grid, left column (My Leagues + Create) spans 2, right (Events) spans 1. + Mobile: single column stacked in order: My Leagues, Upcoming Events, Create League. + */} +
+ {/* My Leagues — order 1 on mobile, col-span-2 on desktop */} +
+ +
+ + {/* Upcoming Events — order 2 on mobile, right column on desktop spanning both rows */} +
+ +
+ + {/* Create a League — order 3 on mobile, below My Leagues on desktop */} +
+ +
- - {upcomingCalendarEvents.length > 0 && ( -
- -
- )} - - {leagues.length === 0 ? ( - - - No Leagues - - You aren't a member of any leagues yet - - - - - - - ) : ( -
- {leagues.map((league) => ( - - - - {league.name} - - Created {new Date(league.createdAt).toLocaleDateString()} - - - - {league.currentSeason ? ( -
-
-

- Current Season -

-

- {league.currentSeason.year} -

-
-
-

Status

-

- {league.currentSeason.status.replace("_", " ")} -

-
-
- ) : ( -

- No active season -

- )} -
-
- - ))} -
- )}
); } diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index b0472764ff006493b5601766879bd320ce25663d..7200a0a0767028b825af95ad7c235ebf817f50c0 100644 GIT binary patch literal 6003 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 literal 3803 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 UQZBOti&i>=YbLri2>Yo20iD!I!2kdN diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png index 5c967322e6fa3352072d3dd638ced5dde84ce08d..d26adec7a57a8d8e64608308f3611a46f44e5831 100644 GIT binary patch delta 3215 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 delta 1838 zcmV+}2hsSF8N3dVBYy`2NklsF(yVMe$a@u?QNwHV^pH?lc*tzG0{YcpHKs6Vyh-vUb`&_CRhvF)TyTS~W0cW1bJ@1E`6*`ze|&h!79Gjrz5y?2@HM^ph8t$*ECP8NXhAg}-|0AU4$ ztG5H*vF&K7m(T z@BlDDo`^T`HGhFCAyk1V0No7aYJxP$cq2~}(kJk0MFD8nfb-q&8KwotoB3$qY6w&y z3c$nyTur(YQ@3q-wr3~<%1je;ABOH4nReN+Kx`I@k?LBa)x0I zZx8iS!$fZ`d;sdzH<*I%Hx$m_WQy7;Ld#+fpBXJUd;nxDU<@Rtq*xPQu)y#EkhFkN z42qrvgnzB>f5Qhr+5#Xt&Nz<7BXk2foD3g;La>05p}!Vu!B-YQmSq;<^7r7q^lDdP zrddd{24WhYU&9JM!Aaj!7C;7dA^uM|iMvxPep-U4qv`>y(I}6iPOJmhTL78VQuI9p zy4Og|v_#lvddkF^|C7{B$)0B9{|&RfX6i;WdZf-B;3p^bO7K9-D3gxya-zWnqgOAx)IC4 z0#HXc0)Ch4EFhdykSPEnPhQZ)EW(IG+!nqmC}04K9knE)a2jUtIm>jF1>mz6WV#W< zPJjDv?6l|00&t(sVbX5*u_5xUou+HR#fBmlIBL#iie5rP>kS6K8xh@vSkP;}bd=a&Y|SVp0Dtg&o@sY@%V>Ya0i@hEM?FtTdIun8Oa`JD z0AS8{?-hC$5!PMleJlt7ZiC7lRWn`D3z#2kF!wITvU{OzQyl=r-GtpueSZnc~Q=I(UKr z_8A?@rv^4ox0vSZ`jWO6h+`)l6$Q}SQni_xwHq-J0E&LcG*M$JsGDwat(uPqYTp8g zwMO|AJt7OBwQ4t<9c?H=2!N+Ud4E@U#DiR~p-Kkph;G&O3jhv?0_bh6-irokV<@F_2TSGn zEr3kJG=~$hn`+gyGp5rqodvkp!v`QAhw_fP8pHdz1u%&M#!txPU;&72S$_bTMxOMH#D0vQM;;9k@%I0bn+P#5QX;qG0~_{?Z^b9nX8}k9=xePO z`x2kjjTr{_1(cR`&gPrDi}UsM7J#e?umxZNXce$ikXEAL5-7xN%U13Ybryo_9accu zDM;TnMXJAS#hy9(lz&q*g)jiU7o?KOZDn`tHG2o!6l75708W(N-Zl?stVR2Mk_8KZ zm5R?UJy*@q*nd-SU>i4?d-0TtacZ9v;^~-j%<<#CNFhS>Z$u?NnzeGj(MvCUZc^Th zD_ZX&?@D^C&;sx%oL|{20Kb&S{Spa@1>9HIOz$c?{er2-&{8G|mITnCN c;rz<>KX&HygvU&HQ2+n{07*qoM6N<$f~&<&v;Y7A diff --git a/public/favicon.ico b/public/favicon.ico index e6ffcefe9e239679c536532874232e7b30f133cb..c9cd242311fc2045cfdb37571c95a1d4641a2b63 100644 GIT binary patch literal 15086 zcmeI(u?@m75CzbWV1SI^28l8iHKR~w5@um4R)KRuO+f)t@+@6WaqJ>bslJ?Kmwm=D z)m!ezS<~^B-!AZ?mHO zH&a5<#4M42MI^q!4O{Yp)R*YPZgM9|KSDplS^oLruLkZjH2EnvLR9%N5-yXC>f)h> zuG~(Z#DpXZKR^7z`vB3)NG1ZClgP_Qka4u${AR%)f901VjCw({RJ<5OXhyn|L^aD3MopgGXzpmUW z@<$sqoVdA3?@|6$cMTNz6HUJChNqKGFxoOxoIhYqFyBd^Pq*v8cI}_e8_YRIO=+db z-%#b>c%PZZgS!(CV(oK@&qFX8uXW?cjz9Y2Y@LP9-HCdP^X(FO@ys7(K<8zDT1AQR7|^>yw7^VSex8VT8WFv83h&p9t8%RypSJB^ zm6s5`2;bRMG4#MI$@=Z=BY6IY)RYW&gXN@y@pqP$f0?WGmmPn*@snX2T40Nag?gI9 z-g^mql0VvuYT+MNeC>7gB!7(cZ;AZrTFgtiGn<~|Pr`vkB7Y++uV7rfgxThgvFkZ; zKf;(j_!eW{@WJRW`z-ubMf1X&*<_nP`r`^n>YfC~9{PO|xg+fwQA;0XT)c$Y=5OKH z&3pp+JVmf3@WPwfTrd7;OL2^+(-;r0p-=t?GbwMgyi3pFZwYuW0b>3nTw9<&YbZ(iW_r4i82MMFVX&tm zP6y2}uQLQa^H~TBYCF;k>eGaR9Uj3KILto_1-*2BO+S>cV3+jE@{w=yb5#yq zo=8kdr}wl9A(fEcds-+2hu`Qui7{>@7-<=gJ?zS0wJ;ti#jcIC6V|i zUHI`Yc^`b7;Qj*%mrl18U713{#X&FU>&WxUF8suL9+Qt_J^C%?O-}2-W7r?q51p^D z$K-e>%KKw+xA?$5oo?<49qdyp$5B>KF#qYo4Din|e9T*qAis4?h^njxZX)?!S2m}^ zW$!)V1Dnh(EldjbwTZ4QPU36IS>``o=mnqd1&DsJj+(*Yo8Kr=$L`q^zNWk{`oiA8 zR1V+uId6F+wyLZB$2N(6*)!T!vi?!mR{XG%-0z02>+;8#JGBcx;R+w^?jYLS;-qNu zQgFgKQ^)-xoPT`4c&7_THzWqm-LP)OjLkcnW_`YOxsyJhf8bxjGxpRvgtmRe4WwVh znZ|OuFXH4!OebpD*ozCs9y`5oV(gE1CVncuXU{x7%cmGZ=L$HiC$ARW#_ZCCXgBkj zAJ}hn(#N~5@kf<6nBy@Wll7AOalTg#T=P5;dNJ(1Kkwv6Ovm2dat_~d{7u2<+8?IC zc}7)W5c07j=|>H$6>*%NQT{8FcAC;1ez)x(`Cr5N+3tiVre_Ubl^Ym7`h{aZ$_762 zn$rJJhpSLOElGSmP$l9xJ$uPN@KgF9uv-~6;>|c`Ep);Y(=)(7!7!Xc@Y;`lF*%cS zVz>C{V~?YazwRJ7m&N;VSrFgBel(A^^Ca8(lTy#})7@TX=Q-5?gcdR8l=i3hYx%N8 zJvhykQq$G0c7t|wiud6s&hnHt)VMpTn!MW&CT~mIf;&Nb#W@G+^?On?;$Gf|pE%m# z7;GNaR5zP7;VS;nQin-r*hoW|qho{WDy; zPl3OfnR^wv+@~myBo>MiY`m~+RHWraH*Em(U&}g`{!bwoN&Lmz8%;U%LIxKEy-#N!S2fNO7k8&3At;~iGo$TRb zFVn;LxC{1wvu8fU-MDR#pZPR=(=T9rK1ynohp52z2l%jEuh*_y{h{{Rngc2J<{VXS z1&4Z!vkkCsLz&p#C%{ihlY3y>}}`Sc-I8~DdkVgkB)KFCtauG z{VDiK$s@yavWE@U*~&EYE|w-^&MmKDHhgGj58d^UuRBE9g0K$tKY{wQ5qzUkzePkJ zSw!zfnu2@q_{N*xS?F2skEu!<&f9OV diff --git a/public/favicon.svg b/public/favicon.svg index b54c356..c038471 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1 +1,43 @@ - \ No newline at end of file +RealFaviconGeneratorhttps://realfavicongenerator.net + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/logo.svg b/public/logo.svg index a5e1a54..b7c99e4 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,14 +1,28 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/logomark.svg b/public/logomark.svg new file mode 100644 index 0000000..90ae1b9 --- /dev/null +++ b/public/logomark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest index ccf313a..59fe895 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -1,6 +1,6 @@ { - "name": "MyWebSite", - "short_name": "MySite", + "name": "Brackt", + "short_name": "Brackt", "icons": [ { "src": "/web-app-manifest-192x192.png", @@ -15,7 +15,7 @@ "purpose": "maskable" } ], - "theme_color": "#ffffff", - "background_color": "#ffffff", + "theme_color": "#2ce1c1", + "background_color": "#14171e", "display": "standalone" } \ No newline at end of file diff --git a/public/web-app-manifest-192x192.png b/public/web-app-manifest-192x192.png index d9eba2ba0d85d8fcd26f341260b91d379d256aa7..28af5a45f91973eb1ecdc38865e9fad9647f8f55 100644 GIT binary patch literal 5924 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 N{j(-IHCm3*{{p0gUPS-^ diff --git a/public/web-app-manifest-512x512.png b/public/web-app-manifest-512x512.png index 9093a20baeb380f73cc3fc2e7395fb8c8b3f4ba7..a26fbe2b2aab3598702e05517b76594346afa4d6 100644 GIT binary patch literal 19458 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 QA>f~?qSmeQo0cK}7y6uocK`qY literal 15910 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 bK-{I!_UQDuWU}%K0{`i2n`k}KaE$mrb@&7d