mage2kishan / module-custom-options
Panth Custom Options — beautifully styled product custom options for Hyva-based Magento 2 storefronts. Replaces the default custom options rendering with a modern, accessible UI featuring styled text inputs, textareas, file upload zones, select/radio/checkbox controls, and HTML5 date pickers, all go
Package info
github.com/mage2sk/module-custom-options
Language:HTML
Type:magento2-module
pkg:composer/mage2kishan/module-custom-options
Requires
- php: ~8.1.0||~8.2.0||~8.3.0||~8.4.0
- mage2kishan/module-core: ^1.0
- magento/framework: ^103.0
- magento/module-catalog: ^104.0
- magento/module-store: ^101.1
README
Magento 2 Custom Options Styling Extension for Hyva and Luma (Panth Custom Options)
Replace Magento's plain default product options with a clean, accessible UI. Panth Custom Options reskins every option type: text inputs, textareas, file upload zones, dropdowns, card-style radios, card-style checkboxes, and HTML5 date pickers. Colors, radii, and fonts are all CSS variables so your theme controls the look.
Product page: kishansavaliya.com/magento-2-custom-options.html
Quick Answer
What is Panth Custom Options? It is a Magento 2 extension that replaces the default rendering of product custom options with a modern, styled UI, covering every input type Magento supports.
What does it add to my store?
- Styled text inputs and textareas with focus rings, placeholder text, and character-count hints.
- Drag-and-drop file upload zones that show the filename and a remove button.
- Card-style radio buttons and checkboxes with price-delta badges instead of tiny native controls.
- Polished dropdowns with a chevron icon, hover, and focus states.
- Native HTML5 date, time, and datetime pickers with no external JS date library.
- CSS variable theming so every color, radius, and font follows your brand from one override.
Which themes are supported? Both Hyva (Alpine.js, no jQuery) and Luma. The right template is loaded automatically based on the active theme.
What does it need? Magento 2.4.4 to 2.4.8, PHP 8.1 to 8.4, and the free mage2kishan/module-core package.
🚀 Need Custom Magento 2 Development?
Get a free quote for your project in 24 hours for custom modules, Hyva themes, performance work, M1 to M2 migrations, and Adobe Commerce Cloud.
Visit our website: kishansavaliya.com | Get a quote: kishansavaliya.com/get-quote
Table of Contents
- Who Is It For
- Key Features
- Supported Input Types
- Compatibility
- Installation
- Configuration
- Theming with CSS Variables
- How It Works
- FAQ
- Support
- About Panth Infotech
- Quick Links
Who Is It For
- Stores that sell personalized products such as engravings, monograms, gift messages, or custom prints, where the options form is front and center on the product page.
- Hyva storefronts that want option templates built with Alpine.js and Tailwind, with no jQuery or RequireJS pulled back in.
- Merchants who care about conversion and want file upload, date, and radio/checkbox options to look as polished as the rest of the page.
- Stores with multi-store setups that need different visual themes per store view without changing code.
- Developers who want a drop-in option UI they can brand with a few CSS variable overrides in their theme.
Key Features
Modern, Accessible UI
- Styled text inputs and textareas with focus rings, placeholder text, and character-count hints.
- Drag-and-drop file upload zones that display the filename, file-type hints, and a remove button.
- Custom-styled dropdowns with a chevron icon, hover states, and visible focus rings.
- Card-style radio buttons with price-delta badges replacing tiny native radio controls.
- Card-style checkboxes with price-delta badges for multi-select options.
- Native HTML5 date, time, and datetime-local pickers with no external JS date libraries.
- Accessible by default with proper label associations, ARIA attributes, keyboard navigation, and visible focus states.
CSS Variable Theming
- Every visual token is a CSS custom property: color, border, focus color, price color, radius, and font.
- Override once in your theme and all option inputs across all products follow your brand.
- Per store view scope so different store views can have different colors or disable styling independently.
Hyva and Luma Support
- Hyva templates use Alpine.js and Tailwind utility classes with zero external JS.
- Luma templates apply lightweight CSS on top of Magento's native option templates.
- Auto theme detection through
Panth\Core\Helper\Theme, no manual switching needed. - Works with simple, configurable, virtual, and downloadable products that have custom options.
Admin Control
- Single master toggle at Stores > Configuration > Panth Extensions > Custom Options.
- Fallback-safe: when disabled, Magento's native templates render with zero overhead from this module.
Performance and Quality
- Zero external JS dependencies: Hyva uses Alpine.js (already bundled with the theme), Luma uses vanilla CSS.
- No database schema changes: the module only replaces templates, it does not touch product data.
- Tax-aware price display: dynamic option prices update correctly for incl-tax, excl-tax, and both display modes.
- Mobile responsive: all option types adapt to small screens.
- MEQP-style code: constructor DI only, no ObjectManager.
Supported Input Types
Every Magento custom option input type is styled by this module:
| Magento Type | Rendered As |
|---|---|
| Text Field | Styled single-line text input with focus ring |
| Text Area | Styled multi-line textarea with resize handle |
| File | Drag-and-drop upload zone with filename preview and remove button |
| Drop-down | Custom-styled select with chevron icon |
| Radio Buttons | Card-style radio group with price-delta badges |
| Checkbox | Card-style checkbox group with price-delta badges |
| Multiple Select | Enhanced multi-select list |
| Date | Native HTML5 <input type="date"> |
| Date & Time | Native HTML5 <input type="datetime-local"> |
| Time | Native HTML5 <input type="time"> |
Compatibility
| Requirement | Versions Supported |
|---|---|
| Magento Open Source | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce Cloud | 2.4.4 to 2.4.8 |
| PHP | 8.1.x, 8.2.x, 8.3.x, 8.4.x |
| Hyva Theme | 1.1+ (native Alpine.js support) |
| Luma Theme | Native support |
| Required Dependency | mage2kishan/module-core (free) |
Installation
Composer Installation (Recommended)
composer require mage2kishan/module-custom-options bin/magento module:enable Panth_Core Panth_CustomOptions bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f bin/magento cache:flush
Manual Installation via ZIP
- Download the latest release from Packagist or from the product page.
- Extract it to
app/code/Panth/CustomOptions/in your Magento install. - Make sure
Panth_Coreis installed too (required dependency). - Run the commands above starting from
bin/magento module:enable.
Verify Installation
bin/magento module:status Panth_CustomOptions
# Expected: Module is enabled
After install, open any product page that has custom options. The styled UI replaces the default rendering automatically. You can also confirm the toggle is on at:
Admin -> Stores -> Configuration -> Panth Extensions -> Custom Options
Configuration
Go to Stores -> Configuration -> Panth Extensions -> Custom Options.
| Setting | Group | Default | Description |
|---|---|---|---|
| Enable Custom Options Styling | General Settings | Yes | Master toggle. When disabled, Magento falls back to its default templates with zero overhead from this module. |
Visual customization happens through CSS variables in your theme, not through admin settings.
Theming with CSS Variables
All visual tokens are CSS custom properties. Override any of them in your theme's CSS:
| Variable | Default | Purpose |
|---|---|---|
--custom-options-primary |
#0D9488 |
Primary brand color for buttons, focus rings, and price badges |
--custom-options-border |
#E5E7EB |
Input border color |
--custom-options-border-focus |
#0D9488 |
Input border color on focus |
--custom-options-bg |
#FFFFFF |
Container background |
--custom-options-input-bg |
#F9FAFB |
Input background |
--custom-options-text |
#171717 |
Primary text color |
--custom-options-text-muted |
#6B7280 |
Hint and helper text |
--custom-options-label |
#374151 |
Option label color |
--custom-options-price |
#0D9488 |
Price-delta badge color |
--custom-options-required |
#EF4444 |
Required asterisk color |
--custom-options-radius |
10px |
Border radius for inputs and cards |
--custom-options-font |
'DM Sans', sans-serif |
Typography |
Example override
/* app/design/frontend/YourVendor/yourtheme/web/css/overrides.css */ :root { --custom-options-primary: #7c3aed; --custom-options-border-focus: #7c3aed; --custom-options-radius: 4px; }
How It Works
- The module uses Magento's layout override system to replace the templates that render product custom options.
- On Hyva, it ships Alpine.js-powered templates under
view/frontend/templates/product/view/options/that emit Tailwind utility classes. - On Luma, a lightweight CSS file is appended that reskins Magento's native option templates.
Panth\Core\Helper\Themedetects which theme is active per store view and loads the right layout handle.- All price-delta calculations continue to use Magento's standard
price-optionandpriceBoxbehavior. No pricing logic is changed. - No database schema is modified and no product data is touched. Disabling the module instantly restores default rendering.
FAQ
Does this module change how Magento calculates custom option prices?
No. All price-delta logic continues to run through Magento's standard priceBox and price-option JS components. The module only replaces the visual templates.
Will it work with my existing custom options?
Yes. All your existing custom options set up under Admin > Catalog > Products > Customizable Options automatically render with the new UI. No migration or re-configuration is needed.
Does it work on Hyva themes?
Yes. Panth Custom Options ships native Alpine.js templates for Hyva, with no jQuery or RequireJS. The module reads the active theme through Panth_Core and serves the Hyva template automatically.
Does it support file upload validation?
Yes. Magento's native file type and size validation continues to work, with better visual feedback: the filename is shown, file-type hints are displayed, and a remove button lets shoppers clear their selection.
Can I disable styling on a specific product?
The master toggle is global. For per-product control you can use Magento's standard layout update XML on a single product page to override the template.
Does it support Hyva child themes?
Yes. The module follows Hyva's theme parent chain, so any Hyva child theme automatically inherits the styled templates.
Does it work on configurable products that have custom options?
Yes. Custom options on the parent configurable product render with the new UI. Configurable variant selection (swatches, dropdowns) is Magento-native and unaffected.
Does it work on multi-store setups?
Yes. Settings respect Magento's standard scope order (default, website, store view). Different store views can have different CSS variable overrides or disable the styling independently.
Does Panth Custom Options need Panth Core?
Yes. mage2kishan/module-core is a free, required dependency that Composer installs for you automatically.
Support
| Channel | Contact |
|---|---|
| Product Page | kishansavaliya.com/magento-2-custom-options.html |
| kishansavaliyakb@gmail.com | |
| Website | kishansavaliya.com |
| +91 84012 70422 | |
| GitHub Issues | github.com/mage2sk/module-custom-options/issues |
| Upwork (Top Rated Plus) | Hire Kishan Savaliya |
| Upwork Agency | Panth Infotech |
Response time: 1-2 business days.
💼 Need Custom Magento Development?
Looking for custom Magento module development, Hyva theme work, store migrations, or performance tuning? Get a free quote in 24 hours:
About Panth Infotech
Built and maintained by Kishan Savaliya (kishansavaliya.com), a Top Rated Plus Magento developer on Upwork with 10+ years of eCommerce experience.
Panth Infotech is a Magento 2 development agency that builds high quality, security focused extensions and themes for both Hyva and Luma storefronts. The extension suite covers SEO, performance, checkout, product presentation, customer engagement, and store management, with each module built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.
Browse the full extension catalog on our Magento extensions page or on Packagist.
Quick Links
| Resource | Link |
|---|---|
| 🛒 Product Page | magento-2-custom-options.html |
| 📦 Packagist | mage2kishan/module-custom-options |
| 🐙 GitHub | mage2sk/module-custom-options |
| 🌐 Website | kishansavaliya.com |
| 💬 Free Quote | kishansavaliya.com/get-quote |
| 👨💻 Upwork (Top Rated Plus) | Hire Kishan Savaliya |
| 🏢 Upwork Agency | Panth Infotech |
| kishansavaliyakb@gmail.com | |
| +91 84012 70422 |
Ready to give shoppers a better product options experience?
SEO Keywords: magento 2 custom options, magento 2 custom options extension, magento 2 product options styling, magento 2 styled custom options, hyva custom options, hyva product options, luma custom options, magento 2 file upload custom option, magento 2 drag and drop file upload, magento 2 date picker custom option, magento 2 radio button card style, magento 2 checkbox card style, magento 2 custom option ui, magento 2 product options module, magento 2 css custom properties options, magento 2 accessible product options, alpine js custom options hyva, magento 2 custom option theming, magento 2 engraving option, magento 2 monogram option, magento 2 gift message option, magento 2 customizable options, magento 2.4.8 custom options, php 8.4 magento custom options, mage2kishan custom-options, panth custom options, panth infotech, hire magento developer, top rated plus upwork, kishan savaliya magento, custom magento development