comet-spinner
loading-ui/comet-spinnerFreeComponent
@loading-ui publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by @loading-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://loading-ui.com/r/comet-spinner.jsonSource
1import { cn } from "@/lib/utils";23const SHADOW_ANIMATION = "loading-ui-comet-shadow";4const ROTATION_ANIMATION = "loading-ui-comet-rotation";56type CometSpinnerProps = React.ComponentProps<"span"> & {7 headScale?: number;8 radiusScale?: number;9};1011function clamp(value: number, min: number, max: number) {12 return Math.min(Math.max(value, min), max);13}1415function CometSpinner({16 className,17 style,18 headScale = 0.2,19 radiusScale = 0.83,20 ...props21}: CometSpinnerProps) {22 const safeHeadScale = clamp(headScale, 0.08, 0.35);23 const safeRadiusScale = clamp(radiusScale, 0.3, 1.1);24 const cometStyle = {25 ...style,26 "--loading-ui-comet-head": `${(safeHeadScale * 100).toFixed(2)}cqmin`,27 "--loading-ui-comet-radius": `${(safeRadiusScale * 100).toFixed(2)}cqmin`,28 } as React.CSSProperties;2930 return (31 <>32 <style>{`33 @keyframes ${SHADOW_ANIMATION} {34 0% {35 box-shadow:36 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2),37 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.1),38 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.2),39 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.3),40 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.385);41 }4243 5%,44 95% {45 box-shadow:46 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2),47 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.1),48 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.2),49 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.3),50 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2.385);51 }5253 10%,54 59% {55 box-shadow:56 0 calc(var(--loading-ui-comet-radius) * -1) 0 calc(var(--loading-ui-comet-head) * -2),57 calc(var(--loading-ui-comet-radius) * -0.105) calc(var(--loading-ui-comet-radius) * -0.994) 0 calc(var(--loading-ui-comet-head) * -2.1),58 calc(var(--loading-ui-comet-radius) * -0.208) calc(var(--loading-ui-comet-radius) * -0.978) 0 calc(var(--loading-ui-comet-head) * -2.2),59// … truncated
Files it writes
More from @loading-ui
All 50 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordion-loaderaccordion-loader | @loading-ui | Components | Free | no deps | |
| analyzing-imageanalyzing-image | @loading-ui | Components | Free | 1 dep | |
| arcarc | @loading-ui | Components | Free | no deps | |
| barsbars | @loading-ui | Components | Free | no deps | |
| bobbing-dotsbobbing-dots | @loading-ui | Components | Free | 1 dep | |
| bouncing-dotsbouncing-dots | @loading-ui | Components | Free | no deps | |
| classicclassic | @loading-ui | Components | Free | no deps | |
| clock-ringclock-ring | @loading-ui | Components | Free | no deps |
