Skip to content
Our free WordPress themes are downloaded over 7 MILLION times. Get them now!
table templates
Colorlib content is free. When you buy through links on our site, we may earn an affiliate commission. Read our affiliate disclosure

35 Beautiful HTML & CSS Table Templates & Examples 2026

These 35 HTML and CSS table templates cover the tables most sites need: data grids, user lists, price lists, schedules, order lists and a shopping cart table, each with a live demo.

The first 25 Colorlib tables were rebuilt in plain HTML and CSS, with a few lines of vanilla JavaScript only where a table needs behaviour, such as select-all checkboxes or expandable rows. None loads jQuery or Bootstrap files, yet each works on its own or as a Bootstrap table template inside a Bootstrap 4, 5 or 6 project, and all are free downloads.

The rest are our uiCookies set of ten tables, the Bootstrap table documentation, three CodePen examples and five newer 2026 Colorlib components with tables inside them, such as a feature comparison table and a paginated orders table.

Best CSS3 and Bootstrap Table Templates

Table of contents — all 30 table templates
  1. uiCookies Table Templates (10 templates)
  2. Fixed Column Table by Colorlib
  3. Fixed Header Table by Colorlib
  4. Table With Vertical & Horizontal Highlight by Colorlib
  5. Responsive Table V1 by Colorlib
  6. Responsive Table V2 by Colorlib
  7. Table V01
  8. Table V02
  9. Table V03
  10. Table V04
  11. Table V05
  12. Shopping Cart Table V06
  13. Table V07
  14. Table V08
  15. Table V09
  16. Table V10
  17. Table V11
  18. Table V12
  19. Table V13
  20. Table V14
  21. Table V15
  22. Table V16
  23. Table V17
  24. Table V18
  25. Table V19
  26. Table V20
  27. Bootstrap CSS
  28. Adaptive Pricing Table
  29. CSS3 Pricing Table
  30. Nutrition Facts Table in HTML & CSS

uiCookies Table Templates (10 templates)

uiCookies free CSS table and datatable templates

Ten table designs aimed at the cases a real project runs into rather than the showcase ones: a sortable datatable, a sticky-header table for long lists, a layout that stacks into cards on mobile, selectable and expandable rows, plus comparison and invoice tables.

The sortable table runs on a short piece of vanilla JavaScript instead of jQuery and DataTables.js, which keeps the page weight down considerably. Free download from our uiCookies library, with every design in its own self-contained file.

More info / Download Demo

1. Fixed Column Table by Colorlib

fixed column table

FreeBootstrap-ready · Best for: Wide records that scroll sideways

The first column stays pinned while the rest scroll horizontally, so a row never loses the label that identifies it. The demo is an eight-column employee record — position, start date, last activity, contacts, address, card number — the shape of data that normally forces you to hide columns on narrow screens. The rebuilt version needs no JavaScript at all, and the download dropped from 5.8 MB to 136 KB.

Download   Preview

2. Fixed Header Table by Colorlib

fixed header table

FreeBootstrap-ready · Best for: Long data sets that scroll past a screenful

The header row stays fixed while the body scrolls, so column names are still readable a hundred rows down. The demo fills it with a class timetable — class name, type, hours, trainer, spots remaining — but the markup takes any long list without changes. No script drives the fixed header any more; the whole download is 72 KB of HTML and CSS.

Download   Preview

3. Table With Vertical & Horizontal Highlight by Colorlib

table with vertical and horizontal highlight

FreeBootstrap-ready · Best for: Cross-referencing a cell in a grid

Hovering lights up the row and the column at the same time, which is what you want when a value only means something at an intersection. Six variations ship together — solid and gradient fills, sharp and rounded corners — all laid out over a seven-day grid. The crosshair highlight runs on a few lines of vanilla JavaScript, with no jQuery.

Download   Preview

4. Responsive Table V1 by Colorlib

responsive table v1

FreeBootstrap-ready · Best for: Order and invoice lists on mobile

Six commerce columns — date, order ID, name, price, quantity, total — that stay readable as the viewport narrows. A plain starting point for order histories and billing screens, with the responsive behavior handled in the stylesheet rather than bolted on later.

Download   Preview

5. Responsive Table V2 by Colorlib

responsive table v2

