X Enterprises
nuxt-x-affiliate

Features

Feature list in a grid, a stacked list, or alternating image/text rows, revealed on scroll.

Features

Icon or image, title, blurb, and an optional "Learn more" link, in three layouts. Items fade in on scroll via the layer's reveal observer — no setup required.

Components

<XAFFeatures />

<XAFSection bg="subtle">
  <XAFFeatures :features="features" layout="grid" :columns="3" />
</XAFSection>

<script setup>
const features = [
  {
    icon: 'i-lucide-flask-conical',
    title: 'Independently tested',
    description: 'Every product bought at retail, tested on the same bench.',
    link: { to: '/about/editorial', label: 'How we test' },
  },
  {
    img: { src: '/bench.jpg', alt: 'Testing bench' },
    title: 'Same conditions, every time',
    description: 'Controlled comparisons, not vendor spec sheets.',
  },
]
</script>

Props

PropTypeDefaultDescription
featuresFeature[]3 samplesThe items to render
layout'grid' | 'list' | 'alternating''grid'Arrangement
columns2 | 3 | 43Columns in the grid layout

Feature object

KeyTypeDescription
titlestringFeature name
descriptionstringSupporting line
iconstringIconify name
img{ src, alt? }Image. Rendered in grid and alternating only
link{ to, label?, target? } | stringOptional "Learn more" link

Tips

  • alternating swaps image and copy sides on every other row — the strongest layout when each feature has a real photo.
  • list ignores img by design; it has no room reserved for one.

AI Context

component: XAFFeatures
package: "@xenterprises/nuxt-x-affiliate"
use-when: Feature grid, list, or alternating image/text rows
Copyright © 2026