aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms/forms/search-form/search-form.module.scss
blob: e4853807dea44f523a8d6185dce4631aca66e49c (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
@use "../../../../styles/abstracts/functions" as fun;
@use "../../../../styles/abstracts/mixins" as mix;

.wrapper {
  display: flex;
  align-items: center;
  position: relative;

  @include mix.media("screen") {
    @include mix.dimensions("sm") {
      max-width: 35ch;
    }
  }
}

.btn {
  align-self: stretch;
  background: var(--color-bg-tertiary);
  border: fun.convert-px(2) solid var(--color-border);
  border-left: none;
  box-shadow: fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-shadow);
  transition: all 0.25s linear 0s;

  &__icon {
    transform: scale(0.85);
    transition: all 0.3s ease-in-out 0s;
  }

  &:focus {
    outline: var(--color-primary-light) solid fun.convert-px(3);
  }

  &:active {
    outline: none;
  }

  &:hover &,
  &:focus & {
    &__icon {
      transform: scale(0.85) rotate(20deg) translateY(#{fun.convert-px(3)});
    }
  }

  &:active & {
    &__icon {
      transform: scale(0.7);
    }
  }
}

.field {
  &:focus-within ~ .btn {
    background: var(--color-bg);
    border-color: var(--color-primary);
    box-shadow: none;
    transform: translate(fun.convert-px(3), fun.convert-px(3));
    transition:
      all 0.2s ease-in-out 0s,
      transform 0.3s ease-out 0s;
  }

  &:hover:not(:focus-within) ~ .btn {
    box-shadow: fun.convert-px(5) fun.convert-px(5) 0 fun.convert-px(1)
      var(--color-shadow);
    transform: translate(fun.convert-px(-3), fun.convert-px(-3));
  }
}