クイックスタート
モードを選ぶ
テーマを light (ライトパレット)か dark (ダークパレット)のどちらで動かすか決めます。
色を入力する
下記のフィールド仕様に従ってください — 最低限、必須キーをすべて JSON に含める必要があります。
審査に提出する
テーマ のページで「テーマを投稿」をクリックしてください。管理者の承認後、全員に公開されます。
カラーフィールド
すべてのパレット値は hex (#RRGGBB) 文字列または CSS rgba(...) 値である必要があります。
background必須ページの主背景 — ライトテーマは白に近く、ダークテーマは深いニュートラル色。CSS var: --color-background
例: #F8FFF8 / #101410
foreground必須主要テキスト — 背景に対して読みやすいコントラスト。CSS var: --color-foreground
例: #2C3E2C / #E0E0E0
surface必須カード/パネル/コンテナの塗り — 背景よりわずかに浮いた色。CSS var: --color-surface
例: #F0FFF0 / #1E221E
surfaceMuted任意控えめな hover/サブコンテナ — surface から一段階下げた色。CSS var: --color-surface-muted
例: #F5FDF5 / #161816
border必須区切り線 — 通常は低彩度のグレー/半透明トーン。CSS var: --color-border
例: #D8E8D8 / #333633
muted必須控えめなテキストとプレースホルダー。CSS var: --color-muted
例: #6C7E6C / #A0A0A0
primary必須ボタン/リンク/フォーカス用の主要ブランドランプ — 単色またはランプ (50–950) 可。最低限シェード 500/600/700 が必要。CSS 変数 --color-primary- とシェードトークン (50–950) にマップ
例: { "500": "#4CAF50", "600": "#43A047", "700": "#388E3C" }
secondary任意チップ/ゴーストボタン用の二次アクセントランプ — primary と同構造。--color-secondary- とシェードトークンにマップ
例: { "500": "#AAA", ... }
accent任意ハイライト、バッジ、スポットライト色 — primary と同構造。--color-accent- とシェードトークンにマップ
例: { "500": "#FFEB3B", ... }
vars任意任意の CSS カスタムプロパティ — キーから「--」を省略。値は :root にそのまま適用
例: { "custom-radius": "8px" }
カラーランプ
JSON キー primary、secondary、accent は、以下のいずれかの作成スタイルを受け付けます:
コンパクト(3つのコアシェード)
{
"primary": {
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C"
}
}エンジンはシェード 500 をデフォルトの色相として扱い、600/700 は hover/active の状態をカバーします。
フルランプ(50 → 950、11段階)
{
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
...
"500": "#4CAF50",
...
"950": "#0F3D12"
}
}完全なランプを公開すると、あらゆる箇所でより滑らかなトーン遷移が得られます。
完全サンプル
🌿 ライトサンプル (light-mint)
{
"background": "#F8FFF8",
"foreground": "#2C3E2C",
"surface": "#F0FFF0",
"surfaceMuted": "#F5FDF5",
"border": "#D8E8D8",
"muted": "#6C7E6C",
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
"200": "#A5D6A7",
"300": "#81C784",
"400": "#66BB6A",
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C",
"800": "#2E7D32",
"900": "#1B5E20",
"950": "#0F3D12"
},
"secondary": {
"500": "#AAAAAA",
"600": "#999999",
"700": "#777777"
},
"accent": {
"500": "#FFEB3B",
"600": "#FDD835",
"700": "#FBC02D"
}
}🌑 ダークサンプル (dark-forest)
{
"background": "#101410",
"foreground": "#E0E0E0",
"surface": "#1E221E",
"surfaceMuted": "#161816",
"border": "#333633",
"muted": "#A0A0A0",
"primary": {
"500": "#4A9B6B",
"600": "#3F855C",
"700": "#346F4D"
}
}カスタム変数 (vars)
デフォルトトークンで足りない場合は、 vars ノードの下に追加の CSS 変数を置きます — 各キーから -- プレフィックスは省略してください。
{
"background": "#101010",
"foreground": "#E0E0E0",
...
"vars": {
"radius-card": "16px",
"shadow-card": "0 2px 12px rgba(0,0,0,0.4)"
}
}Slug ルール (name)
- 小文字 ASCII 英字、数字、ハイフン(
a-z 0-9 -)のみ使用可能。 - 「dark-ocean」や「light-sakura」のような簡潔な「モード-スタイル」形式を推奨します。
- Slug はグローバルに一意である必要があります — 公開後は変更できないため、事前に十分確認してください。
- 最大長は 50 文字です。
投稿と審査
🔐 投稿前にサインインしてください。
⏳ 提出物は審査キューに入り、スタッフは通常 1〜3 営業日以内に対応します。
✅ 承認されたテーマはマーケットプレイスに表示され、誰でもお気に入り登録できます。
❌ 無効な色、重複する名前、ポリシー違反は却下されます — 削除して修正版を再提出してください。
🚫 悪意のあるコード、ヘイトコンテンツ、明らかな権利侵害パレットは禁止です。
準備はできましたか?テーママーケットでパレットを公開しましょう。
🎨 テーマを投稿