Creating Color Schemes for Mobile Apps
A mobile app color scheme needs to work in a smaller, more personal space than a desktop website. People use apps outdoors, in dark rooms, on bright screens, with one hand, and while moving quickly between tasks. Colors need to make text readable, actions obvious, states understandable, and screens consistent. A good mobile scheme supports the product instead of asking users to decode the interface.
The strongest app palettes are not just a collection of attractive colors. They are systems with clear roles for backgrounds, surfaces, text, borders, actions, feedback, focus, and navigation. This guide explains how to create a mobile app color scheme that works across screens, supports light and dark modes, and stays accessible in real use.
Start with the app’s purpose
Before choosing colors, define what the app helps people do and what feeling the experience should create. A finance app may need calm, trustworthy surfaces and high-clarity status feedback. A fitness app may need energy and motivation. A meditation app may use softer colors and generous visual space. A delivery app needs fast recognition of progress, choices, and primary actions.
Write down a few words that describe the product direction: clear, secure, energetic, calm, playful, premium, efficient, friendly, technical, or editorial. These words can guide the palette, but usability should remain the final test. An app can feel premium and still have readable labels. It can feel playful without using a different bright color for every control.
| App direction | Useful color approach |
|---|---|
| Finance or productivity | Strong neutrals, dependable primary blue or green, clear semantic feedback, limited accent |
| Health or wellness | Calm surfaces, natural or cool primary hues, accessible dark text, restrained success color |
| Fitness or sports | Dark or neutral base, energetic primary hue, focused accent for workouts and goals |
| Food or delivery | Warm surfaces, strong readable text, appetizing supporting tones, clear action color |
| Creative tool | Neutral workspace, distinct selection states, strong contrast around content and controls |
| Social or community | Friendly primary color, readable cards, clear notification and interaction states |
Use semantic color roles
Mobile color schemes are easier to manage when colors are named by function rather than appearance. A raw token such as blue-500 describes a value. A semantic token such as color-action-primary describes why that value appears in the interface. This makes design handoff, development, theme changes, and future brand updates much easier.
Keep raw color scales separate from the semantic roles that use them. The same blue might power a primary button, while a lighter blue creates an information banner. A green may represent success feedback, but that does not mean every brand-green element should imply success. Clear roles prevent accidental meaning conflicts.
| Semantic role | Mobile app usage |
|---|---|
| Background | Main screen canvas behind content and navigation |
| Surface | Cards, sheets, dialogs, list rows, fields, tab bars, menus |
| Text primary | Screen titles, body copy, key labels, important values |
| Text secondary | Helper text, timestamps, captions, metadata, secondary labels |
| Border and divider | Field outlines, list separation, card boundaries, subtle structure |
| Action primary | Primary buttons, selected tabs, key links, major progress indicators |
| Action secondary | Secondary buttons, lower-priority actions, supporting navigation |
| Focus and selection | Keyboard focus, active input, selected control, visible current state |
| Status | Success, warning, error, information, offline, pending, or neutral feedback |
Build the neutral foundation
Most of an app screen is made of neutral colors. Backgrounds, content surfaces, cards, text, dividers, input fields, menus, and empty space create the base experience. Start with these values before adding a strong brand color. If the neutral system is clear, the app can remain usable even when the product contains photos, charts, illustrations, or promotional content.
Choose a background, a surface color, a raised surface for sheets or dialogs, a dark text neutral, a muted text neutral, and border colors. In light mode, the difference between the page background and card surface may be subtle. In dark mode, use multiple dark surfaces so cards, bottom sheets, and dialogs remain visually separated without relying on heavy shadows.
:root {
--neutral-0: #FFFFFF;
--neutral-50: #F7F8FA;
--neutral-100: #E9EDF2;
--neutral-500: #667085;
--neutral-700: #344054;
--neutral-900: #1C2430;
}
Choose one primary action color
The primary action color should tell users where to go next. Use it for the most important button or action on a screen, such as “Continue,” “Save,” “Pay,” “Start workout,” “Place order,” or “Create account.” It can also support selected tabs, active controls, progress indicators, and key links.
Do not make every action primary. A screen with several equally bright buttons forces the user to decide what matters. Use a filled primary button for the main task, a secondary outlined or tonal button for alternatives, and a text action for low-priority options. The color hierarchy should match the task hierarchy.
Create color scales for touch states
Mobile controls need states that respond clearly to touch and selection. A button may have default, pressed, disabled, loading, and selected states. Tabs, chips, list rows, toggles, and inputs also need visual feedback. Create a scale around each important hue so the states feel related rather than random.
:root {
--blue-50: #EEF5FF;
--blue-100: #D8E8FF;
--blue-200: #B5D0FF;
--blue-500: #316DCE;
--blue-600: #245AB3;
--blue-700: #19468C;
--blue-900: #10284F;
}
| Control state | Recommended color behavior |
|---|---|
| Default | Use the base action or surface color with readable label contrast |
| Pressed | Use a deeper related shade or visible overlay to confirm touch feedback |
| Selected | Use a consistent tint, border, icon, or text change plus a clear state indicator |
| Focused | Show a visible focus ring or outline that contrasts with nearby surfaces |
| Disabled | Use reduced emphasis and clear unavailable wording; do not depend on faint contrast alone |
| Loading | Keep the action visible, show progress, and prevent duplicate taps when appropriate |
| Error | Use semantic error color together with clear text, icon, and recovery guidance |
Design navigation with clear states
Bottom navigation, tab bars, segmented controls, side menus, and back actions need a visible current state. A selected item can use the primary color, but color should not be the only indicator. Add an icon fill change, label weight change, underline, indicator pill, or position cue so users can recognize their current location quickly.
Keep inactive navigation readable without giving it the same emphasis as the active item. Use a muted but sufficiently visible neutral for inactive labels and icons. On small screens, low-contrast navigation can become difficult to use in bright sunlight or when a person is moving quickly.
Use status colors with clear meaning
Mobile apps often need feedback for success, warning, errors, information, pending actions, offline states, and notifications. These colors should have stable meanings throughout the app. A user should not see red as an error on one screen and as a normal brand action on another.
Color alone is not enough. Pair every important status with text, an icon, and placement that explains what happened and what the user can do next. For example, a failed payment screen should include an error label, a clear explanation, and a “Try again” or alternate payment action—not only a red outline.
:root {
--success-bg: #E8F5EC;
--success-text: #1F6B3A;
--warning-bg: #FFF4D8;
--warning-text: #805800;
--error-bg: #FDEBEC;
--error-text: #A12C36;
--info-bg: #EAF2FF;
--info-text: #245AB3;
}
Use the 60-30-10 rule carefully
Mobile interfaces benefit from visual hierarchy. The 60-30-10 rule is a useful way to think about color distribution: most of the screen should use neutral backgrounds and surfaces, a smaller share should use primary or supporting colors, and the strongest accent should appear only where it matters most.
In an app, the neutral share may be larger than 60% because content needs room to breathe. Use the primary color for navigation, selected controls, and primary actions. Use a distinct accent only for focused features, upgrades, rewards, promotions, or key moments. A restrained palette reduces cognitive load on small screens.
Check contrast in real app screens
Accessibility is essential in mobile design. People may use the app with low brightness, color filters, outdoor glare, small text settings, or limited attention. Colors that look polished on a design board may fail when used for labels, icons, button text, selected tabs, input borders, charts, or status messages.
For normal body text, a contrast ratio of at least 4.5:1 is a common WCAG AA target. Large text can use 3:1. Also test non-text interface elements such as focus indicators, selection outlines, important icons, input boundaries, and chart data. Review real flows on an actual device, not only desktop mockups. Read our color contrast and accessibility guide for more detail.
Avoid red and green as the only difference between negative and positive states. Add labels, icons, shape differences, patterns, or placement cues. These additions improve clarity for people with color-vision differences and for anyone scanning a phone quickly.
Support light and dark mode
Light and dark modes should share the same semantic system, but they need different underlying color values. Do not simply invert every color. A light background may become a dark canvas, card surfaces may use a slightly lighter dark tone, and text colors may need to soften from pure white to reduce glare while remaining readable.
:root {
--color-bg: #F7F8FA;
--color-surface: #FFFFFF;
--color-surface-raised: #FFFFFF;
--color-text: #1C2430;
--color-text-muted: #667085;
--color-border: #D7DCE3;
--color-action: #316DCE;
}
[data-theme="dark"] {
--color-bg: #121820;
--color-surface: #1A222D;
--color-surface-raised: #232E3B;
--color-text: #F4F7FB;
--color-text-muted: #B7C1CE;
--color-border: #344050;
--color-action: #7EAEFF;
}
Test both modes as complete experiences. Check primary and secondary buttons, text, placeholders, cards, dialogs, bottom sheets, charts, focus states, error messages, and disabled controls. A color that feels balanced in light mode may need a different brightness or saturation in dark mode.
Use image-based color inspiration carefully
Photos, illustrations, products, and campaign visuals can be useful sources for an app color direction. Upload a visual reference to the free Shipirox color palette extractor to identify distinct HEX and RGB values. You can then choose a primary hue, supporting tones, and a limited accent that connect the app to its broader brand or campaign.
Do not use an image-extracted palette without adaptation. A photo may contain beautiful but low-contrast colors, strong lighting shifts, or too many competing hues. Build neutral surfaces and semantic status colors around the image inspiration so the final app remains usable and consistent.
Document the system as tokens
Color schemes scale better when they are documented as design tokens. Tokens give designers and developers a shared language, make light and dark mode easier to maintain, and reduce inconsistent one-off color choices. Keep raw scales for hue steps and semantic tokens for their application in the interface.
:root {
--color-bg: #F7F8FA;
--color-surface: #FFFFFF;
--color-text-primary: #1C2430;
--color-text-secondary: #667085;
--color-border-default: #D7DCE3;
--color-action-primary: #316DCE;
--color-action-primary-pressed: #245AB3;
--color-focus-ring: #7EAEFF;
--color-status-error: #A12C36;
}
Use the same token names in a Figma library, design documentation, component code, and quality-assurance checklists. If you change the primary color, improve contrast, or introduce a new theme, you can update the system without manually searching through every screen.
Apply colors to core screens
| App area | Recommended color use |
|---|---|
| Onboarding | Use calm surfaces, a clear primary CTA, and limited visual accents that do not compete with instructions |
| Home screen | Use neutral cards, clear text hierarchy, primary color for key navigation or progress, and focused accents |
| Forms | Use readable labels, visible borders, high-contrast focus states, and error feedback with clear messages |
| Bottom navigation | Use stable surface colors, distinct active state, readable inactive labels, and more than color alone for selection |
| Lists and cards | Use surface contrast, subtle dividers, dark text, and reserved color for priority labels or status |
| Checkout or payment | Use strong text clarity, a single primary action, clear security and error feedback, and limited distractions |
| Charts and metrics | Use distinct data colors with labels, values, patterns, or legends when accurate interpretation matters |
Common mobile color mistakes
- Using brand color for every action. Reserve the strongest treatment for the main task on each screen.
- Starting with accent colors before neutrals. Mobile screens need readable foundations, surfaces, text, borders, and spacing first.
- Designing only for a large desktop preview. Test colors at actual phone size, in bright light, and across different brightness settings.
- Using color alone for state changes. Add text, icons, indicators, or shape changes for errors, success, selection, and navigation.
- Hiding focus or pressed feedback. Users need visible confirmation when controls receive focus or are tapped.
- Applying dark mode by simple inversion. Define semantic tokens and test each screen, component, status, and image treatment in both modes.
- Skipping contrast checks. Test real text, button labels, input borders, tabs, icons, feedback messages, and charts.
Build an app scheme that scales
Creating a color scheme for a mobile app is about making the interface clear at every moment of use. Start with a neutral foundation, define semantic roles, choose one primary action color, build scales for interactive states, and create consistent feedback colors for success, warning, error, and information.
Then test the scheme on real screens and real devices. Check contrast, make selection and focus visible, support light and dark modes, and never rely on color alone for important meaning. When you document the final values as tokens, the system can grow from one screen to a complete app without losing clarity or consistency.
Need mobile app color inspiration from a visual reference? Upload an image to the free Shipirox color palette extractor to get HEX and RGB values, then adapt the best shades into accessible app color tokens.