Tables Overview
Trongate CSS provides clean, responsive table styling out of the box. Tables are automatically styled for readability with alternating row colors, borders, and hover effects - all without requiring additional classes.
Basic Example
Here's a simple table that demonstrates the default styling:
| Name | Position | Location |
|---|---|---|
| John Smith | Software Engineer | London |
| Sarah Johnson | UX Designer | Berlin |
| Michael Brown | Project Manager | New York |
Table Structure
A well-structured HTML table should include both <thead> and <tbody> sections. While these tags are technically optional, using them provides several benefits:
The <thead> Element
- Defines the header section of your table
- Contains one or more rows (
<tr>) of header cells (<th>) - Automatically styled with the primary theme color in Trongate CSS
- Helps screen readers identify header information for accessibility
- Makes it easier to style header cells differently from body cells
The <tbody> Element
- Contains the main content of your table
- Groups table rows (
<tr>) and data cells (<td>) - Enables features like scrollable tables with fixed headers
- Helps maintain table structure when rows are dynamically added or removed
- Improves readability of your HTML code
Default Features
Trongate CSS applies the following styles to tables automatically:
- Full-width layout that adapts to container size
- Consistent padding (0.7em) for all cells
- Borders around all cells using the primary theme color
- Alternating row colors for better readability
- Hover effect on table rows
- Themed header styling using the primary color
- White text color for header cells for optimal contrast
Basic Table Example with Data
Here's a more comprehensive example showing a data-rich table with multiple columns:
| Product ID | Product Name | Category | Price | Stock |
|---|---|---|---|---|
| 001 | Wireless Mouse | Electronics | $29.99 | 45 |
| 002 | USB-C Cable | Accessories | $12.99 | 132 |
| 003 | Bluetooth Speaker | Electronics | $79.99 | 28 |
| 004 | Laptop Stand | Accessories | $34.99 | 56 |
While tables are great for displaying tabular data, they should not be used for layout purposes. For layout, use CSS Grid or Flexbox instead.
- Always use
<th>elements for header cells instead of<td>with bold text. - Include both
<thead>and<tbody>tags for better structure. - Keep tables as simple as possible - avoid nested tables.
- Use appropriate column widths to prevent content from being squeezed.
- Consider using a container class to control the table's maximum width.