# P calendar 10

> Calendar with rounded range selection style

A shadcn/ui block from the [@coss](https://coss.com/ui) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/coss/p-calendar-10).

- Page, with a live preview: https://shadcn.exchange/r/coss/p-calendar-10
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/coss/p-calendar-10-light-ac60343e29dbc555.png
- Registry item: https://coss.com/ui/r/p-calendar-10.json
- Categories: calendar
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://coss.com/ui/r/p-calendar-10.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `date-fns`
- Registry items: `@coss/calendar`

## Files

### `registry/default/particles/p-calendar-10.tsx`

```tsx
"use client";

import type { DateRange } from "@daypicker/react";
import { addDays } from "date-fns";
import { useState } from "react";
import { Calendar } from "@/registry/default/ui/calendar";

export default function Particle() {
  const today = new Date();
  const [date, setDate] = useState<DateRange | undefined>({
    from: today,
    to: addDays(today, 3),
  });

  return (
    <Calendar
      classNames={{
        day: "relative before:absolute before:inset-y-px before:inset-x-0 [&.range-start:not(.range-end):before]:bg-linear-to-end before:from-transparent before:from-50% before:to-accent before:to-50% [&.range-end:not(.range-start):before]:bg-linear-to-start",
        day_button:
          "rounded-full group-[.range-start:not(.range-end)]:rounded-e-full group-[.range-end:not(.range-start)]:rounded-s-full",
      }}
      mode="range"
      onSelect={setDate}
      selected={date}
    />
  );
}
```
