Adventureland Registry

Feed Section

A filterable, paginated feed list with a sticky GSAP scramble heading, a hover image-preview cursor, and a mobile drawer for filters.

FeedSection renders a full-page feeds layout with Type and Topic accordion filters (sidebar on desktop, a Drawer sheet on mobile), a hover image preview, load-more pagination, and GSAP expand/collapse animations per item. The sticky header scrambles to leet-speak on stick. All data is provided via props.

Installation

npx shadcn@latest add @adv/feed-section

Usage

import { FeedSection } from '@/components/sections/feed-section';

<FeedSection
  items={feedItems}
  filterTypes={[{ id: 'case-study', label: 'Case Study', count: 4 }]}
  filterTopics={[{ id: 'ai', label: 'AI', count: 5 }]}
  heading="FEEDS"
  showFilters
/>

Example

Props

PropTypeDefaultDescription
itemsFeedItem[]Feed items: { id, date, name, type, tags, summary?, author?, link?, image? }.
filterTypesFilterOption[][]Options for the "Type" accordion filter.
filterTopicsFilterOption[][]Options for the "Topic" accordion filter.
initialFiltersRecord<string, string[]>{}Pre-selected filter ids per group.
initialFiltersOpenbooleanfalseOpen filter accordions on mount.
showFiltersbooleantrueShow/hide the filter sidebar and mobile drawer.
headingstring"FEEDS"Sticky header label and scramble target.
showTagsbooleanfalseShow item tags in the collapsed row.
getItemVisibility(item) => 'visible' | 'hidden' | 'inert'() => 'visible'Per-item visibility. 'hidden' excludes; 'inert' disables the link button.

On this page