Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

react-email

JSON仕様を@react-email/componentsと@react-email/renderを使用してHTMLまたはプレーンテキストのメールに変換する、json-render向けReact Emailレンダラーです。@json-render/react-emailの利用時、JSONからトランザクションメールやマーケティングメールを構築する際、メールカタログの作成、AIが生成したメール仕様のレンダリング、またはreact-email・HTMLメール・トランザクションメールに関する作業を行う場合にお使いください。

description の原文を見る

React Email renderer for json-render that turns JSON specs into HTML or plain-text emails using @react-email/components and @react-email/render. Use when working with @json-render/react-email, building transactional or marketing emails from JSON, creating email catalogs, rendering AI-generated email specs, or when the user mentions react-email, HTML email, or transactional email.

SKILL.md 本文

@json-render/react-email

JSON スペックを HTML またはプレーンテキストのメール出力に変換する React Email レンダラー。

クイックスタート

import { renderToHtml } from "@json-render/react-email";
import { schema, standardComponentDefinitions } from "@json-render/react-email";
import { defineCatalog } from "@json-render/core";

const catalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
});

const spec = {
  root: "html-1",
  elements: {
    "html-1": { type: "Html", props: { lang: "en", dir: "ltr" }, children: ["head-1", "body-1"] },
    "head-1": { type: "Head", props: {}, children: [] },
    "body-1": {
      type: "Body",
      props: { style: { backgroundColor: "#f6f9fc" } },
      children: ["container-1"],
    },
    "container-1": {
      type: "Container",
      props: { style: { maxWidth: "600px", margin: "0 auto", padding: "20px" } },
      children: ["heading-1", "text-1"],
    },
    "heading-1": { type: "Heading", props: { text: "Welcome" }, children: [] },
    "text-1": { type: "Text", props: { text: "Thanks for signing up." }, children: [] },
  },
};

const html = await renderToHtml(spec);

スペック構造(エレメントツリー)

@json-render/react と同じフラットエレメントツリー:root キーと elements マップ。ルートは Html である必要があり、Html の子は HeadBody である必要があります。Body 内で Container(例:max-width 600px)を使用して、クライアント互換のレイアウトを実現します。

カタログとレジストリの作成

import { defineCatalog } from "@json-render/core";
import { schema, defineRegistry, renderToHtml } from "@json-render/react-email";
import { standardComponentDefinitions } from "@json-render/react-email/catalog";
import { Container, Heading, Text } from "@react-email/components";
import { z } from "zod";

const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    Alert: {
      props: z.object({
        message: z.string(),
        variant: z.enum(["info", "success", "warning"]).nullable(),
      }),
      slots: [],
      description: "A highlighted message block",
    },
  },
  actions: {},
});

const { registry } = defineRegistry(catalog, {
  components: {
    Alert: ({ props }) => (
      <Container style={{ padding: 16, backgroundColor: "#eff6ff", borderRadius: 8 }}>
        <Text style={{ margin: 0 }}>{props.message}</Text>
      </Container>
    ),
  },
});

const html = await renderToHtml(spec, { registry });

サーバーサイド レンダー API

関数用途
renderToHtml(spec, options?)スペックを HTML メール文字列にレンダー
renderToPlainText(spec, options?)スペックをプレーンテキストメール文字列にレンダー

RenderOptions: registryincludeStandard(デフォルト true)、state$state / $cond 用)。

表示と状態

visible 条件、$state$cond、リピート(repeat.statePath)、および @json-render/react と同じ式構文をサポートしています。サーバーサイドでレンダーするときは、式が解決されるように RenderOptionsstate を使用してください。

サーバーセーフインポート

React や @react-email/components なしでスキーマとカタログをインポート:

import { schema, standardComponentDefinitions } from "@json-render/react-email/server";

主要なエクスポート

エクスポート用途
defineRegistryカタログからタイプセーフなコンポーネントレジストリを作成
Rendererブラウザでスペックをレンダー(例:プレビュー);JSONUIProvider で状態/アクションを使用
createRenderer状態/アクション/検証を備えたスタンドアロンレンダラーコンポーネント
renderToHtmlサーバー:スペックから HTML 文字列へ
renderToPlainTextサーバー:スペックからプレーンテキスト文字列へ
schemaメールエレメントスキーマ
standardComponents事前構築されたコンポーネント実装
standardComponentDefinitionsカタログ定義(Zod props)

サブパスエクスポート

パス用途
@json-render/react-emailフルパッケージ
@json-render/react-email/serverスキーマとカタログのみ(React なし)
@json-render/react-email/catalog標準コンポーネント定義と型
@json-render/react-email/renderレンダー関数のみ

標準コンポーネント

すべてのコンポーネントは style プロップ(オブジェクト)を使用インラインスタイルをサポートしています。メールクライアント互換性のためインラインスタイルを使用し、外部 CSS を避けてください。

ドキュメント構造

コンポーネント説明
Htmlルートラッパー(lang、dir)。子要素:Head、Body。
Headメールヘッドセクション。
Bodyボディラッパー;背景を style で設定。

レイアウト

コンポーネント説明
Container幅を制限(例:max-width 600px)。
Sectionコンテンツをグループ化;互換性のためテーブルベース。
Row水平行。
ColumnRow 内の列;幅は style で設定。

コンテンツ

コンポーネント説明
Heading見出しテキスト(as: h1–h6)。
Text本文テキスト。
Linkハイパーリンク(text、href)。
ButtonCTA リンク(ボタンスタイル)(text、href)。
ImageURL からの画像(src、alt、width、height)。
Hr水平線。

ユーティリティ

コンポーネント説明
Previewインボックスプレビューテキスト(Html 内)。
MarkdownMarkdown コンテンツをメール対応 HTML として。

メール ベストプラクティス

  • 幅を制限したまま保つ(例:Container max-width 600px)。
  • インラインスタイルまたは React Email のスタイルプロップを使用;多くのクライアントが <style> ブロックを削除します。
  • 幅広いクライアント対応のためテーブルベースレイアウト(Section、Row、Column)を優先。
  • 画像には絶対 URL を使用;多くのクライアントが特定の状況で相対 URL または cid: 参照をブロックします。
  • 複数のクライアント(Gmail、Outlook、Apple Mail)でテスト;可能であればプレビューツールまたは Litmus のようなサービスを使用してください。

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
vercel-labs
リポジトリ
vercel-labs/json-render
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/vercel-labs/json-render / ライセンス: Apache-2.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: vercel-labs · vercel-labs/json-render · ライセンス: Apache-2.0