Skip to content

Custom Invidious Theme by gigirassy

Screenshot of Custom Invidious Theme

Details

Authorgigirassy

LicenseUnlicense

CategoryInvidious

Created

Updated

Code size3.0 kB

Code checksuma398b189

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

Easy to use theme changer for Invidious, open source Youtube frontend. Can also change font.

Notes

To use a custom theme on your Docker-Compose Invidious instance with the default method of cloning the directory beforehand, create a file called "custom.css" in the /assets/css path, edit the default.css in the same folder to import that style at the beginning (@import url('/css/custom.css');, and then mount them and restart your docker container. Example compose:

  invidious:
    image: quay.io/invidious/invidious:latest
    # image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices
    restart: unless-stopped
    ports:
      - "127.0.0.1:2999:3000"
    volumes:
      - "./assets/css/custom.css:/invidious/assets/css/custom.css"
      - "./assets/css/default.css:/invidious/assets/css/default.css"

If you're not using Docker, build Invidious like you normally do with those two custom files.

Source code

/* ==UserStyle==
@name         Custom Invidious Theme
@version      20250405.20.54
@namespace    tube.blitzw.in
@description  Easy to use theme changer.
@author       blitzwing
@license      Unlicense
==/UserStyle== */

@-moz-document domain("tube.blitzw.in"), domain("denmark.tube.blitzw.in") {
/* There are too many Invidious instances to count, so I recommend tweaking this code to specify the instances you most frequently use. By default, it uses my two instances. */

:root {
  --main-bg-color: #1c1026;
  --main-text-color: #e0d8f0;
  --accent-color: #a678de;
  --link-hover-color: #d6b4ff;

  --button-bg-color: #2b1a38;
  --input-bg-color: #2f1e42;
  --footer-bg-color: #180b24;
  --footer-text-color: #bca8e0;

  --border-color: #402d54;
  --search-border-color: #6f4fa1;
  --channel-owner-bg: #000;
  --channel-owner-text: #fff;

  --underline-hover: underline;
}

/* Global monospace font */
* {
  font-family: "Fira Mono", Menlo, Consolas, "Liberation Mono", monospace !important;
}

/* Fix: Allow icon font to render correctly */
.vjs-button,
.vjs-icon-placeholder,
.vjs-menu-button,
.vjs-playback-rate,
.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level,
.vjs-slider-bar {
  font-family: VideoJS !important;
}

/* Channel owner label styling */
body a.channel-owner {
  background-color: var(--channel-owner-bg) !important;
  color: var(--channel-owner-text) !important;
  border-radius: 9px;
  padding: 1px 6px;
}

/* Background styling */
html, body {
  background-color: var(--main-bg-color) !important;
  color: var(--main-text-color) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  background-position: center center !important;
}

/* Theme consistency */
.dark-theme,
.no-theme,
body.dark-theme,
body.no-theme {
  background-color: var(--main-bg-color) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  background-position: center center !important;
  color: var(--main-text-color) !important;
}

/* Link colors */
a, a:visited {
  color: var(--accent-color) !important;
}

a:hover, a:focus {
  color: var(--link-hover-color) !important;
  text-decoration: var(--underline-hover) !important;
}

/* Inputs and buttons styling */
button, .pure-button, input, select, textarea {
  background-color: var(--button-bg-color) !important;
  color: var(--main-text-color) !important;
  border: 1px solid var(--border-color) !important;
}

input[type="search"] {
  background-color: var(--input-bg-color) !important;
  color: var(--main-text-color) !important;
  border-bottom: 1px solid var(--search-border-color) !important;
}

/* Footer styling */
footer {
  background-color: var(--footer-bg-color) !important;
  color: var(--footer-text-color) !important;
}


}

Reviews

No reviews yet.