Skip to content
Back to skills

Ui Design

ASecurity

Unify product UI design, frontend implementation, and verification. Use when asked to design, redesign, build, or fix a web, desktop, or mobile interface; a page, dashboard, form, component, design system, responsive layout, accessibility, interface animation, or editable hero/banner/infographic within a product surface. Combine visual decisions with implementation. Do not use for backend-only work, generic architecture, standalone artwork or slide decks, or browser-test-only requests.

  • 154 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 8, 2026
ai-agentspythongoshellreactfrontendbackend

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 8, 2026

npx -y skills add AnastasiyaW/codex-claude-code-config --skill ui-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ui Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ui Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anastasiyaw-ui-design/badge)](https://www.skillsdirectory.com/skills/anastasiyaw-ui-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ui-design
description: Unify product UI design, frontend implementation, and verification. Use when asked to design, redesign, build, or fix a web, desktop, or mobile interface; a page, dashboard, form, component, design system, responsive layout, accessibility, interface animation, or editable hero/banner/infographic within a product surface. Combine visual decisions with implementation. Do not use for backend-only work, generic architecture, standalone artwork or slide decks, or browser-test-only requests.
---

# UI Design

Use one product-surface loop. Preserve existing brand tokens and component
conventions as the authority; do not replace them with a generic style guide.

This is the shared entry point for interface design. Supporting skills below
are implementation details, not alternative design workflows. Read the shared
contract once; a link back from a supporting skill is not a recursive reload.

## Editable visual blocks

For an illustrated hero, promotional banner, product infographic, or a supplied
visual to rebuild as editable UI, read
[Editable visual assets](references/editable-visual-assets.md). Keep text,
controls, data, and layout native to the product; generate only the imagery
that the requested composition needs. A screenshot is a preview, not editable
source or interaction proof. Ordinary forms and small CSS fixes skip this mode.
Standalone posters and PowerPoint conversion are separate deliverables, not
mandatory stages of UI work.

## Select the smallest supporting skill set

1. Read `../ui-ux-pro-max/SKILL.md` for a new surface, substantial redesign, or
   a visual/UX decision that needs evidence. Use its local search scripts with
   a short, specific query. Treat a zero-result search as zero evidence; do
   not invent a recommendation. Do not persist a generated design-system file
   unless the task explicitly asks for it.
2. Read `../frontend-design/SKILL.md` while changing an HTML, browser, or UXP
   frontend. Keep the implementation native to the detected stack and existing
   component system. Do not apply its browser CSS/ARIA recipes to a native
   Qt/QML surface.
3. Read `../motion-framer/SKILL.md` only when the changed surface is React/JS
   and the project already uses `motion`/`framer-motion`, or the user has
   explicitly authorized adding it. Otherwise use the platform's native
   primitives; never add the package merely to animate a control.
4. For a running surface, use the inspection tool that matches the surface:
   browser screenshot, interaction, accessibility-tree, and visual-diff tools
   are for browser/UXP/HTML. For native Qt/QML, use available native desktop
   and accessibility inspection instead. Never require a browser tool to prove
   a native application.
5. For native Qt/QML, keep existing Qt Quick Controls and theme components as
   the authority. When custom controls or focus behavior change, consult the
   Qt Quick [input-focus](https://doc.qt.io/qt-6/qtquick-input-focus.html) and
   [accessibility](https://doc.qt.io/qt-6/accessible-qtquick.html) guidance;
   verify native accessible semantics and keyboard behavior rather than
   substituting ARIA or CSS rules.

Do not load all four by default. A focused CSS fix normally needs only the
implementation guidance and a focused proof.

## Work in one loop

1. Inspect the target surface, real stack, existing tokens/components, changed
   user flow, supported widths, and any current visual evidence.
2. State a compact design contract before editing: primary user action,
   information hierarchy, reuse/new tokens, keyboard/contrast behavior, and
   platform-appropriate sizing and motion behavior. Browser breakpoints and
   `prefers-reduced-motion` are conditional, not universal desktop
   requirements. For a tiny local fix, keep this contract proportional to that
   fix.
3. Implement the visual and interaction changes together. Prefer semantic
   structure, stable component boundaries, and design tokens over one-off
   pixel overrides. Do not add animation that obscures feedback, delays an
   action, or ignores reduced-motion preferences.
4. Verify the changed flow at the narrowest real boundary: project checks
   first, then live behavior appropriate to the target when runnable and the
   risk warrants it. Use browser/UXP screenshot and accessibility-tree evidence
   for web surfaces; use native Qt/QML keyboard and accessibility inspection for
   desktop surfaces. Check the affected platform sizing, keyboard path, visible
   focus, contrast, overflow, and motion behavior rather than declaring a page
   "polished" from source code alone. A source read or screenshot without an
   identified running build is never runtime PASS.

## Decision boundaries

- Keep an established design system unless the task is explicitly a redesign.
- Keep UI Pro Max as retrieval evidence, not as an authority over the product's
  brand, accessibility contract, or existing UX research.
- Treat motion as progressive enhancement. The same action and information
  must remain clear with reduced motion and without animation support.
- Do not broaden a UI request into unrelated product copy, backend, analytics,
  or global restyling without evidence that the requested flow requires it.

## Interaction-specific proof

Apply only the slice that the changed surface contains; this is not a demand to
add a modal, custom validation, or extra animation to an otherwise simple UI.
Browser-specific ARIA, CSS, and WCAG-pixel checks do not prove a native QML
implementation; source inspection alone does not prove any runtime behavior.

- **Native Qt/QML custom control:** verify actual `Tab`/focus-scope traversal,
  visible focus, documented keyboard activation, and Qt Quick accessible
  role/name/state with a native accessibility inspector where available. Keep
  a runtime receipt tied to the build identity.
- **Native Qt/QML modal/dialog:** verify initial focus, keyboard operation,
  modal containment when applicable, and focus return to the invoking control
  after close.
- **Native Qt/QML form/error:** verify keyboard reachability and that
  error/status text is exposed through the native accessibility path; do not
  infer it from a property declaration.
- **End-to-end retouch workflow:** verify the real user path (for example,
  import, adjust, apply/save) in the running native app before calling the
  surface usable; code or a static screenshot is only source/visual evidence.

- **Modal dialog:** verify that opening moves focus into the dialog, `Tab` and
  `Shift+Tab` stay in its sequence, `Escape` closes it when the product supports
  dismissal, and closing restores focus to the invoking control (or a documented
  logical successor). Do not claim `aria-modal` unless the background is actually
  inert. [WAI-ARIA APG modal-dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/)
- **HTML/UXP form error:** verify a detected invalid field is identified and
  its error is described in text. An inline message, summary, alert, or native
  validation can be appropriate only when the real browser/assistive-technology
  behavior supports the chosen path; color alone is not an error description.
  [WCAG 2.2 SC 3.3.1](https://www.w3.org/WAI/WCAG22/Understanding/error-identification.html)
- **HTML/UXP dense pointer controls:** for adjacent compact controls, assess the WCAG
  2.5.8 boundary: a 24 by 24 CSS-pixel target or its spacing/equivalent/inline
  exception. Do not blindly enlarge an inline link or an essential dense control.
  [WCAG 2.2 SC 2.5.8](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html)
- **Web motion:** when motion changes, exercise the reduced-motion branch rather
  than assuming that a static source review proves it. `prefers-reduced-motion`
  communicates the user's request to reduce, remove, or replace non-essential
  motion. [MDN reference](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion)
- **Native motion:** verify the product's documented OS/app motion accommodation
  if it exists. Do not invent a CSS media-query requirement for QML.

## Local UI Pro Max validation boundary

The vendored `ui-ux-pro-max` folder is a distributed skill, not its complete
upstream repository. Its local acceptance checks are the data validation and a
real, scoped retrieval query, for example:

```powershell
python skills/frontend/ui-ux-pro-max/scripts/validate_data.py
python skills/frontend/ui-ux-pro-max/scripts/search.py "keyboard focus modal" --domain ux
```

Do not run or report `test_catalog_refresh.py` or `test_relevance_evaluator.py`
as local PASS criteria: each imports an upstream-root script absent from the
distributed skill. Preserve that boundary as `NOT_RUN_UPSTREAM_DEPENDENCY`, not
as a failure repaired with stubs or as a passing test.

## Gotchas

- A fixed-canvas poster can look excellent while being unsuitable for a
  responsive interface. Do not import its absolute-pixel, single-file layout
  policy into a product.
- A selectable raster layer is not editable text, a working control, or a
  data-bound chart. Name the actual editability boundary.

## Troubleshooting

- The agent found only `frontend-design`: follow its shared-entry link here
  once, then load only the reference needed for the changed surface.
- A copy change requires regenerating the hero: extract the copy into native
  text and keep the illustration separate; verify wrapping and contrast.
- The render is correct but an action cannot be used: inspect the running
  control, focus, and hit area. More screenshot polishing does not fix it.

Files in this skill

  • SKILL.md9.4 KB
  • agents/openai.yaml312 B
  • references/editable-visual-assets.md6.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.