CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
📚 知見管理システム
このプロジェクトでは、Claude Codeでの効率的な開発のために体系的な知見管理システムを運用しています:
📋 知見管理ファイル構成
.claude/context.md
- プロジェクトコンテキスト
- プロジェクトの背景、目的、制約条件
- 技術スタック選定理由
- ビジネス要件や技術的制約
- 開発環境の詳細情報
.claude/project-knowledge.md
- 技術的知見
- 実装パターンや設計決定の知見
- アーキテクチャの選択理由とその効果
- 避けるべきパターンやアンチパターン
- ライブラリ・技術選定の経験
.claude/project-improvements.md
- 改善履歴
- 過去の試行錯誤の詳細記録
- 失敗した実装とその原因分析
- 改善プロセスと結果の評価
- 重要な学習事項と教訓
.claude/common-patterns.md
- 頻用パターン
- 繰り返し使用するコマンドパターン
- 定型的な実装テンプレート
- 効率的な開発フロー手順
.claude/debug-log.md
- デバッグ記録
- 重要なデバッグ記録(30分以上の問題)
- 再発可能性の高い問題の解決法
- 環境固有の問題と対処法
.claude/debug/
- 一時デバッグ管理
debug/
├── sessions/ # セッション別作業ログ
├── temp-logs/ # 作業中の一時ファイル
└── archive/ # 解決済み問題の保管
🔄 知見更新フロー
新しい実装や重要な決定を行った際は、関連ファイルを更新してください:
- 技術的発見: →
project-knowledge.md
に実装パターン追加 - 問題解決: →
project-improvements.md
に改善記録追加 - 効率化発見: →
common-patterns.md
にパターン追加 - 重要なデバッグ: →
debug-log.md
に詳細記録
⚡ カスタムコマンド
重要な知見が得られた際は、以下のコマンドで適切なファイル更新を促進:
/project:learnings
このコマンドを実行すると、Claude Codeが適切なファイルに知見を整理して記録します。
重要: この知見管理システムにより、過去の経験を活用した一貫性のある開発が可能になります。新しい発見や重要な決定があった際は、必ず関連ファイルを更新してください。
プロジェクト概要
mming - 発達多様性の子ども向けプログラミング教室サイト
発達特性を持つ子ども向けのプログラミング教室の静的サイト。適性診断システムを通じて、保護者がプログラミングが子どもに適しているかを判断できる機能が中核となっている。
2024年12月 デジタル庁デザインシステム準拠完了 - デジタル庁デザインシステム(design.digital.go.jp)に準じた全面リファクタリングを実施。実用性重視のアクセシビリティ、8pxベーススペーシング、統一された色彩・タイポグラフィシステム、実用的UI/UXパターンを確立。
開発環境
- 静的サイトジェネレータ: Jekyll 3.10.0
- Ruby: 3.3.4(GitHub Pages準拠)
- github-pages gem: 232(2024年12月現在)
- 開発: Docker コンテナ + VS Code リモート接続
- デザインシステム: デジタル庁デザインシステム準拠(2024年12月完全実装)
- アクセシビリティ: 実用重視(過度なアクセシビリティ機能は実装せず)
- JavaScript: シンプルなイベント駆動アーキテクチャ
- CSS: SCSS + デジタル庁準拠モジュール化アーキテクチャ
- デプロイ: GitHub Pages対応
よく使うコマンド
Jekyllプロジェクトの基本コマンド:
# 依存関係インストール
bundle install
# ローカルでサイトをビルド・サーブ
bundle exec jekyll serve --host 0.0.0.0 --livereload --incremental --drafts --future
# 本番用ビルド
JEKYLL_ENV=production bundle exec jekyll build
# 開発用スクリプト(改行コード修正済み)
./dev.sh # 開発サーバー起動
./build.sh # 本番ビルド
./docker.sh # Docker管理
Docker開発環境
./docker.sh build # イメージビルド
./docker.sh start # コンテナ起動
# VS Code「Remote-Containers: Attach to Running Container」で接続
アーキテクチャ(全体リファクタリング後)
データ駆動設計 2.0
すべてのコンテンツは _data/
ディレクトリのYAMLファイルに格納(統合・最適化済み):
config.yml
- 統合設定ファイル(サイト、連絡先、SEO、デザインシステム)aptitude_check.yml
- 採点ロジック付き完全な適性診断システムhero.yml
,features.yml
,navigation.yml
など - セクション別コンテンツui_text.yml
- 共通UI要素のテキスト管理(多言語対応準備済み)
シンプル・確実なフロントエンドアーキテクチャ(2024年12月最終版)
JavaScript アーキテクチャ(簡略化)
- ❌ 削除: 複雑なES6モジュールシステム(app.mjs、modules/)
- ✅ 新実装: 単一ファイル
simple-main.js
- 全機能統合、確実動作 - ✅ 新実装: インライン関数によるアコーディオン実装(HTML内)
- 根拠: ブラウザ互換性問題の根本解決、メンテナンス性向上
SCSS アーキテクチャ 2.0 + 統合デザインパターン
- 統合変数システム: カラー、タイポグラフィ、スペーシング、ブレークポイント
- ミックスインライブラリ: 再利用可能なCSS関数群
@mixin card-accordion
: クリック可能アコーディオンカード@mixin info-banner
: 情報表示バナー(静的)@mixin info-ribbon
: 情報表示リボン(静的)
- コンポーネント化: 機能別ファイル分割(ヘッダー、ヒーロー、特徴等)
- UI/UX統一性: アコーディオンカードと情報バナーの明確な視覚的区別
- パフォーマンス最適化: will-change、content-visibility等の活用
適性診断システム
コア機能である多質問式適性診断:
- 採点: ポイント制(high=3, medium=1, low=0)+ 質問別重み(0.8-1.5)
- 結果: パーセンテージによる3段階(高適性≥72%、中適性≥39%、低適性<39%)
- UI要件: ページ遷移型(モーダル禁止)、プログレスバー、ブラウザバック対応
- ストレージ制約: localStorage/sessionStorage使用禁止 - JavaScript変数のみ
サイト構成(2025年6月更新)
index.html - メインページ:
- ヘッダー(固定ナビゲーション)- “特別な配慮が必要な子どものための専門プログラミング教室”
- ヒーローセクション
- 🆕 対象者情報セクション - 明確なターゲティング(療育・放デイ・特別支援学級対象)
- 教室について
- 特徴(3つの特徴:心理的安全性・学習環境の最適化・独自メソッド)
- よくある質問(対象者FAQを先頭追加)
- 料金・アクセス
- フッター(固定CTA)
trial/index.html - 体験ページ:
- ヒーローセクション
- 🆕 確認事項セクション - 対象者の事前確認(5項目チェックリスト)
- 適性診断紹介
- mmingの価値観
- 適性診断システム(6問形式)
- 結果判定と体験申込フォーム
開発状況(2024年12月 - 全体リファクタリング完了)
✅ 完了済み項目(基盤機能)
- Jekyll基本環境: GitHub Pages完全対応、Docker開発環境
- データ駆動アーキテクチャ: YAML統合設定、構造化データ管理
- サイト基本構造: セマンティックHTML、レスポンシブデザイン
- 適性診断システム: 完全実装(6問×重み付け採点、3段階判定)
- VS Code 統合: YAML検証、カスタムスキーマ、開発効率化
完了済み項目(全体リファクタリング 2024年12月)
アーキテクチャ刷新
- HTML構造最適化: セマンティックHTML、WCAG AA準拠、構造化データ(JSON-LD)
- SCSS アーキテクチャ 2.0: 統合変数システム、ミックスイン、コンポーネント化
- JavaScript 簡略化: 複雑なモジュールシステム削除、確実なインライン実装
- データ駆動設計 2.0: 統合設定ファイル、多言語対応準備
- UI/UX統一デザインパターン: アコーディオンカードと情報バナーの明確な区別
パフォーマンス最適化
- Core Web Vitals対応: LCP、FID、CLS監視、自動レポート
- 画像最適化: 遅延読み込み、WebP対応、レスポンシブ画像
- CSS最適化: クリティカルCSS、非同期読み込み、コンテンツ可視性
- JavaScript最適化: ES6モジュール、レガシーフォールバック、パフォーマンス監視
アクセシビリティ完全対応
- WCAG AA準拠: スクリーンリーダー、キーボードナビゲーション
- ユーザー設定対応: prefers-reduced-motion、prefers-contrast
- フォーカス管理: タブトラップ、フォーカスアウトライン制御
- 支援技術対応: ARIA ラベル、ライブリージョン、アナウンサー機能
デザインシステム統合
- ブルー・モノクローム配色: プライマリ(#2B6CB0)、セカンダリ(#63B3ED)、統一感重視
- タイポグラフィシステム: フルードタイポグラフィ、階層的サイズ設定
- スペーシングシステム: 一貫したマージン・パディング管理
- シャドウシステム: 階層化された影効果
最新のサイト構成(2024年12月)
index.html - メインランディングページ:
- ヘッダー(固定ナビゲーション)
- ヒーローセクション(教室について知るCTA)
- 教室について(なぜmming?当事者性・約束)
- 特徴(3つに統合:心理的安全性・学習環境の最適化・独自メソッド)
- よくある質問
- 料金・アクセス
- フッター(固定CTA:体験の流れを見る)
trial/index.html - 体験専用ページ:
- 適性診断システム(6問×重み付け採点)
- 3段階結果判定(高適性≥72%、中適性≥39%、低適性<39%)
- 体験申込フォーム(Googleフォーム統合予定)
重要な設計変更
- 情報アーキテクチャの最適化:
- 「環境の個別最適化」+「独自開発の教材」→「学習環境の最適化」に統合
- 物理環境(光・音・温度、3つのスペース)とデジタル教材を一元管理
- ページ構成のスッキリ化:
- index.htmlから「体験の流れ」セクション削除
- materials-section削除(featuresに統合済み)
- 詳細情報はtrial/index.htmlに集約
- 適性診断システムの分離:
- index.htmlは概要・信頼構築に専念
- trial/index.htmlで完全な適性診断〜申込フロー
- Material Iconsの課題解決:
star
→ 表示されない問題ありcalendar
→schedule
に変更済み
データ駆動アーキテクチャの徹底
- ✅
aptitude-section.html
のテキストもYAML化完了 - ✅
aptitude_check.yml
でindex.html用とtrial.html用のテキストを分離管理 - ✅ すべてのハードコードテキストをYAMLファイルに移行
技術的な成果
- URL構造:
/trial.html
→/trial/index.html
に変更 - ナビゲーション: 不要な「体験の流れ」メニュー削除
- フォーカス: index.htmlが明確な役割を持つランディングページに進化
技術的改善内容(リファクタリング)
SCSS アーキテクチャ刷新
- ミックスイン導入: 再利用可能なCSS関数(ボタン、カード、レスポンシブ等)
- コンポーネント化: 機能別ファイル分割で保守性向上
- パフォーマンス最適化: will-change、content-visibility活用
JavaScript 簡略化(最終版)
- ❌ 削除: 複雑なES6クラス、モジュール分離システム
- ✅ 採用: シンプルな関数型JavaScript、インライン実装
- ✅ 確実性重視: ブラウザ互換性問題を根本解決
- ✅ メンテナンス性: 単一ファイル、直接的な実装
アクセシビリティ完全対応
- WCAG AA準拠: スクリーンリーダー、キーボードナビゲーション
- フォーカス管理: タブトラップ、アウトライン制御
- 動きの軽減: prefers-reduced-motion完全対応
- コントラスト対応: prefers-contrast対応
パフォーマンス最適化
- 画像最適化: 遅延読み込み、アスペクト比固定、プレースホルダー
- レンダリング最適化: レイアウトシフト防止、GPU活用
- フォント最適化: font-display: swap、テキストレンダリング改善
進行中・次の開発予定
完了(デジタル庁デザインシステム対応 - 2024年12月完全実装)
- Phase 1: 基盤システム準拠 - 完了
- [完了] Phase 1-1: カラーシステム変更(デジタル庁ブルー #0F3F8F 採用)
- [完了] Phase 1-2: タイポグラフィ簡素化(16px以上、8pxベーススペーシング)
- [完了] Phase 1-3: 基本コンポーネント標準化(ボタン・カード・バナー)
- Phase 2: コンポーネント標準化 - 完了
- [完了] ヘッダー・ナビゲーション(影・ボーダー・スペーシング統一)
- [完了] フッターCTA(標準ボタンミックスイン採用)
- [完了] 適性診断システム(8pxベース、デジタル庁フォントサイズ)
- [完了] フォームコンポーネント(デジタル庁準拠インプット・エラー状態)
- Phase 3: 最終調整と最適化 - 完了
- [完了] 全コンポーネントのタイポグラフィ統一(48-64px視覚的インパクト対応)
- [完了] 8pxベーススペーシングシステム完全適用
- [完了] レスポンシブデザイン最終調整(モバイル最適化)
- [完了] アクセシビリティ最終チェック(WCAG AA準拠維持)
🆕 最新の実装(2025年6月)対象者明確化・デジタル庁準拠完全最適化
- Phase 4: 対象者明確化とユーザビリティ向上 - ✅ 完了
- [完了] ヘッダーtagline変更: “特別な配慮が必要な子どものための専門プログラミング教室”
- [完了] 対象者情報セクション追加: ヒーロー直下に明確なターゲティング
- [完了] FAQ対象者質問追加: “どんなお子様が対象ですか?”を先頭配置
- [完了] trial確認事項セクション: 5項目チェックリストで事前確認
- [完了] デジタル庁準拠カラー統一: オレンジアクセント→プライマリブルー統一
- [完了] セクション高さ最適化: 48px/64px階層で視覚的リズム統一
- [完了] レスポンシブ対応: 16px→32px横パディング、モバイル最適化
- Phase 5: デジタル庁デザインシステムβ版v2.4.0完全準拠リファクタリング - ✅ 完了
- [完了] カラーシステム完全準拠: プライマリ階層(50-900)、セカンダリ・ターシャリー定義
- [完了] タイポグラフィシステム強化: Display/Standard/Dense/Oneline分類、48-64px大サイズ対応
- [完了] スペーシングシステム拡張: 32段階スペーシング、ネガティブ値、レスポンシブ対応
- [完了] コンポーネントシステム標準化: ボタン・カード・フォーム完全準拠ミックスイン
- [完了] アクセシビリティ強化: WCAG AA完全準拠、sr-only、ハイコントラスト、動き軽減対応
- [完了] デザイントークン体系化: 統合変数システム、レガシー互換性維持
- 技術仕様(Phase 4):
_data/target_info.yml
,_data/confirmation.yml
- 新規データファイル_sass/components/_target-info.scss
- デジタル庁準拠スタイル- 8pxベーススペーシング完全準拠、絵文字排除、プロフェッショナルデザイン
- 技術仕様(Phase 5):
_sass/_variables.scss
- デジタル庁v2.4.0完全準拠変数システム_sass/_mixins.scss
- 統合コンポーネントライブラリ(ボタン・カード・フォーム・アクセシビリティ)- カラー階層: Primary(50-900)、Secondary、Tertiary、インタラクション完全定義
- タイポグラフィ: xs-7xl(12px-64px)、テキストスタイル分類、letter-spacing対応
- スペーシング: 0-32(0px-128px)、ネガティブ値、コンテナ・セクション階層
- アクセシビリティ: WCAG AA準拠、タッチターゲット、フォーカス管理、コントラスト対応
今後の開発予定
- Googleフォーム統合: trial/index.html体験申込フォーム
- PWA対応: Service Worker、オフライン機能、マニフェスト
- Analytics統合: Google Analytics 4、パフォーマンス監視
- CDN最適化: GitHub Pages + Cloudflare
- 多言語対応: 英語版サイト(基盤準備済み)
デジタル庁デザインシステム準拠(2024年12月・実用性重視)
🎨 カラーシステム(デジタル庁準拠v2.4.0・完全階層)
_variables.scss
で完全定義:
プライマリーカラー階層(50-900スケール)
- Primary-50: #E3F2FD(極薄ブルー・バックグラウンド用)
- Primary-100: #BBDEFB(薄ブルー・セカンダリ用)
- Primary-200: #90CAF9(ライトブルー・インタラクション用)
- Primary-300: #64B5F6(ミディアムライト・アクセント用)
- Primary-500: #0066CC(スタンダード・メインカラー)
- Primary-700: #1976D2(ダーク・ホバー用)
- Primary-900: #0D47A1(極濃・アクティブ用)
セカンダリー・ターシャリーカラー
- Secondary: #BBDEFB(Primary-100使用)
- Tertiary: #4FC3F7(シアン系・情報表示用)
機能カラー(ビジネス必須)
- Success: #2E7D32(緑・成功状態)
- Warning: #F57C00(オレンジ・警告状態)
- Error: #C62828(赤・エラー状態)
- Info: #0066CC(プライマリ使用)
インタラクションカラー(v2.4.0準拠)
- Hover: rgba(#0066CC, 0.08)(薄いホバー背景)
- Focus: #0066CC(フォーカス色)
- Focus Ring: rgba(#0066CC, 0.3)(フォーカスリング)
- Active: #0D47A1(アクティブ色)
リンクカラー(識別性・アクセシビリティ重視)
- Default: #0066CC(4.5:1コントラスト準拠)
- Visited: #551A8B(紫・識別性考慮)
- Hover: #1976D2(ダーク状態)
- Active: #0D47A1(極濃状態)
ニュートラルカラー(6段階グレースケール)
- Gray-50: #FAFAFA〜Gray-900: #212121(統一階層)
UI/UXデザインパターン(デジタル庁準拠)
アコーディオンカード(クリック可能)
- 太いボーダー (2px solid $primary-color)
- 標準影効果 ($shadow)
- ホバー効果: 控えめな浮き上がり + 中程度の影 ($shadow-md)
- ポインターカーソル (cursor: pointer)
- 展開アイコン (expand_more/expand_less)
情報バナー/リボン(表示のみ)
- 細いボーダー (1px solid rgba($color, 0.2))
- 影なし (box-shadow: none)
- ホバー効果なし
- 通常カーソル (cursor: default)
- 装飾アイコンのみ (info, psychology など)
ボタンコンポーネント(デジタル庁準拠・実用性向上)
- プライマリ: デジタル庁ブルー背景、控えめな影効果
- セカンダリ: 白背景 + ブルーボーダー、ホバーで薄ブルー背景
- 状態管理: Success、Warning、Error状態対応(実用性重視)
📝 タイポグラフィシステム(デジタル庁v2.4.0完全準拠)
フォントファミリー
- Base: ‘Noto Sans JP’, system-ui, -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, sans-serif
- Monospace: ‘SFMono-Regular’, Consolas, ‘Liberation Mono’, Menlo, monospace
フォントサイズ階層(xs-7xl完全定義)
- xs: 0.75rem (12px)(キャプション・制約時のみ)
- sm: 0.875rem (14px)(小テキスト・制約時)
- base: 1rem (16px)(標準本文・基準)
- lg: 1.125rem (18px)(重要本文)
- xl: 1.25rem (20px)(小見出し)
- 2xl: 1.5rem (24px)(中見出し)
- 3xl: 1.875rem (30px)(大見出し)
- 4xl: 2.25rem (36px)(主要見出し)
- 5xl: 3rem (48px)(Display Small)
- 6xl: 3.5rem (56px)(Display Medium)
- 7xl: 4rem (64px)(Display Large)
テキストスタイル分類(デジタル庁準拠)
- Display (Dsp): ランディングページ・視覚的インパクト用(48px-64px)
- Standard (Std): 記事・見出し・本文用(16px-36px)
- Dense (Dns): 業務システム・情報密度重視用(12px-16px)
- Oneline (Oln): UI要素・ボタン・ラベル用(12px-16px)
ライン高(用途別最適化)
- none: 1.0(100%・タイトなレイアウト用)
- tight: 1.2(120%・見出し用)
- snug: 1.3(130%・サブ見出し用)
- normal: 1.4(140%・UI要素用)
- relaxed: 1.6(160%・本文標準)
- loose: 1.8(180%・読みやすさ重視)
Letter Spacing(タイポグラフィ品質向上)
- tighter: -0.025em (-2.5%・大見出し用)
- tight: -0.01em (-1%・見出し用)
- normal: 0 (0%・標準)
- wide: 0.01em (1%・本文強調用)
- wider: 0.02em (2%・UI要素用)
- widest: 0.05em (5%・キャプション用)
フォントウェイト
- light: 300、normal: 400、medium: 500
- semibold: 600、bold: 700、extrabold: 800
📏 スペーシングシステム(デジタル庁v2.4.0完全実装)
基本8pxベーススペーシング(32段階)
- $space-0: 0px(リセット用)
- $space-px: 1px(ボーダー用)
- $space-0-5: 2px(マイクロスペーシング)
- $space-1: 4px(極小)〜 $space-32: 128px(コンテナ大)
主要スペーシング値
- $space-2: 8px(小)、$space-4: 16px(標準)
- $space-6: 24px(中)、$space-8: 32px(大)
- $space-12: 48px(セクション小)、$space-16: 64px(セクション大)
- $space-20: 80px(セクション特大)、$space-24: 96px(セクション最大)
ネガティブスペーシング(オーバーラップ用)
- $space-n-1: -4px〜$space-n-8: -32px(オーバーラップデザイン対応)
セクションパディング階層(重要度別)
- sm: 48px 16px(小セクション)
- md: 64px 16px(標準セクション)
- lg: 80px 16px(大セクション)
- xl: 96px 16px(特大セクション)
レスポンシブスペーシング
- モバイル: 48px 16px(コンパクト)
- デスクトップ: 64px 32px(ゆとり)
コンテナ幅階層
- sm: 640px、md: 768px、lg: 1024px
- xl: 1280px、max-width: 1200px(メイン)
レガシー互換性
- $space-xs: $space-1 (4px)
- $space-sm: $space-3 (12px)
- $space-md: $space-4 (16px)
- $space-lg: $space-6 (24px)
- $space-xl: $space-8 (32px)
📱 レスポンシブブレークポイント(拡張)
- XS: 475px(小型モバイル)
- SM: 640px(モバイル)
- MD: 768px(タブレット)
- LG: 1024px(デスクトップ)
- XL: 1280px(大型デスクトップ)
- 2XL: 1536px(ワイドスクリーン)
♿ アクセシビリティ仕様(デジタル庁v2.4.0・WCAG AA準拠)
タッチターゲットサイズ(WCAG 2.1準拠)
- 最小: 44px(基本要件)
- 小型: 24px(密集レイアウト用)
- 推奨: 48px(推奨サイズ)
フォーカス管理(WCAG 2.1準拠)
- フォーカスリング: 2px solid $focus-color
- オフセット: 2px
- ハイコントラスト: 2px solid対応
コントラスト比(WCAG AA準拠)
- 通常テキスト: 4.5:1以上
- 大テキスト: 3.0:1以上
- UI要素: 3.0:1以上
- AAA対応: 7.0:1(最高水準)
動きの軽減対応(prefers-reduced-motion)
- 軽減時間: 0.01ms(最小時間)
- スケール制御: transform無効化
スクリーンリーダー対応
- sr-only: 完全対応ミックスイン
- ARIA: ラベル・ライブリージョン対応
- セマンティック: 正確なHTML構造
ハイコントラストモード対応
- 背景: ButtonFace
- テキスト: ButtonText
- ボーダー: ButtonBorder
- 自動検出: prefers-contrast対応
実用性重視方針
- 過度な配慮排除: プログラミング学習環境に最適化
- 基本要件完全準拠: 実際に必要な機能のみ実装
🗂️ ファイル構造(全体リファクタリング後)
📁 コア構造
_config.yml # Jekyll設定(GitHub Pages準拠)
_data/ # データ駆動アーキテクチャ 2.0
├── config.yml # 🆕 統合設定(サイト・SEO・デザインシステム)
├── aptitude_check.yml # 適性診断システム(完全実装)
├── target_info.yml # 🆕 対象者情報セクション(2025年6月追加)
├── confirmation.yml # 🆕 確認事項セクション(2025年6月追加)
├── hero.yml # ヒーローセクション
├── features.yml # 特徴セクション(画像スライダー対応)
├── faq.yml # よくある質問(対象者FAQ追加済み)
├── navigation.yml # ナビゲーション
├── ui_text.yml # UI共通テキスト(多言語準備済み)
└── [その他セクション別YAML]
_layouts/
└── default.html # 🔄 最適化済みレイアウト(SEO・パフォーマンス・A11y)
_includes/ # コンポーネント化
├── sections/ # ページセクション
│ ├── hero-section.html # ヒーロー(レスポンシブ画像)
│ ├── target-info-section.html # 🆕 対象者情報(2025年6月追加)
│ ├── features-section.html # 特徴(アコーディオン・スライダー)
│ └── [その他セクション]
├── trial/ # 体験ページ専用
│ ├── trial-confirmation-section.html # 🆕 確認事項(2025年6月追加)
│ └── [その他trial専用コンポーネント]
└── [共通コンポーネント]
assets/
├── css/
│ └── main.scss # SCSS エントリーポイント
├── js/
│ ├── simple-main.js # 🆕 統合JavaScript(全機能)
│ └── aptitude-check.js # 適性診断(独立)
└── images/ # 最適化済み画像
├── hero_bg_*.jpg # レスポンシブヒーロー画像
└── [コンテンツ画像群]
_sass/ # SCSS アーキテクチャ 2.0 + デジタル庁v2.4.0準拠
├── _variables.scss # 🔄 統合変数システム(デジタル庁v2.4.0完全準拠)
├── _mixins.scss # 🆕 ミックスインライブラリ(統合コンポーネント)
├── _base.scss # ベース・リセット
└── components/ # コンポーネント分離
├── _header.scss # ヘッダー・ナビ(デジタル庁準拠)
├── _hero.scss # ヒーロー
├── _target-info.scss # 🆕 対象者情報・確認事項(2025年6月追加)
├── _features.scss # 特徴(スライダー含む)
├── _image-slider.scss # 🆕 画像スライダー
├── _aptitude-check.scss # 適性診断(統一配置対応・デジタル庁準拠)
├── _footer.scss # フッター(デジタル庁準拠・ミニマル実装)
├── _accessibility.scss # 🆕 アクセシビリティ(WCAG AA完全準拠)
└── _performance.scss # 🆕 パフォーマンス最適化
🖼️ 画像・メディア処理(最適化)
- レスポンシブ画像:
<picture>
+srcset
完全対応 - 遅延読み込み: IntersectionObserver +
loading="lazy"
- WebP対応: 自動検出・フォールバック
- パフォーマンス: 最大200KB、アスペクト比固定
- アクセシビリティ: 完全なalt属性、エラーハンドリング
⚙️ 技術仕様・制約事項
🚫 禁止要素(設計思想)
- ストレージ: localStorage/sessionStorage使用禁止
- UI: モーダルダイアログ禁止(適性診断)
- デザイン: イタリック体(斜体)使用禁止
- アニメーション: 過度なモーション(reduced-motion対応)
✅ 必須機能・要件
- フォーム: Googleフォーム完全統合
- ナビゲーション: 固定フッターCTA常時表示
- インタラクション: アコーディオン・スライダー機能
- レスポンシブ: モバイルファースト完全対応
- アクセシビリティ: WCAG AA完全準拠
🔧 開発・運用注意点
- 環境: WSL対応(CRLF→LF自動変換)
- データ: YAML英語キー維持(国際化対応)
- ブラウザ: ES6モジュール + レガシーフォールバック
- パフォーマンス: Core Web Vitals監視・最適化
- SEO: 構造化データ、メタタグ完全対応
🎉 デジタル庁デザインシステム準拠完了
2024年12月 デジタル庁デザインシステム準拠リファクタリングにより、以下を達成:
🏛️ デジタル庁デザインシステム準拠項目
- 🎨 色彩システム: デジタル庁ブルー(#0066CC)をプライマリに、統一された色彩語彙
- 📝 タイポグラフィ: 最小16px、実用的なフォントサイズ階層(16px-36px)
- 📏 8pxベーススペーシング: 全要素が8px単位で統一、グリッドシステム準拠
- 🎯 実用重視: 過度なアクセシビリティを排除、基本要件のみ完全準拠
- 🧩 コンポーネント統一: ボタン・カード・フォーム要素の標準化
⚡ 技術実装成果
- ♿ 実用アクセシビリティ: 基本要件準拠、44px最小タッチターゲット
- 🏗️ アーキテクチャ: シンプル・確実なフロントエンド、統合ミックスイン
- 📱 レスポンシブ: 拡張ブレークポイント、フルードデザイン
- 🔍 SEO: 構造化データ、メタタグ最適化
技術スタック: Jekyll + SCSS + デジタル庁デザインシステム完全準拠 + 実用アクセシビリティ + シンプルJavaScript
🆕 デジタル庁デザインシステムβ版v2.4.0準拠実装詳細
Phase 5: 完全準拠リファクタリング(2024年12月完了)
- 🎨 カラーシステム完全準拠: Primary階層(50-900)+ Secondary・Tertiary定義 ✅
- 📝 タイポグラフィシステム強化: Display/Standard/Dense/Oneline分類 + xs-7xl階層 ✅
- 📏 スペーシングシステム拡張: 32段階完全定義(0px-128px)+ ネガティブ値対応 ✅
- 🧩 コンポーネントシステム標準化: ボタン・カード・フォーム完全準拠ミックスイン ✅
- ♿ アクセシビリティ強化: WCAG AA完全準拠 + sr-only・ハイコントラスト対応 ✅
- ⚡ パフォーマンス最適化: content-visibility・will-change活用 ✅
- 🔧 デザイントークン体系化: 統合変数システム + レガシー互換性維持 ✅
- 📱 レスポンシブ強化: 6段階ブレークポイント + フルードデザイン ✅
技術実装の核心成果
- 統合変数システム:
_variables.scss
でデジタル庁v2.4.0完全準拠 - 統合ミックスイン:
_mixins.scss
で再利用可能コンポーネントライブラリ - アクセシビリティ完全対応: 実用性重視のWCAG AA準拠実装
- パフォーマンス最適化: Core Web Vitals対応 + モダンCSS活用
🔧 重要:JavaScript設計の最終決定(2024年12月)
問題と解決策
❌ 問題: 複雑なES6モジュールシステムがブラウザ環境で動作しない
- モジュールロードエラー
- アコーディオン機能の完全停止
- ユーザビリティの重大な問題
✅ 解決: シンプル・確実なアプローチに全面移行
simple-main.js
: 基本機能(ナビ、画像読み込み、アクセシビリティ)- インライン関数: 各セクションのアコーディオン機能(HTML内に直接記述)
- 確実な動作: 全ブラウザで即座に機能
新しいJavaScript構成
assets/js/
├── simple-main.js # ナビゲーション、画像遅延読み込み、アクセシビリティ
└── aptitude-check.js # 適性診断(独立したシステム)
HTML内のインライン関数:
├── toggleFAQ() # FAQ アコーディオン
├── toggleFeature() # 特徴 アコーディオン
├── toggleApplication() # 体験申込 アコーディオン
└── slideImage() # 画像スライダー
設計思想の変更
- 複雑性排除: モジュール化よりも確実性を優先
- 保守性: 直接的で理解しやすいコード
- ユーザー第一: 技術的な美しさよりも実用性重視