Skip to content
Back to skills

Boxlog Frontend Design

ASecurity

BoxLog専用のフロントエンドデザインスキル。「装飾のない基本体験」を実現するためのUI設計ガイドライン。STYLE_GUIDE.mdを補完し、フォント・アニメーション・デザイン判断基準を提供。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
designgofrontend

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill boxlog-frontend-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Boxlog Frontend Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Boxlog Frontend Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-boxlog-frontend-design/badge)](https://www.skillsdirectory.com/skills/david-li0406-boxlog-frontend-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: boxlog-frontend-design
description: BoxLog専用のフロントエンドデザインスキル。「装飾のない基本体験」を実現するためのUI設計ガイドライン。STYLE_GUIDE.mdを補完し、フォント・アニメーション・デザイン判断基準を提供。
license: MIT
metadata:
  author: boxlog
  version: '1.0.0'
---

# BoxLog Frontend Design Skill

「GoogleカレンダーやTogglと同等の装飾のない基本体験」を実現するためのデザインスキル。

> **参照**: 詳細なトークン定義は `docs/design-system/STYLE_GUIDE.md` を確認すること。

## 設計原則: 装飾のない基本体験

### 判断基準フローチャート

```
この要素は機能を伝えるために必要か?
├─ Yes → 実装する
│   └─ 最小限のスタイルで表現できるか?
│       ├─ Yes → そのまま実装
│       └─ No → 機能を分割して再検討
└─ No → 実装しない(装飾的要素は避ける)
```

### 良い例(採用)

| パターン             | 理由                  |
| -------------------- | --------------------- |
| 控えめなホバー状態   | 機能的フィードバック  |
| セマンティックカラー | 意味を伝える色使い    |
| 一貫したスペーシング | 8pxグリッドで予測可能 |
| シンプルなアイコン   | 機能を瞬時に伝える    |

### 避けるべき例(不採用)

| パターン                 | 理由                   |
| ------------------------ | ---------------------- |
| 派手なグラデーション背景 | 装飾的、集中を妨げる   |
| 過剰なアニメーション     | 生産性ツールにはノイズ |
| 影の多用                 | フラットで十分         |
| イラスト・装飾画像       | 機能に寄与しない       |

---

## Typography(タイポグラフィ)

### フォント選定

**現行**: プロジェクトのシステムフォントを維持

```css
/* 変更不要 - システムフォントスタック */
font-family:
  system-ui,
  -apple-system,
  BlinkMacSystemFont,
  sans-serif;
```

**禁止**: フォント変更の提案(Inter, Roboto, カスタムフォント追加など)

### サイズ・ウェイト

STYLE_GUIDE.mdの8pxグリッドに従う:

| 用途     | サイズ | ウェイト | Tailwind                 |
| -------- | ------ | -------- | ------------------------ |
| 本文     | 16px   | 400      | `text-base font-normal`  |
| 強調本文 | 16px   | 500      | `text-base font-medium`  |
| 小見出し | 24px   | 600      | `text-2xl font-semibold` |
| ラベル   | 14px   | 400      | `text-sm font-normal`    |

---

## Motion(アニメーション)

### 基本原則: 機能的アニメーションのみ

```
アニメーションを追加する前に確認:
1. ユーザーの操作に対するフィードバックか? → OK
2. 状態変化を伝えるものか? → OK
3. 視覚的な装飾か? → NG
```

### 許可されるアニメーション

| 種類       | 用途               | 実装                              |
| ---------- | ------------------ | --------------------------------- |
| Transition | ホバー、フォーカス | `transition-colors duration-150`  |
| Fade       | 表示/非表示        | `transition-opacity duration-200` |
| Scale      | 押下フィードバック | `active:scale-95`                 |

### 禁止されるアニメーション

| 種類                         | 理由                     |
| ---------------------------- | ------------------------ |
| ページ遷移アニメーション     | 速度が優先               |
| 背景のパーティクル           | 装飾的                   |
| ローディングの凝った演出     | シンプルなスピナーで十分 |
| バウンス、弾性アニメーション | 生産性ツールには不適切   |

### 統一パターン

```tsx
// ✅ 標準トランジション(150ms)
className = 'transition-colors duration-150';

// ✅ 表示切り替え(200ms)
className = 'transition-opacity duration-200';

// ✅ ホバー + 押下フィードバック
className = 'transition-colors hover:bg-state-hover active:scale-[0.98]';

// ❌ 過剰なアニメーション
className = 'animate-bounce animate-pulse';
```

---

## Color(カラー)

### セマンティックトークン厳守

STYLE_GUIDE.mdで定義されたトークンのみ使用。直接色指定禁止。

```tsx
// ✅ セマンティックトークン
className = 'bg-card text-foreground border-border';

// ❌ 直接色指定
className = 'bg-white text-gray-900 border-gray-200';
className = 'bg-blue-500';
```

### Primary色の制限

Primary = 「ユーザーアクションを促す要素」にのみ:

- ✅ CTAボタン、リンク、フォーカスリング
- ❌ 装飾、背景、待機状態

---

## Layout(レイアウト)

### 情報密度

**目標**: Google Calendar / Toggl と同等の情報密度

| コンポーネント | 密度                             |
| -------------- | -------------------------------- |
| カレンダーセル | 高密度(多くのイベント表示可能) |
| リスト項目     | 中密度(必要情報のみ)           |
| フォーム       | 低密度(操作性優先)             |

### 余白

8pxグリッド厳守(STYLE_GUIDE.md参照):

```tsx
// ✅ 8の倍数
className = 'p-4 gap-4'; // 16px

// ❌ 8の倍数でない
className = 'p-3 gap-5'; // 12px, 20px
```

---

## Components(コンポーネント設計)

### shadcn/ui活用原則

1. **そのまま使う**: カスタマイズは最小限
2. **薄いラッパー**: スタイル統一のみ
3. **オーバーライド禁止**: 基本動作を変えない

### 新規コンポーネント判断

```
新しいコンポーネントが必要か?
├─ shadcn/uiにあるか? → あれば使う
├─ 3箇所以上で使うか? → Yes: components/common/に追加
└─ 1-2箇所のみか? → インラインで実装
```

---

## 参照リンク

- [STYLE_GUIDE.md](docs/design-system/STYLE_GUIDE.md) - 詳細なトークン定義
- [src/CLAUDE.md](src/CLAUDE.md) - コーディング規約
- [globals.css](src/styles/globals.css) - CSS変数定義

---

**バージョン**: 1.0.0
**最終更新**: 2026-01-19

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…