We are glad you are here. Use the setup guide to get started, or contact support if you need help.
Make MetraUI your own.
From your first local preview to a finished application. Find clear steps, working examples, and practical guidance in one place.
Welcome to MetraUI
Understand what is included
MetraUI is a responsive Bootstrap 5 admin template with ready-made dashboards and workflow pages for sales, ecommerce, CRM, finance, logistics, HR, projects, support, and AI. It also includes reusable UI examples, forms, authentication screens, and plugin demos.
The package includes editable HTML, SCSS, JavaScript, images, and a development workflow. Treat included records and demo interactions as examples: connect your own authentication, database, uploads, and APIs before using these screens in production.
Installation & first run
Get your local preview running
-
Install Node.js and npm.
Use a supported Node.js LTS release. Open a terminal in the project folder containing package.json.
-
Install dependencies.
npm install -
Start development.
npm run devThe script compiles SCSS, assembles HTML template parts, copies assets and dependencies, and opens a BrowserSync preview. Keep the terminal running while editing.
-
Make your changes in src.
Existing HTML, SCSS, and JavaScript files are watched. Restart the command after adding files, changing dependencies, or editing the build configuration.
The development script clears dist on startup. Changes made directly in that folder will be replaced.
Project folders
Find the right source file
| Location or feature | What you need to know |
|---|---|
| src/html/ | Individual page templates. |
| src/html/template-parts/ | Shared head, header, sidebar, footer, and script includes. |
| src/assets/scss/ | Theme variables, Bootstrap overrides, layouts, plugins, and page styles. |
| src/assets/js/ | Theme behavior and page initialization scripts. |
| src/assets/css/ | Standalone page stylesheets. |
| src/assets/images/ | Brand logos, media, illustrations, and profile images. |
| dist/ | Generated files for preview and deployment. |
| esbuild.config.js | Compilation, copying, HTML includes, and watchers. |
| package.json | Available scripts and dependency versions. |
Shared layout & navigation
Update the shell in one place
Pages use HTML include comments to share their layout. Edit top-navigation.html or side-navigation.html in src/html/template-parts/ to update the generated navigation throughout the project.
<!-- include document-head.html"-->
<!-- include top-navigation.html"-->
<!-- include side-navigation.html"-->
<!-- include site-footer.html"-->
<!-- include common-scripts.html"-->
| Location or feature | What you need to know |
|---|---|
| data-theme-color | light or dark: controls color mode. |
| data-sidebar-layout | vertical or horizontal: controls navigation layout. |
| dir | ltr or rtl: controls reading direction. |
| data-menu-color | Controls the sidenav appearance. |
| data-header-color | Controls the topbar appearance. |
| data-header-position | Controls the topbar scrollable or not. |
| data-maneu-position | Controls the sidenav scrollable or not. |
Default document attributes are in template-parts/document-head.html. Saved browser preferences may override them. Explore the switcher to preview layout options. RTL also needs the Bootstrap RTL stylesheet.
Colors & typography
Follow the existing design system
Start with src/assets/scss/_variables.scss for theme colors. The main stylesheet entry is src/assets/scss/styles.scss. Add new SCSS modules to its existing import structure.
.my-panel {
background: var(--theme-custom-white);
color: var(--theme-default-text-color);
border: 1px solid var(--theme-default-border);
}
.my-accent {
color: rgb(var(--theme-secondary-rgb));
}
Reuse fs-* size classes, Bootstrap font weights, text-muted, and spacing utilities. Prefer the existing card, button, table, and form classes. Check your result in light and dark modes and avoid hardcoded white backgrounds.
Reusable components
Start from working examples
The component pages provide ready-to-use examples. Where available, select View markup to inspect example code through the existing Prism integration.
<div class="card custom-card">
<div class="card-header">
<h2 class="card-title mb-0">Project summary</h2>
</div>
<div class="card-body">
<p class="text-muted">Your content goes here.</p>
<button class="btn btn-primary" type="button">Continue</button>
</div>
</div>
Give inputs visible labels. Use unique IDs for tabs, modals, and accordions, and make sure their Bootstrap target attributes match those IDs.
Create a new page
A repeatable workflow
-
Copy a similar page into src/html/.
Keep its shared includes and retain only the plugins you need.
-
Replace the page content.
Update its title, breadcrumb, labels, sample records, and component IDs.
-
Add the navigation link.
Edit src/html/template-parts/side-navigation.html and link to the exact filename.
-
Add page assets.
Place scripts in src/assets/js/. Add a standalone stylesheet in src/assets/css/, or import a new SCSS module into styles.scss.
-
Restart and verify.
Restart npm run dev to generate newly added files. Check links, mobile layout, keyboard access, and both theme modes.
Plugins & examples
Choose the right integration
| Location or feature | What you need to know |
|---|---|
| Charts | ApexCharts, Chart.js, ECharts. |
| Tables | Grid.js and DataTables with Bootstrap 5. |
| Maps | jsVectorMap, Leaflet, Google Maps / GMaps. |
| Calendar | FullCalendar. |
| Advanced forms | Choices.js and Tagify; Flatpickr and Pickr for date and color inputs. |
| Uploads | FilePond and Dropzone. |
| Editor & media | Quill, Swiper, Plyr. |
| Interaction | SweetAlert2, Shepherd.js, SortableJS, and Dragula. |
Load the plugin stylesheet and library before its page initialization script. Copy asset paths from a working example. Installed versions are recorded in package.json and the lockfile.
Connect your application data
Move beyond sample records
Page scripts contain example table records and chart series. Replace them with application data while keeping the structure each plugin expects. Validate API responses and handle loading, empty, and error states.
Use the script theme palette or concrete computed colors for charts. An unresolved CSS variable can produce incorrect plugin colors. Preserve theme updates when modifying chart options.
Do not store private server credentials in HTML or browser JavaScript. API-key screens, forms, and upload demos still require your own backend validation and authorization.
External services & maps
Configure your own service access
Google Maps requires your own active browser API key and map ID in src/assets/js/google-maps-config.js. Enable Maps JavaScript API and billing in the associated Google Cloud project. Restrict the browser key to your allowed websites and required APIs.
A deleted project or disabled billing cannot be fixed through page styling. Check the browser console for the service error and correct the account configuration.
Leaflet tile services and other externally loaded assets need a working internet connection. Preserve provider attribution and verify service requirements for your deployment.
Assets & script loading
Keep dependencies predictable
The build copies installed dependencies into dist/assets/libs and source assets into dist/assets. Use the plugin paths shown in an existing page rather than guessing a package's output location.
- Load the required plugin stylesheet in the page head.
- Load the plugin library before its initialization script.
- Initialize after the matching page elements exist.
- Include only the page plugins you actually use.
Keep custom images in src/assets/images. Replace a brand image with a similarly sized asset and update its alternate text. Restart development after adding assets so the initial copy picks them up.
Responsive & accessible pages
Design for the whole audience
Build layouts with Bootstrap rows and responsive columns. Allow controls to wrap and put wide tables inside table-responsive containers. Avoid fixed page widths and test content at phone, tablet, and desktop sizes.
- Give form inputs visible labels and associate them using for and id.
- Use buttons for actions and links for navigation.
- Keep focus visible and verify every interaction with the keyboard.
- Provide useful image alternative text and hide decorative icons from assistive technology.
- Check chart legends and text contrast in both theme modes.
- Include loading, empty, success, and failure feedback.
Deployment
Publish the generated files
-
Generate the latest output.
Run npm run dev and wait for compilation and copying to finish. This project currently does not define a separate production build command.
-
Upload dist contents.
Stop the preview and upload the contents of dist to your static host or server. Preserve the html/ and assets/ directory structure.
-
Configure your starting page.
The main entry is html/index.html. Set your host default route or redirect accordingly.
-
Verify the live application.
Check asset links, external services, API domain restrictions, backend connections, and responsive layouts.
Maintenance & customization
Keep your changes easy to maintain
Keep a backup or version-controlled copy before making broad changes. Separate application-specific scripts and styles from third-party libraries so dependency updates are easier to review.
- Record changes to shared template parts and theme variables.
- Keep the lockfile with the project to preserve dependency resolution.
- Review plugin release notes before updating packages.
- After updates, test navigation, forms, charts, tables, and external services.
- Do not copy private credentials into delivered browser assets.
The package currently has no automated test suite configured. Review console errors and verify your own application workflows before handing over a release.
Troubleshooting & handover
Check the common causes first
| Location or feature | What you need to know |
|---|---|
| Stylesheet MIME error | Verify the stylesheet exists in dist/assets and its URL is correct. Restart after adding files. |
| Plugin is not defined | Check library paths, loading order, and initialization timing. |
| SCSS import cannot be found | Check the filename and import path; remove references to deleted modules. |
| Changes disappear | Edit src. The generated dist folder is recreated on startup. |
| Theme settings do not apply | Reset saved switcher preferences or test in a fresh browser session. |
| New page is missing | Restart the development workflow to include new files. |
| Empty table or chart | Check the element ID, data shape, script includes, and console errors. |
Before handing over
- Replace sample content, images, and links.
- Connect authentication, APIs, and meaningful button actions.
- Test phone, tablet, desktop, and both theme modes.
- Check labels, keyboard access, loading, and empty states.
- Provide setup notes for your application-specific changes.
Contact the MetraUI team
Get help with the template and share enough detail for us to understand your question.
Tell us what you need help with.
Describe the page or feature, what you expected to happen, and what happened instead. Include a screenshot or browser console error when useful.
What to include in your message
A few details make it easier to investigate
-
Name the page or feature.
For example: Staff list, AI dashboard, theme switcher, or a specific component.
-
Describe the result.
Share what you expected, what happened, and the steps to reproduce it.
-
Include your environment.
Tell us your browser, device size, and whether you changed the source files.
-
Attach useful evidence.
Add a screenshot or exact console error when relevant. Remove passwords, private keys, and customer data first.
This link opens your email application; it does not submit a web form or send your message automatically.
Questions about MetraUI
Quick answers about setup, customization, and the included demos
What is included in this project?
MetraUI is a Bootstrap 5 front-end admin template. It includes ready-made dashboard and workflow pages, reusable components, SCSS styles, JavaScript interactions, and plugin examples.
How do I run the project locally?
Install the project dependencies with
npm install, then start the development workflow
with npm run dev. The workflow builds the preview
into dist/ and serves it locally.
Where should I make changes?
Edit source files under src/. Page markup lives
in src/html/, shared page parts in
src/html/template-parts/, styles in
src/assets/scss/ or src/assets/css/,
and page behavior in src/assets/js/. The
generated dist/ folder is rebuilt by the
workflow.
Does the template include a backend or real customer data?
No. The included records and interactions demonstrate the front-end experience. Connect your own authentication, APIs, database, and server-side validation before using it as an application.
How do I change the theme or layout?
Use the appearance customizer to preview available options. Update source theme variables and page styles for your product, and verify the result in both light and dark modes. Saved browser preferences can affect the preview.
Why is a chart, table, or plugin empty?
Check the browser console, confirm the page loads the required plugin assets before its initialization script, and verify the expected element IDs and data format. Many pages use demonstration data that you must replace with your own.
How do I request help?
Use the Contact support section and include the page name, steps to reproduce the issue, browser and screen size, and a screenshot or console error when useful. Do not include passwords, private keys, or customer data.
Looking for answers about individual interface components? Browse the full FAQ page.
