デザイン&モーション · nexu-io/html-anything

frame-light-leak-cinema

フィルム光線漏れ + 粒子ノイズ + 16:9 レターボックス + 明朝系大見出し、映画風オープニング/チャプターカード

L1 基本 · ソース登録のみV1 コミット固定Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE;GitHub API spdx_id=Apache-2.0)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

この skill は実行可能プログラムではなく、ローカルの coding-agent CLI に注入されるプロンプトです。ホストが SKILL.md の本文を取得し、前にサイト共通のデザイン指示、後ろにユーザーコンテンツを結合して1つのプロンプトを作成し、ログイン済み agent に渡して、agent の stdout を HTML として受け取ります。

next/src/lib/templates/shared.ts
【输入格式】: ${opts.format} 【用户内容】: ${opts.content}
組み立てテンプレート = 共通指示 → skill 本文 → 入力フォーマット → ユーザーコンテンツ。Web 端の /api/convert も同一の関数を使用: prompt = assemblePrompt({ body: skill.body, content, format });

共通指示レイヤー(単一の skill に属さず、すべてのテンプレートに適用)は、出力を「自己完結型シングルファイル HTML」に固定し、agent による Write/Edit/Bash などのファイルシステムツールの使用を明示的に禁止して、HTML を対話本文として直接ストリーミング出力させます。

next/src/lib/templates/shared.ts
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
これが今回の skill 群の能力境界の根拠です。生成物はテキストに過ぎず、ディスク書き込みやレンダリングはホストのフロントエンドが担当します。この禁止令はプロンプトによるソフトな制約であり、サンドボックスによるハードな隔離ではありません。

SKILL.md の外側には「コンテンツ駆動の数量」オーバーライド規則があります。テンプレートに記載されたページ数/フレーム数/カード数はすべて参考下限値とみなされ、実際の数量はユーザーコンテンツによって決定されます。これにより、agent がテンプレートの数値に合わせてユーザーコンテンツを圧縮することを防ぎます。

next/src/lib/templates/shared.ts
- 模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
特に frame-* の単一フレームテンプレートにおいて重要です。テンプレート内のレイアウト記述を生産上限ではなく「再利用可能なレイアウトプール」として定義します。

読み込み規約は「1つの skill = 1つのフォルダ」です。SKILL.md(セレクター用の YAML frontmatter + テンプレートプロンプト本文)、任意の example.md(サンプル入力)および example.html(直接開けるプレビューサンプル)で構成され、TS コードを変更することなくディレクトリを追加するだけで新しいテンプレートを追加できます。

next/src/lib/templates/loader.ts
* SKILL.md — frontmatter (id, scenario, tags, …) + prompt body * example.md — (optional) sample input content * example.html — (optional) pre-rendered preview, shown inline in the picker
loader の loadSkillFromDir はこれら3種類のファイルのみを読み込み、他のアセット読み込み経路はありません。2回目のチェックではこれに基づき本 skill のアセット到達性を確認します。

選択パイプライン(CLI 側)は3段階のファネル構造です。キーワードの強シグナル(1語一致につき2点、閾値3)→ tags/scenario によるスコアリングへフォールバック → それでも判定できない場合はユーザーコンテンツの先頭800文字をローカル agent に渡し、1文分類を実行します。

cli/src/skills-matcher.ts
const CONFIDENCE_THRESHOLD = 3;
AI フォールバックのプロンプト原文: const prompt = `请用一句话(不超过15个字)描述以下内容最像什么类型的文档,只需回答类型名称:`

プレビューパイプラインは生成から独立しています。/api/templates/<id>/preview は example.html をそのまま text/html として iframe に返し、フロントエンドの iframe は sandbox="allow-scripts allow-same-origin" を使用します。

next/src/components/preview-pane.tsx
sandbox="allow-scripts allow-same-origin"
ルートのコメント: * Returns the skill's `example.html` verbatim so it can be loaded into an(ホスト側のトレードオフ: allow-scripts + allow-same-origin の組み合わせ下では、プレビューページのスクリプト自身が sandbox を解除可能です)。

キャンバスはこのテンプレート最大の特徴です。2.39:1 レターボックス(1920×800、上下に各 140px の黒帯)を推奨し、フルフレームの 16:9(1920×1080)もサポートします。

