feat(empty-states): add undraw illustrations to empty state screens
Add brand-orange recolored SVG illustrations from undraw to five empty states: sites list, dashboard chart, funnels, journeys, and behavior.
This commit is contained in:
@@ -177,9 +177,11 @@ export default function FrustrationTable({
|
||||
</>
|
||||
) : (
|
||||
<div className="h-full flex flex-col items-center justify-center text-center px-6 py-8 gap-4">
|
||||
<div className="rounded-full bg-neutral-100 dark:bg-neutral-800 p-4">
|
||||
<CursorClick className="w-8 h-8 text-neutral-500 dark:text-neutral-400" />
|
||||
</div>
|
||||
<img
|
||||
src="/illustrations/blank-canvas.svg"
|
||||
alt="No frustration signals"
|
||||
className="w-44 h-auto mb-1"
|
||||
/>
|
||||
<h4 className="font-semibold text-neutral-900 dark:text-white">
|
||||
No {title.toLowerCase()} detected
|
||||
</h4>
|
||||
|
||||
@@ -414,7 +414,12 @@ export default function Chart({
|
||||
</div>
|
||||
|
||||
{!hasData || !hasAnyNonZero ? (
|
||||
<div className="flex h-96 flex-col items-center justify-center gap-2">
|
||||
<div className="flex h-96 flex-col items-center justify-center gap-3">
|
||||
<img
|
||||
src="/illustrations/no-data.svg"
|
||||
alt="No data available"
|
||||
className="w-48 h-auto mb-2"
|
||||
/>
|
||||
<p className="text-sm text-neutral-400 dark:text-neutral-500">
|
||||
{!hasData ? 'No data for this period' : `No ${METRIC_CONFIGS.find((m) => m.key === metric)?.label.toLowerCase()} recorded`}
|
||||
</p>
|
||||
|
||||
@@ -556,9 +556,11 @@ export default function ColumnJourney({
|
||||
if (!transitions.length) {
|
||||
return (
|
||||
<div className="h-[400px] flex flex-col items-center justify-center text-center px-6 py-8 gap-3">
|
||||
<div className="rounded-full bg-neutral-100 dark:bg-neutral-800 p-4">
|
||||
<TreeStructure className="w-8 h-8 text-neutral-500 dark:text-neutral-400" />
|
||||
</div>
|
||||
<img
|
||||
src="/illustrations/journey.svg"
|
||||
alt="No journey data"
|
||||
className="w-52 h-auto mb-2"
|
||||
/>
|
||||
<h4 className="font-semibold text-neutral-900 dark:text-white">
|
||||
No journey data yet
|
||||
</h4>
|
||||
|
||||
@@ -135,7 +135,15 @@ export default function SiteList({ sites, siteStats, loading, onDelete }: SiteLi
|
||||
|
||||
if (sites.length === 0) {
|
||||
return (
|
||||
<div className="rounded-lg border border-dashed border-neutral-300 dark:border-neutral-700 p-12 text-center">
|
||||
<div className="rounded-2xl border border-dashed border-neutral-300 dark:border-neutral-700 p-12 text-center flex flex-col items-center">
|
||||
<Image
|
||||
src="/illustrations/setup-analytics.svg"
|
||||
alt="Set up your first site"
|
||||
width={280}
|
||||
height={210}
|
||||
className="mb-6"
|
||||
unoptimized
|
||||
/>
|
||||
<h3 className="text-lg font-semibold text-neutral-900 dark:text-white">No sites yet</h3>
|
||||
<p className="mt-2 text-sm text-neutral-500 dark:text-neutral-400 mb-4">Create your first site to get started.</p>
|
||||
<Link href="/sites/new">
|
||||
|
||||
Reference in New Issue
Block a user