Configuration
Citizen works out of the box without any configurations!
The skin configs allow more customization on the specific features in the skin.
Appearance
$wgCitizenHeaderPosition
Determines where the site header appears on desktop screens.
$wgCitizenHeaderPosition = 'left';Values: 'left', 'right', 'top', 'bottom'
$wgCitizenHeaderPositionMobile
Determines where the site header appears below the desktop breakpoint, tablets included. Side placements do not fit small screens, so only the top and bottom edges are supported.
$wgCitizenHeaderPositionMobile = 'bottom';Values: 'top', 'bottom'
$wgCitizenThemeDefault
Sets the default color theme for new visitors.
$wgCitizenThemeDefault = 'auto';Values:
'auto': Matches the user's system or browser preference'light': Always starts in light mode'dark': Always starts in dark mode'black': Always starts in the Black theme
The option also accepts any theme value registered on the wiki, e.g. 'ocean' for a custom theme. The config itself is not gated — but the Black theme and custom themes ride the preview channel until Citizen 4. Outside the preview, 'black' falls back to an equivalent dark rendering, and custom themes won't render correctly.
$wgCitizenEnableCollapsibleSections
Allows users to collapse and expand sections on pages, making long articles easier to navigate.
$wgCitizenEnableCollapsibleSections = true;Values: true, false
$wgCitizenShowPageTools
Controls who can see the page tools menu (edit, history, etc.).
$wgCitizenShowPageTools = true;Values:
true: Always visible to everyone'login': Visible only to logged-in users'permission': Visible only to users with specific permissions
$wgCitizenGlobalToolsPortlet
The ID of the menu where global tools (like user preferences) should appear. Leave this empty to use the default location.
$wgCitizenGlobalToolsPortlet = '';$wgCitizenEnableDrawerSiteStats
Shows site statistics, such as the total page count, at the header of the side drawer menu.
$wgCitizenEnableDrawerSiteStats = true;Values: true, false
$wgCitizenThemeColor
Sets the color of the browser address bar on mobile devices to match your brand.
$wgCitizenThemeColor = '#0d0e12';Values: Hex color code
$wgCitizenPreview
Preview channel
Preview features are production-quality, but their shape may change during the cycle. Changes are announced in the release notes.
Version-scoped switch for the preview channel. Set it to the upcoming major release number to run that preview ahead of release. During the current cycle the number is 4, which enables the new color token pipeline (skins.citizen.tokens.new) — exactly one token module ships per request, and <html> gets the citizen-v4 generation class.
$wgCitizenPreview = 0;Values: 0 (stable, default), 4 (preview Citizen 4). Any other value behaves like 0, so a stale setting never enrolls the wiki in a later cycle.
The channel can also be toggled per-browser without editing LocalSettings.php:
- Append
?citizenpreview=4to any wiki URL to opt in for the current browser. The choice persists in a 24-hour cookie. - Append
?citizenpreview=0to opt back out.
When neither the URL parameter nor the cookie is present, $wgCitizenPreview decides.
$wgCitizenEnableARFonts
Loads the "Noto Naskh Arabic" font, improving readability for wikis that use Arabic script.
$wgCitizenEnableARFonts = false;Values: true, false
$wgCitizenEnableCJKFonts
Loads the "Noto Sans CJK" font, improving readability for wikis that use Chinese, Japanese, or Korean characters.
$wgCitizenEnableCJKFonts = false;Values: true, false
$wgCitizenEnablePreferences
Enables the user preferences panel, allowing visitors to customize their experience. The panel is extensible — admins can add custom preferences via on-wiki JSON, and gadgets can register their own options at runtime.
$wgCitizenEnablePreferences = true;Values: true, false
$wgCitizenOverflowInheritedClasses
A list of CSS classes that should be preserved when tables or images are wrapped in a scrollable container.
$wgCitizenOverflowInheritedClasses = [ 'floatleft', 'floatright' ];$wgCitizenOverflowNowrapClasses
A list of CSS classes that prevent an element from being wrapped in a scrollable container. Use this for elements that should always display fully.
$wgCitizenOverflowNowrapClasses = [
'noresize',
'citizen-table-nowrap',
'cargoDynamicTable',
'dataTable',
'smw-datatable',
'srf-datatable'
];$wgCitizenTableOfContentsCollapseAtCount
The minimum number of headings required before the sticky table of contents automatically collapses its sub-sections to save space.
$wgCitizenTableOfContentsCollapseAtCount = 28;Share
$wgCitizenEnableShare
Shows the share option on content pages (when the page exists).
$wgCitizenEnableShare = true;Values: true, false
$wgCitizenShareMode
Which share UI to present.
$wgCitizenShareMode = 'auto';Values:
'auto'(default) — try the browser's Web Share API first; fall back to Citizen's panel when the API isn't available (e.g. desktop Firefox).'panel'— always use Citizen's panel.'native'— always use the Web Share API, with a clipboard fallback on browsers that don't support it.
See the Share customization page for the panel's JSON shape and a starter pack.
Webapp manifest
$wgCitizenEnableManifest
Enables the web app manifest, allowing users to install your wiki as a standalone app on their device.
$wgCitizenEnableManifest = true;Values: true, false
$wgCitizenManifestOptions
Customizes the web app manifest settings, such as the app name, colors, and icons.
View default configuration
$wgCitizenManifestOptions = [
'background_color' => '#0d0e12',
'description' => '',
'short_name' => '',
'theme_color' => "#0d0e12",
'icons' => [],
];