---
name: "@moumenlab"
slug: "moumenlab"
description: "A small lab of the components we build every day, rethought for better feel."
category: "Forms"
tags: ["auth", "cards", "e-commerce", "forms", "icons", "media", "navigation", "overlays", "theming"]
framework: "react"
license: "MIT"
author: "moumen-soliman"
website: "https://lab.moumen.dev"
github: "https://github.com/moumen-soliman/lab"
registry: "https://lab.moumen.dev/r/registry.json"
pro: false
pro_url: null
github_stars: 165
component_count: 14
generated_at: "2026-09-21T01:50:16.753Z"
---

# @moumenlab

A small lab of the components we build every day, rethought for better feel.

## Links

- Website: https://lab.moumen.dev
- GitHub: https://github.com/moumen-soliman/lab
- Registry JSON: https://lab.moumen.dev/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/moumenlab
- This file: https://sh4dcn.vercel.app/md/moumenlab.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://lab.moumen.dev/r/registry.json
pnpm dlx shadcn@latest add https://lab.moumen.dev/r/registry.json
bunx shadcn@latest add https://lab.moumen.dev/r/registry.json
# clone the source repo
git clone https://github.com/moumen-soliman/lab.git
# fetch the raw registry index
curl -s https://lab.moumen.dev/r/registry.json
```

## Components (14)

| name | type | description | install |
| --- | --- | --- | --- |
| lab-theme | registry:theme | Shared design tokens (easings, shadow-border ring, and keyframes) every moumenlab component builds on. | `npx shadcn@latest add https://lab.moumen.dev/r/lab-theme.json` |
| unlimited-nested-menu | registry:component | A dropdown where each branch morphs into a stacked sub-panel, no depth limit, fully keyboard driven. | `npx shadcn@latest add https://lab.moumen.dev/r/unlimited-nested-menu.json` |
| ticket-number-ticker | registry:component | An odometer that runs digits up on tabular-nums and middle-truncates long ids to start…end, with an optional GitHub PR status badge. | `npx shadcn@latest add https://lab.moumen.dev/r/ticket-number-ticker.json` |
| file-upload-staging | registry:component | Per-tile interruptible upload state machines with capped concurrency and a layout-glide grid reflow. | `npx shadcn@latest add https://lab.moumen.dev/r/file-upload-staging.json` |
| schedule-builder | registry:component | A recurrence rule as a live English sentence over real occurrences, with month-end and DST traps. | `npx shadcn@latest add https://lab.moumen.dev/r/schedule-builder.json` |
| otp-segmented-input | registry:component | Six cells that are secretly one real input, with native selection driving the active cell. | `npx shadcn@latest add https://lab.moumen.dev/r/otp-segmented-input.json` |
| share-permissions-popover | registry:component | A three-view floating surface that morphs on both axes with a focus trap surviving the swaps. | `npx shadcn@latest add https://lab.moumen.dev/r/share-permissions-popover.json` |
| command-palette | registry:component | Commands that take inline argument chips, fuzzy ranking, and a measured height morph. | `npx shadcn@latest add https://lab.moumen.dev/r/command-palette.json` |
| morphing-checkout | registry:component | A three-step card payment with a height:auto illusion, caret-safe masking, a 3D flip, and a FLIP pay button. | `npx shadcn@latest add https://lab.moumen.dev/r/morphing-checkout.json` |
| search-expand-nav | registry:component | A nav bar that expands into a search field then grows into a recent-searches card. | `npx shadcn@latest add https://lab.moumen.dev/r/search-expand-nav.json` |
| drag-to-reorder-list | registry:component | A reorderable list where siblings glide one slot and the drop plays a FLIP, keyboard included. | `npx shadcn@latest add https://lab.moumen.dev/r/drag-to-reorder-list.json` |
| caret-mention-popover | registry:component | An @-mention popover anchored to the text caret via a hidden mirror, gliding as you type. | `npx shadcn@latest add https://lab.moumen.dev/r/caret-mention-popover.json` |
| hover-expand-icon-strip | registry:component | Icons in a fixed-width box that expand on hover or Tab while the others squeeze to fit. | `npx shadcn@latest add https://lab.moumen.dev/r/hover-expand-icon-strip.json` |
| inertial-wheel-list | registry:component | An iOS picker drum built on native scroll-snap, with selection derived from scrollTop. | `npx shadcn@latest add https://lab.moumen.dev/r/inertial-wheel-list.json` |

## For AI agents

```text
You are adding components from @moumenlab to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/moumenlab.md) for the component list.
2. Fetch the machine-readable index: https://lab.moumen.dev/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: moumenlab).
```
