New: Darkmode

* New: Native Theme Engine

Co-Authored-By: Zak Saunders <thezak48@users.noreply.github.com>
(cherry picked from commit 2291f3e00eb2ff9268a0b2f49da8dde82ee13c04)

* Update CSS for themes

* Fixup CSS values

* Fixup remove duped Color-Impaired setting

* Fixup Link Colors

Co-Authored-By: Qstick <qstick@gmail.com>
pull/2151/head
Zak Saunders 2 years ago committed by Qstick
parent 91b8565629
commit 6e38df366f

@ -1,7 +1,6 @@
const reload = require('require-nocache')(module); const reload = require('require-nocache')(module);
const cssVarsFiles = [ const cssVarsFiles = [
'./src/Styles/Variables/colors',
'./src/Styles/Variables/dimensions', './src/Styles/Variables/dimensions',
'./src/Styles/Variables/fonts', './src/Styles/Variables/fonts',
'./src/Styles/Variables/animations', './src/Styles/Variables/animations',

@ -1,13 +1,13 @@
.torrent { .torrent {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: $torrentColor; border-color: var(--torrentColor);
background-color: $torrentColor; background-color: var(--torrentColor);
} }
.usenet { .usenet {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: $usenetColor; border-color: var(--usenetColor);
background-color: $usenetColor; background-color: var(--usenetColor);
} }

@ -4,6 +4,7 @@ import React from 'react';
import DocumentTitle from 'react-document-title'; import DocumentTitle from 'react-document-title';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import PageConnector from 'Components/Page/PageConnector'; import PageConnector from 'Components/Page/PageConnector';
import ApplyTheme from './ApplyTheme';
import AppRoutes from './AppRoutes'; import AppRoutes from './AppRoutes';
function App({ store, history }) { function App({ store, history }) {
@ -11,9 +12,11 @@ function App({ store, history }) {
<DocumentTitle title={window.Readarr.instanceName}> <DocumentTitle title={window.Readarr.instanceName}>
<Provider store={store}> <Provider store={store}>
<ConnectedRouter history={history}> <ConnectedRouter history={history}>
<PageConnector> <ApplyTheme>
<AppRoutes app={App} /> <PageConnector>
</PageConnector> <AppRoutes app={App} />
</PageConnector>
</ApplyTheme>
</ConnectedRouter> </ConnectedRouter>
</Provider> </Provider>
</DocumentTitle> </DocumentTitle>

@ -0,0 +1,49 @@
import PropTypes from 'prop-types';
import React, { Fragment, useCallback, useEffect } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import themes from 'Styles/Themes';
function createMapStateToProps() {
return createSelector(
(state) => state.settings.ui.item.theme || window.Readarr.theme,
(
theme
) => {
return {
theme
};
}
);
}
function ApplyTheme({ theme, children }) {
// Update the CSS Variables
const updateCSSVariables = useCallback(() => {
const arrayOfVariableKeys = Object.keys(themes[theme]);
const arrayOfVariableValues = Object.values(themes[theme]);
// Loop through each array key and set the CSS Variables
arrayOfVariableKeys.forEach((cssVariableKey, index) => {
// Based on our snippet from MDN
document.documentElement.style.setProperty(
`--${cssVariableKey}`,
arrayOfVariableValues[index]
);
});
}, [theme]);
// On Component Mount and Component Update
useEffect(() => {
updateCSSVariables(theme);
}, [updateCSSVariables, theme]);
return <Fragment>{children}</Fragment>;
}
ApplyTheme.propTypes = {
theme: PropTypes.string.isRequired,
children: PropTypes.object.isRequired
};
export default connect(createMapStateToProps)(ApplyTheme);

@ -8,5 +8,5 @@
.deleteFilesMessage { .deleteFilesMessage {
margin-top: 20px; margin-top: 20px;
color: $dangerColor; color: var(--dangerColor);
} }

@ -9,7 +9,7 @@
} }
.metadataMessage { .metadataMessage {
color: $helpTextColor; color: var(--helpTextColor);
text-align: center; text-align: center;
font-weight: 300; font-weight: 300;
font-size: 20px; font-size: 20px;
@ -22,7 +22,7 @@
.tabList { .tabList {
margin: 0; margin: 0;
padding: 0; padding: 0;
border-bottom: 1px solid $lightGray; border-bottom: 1px solid var(--lightGray);
} }
.tab { .tab {
@ -37,7 +37,7 @@
} }
.selectedTab { .selectedTab {
border-bottom: 4px solid $linkColor; border-bottom: 4px solid var(--linkColor);
} }
.tabContent { .tabContent {
@ -63,7 +63,7 @@
white-space: nowrap; white-space: nowrap;
&:hover { &:hover {
color: $iconButtonHoverLightColor; color: var(--iconButtonHoverLightColor);
} }
} }

@ -16,7 +16,7 @@
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
background: $black; background: var(--black);
opacity: 0.7; opacity: 0.7;
} }
@ -25,7 +25,7 @@
padding: 30px; padding: 30px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $white; color: var(--white);
} }
.poster { .poster {
@ -69,7 +69,7 @@
width: 40px; width: 40px;
&:hover { &:hover {
color: $iconButtonHoverLightColor; color: var(--iconButtonHoverLightColor);
} }
} }
@ -97,7 +97,7 @@
white-space: nowrap; white-space: nowrap;
&:hover { &:hover {
color: $iconButtonHoverLightColor; color: var(--iconButtonHoverLightColor);
} }
} }

