Interface Design for Dashboards and Apps
holaboss-ai/holaOS
Pushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown.
Comprehensive App UI/UX design best practices. An agent skill from touchine-ojo/OJO-Design-Skills.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practices --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/app-ui-ux-best-practices .claude/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .claude/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practicesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practices --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/app-ui-ux-best-practices .agents/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .agents/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practices --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/app-ui-ux-best-practices .cursor/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .cursor/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/touchine-ojo/OJO-Design-Skills.git --path skills/app-ui-ux-best-practices--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practices --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/app-ui-ux-best-practices .gemini/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .gemini/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practicesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/app-ui-ux-best-practices .github/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .github/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install touchine-ojo/OJO-Design-Skills app-ui-ux-best-practices --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/touchine-ojo/OJO-Design-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/app-ui-ux-best-practices .opencode/skills/app-ui-ux-best-practices && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "app-ui-ux-best-practices" agent skill from https://github.com/touchine-ojo/OJO-Design-Skills/tree/main/skills/app-ui-ux-best-practices into .opencode/skills/app-ui-ux-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-ui-ux-best-practices", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
app-ui-ux-best-practicesComprehensive App UI/UX design best practices. An agent skill from touchine-ojo/OJO-Design-Skills.
App UI UX Best Practices is an agent skill from touchine-ojo/OJO-Design-Skills. Comprehensive App UI/UX design best practices. Supports two tracks: Convention Track (adopt a proven design language for SaaS/utility products) and Innovation Track (multiple brand-driven design methodologies — Material Metaphor, archetype-driven, narrative-driven, cultural-semiotic — for brand-driven products). Use when users want to: (1) Define visual identity for a new product, (2) Create design specifications and tokens, (3) Establish UI component guidelines, (4) Build a cohesive design language, (5) Review…
Its SKILL.md is about 9.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/anti-patterns.md`, `references/component-libraries.md` and `references/component-recipe.md`).
It sits in Frontend & Design, covering UI design and Design review and critique. The repository describes itself as: Reusable UI/UX design skills for AI coding agents — Codex, Claude Code, ZCode, and more. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fbd2c2d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
App UI UX Best Practices loads about 9.4k tokens when it runs, and up to ~57k if it reads all its reference files. Until then it costs about 212 tokens; SKILL.md has 4,722 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
**Main agent rule — do NOT ask for confirmation after visual DNA generation.** The post-visual-DNA flow is **non-interacAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from touchine-ojo/OJO-Design-Skills at commit fbd2c2d, republished under its MIT licence (© touchine-ojo). 4,722 words, ~9,448 tokens.
.claude/skills/app-ui-ux-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.Create cohesive, professional UI design systems. For brand-driven products, pick a methodology that fits the brand — Material Metaphor, archetype-driven, narrative-driven, cultural-semiotic, or another approach grounded in research. For utility/SaaS products, adopt one proven design language directly (chosen from a wide pool, not a fixed shortlist). Both paths produce actionable design specifications.
ISFP Designer Persona: Approach every design decision as a sensory, instinct-driven act. Trust aesthetic intuition. Every pixel must earn its place through visual contribution, not just functional necessity.
Intentionality: Nothing is arbitrary. Every color, shadow, radius, and spacing value must serve a clear purpose within the chosen visual direction.
Surprise within coherence: The interface should feel familiar enough to use without friction, yet surprising enough to be memorable. Avoid generic patterns while maintaining usability.
Material honesty: Surfaces must convey a believable material reality — velvet-smooth frosted glass and torn photocopied paper are equally valid. Fidelity to the direction's material, not universal smoothness or polish.
Real visual assets: When a screen needs imagery, use real, subject-specific photographs, screenshots, product renders, map/media thumbnails, or generated bitmap assets that clearly depict the actual thing. Do not use gray boxes, "Image" labels, generic gradient blobs, fake stock smiles, or decorative SVGs as a substitute for real visual content.
Rhythm over density dogma: Whitespace and density are register decisions, not virtues. A quiet archival product earns silence; a gig poster earns collision and overlap. What matters is deliberate rhythm at the chosen density, in either direction.
Before exploring directions, derive the product's register from evidence — the product's subject matter, audience, brand voice, cultural context, and goal. Classify internally along five observable dials:
| Dial | Poles | Observable in |
|---|---|---|
Energy | quiet ↔ loud | saturation budget, contrast, element collision |
Finish | raw ↔ polished | edge treatment, texture noise, alignment strictness |
Density | sparse ↔ dense | whitespace scale, layering, grid discipline |
Weight | light ↔ heavy | font weight, color-block area, shadow hardness |
Seriousness | playful ↔ solemn | corner radius, illustration language, motion amplitude |
Rules:
references/anti-patterns.md.CRITICAL: Before proceeding with any design work, you MUST read the following reference file:
references/anti-patterns.md (MANDATORY) - Strictly avoid all banned patterns listed. This includes AI-generated style detection, banned color combinations/treatments, lazy stereotypes, and quality failures.Additional reference files will be loaded on-demand per step as indicated in the workflow below.
Current year: 2026. If using date keywords in searches, use 2026 unless users specify otherwise.
Both Tracks:
Convention Track path:
3. Style Direction Confirmation → 2-3 options based on proven design systems → WAIT for user selection
4. Design Tokens (read references/visual-tokens.md)
5. Component Mapping (read references/component-recipe.md)
6. Motion & Behavior (read references/motion-system.md)
7. Layout Requirements
8. Design Specs Output
Innovation Track path:
3. Insight Discovery → Feeling keywords
4. Style Direction Confirmation → 2-3 options grounded in the chosen brand-driven methodology → WAIT for user selection
5. Brand-Driven Methodology & Visual Physics — pick ONE: Material Metaphor (read references/material-metaphor.md), archetype-driven, narrative-driven, cultural-semiotic, or another research-grounded approach
6. Design Tokens (read references/visual-tokens.md)
7. Component Mapping (read references/component-recipe.md)
8. Motion & Behavior (read references/motion-system.md)
9. Layout Requirements
10. Design Specs Output
This skill is shared across multiple agents with different entry points:
When this skill is activated by design-dna, the agent should ignore the Style Direction Confirmation section and begin from Design Tokens using the confirmed direction provided in its contextSummary.
When the caller asks for advisory critique, reference adaptation, refinement, or a caller-shaped handoff, treat the mandatory option menu / wait gate / blockquote template in Style Direction Confirmation as optional methodology scaffolding rather than an output contract.
In General Skill Mode:
Determine which track to follow based on the product's core value proposition:
Convention Track — when product value is in utility, not visual experience:
Innovation Track — when product value depends on brand experience and emotional differentiation:
If uncertain, default to Convention Track — over-designing a utility product is a worse outcome than under-designing a brand product.
CRITICAL — Both tracks require user confirmation: You MUST present 2-3 distinct visual direction options and wait for user selection before proceeding with design tokens or component work. See Style Direction Confirmation section below.
You MUST use websearch to find 3-5 high-quality design references. Do not use generic photo search as a shortcut for design direction; Unsplash-style sources are valid later for real photographic assets, not as the only style research.
Search: "best [industry] app design 2026" + "site:mobbin.com OR site:uinotes.com OR site:dribbble.com OR site:behance.net"
Target Sources: Mobbin (real products), UINotes (curated UI), Dribbble (concepts), Behance (case studies), Awwwards, and industry leaders relevant to THIS product (rotate across the candidate pool listed in Step 0 — do not default to the same 2-3 names every time)
When the user provided a visual reference for a new product (Scenario A-Ref):
firecrawl_scrape with the correct format: for design platforms (Dribbble/Behance/Mobbin/UINotes) use formats: ["images"] to extract actual design artwork; for product official websites use formats: ["screenshot"] (optionally add "branding" for color/typography data). Do NOT use screenshot format on design platform pages — a webpage screenshot captures page chrome, not the design reference. If it's a screenshot/image, analyze visual characteristics directly: dominant colors, typography feel, spacing density, card style, light/dark mode, overall mood.websearch results to identify what design tradition the reference belongs to. Use real-photo sources only when the product needs photographic content assets.Research only — internal use: Use websearch and optionally firecrawl_scrape for internal style calibration. All fetched images are for internal analysis only — never output any image to the user during Inspiration Research or direction option steps.
Real image requirement: Once implementation/specification reaches actual screens, any image slot must name or use a concrete asset type tied to the product domain: real product photos, venue/food/travel photos, real UI screenshots, user-uploaded media, realistic avatars, album art, listing thumbnails, maps, or generated bitmap imagery that depicts the subject. Valid acquisition paths include user-provided assets, official product/media pages, websearch/image search, Dribbble/Behance/Mobbin/UINotes for design artwork, Unsplash/Pexels/Wikimedia-style sources for real photography, and generated bitmap images when no suitable real asset exists. If no credible image is available, redesign the layout so it does not depend on imagery. Do NOT ship decorative placeholders.
Output: Use internal research conclusions to ground direction options. Direction options must be presented as plain text only.
Present 2-3 distinct visual direction options to the user. Do NOT proceed until the user selects one.
When: Convention Track (after Inspiration Research), Innovation Track (after Insight Discovery)
HARD RULE — NO IMAGES IN OPTIONS: Do NOT fetch, load, or embed any image during direction option presentation. Options are plain text only — direction name + keywords. This rule has no exceptions.
Output format: All direction options MUST be wrapped in a single markdown blockquote (> prefix) with a bold title > **视觉方向**. The confirmation question goes OUTSIDE the blockquote.
Prescriptive template:
> **视觉方向**
>
> A: {Direction name}
> - Feel: {metaphor, ≤ 10 words}
> - Color: {color names, ≤ 6 words}
> - Texture: {1-2 tactile words}
> - Motion: {action phrase, ≤ 8 words}
> - Layout: {layout philosophy in one short phrase, e.g. "single-column immersive scroll" / "split-pane utility grid" / "floating cards with gestures"}
> - Pages: {3-5 page names with brief shape hints, e.g. "Home (single-flow feed) · Detail (immersive) · Profile (sparse)"}
>
> B: {Direction name}
> - Feel: ...
> - Color: ...
> - Texture: ...
> - Motion: ...
> - Layout: ...
> - Pages: ...
{confirmation question, e.g., "喜欢哪个方向?"}Card preparation (REQUIRED before generating the cards): For each direction, silently prepare the dense design decisions behind the visible card — what it feels like to use, what surfaces it evokes, what physical or emotional reference it draws from, how the IA / pages would actually flow, what kind of user it courts. This preparation must not appear in user-facing output, tool results, headings, or scratch prose. Distill the visible cards from that preparation. The preparation is the seed; the card is the harvest. Without it, the cards become 30-word stubs that produce flat downstream output.
Convention Track options: Name the reference system (e.g., "Notion-style", "Spotify-style"). Pick from the wide candidate pool in Step 0 — rotate across mentions, do not lock to any single trio. Include color tone, border radius, density, feel. Options must be meaningfully different across multiple axes (not three close cousins of the same system).
Innovation Track options: Name the creative direction. The naming pattern is methodology-flexible — Material Metaphor uses "{material} x {environment}" (e.g., "Liquid Metal x Nordic Winter"); archetype-driven uses a character name; narrative-driven uses a scene phrase; cultural-semiotic uses a movement reference. Include Feel/Color/Texture/Motion/Layout/Pages keywords. Options should represent genuinely different aesthetic directions, not three flavors of one methodology.
Reference-informed options (Scenario A-Ref): Options must be anchored to the user's reference. At least one option should stay close to the reference's visual style (e.g., "贴近参考" / "Reference-Faithful"). Other options should offer deliberate variations — modernize, warm up, simplify, or add personality — while still using the reference as the starting point. Do NOT propose options that completely ignore the reference.
Direction diversity requirement (CRITICAL): each direction must have its own color identity and emotional character — this is the PRIMARY differentiator. Directions should feel like completely different visual worlds, not lightness variants of the same palette. Anti-pattern (the #1 failure mode): organizing directions along the lightness axis — "one bright, one dark, one warm." Lightness follows from the color identity, not the other way around. Good differentiators: different accent hue families (coral vs emerald vs gold), different emotional registers (playful vs precise vs poetic), different material/texture feels (glossy metal vs raw ceramic vs crisp paper). If you catch yourself generating lightness variants instead of genuinely different color identities, start over.
Diversity enforcement (HARD constraint): before emitting cards, silently classify each direction along Layout Vibe (EDITORIAL | UTILITY | [HYBRID]), Corner Philosophy (SHARP | SOFT | [SPATIAL]), Accent Temperature (WARM | COOL | [NEUTRAL] | CHROMATIC), and Depth Strategy (FLAT | [LAYERED] | IMMERSIVE). Then verify: (1) any two directions differ on ≥ 3 of the dimensions; (2) at least one direction is a pure-extreme combination (no bracketed values); (3) no bracketed middle value appears in more than one direction. These classifications are not user-facing card content and must never be printed as headings, checklists, tables, raw enum strings, or verification notes.
Register constraint (overrides diversity): also track the derived register dials (Energy, Finish, Density, Weight, Seriousness) per direction. When the evidence locks a register region, all options stay inside it — a rock-venue brief gets 2-3 loud/raw directions that differ in layout, color identity, and depth, never one loud option "balanced" by polished-minimal alternatives. Register diversity across options is allowed only when the evidence is genuinely ambiguous.
IA-Visual Coupling (CRITICAL): each direction commits to an information architecture and layout philosophy that belong to its visual world — not just colors on top of a generic page list. Different directions imply different Pages and Layouts (an editorial direction may collapse navigation into a single-column scroll; a utility direction may split into nav + content + detail panes). Anti-pattern: three directions sharing the same Pages and Layout values, differing only in color and texture. The Pages and Layout fields are also the seed for the downstream wireframe — they are not decorative.
Navigation shell selection (mobile/app — CRITICAL): when the platform is mobile/app, each direction must declare its navigation shell — TabBar (3-5 peer destinations) / Stack (drill-in) / Hub (launcher of tiles) / Single-view (one focused surface + sheets) / Feed (full-screen gesture cards) — coherent with its Layout Vibe and the product's real flow. Do NOT default every app to a bottom TabBar; a 5-tab bar is earned only by 3-5 genuinely peer destinations. See write-mobile "Navigation Shell Decision" for the implementation recipes. Across the 2-3 proposed directions the shell SHOULD vary where the product reasonably supports it.
Mobile/App Structural Lens (APP/Mobile): alongside the navigation shell, decide which moments carry visual expression and which routine controls should stay quiet — keep concrete evidence such as player controls, feed rhythm, canvas edge tools, catalog comparison, or tactile media surfaces if the concept depends on them. This is a design lens, not a mandatory output schema: mention only compact, user-useful hints in Layout, Pages, or Motion. Do not print internal UI-language taxonomies, four-pillar schemas, fixed field names, or long implementation contracts.
Wait for user selection before continuing.
Convention Track: skip this step. Your visual direction comes from the established design system selected in Style Direction Confirmation.
WARNING: Avoid industry stereotypes from the start.
Before any visual decisions, deeply understand:
Output: 3-5 Feeling Keywords in the user's language.
Lazy Examples (AVOID):
Brand-First Examples (keywords may land anywhere on the register dials — soft, harsh, cheap, loud, and institutional feelings are all valid raw material):
Convention Track: skip this step.
Pick ONE methodology that fits the brand from Step 2's feeling keywords. Material Metaphor is one well-documented path; it is NOT the only valid Innovation Track approach. Treat the choice of methodology as itself a design decision driven by the brand, not a default.
Methodology options:
references/material-metaphor.md for the complete methodology.Other methodologies are acceptable when grounded in research. The four above are starting templates, not an exhaustive menu.
This is an internal decision step — do NOT present methodology sub-options to the user. Do NOT ask for further selection. Choose the methodology yourself based on the feeling keywords and proceed directly.
Methodology Brief Deliverable (output structure varies by methodology; for Material Metaphor specifically):
For other methodologies, the Brief carries equivalent fields adapted to that methodology's vocabulary (archetype name + archetype's signature visual properties; scene + scene-derived properties; cultural movement + movement-derived properties).
Anti-anchor: do NOT default to "Brushed Steel x Nordic Winter" or any other recurring material/environment pairing. The reference file's tables are starting points, NOT a selection menu. Invent new materials/environments specific to the brand when the listed ones don't fit.
Read references/visual-tokens.md for complete token structure.
Key categories: Color Roles (Primary 8-12% surface, Secondary, Background, Surface, Text, Semantic), Typography (Display, Title, Body, Caption, Label), Spacing (4px/8px base), Shadows (1-5 levels)
Reference Images as Palette Source: Extract and adapt color schemes from reference images. User-provided references take priority.
Image Asset Rules: Define whether each meaningful image comes from user-provided assets, official/source-owned assets, websearch/image search, Dribbble/Behance-style design artwork, Unsplash/Pexels/Wikimedia-style real photography, product screenshots, generated bitmap assets, or user/content data. Images must reveal the actual subject and support the product's information architecture; they are content, not decoration. Avoid dark blurred stock backgrounds, abstract mesh placeholders, generic laptop mockups, and product cards with fake gray boxes.
Color Depth Rules:
#FAF8F5, #F5F5F7, #1A1A1B, not pure black/white)Mobile App Color Operating Model (APP/Mobile):
Texture & Depth ("Secret Sauce"): Noise/Grain overlays, Glass/Blur (backdrop-blur), Inner Shadows, Subtle Gradients, 1px borders with opacity
Micro-Detail Finishing (Innovation Track) — pick the vocabulary that matches the derived Finish dial:
Convention Track derives equivalent finishing from reference system patterns.
Read references/component-recipe.md for 8-state interaction model and Tailwind class composition.
CRITICAL: Define components as atomic Tailwind class strings, not text descriptions.
Convention Track: Replicate reference system patterns faithfully (border radius, shadow depth, color usage, hover states).
Innovation Track: Translate Feeling Keywords and the chosen methodology brief (Material Metaphor / archetype / narrative / cultural-semiotic) into visual code. How does the methodology's core abstraction affect shadow/border/bg/ring? Capture the vibe in the code.
8-State Model: Default, Hover, Active, Focus, Disabled, Loading, Success, Error. Account for all relevant states.
Required Output: Tailwind classes for Container/Card, Primary Button, Input Field, Navigation Item, Badge/Tag.
See references/component-recipe.md for detailed examples.
Read references/motion-system.md for complete motion system.
Motion Purpose Test: Does this animation serve Feedback, Guidance, Continuity, or Brand Expression? If no, remove it.
Worth-It Test: "Would you spend a week hand-coding this? If no, don't include it."
Friction/Damping:
Spring Physics Over Fixed Curves: Button Press (scale: 0.98, stiffness: 400, damping: 10), Modal Open (y: 0, opacity: 1, stiffness: 250, damping: 25), Hover (y: -2, stiffness: 300, damping: 15)
Motion Character (register-driven): Tactile button feedback (active:scale-[0.98]), staggered delays (30-50ms). Quiet/polished registers use ease-out/spring physics; loud/raw registers may use hard cuts, linear snaps (80-150ms), and stepped/frame-skip reveals as deliberate brand expression. What is banned is unconsidered default easing, not any specific curve.
See references/motion-system.md for complete specifications.
Grid System: 12-column or 8pt spacing system. All components, gutters, margins multiples of 8px. In dense-poster register, deliberate off-grid rotation/overlap is allowed on top of a rigid underlying grid (see structural collision safety rules in references/anti-patterns.md).
Device Adaptability: Flexible grids and breakpoints for all screen sizes (desktop, tablet, mobile).
Modular Construction: Organize functional blocks into distinct modules. Column-based layouts for visual balance.
Density & Rhythm (take the tier from the derived Density dial — no global default):
| Tier | Macro spacing (between sections) | Micro padding | Character |
|---|---|---|---|
| Sparse (editorial/archival) | 64-120px | Generous; content never touches borders | Whitespace guides focus to primary CTA/key data |
| Standard (utility/consumer) | 32-64px | Comfortable; 16-24px internal padding | Balanced scanning rhythm |
| Dense (poster/feed/workbench) | 8-32px, intentional collisions allowed | Tight; edge-to-edge bleeds and overlaps allowed | Energy through stacking; hierarchy via scale/weight/color instead of distance |
Whichever tier applies, rhythm must be deliberate: dense means controlled collision with clear reading order, not accidental clutter; sparse means active whitespace, not emptiness.
Produce complete specification:
Quality Gate: Before delivery, read references/design-audit.md and apply all quality checks. Address issues before presenting to user.
generate_visual_dnaThis section applies to the main agent's orchestration context only. The design-dna sub-agent does not own the post-DNA flow -- it returns to the caller after generate_visual_dna completes.
Main agent rule — do NOT ask for confirmation after visual DNA generation. The post-visual-DNA flow is non-interactive: the main agent tells the user the visual specs are set and immediately proceeds to call save_final_prd (PRD) first, then write_code(initial_single_page) (preview page) — in that order, same turn, no text output between the two calls. Do NOT output a question like "需要先出一个核心页面看看整体感觉吗?" or "产品简报已保存...要继续吗?" — both calls are mandatory and uninterruptible.
Read references/anti-patterns.md (MANDATORY) for complete list.
Banned combination patterns (not individual colors — see anti-patterns.md for full list):
Dark Mode Backgrounds: any dark background without purple tint (hue 260-300, saturation > 10%). Vary color temperature — neutral, warm, cool, or tinted darks are all acceptable. Pure black (#000000) is allowed for modern genres like Neo-brutalism or Spatial UI.
Do NOT use default Tailwind color names — specify exact hex codes.
Unearned Register Default: skipping evidence-based register derivation in either direction — defaulting to quiet-polished minimalism for a loud/raw brief, or forcing grit onto a product whose evidence says quiet. Quiet/polished with cited evidence is fully legitimate. See anti-patterns.md § Unearned Register Default.
Quality Standards: Icons (same library, same style, same stroke weight 1.5-2px, 24x24 grid), Contrast (text/background >= 4.5:1), Body text (>= 14sp), Brand color (8-12% surface, EXEMPT: >30% allowed in Neo-brutalism/Marketing)
Real Image Standard: If the UI shows imagery, it must be real or credibly subject-specific. Product, listing, venue, food, travel, profile, media, portfolio, and hero imagery must depict the actual object/state/person/place/category being represented. Use purposeful crops, visible focal points, and alt text. If credible imagery cannot be sourced or generated, remove the image slot instead of filling it with placeholder art.
Acceptable when serving visual direction: Subtle gradients (backgrounds, not buttons), Glassmorphism (when reinforcing Material Metaphor), Bold saturated accents (not neon). Any hue is acceptable as accent as long as it does not form a banned combination pattern.
Industry defaults are challenged, not banned. Food=orange, tech=blue, eco=green, finance=blue/green, health=blue-white, and sleep=purple/deep blue are valid when they genuinely serve THIS product's brand. If you chose the hue because "that's what this industry does," find something better.
On app screens, avoid AI slop active/accent defaults: fluorescent green, generic blue, and Claude orange are valid accent choices when used with restraint, but must not become the automatic selected tab, primary CTA, or progress color. Use the 60/30/10 distribution and a saturation budget instead: quiet base, distinct supporting hue, restrained accent, and high saturation only for peak feedback. Tonal active states should combine color + shape/weight/indicator so selection is readable without turning the app into a neon theme, and do not repeat them by habit across unrelated products.
Reference Product Pool (study for the RANGE of valid approaches — order is intentionally varied, do NOT lock to the first 2-3 names): Notion, Spotify, Arc, Things 3, Figma, Airbnb, Craft, Stripe, Telegram, Duolingo, Linear, Raycast, Bear, Superhuman, Vercel, Apple, GitHub, Todoist. When picking a reference for a given product, pick the one that genuinely fits the brief — do not default to whichever name comes first.
© touchine-ojo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (references) in skills/app-ui-ux-best-practices of touchine-ojo/OJO-Design-Skills.
Open the folder on GitHubat commit fbd2c2d
App UI UX Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| App UI UX Best Practices this skilltouchine-ojo/OJO-Design-Skills | 157 | — | ~9.4k | Automated safety check: Warn | MIT | |
| Interface Design for Dashboards and Appsholaboss-ai/holaOS | 11k | 3 repos | ~6k | Automated safety check: Pass | MIT | |
| Tastemaker UI Designcodeswithroh/tastemaker | 444 | — | ~16k | Automated safety check: Pass | MIT | |
| UI Aesthetics Judgmentkasonye/ui-aesthetics-skill | 383 | — | ~3.2k | Automated safety check: Pass | None | |
| Agentos UI UXSapienXai/AgentOS | 118 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Distinctive UI Buildertw93/Waza | 7.2k | — | ~3.7k | Automated safety check: Pass | MIT |
holaboss-ai/holaOS
Pushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown.
codeswithroh/tastemaker
Grounds AI-built interfaces in real reference images and a saved personal taste profile, so UI work avoids the generic defaults of typical generated apps.
kasonye/ui-aesthetics-skill
Sets rules for web UI work that favor hierarchy, spacing and restrained styling, with routes for generating, reviewing and polishing interfaces.
SapienXai/AgentOS
Design, review, or implement AgentOS UI and UX work using the project’s operator-console visual system.
tw93/Waza
Builds or restyles production UI with a clear point of view, checks the result against screenshots and responsive states, and hands document typography to other skills.
damianvtran/local-operator
Deterministic design review for UI/UX on web and terminal screens: measure contrast, spacing, overlap, clipping and copy defects, then judge the rest.
Categories
Comprehensive App UI/UX design best practices. An agent skill from touchine-ojo/OJO-Design-Skills. App UI UX Best Practices is an agent skill from touchine-ojo/OJO-Design-Skills. Comprehensive App UI/UX design best practices.
App UI UX Best Practices fits situations like: define visual identity for a new product; create design specifications and tokens; establish UI component guidelines; build a cohesive design language.
Run `npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a claude-code`. Or copy the skill folder (skills/app-ui-ux-best-practices in touchine-ojo/OJO-Design-Skills) into .claude/skills/app-ui-ux-best-practices in your project. Claude Code loads it when a task matches its description.
Run `npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a codex`. Or copy the skill folder (skills/app-ui-ux-best-practices in touchine-ojo/OJO-Design-Skills) into .agents/skills/app-ui-ux-best-practices in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add touchine-ojo/OJO-Design-Skills --skill app-ui-ux-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-ui-ux-best-practices, .gemini/skills/app-ui-ux-best-practices, .github/skills/app-ui-ux-best-practices and .opencode/skills/app-ui-ux-best-practices in your project.
SKILL.md names no scripts, command-line tools or credentials: App UI UX Best Practices is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
App UI UX Best Practices is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.4k tokens (SKILL.md is roughly 38k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 48k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with App UI UX Best Practices: Interface Design for Dashboards and Apps (holaboss-ai/holaOS, 11k stars), Tastemaker UI Design (codeswithroh/tastemaker, 444 stars), UI Aesthetics Judgment (kasonye/ui-aesthetics-skill, 383 stars) and Agentos UI UX (SapienXai/AgentOS, 118 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
touchine-ojo (a GitHub organization) maintains it in touchine-ojo/OJO-Design-Skills, which has 157 GitHub stars. The repository was last updated on July 29, 2026.
Source: touchine-ojo/OJO-Design-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.