Skip to content
On this page

Visual Theme Editor ​

The Theme Editor is a visual, real-time sidebar tool that lets board administrators customize every color, font, and layout setting without writing CSS. Changes preview instantly on your live forum — just click Save when you're happy.

Opening the Theme Editor ​

  1. Navigate to your forum as an admin
  2. Click the palette icon in the admin toolbar (bottom-right)
  3. The editor sidebar opens, showing the current theme's settings

TIP

Changes preview in real-time as you adjust colors. Nothing is saved until you click the Save button.


Editor Modes ​

The editor has two mode toggles at the top:

Light / Dark Mode ​

Switch between editing your light mode and dark mode color palettes independently. Each mode has its own set of color overrides.

IconMode
☀️ SunLight mode palette
🌙 MoonDark mode palette

Device Preview ​

Preview how your forum looks on different screen sizes:

IconDeviceWidth
🖥 DesktopFull width
📱 TabletMedium viewport
📱 PhoneNarrow viewport

Editor Sections ​

The editor is organized into tabs along the second toolbar row:

TabDescription
Color PaletteAll color settings organized by section
TypographyFont family, font size
HeaderLogo area gradient
ComponentsPanel, button, navigation, and element colors
TemplatesBoard layout templates (head, top/above/after the board)
ImagesTheme images (logo, forum markers, stats icons)
Custom CSSRaw CSS editor for advanced overrides
LayoutsLayout template HTML and guest layout

Color Palette Reference ​

Every color setting maps to a CSS custom property (variable). When you set a color in the editor, it generates a :root block that overrides the default theme values.

Page ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-body-bg#f1f5f9#0f172a
Text Color--fs-body-color#334155#e2e8f0
Link Color--fs-link-color#64748b#7fa5db
Link Hover--fs-link-hover-color#6087d1#a8c4e8
SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-header-from#4c6ec4#172033
Gradient End--fs-header-to#6087d1#1e293b

User Menu Bar ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-user-menu-bg#1e293b#0b1120
Text Color--fs-user-menu-color#f2f6fc#94a3b8
SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-nav-bg#6087d1#1e293b
Text Color--fs-nav-color#f2f6fc#94a3b8
Active Background--fs-nav-active-bg#f1f5f9#0f172a
Active Text--fs-nav-active-color#4c6ec4#7fa5db
SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-breadcrumb-bg#e2eaf7#172033
Text Color--fs-breadcrumb-color#334155#64748b

Panel Headers ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-panel-title-from#4c6ec4#283a55
Gradient End--fs-panel-title-to#6087d1#1e3050
Text Color--fs-panel-title-color#ffffff#e2e8f0
Border--fs-panel-title-border#6087d1#334155
Footer Accent--fs-panel-footer-accent#6087d1#6087d1
Footer Gradient Start--fs-panel-footer-from#e2eaf7#1e293b
Footer Gradient End--fs-panel-footer-to#f2f6fc#172033

Secondary Headers ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-panel-secondary-from#2f9a81#196355
Gradient End--fs-panel-secondary-to#51b69a#164f44
Border--fs-panel-secondary-border#2f9a81#1f7c67
Footer Accent--fs-panel-secondary-footer-accent#2f9a81#2f9a81

Panel Body ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-panel-bg#f8fafd#172033
Border--fs-panel-border#ccdbf1#283548
Section Background--fs-panel-section-bg#f2f6fc#172033
Sub-header Text--fs-sub-header-color#64748b#64748b

Forum Rows ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-forum-bg#f8fafd#1a2536
Marker Background--fs-forum-marker-bg#f2f6fc#1e293b
Last Post Background--fs-forum-last-bg#f2f6fc#1e293b
Link Color--fs-forum-link-color#4059ad#7fa5db
Divider--fs-forum-divider#e2eaf7#283548

Topic Rows ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-topic-bgrgba(242,246,252,0.5)#1a2536

Replies / Posts ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-reply-bg#f8fafd#1a2536
Details Bar--fs-reply-details-bg#f2f6fc#1e293b
User Border--fs-reply-user-border#e2eaf7#283548
Actions Bar--fs-reply-actions-bg#f2f6fc#1e293b
Divider--fs-reply-divider#e2eaf7#283548

Separator ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-separator-from#e2eaf7#283548
Gradient End--fs-separator-to#f2f6fc#1e293b

Mini Profile ​

