design-system

Applies Duolingo-style design tokens, Tailwind patterns, and component rules to React UI code.

3|1|Updated Jan 12, 2026
One-click install
npx skills add https://github.com/nghyane/VSTEP --skill design-system-nghyane
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: design-system
Source: https://github.com/nghyane/VSTEP/tree/main/apps/_deprecated/frontend-v2/.agents/skills/design-system
Command: npx skills add https://github.com/nghyane/VSTEP --skill design-system-nghyane

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Frontend developers often produce inconsistent UI when styling components ad hoc, mixing hardcoded colors, wrong border depths, and off-brand patterns. This Skill enforces a single Duolingo-inspired gamification design system so every card, button, and progress bar follows the same tokens and rules. ## Core Features & Use Cases - Design tokens and color rules: Provides semantic Tailwind token classes (bg-primary, bg-success, bg-skill-*) with a strict forbidden list of hardcoded palettes, hex codes, and dark: variants. - Component patterns: Supplies copy-ready class strings for buttons, cards, MCQ options, inputs, 3D progress bars, chips, dialogs, and coin badges, including the signature border-2 border-b-4 depth formula. - Icon and copy guidelines: Defines a 3-layer icon system (Icons8 3D PNG, Lucide, custom brand assets) plus Vietnamese encouraging copy rules with no Unicode emoji. - Use Case: When building a new exercise result screen in the React frontend, load this Skill to generate the correct success/destructive feedback cards, 3D progress bar, and score-based encouragement text without consulting the full RFC. ## Quick Start Use the design-system skill to style this new React component according to the Duolingo gamification patterns.

Frequently Asked Questions about design-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a 3D depth button with Tailwind CSS?▼

Use the pattern border-2 border-b-4 with a lighter top border and darker bottom border over a solid background, plus active:translate-y-[3px] active:border-b active:pb-[3px] for the press effect. Keep the element height fixed by compensating padding when the border shrinks.

What Tailwind classes should I use for semantic color variants?▼

Use token classes like bg-primary, bg-success, bg-warning, and bg-destructive with the bg-X/10 text-X pattern for light variants. Hardcoded palettes such as slate-*, red-*, hex codes, and bg-white are forbidden.

Can I use dark: variant classes with this design system?▼

No, dark: variants are forbidden because the CSS variable tokens in src/styles.css already handle dark mode automatically. Adding dark: overrides would break the token-based theming.

Why should icons not be wrapped in colored backgrounds?▼

Rule 0.1 requires gamification icons (Icons8 3D PNGs) to render bare via the GameIcon component, since wrapping them in colored backgrounds clashes with the 3D artwork. Exceptions exist only for icon-only buttons, checkbox visuals, and count badges.

When should a card have an active press state?▼

Only <button> elements like MCQ options get the active:translate-y press effect. Card <div> elements must never have active states; they only use hover:shadow-md to avoid layout shift and misleading affordances.