Hur du kan använda sass i Eleventy. Sass står för "Syntactically Awesome Style Sheets". Läs vidare för att få en grundläggande introduktion.
Innan du kör igång
Se till att du kan skapa och få igång ett Eleventy-projekt. Behöver du hjälp med det så läsKom igång med Eleventy.
SASS
SASS är ett CSS-preprocessor som gör det möjligt att använda funktioner och variabler i CSS. Det gör att du kan skriva mindre kod och att du kan återanvända kod. Det finns två olika versioner av SASS, SCSS och SASS. SCSS är en superset av CSS och är mer likt CSS än SASS. I det här exemplet kommer jag att använda SCSS.
Mycket av funktionerna i SASS finns nu tillgängliga direkt i CSS, men det finns fortfarande många funktioner som inte finns i CSS. Det är därför som många fortfarande använder SASS och därför är det fortfarande relevant att du lär dig hur du kan använda SASS.
Installera SASS
Du kan antingen välja att installera SASS globalt eller lokalt. För att installera npm paket global så används flaggan -g
. Eftersom du kommer (om du läser webbutveckling 2) att hosta ditt projekt på Netlify så behöver du installera SASS lokalt. Detta eftersom Netlify kommer att behöva se och installera SASS i byggprocessen eftersom det är en dependency till ditt projekt.
npm install sass
Setup för att använda SASS
Skapa en mapp i ditt projekt som heter src/sass
. I den mappen skapar du en fil som heter style.scss
. Notera att filändelsen är .scss
och inte .css
. Detta eftersom vi vill använda SASS (med scss) och inte CSS.
Skapa en css-regel för att testa att SASS fungerar. I style.scss
skriver du:
body {
background-color: red;
}
Kommandot för att bygga din css från din sass-fil är som följer och det går att köra direkt i bash. Vill du veta mer kolla --help
flaggan.
npx sass src/sass/style.scss:dist/css/style.css
Nästa steg är att skapa de script som kommer att kompilera din SASS till CSS. De scripten skriver du i package.json
.
De script du behöver är ett för att uppdatera sass när du utvecklar och ett script för att bygga sass när du publicerar. För enkelhetens skull så kopiera följande till package.json
. Innan du kan köra det så behöver du installera paketet npm-run-all
.
"watch:sass": "sass --no-source-map --watch src/sass:dist/css",
"watch:eleventy": "eleventy --serve",
"build:sass": "sass --no-source-map src/sass:dist/css",
"build:eleventy": "eleventy",
"start": "npm-run-all build:sass --parallel watch:*",
"build": "npm-run-all build:sass build:eleventy"
Eleventy config
För att dra nytta av SASS tillsammans med Eleventy så behöver du konfigurera Eleventy. Det gör du i eleventy.js
. För att de ändringar du gör i SASS filerna ska trigga en rebuild av Eleventy så behöver du konfigurera en watch target. Det gör du genom att lägga till följande i eleventy.js
.
eleventyConfig.addWatchTarget("./src/sass/");
Nu startar du Eleventy med npm run start
och du bör se att din bakgrundsfärg är röd. Detta eftersom vi satt bakgrundsfärgen till röd i style.scss
. Ändra färgen till något annat och se att det uppdateras i din webbläsare.
CSS reset med SASS
En bra sak att ha som de flesta sidor behöver är en CSS reset. Det är en CSS-fil som sätter alla element till samma värden. Det gör att du kan vara säker på att alla element har samma utseende oavsett vilken webbläsare du använder. Det finns många olika CSS resets men jag brukar oftast använda mig Andy Bells modern CSS reset version eller Stephanie Eckles modifierade version.
Den reset som jag använder på den här sidan finns på GitHub, _reset.scss. Du kan testa att använda den i din SASS-fil och se att den fungerar. Spara filen som _reset.scss
, ett understreck i filnamnet indikerar att det är en partial och att den inte ska kompileras till CSS.
För att använda den så behöver du importera den i din style.scss
fil. Det gör du genom att skriva följande:
@use "reset";
Nästa steg
Du har nu en grund för att kunna använda SASS med Eleventy, du kan börja med att skriva vanlig CSS i SCSS filen. Det fungerar bra så länge, men du kan nu allt eftersom lära dig mer om SASS och dess funktioner och inludera det i din CSS.
Ett tips är att kolla på SASS dokumentationen och SASS guiden.