Hjem » Siste artikler » SCSS for nybegynnere: slik gir du CSS bedre struktur uten å miste kontrollen

SCSS for nybegynnere: slik gir du CSS bedre struktur uten å miste kontrollen

Hovedillustrasjon
Hovedillustrasjon. Foto: Chris Ried / Unsplash.

CSS kan raskt bli uoversiktlig når prosjektene vokser: du klipper, limer og overstyrer til det ikke lenger er klart hva som gjør hva. Her kan SCSS hjelpe deg med å få orden i stilen uten at du trenger å lære et helt nytt språk.

I denne artikkelen får du en jordnær innføring i SCSS: hva det er, hvorfor det er nyttig, og hvordan du kan ta de første stegene på en trygg og ryddig måte.

Hva er SCSS, og hvorfor bry seg?

SCSS er en variant av SASS, som er et såkalt preprosessor-språk for CSS. Du skriver i SCSS-syntaks, og verktøyet kompilerer det til vanlig CSS som nettleseren forstår. Du får flere verktøy til å organisere stilene dine, uten å forlate CSS-verdenen.

Den store fordelen er struktur: variabler, gjenbrukbare biter, færre gjentakelser og ryddigere filer. Nettleseren ser fortsatt bare en helt vanlig CSS-fil, så du får ikke kompatibilitetsproblemer så lenge kompileringen er satt opp riktig.

Hvordan komme i gang uten å overkomplisere

Det finnes mange måter å kompilere SCSS til CSS på. I mindre prosjekter holder det ofte å bruke et enkelt verktøy som kjører lokalt og overvåker filene dine. I større prosjekter brukes ofte npm-skript eller byggverktøy som Vite, Webpack eller Laravel Mix.

Uansett verktøy er grunnprinsippet likt: du jobber i en.scss-fil, for eksempelstyles.scss, og verktøyet genererer enstyles.csssom lenkes inn i HTML-en din.

Variabler som faktisk gir oversikt

Variabler er ofte det første møtet med SCSS. De gjør det enklere å holde styr på farger, mellomrom og typografi. I stedet for å skrive samme fargekode overalt, gir du den et navn.

Et enkelt eksempel kan se slik ut:

SCSS:

$primary-color: #0b5ed7;
$spacing-md: 1.5rem;

button {
  background-color: $primary-color;
  padding: $spacing-md;
}

Når du senere vil endre farge eller mellomrom, trenger du bare å oppdatere variabelen ett sted. Det reduserer risikoen for feil og ujevnheter, spesielt i større prosjekter.

Nesting: nyttig, men lett å misbruke

Nesting lar deg skrive CSS på en måte som ligner mer på HTML-strukturen din. Det er lett å like, men det er også her mange går seg vill og ender med altfor spesifikke og tunge selektorer.

Et moderat eksempel:

SCSS:

.card {
  border: 1px solid #ddd;
  padding: 1rem;

  h3 {
    margin-bottom: 0.5rem;
  }

  a {
    color: #0b5ed7;
  }

}

Her er nestingen begrenset til ett nivå, noe som ofte er et fornuftig tak. Unngå lange kjeder som .page .wrapper .content .card ul li a span. De er vanskelig å vedlikeholde og gjør det tøft å overstyre stilen senere.

Del opp stilene med partials

En storstyles.scss-fil blir fort tung å jobbe i. SCSS lar deg splitte opp i mindre filer, såkalte partials, og samle dem med@useeller@forward. En partial starter som regel med understrek i filnavnet, for eksempel_colors.scss.

En enkel struktur kan se slik ut:

  • styles.scss
  • _variables.scss
  • _buttons.scss
  • _layout.scss

Istyles.scsskan du da skrive:

@use 'variables';
@use 'buttons';
@use 'layout';

Da blir hver fil mer fokusert, og nye personer i prosjektet finner raskere frem til det de skal endre. Husk at mappestruktur og navn bør følge hvordan prosjektet faktisk er bygget opp, ikke en teori som virker smart der og da.

Mixins og funksjoner uten magi

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Alicia Christin Gerald / Pexels.

Mixins lar deg definere gjenbrukbare stilblokker, ofte med parametere. Dette er nyttig når responsive justeringer eller gjentatt kode begynner å ta over. Tenk for eksempel på media queries som går igjen flere steder.

Et eksempel på en enkel breakpoint-mixin:

$breakpoint-md: 768px;

@mixin above-md {
  @media (min-width: $breakpoint-md) {
    @content;
  }
}

Deretter kan du skrive:

.card {
  padding: 1rem;

  @include above-md {
    padding: 2rem;
  }
}

På den måten har du ett sted å endre breakpointet, og du slipper å skrive hele media query-blokken hver gang. Bare vær kritisk til hvor mange mixins du lager, for mange abstraksjoner gjør koden vanskeligere å lese for andre.

SCSS i team og eksisterende prosjekter

Hvis du jobber i et team, er det lurt å bli enig om noen enkle regler: hvor dypt dere kan neste, hvordan variablene navngis og hvordan mappestrukturen bør se ut. Små felles kjøreregler gjør koden mer konsekvent og mindre sårbar for personlige preferanser.

Skal du innføre SCSS i et eksisterende prosjekt, er det sjelden lurt å konvertere alt på en gang. Start med nye komponenter eller seksjoner, eller flytt delen av CSS-en som gir mest hodebry. Da får du erfaring og kan justere strukturen før hele prosjektet er overført.

Vanlige feil du bør unngå

Flere fallgruver går igjen når folk tar i bruk SCSS for første gang. Heldigvis er de enkle å unngå når du vet hva du ser etter.

  • For dyp nesting som gir uleselige selektorer
  • Altfor mange små filer som gjør strukturen mer komplisert enn nødvendig
  • Mixins som egentlig bare kopierer kode uten klar gevinst
  • Variabler uten system, som blir like vanskelig å huske som rå fargekoder

Et godt spørsmål å stille seg er: Blir dette lettere å forstå for noen som kommer inn i prosjektet om et halvt år? Hvis svaret er nei, er det ofte bedre å forenkle.

Når lønner det seg å bruke SCSS?

SCSS gir mest verdi når stilsettet ditt er større enn noen få skjemaer eller en enkel landingsside. Har du mange komponenter, flere utviklere eller et nettsted som du vet skal vokse, er gevinsten ofte betydelig.

For veldig små prosjekter kan ren CSS være nok, gjerne med moderne muligheter som CSS-variabler. Du trenger ikke velge en gang for alle, men kan vurdere verktøyene ut fra behovet i hvert enkelt prosjekt.

Oppsummert: små steg, stor gevinst

SCSS handler ikke om å gjøre CSS mer avansert, men om å gi deg bedre struktur. Variabler, moderat nesting, partials og noen få gjennomtenkte mixins kan gjøre hverdagen din som utvikler eller nettstedseier merkbart mer ryddig.

Start med det enkle, sett opp en trygg kompilering til CSS, og utvid etter hvert som du ser hva du faktisk savner. Da får du fordelene med SCSS uten å ende opp i et uoversiktlig abstraksjonslag.

0 kommentarer