A loading indicator used as a placeholder for specific content.

<div x-data="skeleton()" @update-skeleton.window="randomize()" aria-busy="true" aria-live="polite" role="alert" class="animate-pulse flex grow space-x-1 max-w-2xl">
    <div class="w-full"><template x-for="item in lines">
            <div>
                <div class="h-4 bg-tertiary-300 rounded-sm" :class="randomWidthClass()"></div>
                <div class="w-full h-2"></div>
            </div>
        </template></div>
</div>
{% apply spaceless %}
  {% set defaultClasses = ['animate-pulse'] %}
  {% if classes and classes is iterable %}
    {% set defaultClasses = defaultClasses|merge(classes) %}
  {% endif %}
  {% set mediaClasses = [] %}
  {% set bodyClasses = ['w-full'] %}
  {# Prop: component #}
  {% if component|lower == 'list' %}
    {# "List" layout #}
    {% set defaultClasses = defaultClasses|merge(['flex', 'grow', 'space-x-1', 'max-w-2xl']) %}
  {% elseif component|lower == 'teaser' %}
    {# "Teaser" layout #}
    {% set defaultClasses = defaultClasses|merge([
      'grid',
      'grid-cols-1',
      'md:grid-cols-10',
      'gap-4',
      'w-full',
      'md:max-h-96',
      'lg:max-h-max',
    ]) %}
    {# Prop: padding #}
    {% if padding is not defined or padding != 'none' %}
      {% set defaultClasses = defaultClasses|merge(['px-2', 'lg:px-6', 'py-4']) %}
    {% endif %}
    {% set mediaClasses = mediaClasses|merge(['col-span-1', 'md:col-span-3', 'lg:col-span-2', 'h-40', 'md:h-56']) %}
    {% set bodyClasses = bodyClasses|merge(['col-span-1', 'md:col-span-7', 'lg:col-span-8']) %}
  {% else %}
    {# Default: "Card" layout #}
    {% set defaultClasses = defaultClasses|merge(['flex', 'flex-col', 'grow', 'space-y-3', 'max-w-sm']) %}
    {% set mediaClasses = mediaClasses|merge(['h-56', 'mb-2']) %}
  {% endif %}
  <div
    x-data="skeleton()"
    @update-skeleton.window="randomize()"
    aria-busy="true"
    aria-live="polite"
    role="alert"
    class="{{ defaultClasses|join(' ') }}"
  >
    {% if component|lower != 'list'%}
      <div class="{{ mediaClasses|join(' ') }}">
        <div class="w-full h-full bg-tertiary-300 rounded-sm"></div>
      </div>
    {% endif %}
    <div class="{{ bodyClasses|join(' ') }}">
      <template x-for="item in lines">
        <div>
          <div class="h-4 bg-tertiary-300 rounded-sm" :class="randomWidthClass()"></div>
          <div class="w-full h-2"></div>
        </div>
      </template>
    </div>
  </div>
{% endapply %}