Confirm successful installation by checking the skill directory location:
.cursor/skills/ui-web
Restart Cursor to activate ui-web. Access via /ui-web in your agent's command palette.
โ
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
These rules are NON-NEGOTIABLE. Every UI element must pass these checks.
1. Color Contrast (CRITICAL)
Text Contrast Requirements:
โโโ Normal text (<18px): 4.5:1 minimum
โโโ Large text (โฅ18px bold or โฅ24px): 3:1 minimum
โโโ UI components (buttons, inputs): 3:1 minimum
โโโ Focus indicators: 3:1 minimum
FORBIDDEN COLOR COMBINATIONS:
โ gray-400 on white (#9CA3AF on #FFFFFF = 2.6:1) - FAILS
โ gray-500 on white (#6B7280 on #FFFFFF = 4.6:1) - BARELY PASSES
โ white on yellow - FAILS
โ light blue on white - USUALLY FAILS
SAFE COLOR COMBINATIONS:
โ gray-700 on white (#374151 on #FFFFFF = 9.2:1)
โ gray-600 on white (#4B5563 on #FFFFFF = 6.4:1)
โ gray-900 on white (#111827 on #FFFFFF = 16:1)
โ white on gray-900, blue-600, green-700
2. Visibility Rules (CRITICAL)
ALL BUTTONS MUST HAVE:
โ Visible background color OR visible border (min 1px)
โ Text color that contrasts with background
โ Minimum height: 44px (touch target)
โ Padding: at least px-4 py-2
NEVER CREATE:
โ Buttons with transparent background AND no border
โ Text same color as background
โ Ghost buttons without visible borders
โ White text on light backgrounds
โ Dark text on dark backgrounds
3. Required Element Styles
// EVERY button needs visible boundaries// PRIMARY: solid background<buttonclassName="bg-gray-900 text-white px-4 py-3 rounded-lg"> Primary
</button>// SECONDARY: visible background<buttonclassName="bg-gray-100 text-gray-900 px-4 py-3 rounded-lg"> Secondary
</button>// GHOST: MUST have visible border<buttonclassName="border border-gray-300 text-gray-700 px-4 py-3 rounded-lg"> Ghost
</button>// NEVER DO THIS:<buttonclassName="text-gray-500">Invisible Button</button>// โ NO BOUNDARY<buttonclassName="bg-white text-white">Hidden</button>// โ NO CONTRAST
4. Focus States (REQUIRED)
// EVERY interactive element needs visible focusclassName="focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2"// NEVER remove focus without replacementclassName="outline-none"// โ FORBIDDEN without ring replacement
5. Dark Mode Contrast
When implementing dark mode:
โโโ Text must be light (gray-100 to white) on dark backgrounds
โโโ Borders must be visible (gray-700 or lighter)
โโโ Never use gray-400 text on gray-900 bg (fails contrast)
โโโ Test BOTH modes before shipping
SAFE DARK MODE TEXT:
โ text-white on bg-gray-900
โ text-gray-100 on bg-gray-800
โ text-gray-200 on bg-gray-900
UNSAFE (FAILS CONTRAST):
โ text-gray-500 on bg-gray-900 (2.4:1)
โ text-gray-400 on bg-gray-800 (3.1:1)
Core Philosophy
Beautiful UI is not decoration - it's communication. Every visual choice should serve clarity, hierarchy, and user confidence. Default to elegance and restraint.
// Limit to 3-4 font sizes per pageconst typography ={ hero:'text-4xl md:text-5xl font-bold tracking-tight', heading:'text-2xl md:text-3xl font-semibold', subheading:'text-lg md:text-xl font-medium', body:'text-base leading-relaxed', caption:'text-sm text-gray-500',};// Rule: Never use more than 2 font families// Rule: Line height 1.5-1.7 for body text
Glassmorphism (Web)
Base Glass Card
// Modern glass effect - use sparingly for emphasisconstGlassCard=({ children, className =''})=>(<divclassName={` backdrop-blur-xl
bg-white/10
border border-white/20
rounded-2xl
shadow-xl
shadow-black/5
${className}`}>{children}</div>);
โบClaude Desktop or compatible AI client with skill support
โบClear understanding of task or problem to solve
โบWillingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Steps
1Install skill using provided installation command
2Test with simple use case relevant to your work
3Evaluate output quality and relevance
4Iterate on prompts to improve results
5Integrate into regular workflow if valuable
Common Pitfalls
โ Expecting perfect results without iteration
โ Not providing enough context in prompts
โ Using skill for tasks outside its intended scope
โ Accepting outputs without review and validation
Best Practices
โ Do
+Start with clear, specific prompts
+Provide relevant context and constraints
+Review and refine all outputs before using
+Iterate to improve output quality
+Document successful prompt patterns
โ Don't
โDon't use without understanding skill limitations
โDon't skip validation of outputs
โDon't share sensitive information in prompts
โDon't expect skill to replace human judgment
๐ก Pro Tips
โ Be specific about desired format and style
โ Ask for multiple options to choose from
โ Request explanations to understand reasoning
โ Combine AI efficiency with human expertise
When to Use This
โ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
โ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path
1Familiarize yourself with skill capabilities and limitations
2Start with low-risk, non-critical tasks
3Progress to more complex and valuable use cases
4Build expertise through regular use and experimentation