Mailspring/internal_packages/preferences/stylesheets/preferences.less

216 lines
4.5 KiB
Text
Raw Normal View History

@import "ui-variables";
@import "ui-mixins";
// Preferences Specific
.preferences-wrap {
input[type=checkbox] {margin: 0 7px 0 0; position: relative; top: -1px; }
input[type=radio] {margin: 0 7px 0 0; position: relative; top: -1px; }
select { margin: 4px 0 0 8px; }
height: 100%;
background-color: @background-primary;
color: @text-color;
section:first-child h2:first-child {
margin-top:0;
}
section section h2 {
font-size:120%;
}
section {
padding-bottom: @padding-base-vertical;
.item {
padding-top: @padding-small-vertical;
padding-bottom: @padding-small-vertical;
}
}
.preferences-sidebar {
background-color: @source-list-bg;
border-right: 1px solid @border-color-divider;
flex: 1;
max-width:350px;
min-width:200px;
height: 100%;
.item {
border-bottom: 1px solid @border-color-divider;
cursor: default;
&.active {
background: @background-primary;
&:not(.has-subitems) {
border-right:3px solid @component-active-color;
.name {
color: @component-active-color;
}
}
.subitem.active {
background: @background-primary;
border-right:3px solid @component-active-color;
color: @component-active-color;
}
}
.disclosure-triangle {
float: left;
padding-top:16px;
}
.name {
padding: @padding-large-vertical @padding-large-horizontal;
}
.subitems {
padding-left: 0;
box-shadow: inset 0 2px 1px rgba(0, 0, 0, 0.15);
background: darken(@background-secondary, 3%);
list-style-type: none;
font-size: 0.95em;
margin: 0;
.subitem {
padding: @padding-large-vertical * 0.8 @padding-large-horizontal + 4;
border-top: 1px solid @border-color-divider;
border-right:3px solid transparent;
text-overflow: ellipsis;
overflow: hidden;
padding-right: 8px;
}
}
}
}
.preferences-content {
flex: 4;
feat(account-prefs): Adds new page for Account in preferences Summary: Adds the new Account preferences page. This consists of two major React components, PreferencesAccountList and PreferencesAccountDetails, both of which use EditableList. I added a bunch of fixes and updated the API for EditableList, plus a bit of refactoring for PreferencesAccount component, and a bunch of CSS so its a big diff. The detailed changelog: Updates to EditableList: - Fix bug updating selection state when arrows pressed to move selection - Add new props: - allowEmptySelection to allow the list to have no selection - createInputProps to pass aditional props to the createInput - Add scroll region for list items - Update styles and refactor render methods Other Updates: - Updates Account model to hold aliases and a label - Adds getter for label to default to email - Update accountswitcher to display label, update styles and spec - Refactor PreferencesAccounts component: - Splits it into smaller components, - Removes unused code - Splits preferences styelsheets into smaller separate stylesheet for account page. Adds some updates and fixes (scroll-region padding) - Update AccountStore to be able to perform updates on an account. - Adds new Action to update account, and an action to remove account to be consistent with Action usage - Adds components for Account list and Aliases list using EditableList Test Plan: - All specs pass, but need to write new tests! Reviewers: bengotow, evan Reviewed By: bengotow Differential Revision: https://phab.nylas.com/D2332
2015-12-10 04:35:40 +08:00
&>.scroll-region-content {
padding: @padding-large-vertical*3 @padding-large-horizontal * 3;
}
}
.appearance-mode-switch {
max-width:400px;
text-align: right;
.appearance-mode {
background-color: @background-off-primary;;
border-radius: 10px;
border: 1px solid @background-tertiary;
text-align: center;
flex: 1;
padding:25px;
padding-bottom:9px;
margin-right:10px;
margin-bottom:7px;
margin-top:0;
img {
background-color: @background-tertiary;
}
div {
margin-top: 15px;
text-transform: capitalize;
cursor: default;
}
&:last-child {
margin-right:0;
}
}
.appearance-mode.active {
border:1px solid @component-active-color;
color: @component-active-color;
img { background-color: @component-active-color; }
}
}
.container-keymaps {
max-width: 450px;
.col-left {
text-align: right;
flex: 1;
margin-right: 20px;
}
.col-right {
text-align: left;
flex: 1;
select {
width: 75%;
}
}
.shortcut-presets {
padding: 5px 0 20px 0;
}
.shortcut-section-title {
border-bottom:1px solid @border-color-divider;
margin: @padding-large-vertical * 1.5 0;
}
.shortcut {
padding: 3px 0;
color: @text-color-very-subtle;
.shortcut-value {
font-family: monospace;
font-weight: 600;
color: @text-color;
.then {
font-family: @font-family-base;
color: @text-color-very-subtle;
font-weight: 400;
font-size: 0.9em;
padding-left:3px;
padding-right:3px;
}
&:after {
content: ", "
}
&:last-child:after {
content: "";
}
}
}
}
.platform-note {
padding: @padding-base-vertical @padding-base-horizontal;
background: fade(@black, 4%);
border-left:3px solid @info-color;
margin:@padding-base-vertical 0;
feat(mail-rules): Per-account mail rules filter incoming, existing mail Summary: Originally, this was going to be a totally independent package, but I wasn't able to isolate the functionality and get it tied in to the delta-stream consumption. Here's how it currently works: - The preferences package has a new tab which allows you to edit mail filters. Filters are saved in a new core store, and a new stock component (ScenarioEditor) renders the editor. The editor takes a set of templates that define a value space, and outputs a valid set of values. - A new MailFilterProcessor takes messages and creates tasks to apply the actions from the MailFiltersStore. - The worker-sync package now uses the MailFilterProcessor to apply filters /before/ it calls didPassivelyReceiveNewModels, so filtrs are applied before any notifications are created. - A new task, ReprocessMailFiltersTask allows you to run filters on all of your existing mail. It leverages the existing TaskQueue architecture to: a) resume where it left off if you quit midway, b) be queryable (for status) from all windows and c) cancelable. The TaskQueue is a bit strange because it runs performLocal and performRemote very differently, and I had to use `performRemote`. (todo refactor soon.) This diff also changes the EditableList a bit to behave like a controlled component and render focused / unfocused states. Test Plan: Run tests, only for actual filter processing atm. Reviewers: juan, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D2379
2015-12-23 15:19:32 +08:00
font-size:0.95em;
&:before {
color: @info-color;
font-weight:600;
content: "NOTE: ";
}
}
.platform-linux-only {
display: none;
}
}
body.platform-win32 {
.preferences-wrap {
.well {
border-radius: 0;
}
.container-appearance {
.appearance-mode {
border-radius: 0;
}
}
}
}
body.platform-linux {
.preferences-wrap {
.platform-linux-only {
display: block;
}
}
}