The app mark is navy #02234C and green #3EC400. Interface text is ink #0C0C0C, set in DM Sans.
App icon and in-screen success.
Core colors used across screens, buttons, and the app icon.
| Token | Hex | Defined in | Use |
|---|---|---|---|
| primary | #02234C | Colors + Tailwind | Buttons, links, brand text |
| primaryLight | #E2EFFF | Tailwind | Tinted panels |
| black | #0C0C0C | Tailwind | Reading text |
| error | #EB5757 | Colors.light + Tailwind | Validation and destructive states |
| errorLight | #FFEEEE | Colors.light + Tailwind | Error background |
| positive | #008000 | Colors + Tailwind | Named success token |
| neutral | #667085 | Tailwind | Secondary labels |
| grey1 | #BCBCBC | Tailwind | Disabled chrome |
| neutral | #E5E7EB | Colors | Neutral fill |
| icon | #687076 | Colors.light | Icons and label text |
| Hex | Role |
|---|---|
| #333333 | Secondary text |
| #4F4F4F | Muted text |
| #344054 | Form labels |
| #757575 | Helper text |
| #828282 | Quiet metadata |
| #F6F6F6 | Page wash |
| #EEEEEE | Dividers |
| #FFFFFF | Paper, splash, icon background |
| #D0D5DD | Input borders |
DM Sans is the only family registered at startup. Titles and buttons use SemiBold. Lists, tabs, and form values use Medium. Body and subtitles use Regular. The heading variant uses Bold.
Screen title · SemiBold
Button label · SemiBold 16
List and input · Medium
Body and subtitle · Regular. Toasts pair a 16px SemiBold title with 14px Regular body.
Caption · Light, used rarely.
| Registered name | File | Weight | Role |
|---|---|---|---|
| DMSansLight | DMSans-Light.ttf | 300 | Rare captions |
| DMSansRegular | DMSans-Regular.ttf | 400 | Body, subtitles |
| DMSansMedium | DMSans-Medium.ttf | 500 | Labels, tabs, list rows |
| DMSansSemibold | DMSans-SemiBold.ttf | 600 | Titles and buttons |
| DMSansBold | DMSans-Bold.ttf | 700 | Heading variant |
RedHatDisplayBold and RedHatDisplayMedium appear on selection modals, beneficiaries, and transactions.
ClashGroteskMedium is set on the OTP digits.
SpaceGroteskMedium is only in a comment.
None of these are passed to Font.useFonts, so they fall back at runtime.
assets/fonts also contains unused DM Sans weights (Thin through Black, plus italics) and SpaceMono-Regular.ttf.