Table), column headers (TableTh), and rows (TableTr).layout="auto", default) — columns adjust to fit their content. Use for most Tables.layout="fixed") — columns divide equally regardless of content. Use for predictable sizing when all columns carry similar amounts of data.isBorderless) — removes the separator between entries for a cleaner presentation. Best for smaller data sets.isStriped) — alternates between two background colors. Use for data-dense Tables with many rows of similarly structured data.2px light blue outline. Applied automatically.isActive on TableTh) — highlights a column header in the accent color. Use it to indicate the current sort column.shouldHighlightOnHover) — rows change background color on mouse hover to indicate interactivity. Off by default.withDepthPadding on TableTd) — adds inline-start padding calculated from a nesting level, indenting child rows to convey hierarchy in tree-like or nested tables. Apply it to the first cell of each child row.caption on every Table — assistive technologies rely on it for the Table's purpose and the type of data it contains.Table wraps TableThead, TableTbody, and TableTfoot; each of those wraps TableTr; rows hold TableTh and TableTd.caption is required on Table. Both frameworks throw at render when it is missing or an empty string. It renders as a visually hidden <caption>.onClick to TableTh to make a header clickable — the component renders an internal <button> for it. Never wrap header content in your own button.TableTh sets its scope attribute from its parent context: col inside TableThead or TableTfoot, row inside TableTbody. A TableTh inside TableTbody also takes cell styling rather than header styling.shouldHighlightOnHover and isBorderless exist on both Table and TableTr. Set them on TableTr to apply the behavior to individual rows.withDepthPadding comes from the tableRowDepth CSS variable (vars.tableRowDepth from @customerio/pluma-components/css), assigned as an inline style on the row — there is no depth prop, despite the design doc's wording. Padding resolves to (depth + 1) × the cell's inline-start padding, and depth defaults to 1 when the variable is unset.Table and every subcomponent extend Box, accept its layout and sprinkle props, and are polymorphic via as.Pluma (<PlumaTable>, <PlumaTableThead>, <PlumaTableTbody>, <PlumaTableTfoot>, <PlumaTableTr>, <PlumaTableTh>, <PlumaTableTd>). Props use @arg syntax (@caption, @layout, @isStriped), and content is passed via {{yield}} (default block).