Docs
Sleep Tracker
An elegant sleep tracker for your use
Loading...
Installation
CLI
pnpm dlx shadcn@latest add https://animata.design/r/widget/sleep-tracker.json
Manual
Install dependencies
This uses BarChart for the bar graph. Install it by following the instructions here.
Run the following command
It will create a new file called sleep-tracker.tsx inside the components/animata/widget directory.
mkdir -p components/animata/widget && touch components/animata/widget/sleep-tracker.tsxPaste the code
Open the newly created file and paste the following code:
"use client";
import BarChart from "@/animata/graphs/bar-chart";
interface ISleepTrackerProps {
items: {
progress: number;
label: string;
className?: string;
containerClassName?: string;
}[];
image: string;
}
export const testSleepTrackerProps: ISleepTrackerProps = {
items: [
{
label: "A",
progress: 45,
className: "rounded-md dark:bg-blue-400/45 bg-blue-600/45",
},
{
label: "B",
progress: 25,
className: "rounded-md dark:bg-blue-400/25 bg-blue-600/25",
},
{
label: "C",
progress: 15,
className: "rounded-md dark:bg-blue-400/15 bg-blue-600/15",
},
{
label: "B",
progress: 10,
className: "rounded-md dark:bg-blue-400/20 bg-blue-600/20",
},
{
label: "C",
progress: 15,
className: "rounded-md dark:bg-blue-300/15 bg-blue-600/15",
},
{
label: "D",
progress: 30,
className: "rounded-md dark:bg-blue-300/30 bg-blue-600/30",
},
{
label: "E",
progress: 70,
className: "rounded-md dark:bg-blue-300/70 bg-blue-600/70",
},
{
label: "A",
progress: 45,
className: "rounded-md dark:bg-blue-300/45 bg-blue-600/45",
},
{
label: "B",
progress: 10,
className: "rounded-md dark:bg-blue-300/20 bg-blue-600/20",
},
{
label: "C",
progress: 15,
className: "rounded-md dark:bg-blue-300/15 bg-blue-600/15",
},
{
label: "B",
progress: 10,
className: "rounded-md dark:bg-blue-300/20 bg-blue-600/20",
},
{
label: "B",
progress: 10,
className: "rounded-md dark:bg-blue-300/20 bg-blue-600/20",
},
{
label: "B",
progress: 10,
className: "rounded-md dark:bg-blue-300/20 bg-blue-600/20",
},
{
label: "C",
progress: 85,
className: "rounded-md dark:bg-blue-300/85 bg-blue-600/85",
},
{
label: "D",
progress: 90,
className: "rounded-md dark:bg-blue-300/90 bg-blue-600/90",
},
{
label: "E",
progress: 15,
className: "rounded-md dark:bg-blue-300/15 bg-blue-600/15",
},
],
image:
"https://plus.unsplash.com/premium_photo-1675107359574-e3ba5f47a1a2?q=80&w=1287&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
};
export default function SleepTracker({
items = testSleepTrackerProps.items,
image = testSleepTrackerProps.image,
}: ISleepTrackerProps) {
return (
<div className="flex size-52 flex-col justify-evenly rounded-3xl border border-gray-200 bg-white p-4 dark:border-zinc-700 dark:bg-slate-800">
<div className="mb-2 flex flex-row items-center gap-3">
<div className="icon flex h-4 w-4 items-center justify-center rounded-full bg-red-50">
<div className="inner-icon h-2 w-2 rounded-full bg-red-500"></div>
</div>
<p className="text-sm text-gray-600 dark:text-white">Sleep Tracker</p>
</div>
<img className="h-16 w-full rounded-xl object-cover" src={image} alt="Sleep Tracker" />
<BarChart className="pt-1" items={items} height={40} />
<div className="activity mt-2 flex flex-row justify-between text-sm">
<p className="text-primary opacity-70">Activity</p>
<p className="text-muted-foreground">
<strong>32m</strong> ago
</p>
</div>
</div>
);
}Credits
Built by Aadarsh Baral yevhenyurchuk