Files
2025-08-13 09:33:19 -07:00

2.0 KiB

Alpine.js Documentation - Directives

Alpine directives are attributes that you can add to HTML elements to give them special behavior.

x-show

x-show is one of the most useful and powerful directives in Alpine. It provides an expressive way to show and hide DOM elements.

Here's an example of a simple dropdown component using x-show.

<div x-data="{ open: false }">


n<button x-on:click="open = ! open">Toggle Dropdown</button>


n<div x-show="open">


nDropdown Contents...


n</div>


n</div>

When the "Toggle Dropdown" button is clicked, the dropdown will show and hide accordingly.

If the "default" state of an x-show on page load is "false", you may want to use x-cloak on the page to avoid "page flicker" (The effect that happens when the browser renders your content before Alpine is finished initializing and hiding it.) You can learn more about x-cloak in its documentation.

With transitions

If you want to apply smooth transitions to the x-show behavior, you can use it in conjunction with x-transition. You can learn more about that directive here, but here's a quick example of the same component as above, just with transitions applied.

<div x-data="{ open: false }">


n<button x-on:click="open = ! open">Toggle Dropdown</button>


n<div x-show="open" x-transition>


nDropdown Contents...


n</div>


n</div>

Using the important modifier

Sometimes you need to apply a little more force to actually hide an element. In cases where a CSS selector applies the display property with the !important flag, it will take precedence over the inline style set by Alpine.

In these cases you may use the .important modifier to set the inline style to display: none !important.

<div x-data="{ open: false }">


n<button x-on:click="open = ! open">Toggle Dropdown</button>


n<div x-show.important="open">


nDropdown Contents...


n</div>


n</div>

Code highlighting provided by Torchlight