Self-contained UI/UX design intelligence: priority ladder, design reference (style, color, type, landing, charts, perf), polish checks, file-first design-system artifacts; deep defaults on React, Next.js, Tailwind, RN, Flutter.
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
UI/UX design and implementation for React, Next.js, Tailwind CSS, React Native, and Flutter. When the repo or user targets another stack (e.g. Vue, Svelte, SwiftUI), follow that stack and apply the same UX priorities — see stacks.
All normative guidance lives in this directory's rules files and SKILL.md.
design-system/MASTER.md and, when needed, page overrides and component specs per deliverables. Chat-only responses are insufficient when building a new surface or system.Extract: product type, audience, platforms (web vs native), style keywords, and which stack the edited files use. If unclear, inspect the repo (package.json, pubspec.yaml, framework configs) per stacks. Use design-reference to align product shape (e.g. dashboard vs landing) with density, motion, and section patterns.
Use Read on the rule files listed in non-negotiable 4. Use Grep/Glob on the repo for existing tokens, themes, and layout primitives before proposing new patterns.
Following deliverables:
design-system/MASTER.md with tokens, typography roles, motion rules, and component inventory.design-system/pages/<slug>.md when a screen legitimately diverges from global rules.design-system/components/<name>.md for substantial new components.Document color, type, and layout decisions using design-reference so choices are traceable in-repo.
Web (React / Next / Tailwind): semantic HTML, focus-visible, tokenized color/spacing, Next image/font and layout discipline where applicable.
// Example: accessible Tailwind button with design-token classes
export function PrimaryButton({ children, onClick, disabled }: ButtonProps) {
return (
<button
onClick={onClick}
disabled={disabled}
className="inline-flex items-center gap-2 rounded-lg bg-brand-600 px-4 py-2.5
text-sm font-medium text-white shadow-sm
hover:bg-brand-700 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-brand-600
disabled:cursor-not-allowed disabled:opacity-50
transition-colors duration-150"
>
{children}
</button>
);
}React Native: safe areas, touch targets ≥ 48 dp, list performance, accessibility labels.
// Example: accessible settings row (48dp minimum touch target)
import { Pressable, Text, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
export function SettingsRow({ label, onPress }: { label: string; onPress: () => void }) {
return (
<Pressable
onPress={onPress}
accessibilityRole="button"
accessibilityLabel={label}
style={({ pressed }) => ({
minHeight: 48,
paddingHorizontal: 16,
backgroundColor: pressed ? '#f3f4f6' : '#ffffff',
justifyContent: 'center',
})}
>
<Text style={{ fontSize: 16, color: '#111827' }}>{label}</Text>
</Pressable>
);
}Flutter: central ThemeData / ColorScheme, adaptive idioms when relevant.
Run the checklist in professional-ui and re-scan priority 1–3 in ux-priority.
Use WebSearch or WebFetch for platform guidelines (WCAG, Material, Apple HIG) or library docs when the user asks for citations or unfamiliar APIs. Prefer official docs.
User: "Add a billing settings screen in our Expo app; make it look professional."
design-system/pages/billing-settings.md. Update design-system/MASTER.md if danger/success tokens or spacing tiers are undefined.accessibilityLabel on icon-only overflow actions.Exercises non-negotiables 1–3 and 6–7: stack fidelity, file-first artifacts, native touch/a11y, no emoji icons.
design-system/* when building durable UI.