Files
wordpress-public-workspace/reports/dark-mode-competitor-feature-matrix-2026-08-22.md
jason 331edafb60 Update public WordPress workspace working changes
- GRACEPRESS-PUBLIC-PLUGIN-STANDARDS.md
- PUBLIC-PLUGIN-WORKFLOW.md
- WORDPRESS-ORG-REQUIREMENTS.md
- WORDPRESS-PUBLIC-CONVENTIONS.md
- design/dark-mode-admin-v1.1.0-spec.md
- plugins/bible-reference-tooltips/CHANGELOG.md
- plugins/bible-reference-tooltips/bible-reference-tooltips.php
- plugins/bible-reference-tooltips/readme.txt
2026-10-02 15:57:02 -05:00

13 KiB

Dark Mode Competitor and Feature Matrix

Date: 2026-08-22 Scope: Phase 2 research only Target: Dark Mode by GracePress Source changes: none

Name clarification

No current WordPress.org plugin listing named "Vampire Dark Mode" was found. The likely intended reference is Dracula Dark Mode. Dracula is retained here only as a historical feature and support-case reference because its WordPress.org listing is closed. ProWritingAid also calls its own application theme "Vampire Mode," but that is not a WordPress plugin.

Comparison set

WP Dark Mode by WPPOOL

  • Current version observed: 5.3.9.
  • Active installations observed: 20,000+.
  • Current strengths: mature frontend/admin product, OS preference, persistence, blocks, Elementor, presets, media tuning, device visibility, custom triggers, caching awareness, and broad compatibility work.
  • Useful lessons: placement flexibility, accessibility repair history, caching awareness, and compatibility testing.
  • Poor fit for GracePress: analytics, social sharing, AI preset generation, extensive commercial upsell surfaces, telemetry SDK complexity, and broad feature sprawl.
  • Source: https://wordpress.org/plugins/wp-dark-mode/

Darkify

  • Current version observed: 2.0.1.
  • Active installations observed: 600+.
  • Current strengths: modern sectioned admin, live site preview, settings search, section/all reset, backup/restore, independent frontend/admin/editor controls, mobile controls, selected menu placement, Gutenberg block, and zero frontend output when disabled.
  • Useful lessons: information architecture, preview workflow, independent surfaces, bounded reset, and no-output disabled state.
  • Caution: very large breadth, React build complexity, many commercial features, and a much larger maintenance surface than GracePress currently needs.
  • Source: https://wordpress.org/plugins/darkify/

Dark Mode Toggle by ScriptsTown

  • Current version observed: 1.7.5.
  • Active installations observed: 2,000+.
  • Tested through WordPress 7.1.
  • Current strengths: lightweight activation, persistent user choice, basic switch sizing/position, simple exclusions, and a small administration surface.
  • Useful lesson: the free plugin's value proposition is simplicity.
  • Public review cautions: limited customization, image inversion complaints, and mobile visibility complaints.
  • Source: https://wordpress.org/plugins/dark-mode-toggle/

Dark Mode for WP Dashboard by Naiche

  • Current version observed: 1.3.4.
  • Active installations observed: 3,000+.
  • Current strengths: per-user Light/Dark/Auto preference, instant toolbar toggle, block editor and Site Editor support, CSS custom-property design tokens, developer filters, and no settings-page bloat.
  • Useful lessons: admin preference belongs to each user, editor behavior should be separable, and a stable public body class gives integrations a clean hook.
  • Current support caution: third-party screens and editor canvases still need ongoing compatibility work.
  • Source: https://wordpress.org/plugins/dark-mode-for-wp-dashboard/

Dracula Dark Mode, historical reference

  • Current status: closed on WordPress.org.
  • Useful historical features: frontend/admin mode, menu and floating controls, custom CSS, and extensive styling options.
  • High-value caution cases: dark elements active after admin mode was disabled, preference resetting between pages, visual regression after updates, image degradation, editor/media incompatibility, scrollbar changes, excessive toggle z-index, and collisions with browser dark-mode extensions.
  • The admin-disable complaint closely matches a defect already confirmed in Dark Mode by GracePress.
  • Source: https://wordpress.org/support/plugin/dracula-dark-mode/

