Professional Documents
Culture Documents
doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-
ratio,line-clamp"></script>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css"
rel="stylesheet">
</head>
<body>
<div class="prose">
<!-- ... -->
</div>
</body>
</html>
<div
x-data="{
search: '',
get filteredItems() {
return this.items.filter(
i => i.startsWith(this.search)
)
}
}"
>
<input x-model="search" placeholder="Search...">
<ul>
<template x-for="item in filteredItems" :key="item">
<li x-text="item"></li>
</template>
</ul>
</div>
x-data="{ megaMenuOpen: false }" @mouseenter="megaMenuOpen = true"
@mouseleave="megaMenuOpen = false"
Transition
-----------
x-show="megaMenuOpen"
x-transition:enter="transition-transform origin-top ease-out duration-
300"
x-transition:enter-start="scale-0"
x-transition:enter-end="scale-100"
x-transition:leave="transition-transform origin-top ease-in duration-300"
x-transition:leave-start="scale-100"
x-transition:leave-end="scale-0"
class="absolute left-0 mt-2 bg-white p-4 shadow-lg w-96"
x-show="megaMenuOpen"
x-transition:enter="transition-opacity ease-out duration-300"
x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100"
x-transition:leave="transition-opacity ease-in duration-300"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
class="grid grid-cols-4 gap-4"
x-show="megaMenuOpen"
x-transition:enter="transition-transform ease-out duration-300"
x-transition:enter-start="translate-y-8"
x-transition:enter-end="translate-y-0"
x-transition:leave="transition-transform ease-in duration-300"
x-transition:leave-start="translate-y-0"
x-transition:leave-end="translate-y-8"