<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cyberdeck Themes</title>
    <description>The latest articles on DEV Community by Cyberdeck Themes (@varcl).</description>
    <link>https://dev.to/varcl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3051702%2F1573a23e-d69e-4a8c-996c-7f854df6dcb0.png</url>
      <title>DEV Community: Cyberdeck Themes</title>
      <link>https://dev.to/varcl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/varcl"/>
    <language>en</language>
    <item>
      <title>Building a spec-sheet Shopify theme on top of Dawn: metafields, a quick-order table, and zero JS libraries</title>
      <dc:creator>Cyberdeck Themes</dc:creator>
      <pubDate>Wed, 14 Oct 2026 23:59:00 +0000</pubDate>
      <link>https://dev.to/varcl/building-a-spec-sheet-shopify-theme-on-top-of-dawn-metafields-a-quick-order-table-and-zero-js-4oh9</link>
      <guid>https://dev.to/varcl/building-a-spec-sheet-shopify-theme-on-top-of-dawn-metafields-a-quick-order-table-and-zero-js-4oh9</guid>
      <description>&lt;p&gt;I forked Shopify's Dawn and turned it into &lt;strong&gt;Cyberdeck&lt;/strong&gt;, a dark theme for electronics and gadget stores. Here's what I learned.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Spec tables from metafields
&lt;/h3&gt;

&lt;p&gt;Tech buyers want a table, not a paragraph. I defined product metafields (e.g. &lt;code&gt;specs.*&lt;/code&gt;) and wrote a section that loops over them and renders a &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt;. Merchants fill in the specs in the admin, and the theme skips any row that's empty. It's an OS 2.0 section, so merchants can reorder it, hide it or move it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A quick-order table for B2B buyers
&lt;/h3&gt;

&lt;p&gt;Wholesale buyers hate opening ten product pages. The quick-order section lists variants with a SKU column and a quantity input, then posts everything at once to &lt;code&gt;/cart/add.js&lt;/code&gt; as an &lt;code&gt;items[]&lt;/code&gt; array. One request, then a cart drawer refresh using the Section Rendering API.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Filters and search by SKU
&lt;/h3&gt;

&lt;p&gt;Collection filters use Search &amp;amp; Discovery's &lt;code&gt;collection.filters&lt;/code&gt;, with a grid/list toggle stored in &lt;code&gt;localStorage&lt;/code&gt;. Predictive search is tuned so that typing a model number or SKU returns the right product.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. No libraries
&lt;/h3&gt;

&lt;p&gt;It's all vanilla JS with custom elements (the same approach as Dawn) and no jQuery or bundled libraries. The theme also respects &lt;code&gt;prefers-reduced-motion&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Theming a dark UI properly
&lt;/h3&gt;

&lt;p&gt;Dawn's color-scheme system gets extended to 7 schemes (5 dark, 2 light). The hard part was keeping contrast accessible on neon accents. I checked every text/background pair.&lt;/p&gt;

&lt;h3&gt;
  
  
  Packaging and selling
&lt;/h3&gt;

&lt;p&gt;Shopify themes are just a zip. I sell it on Gumroad with per-sale license keys, which serve as an order reference rather than DRM.&lt;/p&gt;

&lt;p&gt;If you want to see the result: &lt;a href="https://dhlptx.gumroad.com/l/cyberdeck-shopify-theme" rel="noopener noreferrer"&gt;https://dhlptx.gumroad.com/l/cyberdeck-shopify-theme&lt;/a&gt;. Questions about Liquid and OS 2.0 are welcome in the comments.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>webdev</category>
      <category>liquid</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
