hamedmp/matrix-os/design-system
Claude Code and agent skill by hamedmp/matrix-os
- community
Checking that the SKILL.md file is still in the repository.
The Matrix OS visual language — colors, typography, icons, animations, and component patterns. Apply this every time you build, redesign, or polish any Matrix OS surface.
Install
npx vskill@latest install hamedmp/matrix-os/design-systemSKILL.md
Matrix OS Design System
When to Use
Apply this for Matrix integration and accessibility in all visual work. The shared brand is authoritative for Matrix platform surfaces. Generated products and their landing pages use the user’s mood, references and chosen visual family; read app-builder’s visual-reference guidance and record the product direction in DESIGN.md.
Brand
"Technology that understands you." Matrix OS is a personal cloud computer — warm, calm, crafted. The visual language draws from natural materials (forest, sand, ember).
Color Palette
Four brand colors + warm sand shades for gradient depth:
| Name | Hex | CSS Variable | Role | |
|---|---|---|---|---|
| Forest | #434E3F | --primary | Primary brand, headers, buttons, structure | |
| Cream | #E0E1CA | --secondary | Warm surfaces, hover states, secondary fills | |
| Ember | #D06F25 | --accent | CTAs, highlights — ONE per view max | |
| Deep | #32352E | --foreground | Primary text, depth, grounding | |
| Sand Light | #F7F1E7 | --sand-light | Gradient backgrounds | |
| Sand Mid | #F3EAE0 | --sand-mid | Gradient backgrounds | |
| Sand Warm | #D6AB8B | --sand-warm | Warm accents, gradient endpoints |
UI Tokens
Use --matrix-* directly or define --app-* aliases from them. Generated apps may override app-local semantic tokens to implement their chosen visual family. A bright, bold, retro or playful product should not be forced into the subdued Matrix brand palette. Keep contrast, visible focus, non-color status cues and bridge integration; do not mutate the global shell theme.
Matrix Platform Brand Rules
- One Ember per view. Multiple uses = visual noise.
- Forest is structural. Headers, primary buttons, nav active states.
- Cream is warmth. Secondary fills, hover states.
- Deep is text. Never use pure black
#000000. - Matrix platform backgrounds inherit the active theme. Quiet solid surfaces are the default for content. Use gradients only when the chosen art direction calls for depth; do not hardcode a light wash over dark mode.
- Shadows always use Deep-tinted
rgba(50,53,46,X), never pure black.
For generated products, select a palette with explicit surface/text/accent roles; choose border weight, shadows, radius and type hierarchy for the actual style. Neo-brutalist products can use ink borders and solid offset shadows; playful products can use cheerful surfaces and original SVG accents. Brand-only Forest/Ember limits do not apply to those product palettes.
Optional depth
Use token-derived shadows and surfaces to explain hierarchy. Glass, gradients, and texture are optional treatments for a specific purpose, never a required app backdrop.
Typography
Inherit var(--matrix-font-sans, system-ui, sans-serif) for UI and var(--matrix-font-mono, monospace) for code. Do not load remote fonts or force a display font on app headings. Create hierarchy through size, weight, leading, and spacing. Use tabular numerals for aligned data; constrain prose measure for comfortable reading.
Type Scale
| Level | Font | Size | Weight | |
|---|---|---|---|---|
| Display | Inherited | 3rem+ | 700-800 | |
| H1 | Inherited | 2.25rem | 600 | |
| H2 | Inherited | 1.75rem | 600 | |
| H3 | Inherited | 1.25rem | 600 | |
| H4 | Inherited | 1.125rem | 600 | |
| Body | Inherited | 1rem | 400 | |
| Small | Inherited | 0.875rem | 400 | |
| Caption | Inherited | 0.75rem | 400 | |
| Label | Inherited | 0.65rem | 600 |
Keep labels readable at normal text sizes; use uppercase and tracking sparingly for short section labels.
Shapes
| Element | Border Radius | Notes | |
|---|---|---|---|
| Buttons | 6-12px | Match control density; pills optional | |
| Inputs | 6-12px | Keep forms compact and legible | |
| Cards | 22px | Soft rounded | |
| Inner UI | 14-16px | Nested elements | |
| Badges | 9999px | Perfect pill | |
| Icons bg | 14px | Icon containers in stat cards |
Choose a coherent radius scale for the app. Dense tables and editors may use square regions; cards and dialogs can be softer.
Shadows
| Level | Value | Use For | |
|---|---|---|---|
| sm | 0 2px 4px rgba(50,53,46,0.06) | Cards at rest | |
| md | 0 4px 12px rgba(50,53,46,0.08) | Hover, dropdowns | |
| lg | 0 8px 24px rgba(50,53,46,0.10) | Floating panels |
Glass-morphism
Icons
Use inline SVG or bundled local icon assets only. Do not load icon scripts, CDNs, remote fonts, or third-party JavaScript from generated apps.
Generated launcher icons use the gateway/kernel icon style. Resolve it with loadIconStyle: the exact retired shipped clay default in older system/desktop.json files resolves to the current Matrix desktop family; the owner's iconStyle takes precedence when customized. The family uses mixed silhouettes on transparent backgrounds, strong app-specific pictograms, varied rich colors, controlled depth and shadows. It takes inspiration from Ubuntu/Yaru's visual variety without copying any third-party artwork. Avoid a repeated beige square tile, generic controller, text, logos or watermarks. Preserve owner-provided assets unchanged. See ../app-builder/references/app-icons.md for the full recipe.
Usage: inline an accessible SVG with aria-hidden="true" for decorative icons, or pair the icon button with an aria-label.
| Purpose | Set | Prefix | Examples | |
|---|---|---|---|---|
| UI controls | Lucide | lucide: | lucide:search, lucide:plus, lucide:x | |
| Weather | Meteocons | meteocons: | meteocons:clear-day-fill | |
| Loading/spinners | SVG Spinners | svg-spinners: | svg-spinners:ring-resize | |
| Brand logos | Simple Icons | simple-icons: | simple-icons:gmail | |
| File types | Catppuccin | catppuccin: | catppuccin:typescript | |
| Flags | Circle Flags | circle-flags: | circle-flags:se | |
| Decorative | Fluent Emoji | fluent-emoji: | fluent-emoji:waving-hand |
Default to simple line-style SVGs for all UI. Only use specialist bundled assets when the context is obvious.
NEVER use text characters as icons. No +, ×, →, ✓. Use inline SVG or a bundled local asset; text characters have unpredictable baselines and never center properly.
Animations
Discover the installed design skills and read the one relevant to polish or gestures; see the builder’s references/app-craft.md for the shared process. Motion serves feedback, continuity, or a spatial relationship. Frequency comes first: keep typing, keyboard actions, and repeated navigation immediate. Do not stagger all content on page mount.
Use short ease-out transitions for occasional entry/exit, anchored to the trigger for popovers. Prefer transform/opacity; never transition: all. Springs are for continuous, interruptible gestures. Avoid decorative bounce and hover lift on every control.
Preserve visible focus and immediate non-motion feedback. Gate hover treatments behind (hover: hover) and (pointer: fine). Use stable placeholders for loading, announce status accessibly, and never delay ready content to finish a shimmer or entrance. Render true progress rather than animating invented progress from zero on mount.
Component Patterns
Use shadcn-style primitives for app interiors whenever the repo already exposes them: Button, Card, Input, Select, Tabs, Tooltip, Badge, Dialog, and related unstyled composition helpers. Skin those primitives with selected app-local semantic tokens, using inherited Matrix tokens as a baseline instead of inventing one-off controls.
Buttons
| Variant | Background | Text | |
|---|---|---|---|
| Primary | --primary | --primary-fg | |
| Accent | --accent | white | |
| Secondary | transparent | --fg | |
| Ghost | transparent | --fg | |
| Cream | --secondary | --fg |
Cards
Use stat cards only when the number helps a real decision. A compact label/value row is a good starting point; choose hierarchy and density for the content. Glass/gradients are optional direction choices, not default card materials.
Inputs
Common Pitfalls (non-negotiable)
Never use text characters as icons. +, ×, →, ✓ will never center. Use inline SVG or bundled local assets.
Always center icon buttons with flexbox. display:flex; align-items:center; justify-content:center.
Components must fill space intentionally. No cards with 80% empty whitespace and tiny text in one corner. Use horizontal layouts for compact cards.
Touch hit areas: minimum 44×44px on touch surfaces. The visible icon may be smaller.
Text overflow. Use overflow:hidden; text-overflow:ellipsis; white-space:nowrap on single-line text in constrained containers.
All inputs need visible focus states. Never just outline:none.
All buttons need hover + active states. No flat state-free buttons.
Don't mix border-radius values on adjacent elements.
Verification
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 96 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/matrix/design-system/SKILL.md
Popularity
- Repository stars
- 85
- Repository forks
- 25
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/hamedmp/matrix-os/design-system)