npm.io
1.0.0-rc.6 • Published 5 years ago

@snug/core

Licence
MIT
Version
1.0.0-rc.6
Deps
0
Size
12 kB
Vulns
0
Weekly
0
Stars
19

snug – super neat utility generator

SCSS toolkit to create utility classes with ease.

snug is still under development and functionality may change

Requirements

For now you need to use dart sass to compile your styles.

Available variants

Name Type
responsive @media
dark @media
light @media
pseudo-class pseudo-class
group-pseudo-class pseudo-class

Basic Usage

@use '@snug/core' as * with (
  $breakpoints: (
    's': 640px,
    'm': 768px,
    'l': 1024px,
  )
);

// Basic responsive variants
.banana {
  @include variants('responsive') {
    color: gold;
  }
}

// Adding additional variants
.banana {
  @include variants('responsive' 'hover' 'group-hover') {
    color: gold;
  }
}

Responsive Variants

When using modifiers that change the same or a more specific css property these must be grouped by breakpoint. A more specific property would be something like padding-top to padding.

// Wrap your code like this to have your modifiers grouped by breakpoint
@include variants('responsive') using ($props...) {
  .p-1 {
    @include variants($props...) {
      padding: 0.25rem;
    }
  }

  .pt-1 {
    @include variants($props...) {
      padding-top: 0.25rem;
    }
  }
}

Using Options

$colors: (
  'blue': (
    100: #e5f1fd,
    200: #b0d6f9,
    300: #7bbaf6,
    400: #469ff2,
    500: #1183ee,
    600: #0d66b9,
    700: #094984,
    800: #062c4f,
    900: #020f1a,
  )
);

.text {
  @include options($colors, 'hover' 'group-hover') using ($value) {
    color: $value;
  }
}