Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
CSS-aanpassingen
In Dashboard > General kan het veld "Aangepaste CSS" worden gebruikt om bestaande CSS in Jellyfin's stylesheet te overschrijven.
Aangepaste CSS biedt mogelijkheden zoals kleuren wijzigen, lay-outs aanpassen, en itemgrootte en gedrag veranderen. Hieronder vind je een lijst met verschillende aanpassingen die toegepast kunnen worden. Deze CSS-aanpassingen werken zowel in de webclient als in de Android-app. De code wordt toegepast in de volgorde waarin deze is geschreven, maar !important overschrijft alles. Lees meer over !important op CSS Specificity of specifishity. Ga naar Dashboard > General > Custom CSS om te beginnen.
Als je weinig of geen ervaring hebt met CSS, vind je online diverse bronnen en tutorials. Met de onderstaande aanpassingen en voorbeelden kun je gemakkelijk zelf wijzigingen aanbrengen in je Jellyfin-installatie.

Algemene informatie over CSS
Meer over CSS leren kan via sites als w3schools en MDN. Hieronder vind je basiskennis waarmee je de voorbeeldaanpassingen kunt bewerken.
Kleuren
CSS ondersteunt meerdere kleurformaten, maar meestal worden hexadecimale kleurcodes gebruikt voor specifieke kleuren. Voor een exacte kleur moet je precieze kleurdata zoals de onderstaande hex-codes gebruiken.
Voorbeelden van hexadecimale kleurcodes:
-
Groen:
#5dd000 -
Blauw:
#0000d0 -
Rood:
#d00000 -
Transparant zwart:
#00000058
Gebruik de HTML Color Picker om de hex-code voor elke gewenste kleur te vinden.
Voor standaardkleuren zonder specifieke tint kun je direct de kleurnaam intypen. Voor de kleur "geel" typ je bijvoorbeeld gewoon "yellow", waarna een vooraf ingestelde gele kleur wordt gebruikt.
yellow Geel
red Rood
aquamarine Aquamarijn
lightseagreen Licht zeegroen
Een lijst met ondersteunde kleurnamen vind je in de W3Schools Color Names-referentie.
Opmerkingen
Code of tekst tussen /* en */ is een opmerking en wordt genegeerd.
Hiermee kun je beschrijvingen toevoegen voor specifieke codeonderdelen.
Ook kun je hiermee code tijdelijk uitschakelen zonder deze te verwijderen.
/* This might be added above code to tell you what it does */
CSS-ketens
CSS kan worden "geketend" om verschillende secties tegelijkertijd aan te passen. Een voorbeeld hiervan is de "Randkleur"-aanpassing. Hierbij worden de te wijzigen elementen opgesomd en wordt een wijziging toegepast op alle elementen.
Voorbeeld "Randkleur"-aanpassing:
.emby-input,
.emby-textarea,
.emby-select {
border-color: #d00000;
}
Lijst met aanpassingen
Om een van deze aanpassingen toe te passen, kopieer en plak de CSS-code uit het voorbeeld in het veld "Aangepaste CSS". Voor meerdere aanpassingen voegt u ze eenvoudig achter elkaar toe in het veld. Toegepaste code blijft in het veld staan. Verwijder of zet de betreffende code in commentaar om een aanpassing ongedaan te maken. Wijzigingen worden direct toegepast bij het opslaan van de instellingenpagina, zonder dat uw Jellyfin-server opnieuw opgestart hoeft te worden.
Afspeelindicator
Dit beïnvloedt de afspeel/bekeken indicator. Vervang de hex-kleur door elke gewenste waarde.
Indicators zonder aanpassing

Groene indicators
/* Make watched icon green */
.playedIndicator {
background: #5dd000;
}

Transparante en donkere indicators
/* Make watched icon dark and transparent */
.playedIndicator {
background: #00000058 !important;
}

