Disclosure

A commercial license is required to use Tailwind Plus Elements.

The <el-disclosure> component provides a simple, accessible way to show and hide content — ideal for building things like toggleable accordion panels or expandable sections.

Component API

<el-disclosure>

Contains the content of the disclosure.

Attributes
hiddenWhether the disclosure is initially hidden (closed).
openAutomatically synced with the hidden attribute.
Data attributes (Read-only)
data-closedPresent before transitioning in, and when transitioning out.
data-enterPresent when transitioning in.
data-leavePresent when transitioning out.
data-transitionPresent when transitioning in or out.
Methods
show()Shows the disclosure.
hide()Hides the disclosure.
toggle()Toggles the disclosure.
Commands
--showShows the disclosure.
--hideHides the disclosure.
--toggleToggles the disclosure.

Examples

Basic example

Use the <el-disclosure> component, along with a native <button>, to build a disclosure:

<button command="--toggle" commandfor="my-disclosure" type="button">
  What's the best thing about Switzerland?
</button>

<el-disclosure hidden id="my-disclosure">
  I don't know, but the flag is a big plus.
</el-disclosure>

Opening a disclosure

You can open disclosures using the --show invoker command:

<button command="--show" commandfor="my-disclosure" type="button">
  Show disclosure
</button>

<el-disclosure hidden id="my-disclosure">
  <!-- ... -->
</el-disclosure>

Alternatively you can remove the hidden attribute to open it:

- <el-disclosure hidden>
+ <el-disclosure>
    <!-- ... -->
  </el-disclosure>

You can also programmatically open disclosures using the show() method:

<el-disclosure hidden id="my-disclosure">
  <!-- ... -->
</el-disclosure>

<script type="module">
  const disclosure = document.getElementById('my-disclosure');
  disclosure.show();
</script>

Closing a disclosure

You can close disclosures using the --hide invoker command:

<button command="--hide" commandfor="my-disclosure" type="button">
  Hide disclosure
</button>

<el-disclosure id="my-disclosure">
  <!-- ... -->
</el-disclosure>

Alternatively you can add the hidden attribute to close it:

- <el-disclosure>
+ <el-disclosure hidden>
    <!-- ... -->
  </el-disclosure>

You can also programmatically close disclosures using the hide() method:

<el-disclosure id="my-disclosure">
  <!-- ... -->
</el-disclosure>

<script type="module">
  const disclosure = document.getElementById('my-disclosure');
  disclosure.hide();
</script>

Toggling a disclosure

You can toggle disclosures using the --toggle invoker command:

<button command="--toggle" commandfor="my-disclosure" type="button">
  Toggle disclosure
</button>

<el-disclosure hidden id="my-disclosure">
  <!-- ... -->
</el-disclosure>

You can also programmatically toggle disclosures using the toggle() method:

<el-disclosure hidden id="my-disclosure">
  <!-- ... -->
</el-disclosure>

<script type="module">
  const disclosure = document.getElementById('my-disclosure');
  disclosure.toggle();
</script>

Adding transitions

To animate the opening and closing of the disclosure, target the data-closed, data-enter, data-leave, and data-transition attributes with CSS to style the different stages of the transition:

<el-disclosure hidden class="transition transition-discrete duration-1000 data-closed:opacity-0">
  <!-- ... -->
</el-disclosure>