Skip to content
TubePress — free, self-hosted & actively maintained
Appearance & themes

Appearance & branding

Logo, favicon, colours, dark mode, backgrounds and fine-grained card and watch-page controls.

The Appearance screen at /admin/appearance is your no-code control room. Everything here restyles the active theme — logos, colours, dark mode, layout, and the fine print on video cards and watch pages — without touching a single file. Changes are saved as settings and read by the theme at render time, so you can experiment freely and reverse anything.

The screen is split into sub-tabs along the top. This page walks through each group. If you would rather change the markup itself, that is the job of themes; the values below are exposed to template code as $_-prefixed variables, documented in full in the theme API reference.

Branding

Open Appearance → Branding to set your identity. You can upload a separate logo for the light and dark themes — leave both empty to show your site name as plain text, and the dark logo falls back to an inverted version of the light one if you only supply the latter. A favicon (square, at least 32×32px) is shown in the browser tab.

All branding files live under /uploads/branding/. A site background image is supported too, with a display mode of cover, contain or repeat; your theme reads these as $_siteBackground and $_siteBackgroundMode. You can also tune the logo height for desktop (default 36px) and mobile (default 28px) with a live preview.

Use a transparent PNG or SVG. A logo with a transparent background sits cleanly on both the light and dark headers. Keep each file under 5 MB.

Colours & dark mode

Under Appearance → Colors you set two palettes — one for the Light theme and one for the Dark theme — using a colour picker with optional opacity. Each override is compiled into CSS custom properties and injected as the $_colorOverrides <style> block, so a handful of values cascade through the whole theme. Each palette exposes the same eight roles:

Primary
Accent colour for buttons, links and active states. Shared across both themes by default.
Background
The page background.
Surface
Sidebars, section backgrounds and inputs.
Card
Video cards, comments and content blocks.
Dark BG
Footer, overlays and placeholders.
Text / Muted Text
Body text and the quieter meta, links and placeholder text.
Border
Dividers and card outlines.

The same screen holds the dark mode controls. A master User toggle decides whether visitors get a light/dark switch in the header, and a Default of Light or Dark sets what they see first. If you turn the user toggle off, the site always uses your chosen default and the unused palette is greyed out.

Layout

Appearance → Layout controls how grids are sized. The headline option is videos per row — choose 4, 5 or 6 (default 5), surfaced to templates as $_videosPerRow. Tabbed sections also let you set the per-page count and default sort for videos, categories, pornstars and channels, and a Site Dimensions block sets the overall max width (default 1800px) and page padding.

Trending sort needs the CTR plugin. The Trending default-sort option stays locked until you enable click-through ranking. See CTR ranking.

Video card options

Under Appearance → Video Cards you fine-tune every thumbnail in a listing, with a sticky live preview that updates as you change each control.

OptionVariableWhat it does
Show duration badge$_cardShowDurationThe duration pill on the bottom-right of the thumbnail.
Show title$_cardShowTitleThe video title under the thumbnail.
Title lines$_cardTitleLinesClamp the title to 1 or 2 lines.
Meta left / right$_cardMetaLeft / $_cardMetaRightPick what shows on each side: views, likes, time (time ago) or none.
Grid gap$_cardGridGapSpacing between cards, 0–30px.
Border radius$_cardBorderRadiusCorner rounding, 0–24px.
Hover zoom$_cardThumbnailHoverZoom the thumbnail on hover.

These options respect the watch page settings below. If you hide duration or a meta value on the watch page, the matching card option is disabled automatically so the two stay consistent.

Watch page options

The Watch Page sub-tab decides what appears around the player. Each item is an independent toggle; sections with no data hide themselves regardless.

  • Video infoViews, Duration, Date published, Like / Dislike and the Favourite button.
  • Video detailsPerformers, Channels, Categories and Tags.
  • Comments — turn the comment thread on or off site-wide ($_commentsEnabled). See comments.

The same screen also configures the player (default quality, playback speed, download button, loop and double-click fullscreen) and the number of related videos in the sidebar. These map to the $_watchShow* variables in the theme API.

Navigation & search

The Menu sub-tab builds your header navigation. Toggle the search bar on or off ($_menuSearch), then assemble the menu from built-in destinations or your own custom links. Each item ($_menuItems) carries a label, url, an enabled flag and an optional templates list so a link can show only on certain page types. When you publish more than one language, a language switcher appears automatically.

For the static pages that feed your menu and footer, see pages & menus.

Next steps

Still stuck?

Open a ticket from your dashboard and our team will help you out.

Try the live demo → Download TubePress →