FreeBootstrap-ready · Best for: Mobile-first data lists

Built from div rows and cells rather than table elements, which is why it collapses so cleanly on small screens. Row hover is included, and because the structure is not table layout, changing how rows stack is a stylesheet edit rather than a markup rewrite.

Download   Preview

6. Table V01

table 01

FreeBootstrap-ready · Best for: A plain user list to build on

The most basic entry here: number, first name, last name, email, and a colored header band. Four columns and nothing else, which makes it the natural base to paste your own columns into rather than a finished screen. It is plain HTML and CSS with no JavaScript, so there is nothing to wire up.

More info / Download Demo

7. Table V02

table 02

FreeBootstrap-ready · Best for: Lists with a per-row delete control

The same four-column list as V01 with a delete control on every row — and nothing behind it to undo the action. On narrow screens it scrolls sideways instead of restructuring, so column alignment survives the trip to mobile.

More info / Download Demo

8. Table V03

table 03

FreeBootstrap-ready · Best for: Domain and hosting price lists

A registrar price grid: TLD, duration, registration, renewal and transfer columns, with a sign-up button on every row. Rows for .com, .net, .org, .biz, .info and .me are already filled in, so it is a text edit away from a working price list.

More info / Download Demo

9. Table V04

table 04

FreeBootstrap-ready · Best for: Weekly class and studio timetables

A Monday-to-Sunday schedule grid with images and times in each slot, rather than a row-per-record list. Previous and next month controls are drawn but not wired up, so the date logic is yours to supply.

More info / Download Demo

10. Table V05

table 05

FreeBootstrap-ready · Best for: User administration screens

A user list with the admin controls already in place: select checkbox, avatar, email, username, status, and a delete action. The status column is the piece most user tables need and most free snippets leave out.

More info / Download Demo

11. Shopping Cart Table V06

Free shopping cart HTML table template V06 with product thumbnails, quantity and totals

FreeBootstrap-ready · Best for: Shopping cart pages

A free shopping cart HTML template rather than a data table — product thumbnail, name, price, a quantity control, line total, and a remove button. Row checkboxes let a shopper act on several items at once, which is usually the part left as an exercise. For complete carts with working totals, coupons and checkout, see our free HTML shopping cart templates.

The cart page is plain HTML and CSS with no JavaScript, so it drops into any eCommerce theme, with Bootstrap or without it. Hook the quantity and remove controls up to your own store logic.

More info / Download Demo

12. Table V07

table 07

FreeBootstrap-ready · Best for: Dark interfaces

The dark counterpart to V01 — same four columns, inverted palette, row hover. Nothing is layered on top of that, which makes it the cleanest dark starting point on this page.

More info / Download Demo

13. Table V08

table 08

FreeBootstrap-ready · Best for: Detail on demand without a modal

Rows expand in place: click the arrow and an accordion panel opens underneath with the extra product detail. The visible columns stay at five — product, price, quantity, total — so the table reads cleanly until someone asks for more. The rows open and close with a few lines of vanilla JavaScript instead of Bootstrap’s.

More info / Download Demo

14. Table V09

table 09

FreeBootstrap-ready · Best for: Order and invoice status tracking

Status is the point here: color-coded pills for in progress, open, and on hold sit in the final column. Invoice number, customer, shipping and two price columns fill out the rest, matching how a back-office order list is usually read.

More info / Download Demo

15. Table V10

table 10

FreeBootstrap-ready · Best for: Colour-coded record lists

Every row carries its own color, so category is legible before you read a word of it. Five rows across six colors with an edit icon at the end — deliberately loud, and the least neutral design in the set.

More info / Download Demo

16. Table V11

css table 11

FreeBootstrap-ready · Best for: Minimal lists with bulk selection

Stripped to five columns — order, name, occupation, contact, education — with a select-all checkbox in the header. There is no hover or status treatment to unpick, which makes it the easiest one here to restyle into an existing design. The select-all box works without jQuery, and the download fell from 2.3 MB to 128 KB.

More info / Download Demo

17. Table V12

css table 12

FreeBootstrap-ready · Best for: Read-only directories and reports

The same five columns as V11 with the checkboxes dropped and a full-row hover highlight in their place. Nothing is selectable, so it suits screens where rows are read rather than acted on. It needs no JavaScript at all.

