Proposal Headframe · Minecart mobile · Chrome extension

Tromml style

One set of tokens and one set of components for the three product apps, so they read as one product. It is Leather as written in DESIGN.md, with every value taken from the mobile theme. No app uses it yet; adopting it is a later roadmap per app.

01 · Brand model

Ink acts, amber confirms, red records

Four roles carry meaning on every surface. Nothing else gets a color of its own.

InkPrimary action, headers, the nav pill.--t-ink · slate
AmberConfirm and active: save, the selected tab or chip. Never a status.--t-confirm · gold
RedThe record button, destructive actions and errors. One red, rationed.--t-record · --t-error
HealthGreen 80 and up, yellow 60 to 79, red under 60. The same everywhere.--t-success · --t-warning · --t-error
Roles, not hexComponents name a role (--t-ink), never a raw color.
No red buttonsRed appears on record, delete and alerts only. Everyday buttons are ink.
Full borders, no stripesCallouts use a hairline, a tint and an icon. No colored left bar, no emoji.
02 · Color

Surfaces, text and status

Light and dark come from the mobile theme's two palettes. Switch the theme in the bar to see dark.

Surfaces and text

Background--t-bg
Card--t-card
Surface--t-surface
Surface 2--t-surface-2
Inverse--t-inverse
Dot field.t-dots
Text--t-text
Muted--t-muted
Subtle--t-subtle
Line--t-line
Line strong--t-line-strong
Violet--t-secondary · people

Status

RoleMarkBadgeMeansToken
SuccessGoodHealth 80 and up, done, saved--t-success
At riskAt riskHealth 60 to 79, a new account that needs a decision--t-warning not in the theme yet
Critical, errorOverdueHealth under 60, overdue, failed, destructive--t-error
ConfirmReady to saveWill commit when pressed. Not a status--t-confirm
PromisePromisedA commitment the rep made, open until kept--t-commit
CallCallThe channel, not a state--t-channel not in the theme yet
PersonNew personA person to add, riding along with a note--t-secondary

Account health, on every surface

Copperline Auto Parts
Jobber · Boise, ID
86
Bramble Hill Hardware
Hardware retail · Nampa, ID
72
Fenwick Diesel Repair
Heavy duty · Caldwell, ID
48
03 · Type

Space Grotesk for every product screen

The mobile theme's scale, in one family: Space Grotesk, which mobile already uses on its titles. Medium for controls, semibold for headings. Space Mono for figures that line up.

display.md · 36/700Spring stocking order
heading.h1 · 30/700Copperline Auto Parts
heading.h2 · 24/600Follow-ups
heading.h3 · 20/600Recent activity
heading.h4 · 18/500Dana Whitlow, Buyer
body.base · 16/400Wants the heavy-duty filter program on the March order.
body.sm · 14/400Send the spring brake-line price sheet before Friday.
ui.label · 14/500Mark complete
ui.caption · 12/400Last visit yesterday · 1.2 mi
mono · 14$48,000.00 · 212 of 480
04 · Spacing and radius

A 4px grid, rounder as things get bigger

Spacing
1 · 4
2 · 8
3 · 12
4 · 16
5 · 20
6 · 24
8 · 32
12 · 48
16 · 64

Card padding 24, controls 12 by 16, between elements 16, between sections 48.

Radius
8 · controls
12 · callouts
16 · cards
24 · sheets
full · pills
05 · Icons

One outline style, one set per app

Outline icons at 1.75 stroke, 16, 20 or 24 px, in the text color of their row. Each app keeps one set it already ships, and drops its second.

Drawn with lucide, the extension's set, as the reference shape.

AppKeepsDrops
HeadframeHeroicons outline (inline SVG, 126 templates)Font Awesome 4.7 (47 icons, 40 templates)
Minecart mobileMaterialCommunityIcons, outline variants (252 uses)Ionicons (33 uses)
Chrome extensionlucide-reactnothing
06 · Components

The core set

Each one is built with the app's own tools: a DaisyUI theme on Headframe, react-native-paper and StyleSheet on mobile, shadcn on the extension.

Button
Mark complete Save note Cancel Skip
Delete Disabled Focused Small
The record button is the only red control. Its ring is the background color, so it sits on any surface.
Input
Name, city or account number
Dana Whitlow
Focus ring is ink in light, amber in dark.
Feb 30
Enter a real date.
DW
Dana Whitlow
Buyer · Bramble Hill Hardware
72
Wants the heavy-duty filter program on the March order.
Log visitCall
New account. Bramble Hill Hardware isn't in the CRM yet. Choose one before the note is filed.
You promised to send the spring brake-line price sheet.
Couldn't save the note. It's kept on this device; try again.
List rowFollow-ups
Send the spring brake-line price sheet
Bramble Hill Hardware · due Friday
Promised
Call about the filter program
Fenwick Diesel Repair · 2 days late
Overdue
Visit Copperline Auto Parts
Jobber · 1.2 mi
Done
Badge and chip
GoodAt riskCriticalPromisedCallNew personJobber
NearestA to ZNeeds attention
Navigation
OverviewContactsNotes
ListMap
PlannerAccounts
TodayAccountsContactsSettings

Where each component comes from in each app

