1
0
mirror of https://github.com/elk-zone/elk synced 2024-12-01 00:08:11 +09:00
elk/styles/global.css
2023-02-25 12:10:03 +01:00

243 lines
4.1 KiB
CSS

html {
font-size: var(--font-size, 15px);
width: 100%;
width: 100vw;
}
@font-face {
font-display: swap;
font-family: 'Homemade Apple';
font-style: normal;
font-weight: 400;
src: url(/fonts/homemade-apple-v18.ttf) format('truetype');
}
::-moz-selection {
background: var(--c-bg-selection);
}
::selection {
background: var(--c-bg-selection);
}
/* Force vertical scrollbar to be always visible to avoid layout shift while loading the content */
body {
overflow-y: scroll;
-webkit-tap-highlight-color: transparent;
}
.zen .zen-hide {
--at-apply: 'op0 hover:op100 transition duration-600';
}
.zen .zen-none {
display: none;
}
.custom-emoji {
display: inline-block;
vertical-align: text-bottom;
}
.content-editor img.custom-emoji,
.custom-emoji img {
max-height: 1.3em;
max-width: 1.3em;
object-fit: contain;
}
.iconify-emoji {
display: inline-block;
overflow: hidden;
max-height: 1.2em;
max-width: 1.2em;
vertical-align: text-bottom;
margin: 0 0.1em;
}
.iconify-emoji-padded {
transform: scale(1.2);
}
em-emoji-picker {
--border-radius: 0;
width: 352px;
}
.content-rich {
overflow-wrap: break-word;
a {
--at-apply: 'text-primary hover:underline hover:text-primary-active';
.invisible {
--at-apply: 'hidden';
}
.ellipsis {
--at-apply: 'line-clamp-1 ws-pre-wrap break-all inline';
&::after {
content: '…';
}
}
}
b,
strong {
--at-apply: font-bold;
}
p {
--at-apply: my-2;
}
p:first-child {
--at-apply: mt-1;
}
p:last-child {
--at-apply: mb-1;
}
code {
--at-apply: bg-code text-code px1 py0.5 rounded text-0.875em leading-0.8em;
}
pre code {
--at-apply: bg-transparent px0 py0 rounded-none leading-1.6em;
}
ol {
--at-apply: list-decimal my-3 pl-6 ml-2;
}
ul {
--at-apply: list-disc my-3 pl-6 ml-2;
}
li {
--at-apply: mt-1 mb-1;
&:empty {
--at-apply: hidden;
}
}
ol > li {
--at-apply: pl-2;
}
ul > li {
--at-apply: pl-2;
}
.code-block {
--at-apply: bg-code text-0.875em p3 mt-2 rounded overflow-auto
leading-1.6em;
.shiki {
background: transparent !important;
}
}
}
.line-compact {
line-height: calc(4 / 3 * 1em);
}
.content-editor {
--at-apply: outline-none flex-1;
max-width: 100%;
.custom-emoji {
margin: 0 0.2em;
}
p {
--at-apply: my-0;
line-height: calc(4 / 3 * 1em);
}
p:first-child {
--at-apply: mt-1;
}
p:last-child {
--at-apply: mb-1;
}
}
.skeleton-loading-bg {
background: linear-gradient(
90deg,
rgba(190, 190, 190, 0.2) 25%,
rgba(129, 129, 129, 0.24) 37%,
rgba(190, 190, 190, 0.2) 63%
);
background-size: 400% 100%;
animation: skeleton-loading 1.4s ease infinite;
}
@keyframes skeleton-loading {
0% {
background-position: 100% 50%;
}
to {
background-position: 0 50%;
}
}
html,
body,
#__nuxt {
height: 100vh;
margin: 0;
padding: 0;
}
html.dark {
color-scheme: dark;
}
html {
--at-apply: bg-base text-base;
}
html:not(.enable-pinch-to-zoom) body {
/* Prevent arbitrary zooming on mobile devices */
touch-action: pan-x pan-y;
}
.sparkline--fill {
fill: var(--c-primary-active);
opacity: 0.2;
}
.sparkline--line {
stroke: var(--c-primary);
stroke-width: 2;
}
html[dir="rtl"] .rtl-flip {
transform: scale(-1, 1)
}
footer {
a {
--at-apply: 'hover:underline';
}
}
.squircle {
clip-path: url(#avatar-mask);
}
/*
Grayscale mode
Setting each element filter to a different var
allows controlling them individually
*/
[data-mode="grayscale"] img,
[data-mode="grayscale"] video {
filter: grayscale(var(--media-grayscale, 1));
transition: filter .23s ease-in-out .2s;
}
[data-mode="grayscale"] pre {
filter: grayscale(var(--code-grayscale, 1));
}
[data-mode="grayscale"] .poll-wrapper {
filter: grayscale(var(--poll-grayscale, 1));
}
[data-mode="grayscale"] .status-actions,
[data-mode="grayscale"] .status-boosted {
filter: grayscale(var(--status-grayscale, 1));
}
[data-mode="grayscale"] img:hover,
[data-mode="grayscale"] video:hover {
filter: grayscale(0);
}