More info / Download Demo

18. Table V13

css table 13

FreeBootstrap-ready · Best for: Multi-select workflows

Checked rows keep their highlight after the cursor moves away, so the current selection stays visible while you scroll. Select-all sits in the header, and the columns match V11 and V12 if you want consistent markup across several screens.

More info / Download Demo

19. Table V14

css table 14

FreeBootstrap-ready · Best for: Contact and student directories

Rounded corners and spacing between rows make it read as a stack of cards rather than a grid. Names are clickable, every row has a checkbox, and the occupation, contact and education columns suit member or student records.

More info / Download Demo

20. Table V15

css table 15

FreeBootstrap-ready · Best for: Working through a queue of records

Ticking a row dims it, so handled records recede and what is left to do stands out. The design is otherwise identical to V14 — same spacing, same rounded rows — with a background panel added behind the table.

More info / Download Demo

21. Table V16

css table 16

FreeBootstrap-ready · Best for: Dark dashboards with drill-down

Dark by default, with a hover state that switches row text to white and yellow so the active row is unmistakable. A details link closes each row, ready to point at a record page.

More info / Download Demo

22. Table V17

css table 17

FreeBootstrap-ready · Best for: Permission and settings tables

Toggle switches, not just checkboxes: each row carries an animated on/off control alongside its selection box. That makes it the right shape for permission grids and feature settings, where every row has a state to flip.

More info / Download Demo

23. Table V18

css table 18

FreeBootstrap-ready · Best for: Dark interfaces with multi-select

The dark treatment with selection built in — ticking a row keeps it highlighted, and hover previews the same effect. Fourteen rows come populated, enough to see how the highlight behaves in a list long enough to scroll. Select and deselect-all is a few lines of vanilla JavaScript.

More info / Download Demo

24. Table V19

css table 19

FreeBootstrap-ready · Best for: Sales and support team rosters

Built around people rather than records: avatars lead each row, with order, sales, description and support columns after them. On mobile it scrolls horizontally rather than collapsing, so a full row stays intact if you swipe across it.

More info / Download Demo

25. Table V20

css table 20

FreeBootstrap-ready · Best for: Enable and disable status lists

Every row has an active or inactive toggle, and one control in the header flips them all at once. Alternating gray and white row backgrounds keep long lists readable while you work down them.

More info / Download Demo

Bonus CSS3 Tables

26. Bootstrap CSS

Bootstrap CSS table templates

FreeBootstrap · Best for: Projects already running Bootstrap

Not a template but the framework documentation itself — striped, bordered, hoverable, compact and responsive table variants are all plain class names. Because the styling comes from a front-end framework the project already loads, these examples add no extra CSS and inherit whatever theme you have applied.

Download

27. Adaptive Pricing Table

adaptive pricing table

HTML · Best for: Comparing service or hosting plans

A pricing comparison rather than a data table, with plans across the top and features down the side. It lives on CodePen, so the HTML and CSS sit side by side and copy straight out; for WordPress sites, pricing table plugins cover the same ground without code.

More info / Download

28. CSS3 Pricing Table

css3 pricing table

HTML · Best for: Highlighting a recommended plan

A pricing layout with an outline treatment that marks one tier as the recommended choice. Also a CodePen demo, so the markup and styles are there to copy and adapt; confirm the author license before commercial use.

Download

29. Nutrition Facts Table in HTML & CSS

nutrition facts table in html and css

HTML · Best for: Food, recipe and product data

A faithful reproduction of the regulated nutrition label — rules, indentation and all — in plain HTML and CSS. It solves a layout most sites fake with an image, which makes it worth pointing your product or recipe output at; check the pen for its license first.

Download

More 2026 table snippets from Colorlib

Tables inside real components from our 2026 snippets: a feature comparison table, a paginated orders table, a cart line-item table, an availability grid and a rating matrix. All use real table markup with headers.

Pricing Table V03: Full feature comparison table

Pricing Table V03: full feature comparison table

A plan comparison built as a real table with a caption, column and row headers, and headers attributes on every cell. The plan header row stays pinned while the page scrolls, and features are grouped into sections that collapse with disclosure buttons. Check and cross icons carry visually hidden text so screen readers hear Included or Not included.

