Skip to content

PageSection & Feature Components

Layout components for building feature sections, CTAs, and content blocks.

PageSection

Two-column layout with slots for content and visuals. Inspired by Nuxt UI PageHero/PageCTA.

Props API

PropTypeDefaultDescription
asstring'section'HTML element to render
headlinestring-Small text above title
titlestring-Main section title
descriptionstring-Section description text
orientation'vertical' | 'horizontal''vertical'Layout direction
reversebooleanfalseSwap content/visual order
variant'default' | 'muted' | 'dark''default'Background style
linksPageSectionLink[]-CTA buttons
align'start' | 'center' | 'end''center'Vertical alignment
containedbooleantrueConstrain max-width

Slots

SlotDescription
topContent above the main container
headerOverride headline + title + description
headlineCustom headline content
titleCustom title content
descriptionCustom description content
bodyContent between description and footer
footerOverride links area
linksCustom link buttons
defaultVisual side content (images, marquees, etc.)
bottomContent below the main container

Basic Vertical Layout

Component Demo

Vertical Layout Example

This is a basic vertical layout. Content stacks in a single column.

Horizontal Layout with Visual

Horizontal

Two-Column Layout

On desktop, content appears side-by-side. On mobile, it stacks vertically.

Horizontal Reversed with Feature List

Reversed Layout Example

The reverse prop swaps the order of content and visual columns.
Feature One
Description of the first feature goes here
Feature Two
Description of the second feature goes here
Feature Three
Description of the third feature goes here
Image or Video

Muted Background Variant

Muted Background

The muted variant adds a subtle background color to the section.

FeatureItem

Individual feature block with icon, title, and description.

Props API

PropTypeDefaultDescription
iconComponent-Lucide icon component
titlestringrequiredFeature title
descriptionstring-Feature description
orientation'horizontal' | 'vertical''horizontal'Layout direction
hrefstring-Link destination
targetstring-Link target

Slots

SlotDescription
iconCustom icon content
titleCustom title content
descriptionCustom description content

Horizontal (Default)

First Feature
Description text for the first feature item
Second Feature
Description text for the second feature item
Third Feature
Description text for the third feature item

Vertical Orientation

Fast
Parallel execution
Secure
Air-gapped support
Team Ready
Multi-user workflows

FeatureList

Renders an array of FeatureItems with consistent spacing.

Props API

PropTypeDefaultDescription
itemsFeatureItemData[]-Array of feature objects
orientation'horizontal' | 'vertical''horizontal'Item layout
gap'sm' | 'md' | 'lg''md'Space between items
direction'column' | 'row''column'List stack direction

FeatureItemData

ts
interface FeatureItemData {
  icon?: Component    // Lucide icon
  title: string       // Required
  description?: string
  href?: string
}

Column Layout (Default)

Feature One
Description of the first feature goes here
Feature Two
Description of the second feature goes here
Feature Three
Description of the third feature goes here

Small Gap

Feature One
Description of the first feature goes here
Feature Two
Description of the second feature goes here
Feature Three
Description of the third feature goes here

Skeleton

Animated loading placeholder for development and loading states.

Props API

PropTypeDefaultDescription
asstring'div'HTML element to render
widthstring-CSS width value
heightstring-CSS height value
rounded'none' | 'sm' | 'md' | 'lg' | 'full''md'Border radius
staticbooleanfalseDisable animation

Basic Skeletons

Card Placeholder

Different Rounded Styles

Static (No Animation)


Placeholder

Visual placeholder with diagonal line pattern. Inspired by Nuxt UI. Use for layout mockups and where content will be added.

Props API

PropTypeDefaultDescription
widthstring-CSS width value
heightstring-CSS height value
aspectRatiostring-CSS aspect-ratio (e.g., '16/9')
rounded'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full''lg'Border radius
labelstring-Optional label text

Basic Placeholders

Image

With Aspect Ratio

Square
4:3
16:9

Different Rounded Styles

In PageSection

Placeholder Example

The visual side uses a Placeholder component to show where content will go.
Video or Screenshot

Complete Example

A full-featured section combining multiple elements:

Example

Complete Section Layout

This example shows all the features: headline, title, description, feature list, custom link, and a visual element.
Body Slot
Content placed in the body slot
Custom Links
Using the links slot for custom buttons
Visual Side
LogoMarquee in the default slot

Released under the Apache 2.0 License.