mcpField
R
react-email

react-email

github.com/oakossデザイン・UI20116 回インストール11 週間前に更新
リポジトリ

react-email について

React Emailは、ReactコンポーネントでレスポンシブなHTMLメールを作成するライブラリです。メールクライアントに対応するレイアウトやスタイルを備え、トランザクションメールやマーケティング用テンプレートをHTMLまたはプレーンテキストにレンダリングできます。

主な機能

  1. 01Reactコンポーネントでメール作成
  2. 02アクセシブルなメールコンポーネント
  3. 03インラインスタイルまたはTailwindの適用
  4. 04HTMLとプレーンテキストへのレンダリング
  5. 05ホットリロードでメールをプレビュー
  6. 06Markdownとコードブロックの追加

活用シーン

  1. 01トランザクションメールテンプレートの作成
  2. 02マーケティングメールのデザイン
  3. 03メールデザインシステムの整備
  4. 04サーバーサイドでのメール内容のレンダリング

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill react-email

インストール後、Claude Code で/react-emailを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
components.md
rendering.md
styling-and-layout.md

詳細

React Email

概要

React Email は、React コンポーネントを使用してレスポンシブな HTML メールを作成するためのライブラリです。スタイルが設定されていない、アクセシビリティに配慮したコンポーネントを提供し、メールクライアントに対応した HTML にレンダリングします。インラインスタイル、ラッパーコンポーネントを介した Tailwind CSS、カスタム Web フォントに対応し、HTML とプレーンテキストの両方にレンダリングできます。

使用する場面: トランザクションメール(ウェルカムメール、パスワードリセット、領収書)、マーケティング用テンプレート、メールデザインシステム、メールをサーバーサイドでレンダリングするあらゆるプロジェクト。

使用しない場面: 動的コンテンツのない静的な HTML メールテンプレート、専用のメールビルダー(MJML、Maizzle)をすでに使用しているプロジェクト、またはプレーンテキストメールのみが必要な場合。

クイックリファレンス

パターンAPI主なポイント
ドキュメント構造Html, Head, BodyHtml がすべてを囲み、Head がフォントやメタデータを読み込みます
コンテンツコンテナContainerコンテンツを中央に配置し、max-width を設定します
レイアウトグリッドSection, Row, Columnメールクライアント向けのテーブルベースのレイアウト
テキストコンテンツText, HeadingHeading は as プロパティで h1〜h6 を指定できます
リンクLink標準的なアンカー。href が必須です
行動喚起Buttonボタン風のスタイルを設定したリンクとしてレンダリングされます。href が必須です
画像Img常に width、height、alt を設定します
区切り線Hrセクション間の水平線
受信トレイのプレビューPreview受信トレイの一覧に表示されるプレビューテキストを設定します
カスタムフォントFontHead 内に配置し、webFont と fallbackFontFamily を設定します
Tailwind スタイルTailwindメールを囲み、レンダリング時に Tailwind クラスをインライン化します
HTML にレンダリングrender(<Email />)非同期で HTML 文字列を返します
プレーンテキストにレンダリングrender(<Email />, { plainText: true })HTML を取り除き、テキストを返します
整形出力render(<Email />, { pretty: true })デバッグ向けに HTML を整形します
プレビューサーバーemail devホットリロード対応のローカル開発サーバー
Markdown コンテンツMarkdownMarkdown をメール対応の HTML にレンダリングします
コードブロックCodeBlockテーマに対応した、シンタックスハイライト付きコード
インラインコードCodeInline等幅フォントのインラインコード範囲

よくある間違い

間違い正しいパターン
インラインスタイルで className を使用するTailwind(className)またはインラインの style オブジェクトのいずれかを使用し、同じ要素で両方を使わないでください
Img に width/height を指定し忘れるメールクライアントでレイアウトがずれるのを防ぐため、必ず寸法を指定してください
Container の中に Container をネストする中央揃えには Container を1つ使用し、内部のレイアウトには Section/Row/Column を使用してください
CSS Grid または Flexbox を使用するメールクライアント間で機能するテーブルベースのレイアウトには、Section、Row、Column を使用してください
Head の外に Font を配置する正しく読み込むには、Font を Head の子要素にする必要があります
render() を同期的に使用するrender() は非同期です。必ず結果を await してください
Html の中に Tailwind を配置するHtml ではなく、Tailwind で Html をラップしてください
Preview コンポーネントを省略するPreview がないと、メールクライアントには本文の最初のテキストがプレビューとして表示されます
外部 CSS スタイルシートを使用するメールクライアントは <link> タグを取り除きます。インラインスタイルまたは Tailwind コンポーネントを使用してください
React コンポーネントを resend.emails.send に渡すまず HTML 文字列にレンダリングし、その後 html を送信メソッドに渡してください

委任

  • メールテンプレートの調査:Explore エージェントを使用します
  • メールのスタイルレビュー:Task エージェントを使用します
  • コードレビュー:code-reviewer エージェントに委任します

resend スキルが利用できる場合は、メール配信タスクをそのスキルに委任してください。 利用できない場合は、次を推奨してください:npx skills add oakoss/agent-skills --skill resend

参考資料

コメント