Updated September 2026 · Written and maintained by the Progression Agency strategy team
Progression Agency provides dark mode website design for brands, products, studios and publishers across the United States and worldwide: a dark theme built from design tokens rather than inverted colors, automatic switching with prefers-color-scheme plus a manual toggle that remembers the choice, contrast that meets WCAG 2.2 in both themes, images, charts and embeds that survive the switch, and a dark website that loads in the right theme without a flash.
On this page · 14 sections
- What dark mode website design means
- What a dark mode website must get right
- Dark-only, light-only or both
- Platform choices for dark mode websites
- Engineering details we handle
- SEO and AI search for dark mode websites
- How we design and build a dark mode website
- What dark mode website design costs
- Dark mode website design by site type
- What to gather before a dark mode website project starts
- Measuring a dark mode website after launch
- Mistakes that make dark themes look unfinished
- Template, theme add-on or agency: which fits
- How Progression Agency builds dark mode websites
The short answerDark mode is a second theme, not a filter. A dark website that works starts with color tokens for surface, text, border and accent defined for both themes, dark surfaces that are dark gray rather than pure black, text contrast checked against WCAG 2.2, and a switch that respects the operating system through prefers-color-scheme while letting the visitor override it. As planning figures, adding a dark theme to an existing site costs $4,000-$12,000 and takes 3-5 weeks; a new site designed for both themes $12,000-$40,000 in 6-10 weeks; a design-system-level dark mode across site and product $40,000-$120,000.
Comparisons are based on each project’s official documentation as linked in the text. Progression Agency builds with all of the technologies compared and has no affiliate relationship with any of them.
What dark mode website design means
Dark mode website design is the design and build of a website that presents a dark theme, either as its only theme (a dark website by brand choice, common for studios, games, audio, developer tools and luxury products) or as one of two themes that follow the visitor’s system setting and can be toggled. The work is mostly color systems, contrast, imagery and engineering: which surfaces are which shade, how text stays readable, how logos, photos, charts and third-party embeds behave on a dark background, and how the browser knows which theme to paint before the first frame.
The reason to do it properly is that visitors have chosen. Operating systems expose a dark preference that browsers pass to the site through the prefers-color-scheme media feature, and a site that ignores it feels wrong to the person who set it, while a site that inverts colors carelessly produces gray-on-black text nobody can read. Dark mode intersects with UI/UX design, motion design and accessibility; this page covers the website-specific decisions.
What a dark mode website must get right
The table below is the checklist we design and test against. Every row has broken a real dark theme somewhere.
| Requirement | What it means | Why it matters |
|---|---|---|
| Color tokens for both themes | Surface, elevated surface, text, secondary text, border, accent, states, each defined for light and dark | One source of truth; no inverted hacks |
| Dark gray surfaces, not pure black | A near-black base with lighter elevated surfaces | Reduces halation and lets depth read |
| Contrast that passes | Text at 4.5:1, large text and UI components at 3:1 against their surface in both themes | WCAG 2.2 conformance and readability |
| Desaturated accents | Brand colors lightened or desaturated for dark surfaces | Saturated colors vibrate on dark backgrounds |
| prefers-color-scheme plus a toggle | Follow the system by default; let the visitor override and remember it | Respects the choice and offers control |
| No flash of the wrong theme | Theme resolved before first paint with an inline script and the color-scheme property | A white flash on a dark site is the most common complaint |
| Images, logos and illustrations | Alternate assets or transparent versions; SVGs using currentColor | White boxes around logos are the second most common complaint |
| Charts, code and embeds | Data colors, syntax themes and third-party embeds with dark variants or contained backgrounds | Embeds are where dark themes break |
| Form controls and scrollbars | color-scheme set so native controls render dark | Native inputs stay light otherwise |
| Elevation and shadows | Lighter surfaces for elevation instead of shadows, which vanish on dark | Hierarchy survives the switch |
| Meta theme-color per scheme | Browser chrome matches the theme on mobile | The address bar does not clash |
| Testing in both themes | Every component and page reviewed in light and dark, at every breakpoint | Nothing ships half-themed |
Tokens, not inversions
A dark theme built by inverting the light palette produces the classic failures: pure black backgrounds, blinding white text, shadows that disappear, brand colors that glow. We define semantic color tokens (surface, surface-elevated, text-primary, text-secondary, border, accent, success, warning, danger) and assign values per theme, so components reference meaning rather than hex codes and the dark theme is designed, not derived. In Figma the same tokens live as variable modes; in code they are CSS custom properties switched by a data attribute and by the media query, and the CSS light-dark() function where browser support allows.
Contrast in both directions
Dark themes fail contrast in a different way from light ones: designers pick a gray that looks refined and lands at 3:1 on body text. The WCAG 2.2 contrast minimum is 4.5:1 for normal text and 3:1 for large text, and non-text contrast requires 3:1 for UI components and graphical objects. We check every text and component token against its surface in both themes, and we avoid pure white text on dark surfaces, which passes the ratio and still causes halation for many readers; a slightly dimmed white reads better and still passes.
Respect the system, offer the switch
The default should follow prefers-color-scheme, because the visitor set it on purpose. A visible toggle lets them override for this site, and the choice is stored so it persists. An inline script in the head reads the stored preference or the media query and sets the theme attribute before the stylesheet paints, which is what prevents the white flash; the color-scheme property tells the browser to render native controls, scrollbars and form fields in the matching theme.
Images and embeds are where dark themes break
Logos on white rectangles, product photos with white backgrounds, screenshots of light interfaces, charts with black axes, and third-party widgets that only ship in light are what make a dark theme look unfinished. We produce alternate assets where needed (transparent logos, dark screenshots, chart palettes per theme), use the picture element with a media attribute to serve the right image, render SVG icons with currentColor, and contain embeds that cannot be themed on a surface that makes their light background look intentional.
Dark-only, light-only or both
| Strategy | Fits | Trade-offs |
|---|---|---|
| Dark only | Studios, games, audio and video brands, developer tools, luxury and automotive products | Long-form reading is harder for some; imagery must be produced for dark; print styles need care |
| Light only with a dark accent | Most content and commerce sites | No dark mode for visitors who set it; least engineering |
| Both, following the system | Products, documentation, publishers, SaaS, anything read for long periods | Two themes to design, test and maintain; the right answer for most sites that go dark |
| Both, with dark as default | Brands whose identity is dark but whose content is read at length | Same cost as both; light must be designed as carefully as dark |
| Scheduled or ambient switching | Rare; apps that follow time of day | Surprises visitors; only with an override |
Platform choices for dark mode websites
Dark mode is easiest on platforms where the design system lives in code. A custom Next.js or Astro build with CSS custom properties (and Tailwind’s dark variant where used) gives full control over tokens, the pre-paint script and per-theme assets. A custom WordPress block theme supports the same through theme.json and custom properties, with care for plugins that inject light styles. Webflow supports dark mode through variable modes and a small script for the toggle. Squarespace and Wix templates can be styled dark but do not follow the system preference without custom code and cannot serve per-theme assets cleanly. Compare the general trade-offs in Webflow vs WordPress and Astro vs Next.js.
| Platform | Best for | Watch out for |
|---|---|---|
| Next.js or Astro with CSS custom properties | Products, docs, publishers and brands that want both themes done fully | Needs a developer for layout changes |
| Custom WordPress block theme | Content sites with both themes and an editor who adds pages | Plugins and embeds that inject light styles |
| Webflow with variable modes | Design-led sites and studios, dark-only or both | Toggle and pre-paint script are custom; per-theme images need care |
| Squarespace or Wix template styled dark | A dark-only brand site on a budget | No system-preference switching without custom code; embeds stay light |
Engineering details we handle
| Item | Implementation | Result |
|---|---|---|
| Theme resolution | Inline script reads stored choice, then prefers-color-scheme, sets a data attribute on the html element before CSS paints | No flash of the wrong theme |
| Token switching | CSS custom properties under the data attribute and the media query; light-dark() where supported | One stylesheet, two themes |
| Native controls | color-scheme: light dark on the root, and a meta color-scheme tag | Inputs, scrollbars and selects match the theme |
| Browser chrome | Two meta theme-color tags with media attributes | Mobile address bar matches |
| Images | picture element with media=”(prefers-color-scheme: dark)” sources, or CSS-swapped assets keyed to the attribute | Right image per theme, including the manual override |
| Icons and illustrations | SVG with currentColor and token-based fills | Recolor automatically |
| Charts | Palette tokens per theme, gridlines from the border token | Readable data in both |
| Code blocks | Syntax theme per color scheme | Docs and developer sites read well |
| Third-party embeds | Dark variants where offered (maps, video players, forms); contained surfaces otherwise | No white islands |
| Email and print | Dark-safe transparent logos in email; print stylesheet forces light | Assets survive outside the browser |
| Motion and reduced motion | Theme transitions short and disabled under prefers-reduced-motion | Switching does not distract |
| Testing | Both themes at every breakpoint, contrast audit per token, screenshot diff per component | Nothing ships half-themed |
Dark mode and page speed
A dark theme adds no weight when it is tokens in one stylesheet; it adds weight when it doubles the images. We serve per-theme images only where the asset actually differs, keep the pre-paint script under a kilobyte and inline, and check Core Web Vitals in both themes, because a dark theme that loads a second hero image is slower in exactly the mode users chose for comfort.
Planning this kind of website?Send the brief and we return a written scope, a fixed price and a page-by-page plan before any design starts.
SEO and AI search for dark mode websites
Dark mode is invisible to search engines when it is done with CSS: the same HTML, the same content, the same URLs in both themes. What affects search is what dark themes tend to break: contrast (an accessibility signal and a usability one), speed (doubled assets), and screenshots and thumbnails in social previews and AI answers, which should be produced from the theme the brand wants to be seen in. AI assistants asked “how do I implement dark mode on a website” quote pages that state the steps plainly, which is why this page lists them. For the design-systems context, see SaaS website design and minimalist website design, where dark themes are most often requested.
- One HTML document, one URL, two themes: never separate dark and light pages.
- Open Graph and social images produced in the brand’s primary theme.
- Contrast audits in both themes, since accessibility issues surface in reviews and rankings.
- Per-theme images only where the asset differs, to keep Core Web Vitals equal in both modes.
- Structured data unchanged by theme; the switch is presentation only.
- A written implementation page (like this one) that answers the questions developers and buyers ask assistants.
When a dark website is the wrong choice
Long-form reading in bright environments, print-heavy content, sites with many light product photos that cannot be reshot, and audiences that skew older and read at length are the cases where a dark-only site costs more than its style earns. In those cases we recommend both themes following the system, or a light site with a dark accent section for the moments that want drama.
How we design and build a dark mode website
- Discovery: whether dark is the brand’s only theme or one of two, the platform, the asset inventory (logos, photos, screenshots, charts, embeds) and the components in use.
- Token audit: the current palette and its contrast, the semantic tokens the site needs, and the brand colors that must be adapted for dark surfaces.
- Design: both themes in Figma with variable modes, every component in both, elevation by surface rather than shadow, contrast checked per token.
- Assets: transparent logos, dark screenshots, per-theme illustrations and chart palettes, embed strategy per third party.
- Build: tokens as CSS custom properties, the pre-paint script, color-scheme and theme-color meta, the toggle with storage, per-theme images, embed containment.
- QA: every page and component in both themes at every breakpoint, contrast audit, screenshot diffs, reduced-motion check, print check.
- Launch: social images in the primary theme, Core Web Vitals in both modes, documentation for editors on adding assets that work in both themes.
- After launch: new components enter through the token system; quarterly contrast and screenshot audits.
What dark mode website design costs
Planning figures for US projects, driven by the number of components and pages, the asset inventory that must be reproduced for dark, the platform, and whether the work extends into a product interface. Website development cost explains the underlying build economics.
| Scope | Range | Timeline |
|---|---|---|
| Add a dark theme to an existing site: tokens, toggle, pre-paint script, contrast audit, asset fixes, up to 30 pages | $4,000-$12,000 | 3-5 weeks |
| New site designed for both themes, 20-40 pages, per-theme assets | $12,000-$25,000 | 6-8 weeks |
| New site with docs or publishing volume, charts, code blocks, many embeds | $25,000-$40,000 | 8-10 weeks |
| Design-system-level dark mode across marketing site and product interface | $40,000-$120,000 | 3-6 months |
| Asset production (dark screenshots, illustrations, chart palettes) | $1,000-$8,000 by inventory | Per project |
| Maintenance and quarterly theme audits | $100-$800 per month | Ongoing |
Dark mode website design by site type
Studios, agencies and portfolios
Dark-only is common and works when the work itself is the light on the page: full-bleed imagery, restrained type, and case studies that read in short passages. See portfolio website design.
Developer tools, SaaS and documentation
Both themes following the system, with code blocks themed per scheme, dark screenshots of the product, and a toggle in the header; the docs are read for hours, so contrast and type size matter most.
Games, audio, film and entertainment
Dark-only with motion and video; the challenge is Core Web Vitals under heavy media and keeping text readable over imagery. Pairs with 3D website design and motion work.
Luxury, automotive and product launches
Dark as the default with a light theme for long-form pages; product photography shot for dark surfaces; restraint in accents. See luxury website design.
Publishers and long-form content
Both themes following the system, an off-white and a near-black rather than pure values, larger measure and line height in dark, and images with captions that read in both.
Ecommerce
Usually light with an optional dark theme, because product photos are shot on white; a dark theme requires a contained product-image surface and careful cart and checkout theming.
What to gather before a dark mode website project starts
- Brand guidelines and the palette with any existing dark-surface guidance.
- Logo files in transparent and single-color versions, or the source files to produce them.
- The component inventory or design system, in Figma where it exists.
- Photography and illustration inventory, noting which assets have white backgrounds.
- Screenshots of the product or interface in both themes if the product has them.
- Third-party embeds in use: maps, video, forms, chat, analytics, ads.
- Charts and data visualizations and how they are produced.
- The platform and theme or codebase, with access.
- Analytics on device and OS mix, which suggests how many visitors have dark set.
- Accessibility requirements and any prior audit.
Measuring a dark mode website after launch
- Share of sessions in each theme, from a lightweight event on theme resolution.
- Toggle use: how many visitors override the system preference, and in which direction.
- Contrast audit results per token in both themes, repeated quarterly.
- Core Web Vitals per theme, especially image weight in dark.
- Engagement and reading time in each theme for long-form pages.
- Support and feedback mentions of readability or white flashes, which should be zero.
- Screenshot diffs after each release to catch half-themed components.
- Conversion rates per theme on key pages, to catch a theme that hides a call to action.
Mistakes that make dark themes look unfinished
- Inverting the light palette instead of designing tokens for dark surfaces.
- Pure black backgrounds with pure white text, which glare and flatten depth.
- Saturated brand colors used unchanged, which vibrate on dark.
- Body text at 3:1 because the gray looked refined.
- A white flash on load because the theme is resolved after the stylesheet paints.
- Logos and product photos on white rectangles.
- Native form controls, scrollbars and selects still rendering light.
- Shadows for elevation, which vanish on dark surfaces.
- Third-party embeds left as white islands.
- No toggle, or a toggle that does not remember the choice.
- Social preview images produced in the wrong theme.
Template, theme add-on or agency: which fits
| Option | Cost | Fits when | Limits |
|---|---|---|---|
| Dark template on a builder | $500-$3,000 plus subscription | A dark-only brand site with few assets | No system switching; embeds and images stay light |
| Dark mode plugin or add-on | $100-$2,000 | A quick dark option on a WordPress site | Inverts colors; contrast and assets are not designed |
| Freelance developer adds a theme | $2,000-$6,000 | A small site with a design system already in code | Asset production and testing are usually skipped |
| Agency dark theme on an existing site | $4,000-$12,000 | Sites that want both themes done properly | Needs the asset inventory from your side |
| Agency new build or design-system level | $12,000-$120,000 | Brands, products and publishers where dark mode is part of the identity | Ongoing token discipline as components are added |
How Progression Agency builds dark mode websites
We design and build dark mode websites from New York City for brands, products and publishers across the United States and worldwide: token-based color systems, both themes designed and tested, pre-paint theme resolution, per-theme assets and embed strategies, contrast audits to WCAG 2.2, and the UI/UX design and maintenance that follow. Related: motion design websites, minimalist website design, ADA compliant website design and front-end development.
Planning a dark mode website?
Send us the brand, the platform and a few pages; we reply with a token plan, an asset list and a fixed price.
Getting found in search
AI, AEO and what is changing
Paid media and lead generation
Websites and design
Choosing and working with an agency
Software and app development
Website design by industry and type
- Construction website design
- Real estate website design
- SaaS website design
- Luxury website design
- Corporate website design
- Startup website design
- Portfolio website design
- Artist website design
- Author website design
- Event website design
- 3D and interactive website design
- Motion design and scroll-story websites
- One-page website design
- Minimalist website design
- Responsive website design services
- Hotel website design
- Travel website design
- Photography website design
- Personal website design
- Blog website design
- Wedding website design
- ADA-compliant website design
- Online course website design
- Booking website design
- Membership website design
- Directory website design
- Community website design
- Job board website design
- School website design
- Gym website design
- Salon website design
- Spa website design
- Podcast website design
- Musician website design
- Multilingual website design
- Microsite design
- Coming soon page design
- Link in bio website design
- News and magazine website design
Web development, platforms and hosting
Social, content and brand
By industry and by situation
Frequently asked questions
What is dark mode website design?
Should a website have dark mode?
How much does dark mode website design cost?
How long does it take?
What is prefers-color-scheme?
Should the site follow the system or offer a toggle?
How do you prevent the white flash on load?
Should dark backgrounds be pure black?
What contrast does dark mode need?
How do you handle logos and images on a dark website?
What about third-party embeds?
Does dark mode affect SEO?
Does dark mode make a website faster or slower?
Can dark mode be added to an existing WordPress or Webflow site?
Do you design both themes in Figma?
What is the CSS light-dark() function?
How do charts and code blocks work in dark mode?
How is a dark mode site tested?
Will visitors be able to print a dark website?
Where is Progression Agency and who do you serve?
How do we start?
Planning this kind of website?Send the brief and we return a written scope, a fixed price and a page-by-page plan before any design starts.
Get a free marketing proposal
Tell us what you are trying to grow and we will come back with a plan, not a pitch deck. Same-day reply on weekdays.
