confirmation_email.html.twig and reset_password/email.html.twig were plain unstyled HTML with no shared structure. Extract a table-based layout (templates/emails/layout.html.twig) with header/logo, content block, and footer, so future transactional emails can extend it instead of starting from scratch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
34 lines
1.6 KiB
Twig
34 lines
1.6 KiB
Twig
<!DOCTYPE html>
|
|
<html lang="{{ app.request ? app.request.locale : 'en' }}">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}{{ 'site.name'|trans }}{% endblock %}</title>
|
|
</head>
|
|
<body style="margin:0; padding:0; background-color:#f2f4f6; font-family:Arial, Helvetica, sans-serif;">
|
|
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background-color:#f2f4f6; padding:24px 0;">
|
|
<tr>
|
|
<td align="center">
|
|
<table role="presentation" width="600" cellpadding="0" cellspacing="0" style="max-width:600px; width:100%; background-color:#ffffff; border-radius:8px; overflow:hidden;">
|
|
<tr>
|
|
<td align="center" style="background-color:#3a7ca5; padding:24px;">
|
|
<img src="{{ absolute_url(asset('images/logo.png')) }}" alt="{{ 'site.name'|trans }}" height="40" style="display:block; border:0;">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="padding:32px; color:#333333; font-size:15px; line-height:1.6;">
|
|
{% block content %}{% endblock %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="padding:16px 32px; background-color:#f2f4f6; color:#8a8f98; font-size:12px; text-align:center;">
|
|
© {{ "now"|date("Y") }} {{ 'site.name'|trans }}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|