Stylus (style sheet language)

Stylus is a dynamic stylesheet preprocessor language that is compiled into Cascading Style Sheets (CSS). Its design is influenced by Sass and Less. It is regarded as the fourth most used CSS preprocessor syntax.[3] It was created by TJ Holowaychuk, a former programmer for Node.js and the creator of the Luna language. It is written in JADE and Node.js.

Stylus
Designed byTJ Holowaychuk
DeveloperLearnBoost (March 29, 2011 (2011-03-29) - March 26, 2015 (2015-03-26)) / Automattic (March 26, 2015 (2015-03-26) - Present)[1]
First appeared2010; 14 years ago (2010)
Stable release
0.63.0[2] / March 5, 2024; 3 months ago (2024-03-05)
Typing disciplinedynamic
OSCross-platform
LicenseMIT License
Filename extensions.styl
WebsiteStylus (Github)
Influenced by
CSS, Sass, Less

Selectors

Unlike CSS, which uses braces to open and close declaration blocks, indentation is used. Additionally, semi-colons (;) are optionally omitted. Hence, the following CSS:

body {    color: white;}

can be shortened to:

body     color: white

Further, colons (:) and commas (,) are also optional; that means the above can be written as,

body     color white

Variables

Stylus allows variables to be defined, however unlike Less and Sass, it doesn't use a symbol to define variables. Additionally, variable assignment is done automatically by separating the property and keyword(s). In this way, variables are similar to the variables in Python.

message = 'Hello, World!'div::before  content message  color #ffffff

The Stylus compiler would translate the above document to:

div::before {  content: 'Hello, World!';  color: #ffffff;}

Mixins and functions

Both mixins and functions are defined in the same manner, but they are applied in different ways.

For example, if you wanted to define the CSS border radius property without having to use various Vendor Prefixes you can create:

border-radius(n)  -webkit-border-radius n  -moz-border-radius n  border-radius n

then, to include this as a mixin, you would reference it as:

div.rectangle   border-radius(10px)

this would compile to:

div.rectangle {  -webkit-border-radius: 10px;  -moz-border-radius: 10px;  border-radius: 10px;}

Interpolation

To include variables in arguments and identifiers, brace characters surround the variable(s). For example,

 -webkit-{'border' + '-radius'}

evaluates to

-webkit-border-radius

References


🔥 Top keywords: Main PageSpecial:SearchPage 3Wikipedia:Featured picturesHouse of the DragonUEFA Euro 2024Bryson DeChambeauJuneteenthInside Out 2Eid al-AdhaCleopatraDeaths in 2024Merrily We Roll Along (musical)Jonathan GroffJude Bellingham.xxx77th Tony AwardsBridgertonGary PlauchéKylian MbappéDaniel RadcliffeUEFA European Championship2024 ICC Men's T20 World CupUnit 731The Boys (TV series)Rory McIlroyN'Golo KantéUEFA Euro 2020YouTubeRomelu LukakuOpinion polling for the 2024 United Kingdom general electionThe Boys season 4Romania national football teamNicola CoughlanStereophonic (play)Gene WilderErin DarkeAntoine GriezmannProject 2025