File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.less</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (LESSCSS) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887">/**</span>
0008 <span style="color:#898887"> * Less syntax highlighting test file</span>
0009 <span style="color:#898887"> *</span>
0010 <span style="color:#898887"> * Based on the Less documentation ((c) 2017 Alexis Sellier, the Less Core Team, Contributors, The MIT License)</span>
0011 <span style="color:#898887"> *</span>
0012 <span style="color:#898887"> * @see http://lesscss.org/features/</span>
0013 <span style="color:#898887"> */</span>
0014 
0015 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@color</span>; <span style="color:#0057ae">@padding</span>; <span style="color:#0057ae">@margin</span>: <span style="color:#b08000">2</span>) {
0016   <span style="font-style:italic">colorr</span>: <span style="color:#0057ae">@color</span>;
0017   padding-3<span style="color:#b08000">:</span> <span style="color:#ff5500">@padding</span>;
0018   <span style="font-weight:bold">margin</span>: <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span>;
0019 }
0020 
0021 <span style="color:#0057ae">@my-ruleset:</span> {
0022   <span style="color:#644a9b">.my-selector</span> {
0023     <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">black</span>;
0024   }
0025 };
0026 
0027 <span style="color:#0057ae">@bacon:</span> <span style="color:#aa5500">red</span>;
0028 <span style="color:#0057ae">@beacon:</span> background-color;
0029 <span style="color:#0057ae">@baecon:</span> <span style="color:#0057ae">@{w}</span> + <span style="color:#0057ae">@w</span>;
0030 
0031 <span style="color:#644a9b">.noStar</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.class</span> <span style="color:#006e28;font-weight:bold">#sh</span><span style="color:#b08000">:extend</span>(<span style="color:#006e28;font-weight:bold">#hhh</span>) ) {}
0032 <span style="color:#644a9b">.noStar</span><span style="color:#b08000">:nth-child</span>(w: <span style="color:#aa5500">red</span>) {}
0033 
0034 <span style="color:#ff5500">@media</span> (<span style="font-weight:bold">max-width</span>: <span style="color:#0057ae">@width2</span>) <span style="font-weight:bold">and</span> handheld {
0035   <span style="font-weight:bold">height</span>: <span style="color:#644a9b;font-weight:bold">auto</span>;
0036 }
0037 
0038 <span style="color:#644a9b">.test</span> <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@color</span> = <span style="color:#aa5500">blue</span>) <span style="color:#644a9b">.ffff</span> {<span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;}
0039 
0040 <span style="color:#644a9b">.foo</span> (<span style="color:#0057ae">@bg</span>: <span style="color:#aa5500">#f5f5f5</span>, <span style="color:#0057ae">@color</span>: <span style="color:#aa5500">#900</span>) {
0041   <span style="font-weight:bold">background</span>: <span style="color:#0057ae">@bg</span>;
0042   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@color</span>;
0043 
0044   <span style="color:#644a9b">.x</span> {
0045     <span style="font-style:italic">x</span>: <span style="color:#0057ae">@nn</span>;
0046     <span style="font-style:italic">a</span>: <span style="color:#aa5500">white</span> <span style="color:#0057ae">@{nn@{ww}}</span>;
0047     <span style="font-weight:bold">background</span>: <span style="color:#aa5500">red</span>;
0048   }
0049 }
0050 
0051 <span style="color:#898887">// Variables</span>
0052 
0053 <span style="color:#0057ae">@link-color:</span>        <span style="color:#aa5500">#428bca</span>; <span style="color:#898887">// sea blue</span>
0054 <span style="color:#0057ae">@link-color-hover:</span>  <span style="color:#644a9b;font-weight:bold">darken</span>(<span style="color:#0057ae">@link-color</span>, <span style="color:#b08000">10</span><span style="color:#0057ae">%</span>);
0055 
0056 a, <span style="color:#644a9b">.link</span> {
0057   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@link-color</span>;
0058 }
0059 
0060 a<span style="color:#b08000">:hover</span> {
0061   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@link-color-hover</span>;
0062 }
0063 
0064 <span style="color:#644a9b">.widget</span> {
0065   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">#fff</span>;
0066   <span style="font-weight:bold">background</span>: <span style="color:#0057ae">@link-color</span>;
0067 }
0068 
0069 <span style="color:#898887">// Variable interpolation</span>
0070 
0071 <span style="color:#0057ae">@my-selector:</span> banner;
0072 
0073 <span style="color:#644a9b">.</span><span style="color:#0057ae">@{my-selector}</span> <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@s</span> = <span style="color:#644a9b;font-weight:bold">calc</span>(<span style="color:#bf0303">"s"</span>); <span style="color:#0057ae">@{s}</span> = <span style="color:#644a9b;font-weight:bold">calc</span>(<span style="color:#bf0303">"dddd"</span>)) {
0074   <span style="font-weight:bold">font-weight</span>: <span style="color:#b08000">bold</span>;
0075   <span style="font-weight:bold">line-height</span>+: <span style="color:#b08000">40</span><span style="color:#0057ae">px</span>;
0076   <span style="font-weight:bold">margin</span>: <span style="color:#b08000">0</span> <span style="color:#644a9b;font-weight:bold">auto</span>;
0077 }
0078 
0079 <span style="color:#0057ae">@images:</span> <span style="color:#bf0303">"../img"</span>;
0080 
0081 body {
0082   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">#444</span>;
0083   <span style="font-weight:bold">background</span>: <span style="color:#644a9b;font-weight:bold">url</span>(<span style="color:#bf0303">"</span><span style="color:#0057ae">@{images}</span><span style="color:#bf0303">/white-sand.png"</span>);
0084 }
0085 
0086 <span style="color:#0057ae">@themes:</span> <span style="color:#bf0303">"../../src/themes"</span>;
0087 
0088 <span style="color:#ff5500">@import</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">@{themes}</span><span style="color:#bf0303">/tidal-wave.less"</span>;
0089 
0090 <span style="color:#0057ae">@property:</span> <span style="color:#b08000">color</span>;
0091 
0092 <span style="color:#644a9b">.widget</span> {
0093   <span style="color:#0057ae">@{property}</span>: <span style="color:#aa5500">#0ee</span>;
0094   <span style="font-style:italic">background-</span><span style="color:#0057ae">@{property}</span>: <span style="color:#aa5500">#999</span>;
0095 }
0096 
0097 <span style="color:#898887">// Variable names</span>
0098 
0099 <span style="color:#0057ae">@fnord:</span>  <span style="color:#bf0303">"I am fnord."</span>;
0100 <span style="color:#0057ae">@var:</span>    <span style="color:#bf0303">"fnord"</span>;
0101 
0102 <span style="color:#644a9b">.variable-names-example</span> {
0103   <span style="font-weight:bold">content</span>: <span style="color:#0057ae">@@var</span>;
0104 }
0105 
0106 <span style="color:#898887">// Lazy Evaluation</span>
0107 
0108 <span style="color:#644a9b">.lazy-eval</span> {
0109   <span style="font-weight:bold">width</span>: <span style="color:#0057ae">@var</span>;
0110 }
0111 
0112 <span style="color:#0057ae">@var:</span> <span style="color:#0057ae">@a</span>;
0113 <span style="color:#0057ae">@a:</span> <span style="color:#b08000">9</span><span style="color:#0057ae">%</span>;
0114 
0115 <span style="color:#0057ae">@var:</span> <span style="color:#b08000">0</span>;
0116 <span style="color:#644a9b">.class</span> {
0117   <span style="color:#0057ae">@var:</span> <span style="color:#b08000">1</span>;
0118   <span style="color:#644a9b">.brass</span> {
0119     <span style="color:#0057ae">@var:</span> <span style="color:#b08000">2</span>;
0120     <span style="font-style:italic">three</span>: <span style="color:#0057ae">@var</span>;
0121     <span style="color:#0057ae">@var:</span> <span style="color:#b08000">3</span>;
0122   }
0123   <span style="font-style:italic">one</span>: <span style="color:#0057ae">@var</span>;
0124 }
0125 
0126 <span style="color:#898887">// Default Variables</span>
0127 
0128 <span style="color:#0057ae">@base-color:</span> <span style="color:#aa5500">green</span>;
0129 <span style="color:#0057ae">@dark-color:</span> <span style="color:#644a9b;font-weight:bold">darken</span>(<span style="color:#0057ae">@base-color</span>, <span style="color:#b08000">10</span><span style="color:#0057ae">%</span>);
0130 
0131 <span style="color:#ff5500">@import</span> <span style="color:#bf0303">"library.less"</span>;
0132 <span style="color:#0057ae">@base-color:</span> <span style="color:#aa5500">red</span>;
0133 
0134 <span style="color:#898887">// Extend</span>
0135 
0136 nav ul {
0137   &amp;<span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.inline</span>);
0138   <span style="font-weight:bold">background</span>: <span style="color:#aa5500">blue</span>;
0139 }
0140 <span style="color:#644a9b">.inline</span> {
0141   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0142 }
0143 
0144 <span style="color:#898887">// Extend Syntax</span>
0145 
0146 <span style="color:#644a9b">.e</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.f</span>) {}
0147 <span style="color:#644a9b">.e</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.g</span>) {}
0148 
0149 <span style="color:#644a9b">.e</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.f</span>, <span style="color:#644a9b">.g</span>) {}
0150 
0151 <span style="color:#898887">// Extend Attached to Selector</span>
0152 
0153 <span style="color:#644a9b">.big-division</span>,
0154 <span style="color:#644a9b">.big-bag</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.bag</span>),
0155 <span style="color:#644a9b">.big-bucket</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.bucket</span>) {
0156 }
0157 
0158 <span style="color:#898887">// Extend Inside Ruleset</span>
0159 
0160 pre<span style="color:#b08000">:hover</span>,
0161 <span style="color:#644a9b">.some-class</span> {
0162   &amp;<span style="color:#b08000">:extend</span>(div pre);
0163 }
0164 
0165 pre<span style="color:#b08000">:hover:extend</span>(div pre),
0166 <span style="color:#644a9b">.some-class</span><span style="color:#b08000">:extend</span>(div pre) {}
0167 
0168 <span style="color:#898887">// Extending Nested Selectors</span>
0169 
0170 <span style="color:#644a9b">.bucket</span> {
0171   tr {
0172     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0173   }
0174 }
0175 <span style="color:#644a9b">.some-class</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.bucket</span> tr) {}
0176 
0177 <span style="color:#898887">// Exact Matching with Extend</span>
0178 
0179 *<span style="color:#644a9b">.class</span> {
0180   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0181 }
0182 <span style="color:#644a9b">.noStar</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.class</span>) {}
0183 
0184 link<span style="color:#b08000">:hover:visited</span> {
0185   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0186 }
0187 <span style="color:#644a9b">.selector</span><span style="color:#b08000">:extend</span>(link<span style="color:#b08000">:visited:hover</span>) {}
0188 
0189 <span style="color:#898887">// nth Expression</span>
0190 
0191 <span style="color:#b08000">:nth-child</span>(<span style="color:#b08000">1</span>n<span style="color:#b08000">+3</span>) {
0192   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0193 }
0194 <span style="color:#644a9b">.child</span><span style="color:#b08000">:extend</span>(<span style="color:#b08000">:nth-child</span>(n+3)) {}
0195 
0196 <span style="color:#0095ff;font-weight:bold">[title=identifier]</span> {
0197   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0198 }
0199 <span style="color:#0095ff;font-weight:bold">[title=</span><span style="color:#bf0303">'identifier'</span><span style="color:#0095ff;font-weight:bold">]</span> {
0200   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0201 }
0202 <span style="color:#0095ff;font-weight:bold">[title=</span><span style="color:#bf0303">"identifier"</span><span style="color:#0095ff;font-weight:bold">]</span> {
0203   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0204 }
0205 
0206 <span style="color:#644a9b">.noQuote</span><span style="color:#b08000">:extend</span>(<span style="color:#0095ff;font-weight:bold">[title=identifier]</span>) {}
0207 <span style="color:#644a9b">.singleQuote</span><span style="color:#b08000">:extend</span>(<span style="color:#0095ff;font-weight:bold">[title=</span><span style="color:#bf0303">'identifier'</span><span style="color:#0095ff;font-weight:bold">]</span>) {}
0208 <span style="color:#644a9b">.doubleQuote</span><span style="color:#b08000">:extend</span>(<span style="color:#0095ff;font-weight:bold">[title=</span><span style="color:#bf0303">"identifier"</span><span style="color:#0095ff;font-weight:bold">]</span>) {}
0209 
0210 <span style="color:#898887">// Extend "all"</span>
0211 
0212 <span style="color:#644a9b">.a.b.test</span>,
0213 <span style="color:#644a9b">.test.c</span> {
0214   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">orange</span>;
0215 }
0216 <span style="color:#644a9b">.test</span> {
0217   &amp;<span style="color:#b08000">:hover</span> {
0218     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">green</span>;
0219   }
0220 }
0221 
0222 <span style="color:#644a9b">.replacement</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.test</span> all) {}
0223 
0224 <span style="color:#898887">// Selector Interpolation with Extend</span>
0225 
0226 <span style="color:#644a9b">.bucket</span> {
0227   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0228 }
0229 <span style="color:#0057ae">@{variable}</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.bucket</span>) {}
0230 <span style="color:#0057ae">@variable:</span> <span style="color:#b08000">.</span>selector;
0231 
0232 <span style="color:#898887">// Scoping / Extend Inside @media</span>
0233 
0234 <span style="color:#ff5500">@media</span> <span style="color:#b08000">print</span> {
0235   <span style="color:#644a9b">.screenClass</span><span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.selector</span>) {}
0236   <span style="color:#644a9b">.selector</span> {
0237     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">black</span>;
0238   }
0239 }
0240 <span style="color:#644a9b">.selector</span> {
0241   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0242 }
0243 <span style="color:#ff5500">@media</span> <span style="color:#b08000">screen</span> {
0244   <span style="color:#644a9b">.selector</span> {
0245     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0246   }
0247 }
0248 
0249 <span style="color:#898887">// Use Cases for Extend</span>
0250 
0251 <span style="color:#644a9b">.animal</span> {
0252   <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">black</span>;
0253   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">white</span>;
0254 }
0255 <span style="color:#644a9b">.bear</span> {
0256   &amp;<span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.animal</span>);
0257   <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">brown</span>;
0258 }
0259 
0260 <span style="color:#644a9b">.my-inline-block</span> {
0261   <span style="font-weight:bold">display</span>: <span style="color:#b08000">inline-block</span>;
0262   <span style="font-weight:bold">font-size</span>: <span style="color:#b08000">0</span>;
0263 }
0264 <span style="color:#644a9b">.thing1</span> {
0265   &amp;<span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.my-inline-block</span>);
0266 }
0267 <span style="color:#644a9b">.thing2</span> {
0268   &amp;<span style="color:#b08000">:extend</span>(<span style="color:#644a9b">.my-inline-block</span>);
0269 }
0270 
0271 <span style="color:#898887">// Mixins</span>
0272 
0273 <span style="color:#644a9b">.a</span>, <span style="color:#006e28;font-weight:bold">#b</span> {
0274   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0275 }
0276 <span style="color:#644a9b">.mixin-class</span> {
0277   <span style="color:#644a9b">.a</span>();
0278 }
0279 <span style="color:#644a9b">.mixin-id</span> {
0280   <span style="color:#006e28;font-weight:bold">#b</span>();
0281 }
0282 
0283 <span style="color:#898887">// Not Outputting the Mixin</span>
0284 
0285 <span style="color:#644a9b">.my-mixin</span> {
0286   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">black</span>;
0287 }
0288 <span style="color:#644a9b">.my-other-mixin</span>() {
0289   <span style="font-weight:bold">background</span>: <span style="color:#aa5500">white</span>;
0290 }
0291 <span style="color:#644a9b">.class</span> {
0292   <span style="color:#644a9b">.my-mixin</span>;
0293   <span style="color:#644a9b">.my-other-mixin</span>;
0294 }
0295 
0296 <span style="color:#898887">// Selectors in Mixins</span>
0297 
0298 <span style="color:#644a9b">.my-hover-mixin</span>() {
0299   &amp;<span style="color:#b08000">:hover</span> {
0300     <span style="font-weight:bold">border</span>: <span style="color:#b08000">1</span><span style="color:#0057ae">px</span> <span style="color:#b08000">solid</span> <span style="color:#aa5500">red</span>;
0301   }
0302 }
0303 button {
0304   <span style="color:#644a9b">.my-hover-mixin</span>();
0305 }
0306 
0307 <span style="color:#898887">// Namespaces</span>
0308 
0309 <span style="color:#006e28;font-weight:bold">#outer</span> {
0310   <span style="color:#644a9b">.inner</span> {
0311     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0312   }
0313 }
0314 
0315 <span style="color:#644a9b">.c</span> {
0316   <span style="color:#006e28;font-weight:bold">#outer</span> > <span style="color:#644a9b">.inner</span>;
0317 }
0318 
0319 <span style="color:#644a9b">.d</span> {
0320   <span style="color:#006e28;font-weight:bold">#outer</span> > <span style="color:#644a9b">.inner</span>;
0321   <span style="color:#006e28;font-weight:bold">#outer</span> > <span style="color:#644a9b">.inner</span>();
0322   <span style="color:#006e28;font-weight:bold">#outer</span> <span style="color:#644a9b">.inner</span>;
0323   <span style="color:#006e28;font-weight:bold">#outer</span> <span style="color:#644a9b">.inner</span>();
0324   <span style="color:#006e28;font-weight:bold">#outer</span><span style="color:#644a9b">.inner</span>;
0325   <span style="color:#006e28;font-weight:bold">#outer</span><span style="color:#644a9b">.inner</span>();
0326 }
0327 
0328 <span style="color:#898887">// Guarded Namespaces</span>
0329 
0330 <span style="color:#006e28;font-weight:bold">#namespace</span> <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@mode</span>=huge) {
0331   <span style="color:#644a9b">.mixin</span>() { <span style="color:#898887">/* */</span> }
0332 }
0333 
0334 <span style="color:#006e28;font-weight:bold">#namespace</span> {
0335   <span style="color:#644a9b">.mixin</span>() <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@mode</span>=huge) { <span style="color:#898887">/* */</span> }
0336 }
0337 
0338 <span style="color:#006e28;font-weight:bold">#sp_1</span> <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">default</span>()) {
0339   <span style="color:#006e28;font-weight:bold">#sp_2</span> <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">default</span>()) {
0340     <span style="color:#644a9b">.mixin</span>() <span style="font-weight:bold">when not</span>(<span style="color:#644a9b;font-weight:bold">default</span>()) { <span style="color:#898887">/* */</span> }
0341   }
0342 }
0343 
0344 <span style="color:#898887">// The !important keyword</span>
0345 
0346 <span style="color:#644a9b">.foo</span> (<span style="color:#0057ae">@bg</span>: <span style="color:#aa5500">#f5f5f5</span>, <span style="color:#0057ae">@color</span>: <span style="color:#aa5500">#900</span>) {
0347   <span style="font-weight:bold">background</span>: <span style="color:#0057ae">@bg</span>;
0348   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@color</span> <span style="color:#0057ae">!important</span>;
0349 }
0350 <span style="color:#644a9b">.unimportant</span> {
0351   <span style="color:#644a9b">.foo</span>();
0352 }
0353 <span style="color:#644a9b">.important</span> {
0354   <span style="color:#644a9b">.foo</span>() <span style="color:#0057ae">!important</span>;
0355 }
0356 
0357 <span style="color:#898887">// Parametric Mixins</span>
0358 
0359 <span style="color:#644a9b">.border-radius</span>(<span style="color:#0057ae">@radius</span>) {
0360   <span style="font-weight:bold;font-style:italic">-webkit-border-radius</span>: <span style="color:#0057ae">@radius</span>;
0361      <span style="font-weight:bold;font-style:italic">-moz-border-radius</span>: <span style="color:#0057ae">@radius</span>;
0362           <span style="font-weight:bold">border-radius</span>: <span style="color:#0057ae">@radius</span>;
0363 }
0364 
0365 <span style="color:#006e28;font-weight:bold">#header</span> {
0366   <span style="color:#644a9b">.border-radius</span>(<span style="color:#b08000">4</span><span style="color:#0057ae">px</span>);
0367 }
0368 <span style="color:#644a9b">.button</span> {
0369   <span style="color:#644a9b">.border-radius</span>(<span style="color:#b08000">6</span><span style="color:#0057ae">px</span>);
0370 }
0371 
0372 <span style="color:#644a9b">.border-radius</span>(<span style="color:#0057ae">@radius</span>: <span style="color:#b08000">5</span><span style="color:#0057ae">px</span>) {
0373   <span style="font-weight:bold;font-style:italic">-webkit-border-radius</span>: <span style="color:#0057ae">@radius</span>;
0374      <span style="font-weight:bold;font-style:italic">-moz-border-radius</span>: <span style="color:#0057ae">@radius</span>;
0375           <span style="font-weight:bold">border-radius</span>: <span style="color:#0057ae">@radius</span>;
0376 }
0377 
0378 <span style="color:#644a9b">.wrap</span>() {
0379   <span style="font-style:italic">text-wrap</span>: <span style="color:#b08000">wrap</span>;
0380   <span style="font-weight:bold">white-space</span>: -moz-pre-wrap;
0381   <span style="font-weight:bold">white-space</span>: <span style="color:#b08000">pre-wrap</span>;
0382   <span style="font-style:italic">word-wrap</span>: <span style="color:#b08000">break-word</span>;
0383 }
0384 
0385 pre { <span style="color:#644a9b">.wrap</span> }
0386 
0387 <span style="color:#898887">// Mixins with Multiple Parameters</span>
0388 
0389 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@color</span>) {
0390   color-1<span style="color:#b08000">:</span> <span style="color:#ff5500">@color</span>;
0391 }
0392 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@color</span>; <span style="color:#0057ae">@padding</span>: <span style="color:#b08000">2</span>) {
0393   color-2<span style="color:#b08000">:</span> <span style="color:#ff5500">@color</span>;
0394   padding-2<span style="color:#b08000">:</span> <span style="color:#ff5500">@padding</span>;
0395 }
0396 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@color</span>; <span style="color:#0057ae">@padding</span>; <span style="color:#0057ae">@margin</span>: <span style="color:#b08000">2</span>) {
0397   color-3<span style="color:#b08000">:</span> <span style="color:#ff5500">@color</span>;
0398   padding-3<span style="color:#b08000">:</span> <span style="color:#ff5500">@padding</span>;
0399   <span style="font-weight:bold">margin</span>: <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span> <span style="color:#0057ae">@margin</span>;
0400 }
0401 <span style="color:#644a9b">.some</span> <span style="color:#644a9b">.selector</span> div {
0402   <span style="color:#644a9b">.mixin</span>(<span style="color:#aa5500">#008000</span>);
0403 }
0404 
0405 <span style="color:#898887">// Named parameters</span>
0406 
0407 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@color</span>: <span style="color:#aa5500">black</span>; <span style="color:#0057ae">@margin</span>: <span style="color:#b08000">10</span><span style="color:#0057ae">px</span>; <span style="color:#0057ae">@padding</span>: <span style="color:#b08000">20</span><span style="color:#0057ae">px</span>) {
0408   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@color</span>;
0409   <span style="font-weight:bold">margin</span>: <span style="color:#0057ae">@margin</span>;
0410   <span style="font-weight:bold">padding</span>: <span style="color:#0057ae">@padding</span>;
0411 }
0412 <span style="color:#644a9b">.class1</span> {
0413   <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@margin</span>: <span style="color:#b08000">20</span><span style="color:#0057ae">px</span>; <span style="color:#0057ae">@color</span>: <span style="color:#aa5500">#33acfe</span>);
0414 }
0415 <span style="color:#644a9b">.class2</span> {
0416   <span style="color:#644a9b">.mixin</span>(<span style="color:#aa5500">#efca44</span>; <span style="color:#0057ae">@padding</span>: <span style="color:#b08000">40</span><span style="color:#0057ae">px</span>);
0417 }
0418 
0419 <span style="color:#898887">// The @arguments Variable</span>
0420 
0421 <span style="color:#644a9b">.box-shadow</span>(<span style="color:#0057ae">@x</span>: <span style="color:#b08000">0</span>; <span style="color:#0057ae">@y</span>: <span style="color:#b08000">0</span>; <span style="color:#0057ae">@blur</span>: <span style="color:#b08000">1</span><span style="color:#0057ae">px</span>; <span style="color:#0057ae">@color</span>: <span style="color:#aa5500">#000</span>) {
0422   <span style="font-weight:bold;font-style:italic">-webkit-box-shadow</span>: <span style="color:#0057ae">@arguments</span>;
0423      <span style="font-weight:bold;font-style:italic">-moz-box-shadow</span>: <span style="color:#0057ae">@arguments</span>;
0424           <span style="font-weight:bold">box-shadow</span>: <span style="color:#0057ae">@arguments</span>;
0425 }
0426 <span style="color:#644a9b">.big-block</span> {
0427   <span style="color:#644a9b">.box-shadow</span>(<span style="color:#b08000">2</span><span style="color:#0057ae">px</span>; <span style="color:#b08000">5</span><span style="color:#0057ae">px</span>);
0428 }
0429 
0430 <span style="color:#898887">// Advanced Arguments and the @rest Variable</span>
0431 
0432 <span style="color:#644a9b">.mixin</span>(<span style="color:#b08000">...</span>) {}        <span style="color:#898887">// matches 0-N arguments</span>
0433 <span style="color:#644a9b">.mixin</span>() {}           <span style="color:#898887">// matches exactly 0 arguments</span>
0434 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@a</span>: <span style="color:#b08000">1</span>) {}      <span style="color:#898887">// matches 0-1 arguments</span>
0435 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@a</span>: <span style="color:#b08000">1</span>; <span style="color:#b08000">...</span>) {} <span style="color:#898887">// matches 0-N arguments</span>
0436 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@a</span>; <span style="color:#b08000">...</span>) {}    <span style="color:#898887">// matches 1-N arguments</span>
0437 
0438 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@a</span>; <span style="color:#0057ae">@rest</span><span style="color:#b08000">...</span>) {
0439    <span style="color:#898887">// @rest is bound to arguments after @a</span>
0440    <span style="color:#898887">// @arguments is bound to all arguments</span>
0441 }
0442 
0443 <span style="color:#898887">// Pattern-matching</span>
0444 
0445 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@s</span>; <span style="color:#0057ae">@color</span>) { <span style="color:#644a9b">...</span> }
0446 
0447 <span style="color:#644a9b">.class</span> {
0448   <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@switch</span>; <span style="color:#aa5500">#888</span>);
0449 }
0450 
0451 <span style="color:#644a9b">.mixin</span>(<span style="color:#b08000">dark</span>; <span style="color:#0057ae">@color</span>) {
0452   <span style="font-weight:bold">color</span>: <span style="color:#644a9b;font-weight:bold">darken</span>(<span style="color:#0057ae">@color</span>, <span style="color:#b08000">10</span><span style="color:#0057ae">%</span>);
0453 }
0454 <span style="color:#644a9b">.mixin</span>(<span style="color:#b08000">light</span>; <span style="color:#0057ae">@color</span>) {
0455   <span style="font-weight:bold">color</span>: <span style="color:#644a9b;font-weight:bold">lighten</span>(<span style="color:#0057ae">@color</span>, <span style="color:#b08000">10</span><span style="color:#0057ae">%</span>);
0456 }
0457 <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@_</span>; <span style="color:#0057ae">@color</span>) {
0458   <span style="font-weight:bold">display</span>: <span style="color:#b08000">block</span>;
0459 }
0460 
0461 <span style="color:#0057ae">@switch:</span> <span style="color:#b08000">light</span>;
0462 
0463 <span style="color:#644a9b">.class</span> {
0464   <span style="color:#644a9b">.mixin</span>(<span style="color:#0057ae">@switch</span>; <span style="color:#aa5500">#888</span>);
0465 }
0466 
0467 <span style="color:#898887">// Mixins as Functions</span>
0468 
0469 <span style="color:#644a9b">.average</span>(<span style="color:#0057ae">@x</span>, <span style="color:#0057ae">@y</span>) {
0470   <span style="color:#0057ae">@average:</span> ((<span style="color:#0057ae">@x</span> + <span style="color:#0057ae">@y</span>) / <span style="color:#b08000">2</span>);
0471 }
0472 
0473 div {
0474   <span style="color:#644a9b">.average</span>(<span style="color:#b08000">16</span><span style="color:#0057ae">px</span>, <span style="color:#b08000">50</span><span style="color:#0057ae">px</span>); <span style="color:#898887">// "call" the mixin</span>
0475   <span style="font-weight:bold">padding</span>: <span style="color:#0057ae">@average</span>;    <span style="color:#898887">// use its "return" value</span>
0476 }
0477 
0478 <span style="color:#898887">// Passing Rulesets to Mixins</span>
0479 
0480 <span style="color:#898887">// declare detached ruleset</span>
0481 <span style="color:#0057ae">@detached-ruleset:</span> { <span style="font-weight:bold">background</span>: <span style="color:#aa5500">red</span>; };
0482 
0483 <span style="color:#898887">// use detached ruleset</span>
0484 <span style="color:#644a9b">.top</span> {
0485     <span style="color:#ff5500">@detached-ruleset</span>();
0486 }
0487 
0488 <span style="color:#644a9b">.desktop-and-old-ie</span>(<span style="color:#0057ae">@rules</span>) {
0489   <span style="color:#ff5500">@media</span> <span style="color:#b08000">screen</span> <span style="font-weight:bold">and</span> (<span style="font-weight:bold">min-width</span>: <span style="color:#b08000">1200</span><span style="color:#0057ae">px</span>) { <span style="color:#ff5500">@rules</span>(); }
0490   html<span style="color:#644a9b">.lt-ie9</span> &amp;                         { <span style="color:#ff5500">@rules</span>(); }
0491 }
0492 
0493 header {
0494   <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">blue</span>;
0495 
0496   <span style="color:#644a9b">.desktop-and-old-ie</span>({
0497     background-color: <span style="color:#aa5500">red</span>;
0498   });
0499 }
0500 
0501 <span style="color:#0057ae">@my-ruleset:</span> {
0502   <span style="color:#644a9b">.my-selector</span> {
0503     <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">black</span>;
0504   }
0505 };
0506 
0507 <span style="color:#0057ae">@my-ruleset:</span> {
0508     <span style="color:#644a9b">.my-selector</span> {
0509       <span style="color:#ff5500">@media</span> tv {
0510         <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">black</span>;
0511       }
0512     }
0513   };
0514 <span style="color:#ff5500">@media</span> (<span style="font-weight:bold">orientation</span>:<span style="color:#b08000">portrait</span>) {
0515     <span style="color:#ff5500">@my-ruleset</span>();
0516 }
0517 
0518 <span style="color:#898887">// Scoping</span>
0519 
0520 <span style="color:#0057ae">@detached-ruleset:</span> {
0521   <span style="font-style:italic">caller-variable</span>: <span style="color:#0057ae">@caller-variable</span>; <span style="color:#898887">// variable is undefined here</span>
0522   <span style="color:#644a9b">.caller-mixin</span>(); <span style="color:#898887">// mixin is undefined here</span>
0523 };
0524 
0525 selector {
0526   <span style="color:#898887">// use detached ruleset</span>
0527   <span style="color:#ff5500">@detached-ruleset</span>();
0528 
0529   <span style="color:#898887">// define variable and mixin needed inside the detached ruleset</span>
0530   <span style="color:#0057ae">@caller-variable:</span> value;
0531   <span style="color:#644a9b">.caller-mixin</span>() {
0532     <span style="font-style:italic">variable</span>: declaration;
0533   }
0534 }
0535 
0536 <span style="color:#898887">/*</span>
0537 <span style="color:#898887"> * reference: use a Less file but do not output it</span>
0538 <span style="color:#898887">inline: include the source file in the output but do not process it</span>
0539 <span style="color:#898887">less: treat the file as a Less file, no matter what the file extension</span>
0540 <span style="color:#898887">css: treat the file as a CSS file, no matter what the file extension</span>
0541 <span style="color:#898887">once: only include the file once (this is default behavior)</span>
0542 <span style="color:#898887">multiple: include the file multiple times</span>
0543 <span style="color:#898887">optional: continue compiling when file is not found</span>
0544 <span style="color:#898887"> */</span>
0545 
0546 <span style="color:#ff5500">@import</span> (<span style="color:#b08000">optional</span>, reference) <span style="color:#bf0303">"foo.less"</span>;
0547 
0548 <span style="color:#898887">// Mixin Guards</span>
0549 
0550 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">lightness</span>(<span style="color:#0057ae">@a</span>) >= <span style="color:#b08000">50</span><span style="color:#0057ae">%</span>) {
0551   <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">black</span>;
0552 }
0553 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">lightness</span>(<span style="color:#0057ae">@a</span>) &lt; <span style="color:#b08000">50</span><span style="color:#0057ae">%</span>) {
0554   <span style="font-weight:bold">background-color</span>: <span style="color:#aa5500">white</span>;
0555 }
0556 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) {
0557   <span style="font-weight:bold">color</span>: <span style="color:#0057ae">@a</span>;
0558 }
0559 
0560 <span style="color:#898887">// Guard Comparison Operators</span>
0561 
0562 <span style="color:#644a9b">.truth</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@a</span>) { }
0563 <span style="color:#644a9b">.truth</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@a</span> = <span style="color:#b08000">true</span>) { }
0564 
0565 <span style="color:#898887">// </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">FIXME</span><span style="color:#898887">: @media as variable</span>
0566 <span style="color:#0057ae">@media:</span> mobile;
0567 
0568 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@media</span> = mobile) { }
0569 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@media</span> = desktop) { }
0570 
0571 <span style="color:#644a9b">.max</span> (<span style="color:#0057ae">@a</span>; <span style="color:#0057ae">@b</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@a</span> > <span style="color:#0057ae">@b</span>) { <span style="font-weight:bold">width</span>: <span style="color:#0057ae">@a</span> }
0572 <span style="color:#644a9b">.max</span> (<span style="color:#0057ae">@a</span>; <span style="color:#0057ae">@b</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@a</span> &lt; <span style="color:#0057ae">@b</span>) { <span style="font-weight:bold">width</span>: <span style="color:#0057ae">@b</span> }
0573 
0574 <span style="color:#898887">// Guard Logical Operators</span>
0575 
0576 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">isnumber</span>(<span style="color:#0057ae">@a</span>)) and (<span style="color:#0057ae">@a</span> > <span style="color:#b08000">0</span>) {  }
0577 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@a</span> > <span style="color:#b08000">10</span>), (<span style="color:#0057ae">@a</span> &lt; <span style="color:#b08000">-10</span>) {  }
0578 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@b</span>) <span style="font-weight:bold">when not</span> (<span style="color:#0057ae">@b</span> > <span style="color:#b08000">0</span>) { }
0579 
0580 <span style="color:#898887">// Type Checking Functions</span>
0581 
0582 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>; <span style="color:#0057ae">@b</span>: <span style="color:#b08000">0</span>) <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">isnumber</span>(<span style="color:#0057ae">@b</span>)) { }
0583 <span style="color:#644a9b">.mixin</span> (<span style="color:#0057ae">@a</span>; <span style="color:#0057ae">@b</span>: <span style="color:#aa5500">black</span>) <span style="font-weight:bold">when </span>(<span style="color:#644a9b;font-weight:bold">iscolor</span>(<span style="color:#0057ae">@b</span>)) {}
0584 
0585 button <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@my-option</span> = <span style="color:#b08000">true</span>) {
0586   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">white</span>;
0587 
0588   &amp; <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@my-option</span> = <span style="color:#b08000">true</span>) {
0589   button {
0590     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">white</span>;
0591   }
0592   a {
0593     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0594   }
0595 }
0596 }
0597 
0598 <span style="color:#898887">// Loops</span>
0599 
0600 <span style="color:#644a9b">.loop</span>(<span style="color:#0057ae">@counter</span>) <span style="font-weight:bold">when </span>(<span style="color:#0057ae">@counter</span> > <span style="color:#b08000">0</span>) {
0601   <span style="color:#644a9b">.loop</span>((<span style="color:#0057ae">@counter</span> - <span style="color:#b08000">1</span>));    <span style="color:#898887">// next iteration</span>
0602   <span style="font-weight:bold">width</span>: (<span style="color:#b08000">10</span><span style="color:#0057ae">px</span> * <span style="color:#0057ae">@counter</span>); <span style="color:#898887">// code for each iteration</span>
0603 }
0604 
0605 div {
0606   <span style="color:#644a9b">.loop</span>(<span style="color:#b08000">5</span>); <span style="color:#898887">// launch the loop</span>
0607 }
0608 
0609 <span style="color:#898887">// Merge</span>
0610 
0611 <span style="color:#644a9b">.mixin</span>() {
0612   <span style="font-weight:bold">box-shadow</span>+: <span style="color:#b08000">inset</span> <span style="color:#b08000">0</span> <span style="color:#b08000">0</span> <span style="color:#b08000">10</span><span style="color:#0057ae">px</span> <span style="color:#aa5500">#555</span>;
0613 }
0614 <span style="color:#644a9b">.myclass</span> {
0615   <span style="color:#644a9b">.mixin</span>();
0616   <span style="font-weight:bold">box-shadow</span>+: <span style="color:#b08000">0</span> <span style="color:#b08000">0</span> <span style="color:#b08000">20</span><span style="color:#0057ae">px</span> <span style="color:#aa5500">black</span>;
0617 }
0618 
0619 <span style="color:#898887">// Space</span>
0620 
0621 <span style="color:#644a9b">.mixin</span>() {
0622   <span style="font-weight:bold">transform</span>+_: <span style="color:#644a9b;font-weight:bold">scale</span>(<span style="color:#b08000">2</span>);
0623 }
0624 <span style="color:#644a9b">.myclass</span> {
0625   <span style="color:#644a9b">.mixin</span>();
0626   <span style="font-weight:bold">transform</span>+_: <span style="color:#644a9b;font-weight:bold">rotate</span>(<span style="color:#b08000">15</span><span style="color:#0057ae">deg</span>);
0627 }
0628 
0629 <span style="color:#898887">// Parent Selectors</span>
0630 
0631 a {
0632   <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0633   &amp;<span style="color:#b08000">:hover</span> {
0634     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">green</span>;
0635   }
0636 }
0637 
0638 <span style="color:#644a9b">.button</span> {
0639   &amp;-ok {
0640     <span style="font-weight:bold">background-image</span>: <span style="color:#644a9b;font-weight:bold">url</span>(<span style="color:#bf0303">"ok.png"</span>);
0641   }
0642   &amp;-cancel {
0643     <span style="font-weight:bold">background-image</span>: <span style="color:#644a9b;font-weight:bold">url</span>(<span style="color:#bf0303">"cancel.png"</span>);
0644   }
0645 
0646   &amp;-custom {
0647     <span style="font-weight:bold">background-image</span>: <span style="color:#644a9b;font-weight:bold">url</span>(<span style="color:#bf0303">"custom.png"</span>);
0648   }
0649 }
0650 
0651 <span style="color:#644a9b">.link</span> {
0652   &amp; + &amp; {
0653     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0654   }
0655 
0656   &amp; &amp; {
0657     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">green</span>;
0658   }
0659 
0660   &amp;&amp; {
0661     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0662   }
0663 
0664   &amp;, &amp;ish {
0665     <span style="font-weight:bold">color</span>: <span style="color:#aa5500">cyan</span>;
0666   }
0667 }
0668 
0669 <span style="color:#644a9b">.grand</span> {
0670   <span style="color:#644a9b">.parent</span> {
0671     &amp; > &amp; {
0672       <span style="font-weight:bold">color</span>: <span style="color:#aa5500">red</span>;
0673     }
0674 
0675     &amp; &amp; {
0676       <span style="font-weight:bold">color</span>: <span style="color:#aa5500">green</span>;
0677     }
0678 
0679     &amp;&amp; {
0680       <span style="font-weight:bold">color</span>: <span style="color:#aa5500">blue</span>;
0681     }
0682 
0683     &amp;, &amp;ish {
0684       <span style="font-weight:bold">color</span>: <span style="color:#aa5500">cyan</span>;
0685     }
0686   }
0687 }
0688 
0689 <span style="color:#898887">// Changing Selector Order</span>
0690 
0691 <span style="color:#644a9b">.header</span> {
0692   <span style="color:#644a9b">.menu</span> {
0693     <span style="font-weight:bold">border-radius</span>: <span style="color:#b08000">5</span><span style="color:#0057ae">px</span>;
0694     <span style="color:#644a9b">.no-borderradius</span> &amp; {
0695       <span style="font-weight:bold">background-image</span>: <span style="color:#644a9b;font-weight:bold">url</span>(<span style="color:#bf0303">'images/button-background.png'</span>);
0696     }
0697   }
0698 }
0699 
0700 <span style="color:#898887">// Combinatorial Explosion</span>
0701 
0702 p, a, ul, li {
0703   <span style="font-weight:bold">border-top</span>: <span style="color:#b08000">2</span><span style="color:#0057ae">px</span> <span style="color:#b08000">dotted</span> <span style="color:#aa5500">#366</span>;
0704   &amp; + &amp; {
0705     <span style="font-weight:bold">border-top</span>: <span style="color:#b08000">0</span>;
0706   }
0707 }
0708 </pre></body></html>