next/src/lib/templates/skills/frame-light-leak-cinema/SKILL.md
aspect_hint: "2.39:1 letterbox (1920×800) 或 16:9 (1920×1080)"
2.39:1 レターボックスは、本テンプレートで最も認識しやすい構図上の特徴です。

フィルムの光線漏れは、2〜3個の大きな radial-gradient 楕円 + 下部の1本の linear-gradient を重ねて作成され、色相はウォームオレンジ/ピーチ/ローズレッド/ダークイエローに制限され、「冷たい青は禁止」と明記されています。フィルターではなく色温度によってフィルム感を演出します。

next/src/lib/templates/skills/frame-light-leak-cinema/SKILL.md
- **胶片漏光 (Light Leak)**: 2-3 个大 `radial-gradient(ellipse at top right, #ffb547 0%, transparent 50%)` + 1 个底部 `linear-gradient(to top, #d97757 0%, transparent 30%)`; 颜色取暖橙 / 桃 / 玫红 / 暗黄, **不要冷蓝**。
一般的なフィルターではなく、色温度(冷たい青の禁止)によってフィルム感を構築します。

粒子ノイズは全画面の SVG turbulence noise(opacity 14%、mix-blend-mode overlay)で実装され、data-URI 版の feTurbulence 記述も提供されます。フィルムの揺れをシミュレートする任意の feDisplacementMap も用意されています(慎重に使用するよう注記あり)。

next/src/lib/templates/skills/frame-light-leak-cinema/SKILL.md
- **35mm Grain**: 全屏覆盖 SVG turbulence noise 图层, opacity 14%, `mix-blend-mode: overlay`; 也可用 `background-image: url("data:image/svg+xml,...feTurbulence...")`。
粒子は SVG turbulence + overlay を使用し、data-URI としてインライン化可能です。

フィルムの物理ディテールを補完: フィルムの傷(1〜2px の垂直の白い線、不規則な間隔)とパーフォレーション(レターボックス黒帯内に repeating-linear-gradient で描画される等間隔の小さな白四角)。

next/src/lib/templates/skills/frame-light-leak-cinema/SKILL.md
example_desc: "2.39:1 letterbox + 衬线斜体大字 + 胶片齿孔"
傷やパーフォレーションにより、ポストプロダクションのディテールがレイアウト構成要素として落とし込まれています。

タイポグラフィと色数の双方向の制約: セリフ体大見出し(Source Serif Pro / Playfair / EB Garamond)を 5〜8vw italic + ウォームホワイトで使用。色数は絶対に4色相以内。中国語は Noto Serif SC に italic がないため、regular + 文字間隔拡大で代替します。

next/src/lib/templates/skills/frame-light-leak-cinema/SKILL.md
- 中文: `Noto Serif SC` italic 不存在 → 用 `Noto Serif SC` regular + 字距加大。
色相上限と中国語の italic 処理は、スタイルの破綻を防ぐための具体的な制約です。

2コア機能

012.39:1 レターボックス(1920×800、上下 140px 黒帯)と 16:9 のデュアルキャンバス
02多層 radial-gradient 光線漏れ(ウォームオレンジ/ピーチ/ローズレッド/ダークイエロー、寒色系ブルー禁止)
0335mm フィルムグレイン(SVG turbulence + overlay、opacity 14%)
04フィルムの傷とパーフォレーション(送り穴)の装飾
05インシークエンスの露出アニメーション(brightness 0.3→normal、800ms)+ 光線漏れの12秒周期ドリフト
06色相上限(4色以下)とフォントスタックの固定
07中国語セリフ体の処理: Noto Serif SC に italic がないため regular + 文字間隔拡大
08計器風テキスト領域: コーナーキャプション(REEL 03 · CH I · 1985)+ 最下部タイムコード/場所/日付
09セレクターキーワード: light leak / cinema / 电影感 / 漏光 / 胶片

3外部依存関係

