2014-09-23 09:41:37 -04:00
|
|
|
// Container for mail list entries
|
|
|
|
.mail-list {
|
|
|
|
$padding-horizontal: 15px;
|
2014-11-04 14:19:51 -05:00
|
|
|
$padding-vertical: 15px;
|
2014-09-23 09:41:37 -04:00
|
|
|
$footer-height: 30px;
|
|
|
|
|
|
|
|
// do not share any common styles between large and other screens
|
|
|
|
// because styling is very different
|
|
|
|
|
2014-11-29 04:07:09 -05:00
|
|
|
@include respond-to(smaller-lg) {
|
2014-09-23 09:41:37 -04:00
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
background: $color-bg;
|
|
|
|
color: $color-text;
|
|
|
|
|
|
|
|
& > header {
|
|
|
|
position: relative;
|
|
|
|
flex-shrink: 0;
|
2014-10-16 09:10:00 -04:00
|
|
|
padding: $padding-vertical $padding-horizontal;
|
2014-09-23 09:41:37 -04:00
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
.btn-navicon {
|
|
|
|
float: left;
|
|
|
|
margin-right: 1em;
|
|
|
|
}
|
|
|
|
h2 {
|
|
|
|
@include scut-truncate;
|
|
|
|
padding-top: 4px; // depends on height of .btn-navicon
|
|
|
|
padding-right: 50px; // depends on with of .btn-icon
|
2014-10-16 05:37:00 -04:00
|
|
|
color: $color-text;
|
2014-09-23 09:41:37 -04:00
|
|
|
font-size: $font-size-bigger;
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
2014-10-16 09:10:00 -04:00
|
|
|
.btn-icon-light {
|
2014-09-23 09:41:37 -04:00
|
|
|
position: absolute;
|
|
|
|
top: $padding-vertical;
|
|
|
|
right: $padding-horizontal;
|
2014-10-16 09:10:00 -04:00
|
|
|
padding-left: 1em;
|
|
|
|
& > svg {
|
|
|
|
width: 2em;
|
|
|
|
height: 2em;
|
|
|
|
}
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
&.wo-touch-active {
|
|
|
|
background: $color-touch-active;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__search {
|
|
|
|
flex-shrink: 0;
|
2014-11-04 14:19:51 -05:00
|
|
|
padding: 0 $padding-horizontal 10px;
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
&__scroll-canvas {
|
|
|
|
flex-grow: 1;
|
|
|
|
padding: 0 $padding-horizontal;
|
|
|
|
overflow-y: scroll;
|
|
|
|
// allow scrolling on iOS
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
// put layer on GPU
|
|
|
|
transform: translateZ(0);
|
|
|
|
|
|
|
|
// hide scrollbar in webkit
|
|
|
|
&::-webkit-scrollbar {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__entries {
|
|
|
|
list-style: none;
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
& > footer {
|
|
|
|
flex-shrink: 0;
|
|
|
|
position: relative;
|
|
|
|
height: $footer-height;
|
|
|
|
padding: 0 $padding-horizontal;
|
|
|
|
background: $color-bg;
|
|
|
|
width: 100%;
|
|
|
|
font-size: $font-size-smaller;
|
|
|
|
color: $color-text;
|
2014-10-16 09:10:00 -04:00
|
|
|
line-height: $footer-height;
|
2014-09-23 09:41:37 -04:00
|
|
|
|
2014-11-20 09:15:57 -05:00
|
|
|
&:before {
|
|
|
|
content: '';
|
|
|
|
display: block;
|
|
|
|
height: 0;
|
|
|
|
border-top: 1px solid $color-border-light;
|
|
|
|
}
|
2014-09-23 09:41:37 -04:00
|
|
|
svg {
|
|
|
|
display: inline-block;
|
|
|
|
height: 1.5em;
|
|
|
|
width: 1.5em;
|
|
|
|
padding-right: 0.5em;
|
|
|
|
fill: $color-text;
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@include respond-to(md) {
|
|
|
|
& > header {
|
|
|
|
padding: $padding-vertical $padding-horizontal;
|
|
|
|
h2 {
|
|
|
|
padding-right: 0;
|
|
|
|
}
|
2014-10-16 09:10:00 -04:00
|
|
|
.btn-icon-light {
|
2014-09-23 09:41:37 -04:00
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@include respond-to(lg) {
|
|
|
|
height: 100%;
|
2014-11-10 11:24:45 -05:00
|
|
|
background: $color-bg-dark;
|
2014-09-23 09:41:37 -04:00
|
|
|
|
|
|
|
& > header {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&__search {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
& > footer {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&__scroll-canvas {
|
|
|
|
height: 100%;
|
|
|
|
overflow-y: scroll;
|
|
|
|
// allow scrolling on iOS
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
|
|
|
|
// hide scrollbar in webkit
|
|
|
|
&::-webkit-scrollbar {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__entries {
|
|
|
|
display: table; // import for mail list entry desktop layout
|
|
|
|
table-layout: fixed;
|
|
|
|
width: 100%;
|
|
|
|
list-style: none;
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Individual mail list entries with several states
|
|
|
|
.mail-list-entry {
|
|
|
|
// do not share any common styles between large and other screens
|
|
|
|
// because styling is very different
|
|
|
|
|
2014-11-29 04:07:09 -05:00
|
|
|
@include respond-to(smaller-lg) {
|
2014-09-23 09:41:37 -04:00
|
|
|
$padding-horizontal: 30px;
|
|
|
|
$padding-vertical: 11px;
|
|
|
|
|
|
|
|
position: relative;
|
|
|
|
display: block;
|
|
|
|
padding: $padding-vertical $padding-horizontal;
|
|
|
|
cursor: pointer;
|
|
|
|
margin-top: 11px;
|
|
|
|
|
|
|
|
&:before {
|
|
|
|
content: '';
|
|
|
|
display: block;
|
|
|
|
position: absolute;
|
|
|
|
top: -6px;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
height: 0;
|
|
|
|
border-top: 1px solid $color-border-light;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
margin-top: 0;
|
|
|
|
&:before {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&:last-child {
|
|
|
|
margin-bottom: 5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Flags
|
|
|
|
|
|
|
|
&__flags {
|
|
|
|
position: absolute;
|
|
|
|
top: $padding-vertical;
|
|
|
|
left: 0;
|
|
|
|
list-style: none;
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
width: $padding-horizontal;
|
|
|
|
line-height: 22px; // roughly valign with lines of main content
|
|
|
|
& > li {
|
|
|
|
font-size: 90%;
|
|
|
|
text-align: center;
|
|
|
|
& > svg {
|
|
|
|
display: inline-block;
|
|
|
|
vertical-align: middle;
|
|
|
|
width: 1em;
|
|
|
|
height: 1em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__flags-unread {
|
|
|
|
display: none; // hidden in default state
|
|
|
|
&:after {
|
|
|
|
display: inline-block;
|
|
|
|
content: '';
|
|
|
|
width: 1em;
|
|
|
|
height: 1em;
|
|
|
|
border-radius: 50%;
|
|
|
|
background-color: $color-main;
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__flags-checked {
|
|
|
|
display: none; // feature on touch layout not available for now
|
|
|
|
}
|
|
|
|
&__flags-favorite {
|
|
|
|
display: none; // feature on touch layout not available for now
|
|
|
|
}
|
|
|
|
&__flags-encrypted {
|
|
|
|
display: none; // hidden on touch layout
|
|
|
|
}
|
|
|
|
&__flags-answered > svg {
|
|
|
|
fill: $color-text-light;
|
|
|
|
}
|
|
|
|
&__flags-attachment {
|
|
|
|
display: none; // hidden in default state
|
|
|
|
& > svg {
|
|
|
|
fill: $color-text-light;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__attachment {
|
|
|
|
display: none; // hidden on touch layout
|
|
|
|
}
|
|
|
|
&__encrypted {
|
|
|
|
position: absolute;
|
|
|
|
top: $padding-vertical;
|
|
|
|
right: $padding-vertical;
|
|
|
|
text-align: center;
|
|
|
|
font-size: 90%;
|
|
|
|
& > svg {
|
|
|
|
display: inline-block;
|
|
|
|
vertical-align: middle;
|
2014-10-16 09:10:00 -04:00
|
|
|
width: 1.2em;
|
|
|
|
height: 1.2em;
|
2014-09-23 09:41:37 -04:00
|
|
|
fill: $color-main;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Main content
|
|
|
|
|
|
|
|
&__name {
|
|
|
|
@include scut-truncate;
|
|
|
|
color: $color-main;
|
|
|
|
font-size: $font-size-bigger;
|
|
|
|
font-weight: normal;
|
|
|
|
line-height: 1;
|
2014-11-06 11:45:10 -05:00
|
|
|
padding-bottom: 8px;
|
2014-11-10 11:19:59 -05:00
|
|
|
padding-right: 0.5em;
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
&__subject {
|
|
|
|
@include scut-truncate;
|
|
|
|
font-size: $font-size-small;
|
|
|
|
line-height: $font-size-small;
|
|
|
|
font-weight: bold;
|
|
|
|
padding-right: 90px; // to make room for time
|
2014-11-06 11:45:10 -05:00
|
|
|
padding-bottom: 8px;
|
2014-11-10 12:10:10 -05:00
|
|
|
& > span {
|
|
|
|
display: none;
|
|
|
|
}
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
&__time {
|
|
|
|
@include scut-truncate;
|
|
|
|
position: absolute;
|
|
|
|
top: $padding-vertical + $font-size-bigger + 8px;
|
|
|
|
right: $padding-horizontal;
|
|
|
|
width: 80px;
|
|
|
|
color: $color-text-light;
|
|
|
|
font-size: $font-size-smaller;
|
|
|
|
line-height: $font-size-small; // same line height as subject
|
|
|
|
text-align: right;
|
|
|
|
}
|
|
|
|
&__excerpt {
|
|
|
|
color: $color-grey;
|
|
|
|
height: 2 * $line-height-base * 1em;
|
|
|
|
font-size: $font-size-small;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Modifiers
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background-color: rgba($color-main, 0.15);
|
|
|
|
}
|
|
|
|
&--unread {
|
|
|
|
.mail-list-entry__flags-unread {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&--attachment {
|
|
|
|
.mail-list-entry__flags-attachment {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&--active,
|
|
|
|
&--active:hover {
|
|
|
|
background-color: $color-main;
|
|
|
|
color: $color-main-text;
|
|
|
|
.mail-list-entry__name,
|
|
|
|
.mail-list-entry__time,
|
|
|
|
.mail-list-entry__excerpt {
|
|
|
|
color: $color-main-text;
|
|
|
|
}
|
|
|
|
.mail-list-entry__flags-unread:after {
|
|
|
|
background-color: $color-main-text;
|
|
|
|
}
|
|
|
|
.mail-list-entry__flags-answered > svg,
|
|
|
|
.mail-list-entry__flags-encrypted > svg,
|
|
|
|
.mail-list-entry__flags-attachment > svg,
|
|
|
|
.mail-list-entry__encrypted > svg,
|
|
|
|
.mail-list-entry__encrypted > svg:first-child {
|
|
|
|
fill: $color-main-text;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@include respond-to(lg) {
|
|
|
|
$cell-padding-vertical: 10px;
|
|
|
|
$cell-padding-horizontal: 10px;
|
|
|
|
|
|
|
|
display: table-row;
|
2014-11-10 11:49:20 -05:00
|
|
|
background: $color-bg-dark;
|
2014-09-23 09:41:37 -04:00
|
|
|
color: $color-grey;
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
// Flags
|
|
|
|
|
|
|
|
&__flags {
|
|
|
|
display: table-cell;
|
|
|
|
box-sizing: content-box;
|
|
|
|
border-bottom: 1px solid $color-border-light;
|
|
|
|
padding: $cell-padding-vertical $cell-padding-horizontal;
|
|
|
|
list-style: none;
|
|
|
|
width: 8em;
|
|
|
|
white-space: nowrap;
|
|
|
|
& > li {
|
|
|
|
display: inline-block;
|
|
|
|
margin-left: 0.5em;
|
|
|
|
& > svg {
|
|
|
|
display: inline-block;
|
|
|
|
vertical-align: middle;
|
|
|
|
width: 1em;
|
|
|
|
height: 1em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__flags-unread {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&__flags-checked {
|
|
|
|
margin-left: 0 !important;
|
|
|
|
.checkbox {
|
|
|
|
vertical-align: middle;
|
2014-11-20 09:10:48 -05:00
|
|
|
|
2014-12-03 03:45:00 -05:00
|
|
|
// add invisible padding to increase clickable area around checkbox
|
2014-11-27 12:39:56 -05:00
|
|
|
margin: -0.5em 0 -0.5em -1em;
|
|
|
|
padding: 0.5em 0 0.5em 1em;
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
&__flags-favorite {
|
2014-12-03 03:45:00 -05:00
|
|
|
// add invisible padding to increase clickable area around star
|
|
|
|
margin: -0.5em 0 -0.5em;
|
|
|
|
padding: 0.5em 0 0.5em;
|
|
|
|
|
2014-09-23 09:41:37 -04:00
|
|
|
& > svg {
|
|
|
|
fill: $color-text-light;
|
|
|
|
&:first-child {
|
|
|
|
fill: $color-main;
|
|
|
|
}
|
|
|
|
&:hover {
|
|
|
|
fill: $color-text;
|
|
|
|
&:first-child {
|
|
|
|
fill: darken($color-main, 10%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&__flags-encrypted > svg {
|
|
|
|
fill: $color-main;
|
|
|
|
}
|
|
|
|
&__flags-answered > svg {
|
|
|
|
fill: $color-text-light;
|
|
|
|
}
|
|
|
|
&__flags-attachment {
|
|
|
|
display: none !important; // hidden on desktop layout
|
|
|
|
}
|
|
|
|
&__attachment {
|
|
|
|
display: table-cell;
|
|
|
|
box-sizing: content-box;
|
|
|
|
border-bottom: 1px solid $color-border-light;
|
|
|
|
padding: $cell-padding-vertical $cell-padding-horizontal;
|
|
|
|
width: 1em;
|
|
|
|
& > svg {
|
|
|
|
visibility: hidden; // hidden in default state
|
|
|
|
display: inline-block;
|
|
|
|
vertical-align: middle;
|
|
|
|
width: 1em;
|
|
|
|
height: 1em;
|
|
|
|
fill: $color-text-light;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Main content
|
|
|
|
|
|
|
|
&__name {
|
|
|
|
@include scut-truncate;
|
|
|
|
display: table-cell;
|
|
|
|
border-bottom: 1px solid $color-border-light;
|
|
|
|
padding: $cell-padding-vertical $cell-padding-horizontal;
|
2014-11-12 12:45:19 -05:00
|
|
|
width: 16em;
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
&__subject {
|
|
|
|
@include scut-truncate;
|
|
|
|
display: table-cell;
|
|
|
|
border-bottom: 1px solid $color-border-light;
|
|
|
|
padding: $cell-padding-vertical $cell-padding-horizontal;
|
2014-11-10 12:10:10 -05:00
|
|
|
& > strong {
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
& > span {
|
2014-11-10 12:16:23 -05:00
|
|
|
margin-left: 0.2em;
|
2014-11-10 12:10:10 -05:00
|
|
|
color: $color-text-light;
|
2014-11-10 12:16:23 -05:00
|
|
|
&:before {
|
|
|
|
content: '-';
|
|
|
|
margin-right: 0.2em;
|
|
|
|
}
|
2014-11-10 12:10:10 -05:00
|
|
|
}
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
&__time {
|
|
|
|
display: table-cell;
|
|
|
|
border-bottom: 1px solid $color-border-light;
|
|
|
|
padding: $cell-padding-vertical $cell-padding-horizontal;
|
|
|
|
width: 8em; // make room for time
|
|
|
|
text-align: right;
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
&__excerpt {
|
|
|
|
display: none; // hidden on desktop layout
|
|
|
|
}
|
|
|
|
&__encrypted {
|
|
|
|
display: none; // hidden on desktop layout
|
|
|
|
}
|
|
|
|
|
|
|
|
// Modifiers
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background-color: mix($color-bg, $color-main, 85%);
|
|
|
|
}
|
|
|
|
&--unread {
|
|
|
|
background-color: $color-bg;
|
|
|
|
font-weight: bold;
|
|
|
|
.mail-list-entry__name {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
2014-11-10 12:10:10 -05:00
|
|
|
.mail-list-entry__subject {
|
|
|
|
font-weight: normal;
|
|
|
|
& > strong {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
}
|
2014-09-23 09:41:37 -04:00
|
|
|
}
|
|
|
|
&--attachment {
|
|
|
|
.mail-list-entry__attachment > svg {
|
|
|
|
visibility: visible;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&--checked {
|
|
|
|
background-color: mix($color-bg, $color-main, 85%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|