diff --git a/.changeset/happy-coins-stare.md b/.changeset/happy-coins-stare.md
new file mode 100644
index 000000000..fc6bf67ef
--- /dev/null
+++ b/.changeset/happy-coins-stare.md
@@ -0,0 +1,5 @@
+---
+"@ebay/skin": minor
+---
+
+feat(table): new module
diff --git a/dist/table/table.css b/dist/table/table.css
new file mode 100644
index 000000000..9eb9d15be
--- /dev/null
+++ b/dist/table/table.css
@@ -0,0 +1,62 @@
+:root {
+ --density-compact-cell-height: 36px;
+ --density-default-cell-height: 48px;
+ --density-relaxed-cell-height: 56px;
+}
+
+.table {
+ overflow-x: auto;
+ position: relative;
+}
+
+.table table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: 100%;
+}
+
+.table td,
+.table th {
+ background-color: var(--color-background-primary);
+ border-bottom: 1px solid var(--color-stroke-subtle);
+ box-sizing: border-box;
+ height: var(--density-default-cell-height);
+ max-width: 400px;
+ min-width: 124px;
+ padding-block: var(--spacing-100);
+ padding-inline: var(--spacing-200);
+}
+
+.table__cell {
+ text-align: left;
+}
+
+.table [data-type="numeric"],
+.table__cell--numeric {
+ text-align: right;
+}
+
+.table td:last-child,
+.table th:last-child {
+ -webkit-padding-end: 0;
+ padding-inline-end: 0;
+}
+
+.table--density-compact td,
+.table--density-compact th {
+ height: var(--density-compact-cell-height);
+}
+
+.table--density-relaxed td,
+.table--density-relaxed th {
+ height: var(--density-relaxed-cell-height);
+}
+
+.table--mode-selection td:first-child,
+.table--mode-selection th:first-child {
+ min-width: unset;
+}
+
+.table tbody th {
+ font-weight: 400;
+}
diff --git a/dist/tokens/evo-dark.css b/dist/tokens/evo-dark.css
index 331cac250..d497bded1 100644
--- a/dist/tokens/evo-dark.css
+++ b/dist/tokens/evo-dark.css
@@ -137,6 +137,7 @@
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-blue-subtle) 154.5%
);
+ --color-loading-overlay: var(--color-neutral-900-rgb), 0.7;
--color-loading-fill: #2d2d2d;
--color-loading-shimmer: linear-gradient(
270deg,
diff --git a/dist/tokens/evo-light.css b/dist/tokens/evo-light.css
index c7d0734fc..33cc6335d 100644
--- a/dist/tokens/evo-light.css
+++ b/dist/tokens/evo-light.css
@@ -141,6 +141,7 @@
--shadow-subtle: 0px 4px 12px 0px rgba(0, 0, 0, 0.07);
--shadow-strong: 0px 5px 17px 0px rgba(0, 0, 0, 0.2),
0px 2px 7px 0px rgba(0, 0, 0, 0.15);
+ --color-loading-overlay: var(--color-neutral-100-rgb), 0.7;
--color-loading-fill: #ededed;
--color-loading-shimmer: linear-gradient(
270deg,
diff --git a/src/components/section-header.marko b/src/components/section-header.marko
index e918d0099..84f514d7d 100644
--- a/src/components/section-header.marko
+++ b/src/components/section-header.marko
@@ -8,6 +8,9 @@ $ if (dsComponent.length > 0) {
A table represents tabular data in rows and columns with incrementally enhanced feature set added on top for sorting, editing, etc.
+ +Interactive elements should be tabbed into in correct sequence top down row by row and column by column based on the respective LTR or RTL mode.
+ +The top-level container element should have a tabindex="0" to make it focusable, an aria-label to relay context of the component, and should have a role of group to make it accessible to screen readers. That will also allow the table element to be scrollable inside the container, both vertically (when overflowing) and horizontally.
+ +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
+ A table can be put into 'selection mode' by adding the class table--mode-selection to the component parent. This will make slight spacing accommodations for the layout. +
+ ++ A table in selection mode allows users to select rows within a table. This is useful when users need to perform actions on selected rows. +
+ ++ The first column of the table will contain a checkbox that allows users to select the row. The first row of the table will contain a checkbox that allows users to select all rows. The checkbox in the table header should have an aria-label of something like, "Select all rows" while all other checkboxes should have an aria-label of something like, "Select row". +
+ ++ Each row should have one column that is its unique idenitifier. That column should typically be the first static column in the row. That column should be indicated using <th scope="row"> element, which affords various accessibility benefits. +
+ + ++ + + + + + + + | +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+ + + + + + + + | +Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
+ + + + + + + + | +Nintendo | +SNES | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
+ + + + + + + + | +Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
+ + + + + + + + | +Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
+ + + + + + + + | +Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
+
+
+ |
+ Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+
+
+ |
+ Nintendo | +Switch | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +FREE | +4/1 - 4/5 | +
+
+
+ |
+ Nintendo | +SNES | ++ | + $89.85 + | +45 | +17 | +5 | +$18.95 | +FREE | +4/11 - 4/15 | +
+
+
+ |
+ Microsoft | +XBOX 360 | ++ | $499.99 | +345 | +455 | +205 | +$17.99 | +FREE | +4/17 - 4/25 | +
+
+
+ |
+ Microsoft | +XBOX One | ++ | $499.99 | +399 | +407 | +305 | +$27.99 | +FREE | +4/9 - 4/11 | +
+
+
+ |
+ Sony | +Playstation 5 | ++ | $519.99 | +205 | +265 | +199 | +$29.99 | +FREE | +4/11 - 4/15 | +
+ + | +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+ | +Nintendo | ++ | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +||
+ | +Nintendo | ++ | $89.85 | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +||
+ | +XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
+ | +XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
+ | +Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
+ + | +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+ | +Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
+ | +SNES + | + $89.85 + | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
+ | +XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
+ | +XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
+ | +Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
+ + | +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+ | +Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
+ | +SNES + | $89.85 | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
+ | +XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
+ | +XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
+ | +Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
+ + | +Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|---|
+ | +Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
+ | +SNES + | $89.85 | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
+ | +XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
+ | +XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
+ | +Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
SNES + | $89.85 | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
SNES + | + $89.85 + | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +
Seller | +Item | +Image | +List Price | +Quantity Available | +Quantity Sold | +Watchers | +Protection | +Shipping | +Delivery | +
---|---|---|---|---|---|---|---|---|---|
Switch + | $287.96 | +300 | +207 | +95 | +$17.99 | +4/1 - 4/5 | +|||
SNES + | + $89.85 + | +45 | +17 | +5 | +$18.95 | +4/11 - 4/15 | +|||
XBOX 360 + | $499.99 | +345 | +455 | +205 | +$17.99 | +4/17 - 4/25 | +|||
XBOX One + | $499.99 | +399 | +407 | +305 | +$27.99 | +4/9 - 4/11 | +|||
Playstation 5 + | $519.99 | +205 | +265 | +199 | +$29.99 | +4/11 - 4/15 | +