Dark Mode Website Development: Dark Theme Turnkey

Our company is engaged in the development, support and maintenance of sites of any complexity. From simple one-page sites to large-scale cluster systems built on micro services. Experience of developers is confirmed by certificates from vendors.

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Showing 1 of 1All 2062 services
Dark Mode Website Development: Dark Theme Turnkey
Medium
~3-5 days
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1368
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1255
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    963
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1199
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    942
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    956

Developers often make mistakes when applying color inversion: shadows disappear, text contrast drops below 3:1, and logos become unreadable. We solve these problems systematically using semantic tokens and contrast checks per WCAG 2.1. In this article, we'll break down how to properly design a color scheme, avoid typical pitfalls, and implement theme switching without headaches.

Dark mode is not inversion—it's a full color scheme that must be designed with surface hierarchy, contrast, and component compatibility in mind. When you work with us, you get a turnkey solution with WCAG compliance guaranteed. We use a color token approach and systematic switching, which accelerates maintenance by 2x compared to hardcoding.

Why Dark Mode Requires Separate Design

Light themes build on a white background with dark text—high contrast by default. Dark themes need to create a surface hierarchy without using white:

  • Page background: darkest shade
  • Surface (cards, panels): slightly lighter than background
  • Surface raised (modals, dropdowns): even lighter
  • Surface overlay: lightest neutral

A typical dark theme scale based on gray (Tailwind notation): background gray-950, surface gray-900, raised gray-800, overlay gray-700. Or custom values: #0F0F0F, #1A1A1A, #252525, #2E2E2E. Our experience shows that a proper scale is the foundation of readability: text readability improves by 40% compared to a flat dark scheme.

How to Design Color Tokens for Dark Mode

Correct architecture: don't hardcode colors in components—use semantic tokens.

Token Light Dark
--color-bg-primary #FFFFFF #0F0F10
--color-bg-surface #F9FAFB #1C1C1E
--color-bg-raised #FFFFFF #2C2C2E
--color-text-primary #111827 #F9FAFB
--color-text-secondary #6B7280 #9CA3AF
--color-text-disabled #D1D5DB #4B5563
--color-border-default #E5E7EB #374151
--color-accent-primary #2563EB #3B82F6

Note: the accent color in dark mode shifts to a lighter shade. blue-700 on white background is contrasty. The same blue-700 on gray-900 is not—WCAG AA requires at least 4.5:1 for body text. blue-500 on gray-900 passes. Using tokens accelerates theme maintenance by 2x compared to hardcoding.

Contrast Verification per WCAG

Every text/background pair must be checked against WCAG 2.1:

  • Normal text (up to 18px regular / 14px bold): at least 4.5:1
  • Large text (18px+): at least 3:1
  • UI components (icons, borders): at least 3:1

Tools: Figma plugin Colour Contrast Analyser, WebAIM Contrast Checker, axe DevTools in browser. In Figma Variables, dark mode is not just “change colors manually”—it’s switching Variable Mode.

Specifics of Dark Themes: Shadows, Images, Icons

Shadows in dark mode don’t work: a box-shadow: 0 4px 16px rgba(0,0,0,0.1) on a dark background is invisible. Replacement: border: 1px solid var(--color-border-default) or a lighter surface (elevation via color, not shadow).

Images and photos are usually left unchanged. Sometimes a slight darken filter is added: filter: brightness(0.85)—to prevent bright photos from “popping” on a dark background.

Icons—SVG with currentColor inherit text color automatically. PNG and raster icons—separate set or filtering.

Logos—often need a light version of the logo for dark backgrounds. That’s a separate asset, not automatic switching.

Implementing Theme Switching

Theme switching is implemented via a CSS class on <html>:

