Reveal
IntersectionObserver-powered entry transitions with reduced-motion and no-dependency fallbacks
Content that reveals on scroll
Accessibility
- Treat the component as presentational unless it exposes interactive affordances, and label any interactive affordances explicitly.
- Keep heading, reading, and focus order aligned with the surrounding content.
Styled quick start
Copy this entrypoint first. It includes the imports required to get the component on screen.
svelte
<script lang="ts">
import '@dryui/ui/themes/default.css';
import '@dryui/ui/themes/dark.css';
import { Reveal, Card } from '@dryui/ui';
</script>
<Reveal variant="slide-up" delay={120}>
<Card.Root>
<Card.Content>Stage content as it enters the viewport.</Card.Content>
</Card.Root>
</Reveal> Import options
Root package
ts
import { Reveal } from '@dryui/ui' Per-component subpath
ts
import { Reveal } from '@dryui/ui/reveal' API
Props, CSS variables, and the public data attributes you can target when styling.
| Prop | Type | Description | Default | Required | Bindable |
|---|---|---|---|---|---|
| variant | fadeslide-upscale-inblur-upmask-up | Visual style preset for the component. | 'fade' | — | — |
| once | boolean | — | true | — | — |
| threshold | number | — | 0.18 | — | — |
| delay | number | — | — | — | — |
| duration | number | — | — | — | — |
| distance | number | string | — | — | — | — |
| blendMode | BlendMode | — | — | — | — |
| children | Snippet | Content rendered inside the component. | — | ✓ | — |