Files
openchamber/packages/ui/src/styles/fireworks.css
T
Bohdan Triapitsyn 10851bd7ac feat: move projects to sidebar rail and speed up session switching (#506)
* feat: move projects from header tabs to left sidebar rail

* refactor: remove variant from git generation session context

* feat: implemented drandrop action for navrails

* refactor: improve sidebar drag-and-drop smoothness and remove floating overlay

* fix: prevent mobile nav rail touch from closing drawer and opening menu

* fix: hide header tabs on desktop

* fix: prevent session flicker when switching projects

* style: soften chat panel divider borders

* style: improve icon contrast across core navigation

* fix: stabilize session selection during project switching

* style: unify sidebar surfaces and transparent section layers

* style: remove UI shadows and keep only scroll shadow

* perf: speed up project switching with cached session loading

* perf: speed up Git changes view and background refresh

* perf: make session switching lighter and less aggressive

* perf: optimized sessions list loading while project switching

* perf: smooth chat rendering and reduce interaction spikes

* fix: restore reliable load older messages visibility
2026-02-25 14:32:23 +02:00

77 lines
1.5 KiB
CSS

:root {
--fireworks-duration-ms: 900ms;
}
.fireworks-overlay {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 70;
overflow: hidden;
mix-blend-mode: normal;
}
.dark .fireworks-overlay {
mix-blend-mode: screen;
}
.fireworks-overlay[data-muted="true"] {
display: none;
}
.firework-burst {
position: absolute;
top: var(--burst-y, 50%);
left: var(--burst-x, 50%);
width: 1px;
height: 1px;
}
.firework-particle {
position: absolute;
width: var(--particle-size, 6px);
height: var(--particle-size, 6px);
border-radius: 999px;
background: var(--firework-color, var(--status-success));
opacity: 0;
transform: translate(-50%, -50%) scale(0.4);
animation: firework-pop var(--firework-duration, var(--fireworks-duration-ms)) ease-out forwards;
animation-delay: calc(var(--burst-delay, 0ms) + var(--particle-delay, 0ms));
}
.firework-particle::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 2px;
height: 2px;
background: currentColor;
border-radius: inherit;
transform: translate(-50%, -50%);
opacity: 0.5;
}
@keyframes firework-pop {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0.4);
}
10% {
opacity: 1;
}
70% {
opacity: 0.95;
}
100% {
opacity: 0;
transform: translate(calc(-50% + var(--translate-x, 0px)), calc(-50% + var(--translate-y, 0px))) scale(0);
}
}
@media (prefers-reduced-motion: reduce) {
.fireworks-overlay {
display: none;
}
}