Skip to content

[Dashboard] Add dark mode support to the web dashboard #8937

@rjwalters

Description

@rjwalters

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:

  1. Theme infrastructurenext-themes ThemeProvider + ThemeToggle component
  2. Brand color adaptation — Convert sky-blue/sky-blue-bright to CSS variables that adapt between modes
  3. Dark logo variant — Separate SVG with lighter fills for dark backgrounds
  4. Component updates — Add dark: Tailwind variants across all ~30 component files
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions