Repo-local Material Design 3 capability for Codex.
CodexMD3 packages three layers that work together:
- a canonical
materialskill for MD3-specific reasoning - a deterministic MCP layer for lookups, scaffolds, scoring, and release checks
- a local plugin bundle that makes the capability installable in Codex
The project is designed for internal or repo-local use. It is not a generic design-system plugin and it does not try to replace product judgment with static rules.
Use CodexMD3 when you want Codex to stay grounded in Material Design 3 instead of falling back to generic UI advice.
Typical use cases:
- choose the right MD3 component for a screen or flow
- scaffold a Compose-first MD3 screen or shell
- generate or tune an MD3 theme from a seed color
- adapt navigation and layout for compact, medium, and expanded widths
- audit an existing UI for MD3 compliance and get remediation steps
Clone this repository and keep the plugin inside the repo so the bundled MCP config can resolve the local server path.
The local marketplace entry lives in .agents/plugins/marketplace.json and points to ./plugin.
In Codex:
- keep or add the marketplace entry from this repo
- install the local plugin
material-3-md3-workflows - keep the repository path stable so
plugin/.mcp.jsoncan resolve../mcp/server.py
Use $material when the request is explicitly about Material Design 3 or Material You.
Good examples:
$material build a Compose Material 3 settings screen$material generate an MD3 theme from seed color #6750A4$material adapt this tablet shell to use navigation rail at medium width$material audit this screen for MD3 compliance
Do not use it for generic frontend cleanup, brand work unrelated to MD3, or broad UI opinions with no Material 3 target.
The skill is structured around five modes:
component: pick or validate MD3 componentstheme: generate or refine theme tokens and visual roleslayout: choose responsive rules, insets, and navigation adaptationscaffold: assemble a screen or app shellaudit: score an existing UI and propose the smallest safe fixes
If a task spans multiple areas, choose one primary mode and keep the second one secondary.
- Source of truth:
.agents/skills/material/ - Purpose: MD3-specific reasoning, decisions, tradeoffs, and user-facing recommendations
- Path:
mcp/ - Purpose: file-backed lookups, theme scaffolds, audit scorecards, and release-consistency checks
Run the MCP server locally:
python mcp/server.pyUse the CLI harness for deterministic local checks:
python mcp/cli.py lookup-token --category color --token-name primary
python mcp/cli.py lookup-component --component navigation-rail --platform compose
python mcp/cli.py theme-scaffold --seed-color "#6750A4"
python mcp/cli.py check-release-consistency --expected-version 1.0.3 --release-notes path/to/release-notes.md- Path:
plugin/skills/material/ - Purpose: installable packaging artifact for Codex
Do not edit the bundled skill first. Update the canonical skill and then sync the bundle:
python scripts/sync_plugin_bundle.py.agents/skills/material/: canonical skill and referencesplugin/: installable local plugin bundlemcp/: deterministic support layer and contractsscripts/: sync, validation, and release toolingdocs/: release, versioning, and packaging policies
Versioned releases are published on GitHub. The release flow is proof-oriented:
- prepare and validate the release in dry-run mode
- create the release commit and tag
- publish the GitHub Release
- run stage-4 post-release proof and verification
See:
docs/github-release-flow.mddocs/release-policy.mddocs/release-checklist.md
- MCP manifest version:
1.0.3 - Latest published tag:
v1.0.3
If you just want to use CodexMD3:
- clone the repo
- install the local plugin from
./plugin - call
$materialfor MD3-specific work - let the skill handle reasoning and use the MCP layer for deterministic facts