LESS je dynamicky před-procesovací stylový jazyk, který může být kompilován do CSS (Cascading Style Sheets). Může být spouštěn na straně klienta nebo serveru. Navrhl ho Alexis Sellier a byl ovlivněn SASSem a zároveň ovlivnil novou SCSS syntax SASSu, která využívá blokovou syntax podobnou CSS.
LESS je open-sourcový a byl původně naprogramován v Ruby, v pozdějších verzích bylo ale použití Ruby nahrazeno JavaScriptem. Less je vnořený metajazyk, protože validní CSS soubor je zároveň validním LESS kódem se stejnou sémantikou. LESS v sobě zahrnuje následující prvky: proměnné, vnoření, mixiny, operátory a funkce. Hlavním rozdílem mezi LESS a ostatními před-procesory CSS je to, že LESS umožňuje kompilaci v reálném čase za využití less.js přímo v prohlížeči.
Porovnání se SASS
SASS i LESS jsou před-procesory CSS, které umožňují psaní čistého CSS v programovacím konstruktu na místo statických pravidel.
LESS se SASSem inspiroval. SASS byl původně navržen tak, aby zjednodušil a zároveň rozšířil CSS, proto odstranil ze zápisu složené závorky. LESS byl na druhou stranu navržen tak, aby byl co nejpodobnější CSS, což vedlo k tomu, že CSS může být použito jako validní LESS kód.
Tím se následně inspiroval i SASS, do kterého byla zavedena druhá alternativa syntaxi označená SCSS neboli Sassy CSS.
Použití na stránkách
LESS může být na stránkách použit různými způsoby. Jednou z možností je vložil less.js soubor v JavaScriptu, který kód konvertuje v reálném čase a prohlížeč pak vrací výstupy v CSS. Další alternativou je převést LESS kód do čistého CSS a následně na stránku nahrát toto čisté CSS. Při této možnosti nejsou nahrány přímo na stránku žádné .less soubory a není potřeba JavaScriptový konvertor less.js.
Výhody použití LESS
LESS je CSS před-procesor. Po kompilaci dokáže vygenerovat čisté CSS, které funguje napříč všemi prohlížeči.
LESS podporuje kompatibilitu napříč prohlížeči.
LESS kód je jednoduchý, čistý a dobře zorganizovaný díky vnořování.
Udržování LESS kódu je rychlejší, protože umožňuje využití proměnných.
LESS nabízí seznam operátorů, což zrychluje psaní kódu a šetří tak čas při vývoji.
LESS zjednodušuje znovupoužití celých tříd tím, že na ně může jednoduše odkázat v sadě pravidel.
LESS je novější a oproti konvenčnímu CSS preferovaný jazyk, protože redukuje časově náročné psaní stylů.
Mixiny napomáhají vyřešit znovupoužitelnost kódu a přenesou vlastnosti jedné třídy na jinou třídu jednoduchým zahrnutím jména této třídy do svých vlastností.
LESS má mnoho matematických operací a operačních funkcí, jako je například ztmavit nebo zesvětlit.
Je možné do LESS souboru importovat další LESS soubory, což umožňuje znovupoužití proměnných z těchto souborů.
LESS obsahuje předdefinované funkce, ale zároveň umožňuje programátorovi nebo designerovi aby si definoval vlastní funkce, které pak může používat napříč kódem.
LESS se kompiluje rychleji nežli ostatní CSS před-procesory.
LESS podporuje funkcionalitu líného načítání, což znamená, že soubor může definovat proměnné kdekoliv, před i za prvním použitím této proměnné.
Nevýhody použití LESS
Je potřeba strávit nějaký čas jeho učením.
LESS má k dispozici méně frameworků nežli jeho starší předchůdci, jako je například SASS, který obsahuje frameworky jako je Compass, Gravity nebo Susy.
V LESS jsou moduly úzce provázány, proto je náročnější znovu použít moduly nebo otestovat závislé moduly.
Hledání chyb je náročné, protože vzhledem k tomu, že je potřeba projít kompilací, čísla CSS řádků, kde se nachází chyba, nejsou směrodatné.
Kompilace vývoj zpomaluje. Čekání na kompilaci je oproti čistému CSS krok navíc, který také zabírá čas.
Výkon. Zdrojový soubor může být malý, ale vygenerované CSS může být rozsáhlé.