matrix-stickers/web/style/index.sass
Tulir Asokan 78fdb6f175 Switch license to AGPLv3+
The license was initially MPLv2 as I expected the project to be a fairly
simple tiny web app, but it has already grown into multiple files. Now
that I'm going to add a server component, I'm switching the license for
future versions to AGPL like all my other non-library projects.
2020-10-30 23:18:55 +02:00

165 lines
3.1 KiB
Sass

// 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})
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 auto
main.theme-light
--highlight-color: #eee
--text-color: black
background-color: white
main.theme-dark
--highlight-color: #444
--text-color: white
background-color: #22262e
main.theme-black
--highlight-color: #222
--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)
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: $nav-height
bottom: 0
left: 0
right: 0
-webkit-overflow-scrolling: touch
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.settings-list
display: flex
flex-direction: column
> *
margin: .5rem
button
padding: .5rem
border-radius: .25rem
input
width: 100%