Transparante tellerindicatoren (bijv. Series)
/* Make count indicator icon dark and transparent */
.countIndicator {
background: #00000058;
}
Externe links tonen in mobiele layout
De mobiele app schakelt standaard de weergave van externe links naar IMDb, TheMovieDB, Trakt, enz. uit. Om de externe links weer in te schakelen, voeg je het volgende codefragment toe:
.layout-mobile .itemExternalLinks {
display: block !important;
}
Homepictogram verbergen in koptekst
.headerHomeButton {
display: none;
}
.headerButton.headerButtonRight.headerUserButton.paper-icon-button-light {
display: none;
}
Castpictogram verbergen in koptekst
.headerCastButton {
display: none;
}
Synchronisatiepictogram verbergen in koptekst
.headerSyncButton {
display: none;
}
Gebruikersinstellingen verbergen in koptekst
.material-icons.person {
display: none;
}
Live TV-kanaallijsten verbergen
.guideChannelNumber {
display: none;
}
Breedte Live TV-kanalen verkleinen
.channelsContainer {
max-width: 8em;
}
Cast & Crew verbergen
#castCollapsible {
display: none;
}
Meer zoals dit verbergen
#similarCollapsible {
display: none;
}
Volgende verbergen
div.nextUpSection {
display: none;
}
Sterbeoordelingen verbergen
div.starRatingContainer {
display: none;
}
Vervang "Nieuwste films" door aangepaste tekst zoals "Recent toegevoegde films"
#homeTab
> div
> div.section2
> div:nth-child(1)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a
> h2 {
display: none;
}
#homeTab
> div
> div.section2
> div:nth-child(1)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a
> span {
display: none;
}
#homeTab
> div
> div.section2
> div:nth-child(1)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a:after {
content: 'Recently Added Movies ›';
font-size: 24px;
font-weight: normal;
}
Vervang "Nieuwste tv-series" door aangepaste tekst zoals "Recent toegevoegde tv-series"
#homeTab
> div
> div.section2
> div:nth-child(2)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a
> h2 {
display: none;
}
#homeTab
> div
> div.section2
> div:nth-child(2)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a
> span {
display: none;
}
#homeTab
> div
> div.section2
> div:nth-child(2)
> div.sectionTitleContainer.sectionTitleContainer-cards.padded-left
> a:after {
content: 'Recently Added TV Shows ›';
font-size: 24px;
font-weight: normal;
}
Achtergrondafbeelding op inlogpagina
#loginPage {
background: url('https://i.ytimg.com/vi/avCWDDox1nE/maxresdefault.jpg');
background-size: cover;
}
Achtergrondafbeelding op startpagina
.backdropImage {
display: none;
}
.backgroundContainer {
background-color: rgba(0, 0, 0, 0);
background-image: url('https://i.ytimg.com/vi/avCWDDox1nE/maxresdefault.jpg');
filter: blur(10px);
background-size: cover;
}
Transparant bovenmenu
.skinHeader.focuscontainer-x.skinHeader-withBackground.skinHeader-blurred {
background: none;
background-color: rgba(0, 0, 0, 0);
}
.skinHeader.focuscontainer-x.skinHeader-withBackground.skinHeader-blurred.noHomeButtonHeader {
background: none;
background-color: rgba(0, 0, 0, 0);
}
Afbeeldingen met ronde hoeken
.cardContent-button,
.itemDetailImage {
border-radius: 0.25em;
}
Tabbladen vergroten
Vergroot de tabbladen (suggesties, genres, etc.). Standaard zijn ze erg klein, vooral op mobiel.
/* Adjust both "size-adjust" and "size" to modify size */
.headerTabs.sectionTabs {
text-size-adjust: 110%;
font-size: 110%;
}
.pageTitle {
margin-top: auto;
margin-bottom: auto;
}
.emby-tab-button {
padding: 1.75em 1.7em;
}
De vergrote tabknoppen en transparante menu zien er zo uit:

Minimalistische inlogpagina
Dit ziet er nog beter uit in combinatie met het transparante bovenmenu!
/* Narrow the login form */
#loginPage .readOnlyContent,
#loginPage form {
max-width: 22em;
}
/* Hide "please login" text, margin is to prevent login form moving too far up */
#loginPage h1 {
display: none;
}
#loginPage .padded-left.padded-right.padded-bottom-page {
margin-top: 50px;
}
/* Hide "manual" and "forgot" buttons */
#loginPage .raised.cancel.block.btnManual.emby-button {
display: none;
}
#loginPage .raised.cancel.block.btnForgotPassword.emby-button {
display: none;
}

Gestileerde Afleveringsoverzichten
De voorvertoningen van afleveringen in seizoensweergave worden geschaald op basis van horizontale resolutie. Dit leidt tot veel verspilde ruimte bij de afleveringssamenvatting en een lange verticale pagina die veel scrollen vereist. Deze code verkleint de hoogte van afleveringvermeldingen, waardoor beide problemen worden opgelost.
/* Size episode preview images in a more compact way */
.listItemImage.listItemImage-large.itemAction.lazy {
height: 110px;
}
.listItem-content {
height: 115px;
}
.secondary.listItem-overview.listItemBodyText {
height: 61px;
margin: 0;
}

