| name | ui-ux-pro-max |
| description | UI/UX design intelligence. Plan, build, design, implement, review, improve UI/UX code. Styles: image-first, editorial design, minimalism, dark mode, responsive. Projects: landing page, dashboard, SaaS, mobile app. |
UI/UX Pro Max
UI/UXãã¶ã€ã³ããã³å®è£
ã®å°éã¹ãã«ã
æ žå¿: ãå
šéšã¡ãããšããããAIçææã®æ£äœããäœãæšãŠãããããã¶ã€ã³ã
察å¿é å
- ã©ã³ãã£ã³ã°ããŒãžèšèš
- ããã·ã¥ããŒãUI
- SaaSãããã¯ã
- ã¢ãã€ã«ã¢ããªïŒã¬ã¹ãã³ã·ãïŒ
è¡åååïŒ5ã€ã®éåïŒ
1. äœãåã«çã
- å
šèŠçŽ ã«ãæ¬åœã«èŠãïŒããåã
- çããææ§ãªãããŸãç¡ãã§äœã
2. 䞻圹ã1ã€æ±ºãã
- åã»ã¯ã·ã§ã³ã§ãäžçªèŠããããã®ãã1ã€ã ãæ±ºãã
- 決ãŸããŸã§ã³ãŒããæžããª
3. 70ç¹ã䞊ã¹ããª
- å
šèŠçŽ ãåãååšæ = 倱æ
- 1ã€ã120ç¹ãæ®ãã60ç¹ã«ãã
4. ãã§ããŸããããããããŸãããã
- 远å ããåé€ãææ¡ãã
- è¿·ã£ããåã
5. æ¹å€ããŠããäœã
- çŸç¶ã®åé¡ç¹ã3ã€ä»¥äžæããŠããæ¹åæ¡ãåºã
- ãããæãã§ãããã¯çŠæ¢
AIçææãé¿ãã
ãã£ãŠã¯ãããªãããš
- å
šèŠçŽ ãåãååšæïŒåäžãªäœçœãå®å
šãªè²ïŒ
- 決æã®äžåšïŒAãšBã©ã¡ãã§ããã奜ã¿ã§ïŒ
- éå°ãªè£
é£ŸïŒæå³ã®ãªãã°ã©ããŒã·ã§ã³ãã¢ãã¡ãŒã·ã§ã³ïŒ
ãããæãã§ãããçŠæ¢
- 宿åŸããæ¹åã®äœå°ããããšããã°ãããæ·»ãã
- 決æãæ±ãããããæ±ºæããïŒæ ¹æ ãæ·»ããŠäžã€ãæšå¥šïŒ
ãã¬ãã¢ã ãã¶ã€ã³ã®å
¬åŒ
Premium = (ç»åã®è³ª à ãµã€ãº) + (äœçœ) - (è£
食)
3ã€ã®æ±:
- 倧ããªç»å - ã«ãŒãã®70-85%ãç»åãå ãã
- 倧èãªäœçœ - ã»ã¯ã·ã§ã³é112px以äž
- æå¶ - ãã¹ãŠã®å¹æã«çç±ãå¿
èŠ
åç
§ãã©ã³ã: Spitfire Audio, Native Instruments, iZotope
ç»åã¬ã€ãã©ã€ã³
| ã³ã³ããã¹ã | ç»åãµã€ãº | ã¢ã¹ãã¯ãæ¯ |
|---|
| 補åã«ãŒã | ã«ãŒãé¢ç©ã®70-85% | 16:9 or 4:3 |
| ããŒããŒã»ã¯ã·ã§ã³ | ãã«ãã¥ãŒããŒãå¹
| å¯å€ |
| ã®ã£ã©ãªãŒã°ãªãã | é«ãçµ±äžãå¹
å¯å€ | æ··å |
ç»åã®æ±ã:
- ç»åãã³ã³ãã³ãã®äž»åœ¹
- ããã¹ãã¯æå°éïŒåå + 1è¡èª¬æïŒ
- ç»åäžã«æ©èœãªã¹ããéããªã
- é«å質ãªã¹ã¯ãªãŒã³ã·ã§ãã/ã¬ã³ããªã³ã°ã䜿çš
äœçœããŒã¯ã³
| ããŒã¯ã³ | å€ | çšé |
|---|
--space-section | 112px | ã»ã¯ã·ã§ã³é |
--space-group | 64px | é¢é£ã³ã³ãã³ãé |
--space-element | 24px | èŠçŽ é |
ã»ã¯ã·ã§ã³ããã£ã³ã°:
padding-top: 112px;
padding-bottom: 112px;
padding-top: 64px;
padding-bottom: 64px;
Tailwind察å¿:
<section className="py-28">...</section>
<section className="py-16">...</section>
ã°ãªããã·ã¹ãã
| åæ° | çšé | ã®ã£ãã |
|---|
| 4å | 補åã·ã§ãŒã±ãŒã¹ | 24px (gap-6) |
| 3å | æ©èœã«ãŒããäŸ¡æ Œ | 32px (gap-8) |
| 2å | ããŒããŒãæ¯èŒ | 48px (gap-12) |
èŠèŠéå±€ãã§ãã¯ãªã¹ã
äœæ¥éå§å
äœæ¥äž
äœæ¥å®äºå
CRITICAL: ã¢ã¯ã»ã·ããªãã£åªå
ãã®ã»ã¯ã·ã§ã³ã¯æåªå
äºé
ããã¶ã€ã³ã®çŸãããããã¢ã¯ã»ã·ããªãã£ãåªå
ããã
WCAG 2.1 ã³ã³ãã©ã¹ãèŠä»¶
| ããã¹ããµã€ãº | æå°ã³ã³ãã©ã¹ãæ¯ |
|---|
| éåžžããã¹ã (< 18px) | 4.5:1 |
| 倧ããããã¹ã (⥠18px bold / ⥠24px) | 3:1 |
| UI ã³ã³ããŒãã³ãã»ã¢ã€ã³ã³ | 3:1 |
å¿
é : ãããžã§ã¯ãã® globals.css ã䜿çš
Tailwind ã®ããã©ã«ãè²ãçŽæ¥äœ¿ããªãã ãããžã§ã¯ãã® globals.css ã§å®çŸ©ãããããŒã¯ã³ãåªå
ããã
<p className="text-slate-400">...</p>
<p className="text-slate-500">...</p>
<p className="text-muted">...</p>
<p className="text-subtle">...</p>
å®è£
åã«å¿
ã app/globals.css ã確èªããå®çŸ©æžã¿ããŒã¯ã³ãææ¡ããããšã
ãããžã»ã¿ã°ã®ã³ã³ãã©ã¹ã
åç³»è²ã®çµã¿åããã¯å±éº:
<span className="bg-indigo-600/20 text-indigo-400">Badge</span>
<span className="bg-amber-500/20 text-amber-400">éçºäž</span>
<span className="bg-indigo-600/30 text-indigo-300">Badge</span>
<span className="bg-amber-600/30 text-amber-200">éçºäž</span>
ç¡å¹ç¶æ
ã®ããã¹ã
<button className="text-white/50" disabled>...</button>
<button className="text-white/70" disabled>...</button>
å€èšèªã¿ã€ãã°ã©ãã£
ãªãå¿
èŠã: æ¥æ¬èªã¯åããã©ã³ããµã€ãºã§ãè±èªããèŠèŠçã«éãèŠããïŒç»æ°ãå€ãããïŒãåããµã€ãºã ãšæ¥æ¬èªã窮å±ã»éãèŠããããã1段éå°ããããŠèŠèŠçãã©ã³ã¹ãåãã
ã¿ã€ãã°ã©ãã£ããŒã¯ã³ïŒglobals.css ã§å®çŸ©æžã¿ïŒ
| ããŒã¯ã³ | çšé | è±èª (ãã¹ã¯ããã) | æ¥æ¬èª (ãã¹ã¯ããã) |
|---|
.text-hero | ã©ã³ãã£ã³ã°ããŒãžã®ã¡ã€ã³ã¿ã€ãã« | 96px | 80px |
.text-section | ã»ã¯ã·ã§ã³èŠåºãïŒh2ïŒ | 48px | 40px |
.text-headline | æ©èœã¿ã€ãã«ã補åèŠåºã | 30px | 24px |
.text-subhead | ã¿ã°ã©ã€ã³ããªãŒãæ | 24px | 20px |
äœ¿çšæ¹æ³
<h1 className="text-5xl md:text-8xl font-bold">...</h1>
<h1 className="text-hero text-white">...</h1>
ã¬ã¹ãã³ã·ã察å¿
ããŒã¯ã³ã«ã¯ã¢ãã€ã«ã»ã¿ãã¬ããã»ãã¹ã¯ãããã®ã¬ã¹ãã³ã·ããµã€ãºãå«ãŸããã远å ã®ãã¬ãŒã¯ãã€ã³ãæå®ã¯äžèŠã
<h1 className="text-hero sm:text-hero md:text-hero">...</h1>
<h1 className="text-hero">...</h1>
é©çšå¯Ÿè±¡
- ã©ã³ãã£ã³ã°ããŒãžã®èŠåºãïŒh1, h2ïŒ
- ã»ã¯ã·ã§ã³ã¿ã€ãã«
- 補ååãæ©èœå
- ã¿ã°ã©ã€ã³ããªãŒãæ
泚æ: æ¬æããã¹ãïŒpèŠçŽ ã®é·æïŒã«ã¯é©çšããªããæ¬æã¯ text-white/80 çã®éåžžã¹ã¿ã€ã«ã䜿çšã
ãã¶ã€ã³ããŒã¯ã³éµå®ã«ãŒã«
åå: Tailwindã®ããã©ã«ãå€ãçŽæ¥äœ¿çšãããglobals.css ã§å®çŸ©ããããã¶ã€ã³ããŒã¯ã³ã䜿çšããã
è§äžžïŒBorder RadiusïŒ
| ããŒã¯ã³ | å€ | çšé |
|---|
--radius-sm | 8px | å°ãããããžãã¿ã° |
--radius-md | 12px | ãã¿ã³ãå
¥åãã£ãŒã«ã |
--radius-lg | 16px | ã«ãŒããã¢ãŒãã« |
--radius-full | 999px | ãã«åãã¿ã³ãã¢ãã¿ãŒ |
<button className="rounded-lg">...</button>
<div className="rounded-xl">...</div>
<button className="rounded-[var(--radius-md)]">...</button>
<div className="rounded-[var(--radius-lg)]">...</div>
è²
<p className="text-slate-400">...</p>
<div className="bg-gray-900">...</div>
<p className="text-muted">...</p>
<div className="bg-mued-bg">...</div>
ããŒã¯ã³éåãã§ãã¯
å®è£
åŸã¯ä»¥äžã§éåã確èª:
grep -r "rounded-sm\|rounded-md\|rounded-lg\|rounded-xl\|rounded-2xl" components/
grep -r "bg-slate-\|bg-gray-\|text-slate-\|text-gray-" components/
æ€åºããããã®ã¯é 次ããŒã¯ã³ã«çœ®æããã
ãã¿ã³ã¹ã¿ã€ã«
Primary CTAïŒããã©ã«ã: çœããŒã¹ïŒ
<button className="bg-white text-black px-8 py-4 text-lg font-medium rounded-[var(--radius-md)] hover:bg-white/90 transition-colors cursor-pointer">
Download Now
</button>
SecondaryïŒæ ç·ã®ã¿ïŒ
<button className="border-2 border-white text-white px-8 py-4 text-lg font-medium rounded-[var(--radius-md)] hover:bg-white/10 transition-colors cursor-pointer">
Learn More
</button>
ãã©ã³ãåºæïŒéå®çã«äœ¿çšïŒ
è²ä»ããã¿ã³ã®äœ¿çšæ¡ä»¶:
- ãã©ã³ãåºæã»ã¯ã·ã§ã³ïŒMUEDear amberçïŒã®ã¿
- 1ããŒãžã«1-2ç®æãŸã§
- ããã©ã«ãã«ã¯ããªã
<button className="border-2 border-amber-500 text-amber-400 hover:bg-amber-500 hover:text-white ...">
Download App
</button>
Disabled
<button className="bg-white/5 text-white/70 cursor-not-allowed" disabled>
Disabled
</button>
èæ¯ã¹ã¿ã€ã«
䜿çšããèæ¯
<section className="bg-black">...</section>
<section className="bg-[#0f0f0f]">...</section>
<section className="bg-white">...</section>
é¿ããè£
食
| ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
| ãããŒãã£ã³ã°ã°ããŒãªãŒã | æ°ãæ£ã | åé€ |
bg-gradient-to-b from-violet-900/20 | è£
食çãã€ãº | åè² |
| ã°ã¬ã€ã³ãã¯ã¹ã㣠| äžèŠãªè€éã | åé€ |
| ã¢ãã¡ãŒã·ã§ã³èæ¯ | ããã©ãŒãã³ã¹æªå | éç |
ã«ãŒãã¹ã¿ã€ã«
ç»åäžå¿ã«ãŒãïŒããã©ã«ãïŒ
<div className="bg-[#0f0f0f] rounded-[var(--radius-lg)] overflow-hidden">
{}
<div className="aspect-video">
<Image src="..." alt="..." fill className="object-cover" />
</div>
{}
<div className="p-6">
<h3 className="text-white text-lg font-medium">補åå</h3>
<p className="text-white/60 text-sm">äžè¡ã®èª¬æ</p>
</div>
</div>
Glass CardïŒéå®çã«äœ¿çšïŒ
泚æ: Glassmorphism ã¯ç¹å®ã®ã³ã³ããã¹ãïŒäŸ¡æ Œè¡šãæ©èœæ¯èŒãªã©ïŒã§ã®ã¿äœ¿çšãããã©ã«ãã«ããªãã
<div className="bg-white/5 backdrop-blur-xl border border-white/10 rounded-[var(--radius-lg)] p-6">
<h3 className="text-white font-semibold">Title</h3>
<p className="text-white/80">Description</p>
</div>
Glass Card äœ¿çšæã®æ³šæ:
- ããã¹ãã¯
text-white ãŸã㯠text-white/80 以äž
text-slate-* ã text-gray-* ã¯äœ¿çšããªã
- èæ¯ãåéæãªããã³ã³ãã©ã¹ãèšç®ãè€é
æç€ºãšã¹ã«ã¬ãŒã·ã§ã³ãããã³ã«
ãŠãŒã¶ãŒã®è¡šçŸã«å¿ããŠå¯Ÿå¿ã¬ãã«ãå€ãã:
| ãŠãŒã¶ãŒã®è¡šçŸ | è§£é | å¿
èŠãªå¯Ÿå¿ |
|---|
| ãSpitfireã¬ãã«ããNative Instrumentsã¬ãã«ã | å
šé¢çãªèŠèŠæ¹ä¿® | 埮調æŽã§ã¯ãªãå®å
šãªãã¶ã€ã³ |
| ããã£ãšãã¬ãã¢ã ã«ã | å®è³ªçãªå€æŽ | 广ãåé€ãäœçœãå¢å |
| ãã¯ãªãŒã³ã«ã | äžçšåºŠã®ã¯ãªãŒã³ã¢ãã | è£
食èŠçŽ ã®30%åé€ |
| ã調æŽãã埮調æŽã | å°ããªä¿®æ£ | CSS倿Žã®ã¿ |
éèŠã«ãŒã«: åç
§ãã©ã³ããåæããããããææ¡åã«çŸåšã®å®è£
ããã®ãã©ã³ããšæ¯èŒããããšã
å®è£
ãã§ãã¯ãªã¹ã
å®è£
åãã§ãã¯
å®è£
äžãã§ãã¯
| 質å | ãNoãã®å Žåã®ã¢ã¯ã·ã§ã³ |
|---|
| ã»ã¯ã·ã§ã³ããã£ã³ã° >= 100pxïŒ | py-28以äžã«å¢å |
| ç»åãã«ãŒãé¢ç©ã®60%以äžïŒ | ç»åãæ¡å€§ |
| ãã¿ã³ã¯çœãŸãã¯æ ç·ã®ã¿ïŒ | è²ä»ãããå€æŽ |
| èæ¯ã¯åè²ïŒã°ã©ããŒã·ã§ã³ãªãïŒïŒ | è£
食èŠçŽ ãåé€ |
å®è£
åŸãã§ãã¯
- ã¹ãã³ããã¹ã: ç®ã现ããŠèŠãã補åãèå¥ã§ãããïŒå¹æãæ¯é
çãªãåæžã
- ã1ã€åé€ããã¹ã: åã»ã¯ã·ã§ã³ãã1èŠçŽ åé€ããŸã æ©èœãããïŒæ©èœãããªãäžèŠã ã£ãã
- Spitfireæ¯èŒ: ã¹ã¯ãªãŒã³ã·ã§ãããSpitfire.comãšäžŠã¹ããèŠèŠçãéããã¯äŒŒãŠãããïŒ
é¿ããã¹ããã¿ãŒã³ïŒæç€ºççŠæ¢ãªã¹ãïŒ
"Claude defaults to safe choices" - æç€ºçã«çŠæ¢ããªããšæ±çšçãªéžæã«åæãã
èæ¯ã»è£
食
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
bg-white/5 backdrop-blur-xl å€çš | ã2023ãã³ãã¬ãŒããæ | bg-black or bg-[#0f0f0f] |
bg-gradient-to-b from-violet-900/20 | è£
食çãã€ãº | åé€ |
bg-gradient-to-br from-indigo-500/10 | åäž | åé€ |
| ã¢ãã¡ãŒã·ã§ã³ãããèæ¯ | æ°ãæ£ããããã©ãŒãã³ã¹æªå | éçãåè² |
ã°ã¬ã€ã³ãã¯ã¹ã㣠(noise.svg) | äžèŠãªè€éã | åé€ |
| ãããŒãã£ã³ã°ã°ããŒãªãŒã | 2020幎代ååã®ãã¬ã³ã | åé€ |
圱ã»ã°ããŒ
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
shadow-lg shadow-indigo-500/20 | 人工çãªããããã | 圱ãªã or shadow-sm shadow-black/20 |
shadow-xl shadow-violet-500/30 | åäž | åäž |
shadow-2xl shadow-amber-500/25 | åäž | åäž |
hover:shadow-*-500/40 | ãããŒæã®ã°ããŒåŒ·èª¿ | hover:bg-white/10 ãªã©æ§ããã« |
drop-shadow-[0_0_*px_rgba()] | ã«ã¹ã¿ã ã°ã㌠| åé€ |
ã¬ã€ã¢ãŠã
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
| ã¢ã€ã³ã³ä»ã3åæ©èœã°ãªãã | æ±çšSaaSãã¶ã€ã³ | 倧ããªç»å + æå°ããã¹ã |
| åçãª3åã«ãŒãïŒåãµã€ãºïŒ | ãå
šéšåãååšæã | 1ã€ã倧ãããæ®ããå°ãã |
py-12 以äžã®ã»ã¯ã·ã§ã³éé | çª®å± | py-28 (112px) ä»¥äž |
| äžå€®å¯ãã®ãã¹ãŠ | å®å
šããã | å·Šå¯ã or éå¯Ÿç§°ãæ€èš |
ã³ã³ããŒãã³ã
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
hover:scale-105 + hover:shadow-* | éå°ãªãããŒãšãã§ã¯ã | hover:bg-white/10 ã®ã¿ |
transition-all duration-300 | éããäºæž¬äžèœ | transition-colors duration-200 |
group-hover:translate-x-2 ç¢å° | ããèŠããã¿ãŒã³ | åé€ or translate-x-1 |
| è²ä»ãCTAãã¿ã³ïŒããã©ã«ã䜿çšïŒ | AI safe choice | çœèæ¯ or çœæ ç· |
ã¢ãã¡ãŒã·ã§ã³
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
| æ£ãã°ã£ããã€ã¯ãã€ã³ã¿ã©ã¯ã·ã§ã³ | çµ±äžæãªã | 1ã€ã®ããŒãžããŒãæŒåºã«éäž |
animate-pulse å€çš | æ°ãæ£ã | åé€ or 1ç®æã®ã¿ |
animate-bounce åžžæ | åäž | ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³æã®ã¿ |
| è€æ°èŠçŽ ã®åæã¢ãã¡ãŒã·ã§ã³ | ã«ãªã¹ | staggered delays ã§é 次 |
è²ïŒAI Safe ChoicesïŒ
| çŠæ¢ãã¿ãŒã³ | åé¡ | ä»£æ¿æ¡ |
|---|
| 玫ã°ã©ããŒã·ã§ã³ on çœèæ¯ | æãæ±çšçãªAIéžæ | åè²ããŒã¯ |
from-violet-600 to-indigo-600 | åäž | åé€ |
text-indigo-400 ãããã©ã«ãã« | ãã©ã³ãè²ã®ä¹±çš | text-white or text-white/80 |
| åç³»è²ãããžïŒindigo on indigoïŒ | ã³ã³ãã©ã¹ãäžè¶³ | çœèæ¯ + é»ããã¹ã |
ã¢ã€ã³ã³
- 䜿çšã©ã€ãã©ãª: Lucide Icons
- çŠæ¢: çµµæåãã¢ã€ã³ã³ãšããŠäœ¿çšããªã
import { Music, Brain, Sparkles, Check, X } from 'lucide-react';
ã¬ã¹ãã³ã·ããã¬ãŒã¯ãã€ã³ã
æ€èšŒãã¹ãç»é¢å¹
:
- 320px (æå°ã¢ãã€ã«)
- 768px (ã¿ãã¬ãã)
- 1024px (ãã¹ã¯ããã)
- 1440px (倧ç»é¢)
Pre-Delivery Checklist
ã³ã³ãã©ã¹ãç¢ºèªæ¹æ³
å®è£
åŸã¯å¿
ã Lighthouse ã§ã¢ã¯ã»ã·ããªãã£ã確èª:
npm run dev
lighthouse http://localhost:3000 --only-categories=accessibility --view
lighthouse http://localhost:3000 --only-categories=accessibility --output=json | jq '.audits["color-contrast"]'
ç®æš: Lighthouse Accessibility Score 100%