Tabs
Tabbed navigation for content sections
Profile content here...
Settings content here...
Notifications content here...
Code
<div x-data="{ activeTab: 'profile' }">
<div class="border-b border-gray-200 dark:border-gray-700">
<nav class="-mb-px flex space-x-8">
<button @click="activeTab = 'profile'"
:class="activeTab === 'profile' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300'"
class="whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm">
Profile
</button>
<button @click="activeTab = 'settings'"
:class="activeTab === 'settings' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300'"
class="whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm">
Settings
</button>
<button @click="activeTab = 'notifications'"
:class="activeTab === 'notifications' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300'"
class="whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm">
Notifications
</button>
</nav>
</div>
<div class="mt-4">
<div x-show="activeTab === 'profile'" class="text-gray-700 dark:text-gray-300">Profile content here...</div>
<div x-show="activeTab === 'settings'" class="text-gray-700 dark:text-gray-300">Settings content here...</div>
<div x-show="activeTab === 'notifications'" class="text-gray-700 dark:text-gray-300">Notifications content here...</div>
</div>
</div>
Pagination
Page navigation controls
Code
<nav class="flex items-center justify-between">
<div class="flex-1 flex justify-between sm:hidden">
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 text-sm font-medium rounded-md text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700">
Previous
</a>
<a href="#" class="ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 text-sm font-medium rounded-md text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700">
Next
</a>
</div>
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div>
<p class="text-sm text-gray-700 dark:text-gray-300">
Showing <span class="font-medium">1</span> to <span class="font-medium">10</span> of <span class="font-medium">97</span> results
</p>
</div>
<div>
<nav class="relative z-0 inline-flex rounded-md shadow-sm -space-x-px">
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm font-medium text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700">
<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd"/>
</svg>
</a>
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700">1</a>
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 bg-blue-50 dark:bg-blue-900/20 text-sm font-medium text-blue-600 dark:text-blue-400">2</a>
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700">3</a>
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm font-medium text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700">
<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/>
</svg>
</a>
</nav>
</div>
</div>
</nav>
Stepper / Multi-step Wizard
Step-by-step progress indicator for forms and processes
Horizontal Stepper
1
Step 1
Account Info
2
Step 2
Personal Details
3
Step 3
Confirmation
Account Information
Enter your account details to get started.
Personal Details
Tell us more about yourself.
Review & Confirm
Please review your information before submitting.
Vertical Stepper
1
Choose Service
Select the service you want to purchase
2
Enter Details
Provide your contact information
3
Complete
Review and submit your order
Code
<div x-data="{ currentStep: 1 }">
<!-- Stepper Header -->
<div class="flex items-center justify-between mb-8">
<div class="flex-1 flex items-center" :class="currentStep >= 1 ? 'text-blue-600' : 'text-gray-400'">
<div class="flex items-center justify-center w-10 h-10 rounded-full" :class="currentStep >= 1 ? 'bg-blue-600 text-white' : 'bg-gray-200 dark:bg-gray-700 text-gray-600'">
1
</div>
<span class="ml-2 text-sm font-medium">Account</span>
</div>
<div class="flex-1 h-1" :class="currentStep >= 2 ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'"></div>
<div class="flex-1 flex items-center" :class="currentStep >= 2 ? 'text-blue-600' : 'text-gray-400'">
<div class="flex items-center justify-center w-10 h-10 rounded-full" :class="currentStep >= 2 ? 'bg-blue-600 text-white' : 'bg-gray-200 dark:bg-gray-700 text-gray-600'">
2
</div>
<span class="ml-2 text-sm font-medium">Profile</span>
</div>
<div class="flex-1 h-1" :class="currentStep >= 3 ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'"></div>
<div class="flex-1 flex items-center" :class="currentStep >= 3 ? 'text-blue-600' : 'text-gray-400'">
<div class="flex items-center justify-center w-10 h-10 rounded-full" :class="currentStep >= 3 ? 'bg-blue-600 text-white' : 'bg-gray-200 dark:bg-gray-700 text-gray-600'">
3
</div>
<span class="ml-2 text-sm font-medium">Complete</span>
</div>
</div>
<!-- Navigation Buttons -->
<div class="flex justify-between">
<button @click="currentStep > 1 && currentStep--" :disabled="currentStep === 1" class="px-4 py-2 border rounded-lg disabled:opacity-50">
Previous
</button>
<button @click="currentStep < 3 && currentStep++" :disabled="currentStep === 3" class="px-4 py-2 bg-blue-600 text-white rounded-lg disabled:opacity-50">
Next
</button>
</div>
</div>