Hello Support,
I am using Metronic 8.3.3 (Bootstrap version) with Laravel, and I am experiencing a major issue with the KeenIcons system.
Problem Description
Many icons are not being displayed. While some icons render correctly, a large number of them do not appear at all. In several cases, an icon is displayed, but it is not the exact icon requested.
Examples include:
ki-duotone ki-black-left-line
ki-duotone ki-black-right
ki-duotone ki-calendar-8
ki-duotone ki-dots-square
and many other KeenIcons.
These either:
Do not render at all.
Render as blank space.
Display a completely different icon than the one specified.
What I Have Already Checked
Installed Metronic 8.3.3 Bootstrap correctly.
Integrated it with Laravel.
Verified that all Metronic CSS, JavaScript, fonts, and assets are loaded.
Confirmed that the icon class names match the official documentation.
Cleared Laravel caches (optimize:clear).
Rebuilt frontend assets (npm run build).
Cleared browser cache and tested in multiple browsers.
Verified that some icons work correctly, while many others do not.
Expected Behavior
Every KeenIcon documented for Metronic 8.3.3 should render correctly when using its documented CSS classes in a Laravel application.
Actual Behavior
Many icons are missing.
Some icon classes display the wrong icon.
The issue affects a significant portion of the KeenIcons library, making it difficult to use the UI as documented.
Environment
Metronic Version: 8.3.3
Demo: Bootstrap
Framework: Laravel
Bootstrap: 5.x
Node.js: Latest LTS
Browser: Tested in multiple browsers
Operating System: macOS
Questions
Could you please help clarify the following?
Your assistance would be greatly appreciated, as this issue is affecting a large number of icons throughout the application.
Thank you.
Hi Kashif,
You're using Metronic 8.3.3 (Bootstrap) with Laravel and many KeenIcons are not displaying — either rendering as blank space, invisible, or showing the wrong icon. You've already verified assets are loaded and class names match the documentation.
I verified the specific icons you mentioned (ki-black-left-line, ki-black-right, ki-calendar-8, ki-dots-square) against the CSS bundle — they all exist in plugins.bundle.css, so this is not a missing-icons issue. The problem is likely how Laravel loads the assets.
Step 1: Verify the correct CSS/JS files are loaded
In your Blade layout, make sure you're loading these files in this order:
<!-- In <head> -->
<link href="{{ asset('assets/plugins/global/plugins.bundle.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/style.bundle.css') }}" rel="stylesheet" type="text/css" />
<!-- Before </body> -->
<script src="{{ asset('assets/plugins/global/plugins.bundle.js') }}"></script>
<script src="{{ asset('assets/js/scripts.bundle.js') }}"></script>
The plugins.bundle.css file contains all KeenIcons font definitions. If it's missing or not loading, icons will not render.
Step 2: Check your asset file paths
The icons require the font files (.woff2, .woff, .ttf) to be present at the correct path. After installing Metronic, copy the assets into your Laravel public/ directory:
cp -r /path/to/metronic-bootstrap/dist/assets public/
This should create public/assets/plugins/global/plugins.bundle.css and the font files under public/assets/plugins/global/fonts/.
Step 3: Verify fonts are loading in browser
Open your browser's Developer Tools (F12) → Network tab → filter by "Font" or "CSS". Check that:
plugins.bundle.css loads with status 200.woff2 and .woff font files under plugins/global/fonts/ load successfullyStep 4: Check Blade template for HTML entity encoding
If you're using Blade syntax, make sure icon HTML is output raw:
{!! '<i class="ki-duotone ki-calendar-8"><span class="path1"></span><span class="path2"></span></i>' !!}
If you use {{ }} (escaped output), HTML entities like < and > will be rendered instead of actual <i> tags, making icons invisible.
Step 5: Check CSS class spacing
KeenIcons requires a space between the style class and icon name:
<!-- CORRECT -->
<i class="ki-duotone ki-calendar-8 fs-2x">
<span class="path1"></span>
<span class="path2"></span>
</i>
<!-- WRONG (missing space) -->
<i class="ki-duotoneki-calendar-8 fs-2x">
Known Issues
There are two known KeenIcons bugs in v8.3.3 that may affect you:
Naming mismatch (3 icons): ki-plus-square, ki-minus-square, and ki-check-square use the wrong class names in HTML vs CSS. The CSS defines them with a "d" suffix (ki-plus-squared). Workaround: use ki-plus-squared instead.
Missing icons (31 icons): Some icons documented on the KeenIcons page are not included in plugins.bundle.css. This is a build pipeline issue. If you find more icons not rendering, check the CSS bundle directly to verify they exist.
If the above steps don't resolve the issue, please share:
This will help pinpoint whether the issue is asset loading, CSS compilation, or something else.
This reply was generated by AI. A human will follow up if needed.