Best for: pricing pages that need a detailed plan comparison below the plan cards. Plain HTML and CSS with a few lines of vanilla JavaScript, a 267 KB download, and it works on its own or inside a Bootstrap 4, 5 or 6 project.

More info / Download Demo

Pagination V06: Data table pagination with rows per page, range text and first/last buttons

Pagination V06: data table pagination with rows per page, range text and first/last buttons

A table footer for an orders list of 97 rows, with a rows-per-page select, a "Showing 21–30 of 97" range and first, previous, numbered, next and last buttons. Changing the page size keeps the first visible row on screen, and the range line is a live region. The table body is rendered from a data array, so every control really changes what is shown.

Best for: admin dashboards, CRM and e-commerce back offices, reporting tables. Plain HTML and CSS with a few lines of vanilla JavaScript, a 185 KB download, and it works on its own or inside a Bootstrap 4, 5 or 6 project.

More info / Download Demo

Shopping Cart V01: Classic cart page with line-item table and order summary sidebar

Shopping Cart V01: classic cart page with line-item table and order summary sidebar

A full shopping cart page with a table of line items showing product photo, name, variant, unit price, quantity stepper, line total and a remove button. A sticky order summary sidebar lists subtotal, shipping, estimated tax and total, and has a promo code field where the demo code SAVE10 takes 10% off. On phones the table rows restack into compact cards, and removing the last item shows an empty-cart state.

Best for: online store cart pages. Plain HTML and CSS with a few lines of vanilla JavaScript, a 312 KB download, and it works on its own or inside a Bootstrap 4, 5 or 6 project.

More info / Download Demo

Job Application Form V08: Volunteer application with a days by morning/afternoon availability grid

Job Application Form V08: volunteer application with a days by morning/afternoon availability grid

A warm volunteer sign-up form for a made-up community food pantry. After contact details and an age group, volunteers pick the roles they would like as checkbox cards and tick free slots in a weekly grid of days by morning and afternoon. Quick-pick buttons fill weekday mornings or weekends, and a tally shows the number of slots and hours offered.

Best for: charities, community groups, events and shift-based volunteer programmes. Plain HTML and CSS with a few lines of vanilla JavaScript, a 188 KB download, and it works on its own or inside a Bootstrap 4, 5 or 6 project.

More info / Download Demo

Survey Form V05: Event feedback form with a matrix of sessions by rating columns

Survey Form V05: event feedback form with a matrix of sessions by rating columns

A conference feedback form with a photo header and a rating matrix: each session is a row and the columns run from Poor to Great plus Didn't attend. On desktop it reads as a grid with column headings; on phones every row turns into a card of labelled buttons. A return-next-year question and an optional best-moment field sit below.

Best for: conference, workshop and course feedback where many items share one scale. Plain HTML and CSS with a few lines of vanilla JavaScript, a 230 KB download, and it works on its own or inside a Bootstrap 4, 5 or 6 project.

More info / Download Demo

How to choose an HTML table template

Plan for narrow screens. A wide table has two good options on a phone: scroll sideways and keep rows intact, as Table V02 and Table V19 do, or restack each row into a card, as Shopping Cart V01 does. Scrolling suits data people compare across rows; cards suit rows people act on one at a time.

Keep context while scrolling. In long or wide tables, a fixed header or first column stops people losing track of what a value means. Fixed Header Table and Fixed Column Table do this without any JavaScript.

Use real table markup. Screen readers announce row and column headers only when the table uses th elements. Pricing Table V03 is a good model, with a caption, row and column headers and hidden text on its check and cross icons. Responsive Table V2 is built from div rows, so add ARIA table roles if it has to be read as a table.

Don’t rely on colour alone. Table V09 pairs each status colour with a text label such as open or on hold. Keep that pairing when you restyle a table, so the meaning survives for colour-blind readers and in print.

Frequently Asked Questions

How do I make an HTML table responsive?

Wrap the table in a container with overflow-x: auto so it scrolls horizontally on small screens, or restructure rows into stacked cards with CSS grid or flexbox at a mobile breakpoint. Several templates above (Responsive Table V1 and V2) ship with this behavior built in.

Can I use these table templates without JavaScript?