@ -1,8 +1,8 @@
.bookType { .bookType {
margin-bottom: 20px; margin-bottom: 20px;
border: 1px solid $borderColor; border: 1px solid var(--borderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--cardBackgroundColor);
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;
@ -77,7 +77,7 @@
.books { .books {
padding-top: 15px; padding-top: 15px;
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
} }
.collapseButtonContainer { .collapseButtonContainer {
@ -86,10 +86,10 @@
justify-content: center; justify-content: center;
padding: 10px 15px; padding: 10px 15px;
width: 100%; width: 100%;
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px; border-bottom-left-radius: 4px;
background-color: #fafafa; background-color: var(--collapseButtonBackgroundColor);
} }
.collapseButtonIcon { .collapseButtonIcon {

@ -1,8 +1,8 @@
.bookType { .bookType {
margin-bottom: 20px; margin-bottom: 20px;
border: 1px solid $borderColor; border: 1px solid var(--borderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--cardBackgroundColor);
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;
@ -77,7 +77,7 @@
.books { .books {
padding-top: 15px; padding-top: 15px;
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
} }
.collapseButtonContainer { .collapseButtonContainer {
@ -86,10 +86,10 @@
justify-content: center; justify-content: center;
padding: 10px 15px; padding: 10px 15px;
width: 100%; width: 100%;
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px; border-bottom-left-radius: 4px;
background-color: #fafafa; background-color: var(--cardBackgroundColor);
} }
.collapseButtonIcon { .collapseButtonIcon {

@ -9,5 +9,5 @@
.path { .path {
margin-left: 5px; margin-left: 5px;
color: $dangerColor; color: var(--dangerColor);
} }

@ -21,32 +21,32 @@
.continuing { .continuing {
composes: legendItemColor; composes: legendItemColor;
background-color: $primaryColor; background-color: var(--primaryColor);
} }
.ended { .ended {
composes: legendItemColor; composes: legendItemColor;
background-color: $successColor; background-color: var(--successColor);
} }
.missingMonitored { .missingMonitored {
composes: legendItemColor; composes: legendItemColor;
background-color: $dangerColor; background-color: var(--dangerColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px); background: repeating-linear-gradient(90deg, color(#f05050 shade(5%)), color(#f05050 shade(5%)) 5px, color(#f05050 shade(15%)) 5px, color(#f05050 shade(15%)) 10px);
} }
} }
.missingUnmonitored { .missingUnmonitored {
composes: legendItemColor; composes: legendItemColor;
background-color: $warningColor; background-color: var(--warningColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px); background: repeating-linear-gradient(45deg, #ffa500, #ffa500 5px, color(#ffa500 tint(15%)) 5px, color(#ffa500 tint(15%)) 10px);
} }
} }

@ -3,7 +3,7 @@ $hoverScale: 1.05;
.container { .container {
&:hover { &:hover {
.content { .content {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }
} }
@ -35,10 +35,10 @@ $hoverScale: 1.05;
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
display: block; display: block;
color: $defaultColor; color: var(--defaultColor);
&:hover { &:hover {
color: $defaultColor; color: var(--defaultColor);
text-decoration: none; text-decoration: none;
} }
} }
@ -52,8 +52,8 @@ $hoverScale: 1.05;
height: 0; height: 0;
border-width: 0 25px 25px 0; border-width: 0 25px 25px 0;
border-style: solid; border-style: solid;
border-color: transparent $dangerColor transparent transparent; border-color: transparent var(--dangerColor) transparent transparent;
color: $white; color: var(--white);
} }
.info { .info {

@ -5,7 +5,7 @@ $hoverScale: 1.05;
&:hover { &:hover {
z-index: 2; z-index: 2;
box-shadow: 0 0 12px $black; box-shadow: 0 0 12px var(--black);
transition: all 200ms ease-in; transition: all 200ms ease-in;
.controls { .controls {
@ -32,7 +32,7 @@ $hoverScale: 1.05;
position: relative; position: relative;
display: block; display: block;
height: 70px; height: 70px;
background-color: $defaultColor; background-color: var(--defaultColor);
} }
.overlayTitle { .overlayTitle {
@ -45,13 +45,13 @@ $hoverScale: 1.05;
padding: 5px; padding: 5px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $offWhite; color: var(--offWhite);
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
} }
.nextAiring { .nextAiring {
background-color: #fafbfc; background-color: var(--seriesBackgroundColor);
text-align: center; text-align: center;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
@ -59,8 +59,7 @@ $hoverScale: 1.05;
.title { .title {
@add-mixin truncate; @add-mixin truncate;
background-color: $defaultColor; background-color: var(--seriesBackgroundColor);
color: $white;
text-align: center; text-align: center;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
@ -74,8 +73,8 @@ $hoverScale: 1.05;
height: 0; height: 0;
border-width: 0 25px 25px 0; border-width: 0 25px 25px 0;
border-style: solid; border-style: solid;
border-color: transparent $dangerColor transparent transparent; border-color: transparent var(--dangerColor) transparent transparent;
color: $white; color: var(--white);
} }
.editorSelect { .editorSelect {
@ -91,8 +90,8 @@ $hoverScale: 1.05;
left: 10px; left: 10px;
z-index: 3; z-index: 3;
border-radius: 4px; border-radius: 4px;
background-color: $themeLightColor; background-color: var(--readarrRed);
color: $white; color: var(--white);
font-size: $smallFontSize; font-size: $smallFontSize;
opacity: 0; opacity: 0;
transition: opacity 0; transition: opacity 0;

@ -1,5 +1,5 @@
.info { .info {
background-color: #fafbfc; background-color: var(--seriesBackgroundColor);
text-align: center; text-align: center;
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -3,7 +3,7 @@
border-radius: 0; border-radius: 0;
background-color: #5b5b5b; background-color: #5b5b5b;
color: $white; color: var(--white);
transition: width 200ms ease; transition: width 200ms ease;
} }

@ -31,7 +31,7 @@
position: relative; position: relative;
display: block; display: block;
height: 70px; height: 70px;
background-color: $defaultColor; background-color: var(--defaultColor);
} }
.bannerImage { .bannerImage {
@ -49,7 +49,7 @@
padding: 5px; padding: 5px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $offWhite; color: var(--offWhite);
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
} }
@ -92,7 +92,7 @@
} }
.ratings { .ratings {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css'; composes: cell from '~Components/Table/Cells/VirtualTableRowCell.css';
flex: 0 0 80px; flex: 0 0 80px;
} }

@ -2,7 +2,7 @@
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
&:hover { &:hover {
color: $linkHoverColor; color: var(--linkHoverColor);
text-decoration: underline; text-decoration: underline;
} }
} }

@ -8,5 +8,5 @@
.deleteFilesMessage { .deleteFilesMessage {
margin-top: 20px; margin-top: 20px;
color: $dangerColor; color: var(--dangerColor);
} }

@ -9,7 +9,7 @@
.tabList { .tabList {
margin: 0; margin: 0;
padding: 0; padding: 0;
border-bottom: 1px solid $lightGray; border-bottom: 1px solid var(--lightGray);
} }
.tab { .tab {
@ -24,7 +24,7 @@
} }
.selectedTab { .selectedTab {
border-bottom: 4px solid $linkColor; border-bottom: 4px solid var(--linkColor);
} }
.tabContent { .tabContent {
@ -54,7 +54,7 @@
white-space: nowrap; white-space: nowrap;
&:hover { &:hover {
color: $iconButtonHoverLightColor; color: var(--iconButtonHoverLightColor);
} }
} }

@ -16,7 +16,7 @@
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
background: $black; background: var(--black);
opacity: 0.7; opacity: 0.7;
} }
@ -25,7 +25,7 @@
padding: 30px; padding: 30px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $white; color: var(--white);
} }
.cover { .cover {
@ -69,7 +69,7 @@
width: 40px; width: 40px;
&:hover { &:hover {
color: $iconButtonHoverLightColor; color: var(--iconButtonHoverLightColor);
} }
} }

@ -5,5 +5,5 @@
.deleteFilesMessage { .deleteFilesMessage {
margin-top: 20px; margin-top: 20px;
color: $dangerColor; color: var(--dangerColor);
} }

@ -21,32 +21,32 @@
.continuing { .continuing {
composes: legendItemColor; composes: legendItemColor;
background-color: $primaryColor; background-color: var(--primaryColor);
} }
.ended { .ended {
composes: legendItemColor; composes: legendItemColor;
background-color: $successColor; background-color: var(--successColor);
} }
.missingMonitored { .missingMonitored {
composes: legendItemColor; composes: legendItemColor;
background-color: $dangerColor; background-color: var(--dangerColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px); background: repeating-linear-gradient(90deg, color(#f05050 shade(5%)), color(#f05050 shade(5%)) 5px, color(#f05050 shade(15%)) 5px, color(#f05050 shade(15%)) 10px);
} }
} }
.missingUnmonitored { .missingUnmonitored {
composes: legendItemColor; composes: legendItemColor;
background-color: $warningColor; background-color: var(--warningColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px); background: repeating-linear-gradient(45deg, #ffa500, #ffa500 5px, color(#ffa500 tint(15%)) 5px, color(#ffa500 tint(15%)) 10px);
} }
} }

@ -3,7 +3,7 @@ $hoverScale: 1.05;
.container { .container {
&:hover { &:hover {
.content { .content {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }
} }
@ -35,10 +35,10 @@ $hoverScale: 1.05;
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
display: block; display: block;
color: $defaultColor; color: var(--defaultColor);
&:hover { &:hover {
color: $defaultColor; color: var(--defaultColor);
text-decoration: none; text-decoration: none;
} }
} }
@ -52,8 +52,8 @@ $hoverScale: 1.05;
height: 0; height: 0;
border-width: 0 25px 25px 0; border-width: 0 25px 25px 0;
border-style: solid; border-style: solid;
border-color: transparent $dangerColor transparent transparent; border-color: transparent var(--dangerColor) transparent transparent;
color: $white; color: var(--white);
} }
.info { .info {

@ -5,7 +5,7 @@ $hoverScale: 1.05;
&:hover { &:hover {
z-index: 2; z-index: 2;
box-shadow: 0 0 12px $black; box-shadow: 0 0 12px var(--black);
transition: all 200ms ease-in; transition: all 200ms ease-in;
.controls { .controls {
@ -32,7 +32,7 @@ $hoverScale: 1.05;
position: relative; position: relative;
display: block; display: block;
height: 70px; height: 70px;
background-color: $defaultColor; background-color: var(--cardBackgroundColor);
} }
.overlayTitle { .overlayTitle {
@ -45,7 +45,7 @@ $hoverScale: 1.05;
padding: 5px; padding: 5px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $offWhite; color: var(--cardBackgroundColor);
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
} }
@ -59,8 +59,8 @@ $hoverScale: 1.05;
.title { .title {
@add-mixin truncate; @add-mixin truncate;
background-color: $defaultColor; background-color: var(--cardBackgroundColor);
color: $white; color: var(--textColor);
text-align: center; text-align: center;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
@ -74,8 +74,8 @@ $hoverScale: 1.05;
height: 0; height: 0;
border-width: 0 25px 25px 0; border-width: 0 25px 25px 0;
border-style: solid; border-style: solid;
border-color: transparent $dangerColor transparent transparent; border-color: transparent var(--dangerColor) transparent transparent;
color: $white; color: var(--textColor);
} }
.editorSelect { .editorSelect {
@ -91,8 +91,8 @@ $hoverScale: 1.05;
left: 10px; left: 10px;
z-index: 3; z-index: 3;
border-radius: 4px; border-radius: 4px;
background-color: $themeLightColor; background-color: var(--readarrRed);
color: $white; color: var(--white);
font-size: $smallFontSize; font-size: $smallFontSize;
opacity: 0; opacity: 0;
transition: opacity 0; transition: opacity 0;

@ -3,7 +3,7 @@
border-radius: 0; border-radius: 0;
background-color: #5b5b5b; background-color: #5b5b5b;
color: $white; color: var(--white);
transition: width 200ms ease; transition: width 200ms ease;
} }

@ -29,7 +29,7 @@
position: relative; position: relative;
display: block; display: block;
height: 70px; height: 70px;
background-color: $defaultColor; background-color: var(--defaultColor);
} }
.bannerImage { .bannerImage {
@ -47,7 +47,7 @@
padding: 5px; padding: 5px;
width: 100%; width: 100%;
height: 100%; height: 100%;
color: $offWhite; color: var(--offWhite);
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
} }

@ -1,10 +1,10 @@
.filesTable { .filesTable {
margin-bottom: 20px; margin-bottom: 20px;
padding-top: 15px; padding-top: 15px;
border: 1px solid $borderColor; border: 1px solid var(--borderColor);
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--cardBackgroundColor);
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;

@ -1,8 +1,8 @@
.fileDetails { .fileDetails {
margin-bottom: 20px; margin-bottom: 20px;
border: 1px solid $borderColor; border: 1px solid var(--borderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--white);
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;

@ -3,9 +3,9 @@
align-items: stretch; align-items: stretch;
overflow: hidden; overflow: hidden;
margin: 2px 4px; margin: 2px 4px;
border: 1px solid $borderColor; border: 1px solid var(--borderColor);
border-radius: 4px; border-radius: 4px;
background-color: #eee; background-color: var(--seasonBackgroundColor);
cursor: default; cursor: default;
} }
@ -17,21 +17,21 @@
padding: 0 4px; padding: 0 4px;
border-width: 0 1px; border-width: 0 1px;
border-style: solid; border-style: solid;
border-color: $borderColor; border-color: var(--borderColor);
background-color: $white; background-color: var(--white);
color: $defaultColor; color: var(--defaultColor);
} }
.books { .books {
padding: 0 4px; padding: 0 4px;
background-color: $white; background-color: var(--episodesBackgroundColor);
color: $defaultColor; color: var(--defaultColor);
} }
.allBooks { .allBooks {
background-color: #e0ffe0; background-color: var(--successColor);
} }
.missingWanted { .missingWanted {
background-color: #ffe0e0; background-color: var(--dangerColor);
} }

@ -2,11 +2,11 @@
display: flex; display: flex;
overflow-x: hidden; overflow-x: hidden;
padding: 5px; padding: 5px;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--borderColor);
font-size: $defaultFontSize; font-size: $defaultFontSize;
&:hover { &:hover {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }

@ -2,8 +2,8 @@
flex: 1 0 14.28%; flex: 1 0 14.28%;
overflow: hidden; overflow: hidden;
min-height: 70px; min-height: 70px;
border-bottom: 1px solid $calendarBorderColor; border-bottom: 1px solid var(--calendarBorderColor);
border-left: 1px solid $calendarBorderColor; border-left: 1px solid var(--calendarBorderColor);
} }
.isSingleDay { .isSingleDay {
@ -12,14 +12,14 @@
.dayOfMonth { .dayOfMonth {
padding-right: 5px; padding-right: 5px;
border-bottom: 1px solid $calendarBorderColor; border-bottom: 1px solid var(--calendarBorderColor);
text-align: right; text-align: right;
} }
.isToday { .isToday {
background-color: $calendarTodayBackgroundColor; background-color: var(--calendarTodayBackgroundColor);
} }
.isDifferentMonth { .isDifferentMonth {
color: $disabledColor; color: var(--disabledColor);
} }

@ -1,6 +1,6 @@
.days { .days {
display: flex; display: flex;
border-right: 1px solid $calendarBorderColor; border-right: 1px solid var(--calendarBorderColor);
} }
.day, .day,

@ -1,6 +1,6 @@
.dayOfWeek { .dayOfWeek {
flex: 1 0 14.28%; flex: 1 0 14.28%;
background-color: #e4eaec; background-color: var(--calendarBackgroudColor);
text-align: center; text-align: center;
} }
@ -9,5 +9,5 @@
} }
.isToday { .isToday {
background-color: $calendarTodayBackgroundColor; background-color: var(--calendarTodayBackgroundColor);
} }

@ -1,9 +1,11 @@
$fullColorGradient: rgba(244, 245, 246, 0.2);
.event { .event {
overflow-x: hidden; overflow-x: hidden;
margin: 4px 2px; margin: 4px 2px;
padding: 5px; padding: 5px;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--calendarBorderColor);
border-left: 4px solid $borderColor; border-left: 4px solid var(--calendarBorderColor);
font-size: 12px; font-size: 12px;
&:global(.colorImpaired) { &:global(.colorImpaired) {
@ -25,7 +27,7 @@
} }
.authorName { .authorName {
color: #3a3f51; color: var(--calendarTextDimAlternate);
font-size: $defaultFontSize; font-size: $defaultFontSize;
} }
@ -42,38 +44,50 @@
*/ */
.downloaded { .downloaded {
border-left-color: $successColor !important; border-left-color: var(--successColor) !important;
&:global(.colorImpaired) { &:global(.colorImpaired) {
border-left-color: color($successColor, saturation(+15%)) !important; border-left-color: color(#27c24c saturation(+15%)) !important;
} }
} }
.downloading { .downloading {
border-left-color: $purple !important; border-left-color: var(--purple) !important;
&:global(.fullColor) {
background-color: rgba(122, 67, 182, 0.4) !important;
}
} }
.unmonitored { .unmonitored {
border-left-color: $gray !important; border-left-color: var(--gray) !important;
&:global(.fullColor) {
background-color: rgba(173, 173, 173, 0.5) !important;
}
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px); background: repeating-linear-gradient(45deg, var(--colorImpairedGradientDark), var(--colorImpairedGradientDark) 5px, var(--colorImpairedGradient) 5px, var(--colorImpairedGradient) 10px);
}
&:global(.fullColor.colorImpaired) {
background: repeating-linear-gradient(45deg, $fullColorGradient, $fullColorGradient 5px, transparent 5px, transparent 10px);
} }
} }
.missing { .missing {
border-left-color: $dangerColor !important; border-left-color: var(--dangerColor) !important;
&:global(.colorImpaired) { &:global(.colorImpaired) {
border-left-color: color($dangerColor saturation(+15%)) !important; border-left-color: color(#f05050 saturation(+15%)) !important;
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px); background: repeating-linear-gradient(90deg, var(--colorImpairedGradientDark), var(--colorImpairedGradientDark) 5px, var(--colorImpairedGradient) 5px, var(--colorImpairedGradient) 10px);
} }
} }
.unreleased { .unreleased {
border-left-color: $primaryColor !important; border-left-color: var(--primaryColor) !important;
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px); background: repeating-linear-gradient(90deg, var(--colorImpairedGradientDark), var(--colorImpairedGradientDark) 5px, var(--colorImpairedGradient) 5px, var(--colorImpairedGradient) 10px);
} }
} }

