12191 comments found.
Hello, is there a roadmap plan for 2025? How long will v8 version support last? Will there be new features for v8? Will there be only bug fixes? v9 version is very nice but there are many parts that need to be developed, building a project on v9 seems a bit challenging
Hi,
We are actively working on enhancing Metronic v9 Tailwind to bring it to the same level of completeness as v8. Rest assured, we will continue providing updates and bug fixes for v8 to ensure ongoing support.
For v9, we are excited to announce that we are working on a significant update, which we anticipate releasing by February/March as soon as it’s ready.
Thank you for your continued support!
Best regards, Sean
Hi,
Thanks for reaching out!
We are currently finalizing our roadmap for 2025, and we’ll be sharing updates soon.
We will continue supporting Metronic v8 with bug fixes and security updates for an extended period. However, new feature development will primarily focus on Metronic v9.
We understand that v9 is still evolving, and we are actively enhancing it. Our goal is to provide a more robust and flexible experience, with improvements planned for various components and workflows.
If you have specific feedback on areas that need improvement in v9, we’d love to hear your thoughts! Let us know what challenges you’re facing, and we’ll do our best to address them in upcoming updates.
Regards, Sean
How i use POS Dashboard on version 7.0.8 ?
Hi,
Could you please reach our support via devs.keenthemes.com and provide more details ?
Regards, Sean
I’m experiencing issues with certain Metronic features when using the template with Inertia.js. Specifically:
Dropdowns are unresponsive. Collapsible sections (Collapse) don’t expand or collapse. JS Charts fail to render properly. These problems only occur when integrating Metronic with Inertia.js. Could you advise on resolving this or confirm if additional configuration is required?
Hi,
Could you please reach our support via devs.keenthemes.com and provide more details on your Metronic version ? Are you using v9 Tailwind or v8 Bootstrap ?
Regards, Sean
im using metronic v8 bootstrap
Hi,
For v8 SPA integration you will need to initialize the core components using KTComponents.init() method by referring to https://preview.keenthemes.com/html/metronic/docs/getting-started/customization/javascript
Regards, Sean
Still waiting for Angular update.. :/ its been awhile..
Hi,
Thank you for the heads-up.
Currently we have Angular integration guide for Metronic 9 Tailwind: https://keenthemes.com/metronic/tailwind/docs/getting-started/integration/angular And also a starterkit app for demo1: https://github.com/keenthemes/metronic-tailwind-html-integrationRegards, Sean
Can I use my setup and only use the theme, styling and components from this package? Like I have my own react app but only to bring the parts that I need from this library.
Hi,
You can use the components by setting up the minimal required dependencies. You must set up the Tailwind variables in your tailwind config if you are using v9 React components.
Regards, Sean. Keenthemes Support
Hello! Are design mocks available for this for purchase? Ideally in adobe XD?
Hi
,
Sorry for the late reply.
We support Figma. Upon purchase in the download package, you can find instructions to download the v8 and v9 Figma design files. You can download them using a Google Drive link provided in the TXT file.
Regards, Sean
Hi team, please complete the figma design for login / register ..
Hi
,
Sorry for the late reply.
Sure, in the download package, you can find instructions to download v8 and v9 Figma design files. You can download them using a google drive link provided in the TXT file.
Regards, Sean
Do you have an image lightbox component?
Hi
,
Sorry for the late reply. Sure, you can check https://preview.keenthemes.com/html/metronic/docs/general/fslightbox for lightbox use
Regards, Sean
That’s great. Thanks
Hi When can we expect the next update? We are at a point where we are considering buying tailwind access directly as the updates on the components on the Tailwind have been rather slow. I really like your template but updates on the components side needs speedier release
Hi,
We are currently working on the next big update for Metronic 9 Tailwind and during February we plan to push Datepicker, Select, Toast, eCommerce UI, and more.
Regards, Sean
I see in google drive download files, there is more than 60 demo theme for bootstrap. But why just 10 for tailwinds ?
Hi,
Thank you for your question! The Bootstrap version of our product has been built and expanded over the years, which is why it includes more than 60 demo themes. The Tailwind version, on the other hand, is a more recent release. We’re actively working to expand it, and more demo themes are already in the pipeline.
Stay tuned for updates as we continue to grow the Tailwind offering to match and surpass our Bootstrap version’s versatility.
Regards, Sean
Can your theme be used with tailwindui.com components, as I like some of their ecommerce components? Or do I need to pick one theme or the other?
Hi,
Sure, you can use it with Metronic as we fully fllow Tailwind standarts.
Regards, Sean
Hello! Any news with Metronic 9 HTML eCommerce or Contacts app examples?
Hi,
We can’t confirm the ETA yet. We are working on it and preparing the next big update for Metronic asap.
Regards, Sean
is it possible to grey out an advanced radio button? in 8.2.9?
Hi,
As shown in the docs here https://preview.keenthemes.com/html/metronic/docs/base/forms/checks-radios#radio you can use the disabled attribute for the radio input.
<div class="form-check form-check-custom form-check-solid">
<input class="form-check-input" type="radio" value="" disabled id="flexRadioDisabled"/>
<label class="form-check-label" for="flexRadioDisabled">
Disabled radio
</label>
</div>
Regards, Sean
doen’t seem to be workng for the large advanced radios found in yur docs here: https://preview.keenthemes.com/html/metronic/docs/base/forms/advanced
I am trying to do this for the radios in the multi-step registration you have. If a corporate account is selected in step 1, the team size in step 2 of 1-1 should be greyed out and if individual is selected the options should all be greyed out with 1-1 select and otherwise unchoosable.
how can I grey out the step2 team sizes in the multistep registration based on what is selected in step 1 personal or corp account?
The large advanced radios from here: https://preview.keenthemes.com/html/metronic/docs/base/forms/advanced
don’t seem to do anything when you add a disabled attribute. Can those large buttons be greyed?
You can try to use the additional class “opacity-50” to the advanced group to set opacity and indicate the disable mode.
OK, that reduces opacity when applied to the span but i’d like to make it unclickable the way regular radios can be. Is that possible?
Hi I am supporting and updating a legacy web application built by another agency that purchased this theme, It is using v1.2.4, I was hoping you might have the old version in git and some old documentation I could look at?
Hi,
Sure, we can provide you with v1.x. Please get in touch with us via support@keenthemes.com and provide the purchase code.
Metronic License & Support Subscription Reminder:
1. This is a quick reminder that each Metronic license is intended for single use only. Please ensure you have an extended license for SaaS projects with paid end users. For more details, visit our pricing page.
2. You can purchase additional licenses directly at Themeforest. Proper licensing helps us keep Metronic growing with exciting new features and improvements.
3. When you purchase a license, you receive 6 months of free support, as detailed in our support policy here. After 6 months, an active support subscription is required for continued assistance. To extend your support, please follow this link
4. If you’re already in compliance, feel free to ignore this message. Thank you for your support and for being part of the Metronic community! If you’re already in compliance, feel free to ignore this message. Thank you for your support and for being part of the Metronic community!
Regards, Sean
Compared with the previous v8, the current v9 lacks many things, such as the previous v8 html version, many forms will be paired with js and users to make interactive pop-up prompts sweet alert, etc. Now v9 is basically a simple style that does not contain js, will you improve it later, or the positioning of v9 does not contain these? If so, when will the follow-up improvement be, such as the first quarter of 2025, the second quarter, etc., do you have a corresponding plan
Hi,
Thank you for your feedback.
Yes, we are working on an update to release more UI elements and components. Hopefully, we will release this upcoming major update Jan/Feb 2025 along with shop client and admin apps.
Regards, Sean
hi any update for svelte/sveltekit integration guide for v9 ? or is there any current integration that is similar to svelte ?
Hi,
You can refer to https://keenthemes.com/metronic/tailwind/docs/getting-started/integration/vue integration guide and apply it for Svelte.
Regards, Sean
hi Sean,
Was trying to follow the vue integration, because the menu.ts need popperjs so i install it but i got an error,
[vite] Named export ‘VirtualElement’ not found. The requested module ’@popperjs/core’ is a CommonJS module, which may not support all module.exports as named exports. CommonJS modules can always be imported via the default export, for example using:
import pkg from ’@popperjs/core’; const {Instance, Placement, VirtualElement} = pkg;
i think i will go without integrating the metronic core, and want to integrate the tailwind.config.js style and the dist/ but not sure which one i need to setup
right now what i am trying is like this. 1. Copy all the tailwind.config.js into svelte tailwind.config.ts 2. Copy all the required tailwind.config.js plugin to ./src/lib/core
The style is working, but the interactive component like the accordion, drawer etc is not working.
is there any missing step ?
for now i am okay with just copy paste the html code of the component into svelte, but not sure which configuration i need to setup.
Hi
components (like accordion, drawer, etc.) might require their corresponding JavaScript functionality to work properly.
Please inspect the browser’s console log for any JavaScript errors. This will help identify missing dependencies or issues with executing the scripts.
You might need to adjust your import statements for popover.
import Popper from '@popperjs/core';
const { Instance, Placement, VirtualElement } = Popper;
You could manually initialize one component by copying its corresponding JS initialization and check for the error from the core.
tailwind React version User Management, Projects, eCommerce
When will it be updated? Is it possible to update this year?
Hi,
We are working on those features and hopefully, we can release them asap.
Regards, Sean
when will datepicker be released?
Hi,
We have already released the Metronic 9 React version – preview.
We will release the Metronic 9 HTML version soon(Q1 2025). We are working on an advanced in-house datepicker component
Regards, Sean
I have discovered a major bug that prevents this from being used in a Rails context. I am building a gemified version of this that will help rails devs use your kit which I am happy to share for mutual benefit. Your js for adding an account breaks in the Rails context because every form has a hidden CSRF input tag and that throws everything off so steppers don’t work. To reproduce go to your multiple form authentication html and add an extra input tag below the form tag and your js will break. So anything with a stepper will not work in Rail because every form by default will have a CSRF token tag and well n oone wants to remove security benefits. if you help me fix it i believe my effort to make this very rails friendly will be beneficial to both of us.
I have just renewed my support to facilitate a faster response hopefully, otherwise i’ll have to use another option and ask them to refund this one. I will also file a separate support request but basically all multi-stage items that use a stepper break because rails and most frameworks will add a hidden CSRF token in a hidden <input> tag that looks like this <input type=”hidden” name=”authenticity_token” value=”LilF6KgbBR7MBSruMcWFKyMOz_pnmcGzmiyxAm2aVDIvurHbA_uxcOqVNfB4NZbKPc7KzDoD8MGWpJAh7ErcDQ” autocomplete=”off” /> this alone is enough to destroy every js stepper in your entire package and while I respect that one can fix the js, the entire point of buying this is to not have to so that I can focus on building an app. I am willing to share a rails gem that will help you get more customers because as it stands not there really is no way to use a modern framework without dealing with CSRF insertions.
Hi,
Noted, we have got your request and let us check it and we will get back to you asap.
Regards, Sean
Hi epipheus
hidden inputs like CSRF tokens are treated as part of the validation or submission process, the stepper logic may break.
To make the KTStepper works correctly with Rails forms containing CSRF tokens, you can exclude hidden inputs from the logic.
In the JS file /starterkit/_keenthemes/src/js/components/stepper.js
Try update the _refreshUI method to ignore hidden inputs:
var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]')
.filter(function(element) {
return element.type !== 'hidden';
});
Then please rebuild the assets using gulp or webpack in /starterkit/_keenthemes/tools
This change will make hidden inputs, such as CSRF tokens, are ignored during the stepper’s logic. Let me know if this helps!
First off thank you for the fast response; GREATLY appreciated. i’m using 8.2.9 demo 1 at the moment because the latest version doesn’t have all of the options 8.2.9 has. So Ive been moving over the html version manually instead of the starterkit. Will this fix 8.2.9 demo1? I don’t see a stepper.js. but I assume it must be in scripts.bundle—I will give a try later tonight.
I can confirm that did not work.
the refreshUI is in the scripts.bundle.js and I changed it to look like this: ``` var _refreshUI = function() { var state = ’’; ```
if ( _isLastStep() ) {
state = 'last';
} else if ( _isFirstStep() ) {
state = 'first';
} else {
state = 'between';
}
}
// Set state class
KTUtil.removeClass(the.element, 'last');
KTUtil.removeClass(the.element, 'first');
KTUtil.removeClass(the.element, 'between');
KTUtil.addClass(the.element, state);
// Step Items
// original
// var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]');
var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]')
.filter(function(element) {
return element.type !== 'hidden';
});
if ( elements && elements.length > 0 ) {
for (var i = 0, len = elements.length; i < len; i++) {
var element = elements[i];
var index = KTUtil.index(element) + 1;
}
KTUtil.removeClass(element, 'current');
KTUtil.removeClass(element, 'completed');
KTUtil.removeClass(element, 'pending');
}
if ( index the.currentStepIndex ) {
KTUtil.addClass(element, 'current');
} else {
if ( index < the.currentStepIndex ) {
KTUtil.addClass(element, 'completed');
} else {
KTUtil.addClass(element, 'pending');
}
}
if ( the.options.animation ! false && element.getAttribute('data-kt-stepper-element') 'content' ) {
KTUtil.css(element, 'animationDuration', the.options.animationSpeed);
}
var animation = _getStepDirection(the.passedStepIndex) = 'previous' ? the.options.animationPreviousClass : the.options.animationNextClass;
KTUtil.animateClass(element, animation);
That didn’t work. Made the below changes to refresh ui in scriptbundle
var _refreshUI = function() {
var state = '';
}
if ( _isLastStep() ) {
state = 'last';
} else if ( _isFirstStep() ) {
state = 'first';
} else {
state = 'between';
}
// Set state class
KTUtil.removeClass(the.element, 'last');
KTUtil.removeClass(the.element, 'first');
KTUtil.removeClass(the.element, 'between');
KTUtil.addClass(the.element, state);
// Step Items
// original
// var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]');
var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]')
.filter(function(element) {
return element.type !== 'hidden';
});
if ( elements && elements.length > 0 ) {
for (var i = 0, len = elements.length; i < len; i++) {
var element = elements[i];
var index = KTUtil.index(element) + 1;
}
KTUtil.removeClass(element, 'current');
KTUtil.removeClass(element, 'completed');
KTUtil.removeClass(element, 'pending');
}
if ( index the.currentStepIndex ) {
KTUtil.addClass(element, 'current');
} else {
if ( index < the.currentStepIndex ) {
KTUtil.addClass(element, 'completed');
} else {
KTUtil.addClass(element, 'pending');
}
}
if ( the.options.animation ! false && element.getAttribute('data-kt-stepper-element') 'content' ) {
KTUtil.css(element, 'animationDuration', the.options.animationSpeed);
}
var animation = _getStepDirection(the.passedStepIndex) = 'previous' ? the.options.animationPreviousClass : the.options.animationNextClass;
KTUtil.animateClass(element, animation);
to reproduce copy and paste the input csrf token example I commented with a few comments ago below the opening form tag for the multistep login form still messes it up so it doesn’t function. let me know if better to attach a file somehow
Hi epipheus
Here’s an alternative approach you can try.
var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]')
.filter(function(element) {
// Exclude hidden elements
return element.offsetParent !== null && element.type !== 'hidden';
});
add filter condition, only visible, non-hidden elements are processed.
The offsetParent !== null checks the element is visible on the page and not hidden via CSS.
Try applying this updated fix to your scripts.bundle.js. Let us know if the issue persists.
Thanks again for the response. This change also didn’t help. All I know is that this sample input tag break it every where but the fixes you’ve sent don’t yet solve it.
this same tag I mentioned above: <input type=”hidden” name=”authenticity_token” value=”LilF6KgbBR7MBSruMcWFKyMOz_pnmcGzmiyxAm2aVDIvurHbA_uxcOqVNfB4NZbKPc7KzDoD8MGWpJAh7ErcDQ” autocomplete=”off” />
again just trying to use the 8.2.9 demo1 interface. the only three js files used for the multistep registration are global/plugins.bundle.js, scripts.bundle.js and custom/utilities/modals/create-account.js
help is greatly appreciated this has stall dev efforts at the moment.
do you think you can try inserting that tag as the first child of the demo1 form for multistep auth and get it working? Having it working as a demo would help tremendously.
error i see is .filter is not a function is KTUtil.findAll not returning an array? whatever is happening it’s not liking filter for this
any idea when you think you can provide a fix? i have to manage our effort and decide if we have to find another interface; the purpose of buying your interface was to eliminate these kind of issues. I don’t fault you but I need to manage our limited resources and figure out when its time to cut losses
This also didn’t work
var elements = Array.from(KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]'))
.filter(function(element) {
// Exclude hidden elements
return element.offsetParent !== null && element.type !== 'hidden';
});
Hi,
Noted. Let us check this and we will get back to you shortly.
Regards, Sean
Hey guys I have pressure to pick another UI soon if there is no fix. I’d like to use this one.
Hi
The CSRF error triggered during form submission or stepper page changed?
Would you consider disable CSRF for that specific form?
<%= form_with url: some_path, method: :post, authenticity_token: false do |form| %>
<%= form.text_field :name %>
<%= form.submit "Submit" %>
<% end %>
Thanks
its for devise login, i’d feel weird disabling security for registration and login. that’s pretty important. we also need to be particular about onboarding. but the problem is that it breaks everything that uses the stepper. Is there no way to fix it so that it’s robust enough to not trip over something that is normal now in most frameworks? it’s literally a single input tag throwing everything off. Are you guys not going to help me with a work around that works? Crap, I even updated my support.
the problem is not a CSRF error. The problem is that it breaks the stepper it doesn’t advance, or it’s advancing but the next step doesn’t arrive. The issue is your theme is thrown off by a single tag that frankly should be there.
discovered the culprit bug.
whatever you filter for the refreshUI also needs to be filtered for KTUtils.index. In the case of Rails CSRF is always a hidden input named authenticity_token, it’s pretty safe to filter that out for all stepper and index related things. It was a super annoying thing to track down but seems to be working now. if you have github happy to submit a pull request.
Hi
Thank you so much for your patience in tracking down the root cause of this issue. It’s great to hear that it resolved the problem on your end.
You can submit a pull request directly to our GitHub repository here: https://github.com/keen333/MetronicIf you can’t access it, just share your GitHub username, and we’ll make sure you have the right permissions.
Thanks
Hi there,
Does your theme offers calendar views and gantt charts?
If yes, where can we view the demo for the calendar views and gantt charts?
Thanks
Hi,
You can check out the calendar app of Metronic 8 Bootstrap: https://preview.keenthemes.com/metronic8/demo1/apps/calendar.html Also, we havea visual timeline plugin that can be used for Gantt UI. https://preview.keenthemes.com/html/metronic/docs/general/vis-timeline/styleRegards, Sean