手风琴折叠面板
- 安装:
npx shadcn-ui@latest add accordion
- 效果:
- 使用:
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion" export function AccordionDemo() { return ( <Accordion type="single" collapsible className="w-full"> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it styled?</AccordionTrigger> <AccordionContent> Yes. It comes with default styles that matches the other components' aesthetic. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Is it animated?</AccordionTrigger> <AccordionContent> Yes. It's animated by default, but you can disable it if you prefer. </AccordionContent> </AccordionItem> </Accordion> ) }
- 属性参考:www.radix-ui.com/primitives/…
消息
- 安装:
npx shadcn-ui@latest add alert
- 效果:
- 使用:
// Terminal是react图标库的图标 import { Terminal } from "lucide-react" import { Alert, AlertDescription, AlertTitle, } from "@/components/ui/alert" export function AlertDemo() { return ( <Alert> <Terminal className="h-4 w-4" /> <AlertTitle>Heads up!</AlertTitle> <AlertDescription> You can add components to your app using the cli. </AlertDescription> </Alert> ) }
- 属性参考:variant 无复杂属性
弹窗
- 安装
npx shadcn-ui@latest add alert-dialog
- 效果:
- 使用:
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog" import { Button } from "@/components/ui/button" export function AlertDialogDemo() { return ( <AlertDialog> <AlertDialogTrigger asChild> <Button variant="outline">Show Dialog</Button> </AlertDialogTrigger> <AlertDialogContent> <AlertDialogHeader> <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle> <AlertDialogDescription> This action cannot be undone. This will permanently delete your account and remove your data from our servers. </AlertDialogDescription> </AlertDialogHeader> <AlertDialogFooter> <AlertDialogCancel>Cancel</AlertDialogCancel> <AlertDialogAction>Continue</AlertDialogAction> </AlertDialogFooter> </AlertDialogContent> </AlertDialog> ) }
- 属性:www.radix-ui.com/primitives/…
弹性盒子(根据纵横比缩放适应屏幕)
- 安装:
npx shadcn-ui@latest add aspect-ratio
- 效果:
- 使用
import Image from "next/image" import { AspectRatio } from "@/components/ui/aspect-ratio" export function AspectRatioDemo() { return ( <AspectRatio ratio={16 / 9} className="bg-muted"> <Image src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800&dpr=2&q=80" alt="Photo by Drew Beamer" fill className="rounded-md object-cover" /> </AspectRatio> ) }
- 属性:www.radix-ui.com/primitives/…
头像
- 使用
npx shadcn-ui@latest add avatar
- 效果:
- 使用:
import { Avatar, AvatarFallback, AvatarImage, } from "@/components/ui/avatar" export function AvatarDemo() { return ( <Avatar> <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" /> <AvatarFallback>CN</AvatarFallback> </Avatar> ) }
- 属性:www.radix-ui.com/primitives/…
标记
- 安装:
npx shadcn-ui@latest add badge
- 效果:
- 使用:
import { Badge } from "@/components/ui/badge" export function BadgeDemo() { return <Badge>Badge</Badge> }
面包屑
- 安装:
npx shadcn-ui@latest add breadcrumb
- 效果:
- 使用:
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" export function BreadcrumbDemo() { return ( <Breadcrumb> <BreadcrumbList> <BreadcrumbItem> <BreadcrumbLink href="/">Home</BreadcrumbLink> </BreadcrumbItem> <BreadcrumbSeparator /> <BreadcrumbItem> <DropdownMenu> <DropdownMenuTrigger className="flex items-center gap-1"> <BreadcrumbEllipsis className="h-4 w-4" /> <span className="sr-only">Toggle menu</span> </DropdownMenuTrigger> <DropdownMenuContent align="start"> <DropdownMenuItem>Documentation</DropdownMenuItem> <DropdownMenuItem>Themes</DropdownMenuItem> <DropdownMenuItem>GitHub</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> </BreadcrumbItem> <BreadcrumbSeparator /> <BreadcrumbItem> <BreadcrumbLink href="/docs/components">Components</BreadcrumbLink> </BreadcrumbItem> <BreadcrumbSeparator /> <BreadcrumbItem> <BreadcrumbPage>Breadcrumb</BreadcrumbPage> </BreadcrumbItem> </BreadcrumbList> </Breadcrumb> ) }
属性:暂无文档
按钮
- 安装:
npx shadcn-ui@latest add button
- 使用:
import { Button } from "@/components/ui/button" export function ButtonDemo() { return <Button>Button</Button> }
日历
- 安装:
npx shadcn-ui@latest add calendar
- 效果:
- 使用:
"use client" import * as React from "react" import { Calendar } from "@/components/ui/calendar" export function CalendarDemo() { const [date, setDate] = React.useState<Date | undefined>(new Date()) return ( <Calendar mode="single" selected={date} onSelect={setDate} className="rounded-md border" /> ) }
卡片
- 安装:
npx shadcn-ui@latest add card
- 效果:
- 使用:
import * as React from "react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" export function CardWithForm() { return ( <Card className="w-[350px]"> <CardHeader> <CardTitle>Create project</CardTitle> <CardDescription>Deploy your new project in one-click.</CardDescription> </CardHeader> <CardContent> <form> <div className="grid w-full items-center gap-4"> <div className="flex flex-col space-y-1.5"> <Label htmlFor="name">Name</Label> <Input id="name" placeholder="Name of your project" /> </div> <div className="flex flex-col space-y-1.5"> <Label htmlFor="framework">Framework</Label> <Select> <SelectTrigger id="framework"> <SelectValue placeholder="Select" /> </SelectTrigger> <SelectContent position="popper"> <SelectItem value="next">Next.js</SelectItem> <SelectItem value="sveltekit">SvelteKit</SelectItem> <SelectItem value="astro">Astro</SelectItem> <SelectItem value="nuxt">Nuxt.js</SelectItem> </SelectContent> </Select> </div> </div> </form> </CardContent> <CardFooter className="flex justify-between"> <Button variant="outline">Cancel</Button> <Button>Deploy</Button> </CardFooter> </Card> ) }
- 属性:暂无文档