aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Pagination/Pagination.module.scss
blob: 4d74d1b23f67feef732053a19182c0aa1b585f25 (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
@use "@styles/abstracts/functions" as fun;
@use "@styles/abstracts/mixins" as mix;
@use "@styles/abstracts/placeholders";

.list {
  @extend %flex-list;
  justify-content: center;

  row-gap: var(--spacing-sm);
}

.link {
  display: block;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--color-bg);
  border: fun.convert-px(2) solid var(--color-primary);
  box-shadow: fun.convert-px(2) fun.convert-px(2) 0 0
    var(--color-primary-darker);
  font-weight: 600;
  text-decoration: none;

  @include mix.pointer("fine") {
    padding: var(--spacing-2xs) var(--spacing-xs);
  }

  &--current {
    padding: calc(var(--spacing-xs) / 1.5) var(--spacing-sm);
    border-color: var(--color-primary-darker);
    box-shadow: none;
    color: var(--color-primary-darker);
    transform: translateY(#{fun.convert-px(10)});

    @include mix.pointer("fine") {
      padding: calc(var(--spacing-2xs) / 1.5) var(--spacing-xs);
      transform: translateY(#{fun.convert-px(7)});
    }
  }

  &:not(.link--current) {
    &:hover,
    &:focus {
      border-color: var(--color-primary-light);
      box-shadow: fun.convert-px(2) fun.convert-px(2) 0 0
          var(--color-primary-darker),
        0 fun.convert-px(2) fun.convert-px(2) fun.convert-px(1)
          var(--color-shadow-dark),
        0 fun.convert-px(7) fun.convert-px(7) fun.convert-px(2)
          var(--color-shadow-light);
      color: var(--color-primary-light);
      transform: translateY(#{fun.convert-px(-5)});
    }

    &:active {
      padding: calc(var(--spacing-xs) / 1.5) var(--spacing-sm);
      border-color: var(--color-primary-dark);
      box-shadow: none;
      color: var(--color-primary-dark);
      transform: translateY(#{fun.convert-px(10)});

      @include mix.pointer("fine") {
        padding: calc(var(--spacing-2xs) / 1.5) var(--spacing-xs);
        transform: translateY(#{fun.convert-px(7)});
      }
    }
  }
}

.item {
  position: relative;

  &:first-child {
    .link {
      border-top-left-radius: fun.convert-px(4);
      border-bottom-left-radius: fun.convert-px(4);
    }
  }

  &:last-child {
    .link {
      border-top-right-radius: fun.convert-px(4);
      border-bottom-right-radius: fun.convert-px(4);
    }
  }

  &:not(:first-child) {
    margin-left: fun.convert-px(-1);
  }

  &:not(:last-child) {
    margin-right: fun.convert-px(-1);
  }
}