Portfolio / JavaScript lane / Doordash-Enhanced
EXT

Doordash-Enhanced

DoorDash dark mode & features

JavaScriptExtension
Delivery
Source-first
Browse code, README, and release notes on GitHub.
Primary lane
JavaScript lane
The clearest adjacent context for this project inside the portfolio.
Freshness
Updated Apr 26, 2026
Latest release
No tag yet
README is the clearest project overview right now.

Preview

Using the generated project card as a clean fallback until a live capture is available.

Doordash-Enhanced card

Source at github.com/SysAdminDoc/Doordash-Enhanced.

README

Cached at build time, cleaned up for in-site reading, and linked back to the canonical GitHub source.

DoorDash Enhanced

Version License Platform Userscript

A comprehensive userscript that transforms the DoorDash experience with dark mode, ad blocking, fee transparency, checkout automation, and polished UI enhancements — all togglable from a built-in settings panel.


Installation

  1. Install Tampermonkey or Violentmonkey in your browser
  2. **Click here to install DoorDash Enhanced**
  3. Confirm the installation when prompted

To access settings, press Alt+P or click the gear icon in the DoorDash header bar.


Features

Appearance

Feature Description Default
Dark Mode Full dark theme using DoorDash's own Prism design token overrides — covers all pages including checkout, Mapbox maps, and the sidebar On
Wide Layout Stretches content to use the full browser width On
Checkout Page Styling Glassmorphism on checkout sections, animated Place Order button with shimmer, hover effects on line items, and staggered entrance animations On
Store Page Polish Compact spacing for convenience/retail store pages, rounded card corners, hover lift on item cards, image zoom, sidebar dark mode text fixes, and amber-glow rating badges On
Visual Flair & Animations Animated "Top Dasher" badges with shimmer, staggered store card entrances, bouncy button hovers, cart ring pulse, notification bell wiggle, and more On

Ad Blocking

Feature Description Default
Block DashPass Promos Hides DashPass upsell banners and promotions across all pages On
Block Popups & Overlays Auto-closes promotional modals, sheets, and overlay dialogs On
Hide Sponsored Listings Removes sponsored store cards on the homepage, sponsored items in retail stores, and entire "Sponsored" carousels — uses a TreeWalker text-node approach that doesn't rely on fragile CSS class hashes On

Transparency

Feature Description Default
Fee Highlighter Color-codes fees on the checkout page (green for subtotal, red for fees, blue for delivery) so you can instantly see the cost breakdown On
Auto-Expand Fee Details Automatically expands collapsed fee breakdowns on the checkout page On

Checkout

