jpskill.com
🎨 デザイン コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して frontend-aesthetics.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → frontend-aesthetics フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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 reference
  • motion-patterns.md - Framer Motion recipes and CSS animations
  • anti-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

See W3C DTCG Specification

Resources