Gestileerde en kleinere Cast & Crew-info
Dit verandert de stijl van cast-informatie drastisch naar iets dat sterk lijkt op de aanpak van Plex. Deze overschrijving resulteert in iets kleinere miniaturen en werkt ook met alle thema's.
/* Shrink and square (or round) cast thumbnails */
#castContent .card.overflowPortraitCard.personCard.card-hoverable.card-withuserdata {width: 4.2cm !important; font-size: 90% !important;}
#castContent .card.overflowPortraitCard.personCard.card-withuserdata {width: 4.2cm !important; font-size: 90% !important;}
/* Correct image aspect ratio behavior, set border-radius to zero for square tiles */
#castContent .cardContent-button.cardImageContainer.coveredImage.cardContent.cardContent-shadow.itemAction.lazy {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground1.cardContent.cardContent-shadow.itemAction {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground2.cardContent.cardContent-shadow.itemAction {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground3.cardContent.cardContent-shadow.itemAction {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground4.cardContent.cardContent-shadow.itemAction {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground5.cardContent.cardContent-shadow.itemAction {background-size: cover; !important; border-radius: 2.5cm;}
#castContent .cardScalable {width: 3.8cm !important; height: 3.8cm !important; border-radius: 2.5cm;}
#castContent .cardOverlayContainer.itemAction {border-radius: 2.5cm;}
/* Center the mouseover buttons */
#castContent .cardOverlayButton-br {bottom: 4%; right: 15%; width: 70%;}
#castContent .cardOverlayButton.cardOverlayButton-hover.itemAction.paper-icon-button-light {margin:auto;}

Cast & Crew zonder afbeeldingen
#castContent .card.overflowPortraitCard {
width: 4.2cm;
font-size: 90%;
}
#castContent .personCard {
width: auto;
}
#castContent .personCard .cardBox {
margin-bottom: 0px;
margin-right: 0px;
}
#castContent {
flex-wrap: wrap;
max-height: 9.75em;
}
div.personCard > :first-child > :first-child {
display: none;
}
.itemDetailPage .cardText {
text-align: left;
}
.itemDetailPage .textActionButton {
text-align: left;
}

Aangepaste achtergrondkleur
.backgroundContainer,
.dialog,
html {
background-color: #0fd0d0;
}
Achtergrond donkerder maken
Dit maakt de achtergrond donkerder bij Blue Radiance en Purple Haze. Pas het percentage aan afhankelijk van hoe donker je hem wilt hebben. Lager is donkerder.
/* Darken background, only works with blue radiance */
.backgroundContainer {
background-color: #000000;
filter: brightness(50%);
}
Kleur rechter koptekst
Dit wijzigt de kleuren van de cast-, zoek- en gebruikersknoppen rechtsboven.
.headerRight {
color: yellow;
}

Aangepaste kleur consolepaneel
Wijzigt de kleur van het linkermenupaneel.
.mainDrawer-scrollContainer {
color: yellow;
}

Aangepaste kleur algemene pagina
.dashboardGeneralForm {
color: yellow;
}

Aangepaste randkleur
Dit verandert de randkleur voor tekstvelden en dropdownmenu's.
.emby-input,
.emby-textarea,
.emby-select {
border-color: #d00000;
}
Dit beïnvloedt de randkleur van gemarkeerde (geselecteerde) tekstvelden en dropdownmenu's.
.emby-input:focus,
.emby-textarea:focus,
.emby-select-withcolor {
border-color: #ffffff !important;
}

Volledige koptekst-aanpassing
.skinHeader,
.mainDrawer,
.emby-input,
.emby-textarea,
.emby-select,
.navMenuOption-selected,
.cardBox,
.paperList {
background: #ff9475;
}

Afbeeldingcarrousel uitschakelen voor bibliotheken
Dit zorgt ervoor dat bibliotheken en media netjes op de startpagina passen zonder dat horizontaal scrollen nodig is.
@media all and (min-width: 50em) {
.homePage .emby-scroller {
margin-right: 0;
}
.homePage .emby-scrollbuttons {
display: none;
}
.homePage .itemsContainer {
flex-wrap: wrap;
}
}
Schuifknoppen verplaatsen
.emby-scrollbuttons {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
padding: 0;
justify-content: space-between;
pointer-events: none;
}
.emby-scrollbuttons-button {
pointer-events: initial;
}
"Hotdogs and Catsup" kleurenthema-voorbeeld
Een voorbeeld van een kleurenthema.

