Measurements are in inches. For the best fit, measure yourself and compare with the chart below.
| Size | chest (in) | waist (in) | hips (in) | length (in) |
|---|---|---|---|---|
| XS | 32-34 | 26-28 | 34-36 | 26 |
| S | 34-36 | 28-30 | 36-38 | 27 |
| M | 38-40 | 32-34 | 40-42 | 28 |
| L | 42-44 | 36-38 | 44-46 | 29 |
| XL | 46-48 | 40-42 | 48-50 | 30 |
Measurement chart table with chest, waist, hips, and length columns. Perfect for clothing product pages and sizing reference.
Measurement chart for clothing product pages: a titled table whose columns (chest, waist, hips, length, or any other fields you pass) are derived from your data rather than hardcoded, with zebra-striped rows and a unit suffix on each header.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/ecommerce11"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/ecommerce11"This installs the block to components/beste/block/ecommerce11.tsx and the Table shadcn/ui primitive it uses.
The installed file exports ecommerce11Demo alongside the block: the exact props behind the preview above. Spread it to get a working size table in one line.
import { Ecommerce11, ecommerce11Demo } from "@/components/beste/block/ecommerce11";
export default function ProductPage() {
return <Ecommerce11 {...ecommerce11Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Ecommerce11 } from "@/components/beste/block/ecommerce11";
export default function ProductPage() {
return (
<Ecommerce11
heading="Size Guide"
description="Measurements are in centimeters."
unit="cm"
sizes={[
{ size: "S", chest: "86-91", waist: "71-76" },
{ size: "M", chest: "97-102", waist: "81-86" },
{ size: "L", chest: "107-112", waist: "91-96" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Section heading above the table |
description | string | – | Supporting text under the heading |
unit | "in" | "cm" | "in" | Suffix appended to each measurement column header |
sizes | SizeRow[] | [] | Table rows, one per size |
className | string | – | Extra classes for the outer <section> |
type SizeRow = {
size: string;
chest?: string;
waist?: string;
hips?: string;
length?: string;
};Object.keys(sizes[0]) (excluding size), not hardcoded to chest/waist/hips/length; the column set follows whichever fields the first row happens to have, so a later row with an extra field the first row lacks won't get a column at all.unit is purely a label suffix appended to each column header (e.g. "Chest (in)"); the component does not convert or recompute the underlying numeric values between inches and centimeters.bg-background and bg-muted/30 by index for zebra striping, inside the shadcn Table primitive.row.size, so every size label passed into sizes must be unique.