@ -2,7 +2,6 @@ import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import QueueDetails from 'Activity/Queue/QueueDetails'; import QueueDetails from 'Activity/Queue/QueueDetails';
import CircularProgressBar from 'Components/CircularProgressBar'; import CircularProgressBar from 'Components/CircularProgressBar';
import colors from 'Styles/Variables/colors';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
function CalendarEventQueueDetails(props) { function CalendarEventQueueDetails(props) {
@ -31,7 +30,7 @@ function CalendarEventQueueDetails(props) {
progress={progress} progress={progress}
size={20} size={20}
strokeWidth={2} strokeWidth={2}
strokeColor={colors.purple} strokeColor={'#7a43b6'}
/> />
</div> </div>
} }

@ -7,25 +7,25 @@
} }
.danger { .danger {
border-color: $alertDangerBorderColor; border-color: var(--alertDangerBorderColor);
background-color: $alertDangerBackgroundColor; background-color: var(--alertDangerBackgroundColor);
color: $alertDangerColor; color: var(--alertDangerColor);
} }
.info { .info {
border-color: $alertInfoBorderColor; border-color: var(--alertInfoBorderColor);
background-color: $alertInfoBackgroundColor; background-color: var(--alertInfoBackgroundColor);
color: $alertInfoColor; color: var(--alertInfoColor);
} }
.success { .success {
border-color: $alertSuccessBorderColor; border-color: var(--alertSuccessBorderColor);
background-color: $alertSuccessBackgroundColor; background-color: var(--alertSuccessBackgroundColor);
color: $alertSuccessColor; color: var(--alertSuccessColor);
} }
.warning { .warning {
border-color: $alertWarningBorderColor; border-color: var(--alertWarningBorderColor);
background-color: $alertWarningBackgroundColor; background-color: var(--alertWarningBackgroundColor);
color: $alertWarningColor; color: var(--alertWarningColor);
} }

