mcpField
D
dark-mode-testing

dark-mode-testing

github.com/revitalb-portTesting & quality059 installsUpdated 10w ago
Repository

About dark-mode-testing

A testing skill for checking whether an app’s dark theme renders correctly, using light and dark screenshots and an accessibility tree. It guides browser-based inspection and issue reporting.

Key features

  1. 01Capture light and dark screenshots
  2. 02Toggle theme through several methods
  3. 03Inspect accessibility tree and screenshots
  4. 04Check contrast, colors, borders, and inputs
  5. 05Report issues for correction

Use cases

  1. 01Review a web page’s dark-theme rendering
  2. 02Find text that disappears on dark backgrounds
  3. 03Identify light-only borders or form fields
  4. 04Document fixes and retest the page

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/revitalb-port/skills-registry-demo --skill dark-mode-testing

After installing, type/dark-mode-testingin Claude Code to confirm it loaded.

Details

From the project README

Dark Mode Testing

Verify that dark mode works correctly by toggling themes and comparing.

Workflow

1. Open the App

Navigate to the target page using browser_navigate.

2. Screenshot Light Mode

Take a screenshot of the page in its default (light) state using browser_take_screenshot.

3. Toggle Dark Mode

Toggle dark mode using one of these methods (try in order):

  1. Class toggle: Execute JS to add dark class to <html>:
    document.documentElement.classList.toggle('dark')
    
  2. Attribute toggle: Set data-theme="dark":
    document.documentElement.setAttribute('data-theme', 'dark')
    
  3. Media query: Use browser to emulate prefers-color-scheme: dark
  4. UI toggle: Find the theme toggle button in browser_snapshot and click it
4. Screenshot Dark Mode

Take another screenshot after toggling.

5. Inspect for Issues

Check the browser_snapshot aria tree and screenshots for:

  • White flashes: Elements with hardcoded bg-white instead of bg-white dark:bg-slate-900
  • Invisible text: Text color that matches the dark background (e.g. black text on dark bg)
  • Missing borders: Borders using light-only colors that disappear on dark backgrounds
  • Contrast violations: Text that's too low-contrast against the dark background (need 4.5:1)
  • Hardcoded colors: Any #ffffff, #000000, white, black in inline styles
  • Images: Logos or icons that don't have dark mode variants
  • Shadows: Box shadows that are invisible on dark backgrounds
  • Form inputs: Input fields that keep white backgrounds in dark mode
6. Report
Dark Mode Test:
  Light mode: OK
  Dark mode issues found:
    - Header logo: white logo invisible on dark bg (needs dark variant)
    - Card borders: border-gray-200 invisible on dark bg → add dark:border-gray-700
    - Footer text: hardcoded #333 → use text-gray-900 dark:text-gray-100

Fix each issue and re-test.

Comments

Markdown supported