ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
L E S S IS MO R E
Neven Falica

Element d.o.o.
@elkarrde

User-experience
JavaScript, CoffeeScript; KnockoutJS
HTML5, CSS3, LESS
PHP, Scala
?to je L E S S ?
http://lesscss.org
LESS je pro?irenje CSSa
LESS je JavaScript preprocessor
Koje probleme rje ? ava
             LESS?
kori?tenje varijabli unutar CSSa                        @ b ase Co lo r: #066AF8;

operatori    p ad d in g: 2 * @ wid th ;

hijerarhijska organizacija klasa                      h 1 {sm all { ¡­ }}

mixini ¨C lblokovi, funkcije                .re d {co lo r: #F40;}

funkcije   b ackgro u n d : fad e o u t(50% );

importovi, komentari¡­
Va rija ble
Rade kao konstante ¨C jednom definirane, nije ih
 mogu?e mijenjati, mogu biti i stringovi
Va rija ble
CSS:
#h e ad e r { b ackgro u n d : #FE451 0; }
#fo o te r { b o rd e r-to p : 1 p x d o tte d #FE451 0; }


th {
    b o rd e r-b o tto m : 2p x so lid #FE451 0;
    co lo r: #FE451 0;
}
Va rija ble
CSS:
#m ain { b ackgro u n d :
 u rl('../im g/te xtu re s/d ark_n o ise .p n g'); }
#fo o te r { b ackgro u n d :
 u rl('../im g/te xtu re s/ligh t.p n g'); }


.ico n { b ackgro u n d -im age :
   u rl('../im g/ico n s/sp rite -actio n s.p n g'); }
.sh are -ico n { b ackgro u n d -im age :
  u rl('../im g/ico n s/sp rite -sh are .p n g'); }
U gnje ?? ivanje
aka ¡°nesting¡±, ugnje??ivanje CSS selektora
struktura selektora prati strukturu DOM stabla
ve?a preglednost koda
operator & ¨C radi kao th is u drugim programskim
 jezicima
Ugnje??ivanje
CSS:
#h e ad e r { co lo r: #000; }
#h e ad e r h 1 { fo n t-size : 3.5e m ; }
#h e ad e r h 1 sm all { fo n t-size : 1 .5e m ; }
#fo o te r .sh are { p ad d in g: 8p x; }
#fo o te r .sh are .ico n { m argin -le ft: 1 0p x; }


LESS:
#h e ad e r {
Ugnje??ivanje
CSS:                             LESS:
#re p o rt tab le a { co lo r:   #re p o rt tab le {
 #999; }                          a{
#re p o rt tab le a:h o ve r {     co lo r: #999;
    co lo r: #000;                 &:h o ve r {
    b ackgro u n d : #EEE;             co lo r: #000;
}                                      b ackgro u n d : #EEE;
#re p o rt tab le a:active {       }
    p o sitio n : re lative ;      &:active {
Mixini
logi?ki blokovi koda
mogu primati parametre ¨C funkcije
#h e ad e r a {
                                        .b oxe d {
    co lo r: #000;
    b ackgro u n d : #EEE;
                                            b ackgro u n d : #EEE;
    b o rd e r: 1 p x so lid #000;          b o rd e r: 1 p x so lid
    p ad d in g: 0.5e m ;                    #000;
}
                                            p ad d in g: 0.5e m ;
                                        }
