summaryrefslogtreecommitdiffstats
path: root/src/components/organisms/toolbar/toolbar-items.module.scss
blob: fd526d6363e2a04fdb3c98d47b287b7672845e25 (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
@use "@styles/abstracts/functions" as fun;
@use "@styles/abstracts/mixins" as mix;
@use "@styles/abstracts/placeholders";

.item {
  --btn-size: #{fun.convert-px(65)};

  display: flex;
  position: relative;

  @include mix.media("screen") {
    @include mix.dimensions("sm") {
      justify-content: flex-end;
    }

    @include mix.dimensions("md") {
      justify-content: flex-end;
    }
  }
}

.modal {
  position: absolute;
  top: var(--toolbar-size, calc(var(--btn-size) + var(--spacing-2xs)));
  transition: all 0.8s ease-in-out 0s;

  @include mix.media("screen") {
    @include mix.dimensions(null, "sm") {
      left: 0;
      right: 0;
    }
  }
}

.label {
  --draw-border-thickness: #{fun.convert-px(4)};
  --draw-border-color1: var(--color-primary-light);
  --draw-border-color2: var(--color-primary-lighter);

  display: flex;
  place-content: center;
  place-items: center;
  width: var(--btn-size);
  height: var(--btn-size);
  padding: var(--spacing-2xs);

  &:hover,
  &:focus {
    @extend %draw-borders;
  }

  &:focus {
    color: var(--color-primary-light);
  }

  &:active {
    --draw-border-color1: var(--color-primary-dark);
    --draw-border-color2: var(--color-primary-light);

    @extend %draw-borders;
  }
}

.checkbox {
  position: absolute;
  top: calc(var(--btn-size) / 2);
  left: calc(var(--btn-size) / 2);
  opacity: 0;
  cursor: pointer;

  &:hover,
  &:focus {
    ~ .label {
      @extend %draw-borders;
    }
  }

  &:not(:checked) {
    ~ .modal {
      opacity: 0;
      visibility: hidden;

      @include mix.media("screen") {
        @include mix.dimensions(null, "sm") {
          transform: translateX(-100vw);
        }

        @include mix.dimensions("sm") {
          transform: perspective(#{fun.convert-px(400)})
            translate3d(0, 0, #{fun.convert-px(-400)});
          transform-origin: 100% -50%;
        }
      }
    }
  }
}