



Shopify theme by Fuel Themes
Independently reviewed by the eDIY editorial team
Google PageSpeed Insights scores for the home page, out of 100
In our October 2026 test, the official Juice demo scored 69/100 on mobile and 87/100 on desktop. On mobile, LCP was 7.2s, CLS 0.02 and Total Blocking Time 21ms.
Tested Oct 2026 · Google PageSpeed Insights lab data
| Metric | Mobile | Desktop |
|---|---|---|
| Largest Contentful Paint | 7.2s | 1.5s |
| Cumulative Layout Shift | 0.02 | 0.01 |
| Total Blocking Time | 21ms | 29ms |
| Speed Index | 3.8s | 3.2s |
The 8 live stores we tested averaged 50/100 on mobile and 75/100 on desktop. Average mobile LCP was 14.2s and CLS was 0.06. These are complete production stores, so the numbers cover more than the theme itself.
Tested Oct 2026 · Results include each store's apps, images, tracking scripts and customizations
| Metric | Mobile | Desktop |
|---|---|---|
| Largest Contentful Paint | 14.2s | 2.6s |
| Cumulative Layout Shift | 0.06 | 0.06 |
| Total Blocking Time | 541ms | 258ms |
| Speed Index | 9.3s | 2.4s |
Position among all Shopify themes
Position among Food and drink industry
Cumulative merchant reviews
Theme Store list price, USD
A sample of live Shopify stores where the Juice theme has been detected.






This release integrates Shopify Standard Events so analytics and pixel apps can track storefront activity natively, upgrades GSAP to 3.15.0 with cleaner licensing, fixes the price filter for comma-decimal currencies, and strengthens keyboard accessibility across drawers and side panels.
This release wires up previously unused theme settings to the storefront, ports the Variant Image Set feature from Reformation for cohesive cross-theme behavior, polishes typography and interaction details across the homepage / collection / product / filter surfaces, and expands locale coverage to five major Shopify markets.
description#groupname_variantvalue (e.g. Hero#color_burgundy) and enables "Hide unselected variants’ media" in the product section settings, the storefront shows only the slides and thumbnails matching the currently selected variant. Both ends of the comparison run through Shopify's handleize filter so non-ASCII variant values (Turkish ı, Polish ł, German ß, etc.) work without locale-specific JS. The PhotoSwipe lightbox honors the same filter. Available on Main product, Featured product, and Quick view sections, across all four media layouts.class attribute added to 30 sections so every section renders with a predictable wrapper class, making them targetable from custom CSS.settings.color_swatches or use an option literally named "Color"/"Colour"/"Couleur"/"Farbe" — swatch rendering is driven primarily by Shopify-native swatch data (value.swatch.color / value.swatch.image and filter_value.swatch). Filters auto-promote to swatch presentation whenever any filter value has Shopify swatch data, in addition to the existing admin "Display as: Swatch" gate. Legacy settings.color_swatches and color_swatches_variant_option mappings remain as fallbacks for older installations.--header-* CSS variables were defined but never consumed, so those settings used to be no-ops.clamp), product card titles and rich-text headings get text-wrap: balance, blog meta de-emphasized and titles clamped to three lines on the featured-blog cards.--color-text-rgb, matching the merchant's theme color..js selector that was never applied — the required indicator now appears as designed..js-prefixed CSS rules across _shortcodes.scss, recipient-form.scss, and sidebar.scss; the styles inside (animation initial states, hidden defaults) are now applied unconditionally so reveal animations and conditional fields work as designed.#015ecc focus blue, #fff/#000 thumbnail accents, #e8e8e8/#eeeeee separators, #444 thumbnail border) with theme tokens so they scale with merchant settings.This release adds combined listings support for seamless product switching, enhances the PhotoSwipe lightbox with thumbnails and product info, and includes several bug fixes for mobile filters, pickup availability, and side panel scrolling.
.select containers.<cart-remove> custom element — self-contained cart item removal that dispatches events or calls CartDrawer directly.<resize-select> custom element — auto-sizes select element width to match selected option text.<cart-drawer> custom element — CartDrawer converted from regular class to web component with connectedCallback lifecycle.inert attribute on all drawers for accessibility — OverlayManager toggles inert on open/close.fetchpriority="high") for first product image on collection page 1._reloadScripts().<template> element — content stamped into DOM on first open, reducing initial page weight.position: absolute with scroll moved to inner content div — stays visible on mobile.top: auto inside product drawer to prevent header offset interference.img_url to modern image_url filter.{% style %} blocks converted to inline style attributes with CSS custom properties in featured-collection and featured-blog (reduces Liquid processing overhead).color_extract filter calls replaced with .rgb property in slideshow, image-gallery, featured-collection, and featured-blog (eliminates 3 filter calls per section).settings.quick_shop_limit to prevent rendering all products server-side.disconnectedCallback methods added to section custom elements — cleans up document/window event listeners, GSAP timelines, Flickity instances, and IntersectionObservers.paginate: and pagination: parameter names.no-js, no-js-hidden classes and all <noscript> fallback blocks removed from templates and SCSS.<a> links removed from modal-opener buttons (search, password, video lightbox, collage).createAvailableOptionsTree() and client-side variant matching removed — replaced by server-side resolution.removeProductEvent() method removed from CartDrawer — replaced by <cart-remove> custom element with event dispatch.new CartDrawer() manual instantiation calls removed — custom element auto-initializes.{{ product.variants | json }}) removed from product pages — replaced by hidden <span> with selected variant data.featured_media.id instead of media.id) caused all thumbnails to share the same ID.media.id variable, changed to always set is-initial-selected.forloop.index == 1 fallback for products with no variant featured_media in quick-view..column to product-card, moved pagination outside #product-grid, parsed page_size as integer.position: fixed stays visible on mobile..social selector.thb-loading spinner used for load more button (consistent with theme pattern).thb-before-after-divider and thb-copy SVG icons added.This update adds presets for the upcoming Shopify theme listing changes
Easy to setup, had one question for customer service and they resolved it quickly! Very happy
Support was fast and on point. They fixed my issue in less then an hour.
I've been using this theme since the beginning, it has been great!
Very good support. Good customization options.
Very responsive and helpful with making edits needed to make my website look lovely!
Helpful, fast and professional support. I just needed help with some customizations in North and The Fuel Themes Support provided seamless assistance. Thanks a lot :-)