summaryrefslogtreecommitdiffstats
path: root/scss/tests/mixins/_color-modes.test.scss
blob: 9ecc628deabe78e69dbd78d1babdadafa7101de9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// stylelint-disable selector-attribute-quotes

@import "../../functions";
@import "../../variables";
@import "../../variables-dark";
@import "../../maps";
@import "../../mixins";

@include describe("global $color-mode-type: data") {
  @include it("generates data attribute selectors for dark mode") {
    @include assert() {
      @include output() {
        @include color-mode(dark) {
          .element {
            color: var(--bs-primary-text-emphasis);
            background-color: var(--bs-primary-bg-subtle);
          }
        }
        @include color-mode(dark, true) {
          --custom-color: #{mix($indigo, $blue, 50%)};
        }
      }
      @include expect() {
        [data-bs-theme=dark] .element {
          color: var(--bs-primary-text-emphasis);
          background-color: var(--bs-primary-bg-subtle);
        }
        [data-bs-theme=dark] {
          --custom-color: #3a3ff8;
        }
      }
    }
  }
}

@include describe("global $color-mode-type: media-query") {
  @include it("generates media queries for dark mode") {
    $color-mode-type: media-query !global;

    @include assert() {
      @include output() {
        @include color-mode(dark) {
          .element {
            color: var(--bs-primary-text-emphasis);
            background-color: var(--bs-primary-bg-subtle);
          }
        }
        @include color-mode(dark, true) {
          --custom-color: #{mix($indigo, $blue, 50%)};
        }
      }
      @include expect() {
        @media (prefers-color-scheme: dark) {
          .element {
            color: var(--bs-primary-text-emphasis);
            background-color: var(--bs-primary-bg-subtle);
          }
        }
        @media (prefers-color-scheme: dark) {
          :root {
            --custom-color: #3a3ff8;
          }
        }
      }
    }

    $color-mode-type: data !global;
  }
}