You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tt-rss/themes/light/tt-rss.less

1439 lines
23 KiB
Plaintext

body.ttrss_main {
background : @default-bg;
color : @default-fg;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: @font-size-content;
overflow : hidden;
:focus {
outline: none;
}
.post {
padding : 0;
font-size : @font-size-toolbar;
.header {
padding : 5px;
color : @default-text;
border: 0 solid @border-default;
border-bottom-width: 1px;
background: @color-panel-bg;
.left, .right {
display : flex;
}
.row {
display : flex;
margin-bottom : 4px;
flex-wrap : nowrap;
align-items : center;
justify-content : space-between;
}
.comments {
flex-grow : 2;
}
.date {
white-space : nowrap;
}
img, i.material-icons {
margin : 0px 4px;
vertical-align: middle;
color : @color-icon;
}
.title {
flex-grow : 2;
font-size : 15px;
font-weight : 600;
text-rendering: optimizelegibility;
font-family : @fonts-ui;
}
}
div.content {
padding : 10px;
font-size : 16px;
img,
video {
border-width : 0px;
max-width : 98%;
height: auto;
}
div.embed-responsive {
overflow : hidden;
padding-bottom : @embed-responsive-padding;
position : relative;
iframe {
border : 0;
bottom : 0;
height : 100%;
left : 0;
position : absolute;
top : 0;
width : 100%;
}
}
}
}
.inline-player {
display : flex;
align-items : center;
audio {
margin-right : 8px;
}
}
.article-note {
background-color : #fff7d5;
margin : 5px;
border: 1px solid #e7d796;
color : #9a8c59;
display : flex;
align-items : center;
> * {
padding : 5px;
}
}
.article-note.editable {
cursor : pointer;
}
h1 {
font-size : 18px;
font-weight : 600;
text-rendering: optimizelegibility;
//font-family : @fonts-ui;
}
h2 {
font-size : 16px;
font-weight : 600;
text-rendering: optimizelegibility;
//font-family : @fonts-ui;
}
h3 {
font-size : 16px;
font-weight : 600;
text-rendering: optimizelegibility;
//font-family : @fonts-ui;
}
h4 {
font-size : 14px;
font-weight : 600;
text-rendering: optimizelegibility;
//font-family : @fonts-ui;
}
a {
color: @color-link;
text-decoration: none;
}
a:hover {
color: darken(@color-link, 20%);
text-decoration: underline;
}
#notify.visible {
opacity: 100;
}
#notify {
bottom : 20px;
right : 20px;
min-width : 200px;
max-width : 350px;
border-width : 1px;
border-style : solid;
position : fixed;
font-size : @font-size-content;
z-index : 99;
display : flex;
opacity: 0;
align-items : center;
padding : 10px;
transition: opacity 0.2s linear;
box-shadow : 0px 0px 8px rgba(0,0,0,0.1);
img {
vertical-align : middle;
}
.msg {
flex-grow : 2;
padding : 0 10px;
line-height : 20px;
}
.icon-close {
cursor : pointer;
}
}
.notify {
border-color : #d7c47a;
background-color : #fff7d5;
}
.notify.notify_progress {
border-color : #d7c47a;
background-color : #fff7d5;
img {
width : 18px;
height : 18px;
filter : saturate(0);
}
}
.notify.notify_info {
border-color : @color-accent;
background-color : @color-accent-light;
i.icon-notify {
color : @color-accent;
}
}
.notify.notify_error {
background-color : #c00;
border-color : #900;
color : white;
i.icon-notify, i.icon-close {
color : white;
}
}
.action-chooser {
.action-button {
.dijitButtonText {
vertical-align : unset;
}
.dijitArrowButtonInner {
display : none;
}
}
}
.hl {
border: 0px solid @border-default;
border-bottom-width: 1px;
transition : color 0.2s, background 0.2s;
display : flex;
flex-direction : row;
flex-wrap : nowrap;
background : @color-panel-bg;
align-items : center;
user-select : none;
> * {
white-space : nowrap;
padding : 4px;
}
img {
vertical-align : middle;
}
.left, .right {
display : flex;
align-items : center;
img {
margin : 0 4px;
}
i.material-icons {
margin-left : 2px;
padding : 2px;
transition : color 0.2s linear;
user-select: none;
font-size : 21px;
}
}
.left {
input {
margin : 0 4px;
}
}
.right {
text-align : right;
i.material-icons {
color : @color-icon;
}
}
.title {
cursor : pointer;
flex-grow : 2;
overflow : hidden;
text-overflow : ellipsis;
}
.author {
white-space : nowrap;
color : @default-text;
font-size : @font-size-small;
font-weight : normal;
}
.feed a {
border-radius : 4px;
display : inline-block;
padding : 1px 4px;
font-size : @font-size-small;
font-style : italic;
font-weight : normal;
color : @default-text;
&:hover {
color : @color-accent;
}
}
.updated {
color : @default-text;
text-align : right;
font-size : @font-size-small;
padding-left : 10px;
div {
display : inline-block;
}
}
div.title a {
font-weight : 600;
text-rendering: optimizelegibility;
font-family : @fonts-ui;
color : #555;
}
a.title.high, span.hl-content.high .preview {
color : #00aa00;
}
&.vgrlf .feed {
display : none;
}
&.Unread {
background : white;
}
&.Unread .title a {
color : black;
}
&.active .title a {
color : @color-accent;
/* text-shadow : 1px 1px 2px #fff; */
}
&.active {
background : @color-accent ! important;
}
&.active,
&.Selected {
color : white;
background : desaturate(@color-accent, 25%);
a,
.feed a,
.hl-content a.title,
span {
color : white;
}
}
}
#content-insert blockquote,
#headlines-frame blockquote,
.dijitContentPane blockquote {
margin : 5px 0px 5px 0px;
color : @default-text;
padding-left : 10px;
border: 0px solid #ccc;
border-left-width: 4px;
}
#content-insert code,
#headlines-frame code,
.dijitContentPane code {
color : #009900;
font-family : monospace;
}
#content-insert pre,
#headlines-frame pre,
.dijitContentPane pre {
margin: 5px 0px 5px 0px;
padding: 10px;
color: @default-text;
font-family: monospace;
font-size: 12px;
border: 0px solid #ccc;
background: @color-panel-bg;
display: block;
max-width: 98%;
overflow: auto;
white-space: pre-wrap;
}
div.prefHelp {
color : @default-text;
padding : 5px;
}
span.preview {
color : #999;
font-weight : normal;
font-size : 12px;
padding-left : 4px;
}
.label {
display : inline-block;
vertical-align: middle;
background-color : #fff7d5;
font-size : @font-size-tiny;
color : @default-fg;
font-weight : normal;
margin-left : 2px;
padding : 2px 4px;
white-space: nowrap;
}
i.marked-pic, i.pub-pic {
cursor : pointer;
color : @color-hl-icon;
}
/*ul.compact {
list-style-type : none;
margin : 0;
padding : 0;
li {
margin : 0;
padding : 0;
}
}*/
#overlay {
background : @default-bg;
left : 0;
top : 0;
height : 100%;
width : 100%;
z-index : 100;
position : absolute;
}
#overlay_inner {
font-weight : bold;
margin : 1em;
}
div.whiteBox {
margin-left : 1px;
text-align : center;
padding : 1em 1em 0px 1em;
font-size : @font-size-small;
border: 0px solid @border-default;
border-bottom-width: 1px;
}
.dijitDialog {
header,
.dlgSec, .dlgSecHoriz {
font-size : 16px;
font-weight : 600;
color : @default-text;
font-family: @fonts-ui;
}
section,
.dlgSecCont {
margin : 10px 20px;
}
header.horizontal + section,
section.horizontal,
.dlgSecHoriz + .dlgSecCont {
margin : 10px 0;
}
section.narrow {
margin : 0;
}
section,
div.dlgSecCont, div.dlgSecSimple {
fieldset {
> label {
font-weight : bold;
margin-right : 10px;
display : inline-block;
min-width : 140px;
text-align : right;
}
> label.checkbox {
font-weight : normal;
display : inline;
}
> label.inline {
display : inline;
}
}
fieldset {
border-width : 0px;
padding : 5px 0px;
&.narrow {
padding : 2px 0px;
}
&.align-right {
text-align : right;
}
}
}
footer,
.dlgButtons {
margin-top : 5px;
text-align: right;
}
footer.text-center {
text-align: center;
}
textarea#tags_str {
height : 100px;
font-size : 12px;
width : 98%;
}
}
i.icon-label {
color : #fff7d5;
}
div#cmdline {
position : absolute;
left : 5px;
bottom : 5px;
font-size : @font-size-small;
color : @default-text;
font-weight : bold;
background-color : @default-bg;
border : 1px solid @color-accent;
padding : 3px 5px 3px 5px;
z-index : 5;
}
.exception-contents {
h3 {
color : red;
}
textarea {
width : 99%;
height : 200px;
font-size : @font-size-small;
}
}
#headlines-wrap-inner,
#content-wrap {
padding : 0;
border : 0;
margin : 0;
}
#feeds-holder {
padding : 0;
border: 0 solid @border-default;
overflow : hidden;
background : @color-panel-bg;
box-shadow : inset -1px 0px 2px -1px rgba(0,0,0,0.1);
-webkit-overflow-scrolling : touch;
#feedTree {
height : 100%;
overflow-x : hidden;
text-rendering: optimizelegibility;
font-family : @fonts-ui;
.dijitTreeNode {
.dijitTreeRow {
border : 1px solid transparent;
&.Is_Feed {
.loadingNode {
left : -2px;
height : 14px;
width : 14px;
position : relative;
}
}
&.Is_Cat {
.loadingNode {
height : 11px;
width : 18px;
margin-left : 4px;
position : relative;
top : 2px;
}
}
.counterNode {
order : 2;
font-weight : bold;
display : none;
font-size : @font-size-tiny;
text-align : center;
border : 1px solid lighten(@color-accent, 5%);
color : white;
background : lighten(@color-accent, 5%);
border-radius : 4px;
//vertical-align : middle;
//float : right;
//position : relative;
line-height : 14px;
margin-right : 8px;
//margin-top : 2px;
min-width : 23px;
height : 14px;
flex-shrink : 0;
&.aux, &.marked {
background : @color-panel-bg;
color : lighten(@default-text, 10%);
border-color : darken(@color-panel-bg, 10%);
}
&.marked {
border-color : @color-accent-marked;
background : lighten(@color-accent-marked, 60%);
}
}
// fresh
&[data-feed-id="-3"][data-is-cat="false"] .counterNode.unread {
background-color: darken(@color-checked, 15%);
border-color: darken(@color-checked, 25%);
}
.dijitTreeContent {
display : flex;
align-items : center;
flex-grow : 2;
min-width : 0;
}
.dijitTreeLabel {
cursor : pointer;
min-width : 0;
overflow : hidden;
text-overflow : ellipsis;
position : relative;
// Segoe UI (@fonts-ui) seems to have wrong baseline set
// top : -0.5px;
&.Unread {
font-weight : bold;
}
}
&.Error .dijitTreeLabel {
color : red;
}
&.dijitTreeRowSelected {
box-shadow : -1px 0px 2px -1px rgba(0,0,0,0.1);
border-color : @border-default transparent;
background : @default-bg;
color : @default-text;
}
.dijitIcon.feed-icon {
margin-right : 2px;
}
i.icon.icon-inbox {
color : lighten(@default-text, 20%);
}
i.icon.icon-archive {
color : darken(@color-marked, 30%);
}
i.icon.icon-star {
position : relative;
color : @color-marked;
font-size : 21px;
left : -2px;
}
i.icon.icon-rss_feed {
color : @color-published;
}
i.icon.icon-whatshot {
color : @color-checked;
}
i.icon.icon-restore {
//position : relative;
//top : -1px;
font-weight : bold;
color : @color-accent;
}
}
}
}
}
#headlines-frame:not([data-headlines-count="0"])[data-is-cdm="true"][data-is-cdm-expanded="true"][data-enable-grid="true"] {
display : grid;
grid-template-columns: repeat(auto-fit, minmax(@cdm-grid-col-width, 1fr));
padding : @cdm-grid-padding;
grid-gap : @cdm-grid-padding;
background-color: @color-panel-bg;
> * {
/* 2 = because #headlines-spacer is the actual last child
only if odd to deal with 1) single article and 2) not break any previous rows;
1 = spacer;
this is outside of .cdm selector because of #headlines-spacer etc
.grid-span-row is manually expanded RROWs
*/
&.grid-span-row,
&:nth-last-child(2):nth-child(odd),
&:nth-last-child(1) {
grid-column : 1 e("/") -1;
}
}
.cdm.expanded {
.header, .content {
background : @default-bg;
border : 1px solid @border-default;
overflow : hidden;
}
.content {
border-top-width : 0;
padding : 0 4px 4px 4px;
.content-inner {
a {
word-break: break-all;
}
}
}
.header[data-is-stuck] {
top : -@cdm-grid-padding;
border-bottom-width: 1px;
}
.header {
border-bottom-width : 0;
padding : 4px;
.icon-grid-span {
display : inline;
}
.feed {
display : none;
}
}
.footer {
border : 0;
padding : 4px;
.left, .right {
white-space: nowrap;
}
.left {
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
#headlines-frame {
padding : 0;
border: 0;
margin-top : 0;
-webkit-overflow-scrolling : touch;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
&[data-is-vfeed="false"] {
.header,
.hl {
.feed, .icon-feed {
display : none;
}
}
}
&[data-auto-catchup="true"] #headlines-spacer {
height : 100vh;
}
.dijitCheckBox {
margin-right : 4px;
}
&[data-is-wide-screen="true"] {
.title {
overflow: visible;
white-space: normal;
}
.hl .feed {
display: none;
}
}
#headlines-spacer {
margin-left : 1px;
text-align : center;
color : @default-text;
font-size : @font-size-small;
a, span {
color : @default-text;
padding : 10px;
display : block;
}
a:hover {
color : @color-accent;
}
}
.feed-title {
border: 0px solid @color-link;
border-bottom-width: 1px;
padding: 5px 8px;
a.title {
color: @default-text;
font-weight: bold;
}
a {
color: @default-text;
&:hover {
color: @color-link;
}
}
}
span.hlMenuAttach {
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
}
#toolbar-frame_splitter {
display : none;
}
#toolbar-frame {
padding : 0;
margin : 0;
border : 0;
white-space: nowrap;
font-size : @font-size-toolbar;
#toolbar {
background : white;
border: 0 solid @border-default;
border-bottom-width: 1px;
padding-left : 4px;
height : 32px;
display : flex;
flex-direction : row;
flex-wrap : nowrap;
color : @default-text;
font-size : @font-size-toolbar;
align-items : center;
.dijitSelect,
.dijitDropDownButton .dijitButtonNode,
.dijitComboButton .dijitButtonNode {
border : 0;
}
i.net-alert, .left i.icon-error {
color : red;
}
i.log-alert {
color : #ddba1c;
cursor : pointer;
}
i {
margin : 0 4px;
}
#toolbar-headlines {
font-size : @font-size-toolbar;
background: transparent;
padding-right : 4px;
flex-grow : 2;
display : flex;
.left {
flex-grow: 2;
display : flex;
align-items : center;
.feed_title, .cancel_search {
margin-left : 4px;
}
@media (max-width: @breakpoint-md) {
.feed_title, i.icon-syndicate {
display : none;
}
}
}
.right {
display : flex;
align-items : center;
}
}
#updates-available {
color : @color-checked;
padding-right : 4px;
}
#selected_prompt {
font-style : italic;
text-align : right;
margin-right : 4px;
color : @color-accent;
}
@media (max-width: @breakpoint-md) {
#selected_prompt {
display : none;
}
}
@media (max-width: @breakpoint-sm) {
.select-articles-dropdown,
.catchup-button {
display : none;
}
}
}
}
#header {
text-align : right;
color : @default-text;
padding : 5px 5px 0 0px;
position : absolute;
border : 0;
margin : 0;
right : 0;
top : 0;
z-index : 5;
i.net-alert, .left i.icon-error {
color : red;
}
i.log-alert {
color : #ddba1c;
cursor : pointer;
}
#updates-available {
color : @color-checked;
padding-right : 4px;
}
i {
margin : 0 4px;
}
}
#content-insert {
padding : 0;
border : 0;
line-height: 1.5;
overflow : auto;
-webkit-overflow-scrolling : touch;
}
img.feed-icon, img.icon {
width : 16px;
height : 16px;
line-height : 16px;
vertical-align : middle;
display : inline-block;
}
ul#filterDlg_Matches, ul#filterDlg_Actions {
list-style-type : none;
margin : 0;
padding: 0;
}
ul#filterDlg_Matches li, ul#filterDlg_Actions li {
cursor : pointer;
}
ul#filterDlg_Matches li .dijitCheckBox, ul#filterDlg_Actions li .dijitCheckBox {
margin-right: 4px;
}
ul.hotkeys-help {
li {
display : flex;
}
li.desc {
flex-grow : 2;
}
.hk {
color : @color-accent;
width : 100px;
}
h3 {
margin : 8px 0px;
}
}
select.attachments {
display : block;
margin-top : 10px;
max-width : 120px;
}
#filterDlg_feeds select {
height : 150px;
width : 410px;
}
span.highlight {
background-color : #ffff00;
color : #cc90cc;
}
#feedEditDlg img.feedIcon {
border : 1px solid #ccc;
padding : 5px;
margin : 5px;
max-width : 20px;
max-height : 20px;
height : auto;
width : auto;
}
.dijitTooltipContents {
background : @color-tooltip-bg;
color : @color-tooltip-fg;
}
.dijitTooltipRight .dijitTooltipConnector {
border-right-color : @color-tooltip-bg;
}
.dijitTooltipLeft .dijitTooltipConnector {
border-left-color : @color-tooltip-bg;
}
.dijitTooltipBelow .dijitTooltipConnector {
border-bottom-color : @color-tooltip-bg;
}
.dijitTooltipAbove .dijitTooltipConnector {
border-top-color : @color-tooltip-bg;
}
}
/*body.ttrss_main .dijitDialog {
h1:first-of-type,
h2:first-of-type,
h3:first-of-type,
h4:first-of-type {
margin-top: 0px;
}
}*/
body.ttrss_main[view-mode="marked"] #feeds-holder #feedTree {
.dijitTreeRow.Has_Marked .dijitTreeLabel {
color : @color-accent-marked;
}
.dijitTreeRow.Has_Marked .counterNode.marked {
display : inline-block;
}
}
body.ttrss_main[view-mode="marked"][hide-read-feeds="true"][hide-read-shows-special="true"] #feeds-holder #feedTree
.dijitTreeRow:not(.AlwaysVisible):not(.Special):not(.Has_Marked) {
display : none;
}
body.ttrss_main[view-mode="marked"][hide-read-feeds="true"][hide-read-shows-special="false"] #feeds-holder #feedTree
.dijitTreeRow:not(.AlwaysVisible):not(.Has_Marked) {
display : none;
}
body.ttrss_main:not([view-mode="marked"]) #feeds-holder #feedTree {
.dijitTreeRow.Unread .counterNode.unread {
display : inline-block;
}
.dijitTreeRow.Has_Aux:not(.Unread) .counterNode.aux {
display : inline-block;
}
}
body.ttrss_main:not([view-mode="marked"])[hide-read-feeds="true"][hide-read-shows-special="true"] #feeds-holder #feedTree
.dijitTreeRow:not(.Unread):not(.AlwaysVisible):not(.Special) {
display : none;
}
body.ttrss_main:not([view-mode="marked"])[hide-read-feeds="true"][hide-read-shows-special="false"] #feeds-holder #feedTree
.dijitTreeRow:not(.Unread):not(.AlwaysVisible) {
display : none;
}
body.ttrss_main {
#toolbar-headlines {
i.icon-syndicate {
color: @color-published;
margin-right: 8px;
border: 1px solid @color-published;
border-radius: 4px;
}
#feed_current_unread {
margin-left : 8px;
font-weight : bold;
text-align : center;
border : 1px solid lighten(@color-accent, 5%);;
color : white;
background : lighten(@color-accent, 5%);
border-radius : 4px;
min-width : 23px;
}
}
i.icon-no-feed {
opacity : 0.2;
}
.dijitTreeRow.UpdatesDisabled .dijitTreeLabel {
opacity : 0.5;
}
.cdm.marked .left i.marked-pic,
.hl.marked .left i.marked-pic {
color : @color-marked;
}
.cdm.published .left i.pub-pic,
.hl.published .left i.pub-pic {
color : @color-published;
}
.score-high i.icon-score {
color : @color-checked;
}
.score-low i.icon-score {
color : #500;
}
/*.score-neutral i.icon-score {
opacity : 0.5;
}*/
i.icon-score, i.icon-grid-span {
cursor : pointer;
color : @color-icon;
}
// only shown in grid mode
.icon-grid-span {
display : none;
}
.icon-feed {
cursor : pointer;
}
.panel {
border : 1px solid @border-default;
background : @color-panel-bg;
padding : 4px;
}
.dijitDialog .panel {
background : @default-bg;
}
.panel-scrollable {
overflow : auto;
height : 200px;
}
.panel-scrollable-400px {
overflow : auto;
height : 400px;
}
ul.list li {
padding : 2px;
}
ul.list {
padding : 4px;
}
ul.list-unstyled {
list-style-type : none;
}
.text-center {
text-align : center;
}
.text-right {
text-align : right;
}
.text-left {
text-align : left;
}
.dijitDialog {
.filter-results-list {
.preview {
margin : 8px;
}
.title {
font-weight: bold;
}
}
#feed_add_spinner {
position : relative;
top : 5px;
width : 18px;
height : 18px;
}
}
.icon-three-dots {
width : 18px;
height : 18px;
vertical-align : middle;
}
}
body.ttrss_main, body.ttrss_utility {
.alert {
padding: 8px 35px 8px 14px;
margin-bottom: 10px;
background-color: #fcf8e3;
border: 1px solid #fbeed5;
border-radius: 4px;
.close {
position: relative;
top: -2px;
right: -21px;
line-height: 20px;
cursor : pointer;
}
}
.pull-right {
float : right;
}
.pull-left {
float : left;
}
.pre-wrap {
white-space : pre-wrap;
}
.text-error {
color: #b94a48;
}
.text-info {
color: #3a87ad;
}
.text-success {
color: #468847;
}
.text-warning {
color: darken(#c09853, 10%);
}
.text-muted {
color : @default-text;
}
.text-small, .small {
font-size : @font-size-small;
}
.alert,
.alert h4 {
color: #c09853;
}
.alert h4 {
margin: 0;
}
.alert-success {
color: #468847;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.alert-success h4 {
color: #468847;
}
.alert-danger,
.alert-error {
color: #b94a48;
background-color: #f2dede;
border-color: #eed3d7;
}
.alert-danger h4,
.alert-error h4 {
color: #b94a48;
}
.alert-info {
color: #3a87ad;
background-color: #d9edf7;
border-color: #bce8f1;
h4 {
color: #3a87ad;
}
}
hr {
border: 0px solid #ccc;
border-bottom-width: 1px;
}
/*div.autocomplete {
position : absolute;
width : 250px;
background-color : @default-bg;
border :1px solid @border-default;
margin : 0px;
padding : 0px;
ul {
list-style-type : none;
margin : 0px;
padding : 0px;
}
ul li.selected {
background-color : darken(@default-bg, 10%);
}
ul li {
list-style-type : none;
display : block;
margin : 0;
padding : 2px;
cursor : pointer;
}
}*/
}
::selection {
background : @color-accent;
color : @default-bg;
}
::-webkit-scrollbar {
width: 4px;
}
::-webkit-scrollbar-thumb {
background-color: @color-accent;
}
::-webkit-scrollbar-track {
background-color: #eee;
}
/*video::-webkit-media-controls-overlay-play-button {
display: none;
}*/