{{- /* The Vantage email shell. Every colour in the email system lives in this file and nowhere else, in the same way no component in web/, site/ or adminsite/ carries a hex. The values are web/app/globals.css's tokens - an email is read before the recipient clicks through to the control plane, so the two should not look like different products. They are written as literal hex here because email clients support neither var() nor a reliable prefers-color-scheme, so the usual token indirection is not available: when you change a token in the three globals.css files, change it here too. --ground #071628 --rule #1e3855 --panel #0d2138 --accent #5b9be8 --panel-2 #102842 --up #4fb484 --ink #e4ecf6 --down #e2705a --ink-2 #9fb3ca --pend #d6a63f --ink-3 #71879f --well #04101f Derived here only, never in a front end: each tone has a tint (15% over --panel) for washes and a border (35% over --panel) for outlines. up #173743 / #245452 pend #2b3539 / #534f3a down #2d2d3d / #573d44 accent #193352 / #284b75 Layout is tables and inline styles throughout, which is not a stylistic choice - it is the only thing Outlook renders predictably. A message file overrides "title", "pill", "body", "category", "preheader" and "why"; its txt file defines "subject" and "tone". The defaults below exist so that a message needing no pill does not have to define one. Colour choices that depend on a tone go through pick, which takes the tone and one value per tone (up, down, pend, accent, anything else), so the hex stays in this file while the branching stays out of it. */ -}} {{- define "title"}}{{end -}} {{- define "pill"}}{{end -}} {{- define "body"}}{{end -}} {{- define "category"}}Account{{end -}} {{- define "preheader"}}{{end -}} {{- define "why"}}it relates to your Vantage account.{{end -}} {{- /* p renders one paragraph of body copy. */ -}} {{- define "p" -}}
{{.}}
{{- end -}} {{- /* lead is the first paragraph: larger, brighter, sets the subject. */ -}} {{- define "lead" -}}{{.}}
{{- end -}} {{- /* small is fine print under a section. */ -}} {{- define "small" -}}{{.}}
{{- end -}} {{- /* label is an eyebrow over the section that follows it. */ -}} {{- define "label" -}}{{.}}
{{- end -}} {{- define "divider" -}}| {{.label}} → |
Button not working? Paste this into your browser:
{{.url}}
{{.}}
{{- end -}}
{{- /* note is a quoted callout, used for a free-text message we did not
write ourselves. Line breaks are kept: it is somebody's own words. */ -}}
{{- define "note" -}}
{{.}}
{{- end -}} {{- /* rows takes a list of dict "k" "…" "v" "…", and renders them as one panel of facts. */ -}} {{- define "rows" -}}| {{$r.k}} | {{$r.v}} |
|
{{.title}} {{.text}} |
|
{{$s.t}} {{$s.d}} |
| {{end}} |
{{$s.big}} {{$s.label}} |
{{- end}}
| {{end}} |
{{$s.label}} {{$s.date}} |
{{- end}}
|
{{template "chip" (dict "label" $r.Severity "tone" (sevTone $r.Severity))}} {{with advisoryURL $r.CVEID}}{{$r.CVEID}}{{else}}{{$r.CVEID}}{{end}} {{$r.PackageName}} on {{$r.ServerName}} |
{{- if $r.FixedIn}}Fixed in {{$r.FixedIn}}{{else}}No fix yet{{end -}} |
|