mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-02-23 07:36:12 +08:00
Summary: feat(debugging): Put db query tiemstamps in js timelines Mark as read *after* you stop looking at a message, to avoid pointless repaint while looking fix specs :'( Make focus() do something smart if not provided a field name Stop doing the partial load / full load from cache. Slower, but also means we can evaluate "correct" scroll offset in one pass refactor message-list to fade in after load. simplifies scroll logic Test Plan: Run tests Reviewers: evan Reviewed By: evan Differential Revision: https://review.inboxapp.com/D1306
213 lines
4.2 KiB
Text
213 lines
4.2 KiB
Text
@import "ui-variables";
|
|
@import "ui-mixins";
|
|
|
|
@message-max-width: 800px;
|
|
|
|
// This class wraps the items that appear above the message list in the
|
|
// toolbar. We want the toolbar items to sit right above the centered
|
|
// content, so we need another 800px-wide container in the toolbar...
|
|
.message-toolbar-items {
|
|
order: -100;
|
|
width: 100%;
|
|
text-align: center;
|
|
position: absolute;
|
|
pointer-events: none;
|
|
|
|
.message-toolbar-items-inner {
|
|
margin: auto;
|
|
max-width: @message-max-width - @spacing-three-quarters*2;
|
|
text-align: left;
|
|
pointer-events: auto;
|
|
}
|
|
}
|
|
|
|
.message-toolbar-items.hidden {
|
|
opacity: 0;
|
|
}
|
|
|
|
#message-list {
|
|
position: relative;
|
|
|
|
width: 100%;
|
|
height: 100%;
|
|
min-height: 100%;
|
|
padding: 0;
|
|
order: 2;
|
|
|
|
.message-list-headers {
|
|
margin: 0 auto;
|
|
padding: @spacing-double;
|
|
padding-bottom: @spacing-standard;
|
|
width: 100%;
|
|
max-width: @message-max-width;
|
|
|
|
.participants {
|
|
.contact-chip {
|
|
display:inline-block;
|
|
}
|
|
}
|
|
}
|
|
|
|
.messages-wrap {
|
|
overflow-y: auto;
|
|
position: absolute;
|
|
top:0; left:0; right:0; bottom:0;
|
|
opacity:0;
|
|
transition: opacity 0s;
|
|
}
|
|
.messages-wrap.ready {
|
|
opacity:1;
|
|
transition: opacity .1s linear;
|
|
}
|
|
|
|
.message-item-wrap {
|
|
position: relative;
|
|
width: 100%;
|
|
|
|
margin: 0 auto;
|
|
padding: @spacing-double 0;
|
|
&:first-child { padding-top: 0; }
|
|
|
|
border-bottom: 1px solid @border-primary-bg;
|
|
&:last-child { border-bottom: 0; }
|
|
|
|
&.collapsed {
|
|
padding: @spacing-standard @spacing-double;
|
|
}
|
|
}
|
|
|
|
.message-header {
|
|
position: relative;
|
|
font-size: @font-size-small;
|
|
|
|
.message-actions {
|
|
z-index: 4;
|
|
margin-top: 0.35em;
|
|
margin-left: 0.5em;
|
|
text-align: right;
|
|
|
|
.btn-icon {
|
|
padding: 0 @spacing-half;
|
|
&:last-child { padding-right: 0; }
|
|
margin-left: 10px;
|
|
margin-right: 0;
|
|
&:active {background: transparent;}
|
|
}
|
|
}
|
|
|
|
.message-time {
|
|
z-index: 2; position: relative;
|
|
display: inline-block;
|
|
}
|
|
.msg-actions-tooltip {
|
|
display: inline-block;
|
|
margin-left: 1em;
|
|
}
|
|
.message-participants { z-index: 1; position: relative; }
|
|
|
|
.message-time, .message-indicator {
|
|
color: @text-color-very-subtle;
|
|
}
|
|
|
|
|
|
.message-header-right {
|
|
z-index: 4; position: relative;
|
|
float: right;
|
|
}
|
|
|
|
}
|
|
|
|
.message-item-area {
|
|
width: 100%;
|
|
max-width: @message-max-width;
|
|
margin: 0 auto;
|
|
padding: @spacing-standard @spacing-double;
|
|
|
|
iframe {
|
|
width: 100%;
|
|
border: 0;
|
|
padding: 0;
|
|
margin-top: @spacing-sub-double;
|
|
overflow: auto;
|
|
}
|
|
}
|
|
|
|
|
|
.collapse-control {
|
|
&.inactive { display: none; }
|
|
z-index: 3;
|
|
position: absolute;
|
|
top: 0;
|
|
left: -1 * @spacing-standard;
|
|
color: @text-color-very-subtle;
|
|
}
|
|
.message-item-wrap:hover {
|
|
.collapse-control.inactive { display: block; }
|
|
}
|
|
|
|
.collapse-control:hover {cursor: pointer;}
|
|
|
|
}
|
|
.attachments-area {
|
|
padding-top: @spacing-standard;
|
|
}
|
|
|
|
|
|
///////////////////////////////
|
|
// message-participants.cjsx //
|
|
///////////////////////////////
|
|
.message-participants {
|
|
|
|
&.collapsed:hover {cursor: pointer;}
|
|
|
|
.from-contact {
|
|
font-weight: @headings-font-weight;
|
|
color: @text-color;
|
|
}
|
|
.from-label, .to-label, .cc-label, .bcc-label {
|
|
color: @text-color-very-subtle;
|
|
}
|
|
.to-label { font-weight: 600; }
|
|
.cc-label, .bcc-label { margin-left: @spacing-standard; }
|
|
.to-contact, .cc-contact, .to-everyone {
|
|
color: @text-color-very-subtle;
|
|
}
|
|
|
|
.expanded-participants {
|
|
position: relative;
|
|
padding-right: 1.2em;
|
|
|
|
.participant {
|
|
display: inline-block;
|
|
margin-right: 0.5em;
|
|
}
|
|
|
|
.participant-type {
|
|
margin-top: 0.5em;
|
|
&:first-child {margin-top: 0;}
|
|
}
|
|
|
|
.from-label, .to-label, .cc-label, .bcc-label {
|
|
float: left;
|
|
display: block;
|
|
font-weight: 400;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.from-contact, .to-contact, .cc-contact {
|
|
padding-left: 3.85em;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.from-label { margin-right: 1em; }
|
|
.to-label, .cc-label { margin-right: 2.15em; }
|
|
.bcc-label { margin-right: 1.7em; }
|
|
|
|
.participant-primary {
|
|
color: @text-color;
|
|
}
|
|
.participant-secondary {
|
|
color: @text-color-very-subtle;
|
|
}
|
|
}
|
|
}
|