Skip to component content

Hint at content beyond a scroll boundary without adding visible chrome.

Vertical scrolling

Combine scroll-fade with overflow-y-auto to show a mask only while more content remains above or below.

Review the latest workspace activity.

Compare the proposed navigation changes.

Confirm the accessible names.

Check the compact density.

Test the dark theme.

Verify the right-to-left layout.

Publish the approved update.

<div class="scroll-fade no-scrollbar overflow-y-auto border rounded-4 p-3 w-100" style="height: 14rem; max-width: 20rem;">
  <div class="vstack gap-3">
    <p class="mb-0 pb-3 border-bottom">Review the latest workspace activity.</p>
    <p class="mb-0 pb-3 border-bottom">Compare the proposed navigation changes.</p>
    <p class="mb-0 pb-3 border-bottom">Confirm the accessible names.</p>
    <p class="mb-0 pb-3 border-bottom">Check the compact density.</p>
    <p class="mb-0 pb-3 border-bottom">Test the dark theme.</p>
    <p class="mb-0 pb-3 border-bottom">Verify the right-to-left layout.</p>
    <p class="mb-0">Publish the approved update.</p>
  </div>
</div>

No overflow

When the content fits, the utility stays quiet: no mask appears and no extra script is needed.

Short content keeps both edges clear.

No extra state or script is required.

<div class="scroll-fade no-scrollbar overflow-y-auto border rounded-4 p-3 w-100" style="height: 14rem; max-width: 20rem;">
  <div class="vstack gap-3">
    <p class="mb-0">Short content keeps both edges clear.</p>
    <p class="mb-0">No extra state or script is required.</p>
  </div>
</div>

Horizontal scrolling

Use scroll-fade-x for horizontally overflowing rows; its inline-axis behavior also works in RTL layouts.

Overview Activity Collaborators Permissions Automations Integrations
<div class="scroll-fade-x no-scrollbar d-flex gap-2 overflow-x-auto py-2 w-100" style="max-width: 24rem;">
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Overview</span>
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Activity</span>
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Collaborators</span>
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Permissions</span>
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Automations</span>
  <span class="flex-shrink-0 border rounded-pill px-3 py-2">Integrations</span>
</div>

Single edges

Choose physical edges such as scroll-fade-t or logical edges such as scroll-fade-s when only one boundary needs a cue.

Top

PlanningDesignReviewReleaseArchive

Bottom

PlanningDesignReviewReleaseArchive

Left

PlanningDesignReviewReleaseArchive

Right

PlanningDesignReviewReleaseArchive

Inline start

PlanningDesignReviewReleaseArchive

Inline end

PlanningDesignReviewReleaseArchive
<div class="row g-3 w-100" style="max-width: 40rem;">
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Top</p>
    <div class="scroll-fade-t no-scrollbar overflow-y-auto border rounded-3 p-3" style="height: 8rem;">
      <div class="vstack gap-3">
        <span>Planning</span>
        <span>Design</span>
        <span>Review</span>
        <span>Release</span>
        <span>Archive</span>
      </div>
    </div>
  </div>
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Bottom</p>
    <div class="scroll-fade-b no-scrollbar overflow-y-auto border rounded-3 p-3" style="height: 8rem;">
      <div class="vstack gap-3">
        <span>Planning</span>
        <span>Design</span>
        <span>Review</span>
        <span>Release</span>
        <span>Archive</span>
      </div>
    </div>
  </div>
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Left</p>
    <div class="scroll-fade-l no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3">
      <span class="flex-shrink-0">Planning</span>
      <span class="flex-shrink-0">Design</span>
      <span class="flex-shrink-0">Review</span>
      <span class="flex-shrink-0">Release</span>
      <span class="flex-shrink-0">Archive</span>
    </div>
  </div>
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Right</p>
    <div class="scroll-fade-r no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3">
      <span class="flex-shrink-0">Planning</span>
      <span class="flex-shrink-0">Design</span>
      <span class="flex-shrink-0">Review</span>
      <span class="flex-shrink-0">Release</span>
      <span class="flex-shrink-0">Archive</span>
    </div>
  </div>
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Inline start</p>
    <div class="scroll-fade-s no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3">
      <span class="flex-shrink-0">Planning</span>
      <span class="flex-shrink-0">Design</span>
      <span class="flex-shrink-0">Review</span>
      <span class="flex-shrink-0">Release</span>
      <span class="flex-shrink-0">Archive</span>
    </div>
  </div>
  <div class="col-12 col-sm-6">
    <p class="small text-body-secondary mb-2">Inline end</p>
    <div class="scroll-fade-e no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3">
      <span class="flex-shrink-0">Planning</span>
      <span class="flex-shrink-0">Design</span>
      <span class="flex-shrink-0">Review</span>
      <span class="flex-shrink-0">Release</span>
      <span class="flex-shrink-0">Archive</span>
    </div>
  </div>
</div>

Fade size

Override --scroll-fade-size when a surface needs a shorter or longer transition without changing the utility itself.

Compactfadekeepscontentnearby
Roomyfadecreatesalongertransition
<div class="d-grid gap-3 w-100" style="max-width: 24rem;">
  <div class="scroll-fade-x no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3" style="--scroll-fade-size: 1rem;">
    <span class="flex-shrink-0">Compact</span>
    <span class="flex-shrink-0">fade</span>
    <span class="flex-shrink-0">keeps</span>
    <span class="flex-shrink-0">content</span>
    <span class="flex-shrink-0">nearby</span>
  </div>
  <div class="scroll-fade-x no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3" style="--scroll-fade-size: 4rem;">
    <span class="flex-shrink-0">Roomy</span>
    <span class="flex-shrink-0">fade</span>
    <span class="flex-shrink-0">creates</span>
    <span class="flex-shrink-0">a</span>
    <span class="flex-shrink-0">longer</span>
    <span class="flex-shrink-0">transition</span>
  </div>
</div>

Disable the fade

Add scroll-fade-none to remove only the mask; scrolling and the hidden-scrollbar behavior remain intact.

Temporarilydisablethemaskwithoutchangingoverflow
<div class="scroll-fade-x scroll-fade-none no-scrollbar d-flex gap-3 overflow-x-auto border rounded-3 p-3 w-100" style="max-width: 24rem;">
  <span class="flex-shrink-0">Temporarily</span>
  <span class="flex-shrink-0">disable</span>
  <span class="flex-shrink-0">the</span>
  <span class="flex-shrink-0">mask</span>
  <span class="flex-shrink-0">without</span>
  <span class="flex-shrink-0">changing</span>
  <span class="flex-shrink-0">overflow</span>
</div>

Settings

Theme
Choose how Moo UI looks on this device.
Sidebar
Choose how the sidebar sits on the page.
Theme Builder
Tune catalog tokens and chart colors for this browser.
Base color
Theme color
Chart color
Heading font
Body font
Radius
Direction
Choose the reading direction. RTL flips the layout live.
Reset

Restore the default appearance.