aboutsummaryrefslogtreecommitdiffstats
path: root/web/style/index.sass
blob: c079f652e4a010d8f130ca66c96f6f0019d23c9c (plain) (blame)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
// maunium-stickerpicker - A fast and simple Matrix sticker picker widget.
// Copyright (C) 2020 Tulir Asokan
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

*
  font-family: sans-serif

body
  margin: 0

h1
  font-size: 1rem

\:root
  --stickers-per-row: 4
  --sticker-size: calc(100vw / var(--stickers-per-row))

$nav-sticker-size: 12vw
$nav-bottom-highlight: 2px
$nav-height: calc(#{$nav-sticker-size} + #{$nav-bottom-highlight})
$nav-height-inverse: calc(-#{$nav-sticker-size} - #{$nav-bottom-highlight})

$search-box-icon-size: 1rem
$search-box-input-height: 1rem
$search-box-input-padding: .7rem
$search-box-input-margin: .5rem
$search-box-height: calc(2 * #{$search-box-input-padding} + 2 * #{$search-box-input-margin} + #{$search-box-input-height})

main
  color: var(--text-color)

  &.spinner
    margin-top: 5rem

  &.error, &.empty
    margin: 2rem

  &.empty
    text-align: center

  &.has-content
    position: fixed
    top: 0
    left: 0
    right: 0
    bottom: 0
    display: grid
    grid-template-rows: $nav-height min-content auto

main.theme-light
  --highlight-color: #eee
  --search-box-color: var(--highlight-color)
  --text-color: black
  background-color: white

main.theme-dark
  --highlight-color: #444
  --search-box-color: #383e4b
  --text-color: white
  background-color: #22262e

main.theme-black
  --highlight-color: #222
  --search-box-color: var(--highlight-color)
  --text-color: white
  background-color: black

.icon
  width: 100%
  height: 100%
  background-color: var(--text-color)
  mask-size: contain
  -webkit-mask-size: contain
  mask-image: var(--icon-image)
  -webkit-mask-image: var(--icon-image)

  &.icon-settings
    --icon-image: url(../res/settings.svg)

  &.icon-recent
    --icon-image: url(../res/recent.svg)

  &.icon.icon-search
    --icon-image: url(../res/search.svg)

nav
  display: flex
  overflow-x: auto

  > a
    border-bottom: $nav-bottom-highlight solid transparent

    &.visible
      border-bottom-color: green

    > div.sticker
      width: $nav-sticker-size
      height: $nav-sticker-size

div.pack-list, nav
  scrollbar-width: none

  &::-webkit-scrollbar
    display: none

div.pack-list
  overflow-y: auto

div.pack-list.ios-safari-hack
  position: fixed
  top: calc(#{$nav-height} + #{$search-box-height})
  bottom: 0
  left: 0
  right: 0
  -webkit-overflow-scrolling: touch

div.search-empty
  margin: 1.2rem
  text-align: center

section.stickerpack
  margin-top: .75rem

  > div.sticker-list
    display: flex
    flex-wrap: wrap

  > h1
    margin: 0 0 0 .75rem

div.sticker
  display: flex
  padding: 4px
  cursor: pointer
  position: relative
  width: var(--sticker-size)
  height: var(--sticker-size)
  box-sizing: border-box

  &:hover
    background-color: var(--highlight-color)

  > img
    display: none
    width: 100%
    object-fit: contain

    &.visible
      display: initial

  > .icon
    width: 70%
    height: 70%
    margin: 15%

div.search-box
  position: relative
  display: flex

  >input[type="text"]
    flex-grow: 1
    background-color: var(--search-box-color)
    outline: none
    border: none
    border-radius: .25rem
    height: $search-box-input-height
    padding: $search-box-input-padding
    padding-right: calc(#{$search-box-icon-size} + #{$search-box-input-padding})
    margin: $search-box-input-margin
    font-size: 1rem
    color: var(--text-color)

  >span.icon
    display: flex
    position: absolute
    top: calc(50% - #{$search-box-icon-size} / 2)
    right: $search-box-icon-size
    width: $search-box-icon-size
    height: $search-box-icon-size
    box-sizing: border-box

div.settings-list
  display: flex
  flex-direction: column

  > *
    margin: .5rem

  button
    padding: .5rem
    border-radius: .25rem

  input
    width: 100%
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage