-
Notifications
You must be signed in to change notification settings - Fork 1k
[Dashboard] Add dark mode support to the web dashboard #8937
Description
Feature Request
The SkyPilot dashboard's API server web GUI currently only supports a light theme. The Tailwind CSS configuration already has darkMode: ['class'] enabled and CSS variables defined for both light and dark modes in globals.css, but the dark mode is never activated — there's no theme toggle, no provider, and most components use hardcoded light-only color classes.
Live Demo
Try it here: http://rjwalters.info/skypilot/dashboard/
Click the theme toggle icon (Sun/Moon/Monitor) in the top-right navbar to switch between Light, Dark, and System modes.
Proposal
Add full dark mode support with a Light/Dark/System toggle in the top navbar, using next-themes for theme management. This involves:
- Theme infrastructure —
next-themesThemeProvider + ThemeToggle component - Brand color adaptation — Convert
sky-blue/sky-blue-brightto CSS variables that adapt between modes - Dark logo variant — Separate SVG with lighter fills for dark backgrounds
- Component updates — Add
dark:Tailwind variants across all ~30 component files - Global CSS — Dark mode styles for Shepherd.js tour, charts, CodeMirror, loading skeletons
Implementation: https://github.com/rjwalters/skypilot/tree/feature/dashboard-dark-mode
PR: #8938
Motivation
Dark mode reduces eye strain, improves accessibility, and is a standard expectation for modern web dashboards. The existing codebase already has partial dark mode infrastructure (CSS variables, Tailwind config), making this a natural completion of that work.