Overview
Open Food Facts is a food scanner that feels earthy and approachable instead of clinical. The whole theme is a family of warm browns (from a pale #f6f3f0 to a near-black #201a17) with an orange secondary, so the app reads like paper packaging, and the green, orange and red used for health and score indicators stand out clearly against it. [Measured]
Three decisions define the look:
- A nine-step brown scale. Primary tones run ultra-black
#201a17, black#341100, dark#483527, semi-dark#52443d, tone#81756c, accent#875737, normal#a08d84, medium#ede0dband light#f6f3f0. The seed color for the generated scheme is#99460d. [Measured] - Status colors have backgrounds. Success
#219653on#deedd8, warning#fb8229on#f2e2d6and error#eb5757on#f6e4e4appear as banners, with gradient partners for chart bars. [Measured] - Contrast and theme are user settings. There are light, dark and AMOLED (pure black) themes, plus low, medium and high contrast text options (
#969696,#cacaca,#ffffff) and a color picker with options such as cyan, green, magenta, red and rust. [Measured]
Source for this file: the public app source, read on 2026-10-06. The world.openfoodfacts.org site returned almost no readable styles. No on-device capture was done. See Known Gaps.
Core
Colors
| Role | Light | Dark | AMOLED |
|---|---|---|---|
| Primary | #85746c | #ffffff | the user's chosen color (default #85746c) |
| Secondary | #ede0db | #a08d84 | the chosen color |
| Surface | #ffffff | #201a17 | #000000 |
| On surface | #000000 | #ffffff | #ffffff |
| Inverse primary | #341100 | #ffffff | #ffffff |
| Error | #eb5757 | #eb5757 | #ea2b2b |
| Odd table row | #faf8f6 | #2d251e | |
| Even table row | #ffffff | #201a17 |
Brown scale: #201a17, #341100, #483527, #52443d, #81756c, #875737, #a08d84, #ede0db, #f6f3f0. Orange secondary family: #f2994a, #fb8229 and #ee8858. Status: success #219653 (gradient #499459, background #deedd8), warning #fb8229 (gradient #f2994a, background #f2e2d6), error #eb5757 (background #f6e4e4). Greys: #666666, #6c6c6c, #8f8f8f, #e0e0e0. Older constants remain: blue #2d9cdb, greens #219653 and #60ac0e, yellows #f2c94c and #c88f01, oranges #f2994a and #e07312, and reds #eb5757, #ffcbcb and #ff0000. All [Measured].
Typography
OpenSans across the app. Display styles are bold at 28, 24 and 18; titles bold at 16; body is 14 with 0.5 letter spacing; titles in the app bar use medium weight. [Measured]
Shape and spacing
- Spacing:
4,8,10,12,16,20. Default icon size24. [Measured] - Radii: buttons
3, angular surfaces8, standard rounded surfaces20, headers30, circular elements40, and a maximum of100. [Measured]
Corners are generously round on cards and headers but almost square on buttons, which gives buttons a firmer feel than the surfaces around them. [Measured]
Iconography and motion
Custom icon constants and score icons (Nutri-Score style). Duration constants exist for animations. [Measured]
Themes
Light, dark, AMOLED, system, three contrast levels and a user color choice. [Measured]
Platform: iOS
How the iOS app looks and behaves. Items come from public source files.
Back and up navigation
Expected on iOS: chevron plus previous title, swipe from the left edge.
The iOS back swipe works, and Cupertino-style icons are available. [Inferred]
Primary navigation
Expected on iOS: bottom tab bar, about five items.
A bottom navigation with scan, history and profile style tabs. Not verified in the files read. [Inferred]
Main action
Expected on iOS: nav bar or bottom bar button.
A prominent scan button. [Inferred]
Sheets, dialogs and messages
Expected on iOS: action sheets, alerts, modals.
Material bottom sheets and dialogs. [Inferred]
Controls
Expected on iOS: Cupertino switches, pickers, segmented controls.
Material controls with a user-chosen color. [Inferred]
Text sizing
Expected on iOS: Dynamic Type.
Text follows the system scale. [Inferred]
Touch and pointer targets
Expected on iOS: 44pt minimum.
Not verified. [Inferred]
Insets and system bars
Expected on iOS: safe areas, status bar.
Handled by the platform. [Inferred]
Icons
Expected on iOS: SF Symbols or custom.
Custom icon constants. [Measured]
Account and sign-in rules
Expected on iOS: equivalent login option when third-party sign-in exists (Guideline 4.8) and in-app account deletion. Note the date checked.
An optional Open Food Facts account for contributing. No third-party social login was found. Account deletion was not checked. [Inferred] Checked: 2026-10-06 against source only.
Platform conformance
Expected on iOS: system components and Dynamic Type.
Low fidelity: Material 3 on iOS. [Inferred]
Platform: Android
How the Android app looks and behaves. Items come from public source files.
Back and up navigation
Expected on Android: system back and gesture, up arrow in the top bar.
System back. [Inferred]
Primary navigation
Expected on Android: navigation bar, rail on tablets.
A Material navigation bar. [Inferred]
Main action
Expected on Android: floating action button.
A prominent scan control. [Inferred]
Sheets, dialogs and messages
Expected on Android: bottom sheets, dialogs, snackbars.
Material sheets, dialogs and snackbars. [Inferred]
Controls
Expected on Android: Material switches, pickers, chips.
Material 3 controls with the brown scheme. [Measured]
Text sizing
Expected on Android: font scale.
Follows the system font scale. [Inferred]
Touch and pointer targets
Expected on Android: 48dp minimum.
Not verified. [Inferred]
Insets and system bars
Expected on Android: edge to edge, system bars.
Not verified. [Inferred]
Icons
Expected on Android: Material Symbols or custom.
Custom icon constants. [Measured]
Account and sign-in rules
Expected on Android: account deletion and data safety requirements. Note the date checked.
Optional account. Account deletion and data safety were not checked. [Inferred] Checked: 2026-10-06 against source only.
Platform conformance
Expected on Android: Material 3 components and roles.
Uses Material 3 with a custom seeded scheme, an AMOLED theme and contrast options. [Measured]
Platform: Web
The world.openfoodfacts.org site. It returned almost no readable styles.
Back and up navigation
Expected on Web: browser back, breadcrumbs.
Not measured. [Inferred]
Primary navigation
Expected on Web: top nav or sidebar.
Not measured. [Inferred]
Main action
Expected on Web: page-level button.
Not measured. [Inferred]
Sheets, dialogs and messages
Expected on Web: modals, toasts.
Not measured. [Inferred]
Controls
Expected on Web: native or custom.
Not measured. [Inferred]
Text sizing
Expected on Web: browser zoom.
Not measured. [Inferred]
Touch and pointer targets
Expected on Web: pointer and keyboard.
Not measured. [Inferred]
Insets and system bars
Expected on Web: viewport, scrollbars.
Only two breakpoints (279px and 537px) were found. [Measured]
Icons
Expected on Web: any.
Not measured. [Inferred]
Account and sign-in rules
Expected on Web: not applicable unless the product has accounts.
Not measured. [Inferred]
Platform conformance
Expected on Web: web norms for links and forms.
Not measured. The web product has its own visual identity that was not captured. [Inferred]
Cross-platform consistency
The two mobile apps look the same. The web product was not measured, so consistency with the apps is unknown. [Measured]
Do's and Don'ts
Do
- Build the interface from the warm brown scale and keep the orange for emphasis.
- Show status as green, orange and red with a matching soft background.
- Offer light, dark and AMOLED themes with three contrast levels.
- Keep buttons nearly square (
3) and surfaces generously round (20to30). - Use OpenSans with bold headings and open body letter spacing.
Don't
- Don't use cool grays. Stay in the warm brown family.
- Don't use the legacy blue
#2d9cdbfor new work. - Don't put status colors directly on brown without their soft backgrounds.
Known Gaps
- No on-device capture was done. All app statements come from reading source, so layouts and behavior are not confirmed.
- The world.openfoodfacts.org site returned almost no styles, so the Web layer is not measured.
- Nutri-Score and Eco-Score badge colors were not extracted.
- Navigation structure is inferred from product knowledge.
- Account deletion and store policy rules were not verified.