vef1-2025

Vefforritun 1 kennd haustið 2025

View the Project on GitHub vefforritun/vef1-2025

Fyrirlestur – Sass & stylelint

Vefforritun 1 — TÖL107G

Ólafur Sverrir Kjartansson, osk@hi.is


Tæki og tól


Ýmislegt hægt til að hjálpa við að skrifa skipulegra CSS, t.d. með leiðum til að draga úr endurtekningum


Dæmi um mál


Tól og mál


Sass


@use "sass:math";
// svona komment virka
$blue: #3bbfce;
$gutter: 30px;

.box {
  // eigum við breytu með virkja
  margin: calc(#{math.div($gutter, 2)} + 10%);

  // líka fyrir liti!
  background-color: darken($blue, 10);
}

Þýtt yfir í:

.box {
  margin: 15px;
  background-color: #76ffff;
}


Mixin og hreiðraðar reglur

@mixin rounded($color: transparent) {
  border: 1px solid $color;
  border-radius: 5px;
}
.box {
  &__header {
    @include rounded; }

  &__content {
    @include rounded(#000); }
}

Þýtt yfir í:

.box__header {
  border: 1px solid transparent;
  border-radius: 5px;
}
.box__content {
  border: 1px solid #000;
  border-radius: 5px;
}

media queries

media queries geta verið settar undir selector, og getum notað Sass breytur

.item {
  width: 100%;

  @media (min-width: $min-width) {
    width: 50%;
  }
}

@import



$max-width: 1200px;
$gutter: 20px;

main {
  max-width: $max-width;
  margin: 0 auto;
}

@import "scss/grid";
// o.s.fr.

sass



sass CLI

dart-sass kemur með CLI tóli

> npm install --save dart-sass
> npx sass styles.scss styles.css

"scripts": {
  "sass": "sass styles.scss styles.css"
}
> npm run sass
Rendering Complete, saving .css file...
Wrote CSS to /slóð/á/verkefni/styles.scss

source-map


Fylgst með


Sass dæmi


Keyra browser-sync og sass saman


"scripts": {
  "browser-sync": "browser-sync start --server --files index.html styles.css",
  "sass": "sass styles.scss styles.css -w",
  "dev": "concurrently npm:sass npm:browser-sync"
},

dev er yfirleitt notað sem heiti á script sem kveikir á því sem þarf fyrir development.



stylelint


> npm install --save-dev stylelint
...
> npm install --save-dev stylelint-config-standard

.stylelintrc


.stylelintrc

{
  "extends": "stylelint-config-standard"
}

eða

{
  "extends": "stylelint-config-sass-guidelines"
}

"scripts": {
  "lint-css": "stylelint styles.css",
  "lint-scss": "stylelint styles.scss --syntax scss"
}

Linterar í verkefnum



Slökkt á reglum


Hávaði í npm