Getting Started
Components
- Accordion
- Alert
- Alert Dialog
- Aspect Ratio
- Attachment
- Avatar
- Badge
- Banner
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Command
- Collapsible
- Combobox
- Context Menu
- Data Table
- Date Picker
- Dialog
- Dropdown Menu
- Editor
- Input
- Input Group
- Label
- Loading Spinner
- Native Select
- Popover
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Steps
- Switch
- Tabs
- Textarea
- Tooltip
Patterns
Carousel
A slideshow for cycling through a collection of content.
Horizontal, looping
First slide
Second slide
Third slide
Vertical, bounded
Top
Middle
Bottom
Component Code
<div class="grid gap-8 lg:grid-cols-2"> <div class="space-y-3"> <p class="text-sm font-medium">Horizontal, looping</p> <april:carousel class="mx-auto w-full max-w-md rounded-lg border p-2"> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-primary p-6 text-2xl font-semibold text-primary-foreground">First slide</div> </april:carousel-item> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-secondary p-6 text-2xl font-semibold text-secondary-foreground">Second slide</div> </april:carousel-item> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-muted p-6 text-2xl font-semibold">Third slide</div> </april:carousel-item> </april:carousel> </div> <div class="space-y-3"> <p class="text-sm font-medium">Vertical, bounded</p> <april:carousel orientation="vertical" :loop="false" class="mx-auto h-64 w-full max-w-md rounded-lg border p-2"> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-muted p-6 text-lg font-semibold">Top</div> </april:carousel-item> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-secondary p-6 text-lg font-semibold text-secondary-foreground">Middle</div> </april:carousel-item> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-primary p-6 text-lg font-semibold text-primary-foreground">Bottom</div> </april:carousel-item> </april:carousel> </div></div>
Component Code
<div class="grid gap-8 lg:grid-cols-2"> <div class="space-y-3"> <p class="text-sm font-medium">Horizontal, looping</p> <april:carousel class="mx-auto w-full max-w-md rounded-lg border p-2"> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-primary p-6 text-2xl font-semibold text-primary-foreground">First slide</div> </april:carousel-item> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-secondary p-6 text-2xl font-semibold text-secondary-foreground">Second slide</div> </april:carousel-item> <april:carousel-item> <div class="flex aspect-video items-center justify-center rounded-md bg-muted p-6 text-2xl font-semibold">Third slide</div> </april:carousel-item> </april:carousel> </div> <div class="space-y-3"> <p class="text-sm font-medium">Vertical, bounded</p> <april:carousel orientation="vertical" :loop="false" class="mx-auto h-64 w-full max-w-md rounded-lg border p-2"> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-muted p-6 text-lg font-semibold">Top</div> </april:carousel-item> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-secondary p-6 text-lg font-semibold text-secondary-foreground">Middle</div> </april:carousel-item> <april:carousel-item> <div class="flex h-60 items-center justify-center rounded-md bg-primary p-6 text-lg font-semibold text-primary-foreground">Bottom</div> </april:carousel-item> </april:carousel> </div></div>
Use
carousel-item for each slide. The default slot is a collection, so each repeated slide is a child component. The carousel supports horizontal and vertical orientation and can loop or stop at its bounds.
<april:carousel> <april:carousel-item>First slide</april:carousel-item> <april:carousel-item>Second slide</april:carousel-item></april:carousel>
<april:carousel> <april:carousel-item>First slide</april:carousel-item> <april:carousel-item>Second slide</april:carousel-item></april:carousel>
Set
orientation="vertical" for a vertical carousel or use
:loop="false" to disable wrapping.
Publishing Views
Use the following commands to publish these views:
php artisan april:publish carousel
php artisan april:publish carousel
php artisan april:publish carousel-item
php artisan april:publish carousel-item
php artisan april:publish --all
php artisan april:publish --all