fix: sticky header on overview
This commit is contained in:
@@ -32,19 +32,21 @@ function ProjectDashboard() {
|
|||||||
const { projectId } = Route.useParams();
|
const { projectId } = Route.useParams();
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="col gap-2 p-4">
|
<div className="sticky-header -top-px!">
|
||||||
<div className="flex justify-between gap-2">
|
<div className="col gap-2 p-4">
|
||||||
<div className="flex gap-2">
|
<div className="flex justify-between gap-2">
|
||||||
<OverviewRange />
|
<div className="flex gap-2">
|
||||||
<OverviewInterval />
|
<OverviewRange />
|
||||||
<OverviewFilterButton mode="events" />
|
<OverviewInterval />
|
||||||
</div>
|
<OverviewFilterButton mode="events" />
|
||||||
<div className="flex gap-2">
|
</div>
|
||||||
<LiveCounter projectId={projectId} />
|
<div className="flex gap-2">
|
||||||
<OverviewShare projectId={projectId} />
|
<LiveCounter projectId={projectId} />
|
||||||
|
<OverviewShare projectId={projectId} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<OverviewFiltersButtons />
|
||||||
</div>
|
</div>
|
||||||
<OverviewFiltersButtons />
|
|
||||||
</div>
|
</div>
|
||||||
<div className="grid grid-cols-6 gap-4 p-4 pt-0">
|
<div className="grid grid-cols-6 gap-4 p-4 pt-0">
|
||||||
<OverviewMetrics projectId={projectId} />
|
<OverviewMetrics projectId={projectId} />
|
||||||
|
|||||||
@@ -104,24 +104,26 @@ function RouteComponent() {
|
|||||||
<LoginNavbar className="relative p-4" />
|
<LoginNavbar className="relative p-4" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div className="">
|
<div className="sticky-header [animation-range:50px_100px]!">
|
||||||
<div className="mx-auto max-w-7xl justify-between row gap-4 p-4 pb-0">
|
<div className="p-4 col gap-2 mx-auto max-w-7xl">
|
||||||
<div className="flex gap-2">
|
<div className="row justify-between">
|
||||||
<OverviewRange />
|
<div className="flex gap-2">
|
||||||
</div>
|
<OverviewRange />
|
||||||
<div className="flex gap-2">
|
</div>
|
||||||
<LiveCounter projectId={projectId} />
|
<div className="flex gap-2">
|
||||||
|
<LiveCounter projectId={projectId} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<OverviewFiltersButtons />
|
||||||
</div>
|
</div>
|
||||||
<OverviewFiltersButtons />
|
</div>
|
||||||
<div className="mx-auto grid max-w-7xl grid-cols-6 gap-4 p-4">
|
<div className="mx-auto grid max-w-7xl grid-cols-6 gap-4 p-4">
|
||||||
<OverviewMetrics projectId={projectId} />
|
<OverviewMetrics projectId={projectId} />
|
||||||
<OverviewTopSources projectId={projectId} />
|
<OverviewTopSources projectId={projectId} />
|
||||||
<OverviewTopPages projectId={projectId} />
|
<OverviewTopPages projectId={projectId} />
|
||||||
<OverviewTopDevices projectId={projectId} />
|
<OverviewTopDevices projectId={projectId} />
|
||||||
<OverviewTopEvents projectId={projectId} />
|
<OverviewTopEvents projectId={projectId} />
|
||||||
<OverviewTopGeo projectId={projectId} />
|
<OverviewTopGeo projectId={projectId} />
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -373,4 +373,30 @@ button {
|
|||||||
.scrollarea-content:hover::-webkit-scrollbar-thumb,
|
.scrollarea-content:hover::-webkit-scrollbar-thumb,
|
||||||
.scrollarea-content:active::-webkit-scrollbar-thumb {
|
.scrollarea-content:active::-webkit-scrollbar-thumb {
|
||||||
background: rgba(0, 0, 0, 0.4); /* darken on hover/scroll */
|
background: rgba(0, 0, 0, 0.4); /* darken on hover/scroll */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scroll-driven animation for sticky header */
|
||||||
|
@keyframes sticky-shadow {
|
||||||
|
0% {
|
||||||
|
box-shadow: none;
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
||||||
|
border-bottom-color: var(--color-border);
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
background-color: var(--color-def-100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky-header {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 10;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
animation: sticky-shadow linear both;
|
||||||
|
animation-timeline: scroll();
|
||||||
|
animation-range: 0 1px;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user