Spring Calendar

An animated calendar widget that expands to reveal events and features smooth, spring‑based Motion‑V transitions.

API

Prop NameTypeDefaultDescription
calendarDataArray<{ month: string; date: number; day: string; events?: { title: string; day: string; time: string }[] }>Array defining each calendar day and its optional events. Required.
initialIndexnumber0Day index initially selected.

Emits

EventPayloadDescription
update:activeIndexnumberFires when a day button is clicked, emitting the new active index.

Install using CLI

npm
pnpm
bun
yarn
npx shadcn-vue@latest add "https://inspira-ui.com/r/spring-calendar.json"

Install Manually

Copy and paste the following code

SpringCalendar.vue
TextMorph.vue

Features

  • Spring Animations — Uses MotionConfig to apply realistic spring/bounce transitions when height changes.
  • Dynamic Height — The outer card automatically grows to fit event listings.
  • TextMorph Integration — Day labels morph smoothly via the TextMorph sub‑component.
  • Interactive Day Picker — Clickable day chips with hover/press scale effects.
  • Responsive Layout — Flexbox layout that wraps chips and events neatly.

Credits