Filter

Toggle chips to show and hide list items, no JavaScript. Each chip is a checkbox; :has() on the .casca-filter container hides any [data-filter] item whose category checkbox is unchecked. Uncheck a chip below to drop its rows. A no-JS .casca-filter-count shows how many remain (CSS counters skip hidden items), and a .casca-filter-empty message appears when everything is filtered out.

Showing of 6 events.

No events match — re-check a category above.

<div class="casca-filter">
  <fieldset class="casca-toggles">
    <label class="casca-toggle">
      <span class="casca-toggle-box">
        <input type="checkbox" class="casca-filter-input" value="1" checked>
      </span>
      <span class="casca-toggle-label">
        <span class="casca-toggle-swatch" style="--_color: var(--casca-color-1)"></span>
        Marketing
      </span>
    </label>
    <!-- ... one per category ... -->
  </fieldset>
  <ul>
    <li data-filter="1">Q3 campaign launched</li>
    <li data-filter="2">Acme deal closed</li>
  </ul>
</div>