May 2026 Beta Release Announced

Production-Ready UI Blocks

Pre-built sections for landing pages, AI interfaces, and layouts. Each block is production-ready and fully customizable. Copy the code, drop it in your project, and ship faster.

Files
app/bottom-mobile-nav/page.tsx
"use client"

import type React from "react"
import { Heart, Home, Search, User } from "lucide-react"

import { BottomMobileNav } from "./components/bottom-mobile-nav"
import { Sidebar } from "./components/sidebar"

// Layout Component Props Interface
interface LayoutProps {
  children: React.ReactNode
  sidebarClassName?: string
  bottomNavClassName?: string
}

// Layout Component (moved from layout.tsx)
function Layout({
  children,
  sidebarClassName,
  bottomNavClassName,
}: LayoutProps) {
  const routes = [
    {
      href: "#",
      label: "Home",
      icon: Home,
    },
    {
      href: "#search",
      label: "Search",
      icon: Search,
    },
    {
      href: "#love",
      label: "Love",
      icon: Heart,
    },
    {
      href: "#profile",
      label: "Profile",
      icon: User,
    },
  ]

  return (
    <div className="min-h-screen">
      {/* Desktop Sidebar */}
      <Sidebar routes={routes} className={sidebarClassName} />

      {/* Main Content */}
      <main className="pb-20 md:ml-20 md:pb-8">{children}</main>

      {/* Mobile Bottom Navigation */}
      <BottomMobileNav
        routes={routes}
        labels={true}
        className={bottomNavClassName}
      />
    </div>
  )
}

export default function BottomMobileNavPage() {
  return (
    <Layout>
      <div className="mx-auto flex w-full max-w-lg flex-col gap-4 p-4">
        <p>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do
          eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
          minim veniam, quis nostrud exercitation ullamco laboris nisi ut
          aliquip ex ea commodo consequat.
        </p>
        <p>
          Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
          dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
          proident, sunt in culpa qui officia deserunt mollit anim id est
          laborum.
        </p>
        <p>
          Sed ut perspiciatis unde omnis iste natus error sit voluptatem
          accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae
          ab illo inventore veritatis et quasi architecto beatae vitae dicta
          sunt explicabo.
        </p>
        <p>
          Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut
          fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem
          sequi nesciunt.
        </p>
        <p>
          Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet,
          consectetur, adipisci velit, sed quia non numquam eius modi tempora
          incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
        </p>
        <p>
          Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis
          suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis
          autem vel eum iure reprehenderit qui in ea voluptate velit esse quam
          nihil molestiae consequatur.
        </p>
        <p>
          At vero eos et accusamus et iusto odio dignissimos ducimus qui
          blanditiis praesentium voluptatum deleniti atque corrupti quos dolores
          et quas molestias excepturi sint occaecati cupiditate non provident,
          similique sunt in culpa qui officia deserunt mollitia animi, id est
          laborum et dolorum fuga.
        </p>
        <p>
          Et harum quidem rerum facilis est et expedita distinctio. Nam libero
          tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo
          minus id quod maxime placeat facere possimus, omnis voluptas assumenda
          est, omnis dolor repellendus.
        </p>
      </div>
    </Layout>
  )
}

Bottom Mobile Nav

npx shadcn@latest add @delta/bottom-mobile-nav
bottom-mobile-nav preview
Files
app/admin-inset-layout/page.tsx
import { AppHeader } from "@/components/app-header"
import { AppSidebar } from "@/components/app-sidebar"
import {
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "@/components/ui/breadcrumb"
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar"

export default function Page() {
  return (
    <div className="bg-sidebar flex h-screen w-full flex-col overflow-hidden">
      <AppHeader />
      <div className="flex flex-1 overflow-hidden pt-12">
        <SidebarProvider
          className="min-h-0 !pr-0"
          style={
            {
              "--sidebar-width": "15.25rem",
              "--sidebar-width-mobile": "15.25rem",
            } as React.CSSProperties
          }
        >
          <AppSidebar />
          <div className="flex flex-1 overflow-hidden py-3 sm:pr-3">
            <SidebarInset
              className="flex flex-1 flex-col overscroll-none rounded-sm border md:shadow-[0_1px_2px_0_rgba(0,0,0,0.03),0_1px_3px_0_rgba(0,0,0,0.04)] dark:md:shadow-[0_1px_2px_0_rgba(0,0,0,0.2),0_1px_3px_0_rgba(0,0,0,0.15)]"
              style={{
                WebkitOverflowScrolling: "auto",
                overscrollBehavior: "none",
              }}
            >
              <header className="flex h-16 shrink-0 items-center gap-2 overscroll-none border-b">
                <div className="flex items-center gap-2 px-4">
                  <Breadcrumb>
                    <BreadcrumbList>
                      <BreadcrumbItem className="hidden md:block">
                        <BreadcrumbLink href="#">
                          Building Your Application
                        </BreadcrumbLink>
                      </BreadcrumbItem>
                      <BreadcrumbSeparator className="hidden md:block" />
                      <BreadcrumbItem>
                        <BreadcrumbPage>Data Fetching</BreadcrumbPage>
                      </BreadcrumbItem>
                    </BreadcrumbList>
                  </Breadcrumb>
                </div>
              </header>
              <div
                className="flex flex-1 flex-col gap-4 overflow-y-auto overscroll-none p-4 pb-8 [scrollbar-color:rgb(163_163_163_/_0.5)_transparent] [scrollbar-width:thin] [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-[rgb(163_163_163_/_0.5)] hover:[&::-webkit-scrollbar-thumb]:bg-[rgb(163_163_163_/_0.7)] [&::-webkit-scrollbar-track]:bg-transparent"
                style={{
                  WebkitOverflowScrolling: "auto",
                  overscrollBehavior: "none",
                }}
              >
                <div className="grid auto-rows-min gap-4 md:grid-cols-3">
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                </div>
                <div className="bg-muted/50 min-h-[100vh] flex-1 rounded-xl md:min-h-min" />
                <div className="grid auto-rows-min gap-4 md:grid-cols-2">
                  <div className="bg-muted/50 aspect-square rounded-xl" />
                  <div className="bg-muted/50 aspect-square rounded-xl" />
                </div>
                <div className="bg-muted/50 h-[400px] rounded-xl" />
                <div className="grid auto-rows-min gap-4 md:grid-cols-4">
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                  <div className="bg-muted/50 aspect-video rounded-xl" />
                </div>
                <div className="bg-muted/50 h-[600px] rounded-xl" />
              </div>
            </SidebarInset>
          </div>
        </SidebarProvider>
      </div>
    </div>
  )
}

Admin Inset Layout

npx shadcn@latest add @delta/admin-inset-layout
admin-inset-layout preview