Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SASS GIVE SUPERPOWERS TO YOUR CSS!

FEVR
November 20, 2014

SASS GIVE SUPERPOWERS TO YOUR CSS!

Quante volte abbiamo pensato "se potessi aggiungere una variabile che gestisce il colore del testo..." oppure "devo proprio riscrivere tutto questo codice ogni volta"
CSS non è un linguaggio di programmazione e questo lo sappiamo, ma i preprocessori ci vengono in aiuto!

FEVR

November 20, 2014
Tweet

More Decks by FEVR

Other Decks in Technology

Transcript

  1. SOMETHING ABOUT ME Federico Bonomi, 25yrs old, Verona work for

    Intesys since 2008 Yesterday: Web developer / frontender Today: Ruby on Rails Developer
  2. SOMETHING ABOUT DEVS siamo TUTTI UN Pò frontenderS MA PRIMA

    ANCORA SIAMO TUTTI (O QUASI) PROGRAMMATORI
  3. SOMETHING ABOUT DEVS ogni linguaggio DI PROGRAMMAZIONE consente di definire

    Variabili e funzioni creare dei moduli eseguire delle espressioni matematiche
  4. SOMETHING ABOUT css non esistono variabili non esistono funzioni esistono

    moduli esiste OOCSS, SMACSS, DRY CSS, … MA...
  5. SOMETHING ABOUT css Ma non vogliamo inventare nulla di nuovo

    Vogliamo usare qualcosa che ci aiuti a produrre CSS ma con i vantaggi che abbiamo in un linguaggio di programmazione!
  6. SOMETHING ABOUT sass Sass is the most mature, stable, and

    powerful professional grade CSS extension language in the world
  7. SOMETHING ABOUT sass SASS è un pre-processore. La sua sintassi

    è molto simile al CSS. Il codice SASS, una volta compilato, produce codice CSS
  8. SOMETHING ABOUT sass 1) Variables 2) Nesting 3) Partials 4)

    Import 5) Mixins 6) Extends / Inheritance 7) Operators
  9. SOMETHING ABOUT sass and scss Prima di iniziare è importante

    sapere che in SASS le parentesi graffe e i punti e vigola spariscono Inoltre l’indentazione è fondamentale per la compilazione
  10. nesting Quando scriviamo codice html scriviamo del codice nidificato In

    CSS questo non è possibile Quando vogliamo applicare stili a elementi nidificati scriviamo catene di selettori molto lunghe
  11. partials I partial (parziali) sono a tutti gli effetti file

    contenenti porzioni di codice SASS Questo ci permette di organizzare al meglio il nostro codice SASS e cercare di modularizzare più possibile
  12. IMPORT In CSS l’import corrisponde ad una chiamata http. In

    sass import serve per includere un file sass, che potrebbe essere un partial, senza generare una chiamata http.
  13. mixins Alcune cose da scrivere in css sono noiose, soprattutto

    in css3 ad esempio le direttive per ogni browser Un mixin è a tutti gli effetti una funzione.
  14. Extends / Inheritance Questa è una delle caratteristiche più usate.

    Aiuta a tenere il nostro codice CSS ancora più compatto.
  15. operators Sass ha una serie di operatori come +, -,

    *, %. Nell’esempio successivo andremo a creare una griglia fluida
  16. sass lists Le sass lists corrispondono ad un array semplice.

    Potremmo paragonarla a: PHP: array(1, 2, 3); JS: new Array(1, 2, 3);
  17. sass lists . read nth($list, $index) ritorna l’elemento in posizione

    $index all’interno di $list length($list) ritorna il numero di elementi index($list, $value) ritorna all’interno di $list il primo indice trovato all’interno di $value
  18. sass lists . edit append($list, $value) appende $value alla fine

    di $list join($list-1, $list-2) appende $list-1 a $list-2 reject($list, $value) rimuove $value da $list
  19. sass maps Le sass maps corrispondono ad un array associativo

    Sass maps è quindi un array chiave valore
  20. sass install Una volta installato ruby procediamo a installare sass

    con un semplice comando Per verificare se effettivamente installato:
  21. sass vs less Framework e librerie più mature (Bourbon, Compass)

    Built-in watchers sintassi più “sintetica”
  22. sass vs stylus single editing style ci sono due sintassi,

    esclusive fra loro non si possono mescolare gli stili
  23. my story il più grande scoglio è l’installazione/configurazione sass è

    un linguaggio molto simile a ciò che già conosciamo l’importante è avere un approccio graduale
  24. my story > Iniziamo con un file unico e a

    evitare parentesi e punti e virgola > proseguiamo iniziando ad usare delle variabili > innestiamo il codice > spostiamo il codice da un file unico a più file organizzati > Scriviamo qualche mixins e riutilizziamolo > Usiamo la potenza dell’ extend > divertiamoci con liste, mappe, controlli condizionali, iteratori, ...
  25. my story . folder structure definire una struttura logica di

    base che può essere rispettata o estesa per ogni progetto indipendentemente dalla finalità di quest’ultimo.