@ -3,9 +3,9 @@
margin: 10px; margin: 10px;
padding: 10px; padding: 10px;
border-radius: 3px; border-radius: 3px;
background-color: $white; background-color: var(--cardBackgroundColor);
box-shadow: 0 0 10px 1px $cardShadowColor; box-shadow: 0 0 10px 1px var(--cardShadowColor);
color: $defaultColor; color: var(--defaultColor);
} }
.underlay { .underlay {

@ -1,6 +1,5 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import colors from 'Styles/Variables/colors';
import styles from './CircularProgressBar.css'; import styles from './CircularProgressBar.css';
class CircularProgressBar extends Component { class CircularProgressBar extends Component {
@ -132,7 +131,7 @@ CircularProgressBar.defaultProps = {
containerClassName: styles.circularProgressBarContainer, containerClassName: styles.circularProgressBarContainer,
size: 60, size: 60,
strokeWidth: 5, strokeWidth: 5,
strokeColor: colors.readarrGreen, strokeColor: '#00A65B',
showProgressText: false showProgressText: false
}; };

@ -13,7 +13,7 @@
width: 100%; width: 100%;
border: 0; border: 0;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
color: #3a3f51; color: var(--textColor);
font-size: 21px; font-size: 21px;
line-height: inherit; line-height: inherit;
} }

@ -13,7 +13,7 @@
} }
.faqLink { .faqLink {
color: $alertWarningColor; color: var(--alertWarningColor);
font-weight: bold; font-weight: bold;
} }

@ -3,7 +3,7 @@
margin-bottom: 5px; margin-bottom: 5px;
&:hover { &:hover {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }

@ -15,5 +15,6 @@
.or { .or {
margin: 0 3px; margin: 0 3px;
color: $themeDarkColor; color: var(--themeDarkColor);
line-height: 31px;
} }

@ -4,7 +4,7 @@
padding: 5px; padding: 5px;
&:hover { &:hover {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }

@ -27,10 +27,10 @@
overflow-y: auto; overflow-y: auto;
max-height: 200px; max-height: 200px;
width: 100%; width: 100%;
border: 1px solid $inputBorderColor; border: 1px solid var(--inputBorderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--inputBackgroundColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor);
} }
} }
@ -46,5 +46,5 @@
} }
.suggestionHighlighted { .suggestionHighlighted {
background-color: $menuItemHoverBackgroundColor; background-color: var(--menuItemHoverBackgroundColor);
} }

