Evergrn Email Branding
Assets
- Logo URL:
https://evergrnuploads.blob.core.windows.net/logos/evergrn-logo.png
- Logo display: 40px height, white background header bar
- Sender:
ACS_SENDER env var โ currently Azure-managed domain, swap to noreply@evergrn.co once custom domain verified in ACS
Colors
| Token |
Hex |
Usage |
GREEN |
#14532d |
Header background, headings, CTA button, links |
GREEN_LIGHT |
#f0fdf4 |
Info box background |
GREEN_BORDER |
#bbf7d0 |
Info box border |
TEXT |
#1f2937 |
Body text, strong emphasis |
MUTED |
#6b7280 |
Secondary body text |
AMBER |
#fbbf24 / #78350f |
Review CTA button only |
Typography
- Font stack:
-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif
- Body: 14px,
MUTED color, 1.6 line-height
- Headings (h2):
GREEN, no top margin
- Footer: 12px muted, 11px copyright
Layout
- Max width: 560px, centered,
#f9fafb page background
- Header:
GREEN bar with logo image (40px tall)
- Body card: white, 28px padding,
#e5e7eb border, rounded bottom corners
- Footer: light border-top, support email + copyright
- Info boxes:
GREEN_LIGHT bg, GREEN_BORDER border, 8px radius, 16px padding
- CTA buttons:
GREEN bg, white text, 700 weight, 8px radius, 12ร24px padding
Templates (src/config/email.js)
| Function |
Trigger |
Recipients |
quoteReceivedEmail |
Provider submits quote |
Customer |
quoteAcceptedEmail |
Customer accepts quote |
Provider |
jobCompletedEmail |
Job marked complete |
Customer |
jobRequestedEmail |
Job created |
Customer |
sendPasswordReset (mailer.js) |
Password reset request |
User/Provider |
Shared Helpers
emailWrap(bodyHtml) // wraps content in header + footer shell
ctaButton(text, url) // green CTA button
infoBox(linesArray) // green info card with bullet lines
Switching to Custom Domain
- Verify
evergrn.co in ACS Email portal (DNS TXT + CNAME records)
- Update
.env: ACS_SENDER="noreply@evergrn.co"
- Restart API โ no code changes needed