SettingCSS VariableDefault (Light)Default (Dark)
Background--fs-mini-profile-bg#f2f6fc#1e293b
Border--fs-mini-profile-border#ccdbf1#283548

Buttons — Primary (CTA) ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-btn-primary-from#f2a82d#f4b942
Gradient End--fs-btn-primary-to#f4b942#ec8714
Border--fs-btn-primary-border#f2a82d#d1630e
Text Color--fs-btn-primary-color#ffffff#ffffff

Buttons — Blue ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-btn-blue-from#4c6ec4#f4b942
Gradient End--fs-btn-blue-to#6087d1#ec8714
Border--fs-btn-blue-border#4c6ec4#d1630e

Buttons — Secondary ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-btn-secondary-from#f8fafc#283548
Gradient End--fs-btn-secondary-to#f1f5f9#1e293b
Border--fs-btn-secondary-border#e2e8f0#334155
Text Color--fs-btn-secondary-color#475569#94a3b8

Buttons — Danger ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-btn-danger-from#ef4444#dc2626
Gradient End--fs-btn-danger-to#f87171#b91c1c
Border--fs-btn-danger-border#ef4444#7f1d1d
Text Color--fs-btn-danger-color#ffffff#fef2f2

Buttons — Success ​

SettingCSS VariableDefault (Light)Default (Dark)
Gradient Start--fs-btn-success-from#10b981#059669
Gradient End--fs-btn-success-to#34d399#047857
Border--fs-btn-success-border#10b981#064e3b
Text Color--fs-btn-success-color#ffffff#ecfdf5

Status Indicators ​

SettingCSS VariableDefault (Light)Default (Dark)
Notification Dot--fs-notification-dot#ef4444#ef4444
Online Active--fs-online-active#22c55e#22c55e
Online Away--fs-online-away#facc15#eab308
Online Idle--fs-online-idle#cbd5e1#475569

Bulletins ​

SettingCSS VariableDefault (Light)Default (Dark)
Primary Color--fs-bulletin-primaryrgb(96 135 209)rgb(96 135 209)
Accent Color--fs-bulletin-accent#51b69a#51b69a

Typography & Layout Settings ​

These are non-color settings managed via the Typography and Components tabs:

SettingCSS VariableDefaultDescription
Font Family--fs-font-family'Inter', sans-serifPrimary font (loaded from Google Fonts automatically)
Font Size--fs-font-size1remBase font size
Container Max Width--fs-container-max-width80remMaximum content width
Avatar Radius--fs-avatar-radius0.25remBorder radius for user avatars
Border Radius--fs-border-radius0.125remGlobal border radius
Box Shadow--fs-box-shadownoneGlobal box shadow
Panel Border Width--fs-panel-border-width1pxPanel border thickness

Theme Images ​

Upload custom images to replace the default ForumSpark assets:

FieldDescriptionDefault
Board LogoLogo in the page headerForumSpark logo
Forum ReadMarker icon for forums with no new postsFolder icon
Forum UnreadMarker icon for forums with new postsOpen folder icon
Forum RedirectMarker icon for redirect forumsArrow icon
Stats UsersUsers icon in board statisticsUsers icon
Stats BirthdaysBirthday icon in board statisticsCake icon
Stats RecordRecord icon in board statisticsChart icon

Custom CSS ​

For advanced customization beyond the color palette, use the Custom CSS tab to write raw CSS. This CSS is appended after all theme variables and the base stylesheet.

css
/* Example: Rounded panels with shadow */
.panel {
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

/* Example: Larger forum markers */
.forum__marker img {
    width: 48px;
    height: 48px;
}

How It Works ​

The theme editor generates CSS custom property overrides based on your settings:

css
/* Generated from your theme editor settings */
:root {
    --fs-body-bg: #fef7cd;
    --fs-panel-title-from: #1e3a5f;
    --fs-panel-title-to: #2c5282;
    --fs-font-family: 'Poppins', sans-serif;
}

/* Dark mode overrides (separate dark palette) */
body.dark {
    --fs-body-bg: #1a1a2e;
    --fs-panel-title-from: #0f1629;
}

This is injected as an inline <style> tag, meaning your settings always override the default values defined in the theme's CSS variables.


Resetting a Setting ​

Each color input has a reset button (✕) that appears when a custom value is set. Clicking it removes your override, reverting that setting to the default theme value.

Leaving a field showing "default" means no override is applied — the theme's default CSS variable value is used.