@ -32,21 +32,21 @@
height: 20px; height: 20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 2px; border-radius: 2px;
background-color: $white; background-color: var(--white);
color: $white; color: var(--white);
text-align: center; text-align: center;
line-height: 20px; line-height: 20px;
} }
.checkbox:focus + .input { .checkbox:focus + .input {
outline: 0; outline: 0;
border-color: $inputFocusBorderColor; border-color: var(--inputFocusBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor);
} }
.dangerIsChecked { .dangerIsChecked {
border-color: $dangerColor; border-color: var(--dangerColor);
background-color: $dangerColor; background-color: var(--dangerColor);
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@ -54,8 +54,8 @@
} }
.primaryIsChecked { .primaryIsChecked {
border-color: $primaryColor; border-color: var(--primaryColor);
background-color: $primaryColor; background-color: var(--primaryColor);
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@ -63,8 +63,8 @@
} }
.successIsChecked { .successIsChecked {
border-color: $successColor; border-color: var(--successColor);
background-color: $successColor; background-color: var(--successColor);
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@ -72,8 +72,8 @@
} }
.warningIsChecked { .warningIsChecked {
border-color: $warningColor; border-color: var(--warningColor);
background-color: $warningColor; background-color: var(--warningColor);
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@ -82,15 +82,15 @@
.isNotChecked { .isNotChecked {
&.isDisabled { &.isDisabled {
border-color: $disabledCheckInputColor; border-color: var(--disabledCheckInputColor);
background-color: $disabledCheckInputColor; background-color: var(--disabledCheckInputColor);
opacity: 0.7; opacity: 0.7;
} }
} }
.isIndeterminate { .isIndeterminate {
border-color: $gray; border-color: var(--gray);
background-color: $gray; background-color: var(--gray);
} }
.helpText { .helpText {

@ -39,7 +39,7 @@
.dropdownArrowContainerDisabled { .dropdownArrowContainerDisabled {
composes: dropdownArrowContainer; composes: dropdownArrowContainer;
color: $disabledInputColor; color: var(--disabledInputColor);
} }
.optionsContainer { .optionsContainer {
@ -50,9 +50,9 @@
.options { .options {
composes: scroller from '~Components/Scroller/Scroller.css'; composes: scroller from '~Components/Scroller/Scroller.css';
border: 1px solid $inputBorderColor; border: 1px solid var(--inputBorderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--inputBackgroundColor);
} }
.optionsModal { .optionsModal {
@ -75,9 +75,9 @@
.optionsModalScroller { .optionsModalScroller {
composes: scroller from '~Components/Scroller/Scroller.css'; composes: scroller from '~Components/Scroller/Scroller.css';
border: 1px solid $inputBorderColor; border: 1px solid var(--inputBorderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--inputBackgroundColor);
} }
.loading { .loading {
@ -89,7 +89,7 @@
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
height: 40px; height: 40px;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--borderColor);
} }
.mobileCloseButton { .mobileCloseButton {
@ -99,6 +99,6 @@
line-height: 40px; line-height: 40px;
&:hover { &:hover {
color: $modalCloseButtonHoverColor; color: var(--modalCloseButtonHoverColor);
} }
} }

@ -7,7 +7,7 @@
cursor: default; cursor: default;
&:hover { &:hover {
background-color: #f8f8f8; background-color: var(--inputHoverBackgroundColor);
} }
} }
@ -24,17 +24,17 @@
} }
.isSelected { .isSelected {
background-color: #e2e2e2; background-color: var(--inputSelectedBackgroundColor);
&:hover { &:hover {
background-color: #e2e2e2; background-color: var(--inputSelectedBackgroundColor);
} }
&.isMobile { &.isMobile {
background-color: inherit; background-color: inherit;
.iconContainer { .iconContainer {
color: $primaryColor; color: var(--primaryColor);
} }
} }
} }
@ -49,7 +49,7 @@
.isMobile { .isMobile {
height: 50px; height: 50px;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--borderColor);
&:last-child { &:last-child {
border: none; border: none;

@ -3,5 +3,5 @@
} }
.isDisabled { .isDisabled {
color: $disabledInputColor; color: var(--disabledInputColor);
} }

@ -40,7 +40,7 @@
} }
.pendingChangesIcon { .pendingChangesIcon {
color: $warningColor; color: var(--warningColor);
font-size: 20px; font-size: 20px;
line-height: 35px; line-height: 35px;
} }

@ -1,14 +1,14 @@
.helpText { .helpText {
margin-top: 5px; margin-top: 5px;
color: $helpTextColor; color: var(--helpTextColor);
line-height: 20px; line-height: 20px;
} }
.isError { .isError {
color: $dangerColor; color: var(--dangerColor);
.link { .link {
color: $dangerColor; color: var(--dangerColor);
&:hover { &:hover {
color: #e01313; color: #e01313;
@ -17,10 +17,10 @@
} }
.isWarning { .isWarning {
color: $warningColor; color: var(--warningColor);
.link { .link {
color: $warningColor; color: var(--warningColor);
&:hover { &:hover {
color: #e36c00; color: #e36c00;

@ -7,11 +7,11 @@
} }
.hasError { .hasError {
color: $dangerColor; color: var(--dangerColor);
} }
.isAdvanced { .isAdvanced {
color: $advancedFormLabelColor; color: var(--advancedFormLabelColor);
} }
@media only screen and (max-width: $breakpointLarge) { @media only screen and (max-width: $breakpointLarge) {

@ -18,6 +18,6 @@
@add-mixin truncate; @add-mixin truncate;
margin-left: 15px; margin-left: 15px;
color: $darkGray; color: var(--darkGray);
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -18,7 +18,7 @@
flex: 1 10 0; flex: 1 10 0;
margin-left: 15px; margin-left: 15px;
color: $gray; color: var(--gray);
text-align: right; text-align: right;
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -2,26 +2,27 @@
padding: 6px 16px; padding: 6px 16px;
width: 100%; width: 100%;
height: 35px; height: 35px;
border: 1px solid $inputBorderColor; border: 1px solid var(--inputBorderColor);
border-radius: 4px; border-radius: 4px;
background-color: $white; background-color: var(--inputBackgroundColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor);
color: var(--textColor);
&:focus { &:focus {
outline: 0; outline: 0;
border-color: $inputFocusBorderColor; border-color: var(--inputFocusBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor);
} }
} }
.hasError { .hasError {
border-color: $inputErrorBorderColor; border-color: var(--inputErrorBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputErrorBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputErrorBoxShadowColor);
} }
.hasWarning { .hasWarning {
border-color: $inputWarningBorderColor; border-color: var(--inputWarningBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputWarningBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputWarningBoxShadowColor);
} }
.hasButton { .hasButton {

@ -7,8 +7,8 @@
&.isFocused { &.isFocused {
outline: 0; outline: 0;
border-color: $inputFocusBorderColor; border-color: var(--inputFocusBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor);
} }
} }

@ -1,7 +1,7 @@
.itemContainer { .itemContainer {
display: flex; display: flex;
margin-bottom: 3px; margin-bottom: 3px;
border-bottom: 1px solid $inputBorderColor; border-bottom: 1px solid var(--inputBorderColor);
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
@ -20,4 +20,6 @@
.valueInput { .valueInput {
width: 100%; width: 100%;
border: none; border: none;
background-color: var(--inputBackground);
color: var(--textColor);
} }

@ -15,6 +15,6 @@
.freeSpace { .freeSpace {
margin-left: 15px; margin-left: 15px;
color: $darkGray; color: var(--darkGray);
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -16,7 +16,7 @@
.freeSpace { .freeSpace {
flex: 0 0 auto; flex: 0 0 auto;
margin-left: 15px; margin-left: 15px;
color: $gray; color: var(--gray);
text-align: right; text-align: right;
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -7,8 +7,8 @@
&.isFocused { &.isFocused {
outline: 0; outline: 0;
border-color: $inputFocusBorderColor; border-color: var(--inputFocusBorderColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor);
} }
} }
@ -28,4 +28,6 @@
width: 0%; width: 0%;
height: 31px; height: 31px;
border: none; border: none;
background-color: var(--inputBackground);
color: var(--textColor);
} }

@ -3,7 +3,7 @@
} }
.readOnly { .readOnly {
background-color: #eee; background-color: var(--inputReadOnlyBackgroundColor);
} }
.hasError { .hasError {

@ -49,5 +49,5 @@
} }
.readOnly { .readOnly {
background-color: #eee; background-color: var(--inputReadOnlyBackgroundColor);
} }

@ -1,4 +1,4 @@
.heart { .heart {
margin-right: 5px; margin-right: 5px;
color: $themeRed; color: var(--themeRed);
} }

@ -1,5 +1,5 @@
.danger { .danger {
color: $dangerColor; color: var(--dangerColor);
} }
.default { .default {
@ -7,25 +7,33 @@
} }
.disabled { .disabled {
color: $disabledColor; color: var(--disabledColor);
} }
.info { .info {
color: $infoColor; color: var(--infoColor);
&:global(.darken) {
color: color(var(--infoColor) shade(30%));
}
} }
.pink { .pink {
color: $pink; color: var(--pink);
&:global(.darken) {
color: color(var(--pink) shade(30%));
}
} }
.success { .success {
color: $successColor; color: var(--successColor);
} }
.warning { .warning {
color: $warningColor; color: var(--warningColor);
} }
.purple { .purple {
color: $purple; color: var(--purple);
} }

@ -3,7 +3,7 @@
margin: 2px; margin: 2px;
border: 1px solid; border: 1px solid;
border-radius: 2px; border-radius: 2px;
color: $white; color: var(--white);
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
line-height: 1; line-height: 1;
@ -13,76 +13,78 @@
/** Kinds **/ /** Kinds **/
.danger { .danger {
border-color: $dangerColor; border-color: var(--dangerColor);
background-color: $dangerColor; background-color: var(--dangerColor);
&.outline { &.outline {
color: $dangerColor; color: var(--dangerColor);
} }
} }
.default { .default {
border-color: $themeLightColor; border-color: var(--themeLightColor);
background-color: $themeLightColor; background-color: var(--themeLightColor);
&.outline { &.outline {
color: $themeLightColor; color: var(--themeLightColor);
} }
} }
.disabled { .disabled {
border-color: $disabledColor; border-color: var(--disabledColor);
background-color: $disabledColor; background-color: var(--disabledColor);
&.outline { &.outline {
color: $disabledColor; color: var(--white);
} }
} }
.info { .info {
border-color: $infoColor; border-color: var(--infoColor);
background-color: $infoColor; background-color: var(--infoColor);
color: var(--infoTextColor);
&.outline { &.outline {
color: $infoColor; color: var(--infoColor);
} }
} }
.inverse { .inverse {
border-color: $lightGray; border-color: var(--inverseLabelColor);
background-color: $lightGray; background-color: var(--inverseLabelColor);
color: $defaultColor; color: var(--inverseLabelTextColor);
&.outline { &.outline {
background-color: $defaultColor !important; background-color: var(--inverseLabelTextColor) !important;
color: $lightGray; color: var(--inverseLabelColor);
} }
} }
.primary { .primary {
border-color: $primaryColor; border-color: var(--primaryColor);
background-color: $primaryColor; background-color: var(--primaryColor);
&.outline { &.outline {
color: $primaryColor; color: var(--primaryColor);
} }
} }
.success { .success {
border-color: $successColor; border-color: var(--successColor);
background-color: $successColor; background-color: var(--successColor);
color: #eee;
&.outline { &.outline {
color: $successColor; color: var(--successColor);
} }
} }
.warning { .warning {
border-color: $warningColor; border-color: var(--warningColor);
background-color: $warningColor; background-color: var(--warningColor);
&.outline { &.outline {
color: $warningColor; color: var(--warningColor);
} }
} }
@ -107,5 +109,5 @@
/** Outline **/ /** Outline **/
.outline { .outline {
background-color: $white; background-color: var(--disabledLabelColor);
} }

@ -19,62 +19,62 @@
} }
.danger { .danger {
border-color: $dangerBorderColor; border-color: var(--dangerBorderColor);
background-color: $dangerBackgroundColor; background-color: var(--dangerBackgroundColor);
color: $white; color: var(--white);
&:hover { &:hover {
border-color: $dangerHoverBorderColor; border-color: var(--dangerHoverBorderColor);
background-color: $dangerHoverBackgroundColor; background-color: var(--dangerHoverBackgroundColor);
color: $white; color: var(--white);
} }
} }
.default { .default {
border-color: $defaultBorderColor; border-color: var(--defaultBorderColor);
background-color: $defaultBackgroundColor; background-color: var(--defaultBackgroundColor);
color: $defaultColor; color: var(--defaultColor);
&:hover { &:hover {
border-color: $defaultHoverBorderColor; border-color: var(--defaultHoverBorderColor);
background-color: $defaultHoverBackgroundColor; background-color: var(--defaultHoverBackgroundColor);
color: $defaultColor; color: var(--defaultColor);
} }
} }
.primary { .primary {
border-color: $primaryBorderColor; border-color: var(--primaryBorderColor);
background-color: $primaryBackgroundColor; background-color: var(--primaryBackgroundColor);
color: $white; color: var(--white);
&:hover { &:hover {
border-color: $primaryHoverBorderColor; border-color: var(--primaryHoverBorderColor);
background-color: $primaryHoverBackgroundColor; background-color: var(--primaryHoverBackgroundColor);
color: $white; color: var(--white);
} }
} }
.success { .success {
border-color: $successBorderColor; border-color: var(--successBorderColor);
background-color: $successBackgroundColor; background-color: var(--successBackgroundColor);
color: $white; color: var(--white);
&:hover { &:hover {
border-color: $successHoverBorderColor; border-color: var(--successHoverBorderColor);
background-color: $successHoverBackgroundColor; background-color: var(--successHoverBackgroundColor);
color: $white; color: var(--white);
} }
} }
.warning { .warning {
border-color: $warningBorderColor; border-color: var(--warningBorderColor);
background-color: $warningBackgroundColor; background-color: var(--warningBackgroundColor);
color: $white; color: var(--white);
&:hover { &:hover {
border-color: $warningHoverBorderColor; border-color: var(--warningHoverBorderColor);
background-color: $warningHoverBackgroundColor; background-color: var(--warningHoverBackgroundColor);
color: $white; color: var(--white);
} }
} }

@ -12,10 +12,10 @@
&:hover { &:hover {
border: none; border: none;
background-color: inherit; background-color: inherit;
color: $iconButtonHoverColor; color: var(--iconButtonHoverColor);
} }
&.isDisabled { &.isDisabled {
color: $iconButtonDisabledColor; color: var(--iconButtonDisabledColor);
} }
} }

@ -15,10 +15,10 @@
} }
.to { .to {
color: $linkColor; color: var(--linkColor);
&:hover { &:hover {
color: $linkHoverColor; color: var(--linkHoverColor);
text-decoration: underline; text-decoration: underline;
} }
} }

@ -26,7 +26,7 @@
.ripple { .ripple {
position: absolute; position: absolute;
border: 2px solid #3a3f51; border: 2px solid var(--themeDarkColor);
border-radius: 100%; border-radius: 100%;
animation: rippleContainer 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); animation: rippleContainer 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8);
animation-fill-mode: both; animation-fill-mode: both;

@ -4,8 +4,8 @@
padding-left: 10px; padding-left: 10px;
white-space: nowrap; white-space: nowrap;
/* stylelint-disable-next-line property-no-vendor-prefix */ /* stylelint-disable-next-line property-no-vendor-prefix */
-webkit-mask-image: linear-gradient(to right, transparent, $white 10px, $white 90%, transparent), linear-gradient(to left, transparent, $white 10px, $white 90%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, var(--white) 10px, var(--white) 90%, transparent), linear-gradient(to left, transparent, var(--white) 10px, var(--white) 90%, transparent);
mask-image: linear-gradient(to right, transparent, $white 10px, $white 90%, transparent), linear-gradient(to left, transparent, $white 10px, $white 90%, transparent); mask-image: linear-gradient(to right, transparent, var(--white) 10px, var(--white) 90%, transparent), linear-gradient(to left, transparent, var(--white) 10px, var(--white) 90%, transparent);
} }
.inner { .inner {

@ -10,12 +10,12 @@
} }
&:hover { &:hover {
color: $toobarButtonHoverColor; color: var(--toobarButtonHoverColor);
} }
} }
.isDisabled { .isDisabled {
color: $disabledColor; color: var(--disabledColor);
pointer-events: none; pointer-events: none;
} }

