Home · Docs · UI style

HTML & CSS / UI style — mobile_field_service

This is a phone-first Expo (iOS/Android) app. There is no Web/Windows runtime. “HTML/CSS” here means how we build UI: React Native StyleSheet + a single theme, not a DaisyUI Hub.

If a small web companion appears later (status page, not the field app), use the web appendix.


1. Golden rules


2. Theme (src/theme.ts)

Keep a small palette (names, not brand fluff):

Token Use
color.bg / color.surface Screen / card
color.text / color.muted Body / secondary
color.accent Primary button, Today row chevron
color.danger Destructive, push_error
color.warn Reassigned, stale sync
color.ok Synced, complete
color.okBright / warnBright / dangerBright Dots on the dark Today clock
space.xs…xl 4 / 8 / 12 / 16 / 24
type.sm / md / lg / title 13 / 15 / 17 / 22

Light theme first. Dark: follow useColorScheme later; do not invert ad hoc in one screen.

Type: system UI font (Platform.select San Francisco / Roboto). No extra display font in v1.


3. Layout


4. Components

Pattern Do
Primary button Filled color.accent, white label, 48 pt height
Secondary Outline / ghost
Destructive color.danger, confirm on Complete/Cancel/Logout
Text field Label above, error below, secureTextEntry on password
Row (Today) 64+ pt, number + site + time + badge
Empty One sentence + last-sync time
Offline Today clock HUD (dot + elapsed + pending count), not a modal that blocks the job

Copy: short, sentence case. “Sign in”, “Start work”, “Add follow-up”. No marketing voice.


5. Accessibility


6. Assets / images


7. What not to do


Appendix — web companion (if added)

Not the field app. If we add a static status or docs site: