Magento hyva
Hyvä theme development for Magento 2 / Mage-OS / Adobe Commerce: building and customizing Hyvä storefronts with Alpine.js and Tailwind CSS, Magewire reactive server-driven components, child-theme setup and the Tailwind build, overriding Hyvä/Luma templates and layout XML, and Luma-to-Hyvä compatibility. Use this skill whenever the user mentions Hyvä (hyva), or is doing Magento frontend work with Alpine.js, Tailwind, or Magewire — creating or styling a Hyvä theme, writing Alpine components in .phtml, configuring tailwind.config.js, building a Magewire component, fixing a Luma module that breaks on Hyvä, or converting a storefront from Luma to Hyvä. Strong triggers: "hyva theme", "alpine.js in magento", "tailwind in magento", "magewire", "my hyva component isn't reactive", "convert luma to hyva". For backend/module work (plugins, observers, db schema, DI, REST/GraphQL, CLI) use the magento-module skill; for storefront performance audits use the magento-audit skill.From its SKILL.md
npx -y skills add staksoft/magento-claude-skills --skill magento-hyvaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 4 commands, including `python scripts/scaffold-theme.py "Vendor/theme-name" --parent Hyva/default` and 3 more.
SKILL.md
4.8 KB, 949 tokens by cl100k_base, as published. Nobody here has run it
Hyvä Theme Development (Magento 2 / Mage-OS)
Hyvä is a Magento frontend theme that replaces the Luma stack (RequireJS + Knockout + jQuery + LESS) with Alpine.js + Tailwind CSS, plus Magewire for reactive server-rendered components. It ships far less JavaScript and is the de-facto modern choice for new Magento and Mage-OS storefronts. Layout XML, view models, and the module system are unchanged — only the template/JS/CSS layer differs.
Hyvä's core theme is commercial (a one-time license, package hyva-themes/magento2-default-theme);
the supporting Hyva_Theme module and many helpers are MIT. This skill covers the
development conventions; it does not bundle or require the licensed theme.
Workflow
-
Identify the task and read the matching reference before writing code:
Task Read first New child theme, Tailwind build setup references/theme-setup.md Interactivity in templates (Alpine.js) references/alpine.md Styling, Tailwind config, design tokens references/tailwind.md Reactive server-driven components (forms, cart) references/magewire.md Override a template, add a block, layout XML references/overriding.md A Luma module/extension breaks on Hyvä references/luma-compat.md -
For a new theme, scaffold the skeleton with the script — it produces the child-theme files and the
web/tailwind/build directory deterministically:python scripts/scaffold-theme.py "Vendor/theme-name" --parent Hyva/default -
Implement templates with Alpine for client-side interactivity and Magewire when the logic belongs on the server. Keep JavaScript minimal — that is the entire point of Hyvä.
-
Build the CSS and verify. Tailwind compiles
web/tailwind/tailwind-source.css→web/css/styles.css:cd app/design/frontend/Vendor/theme/web/tailwind && npm ci && npm run build bin/magento cache:flush # production: bin/magento setup:static-content:deploy -f
Non-negotiable conventions (why they matter)
- No RequireJS, Knockout, or jQuery. If you reach for
data-mage-init,require([...]), or$(...), you're writing Luma, not Hyvä. Use Alpine (x-data,@click,x-model) for client interactivity, Magewire for server interactivity. - Style with Tailwind utility classes, not custom LESS/CSS files. Component classes go in
the Tailwind layer via
@applyonly when a utility string genuinely repeats. - Escape output exactly as in Luma —
$escaper->escapeHtml()/escapeHtmlAttr()/escapeUrl(). Alpine expressions in attributes are still attribute values: escape the PHP-injected parts. - CSP matters. Hyvä storefronts commonly run Magento's Content-Security-Policy in restrict mode; inline event handlers and scripts must go through the secure renderer / Hyvä's CSP-friendly patterns (references/alpine.md).
- Logic still lives in view models, not blocks or templates — same rule as Luma
(see the magento-module
frontend.mdreference).
Verification note
A running Hyvä theme requires the licensed hyva-themes/magento2-default-theme package. When
it isn't installed, verify generated code structurally: theme registration and theme.xml
parent resolve, tailwind.config.js/package.json are valid, layout XML validates, and
templates escape output. Note in your summary that a live render needs a Hyvä-licensed
environment.
Pairing
- Backend for the feature (the module, its data, di.xml, APIs) → magento-module skill.
- "Why is my Hyvä store slow / not caching" → magento-audit skill.
What ships with it: 7 files
23.6 KB alongside SKILL.md, 1 of them executable
references/
- alpine.md3.5 KB
- luma-compat.md3.0 KB
- magewire.md3.8 KB
- overriding.md3.1 KB
- tailwind.md2.7 KB
- theme-setup.md3.0 KB
scripts/
- scaffold-theme.pyruns4.4 KB
Gives 0 of the 12 instructions most project setup skills give in 949 tokens
Counted across 1,553 of the 3,091 authors here whose files we hold, read 2026-09-06
- Write the configuration filein 36 of 1553
- Create the directory structurein 35 of 1553, across 33 files
- Verify the setupin 31 of 1553, across 28 files
- Run the setup scriptin 30 of 1553, across 29 files
- Pre-determine the required sample sizein 29 of 1553, across 12 files
- Check if the configuration already existsin 29 of 1553
- Document every testin 26 of 1553, across 10 files
- Start with a hypothesisin 26 of 1553, across 11 files
- Ask one question at a timein 22 of 1553
- Test a single variable per testin 21 of 1553, across 9 files
- Read product marketing context before asking questionsin 19 of 1553, across 8 files
- Do not peek and stop earlyin 18 of 1553, across 7 files
Said here and by no other author read
- Identify the task and read references first
- Use Alpine and Magewire for interactivity
- Keep JavaScript minimal
- Style with Tailwind utility classes
- Escape all PHP output
- Put logic in view models
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.