{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"motion-tokens","type":"registry:lib","title":"Motion tokens","description":"The kit's motion tokens for motion/react, which takes numbers, not CSS variables. They mirror globals.css in","dependencies":[],"registryDependencies":[],"files":[{"path":"registry/dashral/lib/motion-tokens.ts","type":"registry:file","target":"components/dashral/lib/motion-tokens.ts","content":"// The kit's motion tokens for motion/react, which takes numbers, not CSS variables. They mirror globals.css in\n// @dashral/ui (--duration-*, --ease-*): change one, change the other. Durations are in seconds, as motion/react has\n// them; eases are the same cubic-bezier points.\n\nexport const duration = {\n  /** --duration-fast: hovers, presses, color changes. */\n  fast: 0.16,\n  /** --duration-standard: menus, popovers, toggles. */\n  standard: 0.24,\n  /** --duration-considered: sliding highlights, panels, things that travel. */\n  considered: 0.48,\n} as const\n\nexport const ease = {\n  /** --ease-standard: things already on screen moving or changing. */\n  standard: [0.2, 0, 0, 1],\n  /** --ease-enter: arriving, fast then settling. */\n  enter: [0, 0, 0, 1],\n  /** --ease-exit: leaving, gathering speed. */\n  exit: [0.3, 0, 1, 1],\n} as const satisfies Record<string, readonly [number, number, number, number]>\n\nexport const spring = {\n  /** A press and its release: quick, and it never overshoots, so a button doesn't wobble under the finger. */\n  press: { type: \"spring\", visualDuration: 0.16, bounce: 0 },\n  /** Sizes and positions following new content (a label changing): the considered glide, without overshoot. */\n  glide: { type: \"spring\", visualDuration: 0.48, bounce: 0 },\n  /** Something moving to a new place on screen (a tab's highlight, a switch's thumb): a touch of overshoot to settle. */\n  move: { type: \"spring\", visualDuration: 0.4, bounce: 0.12 },\n  /** A menu, popover, tooltip or dialog arriving: --duration-standard with a hint of overshoot, quick to settle. */\n  appear: { type: \"spring\", visualDuration: 0.24, bounce: 0.1 },\n  /** --ease-spring: a small overshoot, for something arriving that should feel alive (an icon popping in). */\n  pop: { type: \"spring\", visualDuration: 0.48, bounce: 0.15 },\n} as const\n"}]}