HomeBookmarks
LayoutsLayouts
Layouts

Layouts

A micro-interaction React UI library built on shadcn/ui and Framer Motion.

0Xby 0xUrvish
22components2.1Mviews13.8Kbookmarks

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

Auto-indexed

Layouts contents

  • Inline Edit

    Inline Edit

  • Stacked List x

    Stacked List x

  • Smooth Dropdown

    Smooth Dropdown

  • Morphing Input

    Morphing Input

  • Expandable Gallery

    Expandable Gallery

  • Vertical Tabs

    Vertical Tabs

  • Pricing Card

    Pricing Card

  • Magnified Bento

    Magnified Bento

  • List Item

    List Item

  • Folder Interaction

    Folder Interaction

  • Fluid Expanding Grid

    Fluid Expanding Grid

  • Feature Carousel

    Feature Carousel

  • Empty Testimonial

    Empty Testimonial

  • Dynamic Toolbar

    Dynamic Toolbar

  • Discrete Tab

    Discrete Tab

  • Discover Button

    Discover Button

  • Delete Button

    Delete Button

  • Day Picker

    Day Picker

  • BucketBucket

    Bucket

  • Bottom Menu

    Bottom Menu

  • Bento Card

    Bento Card

  • Animated CollectionAnimated Collection

    Animated Collection

  • That's all 22 components

    About Layouts

    Layouts publishes a shadcn registry at layout.csikie.com, with 7 components installable through the shadcn CLI.

    Components
    7
    GitHub stars
    0
    Last commit
    Nov 5, 2026
    Repository
    csikie/layout-kit

    Also in the Layouts registry

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

    • col

    • grid

      layout-spacing
    • grid-item

      layout-spacing
    • layout

    • page

    • row

      layout-spacing
    • stack

      layout-spacing

    From the Layouts readme

    Layout Kit

    Typed React layout primitives for shadcn/ui and Tailwind CSS 4: Stack, Row, Col, Grid, GridItem, and Page. They ship as a shadcn registry, so the CLI copies the source into your project and you own the code.

    Use Layout Kit for consistent spacing, responsive grids, and page frames in dashboards, forms, settings, and detail screens. It arranges your existing UI; buttons, inputs, routing, and data fetching stay with your application. For a one-off layout, direct Tailwind utilities may be all you need.

    Documentation and live examples: layout.csikie.com

    
      New order} />
      } asideWidth="sm">
        
          {stats.map((stat) => (
            
          ))}
        
      
    
    

    Installation

    Requirements: a shadcn project (components.json and the cn helper), Tailwind CSS 4, and React 19.

    1. Register the namespace in components.json:

      {
        "registries": {
          "@layout-kit": "https://layout.csikie.com/r/{name}.json"
        }
      }
      
    2. Add everything, or only what you need:

      npx shadcn@latest add @layout-kit/layout
      npx shadcn@latest add @layout-kit/page @layout-kit/grid
      
    ItemContents
    layoutEvery primitive below
    layout-spacingShared vocabulary; added automatically as a dependency
    stackVertical flex container
    rowHorizontal flex container
    colFlex child with grow, shrink, and self
    gridCSS grid with responsive columns
    grid-itemResponsive column span
    pagePage frame: header, actions, body, aside

    Files land in components/ui/ and lib/spacing.ts, with imports rewritten to your aliases. The primitives depend on @base-ui/react, which the CLI installs. There is no Layout Kit npm package. Responsive behavior uses CSS media queries, without JavaScript viewport measurements; React and Base UI still perform rendering. Review the CLI diff before accepting updates to customized files.

    Read the rest on GitHub →

    What Layouts builds on

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

    layout-spacing4

    What Layouts shipped recently

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

    • coladdedNov 12, 2026
    • gridaddedNov 12, 2026
    • grid-itemaddedNov 12, 2026
    • layoutaddedNov 12, 2026
    • layout-spacingaddedNov 12, 2026
    • pageaddedNov 12, 2026
    • rowaddedNov 12, 2026
    • stackaddedNov 12, 2026

    Browse every shadcn registry we track →

    Guides and examples

    • Build a responsive React dashboard
    • Manage spacing with Stack and Row
    • Build a page with actions and a sidebar
    • Component reference
    • Documentation index for tools

    Each guide includes prerequisites, a live example, its complete source, and verification advice. No specific router is required. Examples use the default shadcn import aliases; the CLI adapts paths to your project.

    The primitives

    ComponentPropsDefaults
    Stackgap, align, justifygap 4, align "stretch", justify "start"
    Rowgap, align, justify, wrapgap 4, align "center", justify "start"
    Colgrow, shrink, selffalse, true, "auto"
    Gridcols, gap, aligncols 1, gap 4, align "stretch"
    GridItemspan1
    Pagesize, gutter; Page.Header title, titleAs, description, metadata, actions; Page.Body aside, asideWidth, asidePosition, asideBreakpoint, asideCollapsesize "lg", titleAs "h1"
    • Responsive values. gap, align, justify, cols, and span take a single value or a mobile-first map: cols={{ base: 1, md: 2, xl: 4 }}.

    • Native props. Every primitive accepts the props of its element and merges className last, so `` ends up with gap-2.

    • Any element. Primitives render a div; render swaps it while keeping the layout classes, ref, and handlers:

      } gap={2}>…
      } justify="between">…
      
    • Stack and Row are containers, Col is a flex child. Stack and Row own gap, align, and justify. Col says how one region shares space inside them (grow, shrink, self) and sets min-w-0 so text can truncate; nest a Stack inside it to space its children.

    • Page keeps one h1 per document (titleAs for nested pages), never competes with your app shell's ``, and keeps the content first in reading order whichever side the aside sits on.

    Shared value sets, from lib/spacing.ts:

    • Gap: 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12
    • Align: "start" | "center" | "end" | "stretch" | "baseline"
    • Justify: "start" | "center" | "end" | "between" | "around" | "evenly"

    Contributing

    Issues and pull requests are welcome. See CONTRIBUTING.md. Maintained by Erik Csiki-Gecse.

    License

    MIT © Erik Csiki-Gecse (@csikie). You may use, copy, modify, and distribute the code, provided the copyright and license notice stay in every copy or substantial portion.

    1. Components
    2. /
    3. 0xUrvish
    4. /
    5. Layouts

    Related libraries

    Ruixen UI

    Ruixen UI

    by Ruixen UI

    347

    components

    Efferd

    Efferd

    by Efferd

    115

    components

    HextaUI

    HextaUI

    by Preet Suthar

    119

    components

    ReUI

    ReUI

    by Sean Hello

    263

    components

    Aceternity UI

    Aceternity UI

    by Manu Arora

    89

    components

    Dali Agents

    Dali Agents

    by Liana Pepanyan

    46

    components

    About Layouts

    Layouts is a component library on 21st.dev by 0xUrvish with 24 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 24 Layouts components

    • Animated Collection
    • Bento Card
    • Bottom Menu
    • Bucket
    • Day Picker
    • Delete Button
    • Discover Button
    • Discrete Tab
    • Dynamic Toolbar
    • Empty Testimonial
    • Expandable Gallery
    • Feature Carousel

    Browse all component libraries →

    Fluid Expanding Grid
  • Folder Interaction
  • Inline Edit
  • List Item
  • Magnified Bento
  • Morphing Input
  • Multi-Step Form
  • Pricing Card
  • Smooth Dropdown
  • Stacked List x
  • Status Button
  • Vertical Tabs