svelte-table-layout Svelte Themes

Svelte Table Layout

an alternative table layout created using CSS Grid and JS observers

Svelte Table Layout

A dynamic table layout for Svelte, a drop-in replacement for HTML tables that use CSS grid under the hood. It lets you easily style columns and rows even if there are cells with nontrivial colspan & rowspan.

<Table class="my-table">
    <tr style="background: gray">
        <td>grey</td>
        <td>row</td>
        <td>with no decoration</td>
    </tr>
    <tr style="background: pink; border: 1px solid red;">
        <td colspan={2}>pink row</td>
        <td>with red border</td>
    </tr>
</Table>

<style>
    /* make all cells that intersect the third column bold */
    :global(.my-table [data-column~='3']) {
        font-weight: bold;
    }
</style>

It also supports colspan=row to make cells span the entire row, and lets you align the columns of two different tables.

<Table bind:computedColumnWidths={columns}>
    <tr>
        <td>a-really-long-cell</td>
        <td>normal-cell</td>
        <td>xd</td>
    </tr>
    <tr>
        <td colspan="row">lorem</td>
    </tr>
</Table>

<Table {columns}>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
    </tr>
    <tr>
        <td>d</td>
        <td>e</td>
        <td>f</td>
    </tr>
</Table>

Top categories

Loading Svelte Themes