diff --git a/styles/jellyfin.css b/styles/jellyfin.css new file mode 100644 index 0000000..352ed2c --- /dev/null +++ b/styles/jellyfin.css @@ -0,0 +1,550 @@ +/* + * Based on the jellyfin-web dark theme.css, which is licensed GPL-2.0 + * https://github.com/jellyfin/jellyfin-web/blob/master/src/themes/dark/theme.css + * The colours used are from catppuccin: + * https://github.com/catppuccin/catppuccin + */ + +:root { + /* Colour variables */ + --base: #1e1e2e; + --mauve: #cba6f7; + --pink: #f5c2e7; + --pink-transp: #f5c2e733; + --red: #f38ba8; + --blue: #89b4fa; + --peach: #fab387; + --sky: #89dceb; + --green: #a6e3a1; + --text: ##cdd6f4; + --subtext-1: #bac2de; + --subtext-0: #a6adc8; + --surface-2: #585b70; + --surface-1: #45475a; + --surface-0: #313244; +} + +* { + scrollbar-width: thin; + scrollbar-color: #3b3b3b #202020; +} + +.skinHeader, +html { + color: #ddd; + color: rgba(255, 255, 255, 0.8); +} + +.wizardStartForm, +.ui-corner-all, +.ui-shadow { + background-color: #101010; +} + +.emby-collapsible-button { + border-color: #383838; + border-color: rgba(255, 255, 255, 0.135); +} + +.skinHeader-withBackground { + background-color: #202020; +} + +.skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; + backdrop-filter: none !important; + background-color: rgba(0, 0, 0, 0.4); +} + +.layout-tv .skinHeader.semiTransparent { + background: none; +} + +.pageTitleWithDefaultLogo { + background-image: url(../../assets/img/banner-light.png); +} + +.layout-tv .pageTitleWithDefaultLogo { + background-image: url(../../assets/img/icon-transparent.png); +} + +.backgroundContainer, +.dialog, +.nowPlayingPlaylist, +.nowPlayingContextMenu, +html { + background-color: #101010; +} + +.backgroundContainer.withBackdrop { + background-color: rgba(0, 0, 0, 0.86); +} + +@media (hover: hover) and (pointer: fine) { + .paper-icon-button-light:hover:not(:disabled) { + color: var(--mauve); + background-color: var(--pink-transp); + } +} + +.paper-icon-button-light:active:not(:disabled) { + color: var(--mauve); + background-color: var(--pink-transp); +} + +.paper-icon-button-light.show-focus:focus { + color: var(--mauve); +} + +.fab, +.raised { + background: #303030; + color: rgba(255, 255, 255, 0.87); +} + +.fab:focus, +.raised:focus { + background: #383838; +} + +.button-submit { + background: var(--mauve); + color: #fff; +} + +.button-submit:focus { + background: var(--pink); + color: #fff; +} + +.button-delete { + background: var(--red); + color: rgba(255, 255, 255, 0.87); +} + +.checkboxLabel { + color: inherit; +} + +.checkboxListLabel, +.inputLabel, +.inputLabelUnfocused, +.paperListLabel, +.textareaLabelUnfocused { + color: #bbb; + color: rgba(255, 255, 255, 0.7); +} + +.inputLabelFocused, +.selectLabelFocused, +.textareaLabelFocused { + color: var(--mauve); +} + +.checkboxOutline { + border-color: currentColor; +} + +.collapseContent, +.formDialogFooter:not(.formDialogFooter-clear), +.formDialogHeader:not(.formDialogHeader-clear), +.paperList, +.visualCardBox { + background-color: #202020; +} + +.layout-tv .formDialogFooter:not(.formDialogFooter-clear) { + background-color: transparent; +} + +.defaultCardBackground1 { + background-color: var(--surface-0); +} + +.defaultCardBackground2 { + background-color: var(--surface-2); +} + +.defaultCardBackground3 { + background-color: var(--surface-2); +} + +.defaultCardBackground4 { + background-color: var(--surface-0); +} + +.defaultCardBackground5 { + background-color: var(--surface-1); +} + +.cardText-secondary, +.fieldDescription, +.guide-programNameCaret, +.listItem .secondary, +.nowPlayingBarSecondaryText, +.programSecondaryTitle, +.secondaryText { + color: #999; + color: rgba(255, 255, 255, 0.5); +} + +.actionsheetDivider { + background: #444; + background: rgba(255, 255, 255, 0.14); +} + +.cardFooter-vibrant .cardText-secondary { + color: inherit; + opacity: 0.5; +} + +.toast { + background: #303030; + color: #fff; + color: rgba(255, 255, 255, 0.87); +} + +.appfooter, +.playlistSectionButton { + background: #202020; + color: #ccc; + color: rgba(255, 255, 255, 0.78); +} + +.itemSelectionPanel { + border: 1px solid var(--mauve); +} + +.selectionCommandsPanel { + background: var(--mauve); + color: #fff; +} + +.upNextDialog-countdownText { + color: var(--mauve); +} + +.alphaPickerButton { + color: #999; + color: rgba(255, 255, 255, 0.5); + background-color: transparent; +} + +.alphaPickerButton-selected { + color: #fff; +} + +.alphaPickerButton-tv:focus { + background-color: var(--mauve); + color: #fff !important; +} + +.detailTableBodyRow-shaded:nth-child(even) { + background: #1c1c1c; + background: rgba(30, 30, 30, 0.9); +} + +.detailRibbon { + background: rgba(32, 32, 32, 0.8); +} + +.layout-tv .detailRibbon { + background: none; +} + +.listItem-border { + border-color: rgba(34, 34, 34, 0.9) !important; +} + +.listItem:focus { + background: #333; +} + +.listItem:hover { + background: #242424; +} + +.progressring-spiner { + border-color: var(--mauve); +} + +.button-flat:hover { + color: var(--mauve); +} + +.button-link { + color: var(--mauve); +} + +.mediaInfoText { + color: #ddd; + background: rgba(170, 170, 190, 0.2); +} + +.emby-input, +.emby-textarea { + color: inherit; + background: #292929; + border: 0.16em solid #292929; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; +} + +.emby-input:focus, +.emby-textarea:focus { + border-color: var(--mauve); +} + +.emby-select-withcolor { + color: inherit; + background: #292929; + border: 0.07em solid #292929; +} + +.emby-select-withcolor > option { + color: inherit; + background: #222; +} + +.emby-select-withcolor:focus { + border-color: var(--mauve) !important; +} + +.emby-select-tv-withcolor:focus { + background-color: var(--mauve) !important; + color: #fff !important; +} + +.emby-checkbox:checked + span + .checkboxOutline { + border-color: var(--mauve); +} + +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, +.itemProgressBarForeground { + background-color: var(--mauve); +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: var(--mauve); +} + +.itemProgressBarForeground-recording { + background-color: var(--red); +} + +.countIndicator, +.fullSyncIndicator, +.mediaSourceIndicator, +.playedIndicator { + background: var(--mauve); +} + +.fullSyncIndicator { + color: #fff; +} + +.mainDrawer, +.drawer-open { + background-color: #101010; +} + +.navMenuOption:hover { + background: #252528; +} + +.navMenuOption-selected { + background: var(--mauve) !important; + color: #fff; +} + +.emby-button.show-focus:focus { + background: var(--mauve); + color: #fff; +} + +.emby-tab-button { + color: #999; +} + +.emby-tab-button-active { + color: #fff; +} + +.emby-tab-button.show-focus:focus { + color: var(--mauve); +} + +.emby-tab-button:hover { + color: var(--mauve); +} + +.channelPrograms, +.guide-channelHeaderCell, +.programCell { + border-color: rgba(255, 255, 255, 0.05); +} + +.programCell-sports { + background: var(--blue) !important; +} + +.programCell-movie { + background: var(--peach) !important; +} + +.programCell-kids { + background: var(--sky) !important; +} + +.programCell-news { + background: var(--green) !important; +} + +.programCell-active { + background: #1e1e1e !important; +} + +.guide-channelHeaderCell:focus, +.programCell:focus { + background-color: var(--mauve) !important; + color: #fff !important; +} + +.guide-programTextIcon { + color: #1e1e1e; + background: #555; +} + +.guide-headerTimeslots { + color: inherit; +} + +.guide-date-tab-button { + color: #555; + color: rgba(255, 255, 255, 0.3); +} + +.guide-date-tab-button.emby-tab-button-active, +.guide-date-tab-button:focus { + color: var(--mauve); +} + +.guide-date-tab-button.show-focus:focus { + background-color: var(--mauve); + color: #fff; +} + +.infoBanner { + color: #ddd; + background: #111; + padding: 1em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; +} + +.ratingbutton-icon-withrating { + color: var(--peach); +} + +.downloadbutton-icon-complete, +.downloadbutton-icon-on { + color: var(--blue); +} + +.playstatebutton-icon-played { + color: var(--green); +} + +.buttonActive { + color: var(--mauve) !important; +} + +.card:focus .cardBox.visualCardBox, +.card:focus .cardBox:not(.visualCardBox) .cardScalable { + border-color: var(--mauve) !important; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: #3b3b3b; +} + +.layout-desktop ::-webkit-scrollbar, +.layout-tv ::-webkit-scrollbar { + width: 0.4em; + height: 0.4em; +} + +::-webkit-scrollbar-thumb:horizontal, +::-webkit-scrollbar-thumb:vertical { + border-radius: 2px; + -webkit-border-radius: 2px; + background: center no-repeat #888; +} + +.timeslotHeaders-desktop::-webkit-scrollbar { + height: 0.7em; +} + +.metadataSidebarIcon { + color: var(--mauve); +} + +.emby-button.detailFloatingButton { + background-color: var(--mauve); + color: #fff; +} + +.layout-tv .emby-button.detailFloatingButton:focus { + background-color: #f2f2f2; + color: var(--mauve); +} + +#comicsPlayer, +#bookPlayer, +#pdfPlayer { + background: #101010; +} + +#comicsPlayer .swiper-pagination { + background: #101010; + color: #fff; +} + +#bookPlayer .topButtons { + color: #fff; +} + +#comicsPlayer .actionButtonIcon, +#pdfPlayer .actionButtonIcon { + color: #fff; +} + +#dialogToc { + background-color: #101010; +} + +#dialogToc .bookplayerButtonIcon { + color: #ccc; +} + +#dialogToc .bookplayerButtonIcon:hover { + color: var(--mauve); +} + +#dialogToc .toc li a:link { + color: #ccc; +} + +#dialogToc .toc li a:active, +#dialogToc .toc li a:hover { + color: var(--mauve); +}