* { font-family: sans-serif; } body { margin: 0; } h1 { font-size: 1rem; } :root { --stickers-per-row: 4; --sticker-size: calc(100vw / var(--stickers-per-row)); } main { color: var(--text-color); } main.spinner { margin-top: 5rem; } main.error, main.empty { margin: 2rem; } main.empty { text-align: center; } main.has-content { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: grid; grid-template-rows: calc(12vw + 2px) min-content auto; } main.theme-light { --highlight-color: #eee; --search-box-color: var(--highlight-color); --text-color: black; background-color: #fff; } 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: #000; } .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.icon-settings { --icon-image: url(../res/settings.svg); } .icon.icon-recent { --icon-image: url(../res/recent.svg); } .icon.icon.icon-search { --icon-image: url(../res/search.svg); } nav { display: flex; overflow-x: auto; } nav > a { border-bottom: 2px solid transparent; } nav > a.visible { border-bottom-color: #1e90ff; } nav > a > div.sticker { width: 12vw; height: 12vw; } div.pack-list, nav { scrollbar-width: none; } div.pack-list::-webkit-scrollbar, nav::-webkit-scrollbar { display: none; } div.pack-list { overflow-y: auto; } div.pack-list.ios-safari-hack { position: fixed; top: calc(calc(12vw + 2px) + calc(2 * 0.7rem + 2 * 0.5rem + 1rem)); bottom: 0; left: 0; right: 0; -webkit-overflow-scrolling: touch; } div.search-empty { margin: 1.2rem; text-align: center; } section.stickerpack { margin-top: 0.75rem; } section.stickerpack > div.sticker-list { display: flex; flex-wrap: wrap; } section.stickerpack > h1 { margin: 0 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; } div.sticker:hover { background-color: var(--highlight-color); } div.sticker > img { display: none; width: 100%; object-fit: contain; } div.sticker > img.visible { display: initial; } div.sticker > .icon { width: 70%; height: 70%; margin: 15%; } div.search-box { position: relative; display: flex; } div.search-box > input[type="text"] { flex-grow: 1; background-color: var(--search-box-color); outline: none; border: none; border-radius: 0.25rem; height: 1rem; padding: 0.7rem; padding-right: calc(1rem + 0.7rem); margin: 0.5rem; font-size: 1rem; color: var(--text-color); } div.search-box > span.icon { display: flex; position: absolute; top: calc(50% - 1rem / 2); right: 1rem; width: 1rem; height: 1rem; box-sizing: border-box; } div.settings-list { display: flex; flex-direction: column; } div.settings-list > * { margin: 0.5rem; } div.settings-list button { padding: 0.5rem; border-radius: 0.25rem; } div.settings-list input { width: 100%; }