ComponentHeadframeMinecart mobileChrome extension
ButtonDaisyUI btn btn-primary on a headframe themereact-native-paper Button, theme colorsshadcn ui/button.tsx, re-pointed variables
InputDaisyUI input input-borderedreact-native-paper TextInputshadcn ui/input.tsx
Card, calloutTailwind classes on the theme (no partial today)StyleSheet on theme.colorsTailwind classes on the variables
List rowtable rows in each list templatelist items per screen (no shared row)search results rows
Badge, chipDaisyUI badgeui/FilterChips.tsx, ui/ChipMenu.tsxTailwind classes
Navigationcomponents/_sidebar.htmlCustomTabBar, ui/TabBar.tsxthe panel header in App.tsx
07 · Drift by app

Where each app departs from it today

From the R2 to R4 mirrors, which draw each app as its code renders today. Each row is a change a later roadmap would make.

HeadframeRedrawn: Account detail
AreaTodayIn the shared styleSeen in
Primary actionBlue text links and buttons (text-blue, bg-blue: about 80 uses on six key screens) beside the navy headframe-primary.Ink for every primary action, a headframe DaisyUI theme so btn-primary is ink.account detail, accounts list
Status colorsSuccess is both green and emerald; amber marks statuses as well as confirm; purple and violet both mean people.Green success, yellow at risk, red critical, amber only to confirm, violet for people.account detail, review queue
At risk--color-warning is orange (#ea580c family); the review sheet already uses yellow.Yellow --t-warning, the ratified color.base.html, review queue
Health badgesInline hex and rgba in the template (#a16207 on yellow, #fef2f2 with #d5001c).The status badge on tokens.account detail
Page palettesHex <style> blocks on Notes and the account note cards; the review queue runs its own .leather-review palette.One token sheet; the review palette folds into it.notes tracker, review queue
GraysTailwind cool grays (gray-500 is #6b7280).The mobile neutral ramp (gray-500 #737373).every screen
TypeSystem sans; DM Sans and IBM Plex Mono load on Notes only.Space Grotesk everywhere, Space Mono for figures.notes tracker
IconsHeroicons inline plus Font Awesome 4.7 (13 icons on the key screens).Heroicons outline only.review queue, planner
DarkLocked to light.Light first; dark later through the same tokens.base.html
Minecart mobileRedrawn: Contact detail
AreaTodayIn the shared styleSeen in
Theme useFour of nine key screens type every color (Contact detail has 78 literals), so they stay light in dark mode.Every color from theme.colors; dark works everywhere.contact detail, activity detail, capture
Dark legibilityInk "Text note" label and #121926 note headers vanish on black; the capture account chip turns near-black on gray.Text roles that flip with the theme.account detail, contact detail, new note
Cards in darkAccountCard hard-codes white, so cards stay white in dark.--t-card: white in light, surface in dark.accounts
GoldsThree: confirm #f59e0b, the retired #FFB700 (Edit, Login, capture Save) and the tab bar #F5A623.One amber, --t-confirm.login, capture, shell
RedsThe record gradient plus the retired #ef4444 on the decibel wash.One red, --t-record.new note
At riskTheme warning is orange (#ea580c).Yellow, the ratified color.theme
Tab barIts slate pill is a module constant (#2D3142) outside the theme.--t-inverse.shell
TypeSpace Grotesk on some titles, "Inter" named but not bundled, the system font elsewhere.Space Grotesk everywhere (already bundled); drop the unbundled Inter.login, note taking
IconsMaterialCommunityIcons plus 33 Ionicons.MaterialCommunityIcons outline only.shell, capture
SpacingSettings cards touch (settingCard has no bottom margin).16 between cards, on the grid.settings
Chrome extensionRedrawn: Account
AreaTodayIn the shared styleSeen in
Primary actionRaw Tailwind blue: blue-950 header, blue-600 buttons. The shadcn primary is default near-black and only the options page uses it.Ink header and buttons through re-pointed shadcn variables.every state
Background--background is rgb() inside hsl(), invalid, so the panel shows Chrome's white.White, from the neutral ramp.index.css
Status colorsInsight colors are inline hex (green-600, red-600, blue-600, yellow-600).The status roles, the same as mobile and Headframe.account
Wrong color"Failed to save settings" shows in green.Error text is red.options
TokensOnly the options page's Button and Label read the shadcn variables.Every component reads them, plus confirm, record, success and warning.every state
Grays and typeTailwind cool grays; system font.Neutral ramp; Space Grotesk.every state
DarkA .dark block exists but never turns on.Light first; dark later through the same tokens.index.css
08 · Redrawn screens

One key screen per app, in the shared style

Each one is the R2 to R4 mirror with the same data, redrawn on these tokens. Today's mirror sits beside it in the item's design folder; the links open them from the board's Design tab.

Headframe Account detail Ink nav pill and buttons, no blue, one green, violet for people, amber only on confirm, neutral banners, Space Grotesk. features/design-kit-r6/design/headframe-account-detail--option-a/
Minecart mobile Contact detail Every color from the theme, so dark mode works; ink header, amber tab underline, status badges, Space Grotesk. features/design-kit-r6/design/mobile-contact-detail--option-a/
Chrome extension Account Ink header instead of blue-950, ink and secondary buttons, status roles for insights, neutral quick links, dark ready. features/design-kit-r6/design/extension-account--option-a/