Skip to content

Commit 80f17ff

Browse files
enh: make email wide on phone
A few changes, mainly focused on making email fully wide on phone, and a few design changes.
1 parent 1d801ef commit 80f17ff

File tree

9 files changed

+121
-29
lines changed

9 files changed

+121
-29
lines changed

src/components/Imip.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ export default {
573573
&__type {
574574
display: flex;
575575
gap: 5px;
576-
margin-inline-start: 36px;
576+
margin-inline-start: 8px;
577577
}
578578
579579
&__more-options {
@@ -606,7 +606,7 @@ export default {
606606
607607
&__actions {
608608
margin-top: 15px;
609-
margin-inline-start: 36px;
609+
margin-inline-start: 8px;
610610
611611
&--buttons {
612612
display: flex;

src/components/Message.vue

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,13 @@ export default {
180180
181181
.message-imip {
182182
padding: 5px 10px;
183+
margin-left: calc(var(--default-grid-baseline) * 11);
184+
}
185+
186+
@media (max-width: 600px) {
187+
.message-imip {
188+
margin-left: 0;
189+
}
183190
}
184191
185192
.invalid-signature-warning {
@@ -201,7 +208,7 @@ export default {
201208
}
202209
203210
.reply-buttons {
204-
margin: 0 calc(var(--default-grid-baseline) * 4) calc(var(--default-grid-baseline) * 2) calc(var(--default-grid-baseline) * 14);
211+
margin: 5px calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 3) calc(var(--default-grid-baseline) * 14);
205212
display: flex;
206213
flex-wrap: wrap;
207214
gap: 8px;
@@ -225,9 +232,14 @@ export default {
225232
&__notsuggested {
226233
margin-inline-start: auto;
227234
}
235+
236+
@media (max-width: var(--breakpoint-mobile)) {
237+
margin-left: calc(var(--default-grid-baseline) * 3);
238+
margin-right: calc(var(--default-grid-baseline) * 3);
239+
}
228240
}
229241
230-
@media screen and (max-width: 600px) {
242+
@media screen and (max-width: var(--breakpoint-mobile)) {
231243
.reply-buttons {
232244
display: flex;
233245
flex-wrap: wrap;

src/components/MessageAttachments.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,12 +287,17 @@ export default {
287287
.mail-message-attachments {
288288
display:flex;
289289
flex-wrap: wrap;
290-
padding: 10px 6px 10px 46px;
290+
padding: 10px 12px 10px 46px;
291291
margin-top: 4px;
292292
margin-bottom: 0;
293-
position:sticky;
294-
bottom:0;
293+
position: sticky;
294+
bottom: -2px;
295295
background: linear-gradient(0deg, var(--color-main-background), var(--color-main-background) 90%, rgba(255, 255, 255, 0));
296+
297+
298+
@media (max-width: var(--breakpoint-mobile)) {
299+
padding: 10px 12px 10px 12px;
300+
}
296301
}
297302
298303
.mail-message-attachments--wrapper {

src/components/MessageHTMLBody.vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,21 +190,30 @@ export default {
190190
</script>
191191
192192
<style lang="scss" scoped>
193-
// account for 8px margin on iframe body
193+
// account for 12px (was 8) margin on iframe body
194+
// should be 12px so it maches the rest of the content
194195
.html-message-body {
195-
margin : 2px calc(var(--default-grid-baseline) * 2) 0 calc(var(--default-grid-baseline) * 14);
196+
margin : 2px calc(var(--default-grid-baseline) * 3) 0 calc(var(--default-grid-baseline) * 14);
196197
background-color: #FFFFFF;
198+
border-radius: var(--border-radius-element);
199+
200+
@media (max-width: 600px) {
201+
margin-left: calc(var(--default-grid-baseline) * 3);
202+
margin-right: calc(var(--default-grid-baseline) * 3);
203+
}
197204
}
198205
199206
#mail-message-has-blocked-content {
200207
margin-inline-start: 10px;
201208
color: var(--color-text-maxcontrast) !important;
209+
padding-top: 5px;
202210
}
203211
204212
#message-container {
205213
flex: 1;
206214
display: flex;
207215
background-color: #FFFFFF;
216+
border-radius: var(--border-radius-element);
208217
209218
// TODO: collapse quoted text and remove inner scrollbar
210219
@media only screen {
@@ -223,6 +232,7 @@ export default {
223232
224233
.message-frame {
225234
width: 100%;
235+
border-radius: var(--border-radius-element);
226236
}
227237
228238
:deep(.button-vue__icon) {

src/components/MessageLoadingSkeleton.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,11 @@ export default {
9999
}
100100
}
101101
102+
@media only screen and (max-width: 1024px) {
103+
.message-loading-skeleton__body {
104+
margin-inline-start: 12px;
105+
}
106+
}
107+
108+
102109
</style>

src/components/PhishingWarning.vue

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,16 @@ export default {
6969

7070
<style lang="scss" scoped>
7171
.phishing-warning {
72-
background-color:rgba(var(--color-warning-rgb), 0.2);
73-
border-radius: var(--border-radius);
74-
text-align: start;
75-
padding: 8px;
76-
margin: calc(var(--default-grid-baseline) * 2);
72+
background-color: rgba(var(--color-warning-rgb), 0.2);
73+
border-radius: var(--border-radius-element);
74+
text-align: start;
75+
padding: 8px;
76+
margin: calc(var(--default-grid-baseline) * 2);
7777
// To match the html message margin
78-
margin-inline-start: 50px;
78+
margin-inline-start: calc(var(--default-grid-baseline) * 14);
7979
&__title {
8080
display: flex;
81+
gap: 2px;
8182
}
8283
&__list {
8384
list-style-position: inside;
@@ -86,11 +87,15 @@ export default {
8687
word-wrap: break-word;
8788
}
8889
}
89-
&__links {
90-
margin-top: 10px;
90+
&__links {
91+
margin-top: 10px;
9192
&__button{
9293
margin-bottom: 10px;
9394
}
9495
}
96+
97+
@media (max-width: 1024px) {
98+
margin-inline-start: calc(var(--default-grid-baseline) * 3);
99+
}
95100
}
96101
</style>

src/components/Thread.vue

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,6 @@ export default {
581581
582582
<style lang="scss">
583583
#mail-message {
584-
margin-bottom: 30vh;
585584
width: 100%;
586585
max-width: 100%;
587586
@@ -594,8 +593,9 @@ export default {
594593
595594
.mail-message-body {
596595
flex: 1;
597-
margin-bottom: calc(var(--default-grid-baseline) * 2);
596+
margin-bottom: 0;
598597
position: relative;
598+
border-radius: 5px;
599599
}
600600
601601
#mail-thread-header {
@@ -631,6 +631,13 @@ export default {
631631
}
632632
}
633633
634+
@media only screen and (max-width: 1024px) {
635+
#mail-thread-header {
636+
position: sticky !important;
637+
top: 29px !important;
638+
}
639+
}
640+
634641
#mail-thread-header-fields {
635642
// initial width
636643
width: 0;
@@ -639,6 +646,8 @@ export default {
639646
padding-inline-start: 66px;
640647
// grow and try to fill 100%
641648
flex: 1 1 auto;
649+
background: var(--color-main-background);
650+
margin-right: 5px;
642651
h2,
643652
p {
644653
padding-bottom: calc(var(--default-grid-baseline) * 2);
@@ -659,9 +668,16 @@ export default {
659668
}
660669
}
661670
}
671+
672+
@media only screen and (max-width: 1024px) {
673+
#mail-thread-header-fields {
674+
padding-inline-start: 48px;
675+
}
676+
}
677+
662678
@media only screen and (max-width: 1024px) {
663679
#mail-thread-header-fields {
664-
margin-top: -20px;
680+
margin-top: -32px;
665681
}
666682
}
667683
@@ -679,6 +695,12 @@ export default {
679695
margin: calc(var(--default-grid-baseline) * 2) calc(var(--default-grid-baseline) * 10) 0 calc(var(--default-grid-baseline) * 14);
680696
}
681697
698+
@media only screen and (max-width: var(--breakpoint-mobile)) {
699+
#mail-content {
700+
margin: calc(var(--default-grid-baseline) * 2) calc(var(--default-grid-baseline) * 3) 0 calc(var(--default-grid-baseline) * 3);
701+
}
702+
}
703+
682704
#mail-content iframe {
683705
width: 100%;
684706
}
@@ -723,9 +745,10 @@ export default {
723745
}
724746
725747
.avatar-more {
726-
display: inline;
748+
display: flex;
727749
background-color: var(--color-background-dark);
728750
border-radius: var(--border-radius-large);
751+
align-items: center;
729752
cursor: pointer;
730753
}
731754

src/components/ThreadEnvelope.vue

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,11 @@ export default {
490490
const { envelope } = this.$refs
491491
const envelopeWidth = (envelope && envelope.clientWidth) || 250
492492
const spaceToFill = envelopeWidth - 500 + this.recomputeMenuSize
493+
494+
if (envelopeWidth < 400) {
495+
return 0
496+
}
497+
493498
return Math.floor(spaceToFill / 44)
494499
},
495500
@@ -1295,6 +1300,38 @@ export default {
12951300
font-weight: bold;
12961301
}
12971302
1303+
.envelope__header {
1304+
display: flex;
1305+
align-items: center;
1306+
1307+
.left {
1308+
display: flex;
1309+
align-items: center;
1310+
min-width: 0;
1311+
flex: 1 1 auto;
1312+
gap: 8px;
1313+
}
1314+
1315+
.envelope__header__left__sender-subject-tags {
1316+
min-width: 0;
1317+
overflow: hidden;
1318+
text-overflow: ellipsis;
1319+
white-space: nowrap;
1320+
}
1321+
1322+
.envelope__header__left__unsubscribe {
1323+
flex-shrink: 0;
1324+
}
1325+
1326+
.right {
1327+
flex-shrink: 0;
1328+
margin-left: auto;
1329+
display: flex;
1330+
align-items: center;
1331+
gap: 4px;
1332+
}
1333+
}
1334+
12981335
.tag-group__label {
12991336
margin: 0 calc(var(--default-grid-baseline) * 2);
13001337
z-index: 2;
@@ -1339,11 +1376,4 @@ export default {
13391376
display: inline;
13401377
align-items: center;
13411378
}
1342-
@media only screen and (max-width: 400px) {
1343-
.sender {
1344-
text-overflow: ellipsis;
1345-
overflow: hidden;
1346-
width: 180px;
1347-
}
1348-
}
13491379
</style>

src/components/imip/EventData.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ export default {
191191
gap: 5px;
192192
193193
&__heading {
194-
margin-inline-start: 36px;
194+
margin-inline-start: 8px;
195195
}
196196
197197
&__row {

0 commit comments

Comments
 (0)