frontend-aesthetics
UIデザインでありがちな没個性的な印象を避け、特徴的なフォント、統一感のある配色、効果的なアニメーション、雰囲気のある背景を用いて、ランディングページやダッシュボードなどのブランドイメージを高めるデザインを作成するSkill。
📜 元の英語説明(参考)
Use when creating UI designs to avoid generic "AI slop" aesthetics. Enforces distinctive typography, cohesive color systems, purposeful motion, and atmospheric backgrounds. Critical for landing pages, dashboards, and branded interfaces.
🇯🇵 日本人クリエイター向け解説
UIデザインでありがちな没個性的な印象を避け、特徴的なフォント、統一感のある配色、効果的なアニメーション、雰囲気のある背景を用いて、ランディングページやダッシュボードなどのブランドイメージを高めるデザインを作成するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o frontend-aesthetics.zip https://jpskill.com/download/17459.zip && unzip -o frontend-aesthetics.zip && rm frontend-aesthetics.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17459.zip -OutFile "$d\frontend-aesthetics.zip"; Expand-Archive "$d\frontend-aesthetics.zip" -DestinationPath $d -Force; ri "$d\frontend-aesthetics.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
frontend-aesthetics.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
frontend-aestheticsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Frontend Aesthetics Skill
使うべき時
常にこのスキルを使ってください:
- ランディングページやマーケティングサイトを作成するとき
- ダッシュボードや管理インターフェースをデザインするとき
- ブランドUIコンポーネントを構築するとき
- デザインの独自性をレビューするとき
- 視覚的な磨き上げやアニメーションを実装するとき
使わないでください:
- バックエンド/APIコードを扱うとき
- テストを書くとき
- 出荷されないクイックプロトタイプを作るとき
問題点: 分布的収束
Claudeは、安全で普遍的に受け入れられる選択肢がトレーニングデータを支配しているため、汎用的なデザインをデフォルトとします。これにより、「AIスロップの美学」が生まれます。
- どこにでもあるInter/Robotoフォント
- 紫/青のグラデーション
- 最小限のアニメーション
- 平坦で生命感のない背景
- 均等に分散されたカラーパレット
このスキルは、デフォルトから脱却するための具体的な代替案を提供します。
コア原則
- 真のダークテーマ(グレーではなく、実際の暗い色調)
- 単一のアクセントカラー - 1つ選び、一貫して使用する
- プロフェッショナルで実用的なUI - 装飾的ではなく、データ密度が高い
- 微妙な奥行き - 平坦ではなく、レイヤー化された背景
4つのデザインベクトル
1. タイポグラフィ
避けるべきこと: Inter、Roboto、ArialをPRIMARYフォントとして使用すること(フォールバックとしては問題ありません)
特徴的な代替案:
/* 見出し: 太字、特徴的 */
--font-heading: 'Plus Jakarta Sans', 'Bricolage Grotesque', sans-serif;
/* 本文: クリーン、読みやすい */
--font-body: 'Inter Variable', system-ui;
/* コード/データ: 個性的な等幅フォント */
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
/* その他の特徴的なオプション */
/* モダン/テック: Space Grotesk, Outfit, Manrope */
/* プレミアム: Playfair Display, Cormorant */
/* フレンドリー: Nunito, Quicksand, Poppins */
ウェイトのコントラスト:
// DO: 極端なウェイトのバリエーション
<h1 className="text-4xl font-black">Dashboard</h1> // 900
<p className="text-base font-light">Subtitle</p> // 300
// DON'T: 最小限のバリエーション
<h1 className="text-2xl font-semibold">Dashboard</h1> // 600
<p className="text-base font-medium">Subtitle</p> // 500
サイズの階層:
// DO: 明確な視覚的階層
<h1 className="text-5xl">Main Heading</h1> // 48px
<h2 className="text-2xl">Section</h2> // 24px
<p className="text-sm">Body text</p> // 14px
// DON'T: 不明瞭な階層
<h1 className="text-xl">Main Heading</h1> // 小さすぎる
<h2 className="text-lg">Section</h2> // 似すぎる
2. カラーシステム
原則:
- 真のダークベース - グレーではなく、ほぼ黒を使用する(gray-900、slate-900は避ける)
- 単一のアクセントカラー - 主要なアクションには、1つのブランドカラーを選択する
- セマンティックカラー - 緑=成功、アンバー=警告、赤=エラー
- テキストの階層 - プライマリ(明るい)、セカンダリ(控えめ)、無効(暗い)
色の適用:
// DO: ドミナントな背景 + 単一のアクセント
<div className="bg-neutral-950">
<Button className="bg-brand-500 hover:bg-brand-400">
Primary Action
</Button>
</div>
// DON'T: 均等に分散された色(虹色のスープ)
<div className="bg-gray-900">
<Button className="bg-blue-500">Action 1</Button>
<Button className="bg-green-500">Action 2</Button>
<Button className="bg-purple-500">Action 3</Button>
</div>
// DO: ブランドのCSS変数を定義する
:root {
--bg-base: /* あなたの真のダーク */;
--bg-surface: /* わずかに明るい */;
--accent: /* あなたのブランドカラー */;
--accent-hover: /* より明るいバリアント */;
}
3. モーションとアニメーション
原則:
- 単純なトランジションにはCSSを使用する
- オーケストレーションされたアニメーションにはFramer Motionを使用する
- インパクトの大きい瞬間に焦点を当てる(ページロード、状態の変化)
- リストの表示をずらす
CSSのみのパターン:
// DO: スムーズで意図的なトランジション
<Button className="transition-all duration-200 ease-out hover:scale-105 hover:shadow-lg hover:shadow-brand-500/20">
Hover Me
</Button>
// DO: ずらしたリストの表示
<div className="animate-in fade-in slide-in-from-bottom-4 duration-500 delay-100">
Item 1
</div>
<div className="animate-in fade-in slide-in-from-bottom-4 duration-500 delay-200">
Item 2
</div>
Framer Motionのパターン:
import { motion } from 'framer-motion'
// DO: オーケストレーションされたページロード
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: { staggerChildren: 0.1 }
}
}
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
}
<motion.div variants={container} initial="hidden" animate="show">
{items.map(i => (
<motion.div key={i} variants={item}>{i}</motion.div>
))}
</motion.div>
// DON'T: 静的で生命感のないページ
<div>{items.map(i => <div key={i}>{i}</div>)}</div>
4. 背景と奥行き
避けるべきこと: 単色、平坦な背景
パターン:
// DO: 大気のような奥行きのあるレイヤー化されたグラデーション
<div className="relative bg-neutral-950">
{/* ブランドカラーを使用したグラデーションオーブ */}
<div className="absolute top-0 right-0 w-96 h-96 bg-brand-500/10 rounded-full blur-3xl" />
{/* 2番目の微妙なオーブ */}
<div className="absolute bottom-0 left-0 w-64 h-64 bg-brand-500/5 rounded-full blur-2xl" />
{/* コンテンツ */}
<div className="relative z-10">
{children}
</div>
</div>
// DO: 微妙なグリッドパターン
<div className="bg-neutral-950 bg-[linear-gradient(to_right,rgb(255_255_255/5%)_1px,transparent_1px),linear-gradient(to_bottom,rgb(255_255_255/5%)_1px,transparent_1px)] bg-[size:64px_64px]">
{children}
</div>
// DO: グローによるカードの隆起
<Card className="bg-neutral-900 border border-white/5 shadow-xl shadow-black/50 hover:shadow-brand-500/10 transition-shadow">
{content}
</Card>
アンチパターン(「スロップ」リスト)
決してこれらをしないでください:
| アンチパターン | 悪い理由 | 代わりにすべきこと |
|---|---|---|
| どこにでもあるInterフォント | 汎用的で、すぐにAIだと認識される | 特徴的なフォントを使用する(Plus Jakarta Sansなど) |
bg-gray-900 |
グレーで、真のダークではない | bg-neutral-950またはカスタムの真のダークを使用する |
| 紫/青のグラデーション | 使い古されたAIの美学 | 単一のブランドアクセント、単色を使用する |
| 等しい色 |
(原文はここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Frontend Aesthetics Skill
When to Use
ALWAYS use this skill when:
- Creating landing pages or marketing sites
- Designing dashboards or admin interfaces
- Building branded UI components
- Reviewing designs for distinctiveness
- Implementing visual polish and animations
DO NOT use when:
- Working on backend/API code
- Writing tests
- Quick prototypes that won't ship
The Problem: Distributional Convergence
Claude defaults to generic designs because safe, universally-acceptable choices dominate training data. This creates the "AI slop aesthetic":
- Inter/Roboto fonts everywhere
- Purple/blue gradients
- Minimal animations
- Flat, lifeless backgrounds
- Evenly-distributed color palettes
This skill provides specific alternatives to break free from defaults.
Core Principles
- True dark themes (not gray - actual dark tones)
- Single accent color - pick one and use it consistently
- Professional, actionable UI - data-dense, not decorative
- Subtle depth - layered backgrounds, not flat
Four Design Vectors
1. Typography
Avoid: Inter, Roboto, Arial as PRIMARY fonts (they're fine as fallbacks)
Distinctive Alternatives:
/* Headings: Bold, distinctive */
--font-heading: 'Plus Jakarta Sans', 'Bricolage Grotesque', sans-serif;
/* Body: Clean, readable */
--font-body: 'Inter Variable', system-ui;
/* Code/Data: Monospace with character */
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
/* Other distinctive options */
/* Modern/Tech: Space Grotesk, Outfit, Manrope */
/* Premium: Playfair Display, Cormorant */
/* Friendly: Nunito, Quicksand, Poppins */
Weight Contrasts:
// DO: Extreme weight variation
<h1 className="text-4xl font-black">Dashboard</h1> // 900
<p className="text-base font-light">Subtitle</p> // 300
// DON'T: Minimal variation
<h1 className="text-2xl font-semibold">Dashboard</h1> // 600
<p className="text-base font-medium">Subtitle</p> // 500
Size Hierarchy:
// DO: Clear visual hierarchy
<h1 className="text-5xl">Main Heading</h1> // 48px
<h2 className="text-2xl">Section</h2> // 24px
<p className="text-sm">Body text</p> // 14px
// DON'T: Unclear hierarchy
<h1 className="text-xl">Main Heading</h1> // Too small
<h2 className="text-lg">Section</h2> // Too similar
2. Color System
Principles:
- True dark base - Use near-black, not gray (avoid gray-900, slate-900)
- Single accent color - Pick ONE brand color for primary actions
- Semantic colors - Green=success, Amber=warning, Red=error
- Text hierarchy - Primary (bright), secondary (muted), disabled (dim)
Color Application:
// DO: Dominant background + single accent
<div className="bg-neutral-950">
<Button className="bg-brand-500 hover:bg-brand-400">
Primary Action
</Button>
</div>
// DON'T: Evenly distributed colors (rainbow soup)
<div className="bg-gray-900">
<Button className="bg-blue-500">Action 1</Button>
<Button className="bg-green-500">Action 2</Button>
<Button className="bg-purple-500">Action 3</Button>
</div>
// DO: Define CSS variables for your brand
:root {
--bg-base: /* your true dark */;
--bg-surface: /* slightly lighter */;
--accent: /* your brand color */;
--accent-hover: /* lighter variant */;
}
3. Motion & Animation
Principles:
- Use CSS for simple transitions
- Use Framer Motion for orchestrated animations
- Focus on high-impact moments (page load, state changes)
- Stagger reveals for lists
CSS-Only Patterns:
// DO: Smooth, purposeful transitions
<Button className="transition-all duration-200 ease-out hover:scale-105 hover:shadow-lg hover:shadow-brand-500/20">
Hover Me
</Button>
// DO: Staggered list reveals
<div className="animate-in fade-in slide-in-from-bottom-4 duration-500 delay-100">
Item 1
</div>
<div className="animate-in fade-in slide-in-from-bottom-4 duration-500 delay-200">
Item 2
</div>
Framer Motion Patterns:
import { motion } from 'framer-motion'
// DO: Orchestrated page load
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: { staggerChildren: 0.1 }
}
}
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
}
<motion.div variants={container} initial="hidden" animate="show">
{items.map(i => (
<motion.div key={i} variants={item}>{i}</motion.div>
))}
</motion.div>
// DON'T: Static, lifeless pages
<div>{items.map(i => <div key={i}>{i}</div>)}</div>
4. Backgrounds & Depth
Avoid: Solid colors, flat backgrounds
Patterns:
// DO: Layered gradients with atmospheric depth
<div className="relative bg-neutral-950">
{/* Gradient orb using brand color */}
<div className="absolute top-0 right-0 w-96 h-96 bg-brand-500/10 rounded-full blur-3xl" />
{/* Secondary subtle orb */}
<div className="absolute bottom-0 left-0 w-64 h-64 bg-brand-500/5 rounded-full blur-2xl" />
{/* Content */}
<div className="relative z-10">
{children}
</div>
</div>
// DO: Subtle grid patterns
<div className="bg-neutral-950 bg-[linear-gradient(to_right,rgb(255_255_255/5%)_1px,transparent_1px),linear-gradient(to_bottom,rgb(255_255_255/5%)_1px,transparent_1px)] bg-[size:64px_64px]">
{children}
</div>
// DO: Card elevation with glow
<Card className="bg-neutral-900 border border-white/5 shadow-xl shadow-black/50 hover:shadow-brand-500/10 transition-shadow">
{content}
</Card>
Anti-Patterns (The "Slop" List)
NEVER do these:
| Anti-Pattern | Why It's Bad | What To Do Instead |
|---|---|---|
| Inter font everywhere | Generic, immediately recognizable as AI | Use distinctive fonts (Plus Jakarta Sans, etc.) |
bg-gray-900 |
Gray, not true dark | Use bg-neutral-950 or custom true dark |
| Purple/blue gradients | Overused AI aesthetic | Use single brand accent, solid colors |
| Equal color distribution | No visual hierarchy | Dominant color + one accent |
| No animations | Lifeless, static | Add purposeful micro-interactions |
| Rounded-full everywhere | Childish, unprofessional | Mix rounded-lg with sharp corners |
| White cards on dark bg | Too much contrast | Use subtle elevation with soft borders |
| Generic icons | No brand identity | Use Lucide with consistent stroke width |
Component Styling Examples
Dashboard Card
// Professional dashboard style (use your brand color for accent)
<Card className="bg-neutral-900 border border-white/5 rounded-xl p-6 hover:border-brand-500/20 transition-colors">
<CardHeader className="pb-2">
<CardTitle className="text-lg font-semibold text-white flex items-center gap-2">
<Activity className="w-5 h-5 text-brand-400" />
System Status
</CardTitle>
</CardHeader>
<CardContent>
<div className="text-3xl font-bold text-white">98.7%</div>
<p className="text-sm text-zinc-400">Uptime this month</p>
</CardContent>
</Card>
Button Hierarchy
// Primary - brand color, prominent
<Button className="bg-brand-500 hover:bg-brand-400 text-white font-medium">
Create Project
</Button>
// Secondary - ghost with border
<Button variant="outline" className="border-white/10 hover:bg-white/5 text-zinc-300">
Cancel
</Button>
// Destructive - red, serious (semantic color)
<Button variant="destructive" className="bg-red-500/10 hover:bg-red-500/20 text-red-400 border border-red-500/20">
Delete
</Button>
Data Table
// Professional data display
<Table className="bg-neutral-900 rounded-xl border border-white/5">
<TableHeader>
<TableRow className="border-white/5 hover:bg-white/5">
<TableHead className="text-zinc-400 font-medium">Project</TableHead>
<TableHead className="text-zinc-400 font-medium">Status</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow className="border-white/5 hover:bg-white/5">
<TableCell className="text-white font-medium">My Project</TableCell>
<TableCell>
<Badge className="bg-green-500/10 text-green-400 border-green-500/20">
Active
</Badge>
</TableCell>
</TableRow>
</TableBody>
</Table>
Validation Checklist
Before completing any UI work, verify:
- [ ] Typography: Not using Inter/Roboto as primary font
- [ ] Colors: Using true dark, not gray (gray-900, slate-900)
- [ ] Accents: Single brand color used consistently for actions
- [ ] Motion: Page has at least one meaningful animation
- [ ] Depth: Background has gradients or patterns, not flat
- [ ] Hierarchy: Clear visual weight differences (text, buttons)
- [ ] Consistency: All components follow established design system
Supporting Files
typography-guide.md- Complete font pairing referencemotion-patterns.md- Framer Motion recipes and CSS animationsanti-patterns.md- Expanded examples of what to avoid
Design Token Standard
This skill aligns with DTCG 2025.10 (Design Tokens Community Group) format:
- File extension:
.tokens.json - Properties prefixed with
$($value,$type,$description) - Three-tier architecture: Core → Semantic → Component
Resources
- W3C Design Tokens Spec - Industry standard (2025.10)
- Style Dictionary - Token build system
- ShadCN UI Components
- Framer Motion
- Tailwind CSS
- Google Fonts - For distinctive typography