stickerpicker/web/style/index.sass

229 lines
4.6 KiB
Sass
Raw Normal View History

// 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))
2020-09-05 14:34:43 +03:00
$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})
2020-12-17 09:22:40 +01:00
$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
2020-09-11 19:07:54 +03:00
color: var(--text-color)
2020-09-05 14:34:43 +03:00
&.spinner
margin-top: 5rem
&.error, &.empty
margin: 2rem
&.empty
text-align: center
2020-09-05 14:34:43 +03:00
&.has-content
position: fixed
top: 0
left: 0
right: 0
bottom: 0
display: grid
2020-12-17 09:22:40 +01:00
grid-template-rows: $nav-height min-content auto
2020-09-05 14:34:43 +03:00
2020-09-11 19:07:54 +03:00
main.theme-light
--highlight-color: #eee
2020-12-17 09:22:40 +01:00
--search-box-color: var(--highlight-color)
2020-09-11 19:07:54 +03:00
--text-color: black
background-color: white
main.theme-dark
--highlight-color: #444
2020-12-17 09:22:40 +01:00
--search-box-color: #383e4b
2020-09-11 19:07:54 +03:00
--text-color: white
background-color: #22262e
main.theme-black
--highlight-color: #222
2020-12-17 09:22:40 +01:00
--search-box-color: var(--highlight-color)
2020-09-11 19:07:54 +03:00
--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)
2022-02-06 12:17:29 +01:00
&.icon-search
2020-12-17 09:22:40 +01:00
--icon-image: url(../res/search.svg)
2022-02-06 12:17:29 +01:00
&.icon-reset
--icon-image: url(../res/reset.svg)
nav
display: flex
overflow-x: auto
2020-09-05 14:34:43 +03:00
> a
border-bottom: $nav-bottom-highlight solid transparent
2020-09-11 19:07:54 +03:00
2020-09-05 14:34:43 +03:00
&.visible
border-bottom-color: green
2020-09-11 19:07:54 +03:00
2020-09-05 14:34:43 +03:00
> div.sticker
width: $nav-sticker-size
height: $nav-sticker-size
div.pack-list, nav
scrollbar-width: none
&::-webkit-scrollbar
display: none
2020-09-05 14:34:43 +03:00
div.pack-list
overflow-y: auto
div.pack-list.ios-safari-hack
position: fixed
2020-12-17 09:22:40 +01:00
top: calc(#{$nav-height} + #{$search-box-height})
bottom: 0
left: 0
right: 0
-webkit-overflow-scrolling: touch
2020-12-17 09:22:40 +01:00
div.search-empty
margin: 1.2rem
text-align: center
section.stickerpack
2020-09-05 14:34:43 +03:00
margin-top: .75rem
> div.sticker-list
display: flex
flex-wrap: wrap
> h1
2020-09-05 14:34:43 +03:00
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
2020-09-11 19:07:54 +03:00
background-color: var(--highlight-color)
> img
display: none
width: 100%
object-fit: contain
&.visible
display: initial
2020-09-10 15:14:22 +03:00
2020-09-11 19:07:54 +03:00
> .icon
width: 70%
height: 70%
margin: 15%
2020-12-17 09:22:40 +01:00
div.search-box
display: flex
margin: $search-box-input-margin
2022-02-06 15:47:38 +01:00
padding: 0
border-radius: .4rem
2022-02-06 15:47:38 +01:00
background-color: var(--search-box-color)
opacity: .5
transition: all .1s
border: 1px solid transparent
&:focus-within
opacity: 1
border: 1px solid var(--text-color)
&:not(:focus-within):hover
opacity: .7
2020-12-17 09:22:40 +01:00
input,.icon-display
color: var(--text-color)
2022-02-06 15:47:38 +01:00
outline: none
border: none
height: $search-box-input-height
margin: 0
padding: $search-box-input-padding
background-color: transparent
-webkit-tap-highlight-color: transparent
.icon-display
width: $search-box-input-height
&.reset-click-zone
cursor: pointer
.icon
display: block
width: $search-box-icon-size
height: $search-box-icon-size
.icon-search
opacity: .5
input
flex-grow: 1
2020-12-17 09:22:40 +01:00
font-size: 1rem
2020-09-10 15:14:22 +03:00
div.settings-list
display: flex
flex-direction: column
2020-09-10 15:14:22 +03:00
> *
2020-09-10 15:14:22 +03:00
margin: .5rem
button
2020-09-10 15:14:22 +03:00
padding: .5rem
border-radius: .25rem
input:not([type="checkbox"])
width: 100%