NeonKit
esc
  • IntroductionGetting started
  • InstallationGetting started
  • ThemingGetting started
  • Use with AIGetting started
  • All componentsGetting started
  • ButtonSolid, outline, soft, ghost and link buttons that light up on hover.Forms
  • InputText field with an animated neon focus ring, icons, labels and error states.Forms
  • TextareaMulti-line field that grows with its content and counts characters.Forms
  • SelectKeyboard-friendly listbox with a glowing popover and typeahead.Forms
  • CheckboxCheckbox with a drawn-on checkmark and indeterminate state.Forms
  • Radio GroupSingle choice from a set, with arrow-key navigation and card layouts.Forms
  • SwitchA toggle that powers on like a neon tube.Forms
  • SliderPointer and keyboard slider with a glowing track and optional range.Forms
  • OTP InputOne-time code input with auto-advance, paste and backspace handling.Forms
  • BadgeStatus labels with optional live dot and remove button.Data Display
  • AvatarProfile image with initials fallback, status light and stacked groups.Data Display
  • CardSurface with header, content and footer slots and a lit edge.Data Display
  • KbdKeyboard keys and shortcuts that glow when pressed.Data Display
  • TabsTabbed panels with a sliding light indicator and roving focus.Data Display
  • AccordionCollapsible sections with smooth height animation.Data Display
  • ProgressLinear and circular progress with a moving highlight.Feedback
  • SpinnerRing, dots and bars loaders in any neon color.Feedback
  • SkeletonLoading placeholders with a scanning shimmer.Feedback
  • AlertInline messages for info, success, warning and errors.Feedback
  • ToastStacked notifications with a tiny toast() API. No provider needed.Feedback
  • DialogAccessible modal built on the native dialog element.Overlay
  • TooltipHover and focus hints on four sides.Overlay
  • Neon TextText rendered as a glowing tube sign, with optional power-on flicker.Effects
  • Border BeamA beam of light that travels around any element's border.Effects
  • Spotlight CardCard whose border and surface light up under the cursor.Effects
  • Retro GridSynthwave perspective grid that scrolls toward the horizon.Effects

Getting started

Introduction

NeonKit is 26 React components for dark interfaces, lit like signage after hours. You don't install it as a dependency. You add the files you want and they become part of your project.

01

You own the code

There is no package to update and no wrapper to fight. Each component is one file in your repo. Change anything.

02

One variable sets the color

Every component reads --neon. Pass color, set it on a parent, or leave it and get cyan.

03

Glow means something

Resting UI stays calm. Light shows up for focus, selection, hover and progress, so it carries meaning.

04

Works where you are

React 18 or 19, Tailwind 3.4 or 4, Next.js, Vite, Remix. Native elements and keyboard support come first.

How it works#

Add a component with the shadcn CLI or paste its source. It lands in components/ui next to two tiny helpers: cn for merging classes and neonVars for color.

import { Button } from "@/components/ui/button"
import { Switch } from "@/components/ui/switch"

export function Settings() {
  return (
    <div className="flex items-center gap-4">
      <Switch defaultChecked />           {/* cyan, the default */}
      <Button color="magenta">Save</Button> {/* a palette name */}
      <Button color="#ff6a00">Export</Button> {/* or any hex */}
    </div>
  )
}

Why not a package?#

UI libraries tend to end up as a pile of overrides. When the code lives in your repo, you edit the component itself, and you can see every class it ships with. It's the same idea as shadcn/ui, and NeonKit plugs into its CLI, so the two sit side by side.