# Stylish (software)

Stylish is a user style manager that can change the appearance of web pages in a user's browser without changing their content by including user-supplied CSS style sheets with those supplied by the web site itself. The Stylish browser extension includes tools with which to write user styles, and can install user styles written by other Stylish users from a companion website. These user styles may be more or less selective, targeting just one web page, or all of the pages on a domain, or every page on the web.
Stylish was originally developed by Jason Barnabe as an XUL/XPCOM add-on for Mozilla Firefox. A Chrome extension followed in 2010, which was released for Blink-based Opera 15 in 2013 and as a Firefox WebExtension in 2017. Similar extensions for Safari and for Presto-based Opera are distributed as 'Stylish' by other developers with Barnabe's approval.

## Technical details

User styles are CSS code designed to alter the appearance of one, some, or all sites. Stylish for Firefox can additionally style the skin of the browser itself, but the Android version does not support this because the user interface is built in native Android code. The styles are applied only to the targets specified. Individual user styles can be enabled or disabled without having to restart the browser.
User styles are added to the CSS rules provided by the site, but can also override the site's styling (often requiring the !important keyword for each replacement rule). The most common uses are ad blocking, applying a new color scheme, and eliminating unwanted page elements.
There are three classes of user styles. Site styles change the appearance of a particular web site. Global styles change the appearance of all web sites. App styles change the appearance of the Firefox user interface, only supported on Firefox. It is similar to the userChrome.css CSS file used by Firefox and Mozilla-based browsers.

## Privacy issues

In September 2016 Jason Barnabe, the creator of Stylish and userstyles.org, announced that, having lost interest in the project, he had "chosen Justin Hindman as the next leader of Stylish and userstyles.org." Hindman had no prior connection to either Stylish or userstyles.org, and it soon became clear that Barnabe had simply sold them to Hindman in a straw purchase for Israeli analytics company SimilarWeb.
In December 2016 Hindman began releasing updates to Stylish for Chrome which returned a perfect replica of the user's browsing activity to Userstyles. On 3 January 2017 he announced a "partnership" with SimilarWeb in which "Stylish users [would] be joining SimilarWeb’s market research panel.". A Firefox web extension (3.0.1) was released on 10 November, after a final update (2.1.1) to the Stylish XUL+XPCOM add-on on 31 October to migrate user styles to a webextension-compatible database.
In July 2018, after these issues were publicized by a software engineer, Stylish was pulled from both the Chrome Web Store and Mozilla Add-ons, as well as being automatically uninstalled for all existing users. Stylish returned to Mozilla Add-ons on 16 August and to the Chrome Web Store on 5 November with the same logic but sporting a new opt-in page asking users to agree to the data collection when the extension was installed. Firefox now reports fewer users of Stylish than its more popular alternative, Stylus.

## Alternatives to Stylish

A userscript manager such as Greasemonkey or Tampermonkey can add a local style sheet to a web page by adding the style sheet content to an HTML <style> tag and adding the tag to the page. User styles from Userstyles.org can be downloaded as user scripts for use with a userscript manager.
Alternative user style managers include Stylus and xStyle, which are derived from Stylish for Chrome, aStyle, reStyle, and Website Theme Manager.
In Firefox, user styles for web sites and browser chrome can be added to local files userContent.css or userChrome.css, respectively. As of Firefox 69, user must switch the toolkit.legacyUserProfileCustomizations.stylesheets preference to true in about:config in order to load these files.