
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@inkdes-email/table
Advanced tools
Table component for email.
# pnpm
pnpm add @inkdes-email/table
# npm
npm install @inkdes-email/table
# yarn
yarn add @inkdes-email/table
import { Table } from "@inkdes-email/table";
export default function EmailTemplate() {
return (
<Table padding="10px" border borderColor="#e5e5e5" spacing="20px" width="100%">
<Table.Row>
<Table.Col>Your content here</Table.Col>
</Table.Row>
</Table>
);
}
import { Table } from "@inkdes-email/table";
export default function ExampleRowsAndCols() {
return (
<Table padding="10px" border>
<Table.Row align="left" valign="middle">
<Table.Col>Cell 1</Table.Col>
<Table.Col>Cell 2</Table.Col>
</Table.Row>
<Table.Row>
<Table.Col>Cell 3</Table.Col>
<Table.Col>Cell 4</Table.Col>
</Table.Row>
</Table>
);
}
padding, border, and borderColor from Table flow to Table.Row and Table.Col via context.
export default function ExampleContext() {
return (
<Table padding="12px" border borderColor="#ddd">
<Table.Row>
<Table.Col>Left</Table.Col>
<Table.Col>Right</Table.Col>
</Table.Row>
</Table>
);
}
Table.Row can override context for its children; Table.Col can override for itself.
export default function ExampleOverrides() {
return (
<Table padding="12px" border borderColor="#ddd">
<Table.Row padding="6px" borderColor="#bbb">
<Table.Col>Compact A</Table.Col>
<Table.Col border={false} padding="16px">Emphasized B</Table.Col>
</Table.Row>
</Table>
);
}
Table.Col extends native td props, so attributes like colSpan work as expected.
export default function ExampleColSpan() {
return (
<Table padding="10px" border>
<Table.Row>
<Table.Col colSpan={2} padding="8px">Section Header</Table.Col>
</Table.Row>
<Table.Row>
<Table.Col width="70%">Item A</Table.Col>
<Table.Col width="30%">$10</Table.Col>
</Table.Row>
</Table>
);
}
export default function ExampleAlignment() {
return (
<Table padding="10px" border>
<Table.Row align="center" valign="top" backgroundColor="#fafafa">
<Table.Col>Centered Top</Table.Col>
<Table.Col>Also Centered</Table.Col>
</Table.Row>
</Table>
);
}
Table| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| dir | "ltr" | "rtl" | No | Comes from wrapping Html component's dir context prop which is ltr | Text direction |
| spacing | string | No | Comes from wrapping Html component's defaultSpacing context prop which is 20px | Spacing bottom, by default comes from Html defaultSpacing prop |
| padding | string | No | "10px" | Inner padding applied to cells via context. |
| border | boolean | No | false | Enables cell borders. |
| borderColor | string | No | "#e5e5e5" | Border color when border is enabled. |
| width | string | No | "100%" | Width of the rendered table. |
| children | React.ReactNode | Yes | — | Typically one or more Table.Row. |
Notes:
spacing is provided, an outer wrapper table is used to apply spacing.padding, border, and borderColor are provided to descendants via context and can be overridden by Table.Row or Table.Col.Table.Row| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| children | React.ReactNode | Yes | — | One or more Table.Col. |
| backgroundColor | string | No | — | Background color for the row. |
| dir | "ltr" | "rtl" | No | "ltr" | Text direction for the content |
| align | "left" | "center" | "right" | No | "left" | Horizontal text alignment for cells in the row. |
| valign | "top" | "middle" | "bottom" | No | "middle" | Vertical alignment for cells in the row. |
| padding | string | No | — | Overrides context padding for this row's cells. |
| border | boolean | No | — | Overrides context border for this row's cells. |
| borderColor | string | No | — | Overrides context borderColor for this row's cells. |
Table.Col| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| children | React.ReactNode | Yes | — | Content for the cell. |
| backgroundColor | string | No | — | Background color for the cell. |
| dir | "ltr" | "rtl" | No | "ltr" | Text direction for the content |
| spacing | string | No | ||
| padding | string | No | — | Padding for the cell (defaults from context if not provided). |
| border | boolean | No | — | Whether to set a border on the cell (defaults from context if not provided). |
| borderColor | string | No | — | Color for the cell border when border is set (defaults from context if not provided). |
| width | string | No | — | Width of the cell. |
| align | string | No | — | alignment of cell |
Additional:
Table.Col extends native td props, so attributes like colSpan and rowSpan are supported.MIT © iClasser
FAQs
A React email table component to wrap emails (InkDes Mailer)
We found that @inkdes-email/table demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.