mcpField
T
terminal-ui-design

terminal-ui-design

github.com/ingpocデザイン・UI940 回インストール11 週間前に更新
リポジトリ

terminal-ui-design について

terminal-ui-design は、特徴のあるターミナルインターフェースを設計するためのスキルです。開発者向けに、レイアウト、配色、タイポグラフィ、動きを一貫した方針で設計する手順を示します。

主な機能

  1. 01ビジュアル方針の選定
  2. 02配色と枠線のガイド
  3. 03タイポグラフィとレイアウト技法
  4. 04動きとデータ表示のパターン
  5. 05実装チェックリスト

活用シーン

  1. 01ターミナルダッシュボードの設計
  2. 02コマンドラインヘルプの装飾
  3. 03ターミナルウィザードの構築
  4. 04ターミナル画面のデザイン統一

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ingpoc/skills --skill terminal-ui-design

インストール後、Claude Code で/terminal-ui-designを入力して読み込まれたか確認します。

詳細

ターミナル UI のデザイン

意図を持った美しさで、個性的かつ本番品質のターミナルインターフェースを作成しましょう。テキストを表示するだけでなく、体験を作り上げましょう。

クイックスタート

コーディングを始める前に、大胆な美的方向性を選びましょう。

スタイル雰囲気色枠線
サイバーパンクネオン、未来的ホットピンク #ff00ff、シアン #00ffff、パープル #1a0a2eブロック █▀▄
アンバーターミナルレトロな CRT黒地に #ffb000二重 ╔═╗
ミニマリスト禅クリーン、集中できるNord パレット、寒色系ブルー角丸 ╭─╮
レトロメインフレーム企業的、フォーマル黒地にグリーンASCII のみ +-+
シンセウェーブ80 年代のノスタルジーパープル、ピンクのグラデーション太線 ┏━┓
モノクローム・ブルータリスト無骨、大胆単色+強度太線 ┏━┓

方向性を 1 つ選び、精密に仕上げましょう。

デザイン思考チェックリスト

質問決めること
目的どんな問題を解決しますか?誰が使いますか?どんなワークフローですか?
トーン極端なスタイルを選びましょう:サイバーパンク、禅、レトロ、マキシマリスト、遊び心のあるスタイル
制約Python Rich、Go bubbletea、Rust ratatui、ANSI コードのどれを使いますか?
差別化何がこのデザインを忘れられないものにしますか?

ボックス描画と枠線

美的方向性に合った枠線を選びましょう。

Single:     ┌─────┐ │   └─────┘  Clean, modern
Double:     ╔═════╗ ║   ╚═════╝  Bold, formal, retro
Rounded:    ╭─────╮ │   ╰─────╯  Soft, friendly
Heavy:      ┏─────┓ ┃   ┗─────┛  Strong, industrial
Dashed:     ┄┄┄┄┄┄ ┆              Light, airy
ASCII:      +-----+ |   +-----+  Retro, universal
Block:      █▀▀▀▀█ ▄   ▀▀▀▀▀    Chunky, brutalist

プロのヒント:装飾的な角を使いましょう:◆ ◈ ✦ ⬡ ◢◣◤◥

色の使い方

手法使用する場面テクニック
ANSI 16 色幅広い互換性が必要な場合クラシックなパレットを使い、独自の組み合わせを作る
256 色豊かな表現と移植性を両立したい場合グラデーション、繊細な色の変化
トゥルーカラーモダンなターミナル全色域、滑らかな変化
モノクローム洗練された制約単色で強度を変える

雰囲気を作りましょう:

  • セクションに背景色のブロックを使う
  • グラデーションの塗りつぶし:░▒▓█
  • 意味に基づいた色使い(「赤=悪い」「緑=良い」の陳腐な表現は避ける)
  • 強調には反転表示を使う
  • 二次情報は暗く、主要情報は太字にする

タイポグラフィ

ターミナルはタイポグラフィがすべてです。

