What are skinStyles?
SkinStyles are custom CSS/LESS files that skins can provide to override or enhance the default styling of MediaWiki extensions and core modules. When an extension loads its styles, MediaWiki automatically loads the corresponding skinStyles for the active skin, allowing Citizen to:- Adapt extension UI to match Citizen’s design language
- Apply Citizen’s CSS custom properties (colors, spacing, typography)
- Ensure responsive behavior across all screen sizes
- Support both light and dark themes
- Fix visual inconsistencies and improve usability
How skinStyles Work
The skinStyles system is declared inskin.json under the ResourceModuleSkinStyles section:
+ prefix means these styles are appended to the extension’s original styles rather than replacing them completely. This allows Citizen to build upon the extension’s base styling while maintaining compatibility.
Coverage
Citizen provides skinStyles for 70+ extensions, including:- Editing tools: VisualEditor, WikiEditor, CodeMirror, CodeEditor
- Discussion systems: DiscussionTools, Flow, CommentStreams, Echo
- Semantic extensions: Semantic MediaWiki, Semantic Result Formats, Cargo
- Media handling: MultimediaViewer, TimedMediaHandler, UploadWizard
- UI enhancements: Popups, Tabs, TabberNeue, PortableInfobox
- Translation tools: Translate, UniversalLanguageSelector
- And many more…
Design Principles
When creating skinStyles, Citizen follows these principles:- Use CSS custom properties: Leverage Citizen’s design tokens (e.g.,
--color-surface-0,--border-color-base) for consistency - Maintain functionality: Never break extension features—only enhance their appearance
- Responsive by default: Ensure extensions work well on mobile, tablet, and desktop
- Theme-aware: Support both light and dark modes automatically through CSS variables
- Minimal overrides: Only override what’s necessary to maintain the extension’s original design intent
Extension Categories
Citizen supports extensions across several categories:Core & Bundled Extensions
Extensions that ship with MediaWiki receive first-class support, including:- Cite, CategoryTree, Interwiki, SyntaxHighlight
- CodeMirror, MultimediaViewer, VisualEditor, WikiEditor
- TemplateData, RevisionSlider, Popups
Community Extensions
Popular third-party extensions from MediaWiki.org:- Semantic MediaWiki & Semantic Result Formats
- Cargo, Scribunto, PortableInfobox
- Translate, UniversalLanguageSelector
- TabberNeue, DataMaps, FloatingUI
Specialized Extensions
Extensions for specific use cases:- Wikimedia: Echo, Flow, CentralNotice, FlaggedRevs
- Editing: TinyMCE, VEForAll, CodeEditor
- Data: Wikibase, Cargo, Capiunto
- UI/UX: Tabs, Tabber, SimpleTooltip, CookieWarning