Feature Description Default
Default Tip Three modes: Off, Remember Last (saves your tip choice and auto-selects it next checkout), or Fixed Amount (enter a dollar amount that's always applied). If the amount matches a preset button it clicks it; otherwise it fills the "Other" custom input Off

Utilities

Feature Description Default
Running Price Calculator Displays an estimated running total while browsing a store menu On
Sticky Cart Button Keeps the cart button visible while scrolling On
Keyboard Shortcuts Alt+S search, Alt+C cart, Alt+H home, Alt+O orders, Alt+P settings On
Search History Remembers previous searches and provides autocomplete suggestions On

UI Cleanup

Feature Description Default
Hide Hero Carousel Removes the large promotional carousel at the top of the homepage On
Clean Footer Strips down the cluttered footer On
Hide Turnstile Banners Hides Cloudflare turnstile verification banners when not actively needed On
Hide Electronics Removes the Electronics category from the sidebar navigation On

How It Works

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│   Tampermonkey    │────>│  DoorDash        │────>│  Settings Panel  │
│                  │     │  Enhanced IIFE   │     │                  │
│  Injects script  │     │                  │     │  Toggle features │
│  on page load    │     │  19 features     │     │  per-feature     │
└──────────────────┘     │  MutationObserver│     │  GM_setValue     │
                         │  SPA nav handler │     └──────────────────┘
                         └──────────────────┘
                                  │
                    ┌─────────────┼─────────────┐
                    │             │             │
              ┌─────▼─────┐ ┌────▼────┐ ┌──────▼──────┐
              │  CSS-Only  │ │ Observer│ │  Hybrid     │
              │  Features  │ │ Features│ │  Features   │
              │            │ │         │ │             │
              │ Dark Mode  │ │ Sponsor │ │ Tip Default │
              │ Wide Layout│ │ Blocking│ │ Fee Highlite│
              │ Flair CSS  │ │ Popups  │ │ Price Calc  │
              └────────────┘ └─────────┘ └─────────────┘

Key design decisions:

  • Prism Design Tokens — Dark mode overrides DoorDash's own CSS custom properties (--usage-color-*, --comp-color-*) rather than brute-forcing colors, so it stays consistent with their design system
  • SPA-Aware — Hooks into history.pushState / replaceState / popstate to re-apply features on DoorDash's client-side navigation
  • MutationObserver — Each feature that needs DOM watching uses a shared safeObserver pattern with childList: true, subtree: true
  • Text-Based Sponsored Detection — Uses TreeWalker to find literal "Sponsored" text nodes, then walks up the DOM to find card boundaries. No fragile class-hash selectors that break when DoorDash rebuilds
  • GM_getValue / GM_setValue — All settings persist across sessions via the userscript manager's storage API

Configuration

All features are togglable from the built-in settings panel:

  • Alt+P — Open the settings panel from any DoorDash page
  • Gear icon — Click the gear icon injected into the DoorDash header bar
  • Tampermonkey menu — Right-click the Tampermonkey icon → "Open Settings"

Settings are organized into groups: Appearance, Ad Blocking, Transparency, Checkout, Utilities, and UI Cleanup. Each feature can be independently enabled or disabled with instant apply/remove — no page reload required.

The Default Tip feature uses a dropdown selector:

  • Off — No tip automation
  • Remember Last — Stores the last tip you selected and auto-picks it next time
  • Fixed Amount — Shows a $ [____] input where you set a specific dollar amount

Reset All Settings is available at the bottom of the panel to restore defaults.


Keyboard Shortcuts

Shortcut Action
Alt + P Open/close settings panel
Alt + S Focus search bar
Alt + C Open cart
Alt + H Navigate to home
Alt + O Navigate to orders

FAQ / Troubleshooting

Q: The page disappears or looks broken after enabling the script. DoorDash uses React hydration which can conflict with early DOM manipulation. The script runs at document-idle and avoids modifying React-managed attributes to prevent hydration mismatches (React errors #418/#423). If you see issues, try disabling individual features to isolate the conflict.

Q: Sponsored listings still appear. The sponsored blocker runs on a 1.5-second interval to catch dynamically loaded content. If cards appear briefly before hiding, this is expected — the TreeWalker needs the DOM to render before it can find the "Sponsored" text nodes. Scrolling down to trigger lazy-loaded content will trigger a fresh sweep.

Q: Dark mode doesn't cover a specific element. DoorDash frequently ships new components. Open an issue with a screenshot and the element's CSS selector (right-click → Inspect), and it can be added to the Prism token overrides.

Q: The Default Tip isn't applying on checkout. The tip picker must be visible on the page for the script to interact with it. If DoorDash changes the tip UI structure, the "Other" custom input filling may need selector updates. The script uses React-compatible nativeInputValueSetter to set values.


Contributing

Issues, bug reports, and pull requests are welcome. When reporting a bug, please include:

  • Browser and version
  • Userscript manager and version
  • Console errors (F12 → Console tab, filter for [DD Enhanced])
  • Which feature(s) were enabled
  • Screenshot if it's a visual issue

License

MIT — Do whatever you want with it.

Read on GitHub → github.com/SysAdminDoc/Doordash-Enhanced