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

frame-liquid-bg-hero

WebGL風の流体変位(ディスプレイスメント)背景 + 上部オーバーレイ名言。動画オープニング / ランディングのファーストビュー(hero) / ポスターに最適

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
ローダーの loadSkillFromDir はこれら3種類のファイルのみを読み込み、他のアセット読み込みルートは存在しません。2巡目のアセット到達性検証もこれに準拠します。

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

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を解除可能です)。

流体背景には3段階の実装パスが用意され、デフォルトで最も安定した第1階層が使用されます。CSSの多層 radial-gradient による呼吸アニメーション(3〜5個の大きな楕円、@keyframes translate+scale+hue-rotate、8〜14秒の周期ズレ、mix-blend-mode screen/overlay、最前面の backdrop-filter blur(80px))。

next/src/lib/templates/skills/frame-liquid-bg-hero/SKILL.md
1. **CSS 多层 radial-gradient 错位呼吸** (最稳, 默认推荐):
初手からWebGLを使用して開けなくなる事態を回避するための、最も堅牢なデフォルト実装です。

第2・第3階層はプログレッシブエンハンスメントです。Canvas + 手書きパーリンノイズ/メタボール(約80行のインラインJS、requestAnimationFrame、prefers-reduced-motion 時は静止画キャプチャへフォールバック)、WebGLフラグメントシェーダー(jsdelivr経由のreglまたはインラインの素のWebGL、単一quad + u_time)。

next/src/lib/templates/skills/frame-liquid-bg-hero/SKILL.md
3. **WebGL fragment shader** (高阶, 慎用):
第2・第3階層はプログレッシブエンハンスメントであり、prefers-reduced-motion によるフォールバックを備えています。

テキスト層は mix-blend-mode: difference を採用し、「あらゆる流体色の上でも可読性を維持する」問題を解決しています。文字に縁取りや下地パネルを付けるよりも、流体背景において最も実用的なテクニックです。

next/src/lib/templates/skills/frame-liquid-bg-hero/SKILL.md
- 文字色用 paper white `#fafaf8` 或 ink, 取决于背景明暗; 加 `mix-blend-mode: difference` 让它在任何流体颜色上都可读。
difference ブレンドにより、流体背景上での文字の可読性を確保します。

カラーパレットは定義済みの4セット(Solar Peach / Ocean Aqua / Aurora Violet / Forest Mint)に固定され、レインボーを排して4択から選択することが義務付けられています。

next/src/lib/templates/skills/frame-liquid-bg-hero/SKILL.md
example_tagline: "Aurora Violet 流体"
定義済みの4セットから1つを選択し、無秩序なレインボーの多用は禁止されています。

キャンバスは 1920×1080 横向きと 1080×1920 縦向きの2択をサポートし、外部画像リンクは厳禁とされています(すべて CSS + SVG、任意で canvas のみ)。

next/src/lib/templates/skills/frame-liquid-bg-hero/SKILL.md
- 严禁外链图片; 全部 CSS + SVG + 可选 canvas。
縦横デュアルキャンバス + 外部画像禁止:単一ファイルで、ダブルクリックでそのまま開けます。

2コア機能

013段階の流体実装(CSS呼吸 / Canvasパーリン / WebGLシェーダー)、デフォルトは最も安定した構成
02ブレンドモードとブラー:mix-blend-mode screen/overlay + backdrop-filter blur(80px)
03巨大テキスト層に difference ブレンドを採用し可読性を保証
044つの定義済みカラーパレット(Solar Peach / Ocean Aqua / Aurora Violet / Forest Mint)
05縦横両対応のキャンバス(1920×1080 または 1080×1920)
06データ入力時に18文字以下のキーフレーズを自動抽出
07禁止事項:多色レインボー、PowerPoint風グラデーション、ネオンの重ねすぎ、外部画像リンク
08prefers-reduced-motion によるアニメーション停止に対応
09セレクターキーワード:liquid / 流体 / blob / 渐变背景 / hero

3外部依存関係

KindDependency / Endpoint
networkTailwind Play CDN(共享指令强制;示例页亦引用)
networkGoogle Fonts(Inter Tight / Source Serif Pro / Noto Sans SC,示例页实际引用)
networkjsdelivr CDN(仅第 3 级 WebGL 方案引入 regl,可选、非默认路径)
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タグ内でTailwindとGoogle FontsのCDN参照を要求しています(- 在 `<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:35 の jsdelivr は第3段階の「高度・要検討」の選択肢にのみ現れ(デフォルトは純粋なCSSであり、インラインWebGLの代替案もあります)、条件付きの任意事項であって必須要件ではないため、🟡 への引き上げは行っていません。hyperframesのリンクはfrontmatterの出典表記です。

5二重目の独立検証

  • [ok] 三级实现与文字层规格 — 重读 SKILL.md【流体背景】【顶层文字层】【调色】三段,引用逐字一致(含 blur(80px)、difference、四色板十六进制)。
  • [ok] jsdelivr 条目定性 — source 中该词仅出现在 `用 jsdelivr CDN 引 regl 或 inline plain WebGL。`(SKILL.md:35,第 3 级且标注『高阶, 慎用』);按批4 口径未升档,已在 deps/reason 标注。
  • [ok] 『单文件可双击打开』宣称 — SKILL.md 写明『WebGL 流体感, 但用 CSS / canvas 退化绘制, 确保单文件可双击打开』——与默认 CSS 方案一致,无夸大。
  • [ok] 外部端点存在性 — example.html 实测命中 cdn.tailwindcss.com 与 fonts.googleapis.com;jsdelivr 未出现在示例页(仅 SKILL.md 可选路径)。
  • [ok] 安全面 — 目录内 3 个文件无自写脚本(示例页仅 Tailwind CDN 标签)、无凭证、无写盘、无表单外发。
  • [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
  • [unlocatable] 安装量 — 无公开安装量数据源,installs=null。

6結論

  • フォールバック優先のエンジニアリング判断:デフォルトは純粋なCSS radial-gradient の呼吸表現とし、Canvas/WebGLをプログレッシブエンハンスメントとすることで、単一ファイルがダブルクリックで確実に開くことを保証。
  • difference ブレンドモードにより流体背景上での文字の可読性を解決し、縁取りや座布団を敷く手法よりも洗練された見た目を実現。
  • 16進数カラーコードを含む4つの定義済みパレットをデザイン・トークンとして再利用でき、フレームごとの配色ブレを防止。
  • 縦横両対応キャンバス + ポスター/動画オープニングの両面展開により、1つのテンプレートでランディングhero、オープニングフレーム、ポスター背景の3用途をカバー。
  • 最適な用途: SaaSランディングページ上部のheroエリア、動画のオープニングフレーム、イベントポスターの背景に最適。特に「画像素材に頼らずリッチな質感を演出したい」単一ファイルソリューションに適しています。
    不向きな用途: 高い情報密度が求められるランディングページの本文には不向き(hero/背景用であり、コンテンツページではありません)。極端なローエンド端末でのリアルタイム再生には不向き(多層ブラー+アニメーションの高負荷)。フォトリアルな写実的背景を求めるプロジェクトには不向き。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload frame-liquid-bg-hero.tar.gz
    sha256: 7995bcbdcff12379…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.