All Plugins
We use a variety of plugins to make it easier for you to build a solid dashboard system. All plugins are presented in a simple way, so you can add or remove plugins according to your needs.
Source file
All the plugins we use are in the vendors
folder. You can see all the file sources by opening the vendors folder one by one.
Note: If the plugin does not suit your needs, you can replace the plugin with your own choice.
Here is a brief documentation about the plugin and how to use it. For complete documentation please visit the official site of each plugin.
Chart JS
Simple yet flexible JavaScript charting for designers & developers. Our demo chart js is available in here Demo charts
All demo chart config is available in src/js/charts/**.js
.
Example Chart js configuration
<!-- Chart js -->
<script src="vendors/chart.js/dist/chart.umd.js"></script>
<!-- Chart config -->
<script src="src/js/chart/finance.js"></script>
<script src="src/js/chart/sales.js"></script>
<script src="src/js/chart/crm.js"></script>
<script src="src/js/chart/support.js"></script>
<script src="src/js/chart/sales-team.js"></script>
<script src="src/js/chart/analytics.js"></script>
Please read more documentation about chart js in https://www.chartjs.org/
Gauge.js
100% native and cool looking animated JavaScript/CoffeScript gauge. Demo charts
All demo chart config is available in html file.
Example Chart js configuration
<!-- Gauge chart -->
<script src="src/js/chart/gauge.min.js"></script>
<script>
var opts = {
angle: 0, // The span of the gauge arc
lineWidth: 0.29, // The line thickness
radiusScale: 1, // Relative radius
pointer: {
length: 0.57, // // Relative to gauge radius
strokeWidth: 0.035, // The thickness
color: '#06b6d4' // Fill color
},
staticZones: [
{strokeStyle: "#ec4899", min: 0, max: 1000}, // Red
{strokeStyle: "#eab308", min: 1000, max: 2000}, // Yellow
{strokeStyle: "#22c55e", min: 2000, max: 3000}, // Green
],
limitMax: false, // If false, max value increases automatically if value > maxValue
limitMin: false, // If true, the min value of the gauge will be fixed
colorStart: '#6FADCF', // Colors
colorStop: '#8FC0DA', // just experiment with them
strokeColor: '#E0E0E0', // to see which ones work best for you
generateGradient: true,
highDpiSupport: true, // High resolution support
};
var target = document.getElementById('Gauge'); // your canvas element
var gauge = new Gauge(target).setOptions(opts); // create sexy gauge!
gauge.maxValue = 3000; // set max gauge value
gauge.setMinValue(0); // Prefer setter over gauge.minValue = 0
gauge.animationSpeed = 43; // set animation speed (32 is default value)
gauge.set(1725); // set actual value
</script>
Please read more documentation about gauge js in https://github.com/bernii/gauge.js/
Dropzone
Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars. Our demo dropzone uploader is available in here dropzone uploader
Example Dropzone configuration
<!-- Vendor -->
<script src="vendors/dropzone/dist/dropzone-min.js"></script>
<!-- Configuration -->
<script src="src/js/vendor.js"></script>
Demo config available in src/js/vendor.js
function myUploader();
More information about Dropzone please read on here
Flatpickr
Lightweight, powerful javascript datetimepicker with no dependencies. Flatpickr demo is available in here Date picker & Start and End date picker
Example Flatpickr configuration
<!-- Vendor -->
<script src="vendors/flatpickr/dist/flatpickr.min.js"></script>
<script src="vendors/flatpickr/dist/plugins/rangePlugin.js"></script>
<!-- Configuration -->
<script src="src/js/theme.js"></script>
Demo config available in src/js/theme.js
function myDatepicker();
More information about Flatpickr please read on here
FullCalendar
Full-sized drag & drop event calendar. Our demo FullCalendar uploader is available in here Demo FullCalendar
Example FullCalendar configuration
<!-- Html -->
<div id="calendar"></div>
<!-- Vendor -->
<script src="vendors/@fullcalendar/index.global.min.js"></script>
<!-- Configuration -->
<script src="src/js/vendor.js"></script>
Demo config available in src/js/vendor.js
function myCalendar();
For more documentation please check in here https://github.com/fullcalendar/fullcalendar.
Glightbox
Pure Javascript lightbox with mobile support. It can handle images, videos with autoplay, inline content and iframes.
Example Glightbox configuration
<!-- Simple image -->
<a href="src/img/large.jpg" class="glightbox">
<img src="src/img/small.jpg" alt="image" />
</a>
<!-- Video -->
<a href="https://vimeo.com/115041822" class="glightbox2">
<img src="src/img/small.jpg" alt="image" />
</a>
<!-- Gallery -->
<a href="src/img/large.jpg" class="glightbox3" data-gallery="gallery1">
<img src="src/img/small.jpg" alt="image" />
</a>
<a href="video.mp4" class="glightbox3" data-gallery="gallery1">
<img src="src/img/small.jpg" alt="image" />
</a>
<!-- Simple Description -->
<a href="src/img/large.jpg" class="glightbox4" data-glightbox="title: My title; description: this is the slide description">
<img src="src/img/small.jpg" alt="image" />
</a>
<!-- Vendor -->
<script src="vendors/glightbox/dist/js/glightbox.min.js"></script>
<!-- Configuration -->
<script src="src/js/vendor.js"></script>
Demo config available in src/js/vendor.js
function myLightbox();
For more documentation please check in here https://github.com/biati-digital/glightbox.
Jsvectormap
A lightweight Javascript library for creating interactive maps and pretty data visualization.
Example Jsvectormap configuration
<!-- html -->
<div id="worldmap" class="w-full" style="min-height: 18rem"></div>
<!-- vendor -->
<script src="vendors/jsvectormap/dist/jsvectormap.min.js"></script>
<script src="vendors/jsvectormap/dist/maps/world.js"></script>
<!-- Configuration -->
<script src="src/js/vendor.js"></script>
Demo config available in src/js/vendor.js
function myMaps();
For more documentation please check in here https://github.com/themustafaomar/jsvectormap.
Prism.js
Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind. It's used in thousands of websites, including some of those you visit daily.
Example Prism.js configuration
<!-- html -->
<pre>
<code class="language-html" data-lang="html">
Your code in here
</code>
</pre>
<!-- Vendor -->
<script src="src/js/prism.js"></script>
For more documentation please check in here https://prismjs.com/.
Simple-DataTables
DataTables but in Vanilla ES2018 JS. Simple-DataTables demo is available in here Demo
Example Simple-DataTables configuration
<!-- vendor -->
<script src="vendors/simple-datatables/dist/umd/simple-datatables.js"></script>
<!-- Configuration -->
<script src="src/js/theme.js"></script>
Demo config available in src/js/theme.js
function myTablesorter();
For more documentation please check in here https://github.com/fiduswriter/Simple-DataTables.
SimpleMDE
SimpleMDE is a simple, embeddable, and beautiful JS markdown editor. SimpleMDE demo is available in here SimpleMDE
Example SimpleMDE configuration
<!-- vendor -->
<script src="vendors/simplemde/dist/simplemde.min.js"></script>
<!-- Configuration -->
<script src="src/js/vendor.js"></script>
Demo config available in src/js/vendor.js
function myEditor();
For more documentation please check in here https://simplemde.com/.
Splide
Splide is a lightweight, flexible and accessible slider/carousel written in TypeScript. No dependencies, no Lighthouse errors.
Example Splide configuration
<!-- html -->
<div id="card-carousel" class="splide nav-hidden" role="group" aria-label="Splide Basic HTML Example">
<div class="splide__track">
<ul class="splide__list">
<li class="splide__slide">Slide 01</li>
<li class="splide__slide">Slide 02</li>
<li class="splide__slide">Slide 03</li>
</ul>
</div>
</div>
<!-- vendor -->
<script src="vendors/@splidejs/splide/dist/js/splide.min.js"></script>
<!-- Configuration -->
<script>
document.addEventListener( 'DOMContentLoaded', function () {
new Splide( '#card-carousel', {
perPage : 2,
type : 'loop',
breakpoints: {
560: {
perPage: 1,
},
},
} ).mount();
} );
</script>
Change id #card-carousel
and custom config in new Splide
For more documentation please check in here https://splidejs.com/guides/getting-started/.
Pristine
Vanilla javascript form validation micro-library. Pristine demo is available in here Form validation
Example Pristine configuration
<!-- vendor -->
<script src="vendors/pristinejs/dist/pristine.min.js"></script>
<!-- Configuration -->
<script src="src/js/theme.js"></script>
Demo config available in src/js/theme.js
function myValidation();
For more documentation please check in here https://pristine.js.org/.
Tagify
Lightweight, efficient Tags input component in Vanilla JS / React / Angular / Vue. Tagify demo is available in here Input Tags, Select and Input Select
Example Tagify configuration
<!-- vendor -->
<script src="vendors/@yaireo/tagify/dist/tagify.js"></script>
<!-- Configuration -->
<script src="src/js/theme.js"></script>
<!-- select -->
<script>
// The DOM element you wish to replace with Tagify
var input = document.querySelector('input[name=basic]');
// initialize Tagify on the above input node reference
new Tagify(input)
var input = document.querySelector('input[name=tags]')
var tagify = new Tagify(input, {
mode : "select",
whitelist: ["first option", "second option", "third option"],
blacklist: ['foo', 'bar'],
keepInvalidTags: true, // do not auto-remove invalid tags
dropdown: {
// closeOnSelect: false
}
})
// bind events
tagify.on('add', onAddTag)
tagify.DOM.input.addEventListener('focus', onSelectFocus)
function onAddTag(e){
console.log(e.detail)
}
function onSelectFocus(e){
console.log(e)
}
</script>
<!-- Select input -->
<script id="rendered-js">
var inputElm = document.querySelector('input.tagify-select'),
whitelist = ["Ari","Boy","Caca","Doni","Ema","Fanny","Ghosh","Hana","Icha","Jeje","Kalban","Leo","Mona","Nabil","Oman","Pepi","Qusa","Radja","Sasa","Toni","Udin","Verlyn","Weird","Xana","Yaoyao","Zuma"];
// initialize Tagify on the above input node reference
var tagify = new Tagify(inputElm, {
enforceWhitelist: true,
// make an array from the initial input value
whitelist: inputElm.value.trim().split(/\s*,\s*/)
});
// Chainable event listeners
tagify.on('add', onAddTag).
on('remove', onRemoveTag).
on('input', onInput).
on('edit', onTagEdit).
on('invalid', onInvalidTag).
on('click', onTagClick).
on('focus', onTagifyFocusBlur).
on('blur', onTagifyFocusBlur).
on('dropdown:hide dropdown:show', e => console.log(e.type)).
on('dropdown:select', onDropdownSelect);
var mockAjax = function mockAjax() {
var timeout;
return function (duration) {
clearTimeout(timeout); // abort last request
return new Promise(function (resolve, reject) {
timeout = setTimeout(resolve, duration || 700, whitelist);
});
};
}();
// tag added callback
function onAddTag(e) {
console.log("onAddTag: ", e.detail);
console.log("original input value: ", inputElm.value);
tagify.off('add', onAddTag); // exmaple of removing a custom Tagify event
}
// tag remvoed callback
function onRemoveTag(e) {
console.log("onRemoveTag:", e.detail, "tagify instance value:", tagify.value);
}
// on character(s) added/removed (user is typing/deleting)
function onInput(e) {
console.log("onInput: ", e.detail);
tagify.settings.whitelist.length = 0; // reset current whitelist
tagify.loading(true).dropdown.hide.call(tagify); // show the loader animation
// get new whitelist from a delayed mocked request (Promise)
mockAjax().
then(function (result) {
// replace tagify "whitelist" array values with new values
// and add back the ones already choses as Tags
tagify.settings.whitelist.push(...result, ...tagify.value);
// render the suggestions dropdown.
tagify.loading(false).dropdown.show.call(tagify, e.detail.value);
});
}
function onTagEdit(e) {
console.log("onTagEdit: ", e.detail);
}
// invalid tag added callback
function onInvalidTag(e) {
console.log("onInvalidTag: ", e.detail);
}
// invalid tag added callback
function onTagClick(e) {
console.log(e.detail);
console.log("onTagClick: ", e.detail);
}
function onTagifyFocusBlur(e) {
console.log(e.type, "event fired");
}
function onDropdownSelect(e) {
console.log("onDropdownSelect: ", e.detail);
}
//# sourceURL=pen.js
</script>
Demo config available in src/js/theme.js
function myTagify();
For more documentation please check in here https://github.com/yairEO/tagify.
Alpine Sort Plugin
Drag and drop so simple it hurts.
Example Alpine Sort configuration
<!-- Alpine Plugins -->
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/sort@3.x.x/dist/cdn.min.js"></script>
<!-- Alpine Core -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
For more documentation please check in here https://alpinejs.dev/plugins/sort.
Smooth Scroll
A lightweight script to animate scrolling to anchor links.
Example Smooth Scroll configuration
<!-- Vendor -->
<script src="src/js/smooth.js"></script>
<!-- Configuration -->
<script>
// smooth scroll
const mySmooth = function () {
var scroll = new SmoothScroll('a[href*="#"]', {
offset : 30,
speed: 1200,
speedAsDuration: true
});
}
mySmooth();
</script>
If you don't like using js, you can use css smooth scroll from tailwind css
<!-- html -->
<html class="scroll-smooth">
For more documentation please check in here https://github.com/cferdinandi/smooth-scroll.