HomeBookmarks
mischiefmischief
mischief

mischief

TLby tinkerers-labs
9components11.7Kviews10bookmarks

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

Auto-indexed

mischief contents

  • OrbOrb

    Orb

  • Transcript ViewerTranscript Viewer

    Transcript Viewer

  • Image GridImage Grid

    Image Grid

  • BurstBurst

    Burst

  • CSV ViewerCSV Viewer

    CSV Viewer

  • File TreeFile Tree

    File Tree

  • Streaming TextStreaming Text

    Streaming Text

  • Prompt InputPrompt Input

    Prompt Input

  • MessageMessage

    Message

  • That's all 9 components

    About mischief

    mischief publishes a shadcn registry at ui.tinkererslabs.com, with 132 components installable through the shadcn CLI.

    Components
    132
    GitHub stars
    6
    Last commit
    Nov 1, 2026
    Repository
    Tinkerers-Labs/mischief-ui

    Also in the mischief registry

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

    • agent-checklist

      utils1 example
    • annotation-layer

      utils1 example
    • ascii-image

      utils1 example
    • ask-ai

      utils1 example
    • audio-player

      utils1 example
    • aurora-field

      utils1 example
    • avatar-stack

      utils1 example
    • bar-visualizer

      utils1 example
    • bounding-boxes

      utils1 example
    • chain-of-thought

      utils1 example
    • code-block

      utils1 example
    • command-palette

      utils1 example
    • component-preview

      utils1 example
    • connection-beam

      utils1 example
    • constellation-field

      utils1 example
    • conversation

      utils1 example
    • copy-button

      utils1 example
    • copy-for-ai

      utils1 example
    • cursor-trail

      utils1 example
    • diff-view

      utils1 example
    • displacement-image

      utils1 example
    • dither-image

      utils1 example
    • document-splits

      utils1 example
    • docx-viewer

      utils1 example
    • elastic-slider

      utils1 example
    • empty-row

      utils1 example
    • empty-state

      utils1 example
    • feedback-widget

      utils1 example
    • file-thumbnail

      utils1 example
    • file-upload

      utils1 example
    • floating-index

      utils1 example
    • footer-columns

      utils1 example
    • footer-row

      utils1 example
    • footer-wordmark

      utils1 example
    • ghost-text

      utils1 example
    • grain-overlay

      utils1 example
    • heat-calendar

      utils1 example
    • hold-button

      utils1 example
    • image-gallery

      utils1 example
    • impossible-checkbox

      utils1 example
    • inline-citations

      utils1 example
    • inline-edit

      utils1 example
    • install-command

      utils1 example
    • json-viewer

      utils1 example
    • kbd

      utils1 example
    • lattice-field

      utils1 example
    • lightbox

      utils1 example
    • link-preview

      utils1 example
    • magnetic-tabs

      utils1 example
    • markdown-blocks

      utils1 example
    • marquee

      utils1 example
    • matrix

      utils1 example
    • memory-chips

      utils1 example
    • message-branches

      utils1 example
    • message-queue

      utils1 example
    • metaballs

      utils1 example
    • metric-card

      utils1 example
    • mic-selector

      utils1 example
    • model-picker

      utils1 example
    • not-found

      utils1 example
    • notification-stack

      utils1 example
    • number-ticker

      utils1 example
    • otp-input

      utils1 example
    • page-navigator

      utils1 example
    • pdf-viewer

      utils1 example
    • presence-field

      utils1 example
    • quantity-button

      utils1 example
    • questionnaire

      utils1 example
    • range-histogram

      utils1 example
    • redaction

      utils1 example
    • render-surface

      utils1 example
    • resizable-panels

      utils1 example
    • response

      utils1 example
    • response-actions

      utils1 example
    • reveal

      utils1 example
    • reviewable-diff

      utils1 example
    • save-bar

      utils1 example
    • scene-hero

      utils1 example
    • schema-builder

      utils1 example
    • scroll-scene

      utils1 example
    • scroll-to-top-button

      utils1 example
    • scrub-bar

      utils1 example
    • secret-field

      utils1 example
    • shader-surface

      utils1 example
    • shift-button

      utils1 example
    • shimmering-text

      utils1 example
    • side-panel

      utils1 example
    • signature-footer

      utils1 example
    • signature-pad

      utils1 example
    • slash-menu

      utils1 example
    • sortable-list

      utils1 example
    • source-card

      utils1 example
    • sparkline

      utils1 example
    • spinner

      utils1 example
    • split-text

      utils1 example
    • spotlight-card

      utils1 example
    • stack-panel

      utils1 example
    • status-island

      utils1 example
    • status-pill

      utils1 example
    • stepper

      utils1 example
    • stop-generating

      utils1 example
    • stopped-run

      utils1 example
    • stream-glow

      utils1 example
    • subagent-tree

      utils1 example
    • suggestions

      utils1 example
    • swipe-actions

      utils1 example
    • table-of-contents

      utils1 example
    • tag-input

      utils1 example
    • terminal-output

      utils1 example
    • theme-toggle

      utils1 example
    • thinking-state

      utils1 example
    • tilt-card

      utils1 example
    • timeline

      utils1 example
    • token-meter

      utils1 example
    • tool-approval

      utils1 example
    • tool-call

      utils1 example
    • undo-button

      utils1 example
    • video-player

      utils1 example
    • voice-input

      utils1 example
    • web-preview

      utils1 example
    • weekly-hours

      utils1 example
    • wheel-picker

      utils1 example
    • wireframe-globe

      utils1 example

    From the mischief readme

    Mischief

    Good interfaces deserve a little mischief.

    Browse the live components and documentation at ui.tinkererslabs.com.

    Mischief is a small collection of playful, production-ready React components. The components use Base UI where behavior is complex, Tailwind CSS for styling, and shadcn theme tokens so they fit the project that receives them.

    Install

    Give Mischief to your agent

    Install the catalog as an agent skill:

    npx skills add Tinkerers-Labs/mischief-ui --skill mischief-ui
    

    Then ask for what you need:

    Use $mischief-ui to add the impossible-checkbox component to this project.
    

    Add it yourself

    Mischief is a public GitHub registry for shadcn CLI v4. Install a component directly from this repository:

    npx shadcn@latest add Tinkerers-Labs/mischief-ui/magnetic-tabs
    npx shadcn@latest add Tinkerers-Labs/mischief-ui/conversation
    npx shadcn@latest add Tinkerers-Labs/mischief-ui/questionnaire
    npx shadcn@latest add Tinkerers-Labs/mischief-ui/redaction
    

    Every component is listed at ui.tinkererslabs.com, and each page carries the command for it.

    Use pnpm dlx, yarn dlx, or bunx if that is what your project uses. The shadcn CLI reads components.json and places the source in the configured UI directory.

    Mischief is also available as mischief-ui:

    npm install mischief-ui
    

    Import mischief-ui/styles.css in your Tailwind CSS entry file, then use a direct entry such as mischief-ui/magnetic-tabs. The root export remains available when one import path is more convenient. The registry remains the recommended path when you want to own and adapt the source.

    Components

    Magnetic Tabs

    import { MagneticTabs } from "@/components/ui/magnetic-tabs"
    
    const items = [
      { value: "overview", label: "Overview", content: Ready to go. },
      { value: "activity", label: "Activity", content: No new activity. },
    ]
    
    export function Example() {
      return 
    }
    

    The component supports controlled and uncontrolled selection through value, defaultValue, and onValueChange.

    Elastic Slider

    import { ElasticSlider } from "@/components/ui/elastic-slider"
    
    export function Example() {
      return 
    }
    

    Use value and onValueChange for a controlled slider. min, max, step, formatValue, and onValueCommitted are available for common form needs.

    Hold Button

    import { HoldButton } from "@/components/ui/hold-button"
    
    export function Example() {
      return (
        
          Hold to remove download
        
      )
    }
    

    Pointer users hold for 900ms by default. Keyboard and assistive technology users activate the native button once. Set duration to change the hold time, with a minimum of 500ms.

    Signature Footer

    import { SignatureFooter } from "@/components/ui/signature-footer"
    
    export function Footer() {
      return (
        ...}
          brand={Northstar}
          wordmark="Northstar"
        />
      )
    }
    

    Pass ordinary React nodes for the action, navigation, compact brand, and metadata. The footer owns the composition while your app owns its links and language.

    Impossible Checkbox

    import { ImpossibleCheckbox } from "@/components/ui/impossible-checkbox"
    
    export function Demo() {
      return 
    }
    

    The bear always turns it back off. Use it for demos and harmless jokes, never for consent or a setting someone needs to change.

    Floating Index

    import { FloatingIndex } from "@/components/ui/floating-index"
    
    const items = [
      { id: "introduction", label: "Introduction" },
      { id: "details", label: "Details" },
      { id: "examples", label: "Examples" },
    ]
    
    export function PageIndex() {
      return 
    }
    

    The index tracks page progress and the active section. Pass containerRef when the content scrolls inside an element instead of the page.

    Shift Button

    import { Apple } from "lucide-react"
    import { ShiftButton } from "@/components/ui/shift-button"
    
    export function DownloadButton() {
      return (
        }
          leadingIcon={}
        >
          Download for Mac
        
      )
    }
    

    The component uses Base UI so the same interaction can remain a button or render as a real link.

    Scroll to Top Button

    import { ScrollToTopButton } from "@/components/ui/scroll-to-top-button"
    
    export function LongPage() {
      return (
        <>
          {/* Long page content */}
          
        </>
      )
    }
    

    Pass containerRef to target a scroll area instead of the page. The button appears after scrolling down and switches to immediate scrolling when reduced motion is preferred.

    Ask AI

    import { AskAi } from "@/components/ui/ask-ai"
    
    const prompt =
      "Explain Acme using current sources. Cite claims and flag anything unverified."
    
    export function AskAboutAcme() {
      return 
    }
    

    The default destinations are ChatGPT, Claude, Perplexity, and Grok. Pass targets to provide another set. The copy action keeps the same prompt available for any other assistant.

    File Upload

    import { FileUpload } from "@/components/ui/file-upload"
    
    export function Attachments() {
      return 
    }
    

    The component validates file type, size, count, and duplicates before adding anything to its queue. Pass uploadFile to connect storage and enable progress, cancel, and retry behavior. Its return value is stored on the completed entry and passed to onUploadComplete. Use value and onValueChange when the queue belongs to application state.

    Repeat file type, size, and authorization checks on the server. Browser validation is user feedback, not a security boundary.

    File Thumbnail

    import { FileThumbnail } from "@/components/ui/file-thumbnail"
    
    export function Preview() {
      return 
    }
    

    Pass a browser image File to preview it directly, or use previewImageUrl for an image that already lives elsewhere. Loading and failed images have clear fallback states.

    Blocks

    Image Gallery

    import { ImageGallery } from "@/components/ui/image-gallery"
    
    const images = [
      {
        id: "studio",
        src: "/photos/studio.jpg",
        alt: "Sunlight across the studio table",
        width: 1600,
        height: 1200,
        caption: "The studio",
      },
    ]
    
    export function WorkGallery() {
      return 
    }
    

    The lightbox traps focus, locks page scroll, restores focus on close, and supports Left Arrow, Right Arrow, and Escape.

    Compatibility

    • React 18 and 19 through component dependencies
    • Tailwind CSS 4
    • shadcn CLI 4 and GitHub registries
    • Base UI 1.7 or newer
    • Next.js, Vite, React Router, TanStack Start, and other React projects supported by shadcn
    • Light and dark themes through semantic shadcn tokens
    • Left-to-right and right-to-left document direction through logical layout and Base UI behavior

    For reproducible GitHub installs, append a release tag or full commit SHA to the item address. Unpinned commands intentionally install the current version from main.

    Local development

    Use Node 24 or any supported Node release from 20.18.1 onward.

    pnpm install
    pnpm dev
    

    Before committing:

    pnpm check
    

    The check formats, lints, type-checks, validates the registry build, and creates a production Next.js build.

    Design and contribution

    Read DESIGN.md before changing the interface or its copy. Read CONTRIBUTING.md before opening a pull request.

    License

    MIT

    Read the rest on GitHub →

    What mischief builds on

    The packages and primitives its components pull in, counted across the registry.

    utils137

    Hooks and utilities

    • accordion
    • combobox
    • data-table
    • pagination
    • skeleton

    What mischief shipped recently

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

    • accordionaddedSep 12, 2026
    • accordion-demoaddedSep 12, 2026
    • agent-checklistaddedSep 12, 2026
    • agent-checklist-demoaddedSep 12, 2026
    • annotation-layeraddedSep 12, 2026
    • annotation-layer-demoaddedSep 12, 2026
    • ascii-imageaddedSep 12, 2026
    • ascii-image-demoaddedSep 12, 2026
    • ask-aiaddedSep 12, 2026
    • ask-ai-demoaddedSep 12, 2026
    • audio-playeraddedSep 12, 2026

    Registries like mischief

    coss

    coss

    by coss

    74

    components

    ReUI

    ReUI

    by Sean Hello

    263

    components

    Dice UI

    Dice UI

    by Dice UI

    19

    components

    Intent UI

    Intent UI

    by Intent UI

    25

    components

    Be UI

    Be UI

    by Saurabh Chauhan

    72

    components

    Browse every shadcn registry we track →

    audio-player-demo
    added
    Sep 12, 2026
  • aurora-fieldaddedSep 12, 2026
  • aurora-field-demoaddedSep 12, 2026
  • avatar-stackaddedSep 12, 2026
  • avatar-stack-demoaddedSep 12, 2026
  • bar-visualizeraddedSep 12, 2026
  • bar-visualizer-demoaddedSep 12, 2026
  • bounding-boxesaddedSep 12, 2026
  • bounding-boxes-demoaddedSep 12, 2026
  • Bundui

    Bundui

    by Shadcn UI Kit

    59

    components

    1. Components
    2. /
    3. tinkerers-labs
    4. /
    5. mischief

    Related libraries

    Cnippet

    Cnippet

    by Cnippet

    347

    components

    ReUI

    ReUI

    by Sean Hello

    263

    components

    HextaUI

    HextaUI

    by Preet Suthar

    119

    components

    uiable

    uiable

    by uiable

    168

    components

    Origin UI

    Origin UI

    by Origin UI

    44

    components

    SmoothUI

    SmoothUI

    by Edu Calvo

    96

    components

    About mischief

    mischief is a component library on 21st.dev by tinkerers-labs with 9 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 9 mischief components

    • Burst
    • CSV Viewer
    • File Tree
    • Image Grid
    • Message
    • Orb
    • Prompt Input
    • Streaming Text
    • Transcript Viewer

    Browse all component libraries →