mage-obsidian / theme-default
MageObsidian Obsidian storefront theme: the default skin built on top of theme-base.
Package info
github.com/mage-obsidian/theme-default
Language:Twig
Type:magento2-theme
pkg:composer/mage-obsidian/theme-default
Fund package maintenance!
Requires
This package is auto-updated.
Last update: 2026-08-21 01:59:08 UTC
README
๐ Documentation ยท ๐ Live demo ยท ๐ฌ Discussions
OBSIDIAN โ the default MageObsidian storefront theme for Magento 2, built with Vite, Tailwind CSS 4, Vue islands and Twig components. See it live at the demo store (Lighthouse 100/100/100/100).
Installation
composer require mage-obsidian/theme-default bin/magento setup:upgrade bin/magento mage-obsidian:frontend:config --generate
Then rebuild your theme (mage-obsidian:build-themes). Full guide: documentation.
Why four templates are still .phtml
The theme is Twig throughout, with four deliberate exceptions. Each one exists to fix a defect in the core template it replaces, and each says so in its own header:
| Template | What it fixes |
|---|---|
Magento_Msrp::product/price/msrp.phtml |
The native MAP popup needs RequireJS; its inline scripts leak as visible text. Re-expressed as a native <details>. |
Magento_OfflinePayments::info/checkmo.phtml |
The native template emits a <dl> with no <dd> unless the check details are configured โ a WCAG 1.3.1 violation axe flags. |
Magento_Weee::pricing/adjustment.phtml |
The FPT label lives only in data-label and needs the core Weee JS, which this stack suppresses. Rendered as visible text instead. |
Magento_Newsletter::subscribe.phtml |
Restyled for the dark footer. |
Migrating one to Twig without carrying its fix across reintroduces the defect.
Support the project
If MageObsidian saves you time, consider buying me a coffee. โค๏ธ