This commit is contained in:
Mateusz Gruszczyński committed 2026-10-16 22:49:22 +02:00
1 parent 4da41a1404
commit 5cb6960b04
31 files changed
+1611 -2123

No files matched your search

+240
View File
@@ -0,0 +1,240 @@
#app-boot-overlay {
--boot-bg: #0b0d11;
--boot-panel: #151922;
--boot-border: #343c49;
--boot-text: #f4f6f8;
--boot-muted: #abb5c3;
--boot-accent: #a99ef8;
--boot-brand-start: #f0aa74;
--boot-brand-mid: #cf633d;
--boot-brand-end: #8f3827;
position: fixed;
inset: 0;
z-index: 2147483647;
display: grid;
place-items: center;
padding: 24px;
background: var(--boot-bg);
color: var(--boot-text);
font: 500 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
text-align: center;
opacity: 1;
visibility: visible !important;
transition: opacity .18s ease;
}
:root[data-theme=light] #app-boot-overlay {
--boot-bg: #f7f4ee;
--boot-panel: #fffdf9;
--boot-border: #cbc3b8;
--boot-text: #29251f;
--boot-muted: #625a50;
--boot-accent: #6251bf;
--boot-brand-start: #c9794e;
--boot-brand-mid: #ae5d3c;
--boot-brand-end: #7c3d2c;
}
#app-boot-overlay.is-ready {
opacity: 0;
pointer-events: none;
}
#app-boot-overlay .app-boot-card {
width: min(100%, 390px);
}
#app-boot-overlay .app-boot-brand {
position: relative;
display: inline-block;
max-width: 100%;
margin: 0 auto 25px;
padding: 0 8px 11px;
line-height: 1;
}
#app-boot-overlay .app-boot-wordmark {
position: relative;
display: block;
white-space: nowrap;
font-size: calc(clamp(42px, 10vw, 57px));
font-weight: 800;
letter-spacing: -.035em;
line-height: 1.13;
background: linear-gradient(110deg,
var(--live-gradient-start, var(--boot-brand-start)) 0,
var(--live-gradient-mid, var(--boot-brand-mid)) 48%,
var(--live-gradient-end, var(--boot-brand-end)) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
-webkit-text-fill-color: transparent;
animation: app-boot-wordmark-breathe 2.8s ease-in-out infinite;
}
#app-boot-overlay .app-boot-wordmark:after {
content: "RustPad";
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(100deg,
transparent 35%, hsla(0, 0%, 100%, .7) 50%, transparent 65%);
background-size: 250% 100%;
background-position: 100%;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
-webkit-text-fill-color: transparent;
animation: app-boot-wordmark-shine 3.1s ease-in-out infinite;
}
#app-boot-overlay .app-boot-brand:after {
content: "";
position: absolute;
bottom: 0;
left: 12%;
width: 76%;
height: 2px;
border-radius: 50px;
background: linear-gradient(90deg, transparent, var(--boot-accent), transparent);
opacity: .75;
transform: scaleX(.35);
animation: app-boot-brand-underline 2.8s ease-in-out infinite;
}
#app-boot-overlay h2 {
margin: 0 0 9px;
font-size: 21px;
font-weight: 720;
letter-spacing: -.035em;
color: var(--boot-text);
}
#app-boot-overlay #app-boot-stage {
margin: 0 0 23px;
color: var(--boot-muted);
min-height: 22px;
}
#app-boot-overlay .app-boot-track {
height: 6px;
overflow: hidden;
border-radius: 100px;
background: var(--boot-border);
}
#app-boot-overlay #app-boot-progress-fill {
height: 100%;
width: 0;
background: var(--boot-accent);
border-radius: inherit;
transition: width .14s ease;
}
#app-boot-overlay #app-boot-count {
margin: 10px 0 18px;
font-size: 12px;
color: var(--boot-muted);
overflow-wrap: anywhere;
}
#app-boot-overlay .app-boot-steps {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 7px;
padding: 0;
margin: 0;
list-style: none;
}
#app-boot-overlay .app-boot-steps li {
padding: 4px 8px;
border: 1px solid var(--boot-border);
border-radius: 7px;
font-size: 10px;
color: var(--boot-muted);
background: var(--boot-panel);
}
#app-boot-overlay .app-boot-steps li[data-status=done] {
color: var(--boot-accent);
border-color: var(--boot-accent);
}
#app-boot-overlay .app-boot-steps li[data-status=active] {
color: var(--boot-text);
}
#app-boot-overlay #app-boot-retry {
margin-top: 18px;
padding: 10px 18px;
border: 1px solid var(--boot-accent);
border-radius: 8px;
background: var(--boot-panel);
color: var(--boot-text);
cursor: pointer;
}
#app-boot-overlay #app-boot-retry[hidden] {
display: none;
}
@keyframes app-boot-wordmark-breathe {
0%,
to {
transform: translateY(0);
}
50% {
transform: translateY(-2px);
}
}
@keyframes app-boot-wordmark-shine {
0%,
20% {
background-position: 100%;
}
70%,
to {
background-position: -100%;
}
}
@keyframes app-boot-brand-underline {
0%,
to {
transform: scaleX(.35);
opacity: .4;
}
50% {
transform: scaleX(1);
opacity: .85;
}
}
#app-boot-overlay.has-error .app-boot-brand:after,
#app-boot-overlay.has-error .app-boot-wordmark,
#app-boot-overlay.has-error .app-boot-wordmark:after {
animation: none;
}
@media(prefers-reduced-motion:reduce) {
#app-boot-overlay,
#app-boot-overlay #app-boot-progress-fill {
transition: none;
}
#app-boot-overlay .app-boot-brand:after,
#app-boot-overlay .app-boot-wordmark,
#app-boot-overlay .app-boot-wordmark:after {
animation: none;
}
}