gaming-dashboard Svelte Themes

Gaming Dashboard

โšกGaming Dashboard - A high-performance, real-time gaming dashboard built with SvelteKit. Designed for gamers who want to track stats, view match history, and monitor live sessions with a sleek, dark-themed interface.

๐ŸŽฎ Gaming Dashboard

A sleek, dark-themed real-time gaming dashboard built with SvelteKit, TypeScript, and Tailwind CSS. Tracks player stats, match history, live activity, leaderboard rankings, and active session data โ€” all in one responsive interface.


โœจ Features

  • Stats Grid โ€” Live K/D ratio, win rate, average damage, hours played, headshot %, and MMR with weekly deltas
  • Performance Chart โ€” 7-day bar chart with kills / wins / damage tabs and weekly averages
  • Recent Matches โ€” Scrollable match history with W/L results, KDA breakdown, map icons, and timestamps
  • Leaderboard โ€” Live-ranked player table with MMR, wins, K/D, and current-user highlighting
  • Live Activity Feed โ€” Real-time event stream (kills, objectives, level-ups) that auto-updates every 5 seconds
  • Friends Panel โ€” Online/offline friend list with in-game status and hover-reveal invite buttons
  • Session Card โ€” Active match tracker with a live elapsed timer, score, ping indicator, and damage dealt
  • Toast Notifications โ€” Action feedback system (invite sent, top-up confirmed, match found, etc.)
  • Collapsible Sidebar โ€” Icon-only or full-label sidebar toggle with Quick Match button
  • Reactive State โ€” All components share a central Svelte store; no prop drilling

๐Ÿ“ Project Structure

gaming-dashboard/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dashboard/          # Core dashboard panels
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ StatsGrid.svelte
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ PlayerChart.svelte
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ RecentMatches.svelte
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Leaderboard.svelte
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ LiveActivity.svelte
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ui/                 # Shared UI components
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Sidebar.svelte
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Toast.svelte
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ FriendsPanel.svelte
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ SessionCard.svelte
โ”‚   โ”‚   โ”œโ”€โ”€ stores/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ index.ts            # Global Svelte stores + helpers
โ”‚   โ”‚   โ”œโ”€โ”€ types.ts                # TypeScript interfaces
โ”‚   โ”‚   โ””โ”€โ”€ utils.ts                # Formatters + mock data generators
โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ””โ”€โ”€ +page.svelte            # Main dashboard page
โ”‚   โ”œโ”€โ”€ app.css                     # Global styles + Tailwind layers
โ”‚   โ””โ”€โ”€ app.html                    # HTML shell
โ”œโ”€โ”€ static/                         # Static assets (avatars, game images)
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ svelte.config.js
โ”œโ”€โ”€ tailwind.config.js
โ”œโ”€โ”€ vite.config.ts
โ””โ”€โ”€ tsconfig.json

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v18 or higher
  • npm v9 or higher

Installation

# Clone the repository
git clone https://github.com/your-username/gaming-dashboard.git
cd gaming-dashboard

# Install dependencies
npm install

# Start the development server
npm run dev

Open your browser at http://localhost:5173.

Build for Production

npm run build
npm run preview

๐Ÿ› ๏ธ Tech Stack

Technology Purpose
SvelteKit Full-stack framework and routing
TypeScript Type safety across all components
Tailwind CSS Utility-first styling
Vite Build tool and dev server
Svelte Stores Reactive global state management

๐ŸŽจ Design System

The dashboard uses a custom dark theme defined in tailwind.config.js and app.css:

  • Primary accent: #F5C400 (gold yellow)
  • Background scale: dark-900 โ†’ dark-400 (#0D0D0D to #333333)
  • Display font: Barlow Condensed โ€” used for headings, stat values, and labels
  • Body font: DM Sans โ€” used for UI text and descriptions
  • Mono font: JetBrains Mono โ€” used for numbers, timestamps, and code-like labels

๐Ÿ”Œ Connecting Real Data

All mock data lives in src/lib/utils.ts. To wire in a real backend:

  1. Replace mock generators โ€” swap generateMatches(), generateLeaderboard(), etc. with API calls in your +page.svelte load function or a SvelteKit +page.server.ts
  2. Live updates โ€” replace the setInterval in LiveActivity.svelte and SessionCard.svelte with a WebSocket connection (e.g. Socket.io or Supabase Realtime)
  3. Store updates โ€” push data directly into the Svelte stores (activityFeed, session, leaderboard) and every subscribed component will re-render automatically
// Example: push a real WebSocket event into the activity feed
import { pushActivity } from '$lib/stores';

socket.on('kill_event', (data) => {
  pushActivity({ type: 'kill', message: data.message });
});

๐Ÿ“ฆ Available Scripts

npm run dev        # Start development server with HMR
npm run build      # Build for production
npm run preview    # Preview the production build locally
npm run check      # Run svelte-check for type errors
npm run check:watch  # Run svelte-check in watch mode

๐Ÿค Contributing

Contributions are welcome! To get started:

  1. Fork the repository
  2. Create a new branch: git checkout -b feature/your-feature-name
  3. Make your changes and commit: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Open a Pull Request

Please make sure npm run check passes before submitting.


๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ™ Acknowledgements

  • UI design inspired by the MGM Gaming Dashboard concept
  • Icons provided via emoji for zero-dependency rendering
  • Fonts served by Google Fonts

Top categories

Loading Svelte Themes