@ -2,7 +2,7 @@
z-index: $popperZIndex; z-index: $popperZIndex;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: $toolbarMenuItemBackgroundColor; background-color: var(--toolbarMenuItemBackgroundColor);
line-height: 20px; line-height: 20px;
} }

@ -5,19 +5,19 @@
padding: 10px 20px; padding: 10px 20px;
min-width: 150px; min-width: 150px;
max-width: 250px; max-width: 250px;
background-color: $toolbarMenuItemBackgroundColor; background-color: var(--toolbarMenuItemBackgroundColor);
color: $menuItemColor; color: var(--menuItemColor);
line-height: 20px; line-height: 20px;
&:hover, &:hover,
&:focus { &:focus {
background-color: $toolbarMenuItemHoverBackgroundColor; background-color: var(--toolbarMenuItemHoverBackgroundColor);
color: $menuItemHoverColor; color: var(--menuItemHoverColor);
text-decoration: none; text-decoration: none;
} }
} }
.isDisabled { .isDisabled {
color: $disabledColor; color: var(--disabledColor);
pointer-events: none; pointer-events: none;
} }

@ -2,5 +2,5 @@
overflow: hidden; overflow: hidden;
min-height: 1px; min-height: 1px;
height: 1px; height: 1px;
background-color: $themeDarkColor; background-color: var(--themeDarkColor);
} }

