Theme
← Blocks
Interactive Hero Card Selector
Intent-driven hero with selectable cards that change the page context based on user role or goal.
Preview
Open in new tabInteractive hero
Let visitors self-select their journey from the first scroll.
Hero Card Selector compositions use Card (with selected state), Grid, and Button for intent-driven landing page heroes.
5
intent cards
3
interaction states
5
content swaps
Default
Intent grid
Five cards: Travel Manager, Finance Lead, Executive, Road Warrior, Admin.
Selection states
Hover lift, selected ring, and content panel swap on selection.
- Optimized for
- Multi-persona products, B2B landing pages, and solution-based marketing.
- Requires
- Card component with selected state enhancement.
Variants
Intent cards grid
Five selectable cards representing different user intents.
Hover/selected states
Visual feedback with ring selection and content update.
Source
Copy this source into your app and own it. The theme imports are already included.
svelte
<script lang="ts">
import '@dryui/ui/themes/default.css';
import '@dryui/ui/themes/dark.css';
import { Badge, Button, Card, Container, DescriptionList, Fieldset, Grid, Heading, Stack, Text } from '@dryui/ui';
</script>
<Container>
<Stack gap="xl">
<Badge variant="outline">Marketing</Badge>
<Heading level={1}>Let visitors self-select their journey from the first scroll.</Heading>
<Text as="p">Hero Card Selector compositions use Card (with selected state), Grid, and Button for intent-driven landing page heroes.</Text>
<Stack gap="sm" style="flex-direction: row; flex-wrap: wrap;">
<Button>Use hero selector</Button>
<Button variant="outline">See card patterns</Button>
</Stack>
<Grid columns={3} gap="md">
<Card.Root>
<Card.Content>
<Heading level={3}>5</Heading>
<Text as="p">intent cards</Text>
</Card.Content>
</Card.Root>
<Card.Root>
<Card.Content>
<Heading level={3}>3</Heading>
<Text as="p">interaction states</Text>
</Card.Content>
</Card.Root>
<Card.Root>
<Card.Content>
<Heading level={3}>5</Heading>
<Text as="p">content swaps</Text>
</Card.Content>
</Card.Root>
</Grid>
<Grid columns={2} gap="md">
<Card.Root>
<Card.Header>
<Stack gap="xs">
<Badge variant="soft">Default</Badge>
<Heading level={3}>Intent grid</Heading>
</Stack>
</Card.Header>
<Card.Content>
<Stack gap="sm">
<Text as="p">Five cards: Travel Manager, Finance Lead, Executive, Road Warrior, Admin.</Text>
</Stack>
</Card.Content>
</Card.Root>
<Card.Root>
<Card.Header>
<Stack gap="xs">
<Heading level={3}>Selection states</Heading>
</Stack>
</Card.Header>
<Card.Content>
<Stack gap="sm">
<Text as="p">Hover lift, selected ring, and content panel swap on selection.</Text>
</Stack>
</Card.Content>
</Card.Root>
</Grid>
<DescriptionList.Root>
<DescriptionList.Item>
<DescriptionList.Term>Optimized for</DescriptionList.Term>
<DescriptionList.Description>Multi-persona products, B2B landing pages, and solution-based marketing.</DescriptionList.Description>
</DescriptionList.Item>
<DescriptionList.Item>
<DescriptionList.Term>Requires</DescriptionList.Term>
<DescriptionList.Description>Card component with selected state enhancement.</DescriptionList.Description>
</DescriptionList.Item>
</DescriptionList.Root>
<Fieldset.Root>
<Fieldset.Legend>Included patterns</Fieldset.Legend>
<Fieldset.Content>
<Text as="p">• Selectable card grid</Text>
<Text as="p">• Visual selection ring</Text>
<Text as="p">• Dynamic content area</Text>
<Text as="p">• Role-based messaging</Text>
</Fieldset.Content>
</Fieldset.Root>
</Stack>
</Container>