First cut at Vector-branded mail templates

This commit is contained in:
Matthew Hodgson 2016-05-05 01:58:58 +01:00
parent ce81ccb063
commit 3c39fa8902
7 changed files with 229 additions and 0 deletions

View file

@ -0,0 +1,112 @@
body {
margin: 0px;
}
#page {
font-family: 'Open Sans', Helvetica, Arial, Sans-Serif;
font-size: 12pt;
margin: auto;
max-width: 640px;
padding: 20px;
}
.header {
height: 87px;
border-bottom: 4px solid #e4f7ed;
}
.logo {
float: right;
margin-left: 20px;
}
.salutation {
padding-top: 10px;
font-weight: bold;
}
.summarytext {
}
.room_header {
padding-top: 38px;
padding-bottom: 10px;
border-bottom: 1px solid #e5e5e5;
}
.room_header h2 {
margin-top: 0px;
margin-left: 75px;
font-size: 20px;
}
.room_avatar {
float: left;
margin-top: -8px;
}
.room_avatar img {
width: 48px;
height: 48px;
object-fit: cover;
border-radius: 24px;
margin-left: 7px;
}
.room_content {
clear: left;
}
.notif {
border-bottom: 1px solid #e5e5e5;
margin-top: 16px;
padding-bottom: 16px;
}
.historical {
opacity: 0.3;
}
.message {
position: relative;
margin-bottom: 10px;
}
.sender_avatar {
width: 32px;
height: 32px;
border-radius: 16px;
position: absolute;
margin-left: 14px;
margin-top: -2px;
}
.sender_name {
margin-left: 75px;
display: inline;
font-weight: bold;
}
.message_time {
float: right;
}
.message_body {
margin-left: 75px;
}
.notif_link {
margin-left: 75px;
font-weight: bold;
}
.notif_link a, .footer a {
color: #76CFA6;
text-decoration: none;
}
.footer {
margin-top: 20px;
text-align: center;
}

View file

@ -0,0 +1,34 @@
<div class="notif">
<div>
{% for message in notif.messages %}
<div class="message {% if message.is_historical %}historical{% endif %}">
{% if message.sender_avatar_url %}
<img alt="" class="sender_avatar" src="{{ message.sender_avatar_url|mxc_to_http(32,32) }}" />
{% else %}
{% if message.sender_hash % 3 == 0 %}
<img class="sender_avatar" src="https://vector.im/beta/img/76cfa6.png" />
{% elif message.sender_hash % 3 == 1 %}
<img class="sender_avatar" src="https://vector.im/beta/img/50e2c2.png" />
{% else %}
<img class="sender_avatar" src="https://vector.im/beta/img/f4c371.png" />
{% endif %}
<img class="sender_avatar" src="{{ message.sender_avatar_url }}" />
{% endif %}
<div class="sender_name">{{ message.sender_name }}</div>
<div class="message_time">{{ message.ts|format_ts("%H:%M") }}</div>
<div class="message_body">
{% if message.msgtype == "m.text" %}
{{ message.body_text_html }}
{% elif message.msgtype == "m.image" %}
<img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" />
{% elif message.msgtype == "m.file" %}
<span class="filename">{{ message.body_text_plain }}</span>
{% endif %}
</div>
</div>
{% endfor %}
</div>
<div class="notif_link">
<a href="{{ notif.link }}">View {{ room.title }}</a>
</div>
</div>

View file

@ -0,0 +1,12 @@
{% for message in notif.messages %}
{{ message.sender_name }} ({{ message.ts|format_ts("%H:%M") }})
{% if message.msgtype == "m.text" %}
{{ message.body_text_plain }}
{% elif message.msgtype == "m.image" %}
{{ message.body_text_plain }}
{% elif message.msgtype == "m.file" %}
{{ message.body_text_plain }}
{% endif %}
{% endfor %}
View at {{ notif.link }}

View file

@ -0,0 +1,25 @@
<!doctype html>
<html lang="en">
<head>
<style type="text/css">
{% include 'mail.css' without context %}
</style>
</head>
<body>
<div id="page">
<div class="header">
<img class="logo" src="http://matrix.org/img/vector-logo-email.png" width="64" height="83" alt="Vector"/>
<div class="salutation">Hi {{ user_display_name }},</div>
<div class="summarytext">{{ summary_text|replace("%app%", "Vector") }}</div>
</div>
<div class="content">
{% for room in rooms %}
{% include 'room.html' with context %}
{% endfor %}
</div>
<div class="footer">
<a href="{{ unsubscribe_link }}">Unsubscribe</a>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,10 @@
Hi {{ user_display_name }},
{{ summary_text }}
{% for room in rooms %}
{% include 'room.txt' with context %}
{% endfor %}
You can disable these notifications at {{ unsubscribe_link }}

View file

@ -0,0 +1,27 @@
<div class="room">
<div class="room_header">
<div class="room_avatar">
{% if room.avatar_url %}
<img alt="" src="{{ room.avatar_url|mxc_to_http(48,48) }}" />
{% else %}
{% if room.hash % 3 == 0 %}
<img alt="" src="https://vector.im/beta/img/76cfa6.png" />
{% elif room.hash % 3 == 1 %}
<img alt="" src="https://vector.im/beta/img/50e2c2.png" />
{% else %}
<img alt="" src="https://vector.im/beta/img/f4c371.png" />
{% endif %}
{% endif %}
</div>
<h2>{{ room.title }}</h2>
</div>
<div class="room_content">
{% if room.invite %}
<a href="{{ room.link }}">Join the conversation.</a>
{% else %}
{% for notif in room.notifs %}
{% include 'notif.html' with context %}
{% endfor %}
{% endif %}
</div>
</div>

View file

@ -0,0 +1,9 @@
{{ room.title }}
{% if room.invite %}
You've been invited, join at {{ room.link }}
{% else %}
{% for notif in room.notifs %}
{% include 'notif.txt' with context %}
{% endfor %}
{% endif %}