Feedbackloadingspinner
Neon Spinner
Circular loading spinner with glowing neon aura.
Live Preview
Usage
Copy and paste this code into your React component:
tsx
import { NeonSpinner } from 'react-component-kit-ui/feedback';
<NeonSpinner size="lg" color="#d4a017" />Manual Installation
If you are not using the npm package, create a new file and paste the following code: src/components/NeonSpinner.tsx + NeonSpinner.css:
NeonSpinner.tsx
'use client';
import type { CSSProperties, HTMLAttributes } from 'react';
import './NeonSpinner.css';
/**
* NeonSpinner โ A sleek, glowing loading spinner with customizable color and size.
*
* @param color - Optional. Default 'var(--c-primary, #6366f1)'.
* @param size - Optional. 'sm' | 'md' | 'lg'. Default 'md'.
* @param label - Optional. Accessible label. Default 'Loading'.
*/
export interface NeonSpinnerProps extends HTMLAttributes<HTMLDivElement> {
color?: string;
size?: 'sm' | 'md' | 'lg';
label?: string;
}
const dimensions = { sm: '24px', md: '40px', lg: '64px' };
export function NeonSpinner({ color = 'var(--c-primary, #6366f1)', size = 'md', label = 'Loading', className, style, ...rest }: NeonSpinnerProps) {
return (
<div
role="status"
aria-label={label}
{...rest}
className={['neon-spinner', className].filter(Boolean).join(' ')}
style={{ '--spinner-color': color, '--spinner-size': dimensions[size], ...style } as CSSProperties}
/>
);
}
export default NeonSpinner;NeonSpinner.css
/* NeonSpinner โ ported from astro-component-kit (feedback/NeonSpinner.astro) */
.neon-spinner {
width: var(--spinner-size);
height: var(--spinner-size);
border: 3px solid var(--c-bg-elev, #111);
border-top-color: var(--spinner-color);
border-radius: var(--r-full, 50%);
animation: neon-spinner-neon-spin 0.8s linear infinite;
filter: drop-shadow(0 0 5px var(--spinner-color));
}
@keyframes neon-spinner-neon-spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}Quick Info
- Category
- Feedback
- Filename
NeonSpinner.tsx- Dependencies
- None โ pure React + CSS
- Tags
- loadingspinner