@ -12,7 +12,7 @@
justify-content: center; justify-content: center;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: $modalBackdropBackgroundColor; background-color: var(--modalBackdropBackgroundColor);
opacity: 1; opacity: 1;
} }

@ -4,7 +4,7 @@
flex-direction: column; flex-direction: column;
flex-grow: 1; flex-grow: 1;
width: 100%; width: 100%;
background-color: $modalBackgroundColor; background-color: var(--modalBackgroundColor);
} }
.closeButton { .closeButton {
@ -18,6 +18,6 @@
line-height: 60px; line-height: 60px;
&:hover { &:hover {
color: $modalCloseButtonHoverColor; color: var(--modalCloseButtonHoverColor);
} }
} }

@ -4,7 +4,7 @@
justify-content: flex-end; justify-content: flex-end;
flex-shrink: 0; flex-shrink: 0;
padding: 15px 30px; padding: 15px 30px;
border-top: 1px solid $borderColor; border-top: 1px solid var(--borderColor);
a, a,
button { button {

@ -3,6 +3,6 @@
flex-shrink: 0; flex-shrink: 0;
padding: 15px 50px 15px 30px; padding: 15px 50px 15px 30px;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--borderColor);
font-size: 18px; font-size: 18px;
} }

@ -6,6 +6,6 @@
} }
.isDisabled { .isDisabled {
color: $disabledColor; color: var(--disabledColor);
cursor: not-allowed; cursor: not-allowed;
} }

@ -12,22 +12,22 @@
.ripple { .ripple {
composes: ripple from '~Components/Loading/LoadingIndicator.css'; composes: ripple from '~Components/Loading/LoadingIndicator.css';
border: 1px solid $toolbarColor; border: 1px solid var(--toolbarColor);
} }
.input { .input {
margin-left: 8px; margin-left: 8px;
width: 200px; width: 200px;
border: none; border: none;
border-bottom: solid 1px $white; border-bottom: solid 1px var(--white);
border-radius: 0; border-radius: 0;
background-color: transparent; background-color: transparent;
box-shadow: none; box-shadow: none;
color: $white; color: var(--white);
transition: border 0.3s ease-out; transition: border 0.3s ease-out;
&::placeholder { &::placeholder {
color: $white; color: var(--white);
transition: color 0.3s ease-out; transition: color 0.3s ease-out;
} }
@ -60,13 +60,13 @@
overflow-y: auto; overflow-y: auto;
min-width: 100%; min-width: 100%;
max-height: 230px; max-height: 230px;
border: 1px solid $themeDarkColor; border: 1px solid var(--themeDarkColor);
border-radius: 4px; border-radius: 4px;
border-top-left-radius: 0; border-top-left-radius: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
background-color: $themeDarkColor; background-color: var(--themeDarkColor);
box-shadow: inset 0 1px 1px $inputBoxShadowColor; box-shadow: inset 0 1px 1px var(--inputBoxShadowColor);
color: $menuItemColor; color: var(--menuItemColor);
} }
} }
@ -82,12 +82,12 @@
} }
.highlighted { .highlighted {
background-color: $primaryHoverBackgroundColor; background-color: var(--themeLightColor);
} }
.sectionTitle { .sectionTitle {
padding: 5px 8px; padding: 5px 8px;
color: $disabledColor; color: var(--disabledColor);
} }
.addNewAuthorSuggestion { .addNewAuthorSuggestion {

@ -22,7 +22,7 @@
.alternateTitle { .alternateTitle {
composes: title; composes: title;
color: $disabledColor; color: var(--disabledColor);
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -22,7 +22,7 @@
.alternateTitle { .alternateTitle {
composes: title; composes: title;
color: $disabledColor; color: var(--disabledColor);
font-size: $smallFontSize; font-size: $smallFontSize;
} }

@ -8,8 +8,8 @@
.key { .key {
padding: 2px 4px; padding: 2px 4px;
border-radius: 3px; border-radius: 3px;
background-color: $defaultColor; background-color: var(--defaultColor);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
color: $white; color: var(--white);
font-size: 16px; font-size: 16px;
} }

@ -4,8 +4,8 @@
align-items: center; align-items: center;
flex: 0 0 auto; flex: 0 0 auto;
height: $headerHeight; height: $headerHeight;
background-color: $themeAlternateRed; background-color: var(--pageHeaderBackgroundColor);
color: $white; color: var(--white);
} }
.logoContainer { .logoContainer {
@ -41,12 +41,12 @@
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
width: 30px; width: 30px;
color: $themeDarkRed; color: var(--themeRed);
text-align: center; text-align: center;
line-height: 60px; line-height: 60px;
&:hover { &:hover {
color: $themeDarkColor; color: var(--themeDarkColor);
} }
} }

@ -5,7 +5,7 @@
text-align: center; text-align: center;
&:hover { &:hover {
color: $themeDarkColor; color: var(--themeDarkColor);
} }
} }

