Specification tables
This is the block Electro exists for. It is a real table on the product page, driven per product by a metafield, rather than a paragraph you retype into every description.
Create the metafield
Settings → Custom data → Products → Add definition
| Field | Value |
|---|---|
| Name | Specification |
| Namespace and key | specs.table |
| Type | List of single line text |
The namespace must be specs. The key is whatever you like — the block reads
table by default and the key is a block setting, so you can point it elsewhere.
Fill it in
One row per line, Label: value:
Display: 14in 2.8K OLED, 120Hz, 400 nits
Processor: 8-core, 4.6GHz boost
Memory: 16GB LPDDR5X, soldered
Storage: 1TB NVMe, user replaceable
Ports: 2x Thunderbolt 4, 1x USB-A, HDMI 2.1, 3.5mm
Battery: 72Wh — 11h 20m in our loop test, against 18h claimed
Weight: 1.24 kg
Warranty: Two years
Everything before the first colon is the label; everything after is the value. A value containing a colon is fine — only the first one splits the row.
This shape exists so the table can be filled in by whoever writes the product copy, without JSON and without a developer.
The JSON alternative
If you are importing specifications from a supplier feed or a PIM, use a metafield of type JSON instead:
[
{ "label": "Display", "value": "14in 2.8K OLED, 120Hz" },
{ "label": "Memory", "value": "16GB LPDDR5X, soldered" }
]
The block accepts either shape without a setting change — it checks whether a row
has a label property and falls back to splitting on the colon if not.
Adding the block
The specification table ships in the default product template, open by default. If you need to add it back, or want it on a different template:
- Customize → Products → Default product
- Add block → Specification table
- Set the heading, the metafield key and whether it starts open.
What happens with no metafield
Nothing renders. Not an empty table, not a heading with no rows — the block outputs nothing at all for that product.
That matters in practice: you can put the block on the template before you have filled in a single product, and the ones you have not reached yet simply do not show a table. There is no half-finished state to hide.
On a phone
The table scrolls inside its own container. A long row — a ports list, say — scrolls horizontally within the table rather than pushing the whole page sideways, which is the usual failure when a wide table meets a narrow screen.
What to put in it
A suggestion, from the demo: the numbers that decide whether someone is happy in six months are rarely the ones printed largest.
- Sustained, not peak. A boost clock is a promise about ninety seconds.
- Real battery figures, with the test conditions, rather than the box claim.
- Whether storage and memory are replaceable. Almost nobody prints this and it decides whether the machine lasts three years or seven.
- Full-field brightness, not the HDR highlight number.
The theme does not enforce any of that — it renders the rows you give it. But a specification table that repeats the marketing copy is not worth the block.