diff --git a/app/globals.css b/app/globals.css index 1c2b16d..5621fc0 100644 --- a/app/globals.css +++ b/app/globals.css @@ -42,78 +42,67 @@ --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); - --radius-2xl: calc(var(--radius) + 8px); - --radius-3xl: calc(var(--radius) + 12px); - --radius-4xl: calc(var(--radius) + 16px); } :root { - --radius: 0.625rem; - --background: oklch(1 0 0); - --foreground: oklch(0.141 0.005 285.823); - --card: oklch(1 0 0); - --card-foreground: oklch(0.141 0.005 285.823); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.141 0.005 285.823); - --primary: oklch(0.21 0.006 285.885); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.967 0.001 286.375); - --secondary-foreground: oklch(0.21 0.006 285.885); - --muted: oklch(0.967 0.001 286.375); - --muted-foreground: oklch(0.552 0.016 285.938); - --accent: oklch(0.967 0.001 286.375); - --accent-foreground: oklch(0.21 0.006 285.885); - --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.92 0.004 286.32); - --input: oklch(0.92 0.004 286.32); - --ring: oklch(0.705 0.015 286.067); - --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); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.141 0.005 285.823); - --sidebar-primary: oklch(0.21 0.006 285.885); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.967 0.001 286.375); - --sidebar-accent-foreground: oklch(0.21 0.006 285.885); - --sidebar-border: oklch(0.92 0.004 286.32); - --sidebar-ring: oklch(0.705 0.015 286.067); + --radius: 0rem; + /* HarifSport orange theme colors */ + --background: #121212; + --foreground: #ffffff; + --card: #1e1e1e; + --card-foreground: #ffffff; + --popover: #1e1e1e; + --popover-foreground: #ffffff; + --primary: #ff9800; + --primary-foreground: #ffffff; + --secondary: #222222; + --secondary-foreground: #a0a0a0; + --muted: #1a1a1a; + --muted-foreground: #808080; + --accent: #ff9800; + --accent-foreground: #121212; + --destructive: #ef4444; + --border: #2a2a2a; + --input: #222222; + --ring: #ff9800; + + /* HarifSport specific */ + --hs-orange: #ff9800; + --hs-maroon: #852222; + --hs-dark-grey: #1a1a1a; + --hs-odds-bg: #2a2a2a; + --hs-odds-text: #ff9800; + --hs-header-bg: #121212; + --hs-live-red: #ff3b3b; } .dark { - --background: oklch(0.141 0.005 285.823); - --foreground: oklch(0.985 0 0); - --card: oklch(0.21 0.006 285.885); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.21 0.006 285.885); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.92 0.004 286.32); - --primary-foreground: oklch(0.21 0.006 285.885); - --secondary: oklch(0.274 0.006 286.033); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.274 0.006 286.033); - --muted-foreground: oklch(0.705 0.015 286.067); - --accent: oklch(0.274 0.006 286.033); - --accent-foreground: oklch(0.985 0 0); + --background: oklch(0.13 0.008 250); + --foreground: oklch(0.93 0.005 250); + --card: oklch(0.17 0.01 250); + --card-foreground: oklch(0.93 0.005 250); + --popover: oklch(0.17 0.01 250); + --popover-foreground: oklch(0.93 0.005 250); + --primary: oklch(0.55 0.18 145); + --primary-foreground: oklch(0.98 0 0); + --secondary: oklch(0.22 0.01 250); + --secondary-foreground: oklch(0.85 0.005 250); + --muted: oklch(0.2 0.008 250); + --muted-foreground: oklch(0.58 0.01 250); + --accent: oklch(0.55 0.18 145); + --accent-foreground: oklch(0.98 0 0); --destructive: oklch(0.704 0.191 22.216); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.552 0.016 285.938); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.21 0.006 285.885); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.274 0.006 286.033); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(1 0 0 / 10%); - --sidebar-ring: oklch(0.552 0.016 285.938); + --border: oklch(0.25 0.01 250); + --input: oklch(0.22 0.01 250); + --ring: oklch(0.55 0.18 145); + --sidebar: oklch(0.15 0.01 250); + --sidebar-foreground: oklch(0.9 0.005 250); + --sidebar-primary: oklch(0.55 0.18 145); + --sidebar-primary-foreground: oklch(0.98 0 0); + --sidebar-accent: oklch(0.22 0.01 250); + --sidebar-accent-foreground: oklch(0.93 0.005 250); + --sidebar-border: oklch(0.25 0.01 250); + --sidebar-ring: oklch(0.55 0.18 145); } @layer base { @@ -122,5 +111,40 @@ } body { @apply bg-background text-foreground; + font-size: 13px; } +} + +/* HarifSport odds button animation */ +@keyframes odds-flash { + 0% { background-color: oklch(0.55 0.18 145); } + 50% { background-color: oklch(0.7 0.22 80); } + 100% { background-color: oklch(0.55 0.18 145); } +} + +.odds-selected { + animation: odds-flash 0.4s ease; +} + +/* Live pulse */ +@keyframes live-pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.4; } +} + +.live-dot { + animation: live-pulse 1.2s ease-in-out infinite; +} + +/* Scrollbar */ +::-webkit-scrollbar { + width: 4px; + height: 4px; +} +::-webkit-scrollbar-track { + background: var(--background); +} +::-webkit-scrollbar-thumb { + background: var(--border); + border-radius: 2px; } \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index e89cbde..f2e2fe6 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,9 +1,7 @@ import type { Metadata } from "next" import { Geist, Geist_Mono } from "next/font/google" import "./globals.css" -import { SiteHeader } from "@/components/layout/site-header" -import { SportsSidebar } from "@/components/layout/sports-sidebar" -import { RightPanel } from "@/components/layout/right-panel" +import LayoutClientWrapper from "@/components/layout/layout-client-wrapper" const geistSans = Geist({ variable: "--font-geist-sans", @@ -16,8 +14,8 @@ const geistMono = Geist_Mono({ }) export const metadata: Metadata = { - title: "Harifsport", - description: "Harifsport-style sportsbook interface built with Next.js", + title: "Harifsport - Sports Betting", + description: "Harifsport sportsbook - Live betting, in-play events, and more", } export default function RootLayout({ @@ -30,16 +28,8 @@ export default function RootLayout({
-