Jun 28 - Update and polish UI/UX

This commit is contained in:
2026-06-28 19:00:34 -04:00
parent 54fa5b8c87
commit a42fc31fc5
14 changed files with 943 additions and 91 deletions
+40
View File
@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{{ subject }}</title>
</head>
<body style="margin:0;padding:0;background:#f6f7f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;">
<table width="100%" cellpadding="0" cellspacing="0" style="background:#f6f7f9;padding:40px 0;">
<tr><td align="center">
<table width="560" cellpadding="0" cellspacing="0" style="background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow:hidden;max-width:100%;">
<!-- Header -->
<tr>
<td style="background:#1a56db;padding:24px 32px;">
<span style="color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;">
&#10003;&nbsp;Janitorial QC
</span>
</td>
</tr>
<!-- Body -->
<tr>
<td style="padding:32px;">
{% block body %}{% endblock %}
</td>
</tr>
<!-- Footer -->
<tr>
<td style="background:#f6f7f9;padding:20px 32px;border-top:1px solid #e5e7eb;">
<p style="margin:0;font-size:.8rem;color:#9ca3af;line-height:1.5;">
You received this email because you are the billing contact for your
JQC workspace. If you have questions, reply to this email or contact
<a href="mailto:support@jqc.app" style="color:#1a56db;text-decoration:none;">support@jqc.app</a>.
</p>
</td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>
@@ -0,0 +1,39 @@
{% extends "billing/email/base.html" %}
{% set subject = "Action Required: Payment failed for your JQC subscription" %}
{% block body %}
<h2 style="margin:0 0 8px;font-size:1.2rem;color:#111827;">Payment failed</h2>
<p style="margin:0 0 20px;color:#6b7280;font-size:.9rem;">We were unable to process your most recent payment.</p>
<table width="100%" cellpadding="12" cellspacing="0" style="background:#fef3c7;border-radius:6px;margin-bottom:24px;">
<tr>
<td>
<p style="margin:0;font-size:.9rem;color:#92400e;line-height:1.5;">
<strong>&#9888; Your subscription may be suspended</strong> if the payment is not resolved.
Please update your payment method as soon as possible.
</p>
</td>
</tr>
</table>
<p style="margin:0 0 24px;font-size:.9rem;color:#374151;line-height:1.6;">
This can happen when a card expires, has insufficient funds, or is declined by
your bank. Updating your payment method takes less than a minute.
</p>
<table width="100%" cellpadding="0" cellspacing="0" style="margin-bottom:24px;">
<tr>
<td align="center">
<a href="{{ portal_url }}"
style="display:inline-block;background:#1a56db;color:#fff;text-decoration:none;
padding:12px 28px;border-radius:6px;font-size:.95rem;font-weight:600;">
Update Payment Method
</a>
</td>
</tr>
</table>
<p style="margin:0;font-size:.85rem;color:#9ca3af;">
Or copy this link into your browser:<br>
<a href="{{ portal_url }}" style="color:#1a56db;word-break:break-all;">{{ portal_url }}</a>
</p>
{% endblock %}
@@ -0,0 +1,39 @@
{% extends "billing/email/base.html" %}
{% set subject = "Your JQC subscription has been cancelled" %}
{% block body %}
<h2 style="margin:0 0 8px;font-size:1.2rem;color:#111827;">Subscription cancelled</h2>
<p style="margin:0 0 20px;color:#6b7280;font-size:.9rem;">Your JQC subscription has ended and your workspace has been suspended.</p>
<table width="100%" cellpadding="12" cellspacing="0" style="background:#fef2f2;border-radius:6px;margin-bottom:24px;">
<tr>
<td>
<p style="margin:0;font-size:.9rem;color:#991b1b;line-height:1.5;">
<strong>&#10007; Workspace access suspended</strong><br>
Your data is safe and will be retained for 30 days. Reactivate at any time to restore access immediately.
</p>
</td>
</tr>
</table>
<p style="margin:0 0 24px;font-size:.9rem;color:#374151;line-height:1.6;">
If this was a mistake or you'd like to reactivate your subscription,
click the button below to manage your billing.
</p>
<table width="100%" cellpadding="0" cellspacing="0" style="margin-bottom:24px;">
<tr>
<td align="center">
<a href="{{ portal_url }}"
style="display:inline-block;background:#1a56db;color:#fff;text-decoration:none;
padding:12px 28px;border-radius:6px;font-size:.95rem;font-weight:600;">
Reactivate Subscription
</a>
</td>
</tr>
</table>
<p style="margin:0;font-size:.85rem;color:#9ca3af;">
Or copy this link into your browser:<br>
<a href="{{ portal_url }}" style="color:#1a56db;word-break:break-all;">{{ portal_url }}</a>
</p>
{% endblock %}
@@ -0,0 +1,40 @@
{% extends "billing/email/base.html" %}
{% set subject = "Your JQC free trial ends in 3 days" %}
{% block body %}
<h2 style="margin:0 0 8px;font-size:1.2rem;color:#111827;">Your free trial is ending soon</h2>
<p style="margin:0 0 20px;color:#6b7280;font-size:.9rem;">Subscribe before <strong>{{ trial_ends_at }}</strong> to keep your workspace active.</p>
<table width="100%" cellpadding="12" cellspacing="0" style="background:#eff6ff;border-radius:6px;margin-bottom:24px;">
<tr>
<td>
<p style="margin:0;font-size:.9rem;color:#1e40af;line-height:1.5;">
<strong>&#8987; Trial expiry: {{ trial_ends_at }}</strong><br>
After this date your workspace will be locked until you subscribe.
All your data is preserved.
</p>
</td>
</tr>
</table>
<p style="margin:0 0 24px;font-size:.9rem;color:#374151;line-height:1.6;">
Choose the plan that fits your team — you can upgrade or downgrade at any time,
and your first bill is prorated to today.
</p>
<table width="100%" cellpadding="0" cellspacing="0" style="margin-bottom:24px;">
<tr>
<td align="center">
<a href="{{ subscribe_url }}"
style="display:inline-block;background:#1a56db;color:#fff;text-decoration:none;
padding:12px 28px;border-radius:6px;font-size:.95rem;font-weight:600;">
Subscribe Now
</a>
</td>
</tr>
</table>
<p style="margin:0;font-size:.85rem;color:#9ca3af;">
Or copy this link into your browser:<br>
<a href="{{ subscribe_url }}" style="color:#1a56db;word-break:break-all;">{{ subscribe_url }}</a>
</p>
{% endblock %}