bubbletea について
既存プロジェクト内でターミナル UI を構築する Go 開発者向けの Bubble Tea スキルです。端末サイズ、Unicode 表示、レイアウト、モデル更新のライフサイクルを重視します。
主な機能
- 01既存のモデルと更新構造に準拠
- 02端末セル幅に基づく測定と切り詰め
- 03小さな端末でのレイアウト調整
- 04ヒット判定と描画レイアウトの整合
- 05描画処理から副作用を分離
活用シーン
- 01既存の Go プロジェクトへの TUI コンポーネント追加
- 02狭い端末でのパネル配置の修正
- 03Unicode テキストの配置と切り詰めへの対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pedronauck/ skills --skill bubbleteaインストール後、Claude Code で/bubbleteaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/components.mdemoji-width-fix.mdgolden-rules.mdtroubleshooting.md詳細
Bubble Tea TUI 開発
リポジトリにインストールされている Bubble Tea/Lip Gloss のバージョンと、既存のモデル/更新/ビュー構造を使用してください。バージョン固有の API 変更については、最新の公式ドキュメントを参照してください。付属のサンプルが利用側プロジェクトのメジャーバージョンと一致するとは限りません。
実装
- 近くにあるコンポーネントと状態の所有関係を再利用してください。小さなウィジェットに、新たなプロジェクトのひな型、YAML 設定、ホットリロード、マウス操作、エフェクトライブラリは必要ありません。
- レイアウトを変更する前に、
references/golden-rules.mdの関連するガイダンスを確認してください。実際のフレームやパディングのサイズを測り、端末が小さい場合は寸法を制限してください。固定値の 2 セルを差し引く方法が有効なのは、その正確な枠線に限られます。 - 端末セル幅や ANSI を考慮した測定と切り詰めを使用してください。バイト長で文字列をスライスしたり、コードポイント数と表示幅が同じだと想定したりしないでください。コンテンツの振る舞いに合わせて、クリッピング、折り返し、スクロールのいずれかを選んでください。枠線付きのテキストがすべて切り詰められる必要はありません。
- ヒットテストを、描画されたレイアウトとフォーカス状態に一致させてください。柔軟なペインには比例サイズが便利ですが、意図したコントロールには固定サイズを使用できます。
- 描画の外で副作用のある処理を行い、モデル/更新のライフサイクルを維持してください。変更した操作と、狭い端末および広い端末での動作を検証してください。動作のカバレッジがない場合にのみ、その動作を所有するテストを追加してください。
参考資料
| 項目 | 必要に応じて参照 |
|---|---|
| 枠線のサイズ、パネルの配置 | references/golden-rules.md |
| 既存のウィジェットのパターン | references/components.md |
| 描画の失敗 | references/troubleshooting.md |
| Unicode/絵文字の配置 | references/emoji-width-fix.md |
付属のテンプレートは、新しいアプリケーションを始める際の任意のひな型です。API のバージョンとレイアウトの前提を調整してください。動作しているプロジェクト構造を置き換えたり、不要な依存関係を追加したりしないでください。必要な依存関係は、手作業で go.mod を編集するのではなく、リポジトリのパッケージ管理ワークフローを通じてインストールしてください。製品の動作、端末の制約、プロジェクトの規約は、説明用のサンプルよりも優先されます。
コメント
Markdown 対応