CSS Cookbook

This cookbook is a collection of simple but useful CSS snippets to be used however you want.
== CSS tutorials ==
=== Background images ===
If you want to change the background image of your wiki using CSS, look no further. Generally, you can accomplish this using:
Some fine tuning may be required, but those are the basics.
=== Message Wall user tags ===
This snippet by Caburum allows you to add a customizable "tag" to messages and forum posts by a specified user. It can be used to distinguish administrators, bureaucrats, the wiki's founder etc. It can be used for any purpose.
Change Username to the username (make sure to replace any spaces with %20 or, if the name uses special characters, you can transform it in an URL Encoder and use its result) and change (Tag) to whatever you want to show after. You can type any other CSS rules to customize the appearance of the tag. The above example, in addition to adding the tag, makes the text color the same color as other text, but this can be changed.
=== Specific CSS ===
Fandom has several specific built-in classes.
* .ns
** Namespace specific class
** This page's is .ns-
* .theme-fandomdesktop-light .theme-fandomdesktop-dark
** Light and dark theme specific classes
* .page
** Page specific class
** This page's is .page-CSS_Cookbook
* .wiki
** Wiki specific class
** This wiki's is .wiki-dev
== Site enhancements ==
=== Image styling ===
This CSS manipulates the appearance of a specific image on your wiki, use this CSS snippet below, replacing Filename.ext with an image on your wiki (for example: Example.jpg):
To apply CSS image manipulation for light and dark skins, place .theme-fandomdesktop- (for desktop), and .theme-fandommobile- (for mobile), with the class suffix light or dark before img.
=== Blackout customization ===
To customize the black out that appears when viewing an image on a lightbox, use this CSS snippet below:
.blackout {
	background: #84dcff;
	mix-blend-mode: overlay;
}
Change the color of the background #84dcff to the intended color and the blending type overlay to the intended mixing mode.
=== Gallery styling ===
This CSS snippet by ValleyMaster will change the default appearance of galleries.
If you want a custom image border, remove border-style: none and replace it with border: _px solid color.You may also apply a border-radius if you'd like, and this works even with border-style: none active.
=== Expand/Collapse toggle button design ===
This CSS snippet will allow you to design the expand/collapse toggle button.
Sometimes, the toggle button may not be better on the left side. This CSS snippet by ValleyMaster will allow you to change the position back to right. 
.float-right .mw-collapsible span.mw-collapsible-toggle {
	float: right;
}
To apply this, close the tag with mw-collapsible with .
For example:
text 1
text 2
Table example:
Text 1
Text 2
=== Block-style header ===
This CSS snippet by JustLeafy, makes the page header looks like a block style with a solid background color. It indirectly returns the style of the Oasis-style header.
.fandom-community-header {
	background: var(--theme-accent-color);
	color: var(--theme-accent-label-color);
	padding: 15px 20px 5px 20px;
}
.page {
	margin-top: 0;
}
=== Condensed header dropdowns ===
This CSS snippet by JustLeafy, makes the style of the dropdowns of the page header look more condensed.
.fandom-community-header__local-navigation .wds-dropdown__content {
	padding: 0 !important;
}
.fandom-community-header__local-navigation .wds-dropdown__content .wds-list.wds-is-linked > li {
	padding: 0 6px !important;
}
=== Wiki-themed scrollbar ===
This CSS snippet by Headquarter8302 styles the wiki's scrollbar with the current theme that is being applied, regardless of color and theme selection (light or dark). The snippet uses the relatively new scrollbar-color property introduced in the CSS Scrollbars Styling Module Level 1 spec.
:root {
 scrollbar-color: var(--theme-accent-color) var(--theme-accent-color--hover);
}
=== Line-height customization ===
Customizing line-height is useful for Indic scripts such as Devanagari, Bengali, Kannada, Odiya, etc due to mātrās (such ि, ी, ु and ू), flowing off the lines in specific locations and making it look untidy. It is recommended that all wikis in the mentioned languages use this:
.wds-community-header__sitename,
.fandom-community-header a,
#content h2,
#content h3,
#content h4 {
	line-height: 1.5;
}
=== Link customization ===
This CSS snippet was created by Cleverduck09 to customize what links wiki-wide look like on hover, once they have been visited, and when they haven't been visited or hovered on, input the following code:
=== Profile background ===
If you want to insert a background image that spans across of profiles of users, you can use:
Note: Add background-repeat: no-repeat; if you have added a wider image. They may not fit and will result in a repeating background.
=== Print/PDF sanitisation ===
This stylesheet by Headquarter8302 distills the print/PDF output to a more print and PDF friendly format by removing most if not all Fandom elements and only leaving the Infoboxes and the content articles, while also making a lot of the page content much more legible. If you have found some elements that should be removed or if you want this to be turned into a fully-maintained stylesheet, please harass Markus (the author of this snippet).
Remember to put this inside MediaWiki:Print.css, and not your Common.css.
:root {
	--pi-border-color: black !important;
}
.fandom-sticky-header,
.global-navigation,
#mixed-content-footer,
.bottom-ads-container,
.top-ads-container,
.global-footer,
div[class^="InlineEntityFormWrapper_inline-entity-form-wrapper"],
#WikiaBar,
.page-side-tools__wrapper,
.page-header__actions,
.page__right-rail,
.community-header-wrapper,
.mw-editsection,
.page-footer__categories .wds-icon.wds-icon-small,
div[class^="Filters_article-comments-filters"],
#mw-data-after-content {
	display: none !important;
}
:not(pre > *),
:not(.mw-highlight > *) {
	background: white !important;
	color: black !important;
}
.main-container, .resizable-container {
	max-width: none;
	width: 100%;
	margin: 0;
}
=== Scrollbar customization ===
If you want to customize your wiki's scrollbar, you can use these CSS selectors to apply various properties to it:
Note: Scrollbar customization is only supported in WebKit based browsers, like Chrome, Safari, and Opera. However, Firefox users could instead use other properties, such as scrollbar-width and scrollbar-color.
* scrollbar-width: Modifies the width of the scrollbar. Note that the value of this property is not measured in pixels, so to make it thin for example, instead of making it a few pixels, the value should be "thin".
* scrollbar-color: Modifies the colors of the scrollbar. Note that there are two color values in this property: the first color value applies to the scrollbar itself and the second color value applies to the background of the scrollbar. The color of the scrollbar in its hover/active/focus state is automatically adjusted.
=== Username highlighting ===
This CSS snippet highlights links to an administrator's userpage, Message Wall, contributions and blog listing:
Change Admin's_Username to the username of the administrator you intend to highlight, #006600 to the intended color of highlighting and Arial to the intended font for the highlight. You can also remove certain sections if you don't need them in the highlight.
Note: For usernames with spaces in them, message walls encode the spaces with %20, while the MediaWiki part encodes the spaces with underscores. So in order to highlight both, both versions need to be included in the CSS rule. For example:
In case there are other special characters in the username (such as & or ' ), those need appropriate encoding as well.
=== Change outline style ===
This minor CSS plug-in customizes the style of the outline. The outline means the blue border that appears when tabbing (using to navigate a page). It is a style that is not to be confused with border. An outline is a line that is drawn around elements (outside the borders) to make the element "stand out".
Note: Do not remove that outline as it is vital for making your wiki accessible to users who only use their keyboards.
=== Round corners on Special:Community ===
This snippet by Louky rounds corners of Community Page modules:
.community-page-card-module-header, .community-page-card-module {
	border-radius: 40px 40px / 40px 40px;
}
=== Pixelated images ===
This snippet by Rail makes sure that low resolution pixelart images are being displayed without antialiasing applied by Fandom's image processing service.
.mw-parser-output img {
	-ms-interpolation-mode: nearest-neighbor;
	image-rendering: -moz-crisp-edges;
	image-rendering: -o-crisp-edges;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}
=== Reduced motion ===
This CSS snippet will make the duration of all CSS animations and transitions in such a short time that they are not noticeable anymore, while keeping it functional in case there's scripts that depends on animations and/or transitions to work. This can be useful for people who don't like animations, have motion-triggered vestibular spectrum disorders or want to improve page performance. The code will take effect only if the user has the prefers-reduced-motion preference on their system set to true. Snippet from web.dev.
@media (prefers-reduced-motion: reduce) {
	*, ::before, ::after {
		animation-delay: -1ms !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		background-attachment: initial !important;
		scroll-behavior: auto !important;
		transition-duration: 0s !important;
		transition-delay: 0s !important;
	}
}
You can also remove the media query to apply it to the wiki no matter the user's preference.
=== Accessible navigation buttons ===
Allows links in the navigation bars to be keyboard-navigable (it's highly recommended to implement along with JumpToContent since it can drastically increase the amount of links keyboard users will have to navigate in each page before getting to its contents).
.wds-dropdown:not(.wds-is-touch-device):not(.wds-is-not-hoverable):is(:hover, :focus, :focus-within) .wds-dropdown__content,
.fandom-community-header__local-navigation .wds-dropdown__content .wds-list.wds-is-linked .wds-dropdown-level-nested:not(.wds-is-touch-device):is(:hover, :focus, :focus-within) > .wds-dropdown-level-nested__content {
	display: block;
}
=== Edit sections ===
==== Hidden edit sections ====
This CSS snippet by Александр III hides all edit links next to section headers.
.mw-editsection {
	display: none;
}
==== Change icon for edit sections ====
This CSS snippet by Laclale and KockaAdmiralac changes icon for all edit links next to section headers. You can change the URL that links to image.
.section-edit-pencil-icon, .mw-editsection .wds-icon {
	background: url('https://vignette.wikia.nocookie.net/ocraviutl/images/1/13/EditVester.png/revision/latest?path-prefix=ja') no-repeat;
}
.section-edit-pencil-icon use, .mw-editsection .wds-icon use {
	opacity: 0;
}
=== Transparent strikes ===
This CSS snippet by Leslie1289 makes 
 and related elements semi-transparent. Example.
strike, s, del {
	opacity: 0.5;
}
=== Semi-transparent page background ===
The background of the content area is currently opaque, meaning the wiki background image behind it is not visible. To set that background semi-transparent while keeping the color picked via Theme Designer, use:
.page__main {
	background-color: rgba(var(--theme-page-background-color--rgb), 0.96);
}
The value of 0.96 is the opacity and it can be increased or decreased, but it's not recommended to lower it too much since the background image behind might make the text hard to read.
The code above would still leave the right rail and the bottom Fan Feed opaque. In order to make them semi-transparent too, the following extended version can be used instead:
.page__main,
.page__right-rail,
#mixed-content-footer {
	background-color: rgba(var(--theme-page-background-color--rgb), 0.96);
}
.page__right-rail .rail-module {
	background: transparent;
}
=== Sticky search bar on Special:Search ===
This simple snippet by User:SuperDragonXD1 makes the search bar, alongside the related wikis and filters sidebar on Special:Search and Special:SearchCommunity.
=== FAB TOC only ===
This CSS snippet sets a middle ground between showing all Table of Contents (TOC) and not showing any of them, by hiding the TOC in the article but keeping the one in the Floating Action Button (FAB) on the top left of the page (or top right if you're on mobile). The in-page's TOC can still be accessed through keyboard navigation.
#toc:not(:focus-within) {
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	position: absolute;
}
=== Rail toggle button as FAB ===
The rail toggle button doesn't scroll with you as the buttons on the left side does, making you have to scroll to the top of the page to toggle the side bar, so this personal CSS snippet gives that specific button the same styling as the other Floating Action Buttons (FABs) so it follows you around when you scroll.
=== HTML theme colors ===
This snippet sets the accent color for user-interface controls generated by some default HTML elements as well as the scrollbar. Note that accent-color is enabled by default only in recent browser versions, and color-scheme has wider browser support.
The following snippet assumes that your wiki is light-theme by default, but you can invert the color-scheme value to dark light if your wiki is dark-themed by default, and you also may want to change the class .theme-fandomdesktop-dark to .theme-fandomdesktop-light to properly update the color scheme for light theme.
=== Sticky table headers ===
You can make table header cells follow your screen so users can permanently see what each column is about. To do so, you use the following CSS:
Then you can make header cells sticky. Here we will show two methods: one that only checks for the table class nd other that checks for each cell's class.
=== Align mobile footer ===
The following snippet aligns the footer section in mobile to not obstruct any elements above as it can clash with interactive maps and navboxes.
:Note: This snippet should only be added either to your personal CSS, or to your local FandomMobile.css. It won't work if it's added elsewhere, or if mobile CSS hasn't been enabled for your community.
.article-footer {
	transform: unset;
}
.article-footer-item, .article-information-header, .wds-font-size-base {
	transform: unset;
}
=== Remove mobile main page elements ===
The following snippet comes from Sky Children of the Light Wiki, in which it removes elements from the native main page in mobile in order to have the wiki's main page to only show at the top.
:Note: This snippet should only be added either to your personal CSS, or to your local FandomMobile.css. It won't work if it's added elsewhere.
.mobile-main-page__wiki-description {
	display: none !important
}
.mobile-main-page__trending-articles {
	display: none !important
}
.mobile-main-page__popular-categories {
	display: none !important
}
.mobile-main-page .mobile-hidden {
	display: block !important
}
== User customizations ==
=== WikiEditor Syntaxhighlight Extensions ===
Personal CSS only: This CSS extension pack by Suggon adds a few visual fixes and syntaxhighlight features into the 2010 wikitext editor; some being inspired by VSCode.
* Enable editor overscrolling
* Fix occasional "disappearance" of text cursor
* Line highlight on mouse hover
* Comprehensible matching-brackets
* Outline for lines with matching-bracket
* Left border for lines between matching-brackets — handy for debugging nested parser functions
.CodeMirror {
	caret-color: var(--theme-page-text-color);
}
.CodeMirror * {
	transition-property: background-color, box-shadow, filter;
	transition-duration: 0.2s;
}
.cm-mw-matchingbracket {
	background-color: transparent !important;
	box-shadow: 0 0 0 0.5px rgba(128,128,128,.5) !important;
	filter: brightness(2);
	.theme-fandomdesktop-light & {
		box-shadow: 0 0 0 0.5px rgba(0,0,0,.5) !important;
	}
}
.CodeMirror-line:hover {
	background-color: rgba(128,128,128,.1) !important;
}
.CodeMirror-line:has(.cm-mw-matchingbracket) {
	box-shadow: inset 0 0 0 2px rgba(128,128,128,.2);
}
.CodeMirror-code div:last-child {
	height: 50vh;
}
.CodeMirror-code div:has(.cm-mw-matchingbracket), .CodeMirror-code div:has(.cm-mw-matchingbracket) ~ div {
	box-shadow: -1px 0 #0af;
}
.CodeMirror-code div:has(:nth-child(2 of .cm-mw-matchingbracket)) ~ div, .CodeMirror-code div:nth-child(2 of :has(.cm-mw-matchingbracket)) ~ div {
	box-shadow: none;
}
.CodeMirror-gutters {
	margin-left: -0.5px;
}
=== Remove Search Tooltip ===
Personal CSS only: This is a very simple user customization which removes the yellow tooltip indicating options to search specific, highlighted text.
#highlight__main-container {
	display: none;
}
=== Cursor customization ===
Personal CSS only: sitewide use violates customization policy.
If you want to change the icon displayed as your cursor, you can use:
=== Detect username template ===
This CSS snippet by TheGoldenPatrik1 places a border around the {{USERNAME}} template to prevent users from being fooled by it:
.insertusername,
.inputusername,
.InsertUsername,
.InputUsername {
	border: 1px solid;
	padding: 0.5px;
}
=== Fix "Mark All As Read" button ===
This personal only CSS snippet by Headquarter8302 fixes the issue where the floating wiki navigation bar covers the top of the notifications popup, and thus, covering the "Mark All As Read" button. The snippet below changes the z-index of the notifications popup and the header:
.fandom-sticky-header.is-visible {
	z-index: 499;
}
.notifications header[class*="NotificationsDropdown-module_contentHeader"] {
	z-index: 500;
}
=== Force default cursor ===
This personal only CSS snippet forces all cursors to become default. This means that custom wiki cursors will be restored back to default. It also replaces the hand cursor when hovering over links with the default cursor.
body,
* {
	cursor: default !important;
}
a:hover {
	cursor: pointer !important;
}
=== Hide main page categories ===
This personal-only CSS snippet by JustLeafy and KockaAdmiralac prevents the bottom category bar to appear on the main page:
.mainpage .article-categories, .mainpage .page-footer__categories {
	display: none;
}
=== Hide main page title ===
This personal-only CSS snippet by DiegoFire Network and KockaAdmiralac removes the title of a wiki's main page.
.mainpage .WikiaPage .page-header__title,
.mainpage .WikiaPage .page-header__separator,
.mainpage #firstHeading {
	display: none;
}
=== Hide global sidebar ===
This personal-only CSS snippet by Headquarter8302 removes the global sidebar and allowing a larger view of the content page. If you'd like to completely remove the margins present on the main container, consider using MinutelyWider.
.global-explore-navigation#global-explore-navigation { display: none }
.main-container {
 margin-left: 0;
 width: initial
}
=== Minified PPH ===
This personal-only CSS snippet by KurwaAntics minifies Fandom's new article header by removing the category list and language dropdown button on the top of the header and reducing the article's title's font size:
.page-header__categories,
.page-header__languages {
	display: none;
}
.page-header__title {
	font-size: 34px;
}
=== Previous WDS Button design ===
This minor CSS plugin by JustLeafy makes the buttons look like the previous style before they had rounded corners and a larger font size.
.wds-button {
	padding: 7px 12px;
	font-size: 10px;
	border-radius: 0 !important;
}
=== Retro 2010 ACE Editor ===
This CSS snippet by Headquarter8302 makes the 2010 ACE Editor text have a glowy text effect, similar to Windows Terminal's retro terminal setting.
.ace_line {
	text-shadow: 0 0 5px currentColor;
}
=== Selection customization ===
This CSS snippet by JustLeafy makes the selection background color semi-transparent.
::selection {
	background: rgba(120,120,120,0.5);
}
=== Smooth page load ===
This personal only CSS code by Cleverduck09 creates a short fade-in animation on wiki pages.
@keyframes pageload {
	from { opacity: 0; }
	to { opacity: 100; }
}
body,
.Message__content,
.wds-dropdown,
.wds-tabs__tab,
.wds-dropdown__toggle,
.client-js {
	animation-name: pageload;
	animation-duration: 0.4s;
	animation-iteration-count: 1;
	animation-delay: 0s;
}
=== Change diff highlights ===
This CSS snippet by RyaNayR adds a red outline-border to diff-change highlight color-scheme. This would presumably greatly increase visibility of small, one-character changes, while also remaining palatable to the eyes on larger diffs, when anyone on your wiki is reviewing edit-differences.
.diffchange {
	border: 1px solid #f00;
}
=== Remove Fan Feed ===
This is a simple personal CSS snippet that removes the Fan Feed which is located at the bottom of the main page, article pages and file pages.
#mixed-content-footer {
	display: none;
}
=== Caret color ===
Caret color is a simple stylesheet that gives the caret (or text indicator cursor) a different color. Currently, the caret can only be colored with the caret-color, but the width and other properties are not customizable yet because these properties don't exist yet. This minor CSS plug-in will affect the caret in all textareas. Note that the caret color here is red, but it can definitely be changed to a different color.
textarea {
	caret-color: red;
}
=== Hide read feeds/announcements notifications ===
This CSS snippet added by Andrewds1021 and KockaAdmiralac hides read notifications in the Feeds/Announcements notification drop-down (the bell icon in the global navigation header). It also re-works how the horizontal rules are added between notifications such that the last unread notification is not followed by an extraneous horizontal rule. This is for personal use only.
=== Large thumbnails in Dynamic Categories ===
This CSS snippet by HumansCanWinElves and partially based on Fandom's own stylesheet, turns all the entries in category pages to look like the "Trending pages" at the top - four columns with large thumbnails. This works for users who use the default "Dynamic Categories" view.
The images look somewhat blurry, since they are low-resolution thumbnails enlarged by CSS. This cannot be fixed without using custom JS.
Entries without an image will display the Fandom logo, and this can be replaced by changing the URL in the middle of the code. In this case, usually you will also want to change the "80%" size definition to "100%".
.ns-14 #content .category-page__members.category-page__members {
	column-count: 1;
}
.ns-14 #content .category-page__members-for-char {
	display: -ms-inline-flexbox;
	display: grid;
	-ms-flex-wrap: wrap;
	grid-gap: 20px;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	margin-left: 0;
}
.ns-14 #content .category-page__member {
	flex-direction: column;
}
.ns-14 #content .category-page__member-left {
	width: 160px;
	height: 120px;
	background: url(https://static.wikia.nocookie.net/740bff54-a89f-4c0a-97a1-a97c6b1a77a7) no-repeat center center/auto 80%;
	border: 1px solid;
	justify-content: flex-start;
}
.ns-14 #content .category-page__member-thumbnail {
	width: 160px;
	height: 120px;
	border: none;
}
.ns-14 #content .category-page__member-link {
	text-align: center;
}
=== Hide StickyNav ===
This short, personal only, snippet by BlindCartographer stops the stickied top navigation from ever appearing.
.fandom-sticky-header {
	display: none !important;
}
Category:CSS