テクニック効果例
ASCII アートの見出し印象的な導入figlet スタイルのバナー
文字の太さ階層太字、暗色、標準
装飾強調下線、斜体、取り消し線
文字間隔見出しH E A D E R
大文字・小文字語り口見出しはすべて大文字、本文は小文字
Unicode 記号豊かな表現→ • ◆ ★ ⚡ λ ∴ ≡ ⌘ ✓ ✗
カスタム箇条書き個性- の代わりに ▸ ◉ ✓ ⬢ › を使う
Block:    ███████╗██╗██╗     ███████╗
Slant:    /___  / / // /     / ____/
Small:    ╔═╗┌─┐┌─┐
Minimal:  [ HEADER ]

レイアウトと空間構成

単一カラムの出力から抜け出しましょう。

要素用途
パネルとウィンドウ枠線で区切られた独立した領域
カラム情報を横並びに表示
テーブルデータを整列して表示し、Unicode の表用文字を使う
余白十分なパディングでゆとりを持たせる
情報密度目的に合わせる。ダッシュボードは高密度、ウィザードは低密度
階層主要、二次、クロームを視覚的に区別する
非対称中央からずらしたタイトル、重み付けしたレイアウト

動きとアニメーション

要素例
スピナー⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏、⣾⣽⣻⢿⡿⣟⣯⣷
プログレスバー▓░、█▒、[=====> ]、◐◓◑◒
タイピング効果文字を 1 つずつ表示
トランジションワイプ効果、色の強度を変えながらフェード
ライブ更新データのストリーミング、リアルタイムチャート

データ表示

種類テクニック
スパークライン▁▂▃▄▅▆▇█ のインラインミニチャート
棒グラフブロック文字を使った横棒グラフ
テーブル適切なサイズ調整、行の交互色、数値の整列
ツリー├── └── │ の階層表示
ステータス● 緑、○ 空、◐ 一部完了、✓ 完了
ゲージパーセンテージ付きの [████████░░]

装飾要素

Dividers:   ───── ═════ •••••• ░░░░░░ ≋≋≋≋≋≋
Sections:   ▶ SECTION, [ SECTION ], ─── SECTION ───, ◆ SECTION
Textures:   · ∙ ░ patterns for backgrounds
Icons:       (if Nerd Fonts available)

避けるべきアンチパターン

❌ 避ける✅ 代わりに
書式のないプレーンテキスト意図に沿ったスタイル付きの出力
デフォルトの色統一感のあるカラーパレット
汎用的な [INFO] プレフィックスアイコン付きのスタイル付きプレフィックス
単純な ---- 区切り線───── ═════ のような Unicode 区切り線
文字の壁構造化されたパネルとセクション
汎用的な進捗表示独創的なスピナーとバー
単調なヘルプ書式を整え、位置を揃えたヘルプテキスト
不揃いな余白正確な位置揃え

ライブラリのクイックリファレンス

言語ライブラリ
PythonRich, Textual, curses, prompt_toolkit
GoBubbletea, Lipgloss
RustRatatui
Node.jsInk, Blessed, cliui
PureANSI エスケープコード
ANSI エスケープコード
\x1b[1m       Bold
\x1b[3m       Italic
\x1b[4m       Underline
\x1b[31m      Red foreground
\x1b[38;2;R;G;Bm  True color (RGB)
\x1b[2J       Clear screen
\x1b[H        Cursor home

実装パターン

  1. 美的スタイルを選ぶ(サイバーパンク、禅、レトロなど)
  2. カラーパレットを定義する(2〜3 色と背景色)
  3. 境界線のスタイルを選ぶ(シングル、ダブル、角丸、ブロック)
  4. 再利用可能なコンポーネントを作る(パネル、テーブル、ステータス)
  5. すべての出力に一貫して適用する

リソース

ファイル読み込むタイミング
references/box-drawing.md境界線の文字を参照する必要がある場合
references/ansi-codes.mdエスケープコードを参照する必要がある場合
references/color-palettes.md定義済みのパレットが必要な場合

終了条件(コードで検証)

  • 意図的な美的スタイルのある出力になっている(汎用的ではない)
  • 全体を通して統一感のあるカラーパレットが使われている
  • 境界線とタイポグラフィが選んだスタイルに合っている
  • 書式のないプレーンテキストがない
  • アンチパターンを避けている

コメント