Files
Mike Dalessio 8c5b47d774 Group notification emails by board (#2506)
* Group notification emails by board

Notification bundle emails now group items by board instead of
showing the board name redundantly for each card. Each board
section has a linked header and an <hr> separator.

* Adjust board title styles and remove rem units

* Sort board groups alphabetically

Sort notification email board sections alphabetically by name
(case-insensitive).

Also, rewrite mailer tests to use Nokogiri::HTML5 for precise DOM
assertions instead of regex matching.

---------

Co-authored-by: Andy Smith <andy@37signals.com>
2026-02-09 11:29:11 -05:00

159 lines
2.9 KiB
Plaintext

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
html {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
color: #17233C;
font-family: system-ui, sans-serif;
font-size: 16px;
line-height: 1.3;
margin: 0;
padding: 16px;
}
img {
border: 0 none;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
}
a {
color: #2d71e5;
}
a img {
border: 0 none;
}
table, td {
border-collapse: collapse;
}
#body {
height: 100% !important;
margin: 0;
padding: 0;
width: 100% !important;
}
.avatar__container {
vertical-align: top;
width: 3em;
}
.avatar {
aspect-ratio: 1;
border-radius: 2.5em;
color: white;
display: block;
font-weight: 600;
height: 2.5em;
line-height: 2.5em;
mso-line-height-rule: exactly;
object-fit: cover;
overflow: hidden;
text-align: center;
width: 2.5em;
}
.card__title {
font-size: 1.1em;
font-weight: 900;
margin-bottom: 0;
margin-top: 0;
}
.footer {
border-top: 1px solid #ccc;
margin-top: 32px;
padding-top: 1em;
}
.notification {
margin-top: 16px;
margin-bottom: 16px;
}
.notification__author {
font-size: 0.8em;
opacity: 0.66;
margin: 0;
}
.notification__board {
font-size: 1.4em;
font-weight: 900;
margin-bottom: 16px;
margin-top: 0;
}
.notification__board a {
color: #17233C;
text-decoration: none;
}
.notification__board a:hover {
text-decoration: underline;
}
.notification__board-separator {
border: none;
border-top: 1px solid #ddd;
margin: 2em 0 1em;
}
.notification__details {
margin-bottom: 0;
margin-top: 0;
}
.notificaton__mention {
background-color: #f8e3ab;
border-radius: 0.7em 0.2em 0.7em 0.2em;
color: inherit;
display: inline-flex;
padding: 0.1em 0.3em;
}
.margin-block-end-double {
margin-bottom: 2em;
}
.margin-block-start-double {
margin-top: 2em;
}
.subtitle {
font-size: 1.2em;
font-weight: normal;
margin-bottom: 1em;
margin-top: 0.1em;
}
.title {
font-size: 1.4em;
font-weight: 900;
margin-bottom: 0;
}
.txt-large {
font-size: 1.2em;
}
</style>
</head>
<body>
<table id="body">
<%= yield %>
</table>
</body>
</html>