Yes. Since the September 2026 rebuild, most of the Colorlib tables here, including the fixed-header and fixed-column examples, need no JavaScript at all. The few that do (select-all checkboxes, expandable rows, the row-and-column highlight) use a few lines of vanilla JavaScript with no jQuery. For a frozen header or first column in your own markup, position: sticky on the th or first cell does the job in a few lines of CSS.

How do I add sorting to an HTML table?

Lightweight options include the sorttable script or List.js; for data-heavy admin interfaces, DataTables remains the standard. All of them work on top of any template on this page, because the markup stays plain table elements.

Are these table templates free for commercial use?

The Colorlib-built tables are free for personal and commercial projects under CC BY 3.0, as long as you keep the credit link. CodePen-sourced examples follow their authors’ licenses — most are MIT, but check the individual pen before shipping.

Start with Table V01 for a plain data list, Fixed Header Table for long lists or Table V05 for a user admin screen. For complete cart pages, see our shopping cart templates, and for plan comparisons, our Bootstrap pricing tables.

Was this article helpful?
YesNo

Alex is a freelance writer with more than 10 years of experience in design, development, and small business. His work has been featured in publications like Entrepreneur, Huffington Post, TheNextWeb, and others. You can find his personal writing at The Divine Indigo.

Comments (20)

  1. Stefan says:

    Beautiful tables, especially the one with gradient background

  2. Devon says:

    I love these tables, simple yet elegant~!

  3. haris says:

    thank you very much. i use one of them in my website. it’s superb

  4. Page says:

    Can someone explain to me how the third table getting blured?

      1. Page says:

        The Fade and Blur on Hover Data Table one

        1. You apply 2 different hover effects as text-shadow. First one applies to the entire table once you hover on it that blurs the all text except the line on which you are hovering your mouse. That part comes from the second line of code. It simply applies text-shadow that doesn’t look blurry. Also color plays some role in this. Here is the entire code for that:

          tbody:hover td {
          	color: transparent;
          	text-shadow: 0 0 3px #aaa;
          }
          
          tbody:hover tr:hover td {
          	color: #444;
          	text-shadow: 0 1px 0 #fff;
          }
          
  5. baby hazel says:

    use bootstrap css for table design

    1. Ralph says:

      Yeah… If you want your table to look the same as any other Bootstrapped website. NOT!!!

  6. Yasin Uysal says:

    Thanks a lot. However I may need a bit more help. I used one of the tables via wordpress. I pasted the html codes into the page text-editor. Also I pasted the css codes to the style.css file. But the table does not seem to have style effects. Only a raw table. What did I do wrong?

    I’ll appreciate any help.

    1. Yasin Uysal says:

      Ok, after some time it was fixed, now it works proplerly, thanks again.

  7. Schreiber says:

    Hello,
    Very nice Tables… We find this one “Fade and Blur on Hover Data Table” is very perfect for public Stampdata.

    Thanxx from Berlin

  8. Isabella Chris says:

    Thanks a lot, I was looked for these temples, really helpful for me.these templets save my time.
    regards

  9. Suresh kamrushi says:

    Very nice and basic example which can be easily incorporated into existing code. Many Thanks!!

  10. Dave Dayanan says:

    Simple tables yet gives a catch for the eyes of the visitors. Your examples are great. Thanks for bringing this into your article..

  11. Pon says:

    “Fixed Header Table by Colorlib” is not responsive.

    1. It wasn’t supposed to be responsive. Combining responsiveness while having a fixed header layout is a very difficult challenge. Since our templates are open source we would very much appreciate if you could create and share a responsive version of it.

  12. Mohd Vasim says:

    Very nice CSS table list! You solve my problem thank you so much!

  13. topazfae says:

    Hi – I used this as my table – but I would like to have tab above the table that indicate the years. I don’t want to list all results in one table but broken into several years – I was not able to find an example how to do that.

    1. Which of the templates do you mean?

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top

Download this template

Enter your email to get the free download link. We'll also send you occasional updates about new templates.

If you wish to withdraw your consent and stop hearing from us, simply click the unsubscribe link at the bottom of every email we send or contact us at [email protected]. We value and respect your personal data and privacy. To view our privacy policy, please visit our website. By submitting this form, you agree that we may process your information in accordance with these terms.