Feature decision matrix

Feature Evidence Decision Complexity GracePress direction
Reliable visitor preference All maintained competitors ADOPT Low Define and document deterministic precedence across URL override, manual choice, OS preference, schedule, and default.
Per-user admin preference Dashboard plugin ADOPT Moderate Store Light/Dark/Auto in user meta rather than forcing one site-wide admin state.
Enforced frontend/admin enable switches Darkify and competitor bug reports ADOPT Low Disabled must mean no corresponding CSS, JS, toolbar control, or output.
Independent block/classic editor controls Darkify and Dashboard plugin ADAPT Moderate Separate editor-canvas behavior from general wp-admin after the base admin setting is repaired.
Configurable schedule range Darkify and WP Dark Mode ADOPT Moderate Replace fixed 6 PM to 6 AM with start/end controls and explicit site-timezone behavior.
Cache-safe schedule evaluation WP Dark Mode caching feature ADAPT Moderate Do not control caching plugins. Emit stable configuration and calculate current mode safely at runtime.
Live preview Darkify ADOPT Moderate Preview representative text, links, forms, media, toggle, and transition in desktop/mobile frames.
Settings section navigation Darkify ADOPT Low Use native server-rendered tabs or sidebar sections; React is unnecessary for the current scale.
Settings search Darkify REJECT FOR NOW Moderate Eighteen settings do not justify command-palette complexity. Revisit only if the surface grows materially.
Section reset and reset-all Darkify ADOPT Low Make scope explicit, add confirmation, and preserve unrelated settings.
Unsaved-change indication Modern settings behavior ADOPT Low Show dirty state, save success, and validation errors clearly.
Import/export settings Darkify INVESTIGATE LATER Moderate Useful for agencies, but not required for the first public candidate.
Clean uninstall option Darkify ADOPT Low Add an explicit retention/removal policy and an opt-in cleanup choice.
Device visibility controls WP Dark Mode and Darkify ADOPT Low Desktop/mobile visibility is sufficient; avoid unreliable user-agent dependence.
Floating offsets and safe z-index Competitors and Dracula support ADOPT Low Add horizontal/vertical offsets and use a documented, non-aggressive stacking level.
Dozens of switch styles Commercial competitors REJECT High maintenance Keep three or four accessible, distinctive, fully tested controls.
Switch color customization WP Dark Mode and Darkify ADAPT Moderate Offer a small palette and accessible custom accent, not unrestricted style sprawl.
Selected-menu placement Darkify and Dracula ADAPT Moderate Replace automatic injection into every menu with an explicit block/menu-item placement model.
Shortcode placement Existing GracePress feature KEEP Low Preserve shortcode compatibility and improve accessible output.
Gutenberg toggle block WP Dark Mode and Darkify INVESTIGATE Moderate Valuable public-ecosystem integration, but schedule after the core engine and admin redesign stabilize.
Elementor widget WP Dark Mode and Darkify REJECT FOR FIRST RELEASE High Shortcode and block cover the immediate need without vendor-specific maintenance.
Custom CSS selector trigger WP Dark Mode INVESTIGATE Moderate Potentially useful for existing buttons; requires a safe, understandable binding model.
Page/post picker exclusions Darkify and DarkMySite ADAPT Moderate Replace comma-separated IDs with searchable WordPress content selection plus a validated advanced fallback.
Element exclusions All broad competitors KEEP AND REPAIR Moderate Validate bounded selectors, report invalid entries, and provide common presets.
Allow-only mode DarkMySite/Darkify INVESTIGATE Moderate Useful for difficult sites but can complicate the mental model.
Color presets WP Dark Mode and Darkify INVESTIGATE High Our inversion engine does not naturally map to theme palettes; this implies an engine-level design decision.
Manual background/text/link colors Darkify INVESTIGATE High Do not bolt palette controls onto an inversion engine without a coherent rendering model.
Image brightness/contrast/grayscale Darkify, DarkMySite, WP Dark Mode ADAPT Low Replace the ambiguous media-opacity slider with clearer image/media controls and safe defaults.
Image/video replacement Commercial competitors REJECT High Media-library mapping and responsive source handling are disproportionate for this plugin.
Scrollbar styling Darkify REJECT BY DEFAULT Low It creates browser inconsistency and was a Dracula support complaint; allow custom CSS instead.
Reduced-motion support Accessibility requirement ADOPT Low Disable pulse and veil motion under prefers-reduced-motion unless the user explicitly opts back in.
Descriptive ARIA and pressed state WP Dark Mode repair history ADOPT Low Use native buttons with accessible names, aria-pressed, focus styles, and keyboard operation.
Custom keyboard shortcut recorder Darkify REJECT Moderate Prefer no global shortcut by default; if retained, make it optional and ignore typing/editor contexts.
Stable public CSS class and filters Dashboard plugin ADOPT Low Publish a stable root class and a small documented filter/action contract.
Full Site Editor support Dashboard plugin ADAPT Moderate Add to compatibility testing and repair scope rather than claiming universal support immediately.
Third-party plugin compatibility packs Dashboard plugin INVESTIGATE LATER Ongoing Begin with WordPress core surfaces; add integrations only from reproducible issues.
Analytics and usage counters WP Dark Mode REJECT Privacy/maintenance No tracking or usage analytics belongs in the first public GracePress plugin.
AI color generation WP Dark Mode REJECT High/external Unnecessary external-service, privacy, cost, and review complexity.
Social sharing WP Dark Mode REJECT Unrelated Outside the dark-mode product boundary.
Remote fonts/images/CDN assets Historical competitor cleanups REJECT Privacy Keep every runtime/admin visual asset local and license-compatible.
Premium comparison/upsell panels Commercial competitors REJECT Product policy The public GracePress interface should remain focused and non-spammy.

