Hyvä: Guides and Practical Know-how | Page 6 | mironsoft Blog
Hyvä
-
Aug 20, 2025
The store switcher and the currency switcher in the header are not ordinary dropdowns: both must trigger a real form submit to a Magento controller so a cookie and session get updated on the server and survive a full page reload. This article shows how to build both components as an accessible Alpine.js dropdown in the Hyvä header, including the ARIA listbox pattern, keyboard control, grouping by website for many store views, and CSP-compliant inline registration, all without shipping any extra JavaScript bundle.
-
Aug 19, 2025
A Hyvä migration is not a simple theme update, it is a structured project with an audit, a compatibility check, a checkout rebuild and a staged rollout. Anyone who knows the four phases and plans for the typical pitfalls early gets from a Knockout.js heavy Luma theme to a noticeably faster, more maintainable Hyvä frontend, without putting live shop operations at risk during the switch.
-
Aug 14, 2025
The minicart covers a quick glance at the cart, but the actual cart page is a separate template with its own requirements. Quantity changes without a reload, a well thought out cross-sell area, and a coupon input that communicates errors clearly often decide between an abandoned cart and a started checkout.
-
Aug 2, 2025
HTML minification and block cache get treated as a single lever far too often in practice, but they're technically completely independent. Here's where minification hits its limits, how to tune TTL beyond the basics, and how overly granular cache keys make the cache useless in practice.
-
Jul 30, 2025
Alpine.js is often seen as a lightweight alternative to Vue or React, yet even Alpine can noticeably slow down a product listing page. This article explains how Alpine's Proxy-based reactivity actually works, how x-for renders large lists smoothly, when x-show beats x-if, and how shared state through Alpine.store makes dozens of separate components unnecessary.
-
Jul 28, 2025
Rewriting the same product fields in every query does not just bloat the source code, it bloats every single request sent to the server. Fragment composition keeps GraphQL queries in a Hyvä frontend lean, consistent, and maintainable across Magento upgrades.
-
Jul 24, 2025
A page doesn't need to go fully headless for individual areas to behave like a modern client application. Here's how Hyvä works as a server-rendered base combined with targeted headless islands, and where that architecture hits its limits.
-
Jul 15, 2025
Without a clear Hyva theme CSS architecture, every Magento frontend grows into a pile of repeated utility chains that nobody can maintain cleanly anymore. Cascade layers, design tokens and modular CSS partials give the architecture a structure that scales with the shop instead of working against it.
-
Jul 13, 2025
The Hyvä Tailwind config is the central control point for colors, fonts, spacing and plugins in a Magento 2 frontend, but it also decides whether Tailwind actually finds every used class in the built CSS or whether styles suddenly go missing on the storefront. This article shows how a child theme like Mironsoft/default extends the tailwind.config.js of the Hyvä parent theme via require() and object spread, how theme.extend picks up custom design tokens for colors, fonts and spacing, how plugins like Typography, Forms and Aspect Ratio get registered, and how content paths are configured so Tailwind reliably scans every phtml, JS and Alpine file in the theme and in Hyvä modules.
-
Jul 8, 2025
Anyone customizing the category page toolbar in the Hyvä theme works with a single block, a single template, and Alpine.js instead of Knockout bindings and UI Components grids. This guide shows how to extend sort fields, build a view-mode switcher with persistence, and adjust pagination on the Hyvä category page without breaking full page cache.