document-design について
document-designは、ブランドに合わせた印刷向けHTML文書を作成し、PDFに出力するためのスキルです。ブランド設定、テンプレート、印刷レイアウト、プレビュー確認を案内し、レポートや提案書、ニュースレターに対応します。
主な機能
- 01ブランド設定と既定値
- 02再利用できるHTML文書テンプレート
- 03印刷向けページとフッターのレイアウト
- 04タイポグラフィと共通コンポーネント
- 05プレビューとPDF出力の手順
活用シーン
- 01ブランドに沿った印刷用レポートの作成
- 02テンプレートを使った助成金提案書の作成
- 03組織のスタイルに合わせたニュースレターの準備
- 04PDF出力前のページレイアウト確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jamditis/ claude-skills-journalism --skill document-designインストール後、Claude Code で/document-designを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlbrands/ccm.yamldefault.yamlexample-newsroom.yamlcontrols/control-panel.csscontrol-panel.jsplayground-wrapper.htmlprompt-generator.jscontrols/template-maps/proposal.jsREADME.mdreferences/css-patterns.mdtemplates/event-template.htmlnewsletter-template.htmlonepager-template.htmlproposal-template.htmlreport-template.htmlslides-template.html詳細
ドキュメントのデザイン
カスタマイズ可能なブランド設定を適用した、プロフェッショナルで印刷に適した HTML ドキュメントを作成し、PDF にエクスポートします。
ブランド設定
ドキュメントを作成する前に、プロジェクトのルートにある pdf-playground.local.md を確認します。存在しない場合は、従来の Claude Code パスである .claude/pdf-playground.local.md を確認します。両方存在する場合は、プロジェクトルートのファイルのみを使用します。どちらも存在しない場合は、妥当なデフォルト値を使用するか、ユーザーにブランドカラーを尋ねます。
ブランド設定の読み取り
選択した設定ファイルの YAML フロントマターを解析します。
---
brand:
name: "Organization Name"
tagline: "Tagline"
website: "https://example.com"
email: "[email protected]"
colors:
primary: "#CA3553"
secondary: "#000000"
background: "#FFFFFF"
text: "#2d2a28"
muted: "#666666"
fonts:
heading: "Playfair Display"
body: "Source Sans 3"
style:
headingCase: "sentence"
useOxfordComma: true
---
デフォルトのブランド値
設定ファイルがない場合は、次のデフォルト値を使用します。
- プライマリカラー:
#CA3553(赤) - セカンダリカラー:
#000000(黒) - 見出しフォント:Playfair Display
- 本文フォント:Source Sans 3
- 見出しの大文字・小文字:文頭のみ大文字
基本原則
- 印刷を最優先したデザイン:すべてのドキュメントは、適切な余白を設けた 8.5" × 11" のレターサイズを対象とします
- ブランドへの準拠:ブランド設定にある色とフォントを使用します
- デフォルトは文頭のみ大文字:ブランド設定で「タイトル」ケースが指定されている場合を除きます
- きれいなエクスポート:ドキュメントが PDF に印刷した際に正しくレンダリングされる必要があります
CSS 変数
ブランド設定から CSS 変数を生成します。
:root {
--primary: [colors.primary];
--secondary: [colors.secondary];
--background: [colors.background];
--text: [colors.text];
--muted: [colors.muted];
/* Derived colors */
--primary-dark: [darken primary by 15%];
--gray-100: #f5f4f2;
--gray-200: #e8e6e3;
}
印刷用 CSS の基本
ページ設定
@page {
size: 8.5in 11in;
margin: 0;
}
@media print {
body {
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
}
.page {
page-break-after: always;
page-break-inside: avoid;
}
}
固定ページ寸法
.page {
width: 8.5in;
height: 11in;
padding: 0.5in 0.75in;
padding-bottom: 1in; /* Space for footer */
position: relative;
box-sizing: border-box;
overflow: hidden;
}
固定フッター
.page-footer {
position: absolute;
bottom: 0.4in;
left: 0.75in;
right: 0.75in;
font-size: 9pt;
border-top: 1px solid var(--gray-200);
padding-top: 0.1in;
background: var(--background);
}
フッターの余白(重要)
コンテンツがフッターに重なったり接触したりする問題が繰り返し発生しています。
推奨レイアウト、グリッド行 auto 1fr auto:
.page {
display: grid;
grid-template-rows: auto 1fr auto;
overflow: hidden;
}
これにより、ヘッダーとフッターは自然な高さになり、コンテンツは残りのスペースを埋めます。マジックナンバーを使った calc() は不要で、フッターの余白は構造によって確保されます。
必須の対策:
- ページに
grid-template-rows: auto 1fr autoを指定し、コンテンツとヘッダー、フッターの間に自動的にスペースができるようにします - コンテンツコンテナーに
overflow: hiddenを設定し、テキストが範囲を超えてはみ出さないようにします - コンテンツ領域内に最低でも
padding-bottom: 0.3inを設定し、バッファーを設けます - ヘッダーやフッターの高さにマジックナンバーを使った固定の
height: calc(...)を指定してはいけません。パディングやフォントサイズが変わると、ずれが生じます - レンダリング後、納品前に必ずスクリーンショットを撮り、ページ下部を目視で確認します
- コンテンツがあふれる場合は、コンテンツを減らし、フッターとの余白は絶対に縮めないでください。スペースがさらに必要な場合は、まずヘッダーを詰めます
タイポグラフィのパターン
フォントの読み込み
@import url('https://fonts.googleapis.com/css2?family=[heading-font]:wght@400;600;700&family=[body-font]:wght@400;500;600;700&display=swap');
body {
font-family: '[body-font]', Arial, sans-serif;
font-size: 11pt;
line-height: 1.6;
color: var(--text);
}
h1, h2, h3 {
font-family: '[heading-font]', Georgia, serif;
font-weight: 700;
}
見出しのスタイル
.section-title {
font-size: 26pt;
color: var(--secondary);
margin-bottom: 0.25in;
}
.section-title::after {
content: '';
display: block;
width: 0.5in;
height: 3px;
background: var(--primary);
margin-top: 0.12in;
}
よく使うコンポーネント
表紙のヘッダー
<header class="cover-header">
<div class="logo-bar">
<div class="logo-primary">[brand.name]</div>
</div>
<div class="cover-title-block">
<div class="cover-eyebrow">[Document type] • [Date]</div>
<h1 class="cover-title">[Title in configured case]</h1>
</div>
</header>
予算表
.budget-table thead {
background: var(--secondary);
color: white;
}
.budget-table tbody tr:last-child {
background: var(--primary);
color: white;
font-weight: 700;
}
ハイライトボックス
.highlight-box {
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
color: white;
padding: 0.3in;
}
ドキュメント作成のワークフロー
- ブランド設定を確認します。まずプロジェクトルートの
pdf-playground.local.mdを確認し、次に従来の.claude/pdf-playground.local.mdをフォールバックとして確認します - インストール済みのこの
SKILL.mdを見つけ、同じディレクトリからバンドルされたリソースを解決します。プラグインルートの環境変数が利用できるとは想定しないでください - スキル相対の
templates/ディレクトリからテンプレートを読み込みます - CSS 変数とコンテンツにブランド設定を適用します
- ユーザーの要件に基づいてコンテンツをカスタマイズします
- 現在の作業ディレクトリにHTML ファイルを保存します
- Playwright のブラウザツールを使ってプレビューを提示します
PDF エクスポートの手順
- Chrome で HTML ファイルを開きます
- Ctrl+P(Mac の場合は Cmd+P)を押します
- 「送信先」で「PDF に保存」を設定します
- 「余白」を「なし」に設定します
- 「背景のグラフィック」を有効にします
- ファイルを保存します
追加リソース
テンプレート
インストール済みスキルの templates/ ディレクトリにある、すぐに使えるテンプレート:
proposal-template.htmlreport-template.htmlonepager-template.htmlnewsletter-template.htmlslides-template.htmlevent-template.html
slides-template.html には、ローカルの写真やワードマークのパスが例として記載されていますが、画像アセットは同梱されていません。このテンプレートを基にスライド資料を作成して提供する前に、すべての CSS の url(...) と <img src> の参照を、利用可能なアセットに置き換えてください。適切な画像がない場合は、解決されていない参照をすべて削除し、テンプレートのグラデーションまたは単色のスライドバリエーションを使い、見つからないワードマーク画像はテキストに置き換えてください。解決されていないローカルアセットのパスが残ったまま、スライド資料を提供してはいけません。
ブランドの例
インストール済みスキルの brands/ ディレクトリにあるブランド設定の例:
default.yaml- デフォルトのブランド設定ccm.yaml- Center for Cooperative Mediaexample-newsroom.yaml- ニュースルーム設定のサンプル
リファレンスファイル
CSS パターンの詳細については、インストール済みスキルの
references/css-patterns.md を使用してください。
プレビューコントロール
再利用可能なプレビューアセットは、インストール済みスキルの controls/ ディレクトリにあります。
これらのファイルはドキュメント生成用のリソースです。Claude 専用のプレビューコマンドやプラグインフックが Codex の機能になるわけではありません。
関連項目
最終版の PDF または編集可能なドキュメントを確認、共有、送信、検証するには、document-delivery を使用してください。