back to top

Convertire un file .scss in CSS

Vediamo, in questa lezione, un primo semplice esempiodi utilizzo del comando node-sass. All’interno di una nuova cartella creiamo due file: index.html e style.scss. Al file HTML assegnamo questo contenuto:

<!-- file index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Esempio - node-sass</title>
</head>
<body>
  <div class="container">
    <p>Ciao</p>
  </div>
</body>
</html>

All’interno del file style.scss inseriamo il codice riportato sotto.

/* file style.scss */
$primary-color: #c69;
$text-color: white;

.container {
  width: 200px;
  height: 150px;
  line-height: 150px;
  text-align: center;
  background-color: $primary-color;
  border-radius: 8px;

  p {
    font-size: 2em;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: $text-color;
  }
}

Per il momento non ci soffermiamo sulla sintassi, che approfondiremo nelle prossime lezioni. È però facile intuire che abbiamo usato due variabili dichiarate all’inizio del file. Per capire qual è invece il significato della regola per il paragrafo, inserita all’interno della regola per gli elementi della classe container, basta lanciare il comando mostato sotto con il quale generiamo il file style.css che abbiamo importato nel file HTML.

Anche per ragioni di prestazioni è opportuno compilare i file con estensione .scss e generare i rispettivi file .css. Saranno infatti questi ultimi a essere inseriti all’interno dei file HTML.

node-sass style.scss > style.css

Il comando node-sass si limita a convertire in CSS il file style.scss e a mostrare il risultato a video. Per questo motivo chiediamo di redirigere lo standard output (>) del comando sul file style.css che conterrà il frammento di codice riportato sotto.

/* file style.css */
.container {
  width: 200px;
  height: 150px;
  line-height: 150px;
  text-align: center;
  background-color: #c69;
  border-radius: 8px; 
}

.container p {
  font-size: 2em;
  font-family: 'Lato', Arial, Helvetica, sans-serif;
  font-weight: bold;
  color: white; 
}

In alternativa possiamo semplicemente specificare il nome del file CSS come secondo argomento.

node-sass style.scss style.css
Rendering Complete, saving .css file...
Wrote CSS to /Users/claudio/esempio_sass/style.css

Le due sintassi disponibili in Sass

Nell’esempio appena visto abbiamo creato un file con estensione .scss che abbiamo poi convertito in normale codice CSS. In realtà, però, Sass mette a disposizione due diversi tipi di sintassi.

SCSS (o Sassy CSS)

La prima è quella appena vista che è simile al linguaggio CSS. Infatti, ogni foglio di stile creato in CSS contiene del codice che possiamo tranquillamente riusare nei file .scss all’interno dei quali abbiamo però a disposizione diverse funzionalità che non sono presenti nel linguaggio CSS. Questo primo tipo di sintassi prende il nome di SCSS (Sassy CSS)

SASS

Esiste poi un altro tipo di sintassi, nota come sintassi indentata, che fornisce un modo più conciso di scrivere i file Sass. Per esempio si usa l’indentazione al posto delle parentesi e, per separare le varie dichiarazioni, il punto e virgola viene sostituito semplicemente dal ritorno a capo. In quest’ultimo caso creeremo dei file con estensione .sass al posto dei file con estensione .scss.

L’esempio visto in precedenza può quindi essere riscritto utilizzando la sintassi appena descritta.

/* file style.sass */
$primary-color: #c69
$text-color: white

.container
  width: 200px
  height: 150px
  line-height: 150px
  text-align: center
  background-color: $primary-color
  border-radius: 8px

  p
    font-size: 2em
    font-family: Arial, Helvetica, sans-serif
    font-weight: bold
    color: $text-color

Al contrario di node-sass (che non permette di trasformare un file .sass in formato SCSS e viceversa), installando Ruby Sass (gem install sass), abbiamo la possibilità di lanciare il comando sass-convert che, come è possibile intuire, consente di convertire Sass in SCSS e viceversa.

# conversione Sass -> SCSS
sass-convert style.sass style.scss

# Conversione SCSS -> Sass
sass-convert style.scss style.sass

Conclusioni

In questa lezione abbiamo visto come compilare un file .scss in CSS via linea di comando. Abbiamo anche accennato alla sintassi .sass precisando, però, che il compilatore node-sass non la supporta. Nella prossima lezione inizieremo a vedere alcuni metodi alternativi per compilare i file con estensione .scss ripartendo dal comando node-sass di cui vedremo alcune delle opzioni più interessanti.

Pubblicitร