Mixini
.b o rd e r-rad iu s(@ rad iu s) {
    b o rd e r-rad iu s: @ rad iu s;
    -m o z-b o rd e r-rad iu s: @ rad iu s;
    -we b kit-b o rd e r-rad iu s: @ rad iu s;
}
.b ox-sh ad o w() {
    b ox-sh ad o w: @ argu m e n ts;
    -m o z-b ox-sh ad o w: @ argu m e n ts;
    -we b kit-b ox-sh ad o w: @ argu m e n ts;
Mixini
.b ack(@ im age , @ re p e at: re p e at, @ p o s: le ft to p ) wh e n (isstrin g(@ im age )) {

    .b ackim age ('@ {im age }', @ re p e at, @ p o s);

}

.b ack(@ co lo r1 , @ co lo r2) wh e n (isco lo r(@ co lo r1 )) an d (isco lo r(@ co lo r2)) {

    #grad ie n t.ve rtical(@ co lo r1 , @ co lo r2);

}

.b ack(@ co lo r) wh e n (isco lo r(@ co lo r)) {

    b ackgro u n d -co lo r: @ co lo r;

}
Funkcije
osnovni operatori ¨C +, -, *, /
funkcije za rad s bojama ¨C ligh te n /d arke n ,
  satu rate /d e satu rate , fad e in /fad e o u t, sp in

HSL funkcije ¨C h u e , satu ratio n , ligh tn e ss , alp h a
matematika ¨C ro u n d , ce il, flo o r, p e rce n tage
Funkcije
@ co lo r: #D 1 0 + #333; // #F43
@ b ase : 5% ;
@ fille r: @ b ase * 2; // 1 0%
@ wid th : 7p x;
b o rd e r: (@ wid th * 2) so lid (#D 1 0 - #333) // 1 4p x
  so lid #A00


@ gray: #AAA;
ligh e n (@ gray, 1 0% ); // #C3C3C3
Ostalo
Kompajleri
SimpLESS ¨C http://wearekiss.com/simpless
WinLess ¨C http://winless.org/
lessphp ¨C http://leafo.net/lessphp/
Node.js
Rhino


Twitter Bootstrap
Ostalo
komentari ¨C // komentar je napokon ispravan
import ¨C @ im p o rt radi kao re q u ire u PHPu
JavaScript
@ var: ` "h e llo ".to U p p e rCase () + '!'` ; // H ELLO !

More Related Content

Do more with LESS!

  • 1. L E S S IS MO R E Neven Falica Element d.o.o. @elkarrde User-experience JavaScript, CoffeeScript; KnockoutJS HTML5, CSS3, LESS PHP, Scala
  • 2. ?to je L E S S ? http://lesscss.org LESS je pro?irenje CSSa LESS je JavaScript preprocessor
  • 3. Koje probleme rje ? ava LESS? kori?tenje varijabli unutar CSSa @ b ase Co lo r: #066AF8; operatori p ad d in g: 2 * @ wid th ; hijerarhijska organizacija klasa h 1 {sm all { ¡­ }} mixini ¨C lblokovi, funkcije .re d {co lo r: #F40;} funkcije b ackgro u n d : fad e o u t(50% ); importovi, komentari¡­
  • 4. Va rija ble Rade kao konstante ¨C jednom definirane, nije ih mogu?e mijenjati, mogu biti i stringovi
  • 5. Va rija ble CSS: #h e ad e r { b ackgro u n d : #FE451 0; } #fo o te r { b o rd e r-to p : 1 p x d o tte d #FE451 0; } th { b o rd e r-b o tto m : 2p x so lid #FE451 0; co lo r: #FE451 0; }
  • 6. Va rija ble CSS: #m ain { b ackgro u n d : u rl('../im g/te xtu re s/d ark_n o ise .p n g'); } #fo o te r { b ackgro u n d : u rl('../im g/te xtu re s/ligh t.p n g'); } .ico n { b ackgro u n d -im age : u rl('../im g/ico n s/sp rite -actio n s.p n g'); } .sh are -ico n { b ackgro u n d -im age : u rl('../im g/ico n s/sp rite -sh are .p n g'); }
  • 7. U gnje ?? ivanje aka ¡°nesting¡±, ugnje??ivanje CSS selektora struktura selektora prati strukturu DOM stabla ve?a preglednost koda operator & ¨C radi kao th is u drugim programskim jezicima
  • 8. Ugnje??ivanje CSS: #h e ad e r { co lo r: #000; } #h e ad e r h 1 { fo n t-size : 3.5e m ; } #h e ad e r h 1 sm all { fo n t-size : 1 .5e m ; } #fo o te r .sh are { p ad d in g: 8p x; } #fo o te r .sh are .ico n { m argin -le ft: 1 0p x; } LESS: #h e ad e r {
  • 9. Ugnje??ivanje CSS: LESS: #re p o rt tab le a { co lo r: #re p o rt tab le { #999; } a{ #re p o rt tab le a:h o ve r { co lo r: #999; co lo r: #000; &:h o ve r { b ackgro u n d : #EEE; co lo r: #000; } b ackgro u n d : #EEE; #re p o rt tab le a:active { } p o sitio n : re lative ; &:active {
  • 10. Mixini logi?ki blokovi koda mogu primati parametre ¨C funkcije #h e ad e r a { .b oxe d { co lo r: #000; b ackgro u n d : #EEE; b ackgro u n d : #EEE; b o rd e r: 1 p x so lid #000; b o rd e r: 1 p x so lid p ad d in g: 0.5e m ; #000; } p ad d in g: 0.5e m ; }
  • 11. Mixini .b o rd e r-rad iu s(@ rad iu s) { b o rd e r-rad iu s: @ rad iu s; -m o z-b o rd e r-rad iu s: @ rad iu s; -we b kit-b o rd e r-rad iu s: @ rad iu s; } .b ox-sh ad o w() { b ox-sh ad o w: @ argu m e n ts; -m o z-b ox-sh ad o w: @ argu m e n ts; -we b kit-b ox-sh ad o w: @ argu m e n ts;
  • 12. Mixini .b ack(@ im age , @ re p e at: re p e at, @ p o s: le ft to p ) wh e n (isstrin g(@ im age )) { .b ackim age ('@ {im age }', @ re p e at, @ p o s); } .b ack(@ co lo r1 , @ co lo r2) wh e n (isco lo r(@ co lo r1 )) an d (isco lo r(@ co lo r2)) { #grad ie n t.ve rtical(@ co lo r1 , @ co lo r2); } .b ack(@ co lo r) wh e n (isco lo r(@ co lo r)) { b ackgro u n d -co lo r: @ co lo r; }
  • 13. Funkcije osnovni operatori ¨C +, -, *, / funkcije za rad s bojama ¨C ligh te n /d arke n , satu rate /d e satu rate , fad e in /fad e o u t, sp in HSL funkcije ¨C h u e , satu ratio n , ligh tn e ss , alp h a matematika ¨C ro u n d , ce il, flo o r, p e rce n tage
  • 14. Funkcije @ co lo r: #D 1 0 + #333; // #F43 @ b ase : 5% ; @ fille r: @ b ase * 2; // 1 0% @ wid th : 7p x; b o rd e r: (@ wid th * 2) so lid (#D 1 0 - #333) // 1 4p x so lid #A00 @ gray: #AAA; ligh e n (@ gray, 1 0% ); // #C3C3C3
  • 15. Ostalo Kompajleri SimpLESS ¨C http://wearekiss.com/simpless WinLess ¨C http://winless.org/ lessphp ¨C http://leafo.net/lessphp/ Node.js Rhino Twitter Bootstrap
  • 16. Ostalo komentari ¨C // komentar je napokon ispravan import ¨C @ im p o rt radi kao re q u ire u PHPu JavaScript @ var: ` "h e llo ".to U p p e rCase () + '!'` ; // H ELLO !