HomeBookmarks
ns-uins-ui
ns-ui

ns-ui

NSby nikolas-sapa
76components532.3Kviews1.3Kbookmarks

Installs all 400 components. Without our CLI, run instead.

Auto-indexed

ns-ui contents

  • Vortex Street Hero

    Vortex Street Hero

  • Text ASCII CascadeText ASCII Cascade

    Text ASCII Cascade

  • Hero Recursive TypeHero Recursive Type

    Hero Recursive Type

  • Dye Whorl

    Dye Whorl

  • Hero ASCII TunnelHero ASCII Tunnel

    Hero ASCII Tunnel

  • Hero Burin HatchHero Burin Hatch

    Hero Burin Hatch

  • Bitplane Cascade

    Bitplane Cascade

  • Blade Stop

    Blade Stop

  • Toast Gravity StackToast Gravity Stack

    Toast Gravity Stack

  • Tree Box DrawingTree Box Drawing

    Tree Box Drawing

  • TOC Minimap MercuryTOC Minimap Mercury

    TOC Minimap Mercury

  • Background Gradient ShaderBackground Gradient Shader

    Background Gradient Shader

  • Text Card FlickText Card Flick

    Text Card Flick

  • Split Pane WeightedSplit Pane Weighted

    Split Pane Weighted

  • Seal Roll TestimonialsSeal Roll Testimonials

    Seal Roll Testimonials

  • Shear Band Range SliderShear Band Range Slider

    Shear Band Range Slider

  • Vernier Caliper SliderVernier Caliper Slider

    Vernier Caliper Slider

  • Scrubber Film StripScrubber Film Strip

    Scrubber Film Strip

  • Running BelayRunning Belay

    Running Belay

  • Post List ASCII IndexPost List ASCII Index

    Post List ASCII Index

  • Pole ShyPole Shy

    Pole Shy

  • Pendulum Sync LoaderPendulum Sync Loader

    Pendulum Sync Loader

  • Hover Card DwellHover Card Dwell

    Hover Card Dwell

  • Hero Long Exposure

    Hero Long Exposure

  • About ns-ui

    ns-ui publishes a shadcn registry at design.helpmarq.com, with 400 components installable through the shadcn CLI.

    Components
    400
    GitHub stars
    33
    Last commit
    Oct 21, 2026
    Repository
    nikolas-sapa/ns-ui

    Also in the ns-ui registry

    Copy a prompt for your agent, copy the install command, or open the docs that ship it.

    • accordion-latch

    • adhesive-squeeze-bead

    • agar-starve

    • airlift-slug-flow

    • announcement-bar-relay

    • approval-inline-diff

    • arc-ladder-climb

    • ascii-engraving-contour

    • ascii-knot-volumetric

    • ascii-torus-donut

    • aspheric-turn-spiral

    • autosave-ratchet

    • avatar-stack-flock

    • back-bearing

    • background-ascii-caustics

    • background-ascii-domain-walls

    • background-capillary-wick

    • background-engine-turn-guilloche

    • background-halftone-rosette

    • background-lloyd-relax

    • background-text-branch-canopy

    • badge-unread-tarnish

    • banner-tear-stub

    • barograph-drum-week

    • bed-fluidize

    • bias-hysteresis

    • bitting-cut

    • blast-hole-delay-sequence

    • board-kanban-ascii-wip

    • bobbin-lace-pricking

    • bombe-drum-halt

    • border-electric-arc

    • bowditch-close

    • boxplot-ascii-whisker

    • brass-check

    • braze-capillary-fill

    • breadcrumb-overflow-menu

    • brine-float

    • brinicle-descent

    • button-cooldown-heat

    • button-glass

    • button-retry-backoff

    • caddisfly-case-assembly

    • capstan-slip

    • carbon-ply-fade

    • card-dot-gain-screen

    • card-number-emboss

    • carousel-card-riffle

    • catenary-contact-stagger

    • cathode-stack-glow

    • chain-scale

    • chargen-rom-slice

    • chart-bar-dither

    • chart-funnel-stage-drop

    • chart-line-dither

    • chart-ridgeline-terrain

    • chart-scatter-ascii-bin

    • chart-waterfall-ascii-step

    • checkbox-domino-run

    • checkbox-ink-stroke

    • checkbox-tally-notch

    • citation-grounding-gap

    • citation-grounding-hatch

    • citation-inline-card

    • clock-card

    • cmm-probe-touch

    • cockle-swell

    • command-palette-orbit

    • command-palette-rotary

    • compare-crack-seam

    • compare-table-reach-rule

    • confidence-logprob-hatch

    • confirm-hold-ink

    • confirm-hold-wax

    • confirm-slide-shatter

    • consent-scope-redact

    • contact-form-teletype

    • container-box-drawing

    • context-compaction-river

    • context-menu-unfold

    • context-prompt-shims

    • contra-strike

    • copy-button-travel

    • copy-field-crimp

    • counter-carry-ripple

    • crack-arrest-hole

    • crack-polygon-order

    • craze-rule

    • crease-fall

    • creep-span

    • crimp-barrel-set

    • crossfoot-gap

    • cruet-settle

    • curd-cut-whey

    • cursor-sixel-reveal

    • cursor-subpixel-fringe

    • curtain-austrian-gather

    • curtain-leader-countdown

    • curtain-tab-diagonal

    • curtain-traveler-draw

    • cylinder-hillndale

    • damask-float

    • date-picker-moon

    • date-range-tape

    • decatron-step-ring

    • delta-frame-macroblock

    • device-mockup-ascii-screen

    • dew-coalesce

    • diagram-ascii-flow

    • dial-moire

    • dialog-emerge

    • diff-unified-viewer

    • divider-mosaic-split

    • divider-petscii-vu

    • divider-telephone-cord-delam

    • divider-teletext-mosaic

    • dock-cursor-magnify

    • dock-shelf-lean

    • drawer-counterweight

    • drill-down-spines

    • dropdown-drape

    • due-slip

    • ebb-flat

    • edge-burnish-glaze

    • edge-yield

    • edm-crater-field

    • eink-waveform-ghost

    • empty-state-dashed

    • empty-state-pegboard

    • empty-state-sonar

    • empty-state-survey

    • envelope-window

    • eval-regression-shear

    • event-stream-vapor

    • expansion-gap-breather

    • extrusion-die-cut

    • facer-stamp-flip

    • fax-line-slip

    • feature-grid-ascii-rule

    • feed-escapement

    • fiche-step-repeat

    • file-upload-seal

    • file-upload-thermal

    • film-gate-weave

    • filter-facet-mesh

    • flash-entrain

    • float-ribbon-draw

    • flyback-tear

    • flyball-throttle

    • flying-splice

    • foam-drain-coarsen

    • foil-block

    • footer-ascii-rule

    • forage-vein

    • frank-register

    • frazil-dam

    • fugitive-ink

    • fusee-cone

    • gallery-ascii-gradient-orientation

    • gallery-coverflow-caustic

    • gallery-gantry-track

    • galley-bracket

    • gantt-ascii-critical-path

    • gather-marver

    • gauge-capacity-waterline

    • git-graph-ascii-lanes

    • glaze-crawl-heal

    • glory-hole-cycle

    • gluten-windowpane

    • granule-churn

    • gravure-cell-wipe

    • grazing-light

    • grid-bento-ascii

    • grid-bento-dense

    • grid-magnetic-lattice

    • grinding-chatter-lobes

    • groove-pitch

    • growth-ring

    • guardrail-interlock-keys

    • hachure-fall

    • header-scroll-pill

    • heatmap-year-stipple

    • helicorder-line-wrap

    • hero-404-quadrant-occlusion

    • hero-ascii-lichtenberg

    • hero-ascii-shock-diamonds

    • hero-ascii-terrain

    • hero-ascii-wordmark

    • hero-beam-glyph

    • hero-chart-recorder

    • hero-cloth-type

    • hero-faraday-wave-cell

    • hero-glyph-silhouette-pack

    • hero-gravity-well

    • hero-isobar-contours

    • hero-letterpress-lockup

    • hero-penrose-inflate

    • hero-slice-comb

    • histogram-live-grain

    • honeycomb-draw

    • honing-crosshatch

    • idler-drop

    • image-crop-mat

    • index-contour

    • indicator-rack

    • input-focus-membrane

    • interlace-field-comb

    • jacquard-card-chain

    • jam-kickout-loop

    • joint-iron

    • jominy-quench

    • kamacite-etch

    • kelvin-wake

    • keymap-ascii-heat

    • knife-edge-rack-focus

    • knit-ladder-run

    • knot-capsize-cycle

    • kymograph-smoke-trace

    • lamina-dome

    • lcd-response-smear

    • leaven-crest-fall

    • lens-ascii-magnify

    • lenticule-swing

    • lining-wear

    • listbox-sticky-groups

    • loader-ascii-diffuse-fill

    • loader-braille

    • loader-die-tumble

    • loader-ink-blob

    • loader-iris

    • loader-loom-weave

    • loader-spirograph-trace

    • loader-spring-bars

    • loader-thread-spool

    • logo-cloud-settle

    • log-viewer-ascii-tail

    • lug-cage-tally

    • magazine-drop

    • magnetron-racetrack-sweep

    • mailbag-hook-exchange

    • manifold-bleed

    • map-choropleth-ascii

    • marquee-ticker-glyph

    • masonry-ascii-settle

    • melt-pond-drain

    • memory-ledger-decay

    • menu-nested-trays

    • mesh-lash

    • meter-context-window

    • meter-latency-capillary

    • meter-matrix-scan

    • meter-quota-meniscus

    • meter-quota-rule

    • meter-threshold-trip

    • millstone-furrow-flow

    • minimap-pantograph

    • mudflow-levee-build

    • mull-hinge

    • murmur-shear

    • nav-blue-noise-scrim

    • nav-condense-rail

    • nav-overstrike-typewriter

    • nav-site-condense

    • neon-tube-striation

    • network-packet-trace

    • newsletter-cadence-rail

    • night-store

    • nomogram-edge

    • not-found-attribute-clash

    • not-found-knockout

    • not-found-postmark

    • notification-bell-swing

    • offset-fountain-split

    • optimistic-stitch

    • orb-web-construction

    • otp-reel

    • overflow-chip-mux

    • pagination-dog-ear

    • pancake-lap

    • parison-inflate

    • passing-loop

    • password-strength-tide

    • patchbay-ascii-cable

    • pecked-ring

    • peen-coverage

    • photostat-reverse

    • picker-pareto-frontier

    • ping-shadow

    • pin-register

    • plasma-filament-wander

    • polyp-bud

    • popover-pendulum

    • press-register

    • pricing-scale

    • profilometer-trace

    • progress-hatch

    • progress-narrated

    • progress-nlq-overstrike

    • progress-telegraph-log

    • progress-wick

    • prompt-version-grain

    • punch-figure

    • punch-patch

    • queue-triage-ratchet

    • quoin-lockup

    • rack-seat

    • radio-ballot-drop

    • radio-group-pin

    • raft-moor

    • range-light-transit

    • rapid-wire

    • rating-stamp

    • redaction-hold-reveal

    • refresh-pull-flywheel

    • refusal-negotiation

    • remnant-cut

    • remontoire-rewind

    • reorder-drag-wake

    • retrieval-chunk-sieve

    • return-aviso

    • reveal-cloth-unfurl

    • reveal-ripple-tiles

    • rime-creep

    • ring-graze

    • ring-stain

    • ripple-migrate-slip

    • riso-drum-pass

    • roast-first-crack

    • roller-occlusion

    • rolling-shutter-skew

    • ropewalk-lay-twist

    • rosensweig-crest

    • rotor-window-bank

    • router-tier-cascade

    • routing-slip

    • rupert-snap

    • sand-lock

    • sankey-ascii-flow

    • schedule-ascii-freebusy

    • screen-flood-stroke

    • scroll-defrost

    • scroll-fine-register

    • scroll-particle-tunnel

    • scroll-story-strata

    • seam-gild

    • search-winnow

    • seatmap-ascii-pick

    From the ns-ui readme

    ns-ui

    <!-- generated:count start -->542<!-- generated:count end --> React components you install by URL, no package to depend on. Every one is

    built around a single interaction and gated by a Playwright suite that refuses to pass a component whose hover looks identical to its resting state.

    Install one:

    npx shadcn add https://design.helpmarq.com/r/gallery-coverflow-caustic.json
    

    Use it:

    import { CausticCoverflow } from "@/components/ui/gallery-coverflow-caustic";
    
    export default function Page() {
      return ;
    }
    

    Two collections. core (<!-- generated:core start -->416<!-- generated:core end -->) is restrained and production-facing, Geist-dark. loud (<!-- generated:loud start -->126<!-- generated:loud end -->) is a deliberately flashy showcase. Browse them live at design.helpmarq.com.

    hero-particles-webgl: a field that answers the cursorhero-isobar-contours: contour lines that bunch toward the CTA
    gallery-coverflow-caustic: drag to scrub, flick for momentumpicker-pareto-frontier: pick a point on a pareto frontier
    compare-crack-seam: the before/after divider is a fracture
    not-found-knockout: type carved out of the surface

    Install

    Prerequisites: Node and npm, and a project that shadcn has already configured, meaning it has a components.json at its root. If you do not have one, use the new-project path below first. Every command in this section was run end to end on Node v25.8.1 against shadcn@latest.

    Any shadcn-configured project, zero config:

    npx shadcn add https://design.helpmarq.com/r/.json
    

    Real output, from a project created by the new-project path below:

    - Checking registry.
    ✔ Checking registry.
    - Updating files.
    ✔ Created 1 file:
      - components/ui/gallery-coverflow-caustic.tsx
    - Updating app/globals.css
    ✔ Updating app/globals.css
    

    That drops the source at components/ui/.tsx and installs the component's npm dependencies. There is no ns-ui package and nothing to keep in sync. The code is yours to edit.

    New project, from an empty directory:

    npx shadcn init -d -n my-app
    cd my-app
    npx shadcn add https://design.helpmarq.com/r/gallery-coverflow-caustic.json
    

    -n is what makes this non-interactive. Without it, shadcn init has no project to configure and stops on a "What is your project named?" prompt. The flag scaffolds a Next.js app into my-app/, so the add runs from inside it. init also writes components/ui/button.tsx and lib/utils.ts of its own, which are shadcn's, not this registry's. Already in a configured project? Skip straight to npx shadcn add.

    The exported symbol is not the slug

    gallery-coverflow-caustic.tsx exports CausticCoverflow. Importing the slug-cased name is the first thing that breaks after a copy-paste install. Open the installed file and read its export lines, or ask the CLI:

    npx @nikolas.sapa/ns-ui info gallery-coverflow-caustic
    
    Gallery Coverflow Caustic  (gallery-coverflow-caustic)
    Gallery
    ...
    Props:
    items?: CausticCoverflowItem[] = DEFAULT_ITEMS
    initialIndex?: number
    cardWidth?: number = 264
    cardHeight?: number = 330
    className?: string
    aria-label?: string = "Coverflow gallery"
    
    Install: npx shadcn add https://design.helpmarq.com/r/gallery-coverflow-caustic.json
    

    Every prop on that component is optional, so `` with no props compiles. Checked with tsc --noEmit against a fresh install, clean. That is the house style, not a promise about every component in the registry: read the signature before assuming it for a different one.

    When install does not work

    Three failures, each reproduced by running it:

    It prints Select a component library and waits. You are in a directory that is not a shadcn project. The command does not error, it drops into an interactive prompt, which looks like a hang in any non-interactive shell or agent. Run the new-project path instead, or cd into the project that has components.json.

    The item at https://... was not found. It may not exist at the registry. The slug is wrong, not the registry. Find the real one with npx @nikolas.sapa/ns-ui search , or check the component's page on the site. The same error suggests trying an older shadcn, which is a red herring for this case.

    ℹ Skipped 1 file: (files might be identical, use --overwrite to overwrite). You already installed it. This is success, not failure. Pass --overwrite only if you want your local edits to that file discarded.

    npx installs an older version than the one published. If your npm has minimum-release-age set, a recent publish is filtered out and npx quietly resolves an older version rather than failing. Measured on this machine: npx @nikolas.sapa/ns-ui@latest --version printed 0.8.1 while 0.10.0 was the newest published version. Wait out the window or override the policy locally.

    For agents

    GET https://design.helpmarq.com/llms.txt
    

    One fetch returns the whole catalog as plain text: every component, its props, the situation it suits, and its exact install command. No tool definitions, no pagination. An agent that can make an HTTP request can pick the right component and install it in two steps.

    llms-full.txt at the same origin adds the full behavioral description per component, hand-written rather than derived from tags, for the cases where several components share a UI role and a model has to tell them apart.

    /registry.json serves the standard shadcn registry index for tools that expect it.

    Prefer tools over a one-time fetch (an agent working across a whole session, not just picking one component up front)? mcp/ is an MCP server over the same catalog: search_components, get_component (full prop signature + real source), list_categories, install_command, and get_conventions (the token/theming contract). npx -y @nikolas.sapa/ns-ui-mcp, stdio transport, per-client config at design.helpmarq.com/connect or mcp/README.md.

    There's also a thin CLI, cli/ (@nikolas.sapa/ns-ui): npx @nikolas.sapa/ns-ui add installs a component, search/list/info/ categories cover the rest of the catalog from a terminal. See cli/README.md.

    The gate

    scripts/verify.ts is why the registry stays small. It drives every component through headless Chromium, screenshots each state against each theme, and hard-fails on:

    • a console error, or a blank render
    • hover byte-identical to default, or focus identical to an unfocused baseline (an interaction that does not actually interact)
    • dark and light byte-identical (a component that ignored the theme)
    • an interactive control with no accessible name, role=switch|checkbox|radio without aria-checked, a visible dialog with no accessible name, or controls Tab cannot reach
    • a popover or menu that opens but lands clipped invisible behind an ancestor's overflow: hidden, caught by hit-testing the opened element rather than measuring its box

    The screenshots it produces are committed, so the claims above are auditable in the repo rather than asserted here.

    Run it locally

    npm install
    npm run dev            # / lists components, /components/ renders one
    

    Node 22.18 or newer (engines in package.json).

    The gate is a separate step and does not run against npm run dev. Turbopack serves corrupted chunks under the gate's parallel load, measured at 15 to 50 percent false failures against dev versus 0 of 12 against a production build. Build first, serve the build, then point verify at it:

    npm run build
    BASE_URL=http://localhost:3400 npm run verify           # every component
    BASE_URL=http://localhost:3400 npm run verify     # one component
    

    npm run verify runs node scripts/verify.ts. Run it that way, not with npx tsx scripts/verify.ts, which fails with __name is not defined. Full recipe, including the pm2 process that serves port 3400, is in docs/review-workflow.md.

    Environment variables

    Copy .env.example to .env and fill in what you need. Everything is optional locally. The app still runs and the email form still renders, it just returns an error on submit if the EmailOctopus vars are unset.

    VariablePurpose
    NEXT_PUBLIC_REGISTRY_ORIGINOverrides the public origin install commands and llms.txt resolve against. Defaults to https://design.helpmarq.com.
    EMAILOCTOPUS_API_KEYBearer key for the EmailOctopus v2 API, used by the email capture form (lib/actions/subscribe.ts). Server-only, never exposed to the client.
    EMAILOCTOPUS_LIST_IDThe EmailOctopus list contacts are added to.

    Adding a component means creating a folder with component.tsx, demo.tsx and meta.json; registration is automatic. See CONTRIBUTING.md, and AGENTS.md if you are an agent working inside this repo.

    Saved library

    Signed-in users can bookmark components from the catalog. The account's Saved view shows working interactive previews, copyable install commands, and private folders for organizing saves. See docs/saved-library.md.

    License

    MIT. See LICENSE.

    Read the rest on GitHub →

    What ns-ui shipped recently

    Every appearance and removal our crawl has seen in the registry index.

    • accordion-latchaddedSep 12, 2026
    • adhesive-squeeze-beadaddedSep 12, 2026
    • agar-starveaddedSep 12, 2026
    • airlift-slug-flowaddedSep 12, 2026
    • announcement-bar-relayaddedSep 12, 2026
    • approval-inline-diffaddedSep 12, 2026
    • arc-ladder-climbaddedSep 12, 2026
    • ascii-engraving-contouraddedSep 12, 2026
    • ascii-globe-spinaddedSep 12, 2026
    • ascii-knot-volumetricaddedSep 12, 2026
    • ascii-torus-donutaddedSep 12, 2026
    • aspheric-turn-spiraladdedSep 12, 2026
    • autosave-ratchetaddedSep 12, 2026
    • auxin-canaladdedSep 12, 2026
    • avatar-stack-flockaddedSep 12, 2026
    • back-bearingaddedSep 12, 2026
    • background-ascii-causticsaddedSep 12, 2026
    • background-ascii-ditheraddedSep 12, 2026
    • background-ascii-domain-wallsaddedSep 12, 2026
    • background-ascii-flowaddedSep 12, 2026

    Registries like ns-ui

    OpenStatus

    OpenStatus

    by OpenStatus

    3

    components

    Kibo UI

    Kibo UI

    by Hayden Bleasel

    28

    components

    Chánh Đại

    Chánh Đại

    by Chánh Đại

    18

    components

    UI TripleD

    UI TripleD

    by Moumen Soliman

    107

    components

    deltacomponents

    deltacomponents

    by deltacomponents

    8

    components

    Motoko UI

    Motoko UI

    by Vlad Vovk

    9

    components

    Browse every shadcn registry we track →

    1. Components
    2. /
    3. nikolas-sapa
    4. /
    5. ns-ui

    Related libraries

    Illos

    Illos

    by Naved

    23

    components

    ThreeUI

    ThreeUI

    by Meng To

    38

    components

    00

    000h

    by Sanjay Kumar

    12

    components

    Aceternity UI

    Aceternity UI

    by Manu Arora

    89

    components

    Magic UI

    Magic UI

    by Dillion Verma

    64

    components

    Hirael

    Hirael

    by Mohammad Shehadeh

    218

    components

    About ns-ui

    ns-ui is a component library on 21st.dev by nikolas-sapa with 76 public React components. Every component ships with a live interactive preview and full TSX source — copy the code, install it through the shadcn CLI, or pull it into Cursor or Claude Code over MCP.

    All 76 ns-ui components

    • ASCII Dissolve Transition
    • ASCII Globe Spin
    • ASCII Nodal Lines Background
    • Aurora Flow Chart
    • Auxin Canal
    • Background ASCII Dither
    • Background ASCII Flow
    • Background ASCII Force Chains
    • Background ASCII Plasma
    • Background ASCII Voronoi Walls
    • Background ASCII Wake

    Browse all component libraries →

  • Background Gradient Shader
  • Bitplane Cascade
  • Blade Stop
  • Border Chrome Ring
  • Breadcrumb Fold
  • Cambium Lay
  • Chart Bar Halftone
  • Chart Donut Halftone
  • Chart Radar Dither
  • Confirm Dial Align
  • Countdown Vapor Digits
  • Dye Whorl
  • Empty State Braille Orbit
  • Empty State Mezzotint
  • Equation Kidney Cam
  • FAQ Accordion Depth Gutter
  • Flamegraph ASCII Frames
  • Floret Pack
  • Heatmap Calendar Tide
  • Hero ASCII Eclipse
  • Hero ASCII Rainfall
  • Hero ASCII Reaction Front
  • Hero ASCII Schlieren
  • Hero ASCII Tunnel
  • Hero Burin Hatch
  • Hero Dipole Field
  • Hero Long Exposure
  • Hero Oscilloscope
  • Hero Particles WEBGL
  • Hero Recursive Type
  • Hero String Envelope
  • Hero Text Ring Funnel
  • Hover Card Dwell
  • Pendulum Sync Loader
  • Pole Shy
  • Post List ASCII Index
  • Roller Break Reduce
  • Running Belay
  • Scroll Caliper
  • Scrubber Film Strip
  • Seal Roll Testimonials
  • Shear Band Range Slider
  • Slack Cable Tabs
  • Specie Clip
  • Split Pane Weighted
  • Status Metaball Merge
  • Tabs Carriage
  • Termite Ventilation Shafts
  • Terrain Erosion Carve
  • Text ASCII Cascade
  • Text Card Flick
  • Text Ligature Melt
  • Text Prism Split
  • Timeline Changelog Wave
  • Toast Gravity Stack
  • TOC Minimap Mercury
  • Tree Box Drawing
  • Tree Hinge Fold
  • Tree Root Trace
  • Truchet Weave Background
  • Truncation Word Count
  • Vernier Caliper Slider
  • Vortex Street Hero
  • Waveform ASCII Scrub
  • Weld Pool