• #デザイン
  • #スタイルガイド
  • #ネオブルータリズム
開発blog-platformメモ

ネオブルータリズムデザインガイド

このドキュメントは、サイト全体のトーン&マナー(トンマナ)を統一するためのデザインガイドラインです。wejoy-creative-agencyのスタイルを参考に、index.vueに実装した内容をまとめています。

カラーパレット

ネオブルータリズムスタイルの4色のパステルカラーを使用します。

:root {
  --neo-pink: #FFD4C4;
  --neo-purple: #D4C4FF;
  --neo-green: #D4FFC4;
  --neo-yellow: #FFF4C4;
  --neo-black: #121212;
}

カラーの使用例

  • ピンク (#FFD4C4): ブログ、記事コンテンツ
  • パープル (#D4C4FF): 財務データ、分析関連
  • グリーン (#D4FFC4): コーディング規約、技術ドキュメント
  • イエロー (#FFF4C4): 検索、ハイライト要素

境界線(Border)

太い境界線の使用

ネオブルータリズムの特徴である太い境界線を使用します。

border: 3px solid #000;

適用箇所

  • カード要素の周囲
  • セクションの区切り(上部のみ)
  • ボタンコンポーネント
  • アイコンコンテナ

重要ルール

  • セクションの罫線は上部のみ: 下部の罫線は不要。次のセクションの上部罫線が区切りの役割を果たす
  • 重複を避ける: ヘッダー要素の下に罫線がある場合、次の要素の上に罫線を追加しない

シャドウ(Shadow)

ネオシャドウの定義

box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);      /* 標準 */
box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);      /* 小 */
box-shadow: 8px 8px 0px 0px rgba(0, 0, 0, 1);      /* 大 */

適用例

.nav-card {
  box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
}

.nav-card-icon {
  box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
}

ホバーエフェクト

カード要素

.nav-card {
  transition: all 0.2s;
  box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
}

.nav-card:hover {
  transform: translateY(-4px);
  box-shadow: 8px 8px 0px 0px rgba(0, 0, 0, 1);
}

ポイント:

  • 上方向に4px移動
  • シャドウが4px → 8pxに拡大
  • transition: all 0.2s でスムーズなアニメーション

ボタン・リンク要素

.about-link {
  transition: all 0.2s;
  box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
}

.about-link:hover {
  background: var(--neo-purple);
  transform: translateY(-2px);
  box-shadow: 6px 6px 0px 0px rgba(0, 0, 0, 1);
}

アクティブ(クリック)エフェクト

クリック時にシャドウが消えて要素が沈み込む効果を実装します。

.nav-card:active,
.about-link:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
}

または完全にシャドウを消す場合:

.element:active {
  transform: translate(4px, 4px);
  box-shadow: none;
}

タイポグラフィ

フォントウェイト

h1, h2 {
  font-weight: 800;  /* 太字 */
}

h3 {
  font-weight: 700;
}

.nav-card-content p {
  font-weight: 500;  /* 中程度 */
}

コード要素

code {
  background: var(--neo-yellow);
  padding: 0.25rem 0.5rem;
  border: 2px solid #000;
  border-radius: 0.25rem;
  font-family: 'Courier New', monospace;
  font-size: 0.875rem;
  font-weight: 700;
}

レイアウト原則

1. クリック可能な要素の明確化

  • カードデザイン: クリック可能な要素のみに適用
  • 罫線区切り: クリック不可の情報セクションには罫線のみ使用

2. セクション区切り

.section {
  padding: 2rem 0;
  border-top: 3px solid #000;  /* 上部のみ */
}

3. カード要素の配色

各カードに異なる背景色を割り当てて視覚的な多様性を持たせます。

.nav-card:nth-child(1) { background: var(--neo-pink); }
.nav-card:nth-child(2) { background: var(--neo-purple); }
.nav-card:nth-child(3) { background: var(--neo-green); }
.nav-card:nth-child(4) { background: var(--neo-yellow); }

アイコンコンテナ

.nav-card-icon {
  font-size: 2rem;
  padding: 0.5rem;
  background: white;
  border: 2px solid #000;
  border-radius: 50%;
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
}

実装例: index.vue

index.vueでの実装を参照してください:

  • パステルカラーの4色カード
  • 太い境界線(3px)
  • ネオシャドウ
  • ホバー時の浮き上がり効果(-4px + シャドウ拡大)
  • クリック時の沈み込み効果
  • セクション区切りの罫線(上部のみ)

適用時のチェックリスト

  • カラーパレットの4色を使用している
  • 境界線は3pxの太さ
  • ネオシャドウ(4px 4px 0px 0px)を適用
  • ホバー時に要素が浮き上がる(translateY)
  • クリック時に要素が沈み込む(translate)
  • セクションの罫線は上部のみで重複していない
  • クリック可能な要素のみカードデザイン
  • フォントウェイトは700-800で統一

参考

  • 元デザイン: wejoy-creative-agency (content/2025-11-28/wejoy-creative-agency/)
  • 実装ファイル: apps/web/app/pages/index.vue