Files

186 lines
3.0 KiB
CSS

:root {
color: #d7e9f8;
background: #06111d;
font-family:
Inter,
ui-sans-serif,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
sans-serif;
font-synthesis: none;
text-rendering: optimizeLegibility;
}
* {
box-sizing: border-box;
}
html,
body,
.viewer {
width: 100%;
height: 100%;
height: 100dvh;
margin: 0;
overflow: hidden;
}
.viewer {
position: relative;
background: #06111d;
}
.viewer::after {
position: absolute;
inset: 0;
border: 2px solid transparent;
content: "";
pointer-events: none;
transition:
border-color 140ms ease,
background 140ms ease;
}
.viewer.is-dragging::after {
border-color: #35a9ed;
background: rgb(20 112 168 / 9%);
}
canvas {
display: block;
width: 100%;
height: 100%;
outline: none;
touch-action: none;
}
.render-time {
position: absolute;
z-index: 2;
top: 18px;
left: 18px;
display: flex;
align-items: baseline;
gap: 8px;
padding: 9px 11px;
color: #718da2;
border: 1px solid #23435a;
border-radius: 7px;
background: rgb(8 25 39 / 82%);
box-shadow: 0 8px 24px rgb(0 8 15 / 18%);
font:
700 9px/1 ui-monospace,
SFMono-Regular,
Menlo,
monospace;
letter-spacing: 0.08em;
pointer-events: none;
text-transform: uppercase;
backdrop-filter: blur(10px);
}
.render-time[hidden] {
display: none;
}
.render-time strong {
color: #8bd5fb;
font-size: 11px;
letter-spacing: 0;
text-transform: none;
}
.drop-prompt {
position: absolute;
z-index: 3;
top: 50%;
left: 50%;
display: grid;
min-width: min(360px, calc(100% - 36px));
justify-items: center;
gap: 8px;
padding: 28px 32px;
transform: translate(-50%, -50%);
color: inherit;
border: 1px solid transparent;
border-radius: 14px;
outline: none;
background: transparent;
cursor: pointer;
text-align: center;
}
.drop-prompt:hover,
.drop-prompt:focus-visible,
.viewer.is-dragging .drop-prompt {
border-color: #25577a;
background: rgb(11 41 65 / 72%);
box-shadow: 0 18px 50px rgb(0 10 18 / 22%);
}
.drop-prompt[hidden] {
display: none;
}
.viewer.is-dragging .drop-prompt {
display: grid;
}
.drop-icon {
display: grid;
width: 48px;
height: 48px;
margin-bottom: 7px;
place-items: center;
color: #54bdf6;
border: 1px solid #25577a;
border-radius: 13px;
background: #0b2941;
box-shadow: 0 0 34px rgb(46 171 238 / 15%);
font:
700 19px/1 ui-monospace,
monospace;
}
.drop-prompt strong {
color: #c5d9e8;
font-size: 14px;
letter-spacing: -0.01em;
}
.drop-prompt small {
color: #698297;
font-size: 10px;
}
.drop-prompt.is-error .drop-icon {
color: #f0a5a5;
border-color: #6f3540;
background: #351b27;
box-shadow: 0 0 34px rgb(205 78 91 / 12%);
}
.drop-prompt.is-error strong {
color: #e8b5b5;
}
@media (max-width: 560px) {
.render-time {
top: 12px;
left: 12px;
}
.drop-prompt {
padding: 24px 20px;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
transition-duration: 0.01ms !important;
}
}