App Shell
Layout shell with scroll region.
import { AppShell, AppShellMain, AppShellScrollBody,} from "@/registry/new-york/items/manpowerhub-app-shell/components/app-shell";export function ManpowerhubAppShellBasic() { return ( <AppShell className="h-48 rounded-lg border"> <AppShellMain> <AppShellScrollBody> <p className="text-sm text-[var(--text-2)]"> Scrollable page content </p> </AppShellScrollBody> </AppShellMain> </AppShell> );}Installation
Section titled “Installation”This installation provides support for all official Shadcn icon libraries. The component is otherwise identical to the non-experimental installation.
Icon support is experimental and may not be fully stable since it uses internal Shadcn APIs.
This component relies on other items which must be installed first.
Copy and paste the following code into your project.
components/ui/app-shell.tsx
import * as React from "react";
import { cn } from "@/lib/utils";
function AppShell({ className, ...props }: React.ComponentProps<"div">) { return ( <div data-slot="app-shell" className={cn("flex h-full min-h-[480px] overflow-hidden", className)} {...props} /> );}
function AppShellMain({ className, ...props }: React.ComponentProps<"main">) { return ( <main data-slot="app-shell-main" className={cn("flex min-w-0 flex-1 flex-col overflow-hidden", className)} {...props} /> );}
function AppShellScrollBody({ className, ...props}: React.ComponentProps<"div">) { return ( <div data-slot="app-shell-scroll-body" className={cn( "flex-1 overflow-y-auto bg-background p-5 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-thumb]:rounded-sm [&::-webkit-scrollbar-thumb]:bg-[var(--surface-4)]", className, )} {...props} /> );}
export { AppShell, AppShellMain, AppShellScrollBody };Update the import paths to match your project setup.
Install the ManpowerHub theme first, then add this app shell:
npx shadcn@latest add @woxcn/manpowerhub-app-shell