Themes

Last edited 2026-10-15 14:33 EDT · history · 116 views

Themes

The web UI's color palette is variable-driven. ANetBBS ships with
several themes plus a custom-theme editor.

Default themes

Slug Look
modern-dark High-contrast Catppuccin-style slate (recommended, default)
classic-green Green-on-black classic BBS terminal look
amber-terminal Warm amber on dark brown
blue-ice Cyan accent on deep navy
matrix Bright neon green on pure black
synthwave Hot pink + cyan on dark purple
paper-white Light theme for daytime use
enhanced "VOID SIGNAL" — triple neon (green/cyan/magenta) on black, scanlines, glitch effects
hackers "HACKERS (1995)" — neon violet/lime/cyan cyberpunk homage
graphite-teal Neutral graphite dark with a single refined teal accent, built for long reading sessions
ivory-editorial Warm cream daytime theme, deep forest-teal accent, serif headlines
retro-web "Retro Web '99" — tiled pinstripe background, beveled Win95 chrome, Times New Roman
command-deck Fixed icon-rail app shell (not a top navbar) — mission-control blue + amber, real mobile drawer/tab-bar support

Per-user

/profile/edit → Theme. Stored on User.theme_id.
The selected theme's CSS variables are emitted in a <style> tag at
the top of every page (see base.html).

Site-wide default

Sysop sets one theme as is_default=True. Anonymous visitors and
new accounts see this theme until they change it.

Custom themes

/admin/theme-builder lets the sysop author a new theme. Pick
variable values from a color-picker; preview live; save. Every theme
is just a set of CSS variables — --theme-bg, --theme-primary,
--theme-text, etc.

Light themes

ANetBBS is dark-by-default — every list-group, table-row tint, and
alert palette is hand-tuned for dark backgrounds. paper-white and
ivory-editorial are the two shipped light themes; building another
one requires overriding the same "dark" assumptions in base.html.

Terminal menu art

The web theme system doesn't affect the telnet/SSH/rlogin menus —
those use CP437 ANSI art files instead. See Custom ANSI Screens
for the full slot reference and how to drop in your own .ans files.