Brands
Aquex and USWDS, applied to the same Subscription list and detail. Change the brand or theme to see the difference.
Generated from @oods/foundry 0.10.1
Same screens. Your brand.
Aquex is this site's neutral palette with a teal accent. USWDS brings blue controls, grey and navy surfaces, and Public Sans.
sha256:1a4469913d0d…Open full size: Subscription list screen generated by OODS Foundry in Reactsha256:b952f0e283b5…Open full size: Subscription list screen generated by OODS Foundry in Vuesha256:dde1d1ded91c…Open full size: Subscription detail screen generated by OODS Foundry in Reactsha256:5f818219f92b…Open full size: Subscription detail screen generated by OODS Foundry in VueWhat design_compose reported for every screen here:
OODS-V121Object 'Subscription' has maturity 'beta' — composed output may change.OODS-V117Subscription refines 11 fields its traits define, and its own definitions are used: lifecycle/Stateful (status); lifecycle/Cancellable (cancel_at_period_end, cancellation_reason, cancellation_requested_at); financial/Billable (amount, currency, billing_interval, current_period_start, current_period_end, current_period_progress, next_payment_due_at).
The receipt and calls for the Subscription list apps, in React and Vue
React receipt
Checked
- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure
Not checked
- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence
Vue receipt
Checked
- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure
Not checked
- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence
design_compose {
"object": "Subscription",
"context": "list",
"preferences": {
"brand": "Aquex",
"theme": "light"
}
}
code_generate {
"schemaRef": "compose-d8770ac1",
"framework": "react",
"profile": "build",
"options": {
"output": "application",
"brand": "Aquex",
"theme": "light",
"payloadMode": "file"
}
}
code_generate {
"schemaRef": "compose-d8770ac1",
"framework": "vue",
"profile": "build",
"options": {
"output": "application",
"brand": "Aquex",
"theme": "light",
"payloadMode": "file"
}
}The React app's content hash: sha256:1a4469913d0d7e8a40c141b1eeb6f439096cf3521c687b20becc05d18ce44294. Its src/ folder: App.tsx, GeneratedUI.tsx, app.css, main.tsx, oods-brand-aquex.css
The Vue app's content hash: sha256:b952f0e283b5d5ea4a8ad98b10992e2f01e0aaec2c17c176d70f5be30caa2855. Its src/ folder: App.vue, GeneratedUI.vue, app.css, main.ts, oods-brand-aquex.css
The receipt and calls for the Subscription detail apps, in React and Vue
React receipt
Checked
- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure
Not checked
- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence
Vue receipt
Checked
- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure
Not checked
- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence
design_compose {
"object": "Subscription",
"context": "detail",
"preferences": {
"brand": "Aquex",
"theme": "light"
}
}
code_generate {
"schemaRef": "compose-b98f67ac",
"framework": "react",
"profile": "build",
"options": {
"output": "application",
"brand": "Aquex",
"theme": "light",
"payloadMode": "file"
}
}
code_generate {
"schemaRef": "compose-b98f67ac",
"framework": "vue",
"profile": "build",
"options": {
"output": "application",
"brand": "Aquex",
"theme": "light",
"payloadMode": "file"
}
}The React app's content hash: sha256:dde1d1ded91c3a9f489ea363826a798de88c849366ffc8cdc0c9ec38dbcabf21. Its src/ folder: App.tsx, GeneratedUI.tsx, app.css, charts/, main.tsx, oods-brand-aquex.css
The Vue app's content hash: sha256:5f818219f92bbe3a0267ea4a82d419b7b7ffc0e71f4940004d165adc3b77b33f. Its src/ folder: App.vue, GeneratedUI.vue, app.css, charts/, main.ts, oods-brand-aquex.css
Canvas colours set the background; panel colours set the cards and subtle areas. Controls and charts have their own colour roles. Each brand carries light, dark and high-contrast values.
The values and the checks
USWDS colours come from its published theme tokens, checked against a recorded site scan. We mapped them into OODS Foundry's roles. The dark and high-contrast views are our adaptations; unmapped roles retain the OODS starting values. These screens use OODS components.
Aquex: documents, contrast and calls
- light
- 84 of 84 pairs pass; 7 of 7 chart colours clear
- dark
- 84 of 84 pairs pass; 7 of 7 chart colours clear
- high contrast
- 83 of 83 pairs pass; 1 pair is exempt; 7 of 7 chart colours clear. System colours graded as resolved in Chromium 141.0.7390.37 without forced colours (macOS and Linux, light and dark color-scheme), 2026-09-29
Full brand documents · Full contrast report
- brand_create: template
- brand_create: validate
- brand_create: create
- list, react: sample app · generated screen · generation record
- list, vue: sample app · generated screen · generation record
- detail, react: sample app · generated screen · generation record
- detail, vue: sample app · generated screen · generation record
USWDS: documents, contrast and calls
- light
- 84 of 84 pairs pass; 7 of 7 chart colours clear
- dark
- 84 of 84 pairs pass; 7 of 7 chart colours clear
- high contrast
- 83 of 83 pairs pass; 1 pair is exempt; 7 of 7 chart colours clear. System colours graded as resolved in Chromium 141.0.7390.37 without forced colours (macOS and Linux, light and dark color-scheme), 2026-09-29
Full brand documents · Full contrast report
- brand_create: template
- brand_create: validate
- brand_create: create
- list, react: sample app · generated screen · generation record
- list, vue: sample app · generated screen · generation record
- detail, react: sample app · generated screen · generation record
- detail, vue: sample app · generated screen · generation record
USWDS source values and role mapping · Every recorded file and its hash
The contrast report checks colour pairs. Each generated app's receipt separately lists what was built and checked.
Shipped brands and the Aquex recipe
The shipped brands
OODS Foundry ships 2 brands, each in light, dark and high contrast. You can make your own from a recipe, or from your own colour values.
Brands A and B in each theme, as their components render.
Brand A
Ships with OODS Foundry. Neutral first: the primary action takes the neutral (near-black in light), with grey structure, an indigo accent and Geist. Its charts lead with indigo.
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Brand B
Ships with OODS Foundry. Brand A's neutral, with a violet primary and DM Sans. Its charts lead with violet.
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Make your own
This site's brand, Aquex, was made this way from a neutral recipe with aquex.ai's teal as its one accent, with the published OODS Foundry. Each step shows its real call.
Harbor is the example team brand in the package's quickstart, made the same way from the quickstart's colour values. The system overview shows the quickstart's Warehouse in it.
-
Template.
brand_createlists every slot, with what it's for and a starting value from a shipped brand or a preset. Or give it a recipe: the neutral's hue and tint, the accent's hue, which of them is the primary action, the corner radius and the font. It returns the whole brand the recipe gives, graded.This site's call, with its recipe
{ "action": "template", "from": { "recipe": { "neutralHue": 250, "neutralChroma": 0.008, "accentHue": 183, "primary": "neutral", "radius": 8, "font": "DM Sans" } } }It returned each theme's slots and the presets:
{ "slots": { "base": 103, "dark": 96, "hc": 96 }, "presets": [ "corporate-blue", "dark-minimal", "startup-warm" ] } -
Validate. It checks every slot and colour, the contrast of every text, icon, control border and focus ring pair, and that the chart colours reach 3:1 against the canvas, in each theme. It writes nothing.
This site's call, with its recipe
{ "action": "validate", "brand_id": "Aquex", "recipe": { "neutralHue": 250, "neutralChroma": 0.008, "accentHue": 183, "primary": "neutral", "radius": 8, "font": "DM Sans" } }Its report:
{ "action": "validate", "valid": true, "brand_id": "Aquex", "themes": { "base": { "label": "light", "slots": 103, "provided": 103 }, "dark": { "label": "dark", "slots": 96, "provided": 96 }, "hc": { "label": "high contrast", "slots": 96, "provided": 96 } }, "issues": [], "contrast": { "base": { "graded": 84, "passed": 84, "failed": 0, "ungraded": 0, "charts": { "graded": 7, "passed": 7, "failed": 0, "ungraded": 0 } }, "dark": { "graded": 84, "passed": 84, "failed": 0, "ungraded": 0, "charts": { "graded": 7, "passed": 7, "failed": 0, "ungraded": 0 } }, "hc": { "graded": 83, "passed": 83, "failed": 0, "ungraded": 0, "systemColoursResolvedIn": "Chromium 141.0.7390.37 without forced colours (macOS and Linux, light and dark color-scheme), 2026-09-29", "exempt": 1, "charts": { "graded": 7, "passed": 7, "failed": 0, "ungraded": 0 } } }, "files": [ { "theme": "base", "path": "Aquex/base.json", "sha256": "fd02a715ec0811ae19fc0c845092e104eb6269933a9a708a0aec98117e59607f", "bytes": 32539 }, { "theme": "dark", "path": "Aquex/dark.json", "sha256": "d16368b455b291d2ba5d839e75a964a542e9fb23aa72cbe465dbdc9be749a212", "bytes": 30976 }, { "theme": "hc", "path": "Aquex/hc.json", "sha256": "81b4883cc956a429a9829eb072c4502ac0021bbd3c460194b987fbadfccdc4fd", "bytes": 19759 } ] } -
Create. It writes the brand to your brands folder and builds it. Previews, generated apps, charts and dashboards can use it at once.
This site's call
{ "action": "create", "brand_id": "Aquex", "recipe": { "neutralHue": 250, "neutralChroma": 0.008, "accentHue": 183, "primary": "neutral", "radius": 8, "font": "DM Sans" } }Its result:
{ "created": true, "brand_id": "Aquex", "folder": "~/.oods-foundry/brands", "build": { "exitCode": 0, "durationMs": 3461 }, "brands": [ "A", "Aquex", "B" ] }
This site's contrast report
What validate reported for Aquex:
- light
- 84 of 84 pairs pass; 7 of 7 chart colours clear 3:1
- dark
- 84 of 84 pairs pass; 7 of 7 chart colours clear 3:1
- high contrast
- 83 of 83 pairs pass; 1 pair is exempt; 7 of 7 chart colours clear 3:1. System colours graded as resolved in Chromium 141.0.7390.37 without forced colours (macOS and Linux, light and dark color-scheme), 2026-09-29
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Button, intent primary
Button
Banner
StatusBadge
Past DueInput
Use a work address
Enter a valid email
Card
Tabs
Limits
- A brand is OODS Foundry's own slots, 103 in light, 96 in dark and 96 in high contrast, filled from a recipe or by you.
- A recipe fills the slots without your own token names. Your team's DTCG token file keeps the names, aliases and modes it supports once you accept the draft: Keep your token names.
- The shipped brands can't be edited from npm.