ProductList
apps/www/src/sections/ProductList.astro · 31 lines · group Models (product catalog)
ProductList — the catalog itself: one <Product> per row, text and feature list on the left, the picture on the right.
In the fleet
Used on 1 site built with this engine.
Samples 1
- Air and soil temperature
- One season on a battery
- Mounts on a standard post
- SMS and e-mail alerts


ENTRY
Station N1
For a single field
- Air and soil temperature
- One season on a battery
- Mounts on a standard post
- SMS and e-mail alerts
- Leaf wetness and wind
- Expansion port for extra sensors
- Four kilometres to the gateway
- Field-swappable sensors


Station N3
For several fields and a demanding crop
- Leaf wetness and wind
- Expansion port for extra sensors
- Four kilometres to the gateway
- Field-swappable sensors
MDX of this sample
<ProductList>
<Product
kicker="ENTRY"
name="Station N1"
description="For a single field"
href="/stations/n1/"
linkText="Read more"
features={['Air and soil temperature', 'One season on a battery', 'Mounts on a standard post', 'SMS and e-mail alerts']}
image="product-01.jpg"
/>
<Product
name="Station N3"
description="For several fields and a demanding crop"
href="/stations/n3/"
linkText="Read more"
features={['Leaf wetness and wind', 'Expansion port for extra sensors', 'Four kilometres to the gateway', 'Field-swappable sensors']}
image="product-02.jpg"
/>
</ProductList>Props
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | |||
| kicker | string | |||
| title | string | |||
| description | string | |||
| theme | Theme | 'light' |
Source apps/www/src/sections/ProductList.astro @ gitt.one
---
/**
* ProductList — the catalog itself: one <Product> per row, text and feature
* list on the left, the picture on the right.
*/
import Section from './_Section.astro';
import type { Theme } from './_Section.astro';
interface Props {
id?: string;
kicker?: string;
title?: string;
description?: string;
theme?: Theme;
}
const { id, kicker, title, description, theme = 'light' } = Astro.props;
---
<Section id={id} theme={theme}>
{(kicker || title || description) && (
<div class="mx-auto max-w-4xl text-center">
{kicker && <p class="text-base font-semibold uppercase tracking-wider text-primary-600">{kicker}</p>}
{title && <h2 class="mt-2 text-3xl font-extrabold sm:text-4xl">{title}</h2>}
{description && <p class="mt-3 text-xl text-gray-500">{description}</p>}
</div>
)}
<div class="mt-4 divide-y divide-gray-200" data-variant="list">
<slot />
</div>
</Section>Source links point to engine-astro@38c294d9. Samples are demo content: the components are the real ones, the copy and the pictures are made up.