feat: packages/email — Maizzle v6 + Tailwind CSS v4 HTML email templates
- New @sexy.pivoine.art/email package with @maizzle/framework@6.0.0-15 - Uses @maizzle/tailwindcss (TW v4 preset) with @theme brand tokens derived from the frontend's app.css oklch primary color - LightningCSS automatically lowers oklch/lab to hex for email clients - Real HTML template files (templates/layouts/main.html, verification.html, password-reset.html) — not JS template strings - PostCSS `from` override so @import "@maizzle/tailwindcss" resolves from the email package's own node_modules - Backend lib/email.ts now calls renderVerification/renderPasswordReset instead of inline HTML strings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
44
packages/email/templates/password-reset.html
Normal file
44
packages/email/templates/password-reset.html
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: "Reset your password — sexy.pivoine.art"
|
||||
previewText: "You requested a password reset. Use the link below to set a new one."
|
||||
---
|
||||
|
||||
<x-main>
|
||||
|
||||
<h1 class="text-[22px] font-semibold text-zinc-900 m-0 mb-2">
|
||||
Reset your password
|
||||
</h1>
|
||||
<p class="text-zinc-500 m-0 mb-6">
|
||||
We received a request to reset the password for your account. Click the button below to choose a new one.
|
||||
</p>
|
||||
|
||||
<!-- CTA button -->
|
||||
<table role="presentation" cellpadding="0" cellspacing="0" border="0" class="mb-6">
|
||||
<tr>
|
||||
<td class="rounded-lg" style="background: #b700d9">
|
||||
<a href="{{ url }}"
|
||||
class="inline-block px-8 py-[14px] text-[14px] font-semibold text-white no-underline rounded-lg"
|
||||
style="background: #b700d9">
|
||||
Reset my password
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p class="text-[13px] text-zinc-500 m-0 mb-6">
|
||||
This link expires in <strong class="text-zinc-700">1 hour</strong>.
|
||||
If you did not request a password reset, no action is needed — your account remains secure.
|
||||
</p>
|
||||
|
||||
<hr class="border-0 border-t border-zinc-100 my-6" />
|
||||
|
||||
<p class="text-[12px] text-zinc-400 m-0">
|
||||
Button not working? Copy and paste this link into your browser:
|
||||
</p>
|
||||
<p class="text-[12px] m-0 mt-1">
|
||||
<a href="{{ url }}" class="text-brand break-all" style="color: #b700d9">
|
||||
{{ url }}
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</x-main>
|
||||
Reference in New Issue
Block a user