mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2026-09-02 19:43:13 +03:00
Remove var mixin
This commit is contained in:
+3
-1
@@ -3,13 +3,15 @@ const postcssPresetEnv = require('postcss-preset-env');
|
||||
const autoprefixer = require('autoprefixer');
|
||||
const cssnano = require('cssnano');
|
||||
|
||||
const DEV_MODE = process.env.NODE_ENV !== 'production';
|
||||
|
||||
const config = () => ({
|
||||
plugins: [
|
||||
// Explicitly specify browserslist to override ones from node_modules
|
||||
// For example, Swiper has it in its package.json
|
||||
postcssPresetEnv({ browsers: packageConfig.browserslist }),
|
||||
autoprefixer({ overrideBrowserslist: packageConfig.browserslist }),
|
||||
cssnano()
|
||||
DEV_MODE ? null : cssnano()
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
@@ -10,11 +10,3 @@
|
||||
#{$property}: max($max-value, $default);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper mixin to add properties using css variables with fallback values.
|
||||
*/
|
||||
@mixin var($property, $variable, $default, $important: false) {
|
||||
#{$property}: $default if($important, !important, null);
|
||||
#{$property}: var($variable) if($important, !important, null);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
@use '../../styles/mixins' as *;
|
||||
@use './palette' as palette;
|
||||
|
||||
// Theme options
|
||||
@@ -47,25 +46,25 @@ $snackbarContent-color: rgba(255, 255, 255, 0.87) !default;
|
||||
|
||||
.skinHeader,
|
||||
html {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
}
|
||||
|
||||
.wizardStartForm,
|
||||
.ui-corner-all,
|
||||
.ui-shadow {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
.emby-collapsible-button {
|
||||
@include var(border-color, --jf-palette-divider, $divider);
|
||||
border-color: var(--jf-palette-divider, $divider);
|
||||
}
|
||||
|
||||
.skinHeader-withBackground {
|
||||
@include var(background-color, --jf-palette-AppBar-defaultBg, $appBar-defaultBg);
|
||||
background-color: var(--jf-palette-AppBar-defaultBg, $appBar-defaultBg);
|
||||
}
|
||||
|
||||
.skinHeader.semiTransparent {
|
||||
@include var(background-color, --jf-palette-AppBar-transparentBg, $appBar-transparentBg);
|
||||
background-color: var(--jf-palette-AppBar-transparentBg, $appBar-transparentBg);
|
||||
backdrop-filter: none !important;
|
||||
|
||||
.layout-tv & {
|
||||
@@ -86,7 +85,7 @@ html {
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu,
|
||||
html {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
.backgroundContainer.withBackdrop {
|
||||
@@ -95,47 +94,47 @@ html {
|
||||
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
.paper-icon-button-light:hover:not(:disabled) {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
background-color: $primary-hover;
|
||||
background-color: rgba(var(--jf-palette-primary-mainChannel) / var(--jf-palette-action-selectedOpacity));
|
||||
}
|
||||
}
|
||||
|
||||
.paper-icon-button-light:active:not(:disabled) {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
background-color: $primary-hover;
|
||||
background-color: rgba(var(--jf-palette-primary-mainChannel) / var(--jf-palette-action-selectedOpacity));
|
||||
}
|
||||
|
||||
.paper-icon-button-light.show-focus:focus {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
a[data-role=button],
|
||||
.fab,
|
||||
.raised {
|
||||
@include var(background, --jf-palette-Button-inheritContainedBg, $button-inheritContainedBg);
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
background: var(--jf-palette-Button-inheritContainedBg, $button-inheritContainedBg);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
@include var(background, --jf-palette-Button-inheritContainedHoverBg, $button-inheritContainedHoverBg);
|
||||
background: var(--jf-palette-Button-inheritContainedHoverBg, $button-inheritContainedHoverBg);
|
||||
}
|
||||
}
|
||||
|
||||
.button-submit {
|
||||
@include var(background, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
@include var(background, --jf-palette-primary-dark, $primary-dark);
|
||||
background: var(--jf-palette-primary-dark, $primary-dark);
|
||||
}
|
||||
}
|
||||
|
||||
.button-delete {
|
||||
@include var(background, --jf-palette-error-main, $error-main);
|
||||
@include var(color, --jf-palette-error-contrastText, $error-contrastText);
|
||||
background: var(--jf-palette-error-main, $error-main);
|
||||
color: var(--jf-palette-error-contrastText, $error-contrastText);
|
||||
}
|
||||
|
||||
.checkboxLabel {
|
||||
@@ -147,13 +146,13 @@ a[data-role=button],
|
||||
.inputLabelUnfocused,
|
||||
.paperListLabel,
|
||||
.textareaLabelUnfocused {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
}
|
||||
|
||||
.inputLabelFocused,
|
||||
.selectLabelFocused,
|
||||
.textareaLabelFocused {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.checkboxOutline {
|
||||
@@ -165,7 +164,7 @@ a[data-role=button],
|
||||
.formDialogHeader:not(.formDialogHeader-clear),
|
||||
.paperList,
|
||||
.visualCardBox {
|
||||
@include var(background-color, --jf-palette-background-paper, $background-paper);
|
||||
background-color: var(--jf-palette-background-paper, $background-paper);
|
||||
}
|
||||
|
||||
.layout-tv .formDialogFooter:not(.formDialogFooter-clear) {
|
||||
@@ -179,11 +178,11 @@ a[data-role=button],
|
||||
.nowPlayingBarSecondaryText,
|
||||
.programSecondaryTitle,
|
||||
.secondaryText {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
}
|
||||
|
||||
.actionsheetDivider {
|
||||
@include var(background, --jf-palette-divider, $divider);
|
||||
background: var(--jf-palette-divider, $divider);
|
||||
}
|
||||
|
||||
.cardFooter-vibrant .cardText-secondary {
|
||||
@@ -192,72 +191,72 @@ a[data-role=button],
|
||||
}
|
||||
|
||||
.toast {
|
||||
@include var(background, --jf-palette-SnackbarContent-bg, $snackbarContent-bg);
|
||||
@include var(color, --jf-palette-SnackbarContent-color, $snackbarContent-color);
|
||||
background: var(--jf-palette-SnackbarContent-bg, $snackbarContent-bg);
|
||||
color: var(--jf-palette-SnackbarContent-color, $snackbarContent-color);
|
||||
}
|
||||
|
||||
.appfooter,
|
||||
.playlistSectionButton {
|
||||
@include var(background, --jf-palette-background-paper, $background-paper);
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
background: var(--jf-palette-background-paper, $background-paper);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
}
|
||||
|
||||
.itemSelectionPanel {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main);
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.selectionCommandsPanel {
|
||||
@include var(background, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
|
||||
.upNextDialog-countdownText {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.alphaPickerButton {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
background-color: transparent;
|
||||
|
||||
&-selected {
|
||||
@include var(color, --jf-palette-text-primary, $text-primary);
|
||||
color: var(--jf-palette-text-primary, $text-primary);
|
||||
}
|
||||
|
||||
&-tv:focus {
|
||||
@include var(background-color, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background-color: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
}
|
||||
|
||||
.noBackdropTransparency .detailPagePrimaryContainer,
|
||||
.noBackdropTransparency .detailPageSecondaryContainer {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
.listItem-border {
|
||||
@include var(border-color, --jf-palette-divider, $divider);
|
||||
border-color: var(--jf-palette-divider, $divider);
|
||||
}
|
||||
|
||||
.listItem:focus {
|
||||
@include var(background-color, --jf-palette-action-focus, $action-focus);
|
||||
background-color: var(--jf-palette-action-focus, $action-focus);
|
||||
}
|
||||
|
||||
.listItem:hover {
|
||||
@include var(background-color, --jf-palette-action-hover, $action-hover);
|
||||
background-color: var(--jf-palette-action-hover, $action-hover);
|
||||
}
|
||||
|
||||
.progressring-spiner {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.button-flat:hover {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.button-link {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.mediaInfoText {
|
||||
@@ -268,23 +267,23 @@ a[data-role=button],
|
||||
|
||||
.emby-input,
|
||||
.emby-textarea {
|
||||
@include var(background, --jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
@include var(border-color, --jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
background: var(--jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
border-color: var(--jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
color: inherit;
|
||||
border-width: 0.16em;
|
||||
border-style: solid;
|
||||
border-radius: 0.2em;
|
||||
|
||||
&:focus {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
}
|
||||
|
||||
.emby-select-withcolor {
|
||||
// NOTE: This should use `FilledInput-bg` to match other form elements,
|
||||
// but that will break the native dropdown styling
|
||||
@include var(background, --jf-palette-background-paper, $background-paper);
|
||||
@include var(border-color, --jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
background: var(--jf-palette-background-paper, $background-paper);
|
||||
border-color: var(--jf-palette-FilledInput-bg, $filledInput-bg);
|
||||
color: inherit;
|
||||
border-width: 0.16em;
|
||||
border-style: solid;
|
||||
@@ -292,78 +291,78 @@ a[data-role=button],
|
||||
}
|
||||
|
||||
.emby-select-withcolor > option {
|
||||
@include var(background, --jf-palette-background-paper, $background-paper);
|
||||
background: var(--jf-palette-background-paper, $background-paper);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.emby-select-withcolor:focus {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main, true);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
}
|
||||
|
||||
.emby-select-tv-withcolor:focus {
|
||||
@include var(background-color, --jf-palette-primary-main, $primary-main, true);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText, true);
|
||||
background-color: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText) !important;
|
||||
}
|
||||
|
||||
.emby-checkbox:checked + span + .checkboxOutline {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.emby-checkbox:focus + span + .checkboxOutline {
|
||||
@include var(border-color, --jf-palette-common-white, $common-white);
|
||||
border-color: var(--jf-palette-common-white, $common-white);
|
||||
}
|
||||
|
||||
.emby-checkbox:checked + span + .checkboxOutline,
|
||||
.itemProgressBarForeground {
|
||||
@include var(background-color, --jf-palette-primary-main, $primary-main);
|
||||
background-color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.emby-checkbox:focus:not(:checked) + span + .checkboxOutline {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.itemProgressBarForeground-recording {
|
||||
@include var(background-color, --jf-palette-error-light, $error-light);
|
||||
background-color: var(--jf-palette-error-light, $error-light);
|
||||
}
|
||||
|
||||
.countIndicator,
|
||||
.fullSyncIndicator,
|
||||
.mediaSourceIndicator,
|
||||
.playedIndicator {
|
||||
@include var(background, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
|
||||
.mainDrawer,
|
||||
.drawer-open {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
.navMenuOption:hover {
|
||||
@include var(background, --jf-palette-action-hover, $action-hover);
|
||||
background: var(--jf-palette-action-hover, $action-hover);
|
||||
}
|
||||
|
||||
.navMenuOption-selected {
|
||||
@include var(background, --jf-palette-primary-main, $primary-main, true);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
|
||||
.emby-button.show-focus:focus {
|
||||
@include var(background, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
|
||||
.emby-tab-button {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
}
|
||||
|
||||
.emby-tab-button-active {
|
||||
@include var(color, --jf-palette-text-primary, $text-primary);
|
||||
color: var(--jf-palette-text-primary, $text-primary);
|
||||
}
|
||||
|
||||
.emby-tab-button.show-focus:focus,
|
||||
.emby-tab-button:hover {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.channelPrograms,
|
||||
@@ -394,8 +393,8 @@ a[data-role=button],
|
||||
|
||||
.guide-channelHeaderCell:focus,
|
||||
.programCell:focus {
|
||||
@include var(background-color, --jf-palette-primary-main, $primary-main, true);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText, true);
|
||||
background-color: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText) !important;
|
||||
}
|
||||
|
||||
.guide-programTextIcon {
|
||||
@@ -409,33 +408,33 @@ a[data-role=button],
|
||||
|
||||
.guide-date-tab-button.emby-tab-button-active,
|
||||
.guide-date-tab-button:focus {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
.guide-date-tab-button.show-focus:focus {
|
||||
@include var(background-color, --jf-palette-primary-main, $primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, $primary-contrastText);
|
||||
background-color: var(--jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, $primary-contrastText);
|
||||
}
|
||||
|
||||
.infoBanner {
|
||||
@include var(background, --jf-palette-Alert-infoFilledBg, $alert-infoFilledBg);
|
||||
@include var(color, --jf-palette-Alert-infoFilledColor, $alert-infoFilledColor);
|
||||
background: var(--jf-palette-Alert-infoFilledBg, $alert-infoFilledBg);
|
||||
color: var(--jf-palette-Alert-infoFilledColor, $alert-infoFilledColor);
|
||||
padding: 1em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
.ratingbutton-icon-withrating,
|
||||
.playstatebutton-icon-played {
|
||||
@include var(color, --jf-palette-error-light, $error-light);
|
||||
color: var(--jf-palette-error-light, $error-light);
|
||||
}
|
||||
|
||||
.buttonActive {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main, true);
|
||||
color: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
}
|
||||
|
||||
.card:focus .cardBox.visualCardBox,
|
||||
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
||||
@include var(border-color, --jf-palette-primary-main, $primary-main, true);
|
||||
border-color: var(--jf-palette-primary-main, $primary-main) !important;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
@@ -463,36 +462,36 @@ a[data-role=button],
|
||||
}
|
||||
|
||||
.metadataSidebarIcon {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
|
||||
#comicsPlayer,
|
||||
#bookPlayer,
|
||||
#pdfPlayer {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
#comicsPlayer .swiper-pagination {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
@include var(color, --jf-palette-text-primary, $text-primary);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
color: var(--jf-palette-text-primary, $text-primary);
|
||||
}
|
||||
|
||||
#bookPlayer .topButtons,
|
||||
#comicsPlayer .actionButtonIcon,
|
||||
#pdfPlayer .actionButtonIcon {
|
||||
@include var(color, --jf-palette-text-primary, $text-primary);
|
||||
color: var(--jf-palette-text-primary, $text-primary);
|
||||
}
|
||||
|
||||
#dialogToc {
|
||||
@include var(background-color, --jf-palette-background-default, $background-default);
|
||||
background-color: var(--jf-palette-background-default, $background-default);
|
||||
}
|
||||
|
||||
#dialogToc .toc li a,
|
||||
#dialogToc .bookplayerButtonIcon {
|
||||
@include var(color, --jf-palette-text-secondary, $text-secondary);
|
||||
color: var(--jf-palette-text-secondary, $text-secondary);
|
||||
|
||||
&:active,
|
||||
&:hover {
|
||||
@include var(color, --jf-palette-primary-main, $primary-main);
|
||||
color: var(--jf-palette-primary-main, $primary-main);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,7 @@
|
||||
|
||||
/* Detail ribbon on item details pages */
|
||||
.detailRibbon {
|
||||
background: rgba(32, 32, 32, 0.8);
|
||||
background: rgba(var(--jf-palette-background-paperChannel) / 0.8);
|
||||
background: rgba(var(--jf-palette-background-paperChannel, 32 32 32) / 0.8);
|
||||
|
||||
.layout-tv & {
|
||||
background: none;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
@use '../../styles/mixins' as *;
|
||||
@use '../_base/palette' as palette;
|
||||
|
||||
/* Import the base theme with overrides */
|
||||
@@ -26,8 +25,8 @@
|
||||
|
||||
// Override the alpha picker selected colors
|
||||
.alphaPickerButton-selected {
|
||||
@include var(background-color, --jf-palette-primary-main, palette.$primary-main);
|
||||
@include var(color, --jf-palette-primary-contrastText, palette.$primary-contrastText);
|
||||
background-color: var(--jf-palette-primary-main, palette.$primary-main);
|
||||
color: var(--jf-palette-primary-contrastText, palette.$primary-contrastText);
|
||||
}
|
||||
|
||||
/* Card background color variants */
|
||||
|
||||
Reference in New Issue
Block a user