The first redesigned candidate should remain bounded to these changes:

  1. Repair and actually enforce frontend and admin enable settings.
  2. Move admin preference to per-user Light, Dark, or Auto behavior.
  3. Establish and document mode precedence.
  4. Replace fixed schedule behavior with configurable start/end times evaluated safely at runtime.
  5. Reorganize the admin page into Overview, Behavior, Toggle, Rendering, Advanced, and Help sections.
  6. Build a representative live preview with desktop/mobile width controls.
  7. Add visible dirty, saving, saved, and validation states.
  8. Add section reset and reset-all with explicit scope.
  9. Add desktop/mobile toggle visibility and safe floating offsets.
  10. Keep a small set of accessible toggle styles and add accent-color control.
  11. Replace automatic all-menu injection with a deliberate placement explanation; preserve shortcode support.
  12. Repair page/element exclusions and provide clearer validation.
  13. Replace media opacity language with image/media brightness, contrast, and grayscale controls where technically coherent.
  14. Add reduced-motion behavior.
  15. Repair button semantics, labels, state, keyboard behavior, and shortcut conflicts.
  16. Emit no frontend assets when frontend mode is disabled and no admin engine when admin mode is disabled.
  17. Remove private logging/routing remnants and publish only a small stable integration contract.
  18. Add explicit data-retention and clean-uninstall policy.

Deferred candidates

  • Gutenberg block.
  • Import/export.
  • Custom existing-element triggers.
  • Allow-only rendering.
  • Color-preset or native recoloring engine.
  • Third-party compatibility packs.
  • Multisite network policy UI.

Explicitly rejected direction

  • Analytics or telemetry.
  • AI-generated themes.
  • Social-sharing features.
  • Remote runtime assets.
  • Large premium-style upsell surfaces.
  • Dozens of decorative switches.
  • Image/video replacement.
  • Vendor-specific page-builder widgets in the first release.
  • React solely for the settings page.
  • Claims of universal theme/plugin compatibility without a maintained test matrix.

Phase 2 conclusion

The strongest product opportunity is not matching commercial feature count. It is a smaller, trustworthy dark-mode plugin with deterministic behavior, a much better native admin experience, accessible controls, cache-safe scheduling, no telemetry, and disciplined compatibility claims.

The next phase should convert the recommended 1.1.0 scope into an admin information-architecture specification and visual direction before source edits begin.