components/elements/CardGrid/CardGrid.jsxjavascript
import "./CardGrid.scss";
/**
* Stat tiles plus an optional highlight card ("cardGrid" element type), e.g.
* "20% perceived time savings" alongside a customer statement.
*
* @param {Object} props
* @param {Array<{value: string, label: string}>} props.stats - Stat tiles (value + caption).
* @param {{headline: string, text: string}|null} props.highlight - Optional emphasized card.
*/
export const CardGrid = ({ stats, highlight }) => {
return (
<div className="card-grid">
<div className="card-grid__stats" style={{ "--count": stats.length }}>
{stats.map((stat, index) => (
<div className={`card-grid__card card-grid__stat`} key={index}>
<div className="card-grid__stat-value">{stat.value}</div>
<div className="card-grid__stat-label">{stat.label}</div>
</div>
))}
</div>
{highlight && (
<div className="card-grid__card card-grid__highlight">
<div className="card-grid__highlight-headline">{highlight.headline}</div>
<div className="card-grid__highlight-text">{highlight.text}</div>
</div>
)}
</div>
);
};