KindDependency / Endpoint
networkGoogle Fonts(EB Garamond / Source Serif Pro / IBM Plex Mono / Noto Serif SC,示例页实际引用)
networkTailwind Play CDN(共享指令强制;示例页亦引用)
networkhyperframes 目录页(frontmatter 出处标注,非运行时请求)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示およびルールテキストであり、スクリプト実行や外部への影響はありません
監査ノート: 判定対象は本 skill 自身のディレクトリです(判断基準: SKILL.md に従って実行した際に実際に何が起こるか)。SKILL.md は純粋な指示テキストであり、付属の example.md/example.html はサンプルおよびプレビュー用サンプルです。ディレクトリ内にスクリプト、実行時のネットワーク呼び出し、認証情報の読み取り、agent 側でのファイル書き込みは一切存在しません。また、SKILL.md は外部の生成/サービスバックエンドを一切指定していません(orange の前例である ai-image-generation / seedance との対比: 後者は素材を外部生成バックエンドに送信しアカウントクレジットを消費しますが、本テンプレートは素材の外部送信を行いません)。評価ランクに影響しない補足事項: ディレクトリ内の example.html は cdn.tailwindcss.com および fonts.googleapis.com を外部リンクとして参照していますが(バッチ4の判断基準: example.html の外部リンクは生成物サンプルの扱いとし、判定対象外)、共通指示レイヤーも同様に生成物の head 内で CDN 経由で Tailwind と Google Fonts をインポートすることを要求しています(- `<head>` 内で CDN 経由で Tailwind v3 Play (https://cdn.tailwindcss.com) および必要な Google Fonts をインポート)。これはホストシェル側の振る舞いです。ホストの背景(ランク判定には含めず、verdict.risks を参照): プレビュー iframe は sandbox="allow-scripts allow-same-origin"、ホストは全権モード("bypassPermissions", / "--yolo",)で agent を起動します。追記: SKILL.md は外部画像の参照を明示的に禁止しています(光線漏れ/粒子はすべて CSS + data-URI SVG で生成)。ディレクトリ内にスクリプト、認証情報、ディスクへの書き込みはありません。

5二重目の独立検証

  • [ok] 画布/漏光/颗粒规格 — 重读 SKILL.md【画布】【背景】【文字】三段,逐字复核 2.39:1、140px、opacity 14%、overlay 等数值。
  • [ok] 『不要冷蓝』约束 — SKILL.md 原文:颜色取暖橙 / 桃 / 玫红 / 暗黄, **不要冷蓝**。与 JSON 引用一致。
  • [ok] 『无外链图片』结论 — 示例页 URL 扫描仅命中 fonts.googleapis.com 与 cdn.tailwindcss.com,无图片资源域;颗粒为 data-URI SVG。
  • [ok] 中文 italic 处理 — SKILL.md 原文:中文: `Noto Serif SC` italic 不存在 → 用 `Noto Serif SC` regular + 字距加大。,引用逐字通过。
  • [ok] 安全面 — 目录内 3 个文件无自写脚本、无凭证、无写盘、无表单外发。
  • [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
  • [unlocatable] 安装量 — 无公开安装量数据源,installs=null。

6結論

  • 2.39:1 レターボックスキャンバス + 140px 黒帯の組み合わせにより、映画用シネマスコープの構図フレームを直接提示し、16:9 よりも「フィルムのスクリーンショット」らしい質感を演出します。
  • 汎用フィルターに依存せず、色温度と物理ディテール(光線漏れの色相制限、傷、パーフォレーション)によってフィルムの質感を構築しています。
  • 中国語セリフ体の現実的な課題をテンプレートに明記(Noto Serif SC に italic がないため regular + 文字間隔拡大)し、偽イタリックによる中国語タイトルの変形を防いでいます。
  • アニメーションは控えめでフォールバック付き: 800ms の露出導入、12秒の光線漏れドリフト、prefers-reduced-motion による無効化対応。
  • 最適な用途: ドキュメンタリー/自主制作短編映画のチャプターカード、映像作品のオープニング、および「フィルムの質感」が求められるカバーフレームに最適。動画のオープニング単一フレームやポストプロダクション時のタイトルカード用ベースとして適しています。
    不向きな用途: 9:16 の縦長ショート動画には不向き(テンプレートが縦型キャンバスをサポートしていません)。大量の文字情報を必要とするシーンには不向き(大きなセリフ体 + レターボックスにより情報密度が圧迫されます)。モダンでフラットな UI スタイルを追求するプロジェクトには不向きです。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload frame-light-leak-cinema.tar.gz
    sha256: b36d67728ab9f7bb…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.