diff --git a/apps/api/.env.example b/apps/api/.env.example index 65511da..5d4cfc3 100644 --- a/apps/api/.env.example +++ b/apps/api/.env.example @@ -52,7 +52,7 @@ S3_FORCE_PATH_STYLE=true # Mail (Resend par défaut, Mailpit en fallback dev via MAIL_DRIVER=smtp) #-------------------------------------------------------------------- MAIL_FROM_ADDRESS=rubis@arthurbarre.fr -MAIL_FROM_NAME=Rubis Sur l'Ongle +MAIL_FROM_NAME=Rubis sur l'ongle MAIL_DRIVER=resend RESEND_API_KEY= # Fallback Mailpit (si MAIL_DRIVER=smtp) @@ -70,6 +70,12 @@ MISTRAL_API_KEY= #-------------------------------------------------------------------- WEB_URL=http://localhost:5173 +#-------------------------------------------------------------------- +# Landing publique — lien dans le footer des emails ("Rubis sur l'ongle" +# pointe vers ce domaine). +#-------------------------------------------------------------------- +LANDING_URL=https://rubis.arthurbarre.fr + #-------------------------------------------------------------------- # Auth (refresh tokens) #-------------------------------------------------------------------- diff --git a/apps/api/app/mails/_brand.ts b/apps/api/app/mails/_brand.ts new file mode 100644 index 0000000..8f9c9fd --- /dev/null +++ b/apps/api/app/mails/_brand.ts @@ -0,0 +1,40 @@ +/** + * Tokens de marque partagés par tous les templates email. + * + * On reste sur des hex en dur (pas de CSS vars) parce que les clients mail + * (Gmail, Outlook) ne supportent pas les `--var` dans les `style="..."`. + * Tous les styles sont inline pour la même raison. + */ + +export const BRAND = { + // Palette Rubis (cf. CLAUDE.md → marque) + rubis: '#9F1239', + rubisDeep: '#771328', + rubisLight: '#C9415C', + rubisGlow: '#FBE4EA', + cream: '#FAF7F2', + cream2: '#F5EFE7', + ink: '#1A1410', + ink2: '#4F4640', + ink3: '#8A7F76', + line: '#E8E0D6', + white: '#FFFFFF', + + // Typo — on s'appuie sur les fallbacks system-ui pour la portabilité mail. + fontBody: + "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif", + + // Radius cohérents avec l'app + radiusButton: '6px', + radiusCard: '14px', +} as const + +/** Wrappers d'unités inline-friendly pour pas faire de gros calculs côté