.skinHeader,
.mainDrawer,
.emby-input,
.emby-textarea,
.emby-select,
.navMenuOption-selected,
.cardBox,
.paperList {
background: #ff9475;
}
.emby-input,
.emby-textarea,
.emby-select {
border-color: #fdbe7d;
}
.backgroundContainer.withBackdrop,
.backdropContainer,
.backgroundContainer {
background: #fdbe7d;
}
#myPreferencesMenuPage .listItemBodyText,
.emby-tab-button[data-index='0'],
#myPreferencesMenuPage > div > div > div > a:nth-child(odd),
.button-submit,
.mainAnimatedPage *:nth-child(odd),
.dashboardGeneralForm *:nth-child(odd),
.mainDrawer-scrollContainer *:nth-child(odd),
.headerRight *:nth-child(odd) {
color: red;
}
#myPreferencesMenuPage .listItemIcon,
.emby-tab-button[data-index='1'],
#myPreferencesMenuPage > div > div > div > a:nth-child(even),
.mainAnimatedPage *:nth-child(even),
.dashboardGeneralForm *:nth-child(even),
.mainDrawer-scrollContainer *:nth-child(even),
.headerRight *:nth-child(even) .cancel {
color: yellow;
}
Zwevende "Nu afspelen"-bediening

/* fixed height for the bottom row */
:root {
--element-fixed-top: 95px;
}
/* Now playing bar in the footer */
.nowPlayingBar {
width: 650px;
z-index: 10;
position: fixed;
top: 300px;
height: 120px;
border-style: solid;
border-color: white;
background-color: black;
margin-left: 50%;
}
/* Only child of nowPlayingBar */
.nowPlayingBarTop {
height: 5px !important;
max-width: 500px
top: 10px;
}
/* Song progress seekbar */
.nowPlayingBarPositionContainer {
position: relative;
top: 1.0em !important;
}
/* Container that holds album thumbnail, artist and album name */
.nowPlayingBarInfoContainer {
position: fixed !important;
left: 12px;
top: 34px;
height: 60px;
width: 1100px;
}
/* Holds the next, previous track, play/pause, next and time elements */
.nowPlayingBarCenter {
position: relative !important;
left: 32px;
top: var(--element-fixed-top);
min-width: 500px;
}
/* Hold mute, volume slider container, repeat, favorite and remote control buttons */
.nowPlayingBarRight {
width: 402px !important;
left: -60px;
}
/* Mute button */
.muteButton {
position: relative;
top: var(--element-fixed-top);
}
/* Volume slider */
.nowPlayingBarVolumeSliderContainer {
position: relative;
left: -4px;
top: var(--element-fixed-top);
}
/* Toggle repeat */
.toggleRepeatButton {
position: relative !important;
left: -20px;
top: var(--element-fixed-top);
}
/* Favorite */
.nowPlayingBarUserDataButtons {
position: relative;
left: -4px;
top: var(--element-fixed-top);
}
/* Remote control */
.remoteControlButton {
left: -110px;
top: var(--element-fixed-top);
}
Pictogrampakket wijzigen
Je kunt kiezen tussen Material Icons (door Jellyfin gebruikt) en Fontawesome-pictogrammen. Material Icons:
-
Outlined (omlijnd):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Outline.css'); -
Rounded (afgerond):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/round.css'); -
Sharp (scherp):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Sharp.css');
Fontawesome-pictogrammen:
-
Solid (vol):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Font%20Awesome/solid.css'); -
Regular (standaard):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Font%20Awesome/regular.css'); -
Light (licht):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Font%20Awesome/light.css'); -
Duotone (tweekleuren):
@import url('https://cdn.jsdelivr.net/gh/prayag17/Jellyfin-Icons/Font%20Awesome/duotone.css');
Communitylinks
Enkele links naar plaatsen waar aangepaste CSS is besproken en gedeeld!
Communityberichten
Houd er rekening mee dat deze berichten mogelijk onder eerdere versies van Jellyfin zijn gemaakt. Sommige aanpassingen in deze handleidingen werken mogelijk niet meer!