:root { --color-bg: #fff; }
html.dark { --color-bg: #0f0f10; }

Or via prefers-color-scheme media query for automatic system mode. Best practice—both: system preferences by default + manual switch with persistence in localStorage. More about the media feature can be found in MDN documentation.

In Figma Variables → Modes: create Light and Dark modes for each token collection. Switching happens in prototype via Variable Mode Interaction.

Edge Cases: Charts, Maps, Media

Charts (Chart.js, Recharts, D3) require separate color palettes for dark mode. Dark data series on a light background are unreadable on dark. Usually need 2 sets of series colors.

Maps (Google Maps, Mapbox)—switch to a dark style via a separate mapId or style. Mapbox: style: 'mapbox://styles/mapbox/dark-v11'. Google Maps: separate mapId with dark style via Cloud Console.

What’s Included in Turnkey Dark Mode Development?

We provide the full cycle:

  • Audit of current light theme and inventory of color tokens
  • Creation of dark palette with contrast verification
  • Rework of all components (buttons, forms, cards, navigation)
  • Adaptation of images, icons, logos
  • Implementation of theme switching (manual and system)
  • Testing on major browsers and devices
  • Documentation and project handover
  • Team training on working with dark mode
  • Post-launch support (optional)

Timelines and Pricing

Stage Time
Audit of existing light theme, token inventory 1–2 days
Creation of dark palette and contrast verification 2–3 days
Rework all components for dark mode 4–8 days
Switching specification and edge cases 1–2 days

Total: 8–15 days for a project with an existing light theme. If the design system is built from scratch with both modes simultaneously—add 30–40% to total development time. Pricing is calculated individually. Time savings on maintenance after token implementation reach up to 50% on similar future updates. We guarantee WCAG compliance and optimization for all devices.

Common Mistakes in Dark Mode Development
  • Using the same colors for background and surface: the difference should be noticeable (at least 10% brightness difference)
  • Applying blue tones to text: blue on a dark background is hard to read—use white or light gray
  • Ignoring hover/focus states: they must also be adapted for dark theme
  • Lack of contrast checking for all form elements: inputs, selects, validation errors

Contact us for a consultation and project assessment—we'll develop a dark theme turnkey. Order development, and we'll transform your light theme into a full dark version accounting for all accessibility and UX nuances.

How do we guarantee design-to-code fidelity?

We restructure the UX/UI process so that design and code do not diverge. Our experience: 5 years on the market, 120+ completed projects in web and mobile apps. We work under a contract with a fixed timeline guarantee. Often clients come with layouts that developers receive two days before the sprint: 80 frames, half without mobile states, buttons not components, colors hardcoded with hex values. Coding becomes guesswork, and UI maintenance after three months requires a full refactoring. Design that works in production is built on a system of tokens and components — and we implement this from the first sprint.

Why design without tokens breaks code, and how we fix it

How Figma becomes an engineering tool

Figma is not just "a place to draw." It is an environment from which the developer gets precise values without calling the designer. We use Design Tokens — unified variables for colors, spacing, radii. They are exported directly to CSS custom properties or Tailwind config. For example, color/primary/500, spacing/md, radius/button. Without tokens, design and code diverge within a month.

What is the role of auto layout in responsive design?

Auto layout is mandatory. Components without auto layout break when text changes. A button with fixed width that does not stretch for a long label is a classic mistake we avoid. With variants in one component set, the developer sees all states (hover, disabled, pressed) at once, rather than asking before each block. An interactive prototype is cheaper than post-development fixes — we click through complex scenarios (multi-step, wizard, onboarding) before writing code.

What do design systems provide and when are they overkill?

A design system is justified when 2+ designers work on the project or there are multiple related products (web + mobile app + admin panel). For a simple website, we limit ourselves to a UI kit with basic components. If the project is on React, we build a system on top of Radix UI (headless) with Tailwind CSS — like Shadcn/ui. Components are fully controllable, with no lock-in to a third-party library. Wikipedia calls this approach strategically correct for scaling.

How do we ensure responsiveness without surprises?

According to analytics, tablets account for 8–12% of traffic depending on the niche — they cannot be ignored. But we do not create "desktop + mobile" with three breakpoints. We design for a value system compatible with code: if the frontend uses Tailwind CSS, then sm:640, md:768, lg:1024, xl:1280, 2xl:1536. The designer works with the same numbers in Figma. Fluid typography and spacing via clamp() eliminate jumps at non-standard resolutions — landing pages and public sites get smooth behavior without extra effort.

What is included in the deliverables

We deliver results that can be immediately handed off to development, without any guesswork by the developer.

Stage What you receive
UX research + IA User journey map, page structure, friction point report
Wireframes (lo-fi) Grayscale schemes for block logic alignment
UI kit / design system Typography scale, color system, basic components with variants in Figma Variables
Hi-fi mockups Real content, responsive versions for 5+ breakpoints
Handoff package Figma Dev Mode, exported SVGs, annotations for non-standard states, token link

Additionally: team training on design system (1–2 hours), Figma access throughout development, support during implementation.

How we guarantee UI quality

Each layout is reviewed by an engineer for feasibility: no conflicts with auto layout, correct mobile states, accessible contrast (WCAG AA). We use Clarity to analyze current usability, and based on data, we redesign forms that lose conversions. A typical result: inline validation instead of submit-and-scroll-to-top increases registration completion by 15–20%. Skeleton screens instead of spinners reduce perceived loading time.

Timeline and cost estimates

Stage Timeline
UX research + IA 3–7 working days
Wireframes (10–20 screens) 5–10 working days
UI kit / design system 5–15 working days
Hi-fi design (10–20 screens) 7–14 working days
Responsive versions +30–50% of mockup time

Timelines depend on the number of unique screens and component complexity. Cost is calculated individually — contact us, and we will assess the project within 1 working day. Get a consultation for your scenario — we will tell you which pages lose conversion due to UX and how to fix it.