@ -1,5 +1,7 @@
.page { .page {
composes: page from '~./Page.css'; composes: page from '~./Page.css';
background-color: var(--pageBackground);
} }
.logoFull { .logoFull {

@ -2,7 +2,7 @@
display: flex; display: flex;
flex: 0 0 auto; flex: 0 0 auto;
padding: 20px; padding: 20px;
background-color: #f1f1f1; background-color: var(--pageFooterBackground);
} }
@media only screen and (max-width: $breakpointSmall) { @media only screen and (max-width: $breakpointSmall) {

@ -1,6 +1,6 @@
.jumpBarItem { .jumpBarItem {
flex: 1 1 $jumpBarItemHeight; flex: 1 1 $jumpBarItemHeight;
border-bottom: 1px solid $borderColor; border-bottom: 1px solid var(--borderColor);
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;

@ -1,6 +1,6 @@
.message { .message {
display: flex; display: flex;
border-left: 3px solid $infoColor; border-left: 3px solid var(--infoColor);
} }
.iconContainer, .iconContainer,
@ -9,7 +9,7 @@
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
padding: 2px 0; padding: 2px 0;
color: $sidebarColor; color: var(--sidebarColor);
} }
.iconContainer { .iconContainer {
@ -26,17 +26,17 @@
/* Types */ /* Types */
.error { .error {
border-left-color: $dangerColor; border-left-color: var(--dangerColor);
} }
.info { .info {
border-left-color: $infoColor; border-left-color: var(--infoColor);
} }
.success { .success {
border-left-color: $successColor; border-left-color: var(--successColor);
} }
.warning { .warning {
border-left-color: $warningColor; border-left-color: var(--warningColor);
} }

@ -2,7 +2,7 @@
flex: 0 0 $sidebarWidth; flex: 0 0 $sidebarWidth;
overflow: hidden; overflow: hidden;
width: $sidebarWidth; width: $sidebarWidth;
background-color: $sidebarBackgroundColor; background-color: var(--sidebarBackgroundColor);
transition: transform 300ms ease-in-out; transition: transform 300ms ease-in-out;
transform: translateX(0); transform: translateX(0);
} }
@ -11,8 +11,8 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
background-color: $sidebarBackgroundColor; background-color: var(--sidebarBackgroundColor);
color: $white; color: var(--white);
} }
@media only screen and (max-width: $breakpointSmall) { @media only screen and (max-width: $breakpointSmall) {

@ -1,21 +1,21 @@
.item { .item {
border-left: 3px solid transparent; border-left: 3px solid transparent;
color: $sidebarColor; color: var(--sidebarColor);
transition: border-left 0.3s ease-in-out; transition: border-left 0.3s ease-in-out;
} }
.isActiveItem { .isActiveItem {
border-left: 3px solid $themeAlternateRed; border-left: 3px solid var(--themeAlternateRed);
} }
.link { .link {
display: block; display: block;
padding: 12px 24px; padding: 12px 24px;
color: $sidebarColor; color: var(--sidebarColor);
&:hover, &:hover,
&:focus { &:focus {
color: $themeRed; color: var(--themeRed);
text-decoration: none; text-decoration: none;
} }
} }
@ -27,11 +27,11 @@
} }
.isActiveLink { .isActiveLink {
color: $themeRed; color: var(--themeAlternateRed);
} }
.isActiveParentLink { .isActiveParentLink {
background-color: $sidebarActiveBackgroundColor; background-color: var(--sidebarActiveBackgroundColor);
} }
.iconContainer { .iconContainer {

@ -4,8 +4,8 @@
flex: 0 0 auto; flex: 0 0 auto;
padding: 0 20px; padding: 0 20px;
height: $toolbarHeight; height: $toolbarHeight;
background-color: $toolbarBackgroundColor; background-color: var(--toolbarBackgroundColor);
color: $toolbarColor; color: var(--toolbarColor);
line-height: 60px; line-height: 60px;
} }

@ -6,16 +6,16 @@
text-align: center; text-align: center;
&:hover { &:hover {
color: $toobarButtonHoverColor; color: var(--toobarButtonHoverColor);
} }
&.isDisabled { &.isDisabled {
color: $disabledColor; color: var(--disabledColor);
} }
} }
.isDisabled { .isDisabled {
color: $disabledColor; color: var(--disabledColor);
} }
.labelContainer { .labelContainer {
@ -27,7 +27,7 @@
.label { .label {
padding: 0 3px; padding: 0 3px;
color: $toolbarLabelColor; color: var(--toolbarLabelColor);
font-size: $extraSmallFontSize; font-size: $extraSmallFontSize;
line-height: calc($extraSmallFontSize + 1px); line-height: calc($extraSmallFontSize + 1px);
} }

@ -3,7 +3,7 @@
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
border-radius: 4px; border-radius: 4px;
background-color: #f5f5f5; background-color: var(--progressBarBackgroundColor);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
} }
@ -14,13 +14,13 @@
width: 0; width: 0;
height: 100%; height: 100%;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
color: $white; color: var(--white);
transition: width 0.6s ease; transition: width 0.6s ease;
} }
.frontTextContainer { .frontTextContainer {
z-index: 1; z-index: 1;
color: $white; color: var(--white);
} }
.backTextContainer, .backTextContainer,
@ -42,35 +42,35 @@
} }
.primary { .primary {
background-color: $primaryColor; background-color: var(--primaryColor);
} }
.danger { .danger {
background-color: $dangerColor; background-color: var(--dangerColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px); background: repeating-linear-gradient(90deg, color(#f05050 shade(5%)), color(#f05050 shade(5%)) 5px, color(#f05050 shade(15%)) 5px, color(#f05050 shade(15%)) 10px);
} }
} }
.success { .success {
background-color: $successColor; background-color: var(--successColor);
} }
.purple { .purple {
background-color: $purple; background-color: var(--purple);
} }
.warning { .warning {
background-color: $warningColor; background-color: var(--warningColor);
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px); background: repeating-linear-gradient(45deg, #ffa500, #ffa500 5px, color(#ffa500 tint(15%)) 5px, color(#ffa500 tint(15%)) 10px);
} }
} }
.info { .info {
background-color: $infoColor; background-color: var(--infoColor);
} }
.small { .small {

@ -10,10 +10,10 @@
min-height: 100px; min-height: 100px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 5px; border-radius: 5px;
background-color: $scrollbarBackgroundColor; background-color: var(--scrollbarBackgroundColor);
background-clip: padding-box; background-clip: padding-box;
&:hover { &:hover {
background-color: $scrollbarHoverBackgroundColor; background-color: var(--scrollbarHoverBackgroundColor);
} }
} }

@ -1,6 +1,6 @@
.cell { .cell {
padding: 8px; padding: 8px;
border-top: 1px solid #eee; border-top: 1px solid var(--borderColor);
line-height: 1.52857143; line-height: 1.52857143;
} }

@ -4,7 +4,7 @@
width: 100%; width: 100%;
border: 1px solid #aaa; border: 1px solid #aaa;
border-radius: 4px; border-radius: 4px;
background: #fafafa; background: var(--inputBackgroundColor);
} }
.checkContainer { .checkContainer {

@ -46,11 +46,11 @@
} }
.records { .records {
color: $disabledColor; color: var(--disabledColor);
} }
.disabledPageButton { .disabledPageButton {
color: $disabledColor; color: var(--disabledColor);
} }
.pageSelect { .pageSelect {

@ -2,6 +2,6 @@
transition: background-color 500ms; transition: background-color 500ms;
&:hover { &:hover {
background-color: $tableRowHoverBackgroundColor; background-color: var(--tableRowHoverBackgroundColor);
} }
} }

@ -3,7 +3,7 @@
transition: background-color 500ms; transition: background-color 500ms;
&:hover { &:hover {
background-color: #fafbfc; background-color: var(--tableRowHoverBackgroundColor);
} }
} }

@ -1,13 +1,14 @@
.title { .title {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid $popoverTitleBorderColor; border-bottom: 1px solid var(--popoverTitleBorderColor);
background-color: $popoverTitleBackgroundColor; background-color: var(--popoverTitleBackgroundColor);
font-size: 16px; font-size: 16px;
} }
.body { .body {
overflow: auto; overflow: auto;
padding: 10px; padding: 10px;
background-color: var(--popoverBodyBackgroundColor);
} }
.tooltipBody { .tooltipBody {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save