brand-yml について
brand-ymlは、ShinyアプリとQuarto文書でブランド設定を統一するための`_brand.yml`作成・利用スキルです。色、タイポグラフィ、ロゴ、メタ情報の設定に加え、各環境への統合と問題解決のリファレンスを提供します。
主な機能
- 01`_brand.yml`の作成と編集
- 02色、タイポグラフィ、ロゴ、メタ情報の設定
- 03Shiny for Rへの統合ガイド
- 04Shiny for Pythonへの統合ガイド
- 05Quartoへの統合ガイド
- 06設定の検証と問題の調査
活用シーン
- 01ブランドガイドラインから`_brand.yml`を作成
- 02Shinyアプリにブランドテーマを適用
- 03Quarto文書のブランド設定を統一
- 04色、フォント、YAML設定の問題を解決
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ posit-dev/ skills --skill brand-ymlインストール後、Claude Code で/brand-ymlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/brand-yml-in-r.mdbrand-yml-spec.mdquarto.mdshiny-python.mdshiny-r.md詳細
brand.yml スキル
Shiny アプリケーションと Quarto ドキュメントで一貫したブランディングを実現するために、_brand.yml ファイルを作成して使用します。
brand.yml とは?
brand.yml は、ブランドガイドラインを Shiny と Quarto 全体で使用できる機械可読ファイルに変換する YAML ベースの形式です。1 つの _brand.yml ファイルで、以下を定義します。
- カラー - パレットとセマンティックカラー(プライマリ、成功、警告など)
- タイポグラフィ - フォント、サイズ、太さ、行の高さ
- ロゴ - 複数のサイズとライト/ダークのバリエーション
- メタ情報 - 会社名、リンク、アイデンティティ情報
ファイルの命名規則
- 標準名:
_brand.yml(Shiny と Quarto によって自動検出されます) - カスタム名:
company-brand.ymlのような任意の名前(明示的なパスが必要です) - 配置場所:通常はプロジェクトのルート、または
_brand/やbrand/サブディレクトリです
判断フロー
ユーザーの目的を判断し、適切なワークフローに従ってください。
- 新しい _brand.yml ファイルを作成しますか? →「brand.yml ファイルの作成」に従います
- Shiny for R で brand.yml を使用しますか? →
references/shiny-r.mdを読みます - Shiny for Python で brand.yml を使用しますか? →
references/shiny-python.mdを読みます - Quarto で brand.yml を使用しますか? →
references/quarto.mdを読みます - R 全般で brand.yml を使用しますか? →
references/brand-yml-in-r.mdを読みます(R Markdown、テーマ設定関数、プログラムによるアクセス) - 既存の _brand.yml を変更しますか? →「既存ファイルの変更」に従います
- 連携に関する問題を解決しますか? →「トラブルシューティング」に従います
brand.yml ファイルの作成
ブランドガイドラインから _brand.yml ファイルを作成する場合:
ステップ 1:情報を収集する
ブランド情報を収集します。
- カラー:プライマリ、セカンダリ、アクセントカラーとその 16 進数値
- フォント:フォントファミリーとその入手元(Google Fonts、ローカルファイルなど)
- ロゴ:サイズごとのロゴファイルのパスまたは URL
- 会社情報:名前、ウェブサイト、ソーシャルリンク(任意)
ステップ 2:仕様を読む
references/brand-yml-spec.md を読み込み、brand.yml の完全な構造、フィールドの選択肢、構文を確認します。
ステップ 3:ファイルを段階的に作成する
必須セクションから始めて、任意の要素を追加します。
最小限の _brand.yml:
color:
palette:
brand-blue: "#0066cc"
primary: brand-blue
background: "#ffffff"
typography:
fonts:
- family: Inter
source: google
weight: [400, 600]
base: Inter
必要に応じてカラーを追加:
color:
palette:
brand-blue: "#0066cc"
brand-orange: "#ff6600"
brand-gray: "#666666"
primary: brand-blue
secondary: brand-gray
warning: brand-orange
foreground: "#333333"
background: "#ffffff"
タイポグラフィの詳細を追加:
typography:
fonts:
- family: Inter
source: google
weight: [400, 600, 700]
style: [normal, italic]
- family: Fira Code
source: google
weight: [400, 500]
base:
family: Inter
size: 16px
line-height: 1.5
headings:
family: Inter
weight: 600
monospace: Fira Code
ロゴを追加:
logo:
small: logos/icon.png
medium: logos/header.png
large: logos/full.svg
メタ情報を追加:
meta:
name: Company Name
link: https://example.com
ステップ 4:ベストプラクティスを適用する
references/brand-yml-spec.md に記載されている以下のルールに従います。
- すべてのフィールドは任意です。必要なものだけを含めてください
- 16 進数のカラー形式を使用します:
"#0066cc" - 可能な場合は、シンプルな構文(オブジェクトより文字列)を優先します
- 小文字とハイフンを使った名前にします:
brand-blue、success-green - すべての URL に
https://を含めます - 参照する前にカラーとフォントを定義します
- カラーレンジ(シェード/ティント)では、中間の色を選びます
ステップ 5:構造を検証する
以下を確認します。
- YAML 構文が有効である(インデントが適切で、16 進数カラーが引用符で囲まれている)
- カラー参照がパレット名と一致している
- フォントファミリーが使用前に定義されている
- ファイルパスが
_brand.ymlの配置場所からの相対パスになっている - すべての URL にプロトコル(
https://)が含まれている
既存ファイルの変更
既存の _brand.yml ファイルを変更する場合:
- 現在のファイルを読む:既存の構造を把握します
- brand-yml-spec.md を参照する:有効なフィールドの選択肢を確認します
- 一貫性を保つ:既存の命名パターンに合わせます
- 参照を維持する:他のカラーや要素が名前を参照している場合は、一貫性を保って更新します
- 連携をテストする:変更が Shiny/Quarto に正しく反映されることを確認します
よくある変更:
- カラーの追加:
color.paletteに追加し、セマンティックカラーから参照します - フォントの変更:
typography.fontsを更新し、ウェイト/スタイルが利用可能であることを確認します - ロゴのバリエーションの追加:複数のバリエーションには
light/darkの構造を使用します - ライト/ダークモード:カラーに
lightとdarkのバリエーションを追加します
Shiny for R での使用
ユーザーが Shiny for R アプリに brand.yml を適用する場合:
- 完全な統合ガイドについては
references/shiny-r.mdを読みます - 主な関数:
bs_theme(brand = TRUE)またはbs_theme(brand = "path") - 自動検出:アプリのルートに
_brand.ymlを配置します - ページ関数:
page_fluid()、page_sidebar()などで使用できます
簡単な例:
library(shiny)
library(bslib)
ui <- page_fluid(
theme = bs_theme(brand = TRUE),
# ... UI elements
)
Shiny for Python での使用
ユーザーが Shiny for Python アプリに brand.yml を適用する場合:
- 完全な統合ガイドについては
references/shiny-python.mdを読みます - 主な関数:
ui.Theme.from_brand(__file__) - 自動検出:アプリのルートに
_brand.ymlを配置します - インストール:
pip install "shiny[theme]"が必要です
簡単な例(Shiny Express):
from shiny.express import ui
ui.page_opts(theme=ui.Theme.from_brand(__file__))
簡単な例(Shiny Core):
from shiny import App, ui
app_ui = ui.page_fluid(
theme=ui.Theme.from_brand(__file__),
# ... UI elements
)
Quarto での使用
ユーザーが Quarto ドキュメントに brand.yml を適用する場合:
- 完全な統合ガイドについては
references/quarto.mdを読みます - 自動検出:
_brand.ymlをプロジェクトのルートにある_quarto.ymlと同じ場所に配置します - 対応フォーマット:HTML、ダッシュボード、RevealJS、Typst PDF
- テーマのレイヤー化:
brandキーワードを使用して優先順位を制御します
簡単な例(ドキュメント):
---
title: "My Document"
format:
html:
brand: _brand.yml
---
簡単な例(_quarto.yml 内のプロジェクト):
project:
brand: _brand.yml
format:
html:
theme: default
トラブルシューティング
ブランドが適用されない
Shiny:
- ファイル名が
_brand.yml(アンダースコア付き)であることを確認します - ファイルの場所(アプリのディレクトリまたは親ディレクトリ)を確認します
- 明示的なパスを指定してみます:
bs_theme(brand = "path/to/_brand.yml")またはui.Theme.from_brand("path") - Python の場合:
libsassがインストールされていることを確認します
Quarto:
_brand.ymlがプロジェクトのルートにあることを確認します- プロジェクトレベルのブランディングには
_quarto.ymlが存在することを確認します - ドキュメントのフロントマターで明示的なパスを指定してみます
- カスタムテーマを使用している場合は、テーマのレイヤー化の順序を確認します
色が一致しない
- 16 進カラーコードが引用符で囲まれていることを確認します:
"#0066cc"(#0066ccではありません) - 色名がパレットの定義と完全に一致することを確認します
- セマンティックカラー(primary、success など)が有効なパレット名を参照していることを確認します
- セマンティックカラーより前にパレットが定義されていることを確認します
フォントが読み込まれない
- Google Fonts のスペルと利用可能状況を確認します
- インターネット接続を確認します(Google Fonts に必要です)
source: googleまたはsource: bunnyが指定されていることを確認します- タイポグラフィ要素でフォントファミリー名が完全に一致することを確認します
- Typst の場合:
quarto typst fontsでフォントキャッシュを確認します
YAML 構文エラー
- インデントを確認します(タブではなくスペースを使用してください)
- 16 進カラーコードが引用符で囲まれていることを確認します:
"#447099" - コロンの後にスペースがあることを確認します:
primary: blue - リスト項目にハイフンがあることを確認します:
- family: Inter - 構文の問題が解決しない場合は、YAML バリデーターを使用します
リファレンスドキュメント
詳細な情報が必要な場合は、以下を読み込みます:
references/brand-yml-spec.md:すべてのセクション、フィールド、例、検証ルールを含む brand.yml の完全な仕様references/shiny-r.md:bslib を使った Shiny for R での brand.yml の使用(bs_theme、自動検出、Shiny 固有の統合)references/shiny-python.md:ui.Theme を使った Shiny for Python での brand.yml の使用(from_brand()、インストール、パフォーマンス)references/quarto.md:Quarto での brand.yml の使用(フォーマット、ライト/ダークモード、レイヤー化、拡張機能、Typst)references/brand-yml-in-r.md:R Markdown との統合、テーマ設定関数(ggplot2、gt、flextable、plotly、thematic)、プログラムによるブランドへのアクセスなど、R での一般的な使い方
主な原則
- シンプルに始める:まず色と 1 つのフォントファミリーを設定します
- 簡潔に保つ:ブランドに直接関係するフィールドのみを含めます
- 標準的な名前を優先する:可能な場合は Bootstrap の色名(blue、green、red など)を使用します
- 自動検出を使用する:自動検出にはファイル名を
_brand.ymlにします - 対象ごとにテストする:意図したすべてのフォーマットでブランドが正しく適用されることを確認します
- バージョン管理:
_brand.ymlを git リポジトリに含めます
よくあるパターン
ライト/ダークモードのカラー
color:
primary:
light: "#0066cc"
dark: "#3399ff"
background:
light: "#ffffff"
dark: "#1a1a1a"
foreground:
light: "#333333"
dark: "#e0e0e0"
ライト/ダークカラーモードは Quarto バージョン 1.8 で追加され、現在 R または Python の brand.yml パッケージではサポートされていません。
ロゴのバリアント
logo:
images:
logo-dark: logos/logo-dark.svg
logo-white: logos/logo-white.svg
icon: logos/icon.png
small: icon
medium:
light: logo-dark
dark: logo-white
複数のフォントウェイト
typography:
fonts:
- family: Inter
source: google
weight: [300, 400, 500, 600, 700]
style: [normal, italic]
base:
family: Inter
weight: 400
headings:
family: Inter
weight: 600
カラーエイリアス
color:
palette:
navy: "#003366"
ocean-blue: "#0066cc"
sky-blue: "#3399ff"
primary-color: ocean-blue # Alias
brand-blue: ocean-blue # Alias
blue: sky-blue # Alias for primary colors
primary: brand-blue
可能な場合は Bootstrap のカラー名を、直接定義するかエイリアスとして含めてください:blue、indigo、purple、pink、red、orange、yellow、green、teal、cyan、white、black。これは一貫性のために役立ち、これらのカラーは brand.yml を使用するツールによって自動的に取得されます。
ヒント
- まず仕様を読む:ファイルを作成または変更する際は、常に
brand-yml-spec.mdを参照してください - フレームワーク固有のガイド:統合の詳細については、適切なリファレンス(shiny-r.md、shiny-python.md、quarto.md)を読み込んでください
- 段階的に検証する:最小限の構造から始めてテストし、その後で複雑さを追加してください
- 参照を使用する:パレットでカラーを定義し、セマンティックカラーで名前によって参照してください
- 標準ファイル名:自動検出には
_brand.ymlを使用してください - 明示的なパス:カスタムファイル名は必要な場合(共有ブランディング、複数のバリアント)にのみ使用してください