mirror of
https://github.com/tabler/tabler.git
synced 2025-12-21 17:34:25 +04:00
Compare commits
109 Commits
v1.2.0
...
dev-css-la
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b639b0ea2c | ||
|
|
6674c2cf98 | ||
|
|
ef9d75f32f | ||
|
|
3e35545edc | ||
|
|
446c34eceb | ||
|
|
90285704e4 | ||
|
|
a7f73d7f7e | ||
|
|
d66c6a70eb | ||
|
|
ad54f61429 | ||
|
|
9007e73cb6 | ||
|
|
0d106a89b7 | ||
|
|
0d59e2f13a | ||
|
|
8850f6128f | ||
|
|
a1af8014e8 | ||
|
|
c8fee60023 | ||
|
|
d8c70a8b94 | ||
|
|
b70cb48e0b | ||
|
|
5b8746c702 | ||
|
|
f2c0c65f98 | ||
|
|
06021fad99 | ||
|
|
bd67b3f82e | ||
|
|
8e2acc82e0 | ||
|
|
85f212293d | ||
|
|
72a1d67709 | ||
|
|
638f36c0c5 | ||
|
|
f769abd70b | ||
|
|
3a02ef9c55 | ||
|
|
38ea9aa4e7 | ||
|
|
acbe4ff35f | ||
|
|
b5e2f54bf8 | ||
|
|
e2411b3518 | ||
|
|
44a1979b78 | ||
|
|
bccdeee779 | ||
|
|
5cb041275d | ||
|
|
27c866b3c3 | ||
|
|
c127d65605 | ||
|
|
f15d2b97f8 | ||
|
|
1f4906cc40 | ||
|
|
f8075f69c0 | ||
|
|
fd0fd47bb2 | ||
|
|
a41c9565f1 | ||
|
|
7fc1d5c11c | ||
|
|
222ddd4b2f | ||
|
|
ddd3753cde | ||
|
|
b9d434dcd4 | ||
|
|
6a3513f8e9 | ||
|
|
21bf92608d | ||
|
|
bb617b8dd2 | ||
|
|
5fa662bfae | ||
|
|
467c529fdc | ||
|
|
7773ff22b9 | ||
|
|
1867e0e482 | ||
|
|
67c9400918 | ||
|
|
7917f868e9 | ||
|
|
5619b2d8be | ||
|
|
9b15b942cb | ||
|
|
5b3e201d06 | ||
|
|
8470c9b315 | ||
|
|
dce63db1e6 | ||
|
|
278967b028 | ||
|
|
7082ea1c56 | ||
|
|
c42b104fe5 | ||
|
|
e546706f4c | ||
|
|
6d5e950235 | ||
|
|
665472cf69 | ||
|
|
468b055005 | ||
|
|
895f943270 | ||
|
|
3eaa90203b | ||
|
|
79bd867db5 | ||
|
|
e265681a48 | ||
|
|
cac5d92c7d | ||
|
|
b6e9b18ce9 | ||
|
|
849e286df0 | ||
|
|
b6ce7b8feb | ||
|
|
7b7265347c | ||
|
|
e675389871 | ||
|
|
b548430688 | ||
|
|
b45d85089e | ||
|
|
8f701859ad | ||
|
|
78c9c71365 | ||
|
|
5d8752eea0 | ||
|
|
6452669803 | ||
|
|
bf750451f1 | ||
|
|
83b11a8b35 | ||
|
|
42da37e737 | ||
|
|
0f335cda27 | ||
|
|
a6c24bb44f | ||
|
|
e975ea7e74 | ||
|
|
92ec44cf4a | ||
|
|
8da9fa869f | ||
|
|
67f3571a4f | ||
|
|
8710940952 | ||
|
|
7295678c34 | ||
|
|
a037e8e429 | ||
|
|
3da4395d10 | ||
|
|
f9f9663b2a | ||
|
|
a922c1f226 | ||
|
|
9069dcba54 | ||
|
|
7fbe4b5bc9 | ||
|
|
9ebd9f1d24 | ||
|
|
88b9e87c6e | ||
|
|
d4886607f0 | ||
|
|
1546e9ccc4 | ||
|
|
f25da87043 | ||
|
|
2ac915cd93 | ||
|
|
fa89c6fa73 | ||
|
|
c4d21a4666 | ||
|
|
baa6056c4c | ||
|
|
dc24132a7d |
30
.build/zip-package.mjs
Normal file
30
.build/zip-package.mjs
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import AdmZip from 'adm-zip';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { readFileSync } from 'fs';
|
||||
|
||||
// Get __dirname in ESM
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const pkg = JSON.parse(
|
||||
readFileSync(path.join(__dirname, '../core', 'package.json'), 'utf8')
|
||||
)
|
||||
|
||||
// Create zip instance and add folder
|
||||
const zip = new AdmZip();
|
||||
zip.addLocalFolder(path.join(__dirname, '../preview/dist'), 'dashboard');
|
||||
|
||||
zip.addLocalFile(path.join(__dirname, '../preview/static', 'og.png'), '.', 'preview.png');
|
||||
|
||||
zip.addFile("documentation.url", Buffer.from("[InternetShortcut]\nURL = https://tabler.io/docs"));
|
||||
|
||||
|
||||
// Folder to zip and output path
|
||||
const outputZipPath = path.join(__dirname, '../packages-zip', `tabler-${pkg.version}.zip`);
|
||||
|
||||
// Write the zip file
|
||||
zip.writeZip(outputZipPath);
|
||||
|
||||
console.log(`Zipped folder to ${outputZipPath}`);
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Add SRI hashes to scripts and styles
|
||||
@@ -3,8 +3,18 @@
|
||||
"changelog": "@changesets/cli/changelog",
|
||||
"commit": false,
|
||||
"fixed": [],
|
||||
"linked": [],
|
||||
"linked": [
|
||||
[
|
||||
"@tabler/core",
|
||||
"@tabler/preview",
|
||||
"@tabler/docs"
|
||||
]
|
||||
],
|
||||
"access": "public",
|
||||
"baseBranch": "dev",
|
||||
"ignore": []
|
||||
"ignore": [],
|
||||
"privatePackages": {
|
||||
"version": true,
|
||||
"tag": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Add "text features" menu item
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Correct `aria-label` of app menu link
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Fix color badge in navbar menu
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Add missing `tw` entry in `flags.json`
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@tabler/preview": patch
|
||||
---
|
||||
|
||||
Delete missing demo RTL style
|
||||
26
README.md
26
README.md
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/preview/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
|
||||
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/shared/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
|
||||
A premium and open source dashboard template with a responsive and high-quality UI.
|
||||
</p>
|
||||
|
||||
@@ -23,24 +23,8 @@ A premium and open source dashboard template with a responsive and high-quality
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/sponsors/codecalm" target="_blank">
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/sponsor-banner-homepage.svg" alt="Sponsor Banner">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Testing
|
||||
|
||||
<p align="center">Visual testing with:</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://argos-ci.com/" target="_blank">
|
||||
<picture>
|
||||
<img src="https://github.com/user-attachments/assets/7d231a26-eff5-4fc5-8392-b2a679a7c572" alt="Argos-CI" height="164" />
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">Browser testing via:</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -59,7 +43,7 @@ Tabler is fully responsive and compatible with all modern browsers. Thanks to it
|
||||
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io" target="_blank">
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/tabler-preview.png" alt="Tabler Preview">
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview.png" alt="Tabler Preview">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
@@ -75,7 +59,7 @@ We've created this admin panel for everyone who wants to create templates based
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
The documentation is available at https://tabler.io/docs/
|
||||
The documentation is available at https://docs.tabler.io/
|
||||
|
||||
## 🪴 Project Activity
|
||||
|
||||
@@ -140,8 +124,8 @@ pnpm install
|
||||
```sh
|
||||
pnpm run start
|
||||
```
|
||||
5. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
|
||||
Any change in the `/src` directory will rebuild the application and refresh the page.
|
||||
5. Open [http://localhost:3000](http://localhost:3000) to view the preview website in your browser, or [http://localhost:3010](http://localhost:3010) to view the documentation website - and voilà.
|
||||
Changes to most of the source files of Tabler core, preview and docs will rebuild the application and refresh the page.
|
||||
|
||||
**Note**:
|
||||
If you wish to perform a one-off build without auto-refresh on any changes, you can run:
|
||||
|
||||
33
core/.build/copy-libs.mjs
Normal file
33
core/.build/copy-libs.mjs
Normal file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
import { existsSync, mkdirSync, lstatSync } from 'fs'
|
||||
import { emptyDirSync, copySync } from 'fs-extra/esm'
|
||||
import libs from '../libs.json' with { type: 'json' }
|
||||
import { fileURLToPath } from 'url'
|
||||
import { join, dirname } from 'node:path';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
emptyDirSync(join(__dirname, '..', 'dist/libs'))
|
||||
|
||||
for(const name in libs) {
|
||||
const { npm } = libs[name]
|
||||
|
||||
if (npm) {
|
||||
const from = join(__dirname, '..', `node_modules/${npm}`)
|
||||
const to = join(__dirname, '..', `dist/libs/${npm}`)
|
||||
|
||||
// create dir in dist/libs
|
||||
if (!existsSync(to)) {
|
||||
mkdirSync(to, { recursive: true })
|
||||
}
|
||||
|
||||
copySync(from, to, {
|
||||
dereference: true,
|
||||
})
|
||||
|
||||
console.log(`Successfully copied ${npm}`)
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,47 @@
|
||||
# @tabler/core
|
||||
|
||||
## 1.3.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 446c34e: Fix README file in core package
|
||||
|
||||
## 1.3.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a7f73d7: Fix README file in core package
|
||||
|
||||
## 1.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- a1af801: Add FullCalendar integration
|
||||
- b9d434d: Add new charts to dashboard pages
|
||||
- 79bd867: Add new form layout page
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- cac5d92: Update illustrations to v1.7
|
||||
- f94b153: Add SRI hashes to scripts and styles
|
||||
- c127d65: Fix colour picker preview page not displaying correctly
|
||||
- b6e9b18: Update icons to v3.31.0
|
||||
- 8850f61: Enhance pagination component with new styles
|
||||
- 9910dd0: Add "text features" menu item
|
||||
- 638f36c: Refactor SCSS variable names for shadows
|
||||
- 0d501e9: Correct `aria-label` of app menu link
|
||||
- 3a02ef9: Fix some marketing site rows overflowing on mobile
|
||||
- fd0fd47: Improve card footer layout and enhance entry display format in invoices
|
||||
- 74e5d26: Fix color badge in navbar menu
|
||||
- 72a1d67: Add clipboard functionality to Tabler documentation
|
||||
- bb617b8: Fix colour swatches on small screens
|
||||
- d73d78e: Add missing `tw` entry in `flags.json`
|
||||
- 19a3d20: Delete missing demo RTL style
|
||||
- b5e2f54: Enhance dropdown components for better accessibility
|
||||
- a41c956: Remove unnecessary `!important` from body padding
|
||||
- e675389: Fix missing border-radius to `.card-header-tabs`
|
||||
- 9007e73: Fix FAQ accordion structure
|
||||
|
||||
## 1.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
42
core/README.md
Normal file
42
core/README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Tabler Core
|
||||
|
||||
Tabler Core is a set of components and utilities for building web applications. It provides a collection of pre-designed components, such as buttons, forms, modals, and more, that can be easily customized and integrated into your projects.
|
||||
|
||||
## 🔎 Preview
|
||||
|
||||
Tabler is fully responsive and compatible with all modern browsers. Thanks to its modern and user-friendly design you can create a fully functional interface that users will love! Choose the layouts and components you need and customize them to make your design consistent and eye-catching. Every component has been created with attention to detail to make your interface beautiful!
|
||||
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io" target="_blank">
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview.png" alt="Tabler Preview">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Installation
|
||||
|
||||
To install Tabler Core, you can use npm or yarn. Run one of the following commands in your terminal:
|
||||
|
||||
```bash
|
||||
npm install @tabler/core
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
pnpm add @tabler/core
|
||||
```
|
||||
|
||||
## Sponsors
|
||||
|
||||
**If you want to support our project and help us grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/sponsors/codecalm">
|
||||
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
||||
@@ -5,15 +5,19 @@ if (elements.length) {
|
||||
let options = {};
|
||||
try {
|
||||
const dataOptions = element.getAttribute('data-countup') ? JSON.parse(element.getAttribute('data-countup')) : {};
|
||||
options = Object.assign({'enableScrollSpy': true}, dataOptions);
|
||||
options = Object.assign({
|
||||
'enableScrollSpy': true
|
||||
}, dataOptions);
|
||||
|
||||
} catch (error) {}
|
||||
|
||||
const value = parseInt(element.innerHTML, 10);
|
||||
|
||||
const countUp = new window.countUp.CountUp(element, value, options);
|
||||
if (!countUp.error) {
|
||||
countUp.start();
|
||||
if (window.countUp && window.countUp.CountUp) {
|
||||
const countUp = new window.countUp.CountUp(element, value, options);
|
||||
if (!countUp.error) {
|
||||
countUp.start();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
164
core/libs.json
Normal file
164
core/libs.json
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"imask": {
|
||||
"npm": "imask",
|
||||
"js": [
|
||||
"dist/imask.min.js"
|
||||
]
|
||||
},
|
||||
"autosize": {
|
||||
"npm": "autosize",
|
||||
"js": [
|
||||
"dist/autosize.min.js"
|
||||
]
|
||||
},
|
||||
"apexcharts": {
|
||||
"npm": "apexcharts",
|
||||
"js": [
|
||||
"dist/apexcharts.min.js"
|
||||
]
|
||||
},
|
||||
"nouislider": {
|
||||
"npm": "nouislider",
|
||||
"js": [
|
||||
"dist/nouislider.min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/nouislider.min.css"
|
||||
]
|
||||
},
|
||||
"countup": {
|
||||
"npm": "countup.js",
|
||||
"js": [
|
||||
"dist/countUp.umd.js"
|
||||
]
|
||||
},
|
||||
"lists": {
|
||||
"npm": "list.js",
|
||||
"js": [
|
||||
"dist/list.min.js"
|
||||
]
|
||||
},
|
||||
"masonry": {
|
||||
"js": [
|
||||
"https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"
|
||||
]
|
||||
},
|
||||
"mapbox": {
|
||||
"js": [
|
||||
"https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js"
|
||||
],
|
||||
"css": [
|
||||
"https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css"
|
||||
]
|
||||
},
|
||||
"google-maps": {
|
||||
"js": [
|
||||
"https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_KEY"
|
||||
]
|
||||
},
|
||||
"litepicker": {
|
||||
"npm": "litepicker",
|
||||
"js": [
|
||||
"dist/litepicker.js"
|
||||
]
|
||||
},
|
||||
"tom-select": {
|
||||
"npm": "tom-select",
|
||||
"js": [
|
||||
"dist/js/tom-select.base.min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/css/tom-select.bootstrap5.min.css"
|
||||
]
|
||||
},
|
||||
"jsvectormap": {
|
||||
"npm": "jsvectormap",
|
||||
"js": [
|
||||
"dist/jsvectormap.min.js",
|
||||
"dist/maps/world.js",
|
||||
"dist/maps/world-merc.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/jsvectormap.css"
|
||||
]
|
||||
},
|
||||
"fslightbox": {
|
||||
"npm": "fslightbox",
|
||||
"js": [
|
||||
"index.js"
|
||||
]
|
||||
},
|
||||
"hugerte": {
|
||||
"npm": "hugerte",
|
||||
"js": [
|
||||
"hugerte.min.js"
|
||||
]
|
||||
},
|
||||
"plyr": {
|
||||
"npm": "plyr",
|
||||
"js": [
|
||||
"dist/plyr.min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/plyr.css"
|
||||
]
|
||||
},
|
||||
"dropzone": {
|
||||
"npm": "dropzone",
|
||||
"js": [
|
||||
"dist/dropzone-min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/dropzone.css"
|
||||
]
|
||||
},
|
||||
"star-rating.js": {
|
||||
"npm": "star-rating.js",
|
||||
"js": [
|
||||
"dist/star-rating.min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/star-rating.min.css"
|
||||
]
|
||||
},
|
||||
"coloris.js": {
|
||||
"npm": "@melloware/coloris",
|
||||
"js": [
|
||||
"dist/umd/coloris.min.js"
|
||||
],
|
||||
"css": [
|
||||
"dist/coloris.min.css"
|
||||
]
|
||||
},
|
||||
"typed.js": {
|
||||
"npm": "typed.js",
|
||||
"js": [
|
||||
"dist/typed.umd.js"
|
||||
]
|
||||
},
|
||||
"signature_pad": {
|
||||
"npm": "signature_pad",
|
||||
"js": [
|
||||
"dist/signature_pad.umd.min.js"
|
||||
]
|
||||
},
|
||||
"clipboard": {
|
||||
"npm": "clipboard",
|
||||
"js": [
|
||||
"dist/clipboard.min.js"
|
||||
]
|
||||
},
|
||||
"fullcalendar": {
|
||||
"npm": "fullcalendar",
|
||||
"js": [
|
||||
"index.global.min.js"
|
||||
]
|
||||
},
|
||||
"turbo": {
|
||||
"npm": "@hotwired/turbo",
|
||||
"js": [
|
||||
"dist/turbo.es2017-umd.js"
|
||||
],
|
||||
"head": true
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "@tabler/core",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.2",
|
||||
"description": "Premium and Open Source dashboard template with responsive and high quality UI.",
|
||||
"homepage": "https://tabler.io",
|
||||
"scripts": {
|
||||
"dev": "pnpm run watch",
|
||||
"dev": "pnpm run clean && pnpm run copy && pnpm run watch",
|
||||
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri",
|
||||
"clean": "shx rm -rf dist demo",
|
||||
"css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner",
|
||||
@@ -26,8 +26,9 @@
|
||||
"js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.esm.js.map,includeSources,url=tabler.esm.min.js.map\" --output dist/js/tabler.esm.min.js dist/js/tabler.esm.js",
|
||||
"js-minify-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.js.map,includeSources,url=tabler-theme.min.js.map\" --output dist/js/tabler-theme.min.js dist/js/tabler-theme.js",
|
||||
"js-minify-theme-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.esm.js.map,includeSources,url=tabler-theme.esm.min.js.map\" --output dist/js/tabler-theme.esm.min.js dist/js/tabler-theme.esm.js",
|
||||
"copy": "pnpm run copy-img",
|
||||
"copy": "pnpm run copy-img && pnpm run copy-libs",
|
||||
"copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img",
|
||||
"copy-libs": "node .build/copy-libs.mjs",
|
||||
"watch": "concurrently \"pnpm run watch-css\" \"pnpm run watch-js\"",
|
||||
"watch-css": "nodemon --watch scss/ --ext scss --exec \"pnpm run css-compile && pnpm run css-prefix\"",
|
||||
"watch-js": "nodemon --watch js/ --ext js --exec \"pnpm run js-compile\"",
|
||||
@@ -66,7 +67,8 @@
|
||||
"dist/**/*",
|
||||
"js/**/*.{js,map}",
|
||||
"img/**/*.{svg}",
|
||||
"scss/**/*.scss"
|
||||
"scss/**/*.scss",
|
||||
"libs.json"
|
||||
],
|
||||
"style": "dist/css/tabler.css",
|
||||
"sass": "scss/tabler.scss",
|
||||
@@ -144,7 +146,31 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"bootstrap": "5.3.5"
|
||||
"bootstrap": "5.3.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hotwired/turbo": "^8.0.13",
|
||||
"@melloware/coloris": "^0.24.2",
|
||||
"apexcharts": "3.54.1",
|
||||
"autosize": "^6.0.1",
|
||||
"choices.js": "^11.1.0",
|
||||
"clipboard": "^2.0.11",
|
||||
"countup.js": "^2.8.2",
|
||||
"dropzone": "^6.0.0-beta.2",
|
||||
"flatpickr": "^4.6.13",
|
||||
"fslightbox": "^3.6.0",
|
||||
"fullcalendar": "^6.1.17",
|
||||
"hugerte": "^1.0.9",
|
||||
"imask": "^7.6.1",
|
||||
"jsvectormap": "^1.6.0",
|
||||
"list.js": "^2.3.1",
|
||||
"litepicker": "^2.0.12",
|
||||
"nouislider": "^15.8.1",
|
||||
"plyr": "^3.7.8",
|
||||
"signature_pad": "^5.0.7",
|
||||
"star-rating.js": "^4.3.1",
|
||||
"tom-select": "^2.4.3",
|
||||
"typed.js": "^2.1.0"
|
||||
},
|
||||
"directories": {
|
||||
"doc": "docs"
|
||||
|
||||
@@ -1,31 +1,41 @@
|
||||
// Layout & components
|
||||
@import "bootstrap/scss/root";
|
||||
@import "bootstrap/scss/reboot";
|
||||
@import "bootstrap/scss/type";
|
||||
@import "bootstrap/scss/images";
|
||||
@import "bootstrap/scss/containers";
|
||||
@import "bootstrap/scss/grid";
|
||||
@import "bootstrap/scss/tables";
|
||||
@import "bootstrap/scss/forms";
|
||||
@import "bootstrap/scss/buttons";
|
||||
@import "bootstrap/scss/transitions";
|
||||
@import "bootstrap/scss/dropdown";
|
||||
@import "bootstrap/scss/button-group";
|
||||
@import "bootstrap/scss/nav";
|
||||
@import "bootstrap/scss/navbar";
|
||||
@import "bootstrap/scss/card";
|
||||
@import "bootstrap/scss/breadcrumb";
|
||||
@import "bootstrap/scss/pagination";
|
||||
@import "bootstrap/scss/progress";
|
||||
@import "bootstrap/scss/list-group";
|
||||
@import "bootstrap/scss/toasts";
|
||||
@import "bootstrap/scss/modal";
|
||||
@import "bootstrap/scss/tooltip";
|
||||
@import "bootstrap/scss/popover";
|
||||
@import "bootstrap/scss/carousel";
|
||||
@import "bootstrap/scss/spinners";
|
||||
@import "bootstrap/scss/offcanvas";
|
||||
@import "bootstrap/scss/placeholders";
|
||||
@layer props {
|
||||
@import "bootstrap/scss/root";
|
||||
}
|
||||
|
||||
@layer reset {
|
||||
@import "bootstrap/scss/reboot";
|
||||
@import "bootstrap/scss/type";
|
||||
}
|
||||
|
||||
@layer components {
|
||||
@import "bootstrap/scss/images";
|
||||
@import "bootstrap/scss/containers";
|
||||
@import "bootstrap/scss/grid";
|
||||
@import "bootstrap/scss/tables";
|
||||
@import "bootstrap/scss/forms";
|
||||
@import "bootstrap/scss/buttons";
|
||||
@import "bootstrap/scss/transitions";
|
||||
@import "bootstrap/scss/dropdown";
|
||||
@import "bootstrap/scss/button-group";
|
||||
@import "bootstrap/scss/nav";
|
||||
@import "bootstrap/scss/navbar";
|
||||
@import "bootstrap/scss/card";
|
||||
@import "bootstrap/scss/breadcrumb";
|
||||
@import "bootstrap/scss/pagination";
|
||||
@import "bootstrap/scss/progress";
|
||||
@import "bootstrap/scss/list-group";
|
||||
@import "bootstrap/scss/toasts";
|
||||
@import "bootstrap/scss/modal";
|
||||
@import "bootstrap/scss/tooltip";
|
||||
@import "bootstrap/scss/popover";
|
||||
@import "bootstrap/scss/carousel";
|
||||
@import "bootstrap/scss/spinners";
|
||||
@import "bootstrap/scss/offcanvas";
|
||||
@import "bootstrap/scss/placeholders";
|
||||
}
|
||||
|
||||
// Utilities
|
||||
@import "bootstrap/scss/utilities/api";
|
||||
@layer utilities {
|
||||
@import "bootstrap/scss/utilities/api";
|
||||
}
|
||||
@@ -1,83 +1,87 @@
|
||||
@layer props, reset, layout, components, themes, vendors, utils;
|
||||
|
||||
@import "config";
|
||||
|
||||
@layer props {
|
||||
@import "props";
|
||||
}
|
||||
|
||||
@import "bootstrap-components";
|
||||
|
||||
@import "props";
|
||||
@layer layout {
|
||||
@import "fonts/webfonts";
|
||||
@import "layout/root";
|
||||
@import "layout/animations";
|
||||
@import "layout/core";
|
||||
@import "layout/navbar";
|
||||
@import "layout/page";
|
||||
@import "layout/footer";
|
||||
@import "layout/dark";
|
||||
}
|
||||
|
||||
@import "fonts/webfonts";
|
||||
@layer components {
|
||||
@import "ui/accordion";
|
||||
@import "ui/alerts";
|
||||
@import "ui/avatars";
|
||||
@import "ui/badges";
|
||||
@import "ui/breadcrumbs";
|
||||
@import "ui/buttons";
|
||||
@import "ui/button-group";
|
||||
@import "ui/calendars";
|
||||
@import "ui/carousel";
|
||||
@import "ui/cards";
|
||||
@import "ui/close";
|
||||
@import "ui/dropdowns";
|
||||
@import "ui/datagrid";
|
||||
@import "ui/empty";
|
||||
@import "ui/grid";
|
||||
@import "ui/icons";
|
||||
@import "ui/images";
|
||||
@import "ui/forms";
|
||||
@import "ui/forms/form-icon";
|
||||
@import "ui/forms/form-colorinput";
|
||||
@import "ui/forms/form-imagecheck";
|
||||
@import "ui/forms/form-selectgroup";
|
||||
@import "ui/forms/form-custom";
|
||||
@import "ui/forms/form-check";
|
||||
@import "ui/forms/validation";
|
||||
@import "ui/legend";
|
||||
@import "ui/lists";
|
||||
@import "ui/loaders";
|
||||
@import "ui/login";
|
||||
@import "ui/modals";
|
||||
@import "ui/nav";
|
||||
@import "ui/stars";
|
||||
@import "ui/pagination";
|
||||
@import "ui/popovers";
|
||||
@import "ui/progress";
|
||||
@import "ui/ribbons";
|
||||
@import "ui/markdown";
|
||||
@import "ui/placeholder";
|
||||
@import "ui/segmented";
|
||||
@import "ui/steps";
|
||||
@import "ui/status";
|
||||
@import "ui/switch-icon";
|
||||
@import "ui/tables";
|
||||
@import "ui/tags";
|
||||
@import "ui/toasts";
|
||||
@import "ui/toolbar";
|
||||
@import "ui/tracking";
|
||||
@import "ui/timeline";
|
||||
@import "ui/type";
|
||||
@import "ui/charts";
|
||||
@import "ui/offcanvas";
|
||||
@import "ui/chat";
|
||||
@import "ui/signature";
|
||||
@import "helpers/index";
|
||||
}
|
||||
|
||||
@import "layout/root";
|
||||
@import "layout/animations";
|
||||
@import "layout/core";
|
||||
@import "layout/navbar";
|
||||
@import "layout/page";
|
||||
@import "layout/footer";
|
||||
@import "layout/dark";
|
||||
|
||||
@import "ui/accordion";
|
||||
@import "ui/alerts";
|
||||
@import "ui/avatars";
|
||||
@import "ui/badges";
|
||||
@import "ui/breadcrumbs";
|
||||
@import "ui/buttons";
|
||||
@import "ui/button-group";
|
||||
@import "ui/calendars";
|
||||
@import "ui/carousel";
|
||||
@import "ui/cards";
|
||||
@import "ui/close";
|
||||
@import "ui/dropdowns";
|
||||
@import "ui/datagrid";
|
||||
@import "ui/empty";
|
||||
@import "ui/grid";
|
||||
@import "ui/icons";
|
||||
@import "ui/images";
|
||||
@import "ui/forms";
|
||||
@import "ui/forms/form-icon";
|
||||
@import "ui/forms/form-colorinput";
|
||||
@import "ui/forms/form-imagecheck";
|
||||
@import "ui/forms/form-selectgroup";
|
||||
@import "ui/forms/form-custom";
|
||||
@import "ui/forms/form-check";
|
||||
@import "ui/forms/validation";
|
||||
@import "ui/legend";
|
||||
@import "ui/lists";
|
||||
@import "ui/loaders";
|
||||
@import "ui/login";
|
||||
@import "ui/modals";
|
||||
@import "ui/nav";
|
||||
@import "ui/stars";
|
||||
@import "ui/pagination";
|
||||
@import "ui/popovers";
|
||||
@import "ui/progress";
|
||||
@import "ui/ribbons";
|
||||
@import "ui/markdown";
|
||||
@import "ui/placeholder";
|
||||
@import "ui/segmented";
|
||||
@import "ui/steps";
|
||||
@import "ui/status";
|
||||
@import "ui/switch-icon";
|
||||
@import "ui/tables";
|
||||
@import "ui/tags";
|
||||
@import "ui/toasts";
|
||||
@import "ui/toolbar";
|
||||
@import "ui/tracking";
|
||||
@import "ui/timeline";
|
||||
@import "ui/type";
|
||||
@import "ui/charts";
|
||||
@import "ui/offcanvas";
|
||||
@import "ui/chat";
|
||||
@import "ui/signature";
|
||||
|
||||
@import "helpers/index";
|
||||
|
||||
@import "utils/background";
|
||||
@import "utils/colors";
|
||||
@import "utils/scroll";
|
||||
@import "utils/sizing";
|
||||
@import "utils/opacity";
|
||||
@import "utils/shadow";
|
||||
@import "utils/text";
|
||||
|
||||
@import "debug";
|
||||
|
||||
|
||||
@import "debug";
|
||||
@layer utilities {
|
||||
@import "utils/background";
|
||||
@import "utils/colors";
|
||||
@import "utils/scroll";
|
||||
@import "utils/sizing";
|
||||
@import "utils/opacity";
|
||||
@import "utils/shadow";
|
||||
@import "utils/text";
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
$debug: false;
|
||||
|
||||
@if $debug {
|
||||
$colors: (
|
||||
"blue": $blue,
|
||||
"azure": $azure,
|
||||
"indigo": $indigo,
|
||||
"purple": $purple,
|
||||
"pink": $pink,
|
||||
"red": $red,
|
||||
"orange": $orange,
|
||||
"yellow": $yellow,
|
||||
"lime": $lime,
|
||||
"green": $green,
|
||||
"teal": $teal,
|
||||
"cyan": $cyan,
|
||||
);
|
||||
|
||||
@each $name, $color in $colors {
|
||||
@debug ("#{$name}: '#{$color}'");
|
||||
@debug ("#{$name}-100: '#{tint-color($color, 8)}'");
|
||||
@debug ("#{$name}-200: '#{tint-color($color, 6)}'");
|
||||
@debug ("#{$name}-300: '#{tint-color($color, 4)}'");
|
||||
@debug ("#{$name}-400: '#{tint-color($color, 2)}'");
|
||||
@debug ("#{$name}-500: '#{$color}'");
|
||||
@debug ("#{$name}-600: '#{shade-color($color, 2)}'");
|
||||
@debug ("#{$name}-700: '#{shade-color($color, 4)}'");
|
||||
@debug ("#{$name}-800: '#{shade-color($color, 6)}'");
|
||||
@debug ("#{$name}-900: '#{shade-color($color, 8)}'");
|
||||
}
|
||||
|
||||
@debug ("gray: '#{$gray-500}'");
|
||||
@debug ("gray-100: '#{$gray-100}'");
|
||||
@debug ("gray-200: '#{$gray-200}'");
|
||||
@debug ("gray-300: '#{$gray-300}'");
|
||||
@debug ("gray-400: '#{$gray-400}'");
|
||||
@debug ("gray-500: '#{$gray-500}'");
|
||||
@debug ("gray-600: '#{$gray-600}'");
|
||||
@debug ("gray-700: '#{$gray-700}'");
|
||||
@debug ("gray-800: '#{$gray-800}'");
|
||||
@debug ("gray-900: '#{$gray-900}'");
|
||||
|
||||
@debug ("border-color: '#{$border-color}'");
|
||||
@debug ("text-secondary: '#{$text-secondary}'");
|
||||
|
||||
@each $name, $color in $social-colors {
|
||||
@debug ("#{$name}: '#{$color}'");
|
||||
}
|
||||
}
|
||||
@@ -42,9 +42,9 @@
|
||||
--#{$prefix}#{$name}-lt-rgb: #{to-rgb(theme-color-lighter($color))};
|
||||
}
|
||||
|
||||
/** Social colors */
|
||||
@each $name, $color in $social-colors {
|
||||
--#{$prefix}#{$name}: #{$color};
|
||||
/** Gray colors */
|
||||
@each $name, $color in $gray-colors {
|
||||
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color, white) > $min-contrast-ratio, var(--#{$prefix}white), var(--#{$prefix}body-color))};
|
||||
}
|
||||
|
||||
/** Spacers */
|
||||
|
||||
@@ -279,6 +279,7 @@ $gray-colors: (
|
||||
gray-700: $gray-700,
|
||||
gray-800: $gray-800,
|
||||
gray-900: $gray-900,
|
||||
gray-950: $gray-950,
|
||||
) !default;
|
||||
|
||||
$theme-colors: map-merge($theme-colors, map-merge($extra-colors, ()));
|
||||
@@ -320,10 +321,10 @@ $border-values: (
|
||||
$icon-color: var(--#{$prefix}gray-400) !default;
|
||||
|
||||
// Code
|
||||
$code-color: var(--#{$prefix}primary) !default;
|
||||
$code-color: light-dark(var(--#{$prefix}gray-600), var(--#{$prefix}gray-400)) !default;
|
||||
$code-bg: light-dark(var(--#{$prefix}gray-100), var(--#{$prefix}gray-900)) !default;
|
||||
$code-font-size: $font-size-reative-sm !default;
|
||||
$code-line-height: 1.25rem !default;
|
||||
$code-bg: var(--#{$prefix}primary-lt) !default;
|
||||
|
||||
$pre-padding: 1rem !default;
|
||||
$pre-bg: var(--#{$prefix}bg-surface-dark) !default;
|
||||
@@ -627,8 +628,8 @@ $btn-box-shadow: var(--#{$prefix}shadow-input) !default;
|
||||
|
||||
// Cards
|
||||
$card-title-spacer-y: 1.25rem !default;
|
||||
$card-box-shadow: var(--#{$prefix}box-shadow-card) !default;
|
||||
$card-hover-box-shadow: var(--#{$prefix}box-shadow-card-hover) !default;
|
||||
$card-box-shadow: var(--#{$prefix}shadow-card) !default;
|
||||
$card-hover-box-shadow: var(--#{$prefix}shadow-card-hover) !default;
|
||||
|
||||
$card-bg: var(--#{$prefix}bg-surface) !default;
|
||||
$card-bg-hover: $white !default;
|
||||
@@ -829,7 +830,7 @@ $popover-border-color: var(--#{$prefix}border-color) !default;
|
||||
$popover-body-color: inherit !default;
|
||||
$popover-body-padding-x: .5rem !default;
|
||||
$popover-body-padding-y: .5rem !default;
|
||||
$popover-box-shadow: var(--#{$prefix}box-shadow-lg) !default;
|
||||
$popover-box-shadow: var(--#{$prefix}shadow-lg) !default;
|
||||
|
||||
// Footer
|
||||
$footer-padding-y: 2rem !default;
|
||||
@@ -838,13 +839,17 @@ $footer-border-color: var(--#{$prefix}border-color) !default;
|
||||
$footer-color: var(--#{$prefix}gray-500) !default;
|
||||
|
||||
// Pagination
|
||||
$pagination-border-width: 0 !default;
|
||||
$pagination-padding-y: 0.25rem !default;
|
||||
$pagination-border-width: 1px !default;
|
||||
$pagination-border-color: transparent !default;
|
||||
$pagination-padding-y: calc(0.25rem + 1px) !default;
|
||||
$pagination-padding-x: 0.25rem !default;
|
||||
$pagination-color: var(--#{$prefix}gray-500) !default;
|
||||
$pagination-color: var(--#{$prefix}body-color) !default;
|
||||
$pagination-bg: transparent !default;
|
||||
$pagination-hover-bg: var(--#{$prefix}active-bg) !default;
|
||||
$pagination-hover-border-color: var(--#{$prefix}pagination-border-color) !default;
|
||||
$pagination-disabled-bg: transparent !default;
|
||||
$pagination-disabled-color: var(--#{$prefix}disabled-color) !default;
|
||||
$pagination-disabled-border-color: var(--#{$prefix}pagination-border-color) !default;
|
||||
|
||||
$pagination-active-bg: var(--#{$prefix}primary) !default;
|
||||
$pagination-active-border-color: var(--#{$prefix}primary) !default;
|
||||
|
||||
@@ -7,7 +7,7 @@ body {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
height: 100%;
|
||||
padding: 0 !important;
|
||||
padding: 0;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
@@ -61,9 +61,6 @@
|
||||
|
||||
--#{$prefix}btn-color: #{$darken-dark};
|
||||
|
||||
--#{$prefix}code-color: var(--#{$prefix}body-color);
|
||||
--#{$prefix}code-bg: #{$border-dark-color-dark};
|
||||
|
||||
.navbar-brand-autodark {
|
||||
.navbar-brand-image {
|
||||
@include autodark-image;
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
@import "config";
|
||||
@import "ui/flags";
|
||||
|
||||
@layer components {
|
||||
@import "ui/flags";
|
||||
}
|
||||
@@ -1,13 +1,16 @@
|
||||
@import "config";
|
||||
@import "variables";
|
||||
@import "utilities-marketing";
|
||||
|
||||
@import "marketing/core";
|
||||
@import "marketing/hero";
|
||||
@import "marketing/browser";
|
||||
@import "marketing/sections";
|
||||
@import "marketing/filters";
|
||||
@import "marketing/pricing";
|
||||
@import "marketing/shape";
|
||||
@layer components {
|
||||
@import "marketing/core";
|
||||
@import "marketing/hero";
|
||||
@import "marketing/browser";
|
||||
@import "marketing/sections";
|
||||
@import "marketing/filters";
|
||||
@import "marketing/pricing";
|
||||
@import "marketing/shape";
|
||||
}
|
||||
|
||||
@import "bootstrap/scss/utilities/api";
|
||||
@layer utilities {
|
||||
@import "bootstrap/scss/utilities/api";
|
||||
}
|
||||
@@ -1,2 +1,5 @@
|
||||
@import "config";
|
||||
@import "ui/payments";
|
||||
|
||||
@layer components {
|
||||
@import "ui/payments";
|
||||
}
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
@import "config";
|
||||
@import "ui/social";
|
||||
|
||||
@layer components {
|
||||
@import "ui/social";
|
||||
}
|
||||
@@ -1,121 +1,123 @@
|
||||
@import "config";
|
||||
|
||||
[data-bs-theme-base="slate"] {
|
||||
--#{$prefix}gray-50: #f8fafc;
|
||||
--#{$prefix}gray-100: #f1f5f9;
|
||||
--#{$prefix}gray-200: #e2e8f0;
|
||||
--#{$prefix}gray-300: #cbd5e1;
|
||||
--#{$prefix}gray-400: #94a3b8;
|
||||
--#{$prefix}gray-500: #64748b;
|
||||
--#{$prefix}gray-600: #475569;
|
||||
--#{$prefix}gray-700: #334155;
|
||||
--#{$prefix}gray-800: #1e293b;
|
||||
--#{$prefix}gray-900: #0f172a;
|
||||
--#{$prefix}gray-950: #020617;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="gray"] {
|
||||
--#{$prefix}gray-50: #f9fafb;
|
||||
--#{$prefix}gray-100: #f3f4f6;
|
||||
--#{$prefix}gray-200: #e5e7eb;
|
||||
--#{$prefix}gray-300: #d1d5db;
|
||||
--#{$prefix}gray-400: #9ca3af;
|
||||
--#{$prefix}gray-500: #6b7280;
|
||||
--#{$prefix}gray-600: #4b5563;
|
||||
--#{$prefix}gray-700: #374151;
|
||||
--#{$prefix}gray-800: #1f2937;
|
||||
--#{$prefix}gray-900: #111827;
|
||||
--#{$prefix}gray-950: #030712;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="zinc"] {
|
||||
--#{$prefix}gray-50: #fafafa;
|
||||
--#{$prefix}gray-100: #f4f4f5;
|
||||
--#{$prefix}gray-200: #e4e4e7;
|
||||
--#{$prefix}gray-300: #d4d4d8;
|
||||
--#{$prefix}gray-400: #a1a1aa;
|
||||
--#{$prefix}gray-500: #71717a;
|
||||
--#{$prefix}gray-600: #52525b;
|
||||
--#{$prefix}gray-700: #3f3f46;
|
||||
--#{$prefix}gray-800: #27272a;
|
||||
--#{$prefix}gray-900: #18181b;
|
||||
--#{$prefix}gray-950: #09090b;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="neutral"] {
|
||||
--#{$prefix}gray-50: #fafafa;
|
||||
--#{$prefix}gray-100: #f5f5f5;
|
||||
--#{$prefix}gray-200: #e5e5e5;
|
||||
--#{$prefix}gray-300: #d4d4d4;
|
||||
--#{$prefix}gray-400: #a3a3a3;
|
||||
--#{$prefix}gray-500: #737373;
|
||||
--#{$prefix}gray-600: #525252;
|
||||
--#{$prefix}gray-700: #404040;
|
||||
--#{$prefix}gray-800: #262626;
|
||||
--#{$prefix}gray-900: #171717;
|
||||
--#{$prefix}gray-950: #0a0a0a;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="stone"] {
|
||||
--#{$prefix}gray-50: #fafaf9;
|
||||
--#{$prefix}gray-100: #f5f5f4;
|
||||
--#{$prefix}gray-200: #e7e5e4;
|
||||
--#{$prefix}gray-300: #d6d3d1;
|
||||
--#{$prefix}gray-400: #a8a29e;
|
||||
--#{$prefix}gray-500: #78716c;
|
||||
--#{$prefix}gray-600: #57534e;
|
||||
--#{$prefix}gray-700: #44403c;
|
||||
--#{$prefix}gray-800: #292524;
|
||||
--#{$prefix}gray-900: #1c1917;
|
||||
--#{$prefix}gray-950: #0c0a09;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="pink"] {
|
||||
--#{$prefix}gray-50: #fdf2f8;
|
||||
--#{$prefix}gray-100: #fce7f3;
|
||||
--#{$prefix}gray-200: #fbcfe8;
|
||||
--#{$prefix}gray-300: #f9a8d4;
|
||||
--#{$prefix}gray-400: #f472b6;
|
||||
--#{$prefix}gray-500: #ec4899;
|
||||
--#{$prefix}gray-600: #db2777;
|
||||
--#{$prefix}gray-700: #be185d;
|
||||
--#{$prefix}gray-800: #9d174d;
|
||||
--#{$prefix}gray-900: #831843;
|
||||
--#{$prefix}gray-950: #500724;
|
||||
}
|
||||
|
||||
@each $name, $value in $extra-colors {
|
||||
[data-bs-theme-primary="#{$name}"] {
|
||||
--#{$prefix}primary: #{$value};
|
||||
--#{$prefix}primary-rgb: #{to-rgb($value)};
|
||||
@layer themes {
|
||||
[data-bs-theme-base="slate"] {
|
||||
--#{$prefix}gray-50: #f8fafc;
|
||||
--#{$prefix}gray-100: #f1f5f9;
|
||||
--#{$prefix}gray-200: #e2e8f0;
|
||||
--#{$prefix}gray-300: #cbd5e1;
|
||||
--#{$prefix}gray-400: #94a3b8;
|
||||
--#{$prefix}gray-500: #64748b;
|
||||
--#{$prefix}gray-600: #475569;
|
||||
--#{$prefix}gray-700: #334155;
|
||||
--#{$prefix}gray-800: #1e293b;
|
||||
--#{$prefix}gray-900: #0f172a;
|
||||
--#{$prefix}gray-950: #020617;
|
||||
}
|
||||
}
|
||||
|
||||
@each $value in (0, .5, 1, 1.5, 2) {
|
||||
[data-bs-theme-radius="#{$value}"] {
|
||||
--#{$prefix}border-radius-scale: #{$value};
|
||||
[data-bs-theme-base="gray"] {
|
||||
--#{$prefix}gray-50: #f9fafb;
|
||||
--#{$prefix}gray-100: #f3f4f6;
|
||||
--#{$prefix}gray-200: #e5e7eb;
|
||||
--#{$prefix}gray-300: #d1d5db;
|
||||
--#{$prefix}gray-400: #9ca3af;
|
||||
--#{$prefix}gray-500: #6b7280;
|
||||
--#{$prefix}gray-600: #4b5563;
|
||||
--#{$prefix}gray-700: #374151;
|
||||
--#{$prefix}gray-800: #1f2937;
|
||||
--#{$prefix}gray-900: #111827;
|
||||
--#{$prefix}gray-950: #030712;
|
||||
}
|
||||
}
|
||||
|
||||
[data-bs-theme-primary="inverted"] {
|
||||
--#{$prefix}primary: var(--#{$prefix}gray-800);
|
||||
--#{$prefix}primary-fg: var(--#{$prefix}light);
|
||||
--#{$prefix}primary-rgb: #{to-rgb($dark)};
|
||||
|
||||
&[data-bs-theme="dark"],
|
||||
[data-bs-theme="dark"] {
|
||||
--#{$prefix}primary: #{$light};
|
||||
--#{$prefix}primary-fg: var(--#{$prefix}dark);
|
||||
--#{$prefix}primary-rgb: #{to-rgb($light)};
|
||||
[data-bs-theme-base="zinc"] {
|
||||
--#{$prefix}gray-50: #fafafa;
|
||||
--#{$prefix}gray-100: #f4f4f5;
|
||||
--#{$prefix}gray-200: #e4e4e7;
|
||||
--#{$prefix}gray-300: #d4d4d8;
|
||||
--#{$prefix}gray-400: #a1a1aa;
|
||||
--#{$prefix}gray-500: #71717a;
|
||||
--#{$prefix}gray-600: #52525b;
|
||||
--#{$prefix}gray-700: #3f3f46;
|
||||
--#{$prefix}gray-800: #27272a;
|
||||
--#{$prefix}gray-900: #18181b;
|
||||
--#{$prefix}gray-950: #09090b;
|
||||
}
|
||||
}
|
||||
|
||||
@each $name, $value in (monospace: $font-family-monospace, sans-serif: $font-family-sans-serif, serif: $font-family-serif, comic: $font-family-comic) {
|
||||
[data-bs-theme-font="#{$name}"] {
|
||||
--#{$prefix}body-font-family: var(--#{$prefix}font-#{$name});
|
||||
[data-bs-theme-base="neutral"] {
|
||||
--#{$prefix}gray-50: #fafafa;
|
||||
--#{$prefix}gray-100: #f5f5f5;
|
||||
--#{$prefix}gray-200: #e5e5e5;
|
||||
--#{$prefix}gray-300: #d4d4d4;
|
||||
--#{$prefix}gray-400: #a3a3a3;
|
||||
--#{$prefix}gray-500: #737373;
|
||||
--#{$prefix}gray-600: #525252;
|
||||
--#{$prefix}gray-700: #404040;
|
||||
--#{$prefix}gray-800: #262626;
|
||||
--#{$prefix}gray-900: #171717;
|
||||
--#{$prefix}gray-950: #0a0a0a;
|
||||
}
|
||||
|
||||
@if $name == "monospace" {
|
||||
--#{$prefix}body-font-size: 80%;
|
||||
[data-bs-theme-base="stone"] {
|
||||
--#{$prefix}gray-50: #fafaf9;
|
||||
--#{$prefix}gray-100: #f5f5f4;
|
||||
--#{$prefix}gray-200: #e7e5e4;
|
||||
--#{$prefix}gray-300: #d6d3d1;
|
||||
--#{$prefix}gray-400: #a8a29e;
|
||||
--#{$prefix}gray-500: #78716c;
|
||||
--#{$prefix}gray-600: #57534e;
|
||||
--#{$prefix}gray-700: #44403c;
|
||||
--#{$prefix}gray-800: #292524;
|
||||
--#{$prefix}gray-900: #1c1917;
|
||||
--#{$prefix}gray-950: #0c0a09;
|
||||
}
|
||||
|
||||
[data-bs-theme-base="pink"] {
|
||||
--#{$prefix}gray-50: #fdf2f8;
|
||||
--#{$prefix}gray-100: #fce7f3;
|
||||
--#{$prefix}gray-200: #fbcfe8;
|
||||
--#{$prefix}gray-300: #f9a8d4;
|
||||
--#{$prefix}gray-400: #f472b6;
|
||||
--#{$prefix}gray-500: #ec4899;
|
||||
--#{$prefix}gray-600: #db2777;
|
||||
--#{$prefix}gray-700: #be185d;
|
||||
--#{$prefix}gray-800: #9d174d;
|
||||
--#{$prefix}gray-900: #831843;
|
||||
--#{$prefix}gray-950: #500724;
|
||||
}
|
||||
|
||||
@each $name, $value in $extra-colors {
|
||||
[data-bs-theme-primary="#{$name}"] {
|
||||
--#{$prefix}primary: #{$value};
|
||||
--#{$prefix}primary-rgb: #{to-rgb($value)};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $value in (0, .5, 1, 1.5, 2) {
|
||||
[data-bs-theme-radius="#{$value}"] {
|
||||
--#{$prefix}border-radius-scale: #{$value};
|
||||
}
|
||||
}
|
||||
|
||||
[data-bs-theme-primary="inverted"] {
|
||||
--#{$prefix}primary: var(--#{$prefix}gray-800);
|
||||
--#{$prefix}primary-fg: var(--#{$prefix}light);
|
||||
--#{$prefix}primary-rgb: #{to-rgb($dark)};
|
||||
|
||||
&[data-bs-theme="dark"],
|
||||
[data-bs-theme="dark"] {
|
||||
--#{$prefix}primary: #{$light};
|
||||
--#{$prefix}primary-fg: var(--#{$prefix}dark);
|
||||
--#{$prefix}primary-rgb: #{to-rgb($light)};
|
||||
}
|
||||
}
|
||||
|
||||
@each $name, $value in (monospace: $font-family-monospace, sans-serif: $font-family-sans-serif, serif: $font-family-serif, comic: $font-family-comic) {
|
||||
[data-bs-theme-font="#{$name}"] {
|
||||
--#{$prefix}body-font-family: var(--#{$prefix}font-#{$name});
|
||||
|
||||
@if $name == "monospace" {
|
||||
--#{$prefix}body-font-size: 80%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,18 @@
|
||||
@import "config";
|
||||
|
||||
@import "vendor/nouislider";
|
||||
@import "vendor/litepicker";
|
||||
@import "vendor/tom-select";
|
||||
@import "vendor/apexcharts";
|
||||
@import "vendor/jsvectormap";
|
||||
@import "vendor/dropzone";
|
||||
@import "vendor/fslightbox";
|
||||
@import "vendor/plyr";
|
||||
@import "vendor/wysiwyg";
|
||||
@import "vendor/stars-rating";
|
||||
@import "vendor/coloris";
|
||||
@import "vendor/typed";
|
||||
@import "vendor/turbo";
|
||||
|
||||
@layer vendors {
|
||||
@import "vendor/nouislider";
|
||||
@import "vendor/litepicker";
|
||||
@import "vendor/tom-select";
|
||||
@import "vendor/apexcharts";
|
||||
@import "vendor/jsvectormap";
|
||||
@import "vendor/dropzone";
|
||||
@import "vendor/fslightbox";
|
||||
@import "vendor/plyr";
|
||||
@import "vendor/wysiwyg";
|
||||
@import "vendor/stars-rating";
|
||||
@import "vendor/coloris";
|
||||
@import "vendor/typed";
|
||||
@import "vendor/turbo";
|
||||
@import "vendor/fullcalendar";
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
position: relative;
|
||||
padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
|
||||
margin-bottom: var(--#{$prefix}alert-margin-bottom);
|
||||
background-color: var(--#{$prefix}alert-bg);
|
||||
background-color: color-mix(in srgb, var(--#{$prefix}alert-bg), var(--#{$prefix}bg-surface));
|
||||
border-radius: var(--#{$prefix}alert-border-radius);
|
||||
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}alert-border-color);
|
||||
display: flex;
|
||||
|
||||
@@ -205,6 +205,7 @@ Stacked card
|
||||
flex: 1;
|
||||
margin: calc(var(--#{$prefix}card-cap-padding-y) * -1) calc(var(--#{$prefix}card-cap-padding-x) * -1) calc(var(--#{$prefix}card-cap-padding-y) * -1);
|
||||
padding: calc(var(--#{$prefix}card-cap-padding-y) * .5) calc(var(--#{$prefix}card-cap-padding-x) * .5) 0;
|
||||
border-radius: var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius) 0 0;
|
||||
}
|
||||
|
||||
.card-header-pills {
|
||||
|
||||
@@ -31,7 +31,8 @@ Markdown
|
||||
}
|
||||
|
||||
> table {
|
||||
@extend .table, .table-bordered;
|
||||
font-size: var(--#{$prefix}body-font-size);
|
||||
@extend .table, .table-bordered, .table-sm;
|
||||
}
|
||||
|
||||
> blockquote {
|
||||
@@ -46,7 +47,7 @@ Markdown
|
||||
border: 1px solid var(--#{$prefix}border-color);
|
||||
}
|
||||
|
||||
> pre {
|
||||
pre {
|
||||
max-height: 20rem;
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,10 @@
|
||||
margin: 0 0 calc(-1 * #{$nav-bordered-border-width});
|
||||
border: 0;
|
||||
border-bottom: $nav-bordered-link-active-border-width var(--#{$prefix}border-style) transparent;
|
||||
|
||||
&:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-link.active,
|
||||
|
||||
@@ -1,25 +1,28 @@
|
||||
.pagination {
|
||||
margin: 0;
|
||||
--#{$prefix}pagination-gap: .25rem;
|
||||
user-select: none;
|
||||
gap: var(--#{$prefix}pagination-gap);
|
||||
line-height: var(--#{$prefix}body-line-height);
|
||||
}
|
||||
|
||||
.page-link {
|
||||
min-width: 1.75rem;
|
||||
border-radius: var(--#{$prefix}border-radius);
|
||||
min-width: 2rem;
|
||||
border-radius: var(--#{$prefix}pagination-border-radius);
|
||||
|
||||
&:hover {
|
||||
background: var(--#{$prefix}pagination-hover-bg);
|
||||
}
|
||||
}
|
||||
|
||||
.page-text {
|
||||
padding-left: .5rem;
|
||||
padding-right: .5rem;
|
||||
}
|
||||
|
||||
.page-item {
|
||||
text-align: center;
|
||||
|
||||
&:not(.active) {
|
||||
.page-link {
|
||||
&:hover {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.page-prev,
|
||||
&.page-next {
|
||||
flex: 0 0 50%;
|
||||
@@ -56,3 +59,13 @@
|
||||
color: $pagination-disabled-color;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination-outline {
|
||||
--#{$prefix}pagination-border-color: var(--#{$prefix}border-color);
|
||||
--#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);
|
||||
--#{$prefix}pagination-border-width: 1px;
|
||||
}
|
||||
|
||||
.pagination-circle {
|
||||
--#{$prefix}pagination-border-radius: var(--tblr-border-radius-pill);
|
||||
}
|
||||
@@ -37,7 +37,7 @@
|
||||
justify-content: center;
|
||||
width: var(--#{$prefix}timeline-icon-size, $avatar-size);
|
||||
height: var(--#{$prefix}timeline-icon-size, $avatar-size);
|
||||
background: var(--#{$prefix}gray-200);
|
||||
background: var(--#{$prefix}bg-surface-secondary);
|
||||
color: var(--#{$prefix}secondary);
|
||||
border-radius: var(--#{$prefix}border-radius);
|
||||
z-index: 5
|
||||
|
||||
@@ -71,6 +71,10 @@ h6,
|
||||
line-height: var(--#{$prefix}line-height-h6);
|
||||
}
|
||||
|
||||
.fs-base {
|
||||
font-size: var(--#{$prefix}body-font-size);
|
||||
}
|
||||
|
||||
strong,
|
||||
.strong,
|
||||
b {
|
||||
@@ -212,7 +216,7 @@ Mentions
|
||||
*/
|
||||
.mention {
|
||||
display: inline-block;
|
||||
box-shadow: var(--#{$prefix}box-shadow-border);
|
||||
box-shadow: var(--#{$prefix}shadow-border);
|
||||
border-radius: var(--#{$prefix}border-radius-pill);
|
||||
line-height: calc(16em / 12);
|
||||
font-size: calc(12em / 14);
|
||||
@@ -241,7 +245,7 @@ Mentions
|
||||
margin: calc(-2em / 12) calc(4em / 12) 0 calc(-4em / 12);
|
||||
display: inline-flex;
|
||||
background: no-repeat center center/cover;
|
||||
box-shadow: var(--#{$prefix}box-shadow-border);
|
||||
box-shadow: var(--#{$prefix}shadow-border);
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -280,7 +284,6 @@ $text-variants: (
|
||||
counter-reset: step;
|
||||
border-left: 1px solid var(--#{$prefix}border-color);
|
||||
margin-bottom: 2rem;
|
||||
flex-direction: column;
|
||||
|
||||
h3 {
|
||||
counter-increment: step;
|
||||
@@ -312,3 +315,16 @@ $text-variants: (
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.callout {
|
||||
margin-bottom: 1.5rem;
|
||||
border: 1px solid var(--#{$prefix}primary-200);
|
||||
border-radius: var(--#{$prefix}border-radius);
|
||||
padding: .5rem 1rem;
|
||||
background: var(--#{$prefix}primary-lt);
|
||||
|
||||
&>:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
}
|
||||
|
||||
.text-#{"" + $color}-fg {
|
||||
color: $value !important;
|
||||
color: var(--#{$prefix}#{$color}-fg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
}
|
||||
|
||||
.text-#{"" + $color}-fg {
|
||||
color: $value !important;
|
||||
color: var(--#{$prefix}#{$color}-fg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
4
core/scss/vendor/_apexcharts.scss
vendored
4
core/scss/vendor/_apexcharts.scss
vendored
@@ -45,4 +45,8 @@
|
||||
.apexcharts-svg,
|
||||
.apexcharts-canvas {
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
.apexcharts-pie-area {
|
||||
stroke: var(--#{$prefix}bg-surface) !important;
|
||||
}
|
||||
55
core/scss/vendor/_fullcalendar.scss
vendored
Normal file
55
core/scss/vendor/_fullcalendar.scss
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
:root {
|
||||
--fc-border-color: var(--#{$prefix}border-color);
|
||||
--fc-daygrid-event-dot-width: 5px;
|
||||
|
||||
--fc-event-bg-color: var(--#{$prefix}primary-lt);
|
||||
--fc-event-border-color: var(--#{$prefix}primary-200);
|
||||
--fc-event-text-color: var(--#{$prefix}body-color);
|
||||
}
|
||||
|
||||
.fc-toolbar-title {
|
||||
font-size: var(--#{$prefix}font-size-h3) !important;
|
||||
font-weight: var(--#{$prefix}font-weight-medium);
|
||||
}
|
||||
|
||||
.fc-daygrid-dot-event {
|
||||
background-color: var(--fc-event-bg-color);
|
||||
border: 1px solid var(--fc-event-border-color);
|
||||
color: var(--fc-event-text-color);
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
|
||||
.fc-event-title {
|
||||
font-weight: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-col-header-cell {
|
||||
background-color: var(--#{$prefix}bg-surface-secondary);
|
||||
color: var(--#{$prefix}secondary);
|
||||
text-transform: uppercase;
|
||||
font-weight: var(--#{$prefix}font-weight-medium);
|
||||
font-size: var(--#{$prefix}font-size-h5);
|
||||
padding-top: .5rem !important;
|
||||
padding-bottom: .5rem !important;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.fc-event-time {
|
||||
font-weight: var(--#{$prefix}font-weight-bold) !important;
|
||||
}
|
||||
|
||||
.fc-col-header-cell-cushion {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.fc-daygrid-day-number {
|
||||
color: var(--#{$prefix}secondary);
|
||||
}
|
||||
|
||||
.fc-button {
|
||||
color: var(--#{$prefix}body-color) !important;
|
||||
background-color: transparent !important;
|
||||
border-color: var(--#{$prefix}border-color) !important;
|
||||
font-weight: var(--#{$prefix}font-weight-medium) !important;
|
||||
}
|
||||
34
core/scss/vendor/_tinymce.scss
vendored
34
core/scss/vendor/_tinymce.scss
vendored
@@ -1,34 +0,0 @@
|
||||
.tox-hugerte {
|
||||
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color) !important;
|
||||
border-radius: $border-radius !important;
|
||||
font-family: var(--#{$prefix}font-sans-serif) !important;
|
||||
}
|
||||
|
||||
.tox-toolbar__group {
|
||||
padding: 0 .5rem 0;
|
||||
}
|
||||
|
||||
.tox .tox-toolbar__primary {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.tox:not(.tox-hugerte-inline) {
|
||||
.tox-editor-header {
|
||||
border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color) !important;
|
||||
box-shadow: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tox-tbtn {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.tox-statusbar {
|
||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color) !important;
|
||||
}
|
||||
|
||||
.tox .tox-toolbar-overlord,
|
||||
.tox:not(.tox-hugerte-inline) .tox-editor-header {
|
||||
background: transparent !important;
|
||||
}
|
||||
14
core/scss/vendor/_wysiwyg.scss
vendored
14
core/scss/vendor/_wysiwyg.scss
vendored
@@ -21,7 +21,19 @@
|
||||
}
|
||||
|
||||
.tox-tbtn {
|
||||
margin: 0 !important;
|
||||
margin: 0 !important;
|
||||
background: var(--#{$prefix}bg-surface) !important;
|
||||
|
||||
&:hover,
|
||||
&.tox-tbtn--enabled {
|
||||
background: var(--#{$prefix}bg-surface-secondary) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tox-edit-area {
|
||||
&::before {
|
||||
border: none !important
|
||||
}
|
||||
}
|
||||
|
||||
.tox-statusbar {
|
||||
|
||||
@@ -15,16 +15,13 @@ const plugins = [
|
||||
babel({
|
||||
exclude: 'node_modules/**',
|
||||
babelHelpers: 'bundled'
|
||||
})
|
||||
]
|
||||
|
||||
plugins.push(
|
||||
}),
|
||||
replace({
|
||||
'process.env.NODE_ENV': '"production"',
|
||||
preventAssignment: true
|
||||
}),
|
||||
nodeResolve()
|
||||
)
|
||||
]
|
||||
|
||||
const rollupConfig = {
|
||||
input: [
|
||||
|
||||
@@ -1,5 +1,67 @@
|
||||
# @tabler/docs
|
||||
|
||||
## 1.3.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [446c34e]
|
||||
- @tabler/core@1.3.2
|
||||
|
||||
## 1.3.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [a7f73d7]
|
||||
- @tabler/core@1.3.1
|
||||
|
||||
## 1.3.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 8f70185: Improve Introduction, Base, Layout and Plugins sections in documentation
|
||||
- e546706: Fix input mask example in docs
|
||||
- 8850f61: Enhance pagination component with new styles
|
||||
- 8470c9b: Fix broken links to other docs section and tabler.io website; improve some labels.
|
||||
- 6a3513f: Fix links in Tabler Emails introduction, improve "How to contribute" and other small fixes
|
||||
- 278967b: Fix switch icon examples with filled icons in documentation
|
||||
- 38ea9aa: Use primary color for `::selection` inside `<code>` in docs
|
||||
- 5b3e201: Fix documentation: remove duplicated code examples; increase height of dropdown examples; fix some links
|
||||
- 7b72653: Fix ribbon component in the documentation
|
||||
- c42b104: Fix incorrect label text on form elements docs page
|
||||
- 895f943: Use tabs-package include to show webfont install steps
|
||||
- 665472c: Demonstrate sticky header table more clearly in docs
|
||||
- 7917f86: Replace non-existent Vimeo file and enhance the inline player documentation
|
||||
- 7fc1d5c: Exclude headings in the carousel and modal examples from ToC
|
||||
- 7773ff2: Exclude headings inside `.example` from the Table of Contents
|
||||
- 222ddd4: Change WYSIWYG title to uppercase
|
||||
- 9b15b94: Add missing `.steps-vertical` classes in docs
|
||||
- 5fa662b: Use color-input examples in documentation
|
||||
- 5619b2d: Fix `src` links to images in README and getting-started docs page
|
||||
- f8075f6: Add documentation for 3rd-party libraries and resources
|
||||
- Updated dependencies [cac5d92]
|
||||
- Updated dependencies [f94b153]
|
||||
- Updated dependencies [c127d65]
|
||||
- Updated dependencies [b6e9b18]
|
||||
- Updated dependencies [8850f61]
|
||||
- Updated dependencies [9910dd0]
|
||||
- Updated dependencies [638f36c]
|
||||
- Updated dependencies [0d501e9]
|
||||
- Updated dependencies [a1af801]
|
||||
- Updated dependencies [3a02ef9]
|
||||
- Updated dependencies [b9d434d]
|
||||
- Updated dependencies [fd0fd47]
|
||||
- Updated dependencies [74e5d26]
|
||||
- Updated dependencies [72a1d67]
|
||||
- Updated dependencies [bb617b8]
|
||||
- Updated dependencies [d73d78e]
|
||||
- Updated dependencies [19a3d20]
|
||||
- Updated dependencies [b5e2f54]
|
||||
- Updated dependencies [a41c956]
|
||||
- Updated dependencies [79bd867]
|
||||
- Updated dependencies [e675389]
|
||||
- Updated dependencies [9007e73]
|
||||
- @tabler/core@1.3.0
|
||||
|
||||
## 1.0.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -44,8 +44,8 @@ The **Tabler Emails** package is organized into a clear and efficient folder str
|
||||
|
||||
### 1. Email Templates: `emails/`
|
||||
This folder contains {{ emailsCount }} email subfolders, each with a specific template. Each email folder contains the following files:
|
||||
* Compiled HTML files for light and dark themes. Read more about their usage in the [Compiled HTML](/docs/emails/compiled-html) section.
|
||||
* Source HTML files for light and dark themes. Find more information in the [Source HTML](/docs/emails/source-html) section.
|
||||
* Compiled HTML files for light and dark themes. Read more about their usage in the [Compiled HTML](/emails/introduction/compiled-html) section.
|
||||
* Source HTML files for light and dark themes. Find more information in the [Source HTML](/emails/introduction/source-html) section.
|
||||
* Screenshot images for desktop and mobile views.
|
||||
* Assets folder with images used in the email template and the CSS file with styles.
|
||||
|
||||
@@ -60,4 +60,6 @@ It contains 4 subfolders with images used across the different email templates:
|
||||
This file contains the license information for the Tabler Emails package.
|
||||
|
||||
### 4. Readme: `readme.html`
|
||||
This file with the main information about the Tabler Emails package. It contains a brief description of the package and instructions on how to use it.
|
||||
This file contains the main information about the Tabler Emails package, including a brief description and instructions on how to use it.
|
||||
|
||||
Do you like our templates? **Find out more and purchase on [our website]({{ site.homepage }}/emails)**.
|
||||
@@ -9,21 +9,7 @@ summary: Tabler Icons as a webfont allows you to easily include icons in your pr
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
yarn add @tabler/icons-webfont
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
npm install @tabler/icons-webfont
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
pnpm install @tabler/icons-webfont
|
||||
```
|
||||
{% include "docs/tabs-package.html" name="@tabler/icons-webfont" %}
|
||||
|
||||
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ description: Use Tabler Icons directly in Figma.
|
||||
summary: The Tabler Figma plugin allows designers to seamlessly integrate Tabler Icons into their Figma projects, providing quick access to a vast library of customizable icons that enhance the design workflow.
|
||||
---
|
||||
|
||||

|
||||

|
||||
|
||||
The Tabler Icons Figma plugin is an essential tool for designers looking to enhance their workflow. It provides seamless access to a comprehensive library of high-quality, customizable icons directly within Figma. Whether you're designing dashboards, websites, or mobile apps, this plugin allows you to quickly search, preview, and integrate Tabler Icons into your projects, saving time and ensuring a consistent, modern aesthetic.
|
||||
|
||||
|
||||
@@ -74,4 +74,6 @@ This folder contains SVG files using CSS variables for flexible theming.
|
||||
- `dark/`: Dark-themed illustrations.
|
||||
- `light/`: Light-themed illustrations.
|
||||
|
||||
This structure ensures easy access to various formats and themes, making Tabler Illustrations a versatile tool for developers and designers alike.
|
||||
This structure ensures easy access to various formats and themes, making Tabler Illustrations a versatile tool for developers and designers alike.
|
||||
|
||||
**Find out more and purchase Tabler Illustrations at [our website]({{ site.homepage }}/illustrations)**.
|
||||
@@ -511,7 +511,7 @@ Look at the example below to see how you can change the color of the skin.
|
||||
|
||||
Tabler Illustrations uses `--tblr-primary` as a fallback color if `--tblr-illustrations-primary` is not set, so if you have a primary color set in your design system, you can use that to ensure consistency across your project.
|
||||
|
||||
```html example columns={1} centered vertical separated height="30rem"
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div>
|
||||
@@ -785,8 +785,8 @@ Tabler Illustrations uses `--tblr-primary` as a fallback color if `--tblr-illust
|
||||
});
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Dark version of the illustration
|
||||
|
||||
|
||||
17
docs/content/illustrations/introduction/preview.md
Normal file
17
docs/content/illustrations/introduction/preview.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Preview
|
||||
summary: "Tabler Illustrations offers 80 illustrations in two themes: light and dark. You can use them in your projects to enhance the visual appeal and convey messages effectively."
|
||||
---
|
||||
|
||||
Look at full list of illustrations below and see how they look. Find out more and purchase Tabler Illustrations at [our website]({{ site.homepage }}/illustrations).
|
||||
|
||||
{% assign all-illustrations = illustrations | sort %}
|
||||
<div class="row g-2 gy-6">
|
||||
{% for illustration in all-illustrations %}
|
||||
<div class="col-6 col-md-4 col-lg-3 text-center">
|
||||
<img src="/static/illustrations/light/{{ illustration }}.png" alt="{{ illustration }}" class="hide-theme-dark" />
|
||||
<img src="/static/illustrations/dark/{{ illustration }}.png" alt="{{ illustration }}" class="hide-theme-light" />
|
||||
<code>{{ illustration }}</code>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
@@ -3,7 +3,8 @@ title: Welcome to Tabler Documentation
|
||||
summary: Tabler Docs provides a comprehensive guide to help you get started with the Tabler ecosystem, including its UI components, plugins, and icons. Explore detailed documentation to understand and leverage the full potential of Tabler in your projects.
|
||||
---
|
||||
|
||||
<ResponsiveImage src="/docs/tabler.png" src-dark="/docs/tabler-dark.png" alt="Tabler" width="816" height="620" class="mb-4" />
|
||||
<img src="/img/tabler.png" alt="Tabler" class="mb-4 hide-theme-dark border-0" width="816" height="620" />
|
||||
<img src="/img/tabler-dark.png" alt="Tabler" class="mb-4 hide-theme-light border-0" width="816" height="620" />
|
||||
|
||||
Find all the guides and resources you need to develop with Tabler and our other tools. Explore our UI components, icons, illustrations, and email templates to enhance your web development experience. Our tools are designed to be easy to use, customizable, and fully responsive, ensuring that your projects look great on any device.
|
||||
|
||||
|
||||
@@ -10,15 +10,6 @@ description: Role of typography in interface design.
|
||||
Use HTML headings to organize content on your website and make the structure clear and user-friendly. The `h1` to `h6` tags are used to define HTML headings.
|
||||
The `h1` tag is the highest level and the `h6` tag is the lowest level.
|
||||
|
||||
```html
|
||||
<h1>H1 Heading</h1>
|
||||
<h2>H2 Heading</h2>
|
||||
<h3>H3 Heading</h3>
|
||||
<h4>H4 Heading</h4>
|
||||
<h5>H5 Heading</h5>
|
||||
<h6>H6 Heading</h6>
|
||||
```
|
||||
|
||||
Below are examples of headings with different levels:
|
||||
|
||||
{% capture html -%}
|
||||
@@ -29,7 +20,7 @@ Below are examples of headings with different levels:
|
||||
<h5>H5 Heading</h5>
|
||||
<h6>H6 Heading</h6>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html vertical %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Paragraphs
|
||||
|
||||
@@ -55,32 +46,15 @@ If you use a second paragraph, it will be separated from the first one by a blan
|
||||
|
||||
Use a variety of semantic text elements, depending on how you want to display particular fragments of content.
|
||||
|
||||
```html
|
||||
<abbr title="Internationalization">I18N</abbr>
|
||||
<strong>Bold</strong>
|
||||
<cite>Citation</cite>
|
||||
<code>Hello World!</code>
|
||||
<del>Deleted</del>
|
||||
<em>Emphasis</em>
|
||||
<i>Italic</i>
|
||||
<ins>Inserted</ins>
|
||||
<kbd>Ctrl + S</kbd>
|
||||
<mark>Highlighted</mark>
|
||||
<s>Strikethrough</s>
|
||||
<samp>Sample</samp>
|
||||
Text <sub>Subscripted</sub> Text <sup>Superscripted</sup>
|
||||
<time>20:00</time>
|
||||
<u>Underline</u>
|
||||
<var>x</var> = <var>y</var> + 2
|
||||
```
|
||||
|
||||
Here are examples of semantic text elements:
|
||||
|
||||
{% capture html -%}
|
||||
<div>
|
||||
<abbr title="Internationalization">I18N</abbr>
|
||||
</div>
|
||||
<div><strong>Bold</strong></div>
|
||||
<div>
|
||||
<strong>Bold</strong>
|
||||
</div>
|
||||
<div>
|
||||
<cite>Citation</cite>
|
||||
</div>
|
||||
@@ -111,19 +85,23 @@ Here are examples of semantic text elements:
|
||||
<div>
|
||||
<samp>Sample</samp>
|
||||
</div>
|
||||
<div>Text <sub>Subscripted</sub></div>
|
||||
<div>Text <sup>Superscripted</sup></div>
|
||||
<div>
|
||||
Text <sub>Subscript</sub>
|
||||
</div>
|
||||
<div>
|
||||
Text <sup>Superscript</sup>
|
||||
</div>
|
||||
<div>
|
||||
<time>20:00</time>
|
||||
</div>
|
||||
<div>
|
||||
<u>Underline</u>
|
||||
</div>
|
||||
<div><var>x</var> = <var>y</var> + 2</div>
|
||||
<div>
|
||||
<var>x</var> = <var>y</var> + 2
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html vertical %}
|
||||
|
||||
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Horizontal rules
|
||||
|
||||
@@ -144,15 +122,11 @@ Use the `hr` tag to represent a thematic break between paragraphs within one sec
|
||||
</p>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html vertical %}
|
||||
|
||||
```html
|
||||
<hr />
|
||||
```
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Horizontal rules with label
|
||||
|
||||
You can also add a label to a horizontal rule and align it as you see fit.
|
||||
You can also add a label to a horizontal rule and align it as you see fit. Centered label is the default.
|
||||
|
||||
{% capture html -%}
|
||||
<p>
|
||||
@@ -173,15 +147,22 @@ You can also add a label to a horizontal rule and align it as you see fit.
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
|
||||
labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</p>
|
||||
<div class="hr-text hr-text-end">
|
||||
<div class="hr-text hr-text-start">
|
||||
<span>Rule text</span>
|
||||
</div>
|
||||
<p>
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<div class="hr-text hr-text-end">
|
||||
<span>Rule text</span>
|
||||
</div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
|
||||
labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</p>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html raw %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Optimized for different alphabets
|
||||
|
||||
@@ -198,45 +179,33 @@ Tabler has been optimized to correctly display content in any language. It suppo
|
||||
<p>אלפבית עברי</p>
|
||||
<p>อักษรไทย</p>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html raw %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Text transform
|
||||
|
||||
Transform the content of components with text capitalization classes.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="text-lowercase">Lowercased text.</div>
|
||||
<div class="text-uppercase">Uppercased text.</div>
|
||||
<div class="text-capitalize">Capitalized text.</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html raw %}
|
||||
|
||||
```html
|
||||
<p class="text-lowercase">Lowercased text.</p>
|
||||
<p class="text-uppercase">Uppercased text.</p>
|
||||
<p class="text-capitalize">Capitalized text.</p>
|
||||
```
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Letter spacing
|
||||
|
||||
Control the tracking (letter spacing) of an element and make it tight, wide or normal.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="tracking-tight">Lorem ipsum dolor sit amet. Tight letter spacing.</div>
|
||||
<div class="tracking-normal">Lorem ipsum dolor sit amet. Normal letter spacing.</div>
|
||||
<div class="tracking-wide">Lorem ipsum dolor sit amet. Wide letter spacing.</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html raw %}
|
||||
|
||||
```html
|
||||
<p class="tracking-tight">Lorem ipsum dolor sit amet. Tight letter spacing.</p>
|
||||
<p class="tracking-normal">Lorem ipsum dolor sit amet. Normal letter spacing.</p>
|
||||
<p class="tracking-wide">Lorem ipsum dolor sit amet. Wide letter spacing.</p>
|
||||
```
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Line height
|
||||
|
||||
Control the leading (line height) of an element.
|
||||
Control the leading (line height) of an element using the `.lh-*` classes. The line height is the vertical space between lines of text.
|
||||
|
||||
{% capture html -%}
|
||||
<p class="lh-1">
|
||||
@@ -254,15 +223,6 @@ Control the leading (line height) of an element.
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
To control the line height of an element, use the following classes:
|
||||
|
||||
```html
|
||||
<p class="lh-1">...</p>
|
||||
<p class="lh-sm">...</p>
|
||||
<p class="lh-base">...</p>
|
||||
<p class="lh-lg">...</p>
|
||||
```
|
||||
|
||||
## Antialiasing
|
||||
|
||||
Control the font smoothing of an element.
|
||||
@@ -273,21 +233,17 @@ Use the `.antialiased` utility to render text using subpixel antialiasing or use
|
||||
<div class="antialiased">Text with antialiasing</div>
|
||||
<div class="subpixel-antialiased">Text without antialiasing</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html raw %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Keyboard input
|
||||
|
||||
Use the `<kbd>` to indicate input that is typically entered via keyboard.
|
||||
|
||||
{% capture html -%}
|
||||
<div>To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd>C</kbd>.</div>
|
||||
To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd>C</kbd>.
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd>C</kbd>.
|
||||
```
|
||||
|
||||
## Markdown elements
|
||||
|
||||
If you can't use the CSS classes you want, or you just want to use HTML tags, use the `.markdown` class in a container. It will apply the default styles for markdown elements.
|
||||
|
||||
@@ -14,22 +14,10 @@ Combine `alert` class with one of the following: `alert-success`, `alert-info`,
|
||||
Alert classes affect the color of all the text inside an alert. Use another class, e.g. `text-secondary` to change the color of the alert's content.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="alert alert-success" role="alert">
|
||||
<h4 class="alert-title">Wow! Everything worked!</h4>
|
||||
<div class="text-secondary">Your account has been saved!</div>
|
||||
</div>
|
||||
<div class="alert alert-info" role="alert">
|
||||
<h4 class="alert-title">Did you know?</h4>
|
||||
<div class="text-secondary">Here is something that you might like to know.</div>
|
||||
</div>
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<h4 class="alert-title">Uh oh, something went wrong</h4>
|
||||
<div class="text-secondary">Sorry! There was a problem with your request.</div>
|
||||
</div>
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<h4 class="alert-title">I'm so sorry…</h4>
|
||||
<div class="text-secondary">Your account has been deleted and can't be restored.</div>
|
||||
</div>
|
||||
{% include "ui/alert.html" type="success" title="Wow! Everything worked!" description="Your account has been saved!" %}
|
||||
{% include "ui/alert.html" type="info" title="Did you know?" description="Here is something that you might like to know." %}
|
||||
{% include "ui/alert.html" type="warning" title="Uh oh, something went wrong" description="Sorry! There was a problem with your request." %}
|
||||
{% include "ui/alert.html" type="danger" title="I'm so sorry…" description="Your account has been deleted and can't be restored." %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -38,9 +26,7 @@ Alert classes affect the color of all the text inside an alert. Use another clas
|
||||
Add a link to your alert message to redirect users to the details they need to complete or additional information they should read. Use `alert-link` class to style the link and match the text color.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="alert alert-danger m-0">
|
||||
This is a danger alert — <a href="#" class="alert-link">check it out</a>!
|
||||
</div>
|
||||
{% include "ui/alert.html" type="danger" title="This is a danger alert" link="check it out" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -53,34 +39,7 @@ Add the `x` close button to make an alert modal dismissible. Thanks to that, you
|
||||
```
|
||||
|
||||
{% capture html -%}
|
||||
<div class="alert alert-success alert-dismissible" role="alert">
|
||||
<div>
|
||||
<h4 class="alert-title">Wow! Everything worked!</h4>
|
||||
<div class="text-secondary">Your account has been saved!</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
<div class="alert alert-info alert-dismissible" role="alert">
|
||||
<div>
|
||||
<h4 class="alert-title">Did you know?</h4>
|
||||
<div class="text-secondary">Here is something that you might like to know.</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
<div class="alert alert-warning alert-dismissible" role="alert">
|
||||
<div>
|
||||
<h4 class="alert-title">Uh oh, something went wrong</h4>
|
||||
<div class="text-secondary">Sorry! There was a problem with your request.</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
<div class="alert alert-danger alert-dismissible" role="alert">
|
||||
<div>
|
||||
<h4 class="alert-title">I'm so sorry…</h4>
|
||||
<div class="text-secondary">Your account has been deleted and can't be restored.</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
{% include "ui/alert.html" type="danger" title="This is a danger alert" show-close %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -415,4 +374,6 @@ You're not limited to the 4 default alert colors. You can use any [base or socia
|
||||
|
||||
## SASS variables
|
||||
|
||||
You can customize the alert colors by changing the SASS variables. The default values are:
|
||||
|
||||
{% scss-docs "alert-variables" "ui/_alerts.scss" %}
|
||||
@@ -13,12 +13,6 @@ Add the autosize element to your input to make it automatically adjust to the le
|
||||
|
||||
To create autosize textarea, add the `data-bs-toggle="autosize"` attribute to the textarea element:
|
||||
|
||||
```html
|
||||
<textarea class="form-control" data-bs-toggle="autosize" placeholder="Type something…"></textarea>
|
||||
```
|
||||
|
||||
Look at the example below to see how the autosize element works:
|
||||
|
||||
{% capture html -%}
|
||||
<label class="form-label">Autosize example</label>
|
||||
<textarea class="form-control" data-bs-toggle="autosize" placeholder="Type something…"></textarea>
|
||||
|
||||
@@ -56,15 +56,9 @@ Besides pictures and initials, you can also use icons to make the avatars more u
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
```html
|
||||
<span class="avatar">
|
||||
{% include "ui/icon.html" icon="user" %}
|
||||
</span>
|
||||
```
|
||||
|
||||
## Avatar initials color
|
||||
|
||||
Customize the color of the avatars' background. You can click [here](/docs/ui/base/colors) to see the list of available colors.
|
||||
Customize the color of the avatars' background. See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="avatar bg-green-lt">AB</span>
|
||||
|
||||
@@ -10,50 +10,56 @@ bootstrapLink: components/badge/
|
||||
The default badges are square and come in the basic set of colors.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="badge bg-blue-lt">Blue</span>
|
||||
<span class="badge bg-azure-lt">Azure</span>
|
||||
<span class="badge bg-indigo-lt">Indigo</span>
|
||||
<span class="badge bg-purple-lt">Purple</span>
|
||||
<span class="badge bg-pink-lt">Pink</span>
|
||||
<span class="badge bg-red-lt">Red</span>
|
||||
<span class="badge bg-orange-lt">Orange</span>
|
||||
<span class="badge bg-yellow-lt">Yellow</span>
|
||||
<span class="badge bg-lime-lt">Lime</span>
|
||||
<span class="badge bg-green-lt">Green</span>
|
||||
<span class="badge bg-teal-lt">Teal</span>
|
||||
<span class="badge bg-cyan-lt">Cyan</span>
|
||||
<div class="badges-list">
|
||||
{% for color in site.colors -%}
|
||||
{% include "ui/badge.html" color=color[0] text=color[1].title %}
|
||||
{%- endfor -%}
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Headings
|
||||
|
||||
Badges can be used in headings to draw attention to new or important information. You can use them in any heading level, from `<h1>` to `<h6>`. The example below shows how to use badges in headings.
|
||||
|
||||
{% capture html -%}
|
||||
<h1>Example heading <span class="badge">New</span></h1>
|
||||
<h2>Example heading <span class="badge">New</span></h2>
|
||||
<h3>Example heading <span class="badge">New</span></h3>
|
||||
<h4>Example heading <span class="badge">New</span></h4>
|
||||
<h5>Example heading <span class="badge">New</span></h5>
|
||||
<h6>Example heading <span class="badge">New</span></h6>
|
||||
<h1>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h1>
|
||||
<h2>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h2>
|
||||
<h3>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h3>
|
||||
<h4>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h4>
|
||||
<h5>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h5>
|
||||
<h6>
|
||||
Example heading
|
||||
{% include "ui/badge.html" text="New" -%}
|
||||
</h6>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Outline badges
|
||||
## Light versions of badges
|
||||
|
||||
You can use the `-lt` classes to create a light version of the badge. This is useful for creating a more subtle look.
|
||||
|
||||
For example you can use the `bg-blue-lt` class to create a light blue badge. If you add the `text-blue-lt-fg` class, the text will be blue as well.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="badge badge-outline text-blue">blue</span>
|
||||
<span class="badge badge-outline text-azure">azure</span>
|
||||
<span class="badge badge-outline text-indigo">indigo</span>
|
||||
<span class="badge badge-outline text-purple">purple</span>
|
||||
<span class="badge badge-outline text-pink">pink</span>
|
||||
<span class="badge badge-outline text-red">red</span>
|
||||
<span class="badge badge-outline text-orange">orange</span>
|
||||
<span class="badge badge-outline text-yellow">yellow</span>
|
||||
<span class="badge badge-outline text-lime">lime</span>
|
||||
<span class="badge badge-outline text-green">green</span>
|
||||
<span class="badge badge-outline text-teal">teal</span>
|
||||
<span class="badge badge-outline text-cyan">cyan</span>
|
||||
{%- for color in site.colors -%}
|
||||
{% include "ui/badge.html" color=color[0] text=color[1].title light %}
|
||||
{%- endfor -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
@@ -62,18 +68,44 @@ The default badges are square and come in the basic set of colors.
|
||||
Use the `.badge-pill` class if you want to create a badge with rounded corners. Its width will adjust to the label text.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="badge badge-pill bg-blue-lt">1</span>
|
||||
<span class="badge badge-pill bg-azure-lt">2</span>
|
||||
<span class="badge badge-pill bg-indigo-lt">3</span>
|
||||
<span class="badge badge-pill bg-purple-lt">4</span>
|
||||
<span class="badge badge-pill bg-pink-lt">5</span>
|
||||
<span class="badge badge-pill bg-red-lt">6</span>
|
||||
<span class="badge badge-pill bg-orange-lt">7</span>
|
||||
<span class="badge badge-pill bg-yellow-lt">8</span>
|
||||
<span class="badge badge-pill bg-lime-lt">9</span>
|
||||
<span class="badge badge-pill bg-green-lt">10</span>
|
||||
<span class="badge badge-pill bg-teal-lt">11</span>
|
||||
<span class="badge badge-pill bg-cyan-lt">12</span>
|
||||
{%- for color in site.colors -%}
|
||||
{% include "ui/badge.html" color=color[0] text=color[1].title class="badge-pill" %}
|
||||
{%- endfor -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
You can use it to create a pill with numbers, for example, to show the number of unread messages. The badge will adjust its width to the number of digits.
|
||||
|
||||
{% capture html -%}
|
||||
{%- for color in site.colors -%}
|
||||
{% include "ui/badge.html" color=color[0] text=forloop.index class="badge-pill" %}
|
||||
{%- endfor -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Badges with icons
|
||||
|
||||
You can use icons in badges to make them more visually appealing. The example below demonstrates how to use icons in badges.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/badge.html" text="Star" icon="star" -%}
|
||||
{% include "ui/badge.html" text="Heart" icon="heart" -%}
|
||||
{% include "ui/badge.html" text="Check" icon="check" -%}
|
||||
{% include "ui/badge.html" text="X" icon="x" -%}
|
||||
{% include "ui/badge.html" text="Plus" icon="plus" -%}
|
||||
{% include "ui/badge.html" text="Minus" icon="minus" -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
You can also use an icon on the right side of the badge. The example below demonstrates how to use icons on the right side of badges.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/badge.html" text="Star" icon-right="arrow-right" -%}
|
||||
{% include "ui/badge.html" text="Heart" icon-right="arrow-right" -%}
|
||||
{% include "ui/badge.html" text="Check" icon-right="arrow-right" -%}
|
||||
{% include "ui/badge.html" text="X" icon-right="arrow-right" -%}
|
||||
{% include "ui/badge.html" text="Plus" icon-right="arrow-right" -%}
|
||||
{% include "ui/badge.html" text="Minus" icon-right="arrow-right" -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
@@ -99,20 +131,55 @@ Place the badge within an `<a>` element if you want it to perform the function o
|
||||
|
||||
## Button with badge
|
||||
|
||||
Badges can be used as part of links or buttons to provide a counter.
|
||||
Badges can be used as parts of links or buttons to provide, for example, a counter. Use the `.badge-notification` class to create a notification badge. This class will position the badge in the top right corner of the button.
|
||||
|
||||
```
|
||||
<button type="button" class="btn">
|
||||
Notifications <span class="badge bg-red-lt ms-2">4</span>
|
||||
</button>
|
||||
```
|
||||
|
||||
The results can be seen in the example below.
|
||||
If you don't provide text for the badge, you end up with a small dot. This is useful for creating a simple notification button.
|
||||
|
||||
{% capture html -%}
|
||||
<button type="button" class="btn">Notifications <span class="badge bg-red-lt ms-2">4</span></button>
|
||||
<button type="button" class="btn">
|
||||
Notifications <span class="badge bg-green-lt ms-2">4</span>
|
||||
Notifications {% include "ui/badge.html" text="2" color="red" class="ms-2" -%}
|
||||
</button>
|
||||
<button type="button" class="btn">
|
||||
Inbox {% include "ui/badge.html" text="4" color="red" class="badge-notification" -%}
|
||||
</button>
|
||||
<button type="button" class="btn">
|
||||
Profile {% include "ui/badge.html" text="" color="red" class="badge-notification" -%}
|
||||
</button>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Animated badges
|
||||
|
||||
You can use the `.badge-blink` class to create a blinking effect. This class will add a CSS animation to the badge, so it will blink to draw attention.
|
||||
|
||||
{% capture html -%}
|
||||
<button type="button" class="btn">
|
||||
Profile {% include "ui/badge.html" text="" color="red" class="badge-notification badge-blink" -%}
|
||||
</button>
|
||||
{% endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Size Options
|
||||
|
||||
Use `.badge-sm` or `.badge-lg` to change badge size according to your needs. The default size is `.badge` and it is used in the examples above.
|
||||
|
||||
{% capture html -%}
|
||||
<div>
|
||||
{% include "ui/badge.html" color="primary" scale="sm" text="New" class="badge-sm" -%}
|
||||
{% include "ui/badge.html" color="primary" scale="sm" text="1" class="badge-pill" -%}
|
||||
</div>
|
||||
<div>
|
||||
{% include "ui/badge.html" color="primary" text="New" class="badge-sm" -%}
|
||||
{% include "ui/badge.html" color="primary" text="1" class="badge-pill" -%}
|
||||
</div>
|
||||
<div>
|
||||
{% include "ui/badge.html" color="primary" scale="lg" text="New" class="badge-sm" -%}
|
||||
{% include "ui/badge.html" color="primary" scale="lg" text="1" class="badge-pill" -%}
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
|
||||
## More examples
|
||||
|
||||
If you want to see more examples of badges, you can check out the [Bootstrap documentation](https://getbootstrap.com/docs/5.3/components/badge/) for badges. You can also find more examples in the Tabler [Badges](https://preview.tabler.io/badges.html) preview.
|
||||
@@ -9,122 +9,41 @@ description: Navigation aid for better structure.
|
||||
|
||||
Use the `breadcrumb` class to add a breadcrumb to your interface design for better navigation. The `active` modifier in a `li` tag will help you indicate the current page location and facilitate navigation within your website or app.
|
||||
|
||||
```html
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">...</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">...</a>
|
||||
</li>
|
||||
</ol>
|
||||
```
|
||||
|
||||
Look at the example below to see how breadcrumbs work in practice.
|
||||
|
||||
{% capture html -%}
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Different separators
|
||||
|
||||
You can use different breadcrumb styles to match your website or app design. Choose between `breadcrumb-dots`, `breadcrumb-arrows`, and `breadcrumb-bullets` to create a unique look.
|
||||
|
||||
```html
|
||||
<ol class="breadcrumb breadcrumb-dots">
|
||||
...
|
||||
</ol>
|
||||
```
|
||||
|
||||
This example shows how to use different breadcrumb styles.
|
||||
|
||||
{% capture html -%}
|
||||
<ol class="breadcrumb breadcrumb-dots">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
<ol class="breadcrumb breadcrumb-arrows">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
<ol class="breadcrumb breadcrumb-bullets">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" separator="dots" %}
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" separator="arrows" %}
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" separator="bullets" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
{% include "docs/example.html" html=html vertical separated centered %}
|
||||
|
||||
## With icon
|
||||
|
||||
You can use icons in breadcrumbs to make them more visually appealing. The example below demonstrates how to use icons in breadcrumbs.
|
||||
|
||||
{% capture html -%}
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">
|
||||
{% include "ui/icon.html" icon="home" %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" home-icon %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Muted breadcrumbs
|
||||
|
||||
You can use the `breadcrumb-muted` class to create a muted breadcrumb style. This style is perfect for breadcrumbs that are not the main focus of your website or app.
|
||||
|
||||
{% capture html -%}
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb breadcrumb-muted">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Data" class="breadcrumb-muted" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -136,24 +55,9 @@ You can use breadcrumbs in headers to show the current page location and provide
|
||||
<div class="page-header">
|
||||
<div class="row align-items-center mw-100">
|
||||
<div class="col">
|
||||
<div class="mb-1">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Library</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">
|
||||
<a href="#">Articles</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
{% include "ui/breadcrumb.html" pages="Home,Library,Articles" -%}
|
||||
<h2 class="page-title">
|
||||
<span class="text-truncate"
|
||||
>Knights of Ni, we are but simple travelers who seek the enchanter who lives beyond these
|
||||
woods.</span
|
||||
>
|
||||
<span class="text-truncate">How to Build a Modern Dashboard with Tabler</span>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
@@ -168,5 +72,5 @@ You can use breadcrumbs in headers to show the current page location and provide
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ As one of the most common elements of UI design, buttons have a very important f
|
||||
<input type="submit" class="btn" value="Submit" />
|
||||
<input type="reset" class="btn" value="Reset" />
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Default button
|
||||
|
||||
@@ -25,7 +25,7 @@ The standard button creates a white background and subtle hover animation. It's
|
||||
{% capture html -%}
|
||||
<a href="#" class="btn" role="button">Link</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Button variations
|
||||
|
||||
@@ -41,7 +41,7 @@ Use the button classes that correspond to the function of your button. The big r
|
||||
<a href="#" class="btn btn-dark">Dark</a>
|
||||
<a href="#" class="btn btn-light">Light</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated centered -%}
|
||||
{%- include "docs/example.html" html=html separated centered %}
|
||||
|
||||
## Disabled buttons
|
||||
|
||||
@@ -57,7 +57,7 @@ Make buttons look inactive to show that an action is possible once the user meet
|
||||
<a href="#" class="btn btn-dark disabled">Dark</a>
|
||||
<a href="#" class="btn btn-light disabled">Light</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated centered -%}
|
||||
{%- include "docs/example.html" html=html separated centered %}
|
||||
|
||||
## Color variations
|
||||
|
||||
@@ -77,7 +77,7 @@ Choose the right color for your button to make it go well with your design and d
|
||||
<a href="#" class="btn btn-teal">Teal</a>
|
||||
<a href="#" class="btn btn-cyan">Cyan</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated centered -%}
|
||||
{%- include "docs/example.html" html=html separated centered %}
|
||||
|
||||
## Ghost buttons
|
||||
|
||||
@@ -95,7 +95,7 @@ Use the `.btn-ghost-*` class to make your button look simple yet aesthetically a
|
||||
<a href="#" class="btn btn-ghost-light">Light</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated vertical -%}
|
||||
{%- include "docs/example.html" html=html separated vertical %}
|
||||
|
||||
## Square buttons
|
||||
|
||||
@@ -104,7 +104,7 @@ Use the `.btn-square` class to remove the border radius, if you want the corners
|
||||
{% capture html -%}
|
||||
<a href="#" class="btn btn-square">Square button</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Pill buttons
|
||||
|
||||
@@ -113,7 +113,7 @@ Add the `.btn-pill` class to your button to make it rounded and give it a modern
|
||||
{% capture html -%}
|
||||
<a href="#" class="btn btn-pill">Pill button</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Outline buttons
|
||||
|
||||
@@ -129,7 +129,7 @@ Replace the default modifier class with the `.btn-outline-*` class, if you want
|
||||
<a href="#" class="btn btn-outline-dark">Dark</a>
|
||||
<a href="#" class="btn btn-outline-light">Light</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Button size
|
||||
|
||||
@@ -139,19 +139,19 @@ Add `.btn-lg` or `.btn-sm` to change the size of your button and differentiate t
|
||||
<button type="button" class="btn btn-primary btn-lg">Large button</button>
|
||||
<button type="button" class="btn btn-lg">Large button</button>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
{% capture html -%}
|
||||
<button type="button" class="btn btn-primary btn-sm">Small button</button>
|
||||
<button type="button" class="btn btn-sm">Small button</button>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Buttons with icons
|
||||
|
||||
Label your button with text and add an icon to communicate the action and make it easy to identify for users. Icons are easily recognized and improve the aesthetics of your button design, giving it a modern and attractive look.
|
||||
|
||||
Icons can be found [**here**](/docs/components/icons)
|
||||
See all icons at [tabler.io/icons]({{ site.icons.link }}).
|
||||
|
||||
{% capture html -%}
|
||||
<button type="button" class="btn">
|
||||
@@ -179,7 +179,7 @@ Icons can be found [**here**](/docs/components/icons)
|
||||
Comment
|
||||
</button>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## Social buttons
|
||||
|
||||
@@ -243,7 +243,7 @@ You can use the icons of popular social networking sites, which users are famili
|
||||
Tabler
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated centered hide-code -%}
|
||||
{%- include "docs/example.html" html=html separated centered hide-code %}
|
||||
|
||||
```html
|
||||
<a href="#" class="btn btn-facebook">
|
||||
@@ -298,7 +298,7 @@ You can also add an icon without the name of a social networking site, if you wa
|
||||
{%- include "ui/icon.html" icon="brand-tabler" -%}
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated vertical hide-code -%}
|
||||
{%- include "docs/example.html" html=html separated vertical hide-code %}
|
||||
|
||||
```html
|
||||
<a href="#" class="btn btn-facebook btn-icon" aria-label="Button">
|
||||
@@ -333,7 +333,7 @@ Add the `.btn-icon` class to remove unnecessary padding from your button and use
|
||||
{%- include "ui/icon.html" icon="git-merge" -%}
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html separated centered hide-code -%}
|
||||
{%- include "docs/example.html" html=html separated centered hide-code %}
|
||||
|
||||
```html
|
||||
<a href="#" class="btn btn-primary btn-icon" aria-label="Button">
|
||||
@@ -373,7 +373,7 @@ Create a dropdown button that will encourage users to click for more options. Yo
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered hide-code -%}
|
||||
{%- include "docs/example.html" html=html centered hide-code height="260px" %}
|
||||
|
||||
```html
|
||||
<div class="dropdown">
|
||||
@@ -399,7 +399,7 @@ Add the `.btn-loading` class to show a button's loading state, which can be usef
|
||||
Loading button with loooong content
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
{% capture html -%}
|
||||
<a href="#" class="btn btn-primary">
|
||||
@@ -407,7 +407,7 @@ Add the `.btn-loading` class to show a button's loading state, which can be usef
|
||||
Button
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
## List of buttons
|
||||
|
||||
@@ -420,7 +420,7 @@ Create a list of buttons using the `.btn-list` container to display different ac
|
||||
<a href="#" class="btn btn-danger">Cancel</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
If the list is long, it will be wrapped and some buttons will be moved to the next line, keeping them all evenly spaced.
|
||||
|
||||
@@ -447,7 +447,7 @@ If the list is long, it will be wrapped and some buttons will be moved to the ne
|
||||
<a href="#" class="btn">Nineteen</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
Use the `.text-center` or the `.text-end` modifiers to change the buttons' alignment and place them where they suit best.
|
||||
|
||||
@@ -457,7 +457,7 @@ Use the `.text-center` or the `.text-end` modifiers to change the buttons' align
|
||||
<a href="#" class="btn btn-primary">Save changes</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html -%}
|
||||
{%- include "docs/example.html" html=html %}
|
||||
|
||||
{% capture html -%}
|
||||
<div class="btn-list justify-content-end">
|
||||
@@ -465,7 +465,7 @@ Use the `.text-center` or the `.text-end` modifiers to change the buttons' align
|
||||
<a href="#" class="btn btn-primary">Save changes</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html -%}
|
||||
{%- include "docs/example.html" html=html %}
|
||||
|
||||
{% capture html -%}
|
||||
<div class="btn-list">
|
||||
@@ -474,7 +474,7 @@ Use the `.text-center` or the `.text-end` modifiers to change the buttons' align
|
||||
<a href="#" class="btn btn-primary">Save changes</a>
|
||||
</div>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html -%}
|
||||
{%- include "docs/example.html" html=html %}
|
||||
|
||||
## Buttons with avatars
|
||||
|
||||
@@ -507,4 +507,4 @@ Use buttons with avatars to simplify the process of interaction and make your de
|
||||
Avatar
|
||||
</a>
|
||||
{%- endcapture -%}
|
||||
{%- include "docs/example.html" html=html centered -%}
|
||||
{%- include "docs/example.html" html=html centered %}
|
||||
|
||||
@@ -16,7 +16,7 @@ Use the `.card` and `.card-body` classes to create a card and use it as the basi
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column %}
|
||||
|
||||
## Card padding
|
||||
|
||||
@@ -38,14 +38,7 @@ Cards with the `.card-sm` class are well suited for small items such as widgets,
|
||||
<div class="card-body">This is some text within a card body.</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
|
||||
```html
|
||||
<div class="card card-sm">...</div>
|
||||
<div class="card">...</div>
|
||||
<div class="card card-md">...</div>
|
||||
<div class="card card-lg">...</div>
|
||||
```
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column %}
|
||||
|
||||
## Card with title
|
||||
|
||||
@@ -67,7 +60,7 @@ Add a title to your card by including the `.card-title` class within `.card-body
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column vertical %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column %}
|
||||
|
||||
## Card with title and image
|
||||
|
||||
@@ -89,7 +82,7 @@ To create a more visually appealing card, add a title and an image. Thanks to th
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column %}
|
||||
|
||||
## Blog post card
|
||||
|
||||
@@ -169,7 +162,7 @@ You can also add an image on the left side of the card. To do it, add the `.card
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card-body">
|
||||
<div class="card-body h-full d-flex flex-column">
|
||||
<h3 class="card-title">
|
||||
<a href="#">Shut up!</a>
|
||||
</h3>
|
||||
@@ -198,7 +191,7 @@ You can also add an image on the left side of the card. To do it, add the `.card
|
||||
|
||||
## Color variations
|
||||
|
||||
Add a status color to your card, either at the top or on the side of the card, to customize it and make it more eye-catching.
|
||||
Add a status color to your card, either at the top or on the side of the card, to customize it and make it more eye-catching. Use `card-status-*` and `bg-*` classes to change the placement and color of the status border.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="row row-deck">
|
||||
@@ -230,29 +223,6 @@ Add a status color to your card, either at the top or on the side of the card, t
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-status-top bg-danger"></div>
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">Card with top status</h3>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
|
||||
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-status-start bg-green"></div>
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">Card with side status</h3>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
|
||||
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Stacked card
|
||||
|
||||
Use the `card-stacked` class to stack up multiple cards, if you want to save screen space or create a visually appealing effect.
|
||||
@@ -332,66 +302,3 @@ Organize multiple cards into tabs to be able to display more content in a well-o
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" column %}
|
||||
|
||||
```html
|
||||
<!-- Cards with tabs component -->
|
||||
<div class="card-tabs">
|
||||
<!-- Cards navigation -->
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a href="#tab-top-1" class="nav-link active" data-bs-toggle="tab">Tab 1</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#tab-top-2" class="nav-link" data-bs-toggle="tab">Tab 2</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#tab-top-3" class="nav-link" data-bs-toggle="tab">Tab 3</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#tab-top-4" class="nav-link" data-bs-toggle="tab">Tab 4</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<!-- Content of card #1 -->
|
||||
<div id="tab-top-1" class="card tab-pane active show">
|
||||
<div class="card-body">
|
||||
<div class="card-title">Content of tab #1</div>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
|
||||
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Content of card #2 -->
|
||||
<div id="tab-top-2" class="card tab-pane">
|
||||
<div class="card-body">
|
||||
<div class="card-title">Content of tab #2</div>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
|
||||
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Content of card #3 -->
|
||||
<div id="tab-top-3" class="card tab-pane">
|
||||
<div class="card-body">
|
||||
<div class="card-title">Content of tab #3</div>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
|
||||
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Content of card #4 -->
|
||||
<div id="tab-top-4" class="card tab-pane">
|
||||
<div class="card-body">
|
||||
<div class="card-title">Content of tab #4</div>
|
||||
<p class="text-secondary">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
|
||||
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
|
||||
@@ -381,6 +381,7 @@ An example of adding thumbnails on the right side:
|
||||
## Carousel with captions
|
||||
|
||||
Add captions to your slides easily with the `.carousel-caption` element within any `.carousel-item`. To make the text more readable on the image you can add `carousel-caption-background` which will add a black overlay over the image.
|
||||
Below the `md` responsive breakpoint, the captions on the following example will be hidden as they have the `d-none` class applied to them.
|
||||
|
||||
{% capture html -%}
|
||||
<div id="carousel-captions" class="carousel slide" data-bs-ride="carousel">
|
||||
|
||||
@@ -16,105 +16,10 @@ Line charts are an essential tool for visualizing data trends over time. They ar
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-demo-line" class="chart-lg"></div>
|
||||
{% include "ui/chart.html" chart-id="demo-line" legend height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-demo-line"), {
|
||||
chart: {
|
||||
type: "line",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
parentHeightOffset: 0,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
stroke: {
|
||||
width: 2,
|
||||
lineCap: "round",
|
||||
curve: "straight",
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "Session Duration",
|
||||
data: [117, 92, 94, 98, 75, 110, 69, 80, 109, 113, 115, 95],
|
||||
},
|
||||
{
|
||||
name: "Page Views",
|
||||
data: [59, 80, 61, 66, 70, 84, 87, 64, 94, 56, 55, 67],
|
||||
},
|
||||
{
|
||||
name: "Total Visits",
|
||||
data: [53, 51, 52, 41, 46, 60, 45, 43, 30, 50, 58, 59],
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -20,
|
||||
right: 0,
|
||||
left: -4,
|
||||
bottom: -4,
|
||||
},
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
xaxis: {
|
||||
labels: {
|
||||
padding: 0,
|
||||
},
|
||||
tooltip: {
|
||||
enabled: false,
|
||||
},
|
||||
type: "datetime",
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
padding: 4,
|
||||
},
|
||||
},
|
||||
labels: [
|
||||
"2020-06-21",
|
||||
"2020-06-22",
|
||||
"2020-06-23",
|
||||
"2020-06-24",
|
||||
"2020-06-25",
|
||||
"2020-06-26",
|
||||
"2020-06-27",
|
||||
"2020-06-28",
|
||||
"2020-06-29",
|
||||
"2020-06-30",
|
||||
"2020-07-01",
|
||||
"2020-07-02",
|
||||
],
|
||||
colors: ["var(--tblr-yellow)", "var(--tblr-green)", "var(--tblr-primary)"],
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
offsetY: 12,
|
||||
markers: {
|
||||
width: 10,
|
||||
height: 10,
|
||||
radius: 100,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 8,
|
||||
vertical: 8,
|
||||
},
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -125,103 +30,10 @@ Area charts are ideal for representing cumulative data over time. They add visua
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-demo-area" class="chart-lg"></div>
|
||||
{% include "ui/chart.html" chart-id="demo-area" height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-demo-area"), {
|
||||
chart: {
|
||||
type: "area",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
parentHeightOffset: 0,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
fill: {
|
||||
opacity: 0.16,
|
||||
type: "solid",
|
||||
},
|
||||
stroke: {
|
||||
width: 2,
|
||||
lineCap: "round",
|
||||
curve: "smooth",
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "series1",
|
||||
data: [56, 40, 39, 47, 34, 48, 44],
|
||||
},
|
||||
{
|
||||
name: "series2",
|
||||
data: [45, 43, 30, 23, 38, 39, 54],
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -20,
|
||||
right: 0,
|
||||
left: -4,
|
||||
bottom: -4,
|
||||
},
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
xaxis: {
|
||||
labels: {
|
||||
padding: 0,
|
||||
},
|
||||
tooltip: {
|
||||
enabled: false,
|
||||
},
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
type: "datetime",
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
padding: 4,
|
||||
},
|
||||
},
|
||||
labels: [
|
||||
"2020-06-21",
|
||||
"2020-06-22",
|
||||
"2020-06-23",
|
||||
"2020-06-24",
|
||||
"2020-06-25",
|
||||
"2020-06-26",
|
||||
"2020-06-27",
|
||||
],
|
||||
colors: ["var(--tblr-primary)", "var(--tblr-purple)"],
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
offsetY: 12,
|
||||
markers: {
|
||||
width: 10,
|
||||
height: 10,
|
||||
radius: 100,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 8,
|
||||
vertical: 8,
|
||||
},
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -232,116 +44,10 @@ Bar charts are highly effective for comparing data across different categories.
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-demo-bar" class="chart-lg"></div>
|
||||
{% include "ui/chart.html" chart-id="demo-bar" height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-demo-bar"), {
|
||||
chart: {
|
||||
type: "bar",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
parentHeightOffset: 0,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
stacked: true,
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
barHeight: "50%",
|
||||
horizontal: true,
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "Container for a Fanta",
|
||||
data: [44, 55, 41, 37, 22, 43, 21],
|
||||
},
|
||||
{
|
||||
name: "Strange sunglasses",
|
||||
data: [53, 32, 33, 52, 13, 43, 32],
|
||||
},
|
||||
{
|
||||
name: "Pen Pineapple Apple Pen",
|
||||
data: [12, 17, 11, 9, 15, 11, 20],
|
||||
},
|
||||
{
|
||||
name: "Binoculars",
|
||||
data: [9, 7, 5, 8, 6, 9, 4],
|
||||
},
|
||||
{
|
||||
name: "Magical notebook",
|
||||
data: [25, 12, 19, 32, 25, 24, 10],
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -20,
|
||||
right: 0,
|
||||
left: -4,
|
||||
bottom: -4,
|
||||
},
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
xaxis: {
|
||||
labels: {
|
||||
padding: 0,
|
||||
formatter: function (val) {
|
||||
return val + "K";
|
||||
},
|
||||
},
|
||||
tooltip: {
|
||||
enabled: false,
|
||||
},
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
categories: ["2008", "2009", "2010", "2011", "2012", "2013", "2014"],
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
padding: 4,
|
||||
},
|
||||
},
|
||||
colors: [
|
||||
"var(--tblr-purple)",
|
||||
"var(--tblr-green)",
|
||||
"var(--tblr-yellow)",
|
||||
"var(--tblr-red)",
|
||||
"var(--tblr-primary)",
|
||||
],
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
offsetY: 12,
|
||||
markers: {
|
||||
width: 10,
|
||||
height: 10,
|
||||
radius: 100,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 8,
|
||||
vertical: 8,
|
||||
},
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -352,58 +58,10 @@ Pie charts are a simple and effective way to visualize proportions and ratios. T
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-demo-pie" class="chart-lg"></div>
|
||||
{% include "ui/chart.html" chart-id="demo-pie" height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-demo-pie"), {
|
||||
chart: {
|
||||
type: "donut",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
sparkline: {
|
||||
enabled: true,
|
||||
},
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
series: [44, 55, 12, 2],
|
||||
labels: ["Direct", "Affilliate", "E-mail", "Other"],
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
grid: {
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
colors: [
|
||||
"var(--tblr-primary)",
|
||||
"color-mix(in oklab, var(--tblr-primary) 0.8, transparent)",
|
||||
"color-mix(in oklab, var(--tblr-primary) 0.6, transparent)",
|
||||
"var(--tblr-gray-300)",
|
||||
],
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
offsetY: 12,
|
||||
markers: {
|
||||
width: 10,
|
||||
height: 10,
|
||||
radius: 100,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 8,
|
||||
vertical: 8,
|
||||
},
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -414,119 +72,10 @@ Heatmaps provide a graphical representation of data where individual values are
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-demo-heatmap" class="chart-lg"></div>
|
||||
{% include "ui/chart-heatmap.html" chart-id="demo-heatmap" height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-demo-heatmap"), {
|
||||
chart: {
|
||||
type: "heatmap",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "New York",
|
||||
data: [
|
||||
{ x: "Monday", y: 22 },
|
||||
{ x: "Tuesday", y: 24 },
|
||||
{ x: "Wednesday", y: 19 },
|
||||
{ x: "Thursday", y: 23 },
|
||||
{ x: "Friday", y: 25 },
|
||||
{ x: "Saturday", y: 27 },
|
||||
{ x: "Sunday", y: 26 },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Los Angeles",
|
||||
data: [
|
||||
{ x: "Monday", y: 28 },
|
||||
{ x: "Tuesday", y: 30 },
|
||||
{ x: "Wednesday", y: 27 },
|
||||
{ x: "Thursday", y: 29 },
|
||||
{ x: "Friday", y: 31 },
|
||||
{ x: "Saturday", y: 32 },
|
||||
{ x: "Sunday", y: 33 },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Chicago",
|
||||
data: [
|
||||
{ x: "Monday", y: 18 },
|
||||
{ x: "Tuesday", y: 20 },
|
||||
{ x: "Wednesday", y: 17 },
|
||||
{ x: "Thursday", y: 19 },
|
||||
{ x: "Friday", y: 21 },
|
||||
{ x: "Saturday", y: 22 },
|
||||
{ x: "Sunday", y: 23 },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Houston",
|
||||
data: [
|
||||
{ x: "Monday", y: 25 },
|
||||
{ x: "Tuesday", y: 27 },
|
||||
{ x: "Wednesday", y: 24 },
|
||||
{ x: "Thursday", y: 26 },
|
||||
{ x: "Friday", y: 28 },
|
||||
{ x: "Saturday", y: 29 },
|
||||
{ x: "Sunday", y: 30 },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Phoenix",
|
||||
data: [
|
||||
{ x: "Monday", y: 33 },
|
||||
{ x: "Tuesday", y: 35 },
|
||||
{ x: "Wednesday", y: 32 },
|
||||
{ x: "Thursday", y: 34 },
|
||||
{ x: "Friday", y: 36 },
|
||||
{ x: "Saturday", y: 37 },
|
||||
{ x: "Sunday", y: 38 },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Philadelphia",
|
||||
data: [
|
||||
{ x: "Monday", y: 20 },
|
||||
{ x: "Tuesday", y: 22 },
|
||||
{ x: "Wednesday", y: 19 },
|
||||
{ x: "Thursday", y: 21 },
|
||||
{ x: "Friday", y: 23 },
|
||||
{ x: "Saturday", y: 24 },
|
||||
{ x: "Sunday", y: 25 },
|
||||
],
|
||||
},
|
||||
],
|
||||
colors: ["var(--tblr-primary)"],
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
xaxis: {
|
||||
tooltip: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
title: {
|
||||
text: "Average Temperature by Day and City",
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -537,167 +86,9 @@ For more complex data visualizations, you can create advanced charts with multip
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="chart-social-referrals" class="chart-lg"></div>
|
||||
{% include "ui/chart.html" chart-id="social-referrals" height=15 %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.ApexCharts &&
|
||||
new ApexCharts(document.getElementById("chart-social-referrals"), {
|
||||
chart: {
|
||||
type: "line",
|
||||
fontFamily: "inherit",
|
||||
height: 240,
|
||||
parentHeightOffset: 0,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
animations: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
stroke: {
|
||||
width: 2,
|
||||
lineCap: "round",
|
||||
curve: "smooth",
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "Facebook",
|
||||
data: [
|
||||
13281, 8521, 15038, 9983, 15417, 8888, 7052, 14270, 5214, 9587, 5950, 16852, 17836,
|
||||
12217, 17406, 12262, 9147, 14961, 18292, 15230, 13435, 10649, 5140, 13680, 4508,
|
||||
13271, 13413, 5543, 18727, 18238, 18175, 6246, 5864, 17847, 9170, 6445, 12945, 8142,
|
||||
8980, 10422, 15535, 11569, 10114, 17621, 16138, 13046, 6652, 9906, 14100, 16495, 6749,
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Twitter",
|
||||
data: [
|
||||
3680, 1862, 3070, 2252, 5348, 3091, 3000, 3984, 5176, 5325, 2420, 5474, 3098, 1893,
|
||||
3748, 2879, 4197, 5186, 4213, 4334, 2807, 1594, 4863, 2030, 3752, 4856, 5341, 3954,
|
||||
3461, 3097, 3404, 4949, 2283, 3227, 3630, 2360, 3477, 4675, 1901, 2252, 3347, 2954,
|
||||
5029, 2079, 2830, 3292, 4578, 3401, 4104, 3749, 4457, 3734,
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Dribbble",
|
||||
data: [
|
||||
722, 1866, 961, 1108, 1110, 561, 1753, 1815, 1985, 776, 859, 547, 1488, 766, 702, 621,
|
||||
1599, 1372, 1620, 963, 759, 764, 739, 789, 1696, 1454, 1842, 734, 551, 1689, 1924,
|
||||
1875, 908, 1675, 1541, 1953, 534, 502, 1524, 1867, 719, 1472, 1608, 1025, 889, 1150,
|
||||
654, 1695, 1662, 1285, 1787,
|
||||
],
|
||||
},
|
||||
],
|
||||
tooltip: {
|
||||
theme: "dark",
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -20,
|
||||
right: 0,
|
||||
left: -4,
|
||||
bottom: -4,
|
||||
},
|
||||
strokeDashArray: 4,
|
||||
xaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
xaxis: {
|
||||
labels: {
|
||||
padding: 0,
|
||||
},
|
||||
tooltip: {
|
||||
enabled: false,
|
||||
},
|
||||
type: "datetime",
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
padding: 4,
|
||||
},
|
||||
},
|
||||
labels: [
|
||||
"2020-06-21",
|
||||
"2020-06-22",
|
||||
"2020-06-23",
|
||||
"2020-06-24",
|
||||
"2020-06-25",
|
||||
"2020-06-26",
|
||||
"2020-06-27",
|
||||
"2020-06-28",
|
||||
"2020-06-29",
|
||||
"2020-06-30",
|
||||
"2020-07-01",
|
||||
"2020-07-02",
|
||||
"2020-07-03",
|
||||
"2020-07-04",
|
||||
"2020-07-05",
|
||||
"2020-07-06",
|
||||
"2020-07-07",
|
||||
"2020-07-08",
|
||||
"2020-07-09",
|
||||
"2020-07-10",
|
||||
"2020-07-11",
|
||||
"2020-07-12",
|
||||
"2020-07-13",
|
||||
"2020-07-14",
|
||||
"2020-07-15",
|
||||
"2020-07-16",
|
||||
"2020-07-17",
|
||||
"2020-07-18",
|
||||
"2020-07-19",
|
||||
"2020-07-20",
|
||||
"2020-07-21",
|
||||
"2020-07-22",
|
||||
"2020-07-23",
|
||||
"2020-07-24",
|
||||
"2020-07-25",
|
||||
"2020-07-26",
|
||||
"2020-07-27",
|
||||
"2020-07-28",
|
||||
"2020-07-29",
|
||||
"2020-07-30",
|
||||
"2020-07-31",
|
||||
"2020-08-01",
|
||||
"2020-08-02",
|
||||
"2020-08-03",
|
||||
"2020-08-04",
|
||||
"2020-08-05",
|
||||
"2020-08-06",
|
||||
"2020-08-07",
|
||||
"2020-08-08",
|
||||
"2020-08-09",
|
||||
"2020-08-10",
|
||||
],
|
||||
colors: [
|
||||
"var(--tblr-facebook)",
|
||||
"var(--tblr-twitter)",
|
||||
"var(--tblr-dribbble)",
|
||||
],
|
||||
legend: {
|
||||
show: true,
|
||||
position: "bottom",
|
||||
offsetY: 12,
|
||||
markers: {
|
||||
width: 10,
|
||||
height: 10,
|
||||
radius: 100,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 8,
|
||||
vertical: 8,
|
||||
},
|
||||
},
|
||||
}).render();
|
||||
});
|
||||
</script>
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -9,7 +9,7 @@ The countup component is used to display numbers dynamically. It is a great way
|
||||
|
||||
To be able to use the countup in your application you will need to install the countup.js dependency with `npm install countup.js`.
|
||||
|
||||
For more advanced features of countups, click [here](https://inorganik.github.io/countUp.js/) and see what more you can do.
|
||||
For more advanced features of countups, see the demo on the [countUp.js website](https://inorganik.github.io/countUp.js/).
|
||||
|
||||
## Basic usage
|
||||
|
||||
@@ -24,152 +24,99 @@ The results can be seen in the example below.
|
||||
{% capture html -%}
|
||||
<h1 data-countup>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
## Duration
|
||||
|
||||
Set the `duration` to determine how long the animation should take. By default, the duration is set to 2 seconds, but you can modify it as you wish.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"duration":4}'>30000</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how the duration affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup>30000</h1>
|
||||
<h1 data-countup='{"duration":4}'>30000</h1>
|
||||
<h1 data-countup='{"duration":6}'>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Starting value
|
||||
|
||||
By default the countup will start from zero. If you want to set a different start value use `startVal`.
|
||||
You can also set the start value to be greater than the final value, so that it counts down instead of up.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"startVal":12345}'>30000</h1>
|
||||
```
|
||||
|
||||
To see how the starting value affects the animation, look at the example below.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup='{"startVal":12345}'>30000</h1>
|
||||
<h1 data-countup='{"startVal":47655}'>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Decimal places
|
||||
|
||||
Set how many decimal numbers should be displayed using `decimalPlaces`. By default, the number of decimal places is set to 0.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"decimalPlaces":1}'>3.123</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how the number of decimal places affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup>3.123</h1>
|
||||
<h1 data-countup='{"decimalPlaces":1}'>3.123</h1>
|
||||
<h1 data-countup='{"decimalPlaces":2}'>3.123</h1>
|
||||
<h1 data-countup='{"decimalPlaces":3}'>3.123</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Easing
|
||||
|
||||
Disable easing using `"useEasing": false`. Easing is set to `true` by default, so that the animation speed changes over the course of its duration. Easing can be disabled to make the animation linear.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"useEasing": false}'>30000</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how easing affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup>30000</h1>
|
||||
<h1 data-countup='{"useEasing": false}'>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Use grouping
|
||||
|
||||
Disable grouping using `"useGrouping": false`. Grouping is set to `true` by default, so that the number is displayed with a separator.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"useGrouping": false}'>30000</h1>
|
||||
```
|
||||
|
||||
Example below shows how grouping affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup>30000</h1>
|
||||
<h1 data-countup='{"useGrouping": false}'>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Separator
|
||||
|
||||
You can change the default separator using `separator` and specifying the one you wish to use.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"separator":" "}'>3000000</h1>
|
||||
```
|
||||
|
||||
This example shows how the separator affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup>3000000</h1>
|
||||
<h1 data-countup='{"separator":" "}'>3000000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Decimal separator
|
||||
|
||||
You can change the default decimal separator using `decimal` and specifying the one you wish to use.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"decimal":","}'>3.12</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how the decimal separator affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup='{"decimalPlaces":2}'>3.12</h1>
|
||||
<h1 data-countup='{"decimalPlaces":2,"decimal":","}'>3.12</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Prefix
|
||||
|
||||
Set the countup prefix using `prefix` and specifying the prefix you want to add, for instance a currency symbol.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"prefix":"$"}'>30000</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how the prefix affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup='{"prefix":"$"}'>30000</h1>
|
||||
<h1 data-countup='{"prefix":"€"}'>30000</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
## Suffix
|
||||
|
||||
Set the countup suffix using `suffix` and specifying the suffix you want to add, for instance a percentage symbol.
|
||||
|
||||
```html
|
||||
<h1 data-countup='{"suffix":"%"}'>300</h1>
|
||||
```
|
||||
|
||||
Look at the example below to see how the suffix affects the animation.
|
||||
|
||||
{% capture html -%}
|
||||
<h1 data-countup='{"suffix":"%"}'>300</h1>
|
||||
<h1 data-countup='{"suffix":"‰"}'>300</h1>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html vertical separated %}
|
||||
|
||||
@@ -8,7 +8,7 @@ description: Separate content with clear dividers.
|
||||
|
||||
Use dividers to visually separate content into parts. You can use a line only or add text that will be centered by default.
|
||||
|
||||
```html example
|
||||
{% capture html -%}
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, dolore dolores doloribus est ex.
|
||||
</p>
|
||||
@@ -17,7 +17,8 @@ Use dividers to visually separate content into parts. You can use a line only or
|
||||
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
|
||||
rerum, saepe sed, sit!
|
||||
</p>
|
||||
```
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Text position
|
||||
|
||||
@@ -46,7 +47,7 @@ You can modify the position of the text which is to be included in a separator a
|
||||
|
||||
## Divider color
|
||||
|
||||
Customize the color of dividers to make them go well with your design. Click [here](/docs/ui/base/colors) to see the list of available colors.
|
||||
Customize the color of dividers to make them go well with your design. See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
{% capture html -%}
|
||||
<p>
|
||||
|
||||
@@ -19,7 +19,7 @@ With small markup changes, you can turn any `.btn` into a dropdown toggle and us
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="220px" %}
|
||||
|
||||
## Dropdown divider
|
||||
|
||||
@@ -36,7 +36,7 @@ Use dropdown dividers to separate groups of dropdown items for greater clarity.
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="240px" %}
|
||||
|
||||
## Active state
|
||||
|
||||
@@ -52,7 +52,7 @@ Make a dropdown item look active, so that it highlights when a user hovers over
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="220px" %}
|
||||
|
||||
## Disabled state
|
||||
|
||||
@@ -68,7 +68,7 @@ Make a dropdown item look disabled to display options which are currently not av
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="220px" %}
|
||||
|
||||
## Dropdown header
|
||||
|
||||
@@ -84,7 +84,7 @@ Add a dropdown header to group dropdown items into sections and name them accord
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="210px" %}
|
||||
|
||||
## Dropdown with icons
|
||||
|
||||
@@ -138,7 +138,7 @@ Use icons in your dropdowns to add more visual content and make the options easy
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="210px" %}
|
||||
|
||||
## Dropdown with arrow
|
||||
|
||||
@@ -153,7 +153,7 @@ Add an arrow that points at the dropdown button.
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="190px" %}
|
||||
|
||||
## Dropdown with badge
|
||||
|
||||
@@ -174,7 +174,7 @@ Add a badge to your dropdown items to show additional information related to an
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="190px" %}
|
||||
|
||||
## Dropdown with checkboxes
|
||||
|
||||
@@ -196,7 +196,7 @@ Use dropdowns with checkboxes to allow users to select options from a predefined
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="220px" %}
|
||||
|
||||
## Dark dropdown
|
||||
|
||||
@@ -251,7 +251,7 @@ Make your dropdown suit the dark mode of your website or software.
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="220px" %}
|
||||
|
||||
## Dropdown with card content
|
||||
|
||||
@@ -274,8 +274,7 @@ Use a dropdown with card content to make it easy for users to get more informati
|
||||
<a href="#">How do you know she is a witch?</a>
|
||||
</h3>
|
||||
<div class="text-secondary">
|
||||
Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit. But she's got a
|
||||
wart. You ...
|
||||
Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit.
|
||||
</div>
|
||||
<div class="d-flex align-items-center pt-4 mt-auto">
|
||||
<span class="avatar" style="background-image: url(/static/avatars/013m.jpg)"></span>
|
||||
@@ -310,4 +309,4 @@ Use a dropdown with card content to make it easy for users to get more informati
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="520px" %}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
title: Dropzone
|
||||
summary: Dropzone is a simple JavaScript library that helps you add file drag and drop functionality to your web forms. It is one of the most popular drag and drop libraries on the web and is used by millions of people.
|
||||
description: Drag-and-drop file upload tool.
|
||||
docs-libs: dropzone
|
||||
---
|
||||
|
||||
## Basic usage
|
||||
|
||||
@@ -57,16 +57,18 @@ Use the default empty state to engage users in the critical moments of their exp
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
|
||||
## Empty state with illustration
|
||||
|
||||
Make your empty state screen more attractive and engaging by adding an illustration. Thanks to a more personalized design, you will improve your brand image and make your website or app more user friendly.
|
||||
|
||||
Do you need an illustration to enhance your web designs? We've got something for you! Check out our premium SVG [illustrations]({{ site.homepage }}/illustrations).
|
||||
|
||||
{% capture html -%}
|
||||
<div class="empty">
|
||||
<div class="empty-img">
|
||||
<img src="..." height="128" alt="" />
|
||||
{% include "ui/illustration.html" image="boy-with-key" alt="Empty state illustration" %}
|
||||
</div>
|
||||
<p class="empty-title">Invoices are managed from here</p>
|
||||
<p class="empty-subtitle text-secondary">
|
||||
@@ -95,7 +97,7 @@ Make your empty state screen more attractive and engaging by adding an illustrat
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
|
||||
## Empty state with header
|
||||
|
||||
@@ -132,20 +134,5 @@ Instead of adding an icon or illustration you can simply give the text:
|
||||
</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html bg="surface-secondary" %}
|
||||
|
||||
```html
|
||||
<div class="empty">
|
||||
<div class="empty-header">404</div>
|
||||
<p class="empty-title">Oops… You just found an error page</p>
|
||||
<p class="empty-subtitle text-secondary">
|
||||
Try adjusting your search or filter to find what you're looking for.
|
||||
</p>
|
||||
<div class="empty-action">
|
||||
<a href="#" class="btn btn-primary">
|
||||
{% include "ui/icon.html" icon="arrow-left" %}
|
||||
Take me home
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
@@ -5,7 +5,7 @@ banner: icons
|
||||
description: Enhance dashboards with custom icons.
|
||||
---
|
||||
|
||||
If you need to add icons to your website, you can use the Tabler Icons library. It contains over 5000 icons that you can use in your projects. All icons are under the MIT license, so you can use them without any problem both in private and commercial projects. You can find the Tabler Icons library [here](https://tabler-icons.io/).
|
||||
If you need to add icons to your website, you can use the [Tabler Icons library]({{ site.icons.link }}). It contains over 5000 icons that you can use in your projects. All icons are under the MIT license, so you can use them without any problem both in private and commercial projects.
|
||||
|
||||
## Base icon
|
||||
|
||||
@@ -27,29 +27,23 @@ Results can be seen in the example below.
|
||||
|
||||
## Filled icons
|
||||
|
||||
To use filled icons, you need to copy the SVG code from the Tabler Icons website and paste it into your HTML file.
|
||||
|
||||
```html
|
||||
{% include "ui/icon.html" icon="heart-filled" %}
|
||||
```
|
||||
|
||||
Look at the example below to see the filled icons.
|
||||
To use filled icons, you need to copy the SVG code of the selected filled Icon from the [Tabler Icons website]({{ site.icons.link }}) and paste it into your HTML file.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/icon.html" icon="heart-filled" %}
|
||||
{% include "ui/icon.html" icon="bell-ringing-filled" %}
|
||||
{% include "ui/icon.html" icon="cherry-filled" %}
|
||||
{% include "ui/icon.html" icon="circle-key-filled" %}
|
||||
{% include "ui/icon.html" icon="heart" type="filled" %}
|
||||
{% include "ui/icon.html" icon="bell-ringing" type="filled" %}
|
||||
{% include "ui/icon.html" icon="cherry" type="filled" %}
|
||||
{% include "ui/icon.html" icon="circle-key" type="filled" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Icon colors
|
||||
|
||||
To change the color of the icon, you need to add the `text-` class to the parent element of the icon. Full list of available colors can be found [here](/docs/ui/colors). Color classes can be used with any HTML element.
|
||||
To change the color of the icon, you need to add the `text-*` class to the parent element of the icon. See the [full list of available colors](/ui/base/colors) for more details. Color classes can be used with any HTML element.
|
||||
|
||||
```html
|
||||
<span class="text-red">
|
||||
{% include "ui/icon.html" icon="heart" %}
|
||||
<!-- Icon code here -->
|
||||
</span>
|
||||
```
|
||||
|
||||
@@ -57,10 +51,10 @@ Look at the example below to see how the color of the icon changes.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="text-red">
|
||||
{% include "ui/icon.html" icon="heart-filled" %}
|
||||
{% include "ui/icon.html" icon="heart" type="filled" %}
|
||||
</span>
|
||||
<span class="text-yellow">
|
||||
{% include "ui/icon.html" icon="star-filled" %}
|
||||
{% include "ui/icon.html" icon="star" type="filled" %}
|
||||
</span>
|
||||
<span class="text-blue">
|
||||
{% include "ui/icon.html" icon="circle" %}
|
||||
@@ -73,15 +67,7 @@ Look at the example below to see how the color of the icon changes.
|
||||
|
||||
## Icon animations
|
||||
|
||||
To add an animation to the icon, you need to add the `icon-pulse`, `icon-tada`, or `icon-rotate` class to the SVG element.
|
||||
|
||||
```html
|
||||
{% include "ui/icon.html" icon="heart" %}
|
||||
{% include "ui/icon.html" icon="bell" %}
|
||||
{% include "ui/icon.html" icon="rotate-clockwise" %}
|
||||
```
|
||||
|
||||
Look at the example below to see the animated icons.
|
||||
To add an animation to the icon, you need to add the `icon-pulse`, `icon-tada`, or `icon-rotate` class to the SVG element.
|
||||
|
||||
{% capture html -%}
|
||||
<svg
|
||||
|
||||
@@ -18,21 +18,10 @@ To use the Inline Player, you need to include the Plyr library in your project.
|
||||
<script src="{{ cdnUrl }}/dist/libs/plyr/dist/plyr.min.js"></script>
|
||||
```
|
||||
|
||||
## Sample demo
|
||||
## YouTube video
|
||||
|
||||
Integrating the Inline Player into your website is straightforward. Below is a sample implementation for a YouTube video:
|
||||
|
||||
```html
|
||||
<div id="player-youtube" data-plyr-provider="youtube" data-plyr-embed-id="dQw4w9WgXcQ"></div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
window.Plyr && new Plyr("#player-youtube");
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
Look at the example below to see how the Inline Player works with a YouTube video.
|
||||
|
||||
{% capture html -%}
|
||||
<div id="player-youtube" data-plyr-provider="youtube" data-plyr-embed-id="dQw4w9WgXcQ"></div>
|
||||
<script src="{{ cdnUrl }}/dist/libs/plyr/dist/plyr.min.js"></script>
|
||||
@@ -46,10 +35,10 @@ Look at the example below to see how the Inline Player works with a YouTube vide
|
||||
|
||||
## Vimeo file
|
||||
|
||||
Here’s how to embed a Vimeo video using the Inline Player:
|
||||
For the Vimeo video you just need to change the `data-plyr-provider`.
|
||||
|
||||
{% capture html -%}
|
||||
<div id="player-vimeo" data-plyr-provider="vimeo" data-plyr-embed-id="515937365"></div>
|
||||
<div id="player-vimeo" data-plyr-provider="vimeo" data-plyr-embed-id="707012696"></div>
|
||||
<script src="{{ cdnUrl }}/dist/libs/plyr/dist/plyr.min.js"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
@@ -58,3 +47,17 @@ Here’s how to embed a Vimeo video using the Inline Player:
|
||||
</script>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## HTML5 video and audio
|
||||
|
||||
Check out the [Plyr documentation](https://github.com/sampotts/plyr) for more options and examples, including HTML5 video and audio support.
|
||||
|
||||
## Customization
|
||||
|
||||
The Inline Player uses the primary color as the default color scheme. You can customize the player by modifying the CSS variables in your stylesheet. For example, to change the main color, you can add the following CSS:
|
||||
|
||||
```scss
|
||||
--plyr-color-main: #ff0000; /* Change to your desired color */
|
||||
```
|
||||
|
||||
For more customization options, refer to the [Customizing the CSS](https://github.com/sampotts/plyr?tab=readme-ov-file#customizing-the-css) section in the Plyr documentation.
|
||||
@@ -8,17 +8,6 @@ Offcanvas is a sidebar component that can be toggled via JavaScript to appear fr
|
||||
|
||||
To create an offcanvas, add the `.offcanvas` class to a container element. You can also add the `.offcanvas-start`, `.offcanvas-end`, `.offcanvas-top`, or `.offcanvas-bottom` class to specify the position of the offcanvas. The `.show` class is used to display the offcanvas.
|
||||
|
||||
```html
|
||||
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvas">
|
||||
<div class="offcanvas-body">
|
||||
Content for the offcanvas goes here. You can place just about any Tabler component or custom
|
||||
elements here.
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
Look at the example below to see how the offcanvas works.
|
||||
|
||||
{% capture html -%}
|
||||
<div
|
||||
class="offcanvas offcanvas-start show"
|
||||
|
||||
59
docs/content/ui/components/pagination.md
Normal file
59
docs/content/ui/components/pagination.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: Pagination
|
||||
summary: Pagination is a user interface element that allows users to navigate through a set of data or content that is divided into multiple pages. It is commonly used in web applications, blogs, and e-commerce sites to display large amounts of information in a manageable way.
|
||||
---
|
||||
|
||||
## Basic Example
|
||||
|
||||
Use slightly customized pagination with previous and next icon links:
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
## With First and Last links
|
||||
|
||||
When you have a lot of pages, you can use first and last links to quickly navigate to the beginning or end of the pagination.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" first-last %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
## Offset
|
||||
|
||||
If the count of pages is too large, you can use offset to show only a few pages at a time.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" offset=3 count=20 %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
## Button With Text
|
||||
|
||||
When you want to use pagination with text, you can use text buttons. This will give you a more traditional look and feel, which is great for applications where you want to keep the focus on the content rather than the navigation.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" text %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
## Outline version
|
||||
|
||||
If you want to use an outline version of the pagination, you can use the `.pagination-outline` class. This will give you a more subtle look and feel, which is great for applications where you want to keep the focus on the content rather than the navigation.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" class="pagination-outline" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical %}
|
||||
|
||||
## Circle version
|
||||
|
||||
If you want to use a circle version of the pagination, you can use the `.pagination-circle` class. This will give you a more subtle look and feel, which is great for applications where you want to keep the focus on the content rather than the navigation. This can also be combined with the `.pagination-outline` class for a more prominent look.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/pagination.html" class="pagination-circle" %}
|
||||
{% include "ui/pagination.html" class="pagination-circle pagination-outline" -%}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered vertical separated %}
|
||||
@@ -57,12 +57,6 @@ A placeholder can also contain an element that looks like a header:
|
||||
|
||||
You can use a placeholder that will look like an avatar. You can use the `avatar` component, and get the image in the right proportions.
|
||||
|
||||
```html
|
||||
<div class="avatar placeholder"></div>
|
||||
```
|
||||
|
||||
Look at the example below to see how the avatar placeholder looks.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
@@ -111,12 +105,6 @@ You can use a placeholder that will look like a picture. You can use the `ratio`
|
||||
|
||||
By default, the placeholder uses `currentColor`. This can be overridden with a custom color or utility class. Full color classes are available for background colors.
|
||||
|
||||
```html
|
||||
<span class="placeholder col-12 bg-dark"></span>
|
||||
```
|
||||
|
||||
Look at the example below to see how the color affects the placeholder.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="placeholder col-12"></span>
|
||||
<span class="placeholder col-12 bg-primary"></span>
|
||||
|
||||
@@ -16,22 +16,6 @@ To create a default progress bar, add a `.progress` class to a `<div>` element.
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<div class="progress">
|
||||
<div
|
||||
class="progress-bar"
|
||||
style="width: 38%"
|
||||
role="progressbar"
|
||||
aria-valuenow="38"
|
||||
aria-valuemin="0"
|
||||
aria-valuemax="100"
|
||||
aria-label="38% Complete"
|
||||
>
|
||||
<span class="visually-hidden">38% Complete</span>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Progress size
|
||||
|
||||
Using Bootstrap’s typical naming structure, you can create a standard progress bar or scale it up or down to different sizes based on what’s needed.
|
||||
@@ -72,13 +56,7 @@ You can create a progress bar which shows indeterminate progress by adding `.pro
|
||||
|
||||
## Native progress element
|
||||
|
||||
You can also use native HTML5 `<progress>` element. It is a great way to create a progress bar without the need for additional HTML elements.
|
||||
|
||||
```html
|
||||
<progress class="progress progress-sm" value="15" max="100" />
|
||||
```
|
||||
|
||||
This is how it looks:
|
||||
You can also use the native HTML5 `<progress>` element. It is a great way to create a progress bar without the need for additional HTML elements. This is what it looks like:
|
||||
|
||||
{% capture html -%}
|
||||
<progress class="progress progress-sm" value="15" max="100" />
|
||||
@@ -89,7 +67,7 @@ This is how it looks:
|
||||
|
||||
You can change the color of the progress bar by adding a color class to the `.progress-bar` element. You can use the color classes like `.bg-primary`, `.bg-success`, etc. to change the color of the progress bar.
|
||||
|
||||
Full list of available colors can be found [here](/docs/ui/base/colors).
|
||||
See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="progress">
|
||||
@@ -178,14 +156,6 @@ This is how it looks:
|
||||
|
||||
You can create a striped progress bar by adding the `.progress-bar-striped` class to the `.progress-bar` element.
|
||||
|
||||
```html
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 60%"></div>
|
||||
</div>
|
||||
```
|
||||
|
||||
This is how it looks:
|
||||
|
||||
{% capture html -%}
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 60%"></div>
|
||||
@@ -197,16 +167,6 @@ This is how it looks:
|
||||
|
||||
By using a progress bar component as a background element, designers can create a dynamic and engaging visual experience for users. For example, the progress bar could be used to represent the completion of a long-term goal or project, such as a fundraising campaign or construction project. As users interact with the page, the progress bar could gradually fill up, creating a sense of momentum and progress.
|
||||
|
||||
```html
|
||||
<div class="progressbg">
|
||||
<div class="progress progressbg-progress">
|
||||
<div class="progress-bar bg-primary-lt" style="width: 65%"></div>
|
||||
</div>
|
||||
<div class="progressbg-text">Poland</div>
|
||||
<div class="progressbg-value">65%</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
Thanks to this you can create a nice looking statistics section:
|
||||
|
||||
{% capture html -%}
|
||||
|
||||
@@ -5,9 +5,7 @@ description: Adjust values with range sliders.
|
||||
summary: Range sliders allow users to select a range of values by adjusting two handles along a track, providing an intuitive and space-efficient input method.
|
||||
---
|
||||
|
||||
To be able to use the range slider in your application you will need to install the nouislider dependency with `npm install nouislider`.
|
||||
|
||||
All options and features can be found [**here**](https://refreshless.com/nouislider/).
|
||||
To be able to use the range slider in your application you will need to install the noUiSlider dependency with `npm install nouislider`.
|
||||
|
||||
## Basic range slider
|
||||
|
||||
@@ -30,4 +28,4 @@ All options and features can be found [**here**](https://refreshless.com/nouisli
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
That's only the basic features and options of range slider. More possibilities can be found [**here**](https://refreshless.com/nouislider/).
|
||||
For more details on customizing a noUiSlider element, see the documentation on the [noUiSlider website](https://refreshless.com/nouislider/).
|
||||
|
||||
@@ -18,15 +18,6 @@ Use the `ribbon` class to add the default ribbon to any section of your interfac
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html card column %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body"></div>
|
||||
<div class="ribbon">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Ribbon position
|
||||
|
||||
You can change the position of a ribbon by adding one of the following classes to the element:
|
||||
@@ -48,18 +39,9 @@ Using multiple classes at once will give you more position options. For example,
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html column %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body"></div>
|
||||
<div class="ribbon ribbon-top ribbon-start">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Ribbon color
|
||||
|
||||
Customize the ribbon's background color. You can click [here](/docs/ui/base/colors) to see the list of available colors.
|
||||
Customize the ribbon's background color. See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
@@ -71,15 +53,6 @@ Customize the ribbon's background color. You can click [here](/docs/ui/base/colo
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html column %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body"></div>
|
||||
<div class="ribbon bg-red">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Ribbon text
|
||||
|
||||
Add your own text to a ribbon to display any additional information and make it easy to spot for users.
|
||||
@@ -87,25 +60,14 @@ Add your own text to a ribbon to display any additional information and make it
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body" style="height: 5rem"></div>
|
||||
<div class="ribbon bg-green">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
<div class="ribbon bg-green">NEW</div>
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html column %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body"></div>
|
||||
<div class="ribbon bg-green">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
## Bookmark ribbon
|
||||
|
||||
## Ribbon style
|
||||
|
||||
Change the style of a ribbon to make it go well with your interface design.
|
||||
Use the `.ribbon-bookmark` class to create a bookmark ribbon. It is a special style of ribbon that is used to highlight important elements in your interface.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="card w-100">
|
||||
@@ -116,12 +78,3 @@ Change the style of a ribbon to make it go well with your interface design.
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html column %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body"></div>
|
||||
<div class="ribbon ribbon-bookmark bg-orange">
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
@@ -3,18 +3,7 @@ title: Segmented Control
|
||||
summary: A segmented control is a set of two or more segments, each of which functions as a mutually exclusive button. A segmented control is used to display a set of mutually exclusive options.
|
||||
---
|
||||
|
||||
To create a segmented control, use the `nav` element with the `nav-segmented` class. Inside the `nav` element, add `button` or `a` elements with the `nav-link` class. The `nav-link` class is used to style the buttons as links.
|
||||
|
||||
```html
|
||||
<nav class="nav nav-segmented" role="tablist">
|
||||
<button class="nav-link" role="tab" data-bs-toggle="tab" aria-selected="true" aria-current="page">
|
||||
First
|
||||
</button>
|
||||
...
|
||||
</nav>
|
||||
```
|
||||
|
||||
See the example below to see how the segmented control looks.
|
||||
To create a segmented control, use the `nav` element with the `nav-segmented` class. Inside the `nav` element, add `button` or `a` elements with the `nav-link` class. The `nav-link` class is used to style the buttons as links.
|
||||
|
||||
{% capture html -%}
|
||||
<nav class="nav nav-segmented" role="tablist">
|
||||
|
||||
@@ -9,12 +9,6 @@ description: Indicate loading state with spinners.
|
||||
|
||||
Use the default spinner to notify users that an action they have taken is in progress, helping them avoid confusion.
|
||||
|
||||
```html
|
||||
<div class="spinner-border"></div>
|
||||
```
|
||||
|
||||
Look at the example below to see how the spinner works:
|
||||
|
||||
{% capture html -%}
|
||||
<div class="spinner-border"></div>
|
||||
{%- endcapture %}
|
||||
@@ -23,7 +17,7 @@ Look at the example below to see how the spinner works:
|
||||
|
||||
## Colors
|
||||
|
||||
Choose one of the available colors to customize the spinner and make it suit your design. Full list of available colors can be found in the [Colors](/docs/ui/base/colors) section.
|
||||
Choose one of the available colors to customize the spinner and make it suit your design. Full list of available colors can be found in the [Colors](/ui/base/colors) section.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="spinner-border text-blue" role="status"></div>
|
||||
@@ -41,11 +35,6 @@ Choose one of the available colors to customize the spinner and make it suit you
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
```html
|
||||
<div class="spinner-border text-blue" role="status"></div>
|
||||
<div class="spinner-border text-red" role="status"></div>
|
||||
```
|
||||
|
||||
## Size
|
||||
|
||||
Choose the size of your spinner. You can use the default size or use the `spinner-border-sm` class to display a smaller spinner.
|
||||
@@ -83,24 +72,10 @@ Growing spinners also come in a variety of colors to choose from.
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html centered %}
|
||||
|
||||
```html
|
||||
<div class="spinner-grow text-blue" role="status"></div>
|
||||
<div class="spinner-grow text-azure" role="status"></div>
|
||||
```
|
||||
|
||||
## Button with spinner
|
||||
|
||||
Use buttons with spinners to notify users that an action they have taken by clicking the button is in progress and prevent them from clicking multiple times or giving up.
|
||||
|
||||
```html
|
||||
<a href="#" class="btn btn-primary">
|
||||
<span class="spinner-border spinner-border-sm me-2" role="status"></span>
|
||||
Button
|
||||
</a>
|
||||
```
|
||||
|
||||
Look at the example below to see how the button with a spinner works:
|
||||
|
||||
{% capture html -%}
|
||||
<a href="#" class="btn btn-primary">
|
||||
<span class="spinner-border spinner-border-sm me-2" role="status"></span>
|
||||
|
||||
@@ -6,15 +6,7 @@ description: Highlight interface elements with status dots.
|
||||
|
||||
## Default markup
|
||||
|
||||
Use the default status to notify users about the status of a component or page, helping them avoid confusion. Full list of available colors can be found in the [Colors](/docs/ui/base/colors) section.
|
||||
|
||||
```html
|
||||
<span class="status status-blue">Blue</span>
|
||||
<span class="status status-azure">Azure</span>
|
||||
...
|
||||
```
|
||||
|
||||
Look at the example below to see how the status works:
|
||||
Use the default status to notify users about the status of a component or page, helping them avoid confusion. Full list of available colors can be found in the [Colors](/ui/base/colors) section.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="status status-blue">Blue</span>
|
||||
@@ -37,15 +29,6 @@ Look at the example below to see how the status works:
|
||||
|
||||
You can add a dot to the status to make it more noticeable. To do this, use the `.status-dot` element inside the `.status` element.
|
||||
|
||||
```html
|
||||
<span class="status status-blue">
|
||||
<span class="status-dot"></span>
|
||||
Blue
|
||||
</span>
|
||||
```
|
||||
|
||||
Look at the example below to see how the status with a dot works:
|
||||
|
||||
{% capture html -%}
|
||||
<span class="status status-blue">
|
||||
<span class="status-dot"></span>
|
||||
@@ -214,12 +197,6 @@ Use the lite status to make the status less noticeable. To do this, add a `.stat
|
||||
|
||||
If you need only dot status, you can use the `.status-dot` class.
|
||||
|
||||
```html
|
||||
<span class="status-dot status-blue"></span>
|
||||
```
|
||||
|
||||
Look at the example below to see how the status dots work:
|
||||
|
||||
{% capture html -%}
|
||||
<span class="status-dot status-blue"></span>
|
||||
<span class="status-dot status-azure"></span>
|
||||
|
||||
@@ -95,7 +95,7 @@ The example below demonstrates a progress tracker with tooltips for each step.
|
||||
|
||||
## Color
|
||||
|
||||
You can customize the default progress indicator by changing the color to one that better suits your design. Click [here](/docs/ui/base/colors) to see the range of available colors.
|
||||
You can customize the default progress indicator by changing the color to one that better suits your design. See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
```html
|
||||
<div class="steps steps-green">...</div>
|
||||
|
||||
@@ -15,7 +15,7 @@ The icon transition is triggered by adding an `.active` class to the `switch-ico
|
||||
{% include "ui/icon.html" icon="heart" %}
|
||||
</span>
|
||||
<span class="switch-icon-b text-red">
|
||||
{% include "ui/icon.html" icon="heart-filled" %}
|
||||
{% include "ui/icon.html" icon="heart" type="filled" %}
|
||||
</span>
|
||||
</button>
|
||||
{%- endcapture %}
|
||||
@@ -31,7 +31,7 @@ You can also add a fancy animation to add variety to your button. See demo below
|
||||
{% include "ui/icon.html" icon="circle" %}
|
||||
</span>
|
||||
<span class="switch-icon-b text-primary">
|
||||
{% include "ui/icon.html" icon="circle-filled" %}
|
||||
{% include "ui/icon.html" icon="circle" type="filled" %}
|
||||
</span>
|
||||
</button>
|
||||
<button class="switch-icon switch-icon-fade" data-bs-toggle="switch-icon">
|
||||
@@ -39,7 +39,7 @@ You can also add a fancy animation to add variety to your button. See demo below
|
||||
{% include "ui/icon.html" icon="heart" %}
|
||||
</span>
|
||||
<span class="switch-icon-b text-red">
|
||||
{% include "ui/icon.html" icon="heart-filled" %}
|
||||
{% include "ui/icon.html" icon="heart" type="filled" %}
|
||||
</span>
|
||||
</button>
|
||||
<button class="switch-icon switch-icon-scale" data-bs-toggle="switch-icon">
|
||||
@@ -47,7 +47,7 @@ You can also add a fancy animation to add variety to your button. See demo below
|
||||
{% include "ui/icon.html" icon="star" %}
|
||||
</span>
|
||||
<span class="switch-icon-b text-yellow">
|
||||
{% include "ui/icon.html" icon="star-filled" %}
|
||||
{% include "ui/icon.html" icon="star" type="filled" %}
|
||||
</span>
|
||||
</button>
|
||||
<button class="switch-icon switch-icon-flip" data-bs-toggle="switch-icon">
|
||||
@@ -55,7 +55,7 @@ You can also add a fancy animation to add variety to your button. See demo below
|
||||
{% include "ui/icon.html" icon="thumb-up" %}
|
||||
</span>
|
||||
<span class="switch-icon-b text-facebook">
|
||||
{% include "ui/icon.html" icon="thumb-up-filled" %}
|
||||
{% include "ui/icon.html" icon="thumb-up" type="filled" %}
|
||||
</span>
|
||||
</button>
|
||||
<button class="switch-icon switch-icon-slide-up" data-bs-toggle="switch-icon">
|
||||
|
||||
@@ -178,105 +178,6 @@ If you don't want the table cell content to wrap to another line, use the `table
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<div class="table-responsive">
|
||||
<table class="table table-vcenter table-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Title</th>
|
||||
<th>Email</th>
|
||||
<th>Role</th>
|
||||
<th></th>
|
||||
<th class="w-1"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Paweł Kuna</td>
|
||||
<td class="text-secondary">UI Designer, Training</td>
|
||||
<td class="text-secondary">
|
||||
<a href="#" class="text-reset">paweluna@howstuffworks.com</a>
|
||||
</td>
|
||||
<td class="text-secondary">User</td>
|
||||
<td>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, commodi cupiditate
|
||||
debitis deserunt expedita hic incidunt iste modi molestiae nesciunt non nostrum
|
||||
perferendis perspiciatis placeat praesentium quaerat quo repellendus, voluptates.
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">Edit</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jeffie Lewzey</td>
|
||||
<td class="text-secondary">Chemical Engineer, Support</td>
|
||||
<td class="text-secondary">
|
||||
<a href="#" class="text-reset">jlewzey1@seesaa.net</a>
|
||||
</td>
|
||||
<td class="text-secondary">Admin</td>
|
||||
<td>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, commodi cupiditate
|
||||
debitis deserunt expedita hic incidunt iste modi molestiae nesciunt non nostrum
|
||||
perferendis perspiciatis placeat praesentium quaerat quo repellendus, voluptates.
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">Edit</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mallory Hulme</td>
|
||||
<td class="text-secondary">Geologist IV, Support</td>
|
||||
<td class="text-secondary">
|
||||
<a href="#" class="text-reset">mhulme2@domainmarket.com</a>
|
||||
</td>
|
||||
<td class="text-secondary">User</td>
|
||||
<td>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, commodi cupiditate
|
||||
debitis deserunt expedita hic incidunt iste modi molestiae nesciunt non nostrum
|
||||
perferendis perspiciatis placeat praesentium quaerat quo repellendus, voluptates.
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">Edit</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dunn Slane</td>
|
||||
<td class="text-secondary">Research Nurse, Sales</td>
|
||||
<td class="text-secondary">
|
||||
<a href="#" class="text-reset">dslane3@epa.gov</a>
|
||||
</td>
|
||||
<td class="text-secondary">Owner</td>
|
||||
<td>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, commodi cupiditate
|
||||
debitis deserunt expedita hic incidunt iste modi molestiae nesciunt non nostrum
|
||||
perferendis perspiciatis placeat praesentium quaerat quo repellendus, voluptates.
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">Edit</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Emmy Levet</td>
|
||||
<td class="text-secondary">VP Product Management, Accounting</td>
|
||||
<td class="text-secondary">
|
||||
<a href="#" class="text-reset">elevet4@senate.gov</a>
|
||||
</td>
|
||||
<td class="text-secondary">Admin</td>
|
||||
<td>
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, commodi cupiditate
|
||||
debitis deserunt expedita hic incidunt iste modi molestiae nesciunt non nostrum
|
||||
perferendis perspiciatis placeat praesentium quaerat quo repellendus, voluptates.
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">Edit</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Table Variants
|
||||
|
||||
{% capture html -%}
|
||||
@@ -396,7 +297,52 @@ If you don't want the table cell content to wrap to another line, use the `table
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Default</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Primary</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Secondary</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Success</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Danger</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Warning</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Info</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Light</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
<tr class="table-dark">
|
||||
<th scope="row">Dark</th>
|
||||
<td>Cell</td>
|
||||
<td>Cell</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
{% include "docs/example.html" html=html height="42rem" %}
|
||||
|
||||
@@ -167,7 +167,7 @@ Use tabs without label names to save space and make the tab content easy to reco
|
||||
</li>
|
||||
<li class="nav-item ms-auto">
|
||||
<a href="#tabs-settings-ex3" class="nav-link" title="Settings" data-bs-toggle="tab">
|
||||
{% include "ui/icon.html" icon="setings" %}
|
||||
{% include "ui/icon.html" icon="settings" %}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -9,677 +9,16 @@ description: Visualize events and processes clearly.
|
||||
The available timeline design is composed of many components that will help you visualize a process or show an outline of events. Thanks to the possibility of adding icons, avatars and links and the way of presenting the elements of content, your timeline will be clear for users and will make your website or app more attractive.
|
||||
|
||||
{% capture html -%}
|
||||
<ul class="timeline">
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-twitter-lt">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">10 hrs ago</div>
|
||||
<h4>+1150 Followers</h4>
|
||||
<p class="text-secondary">You’re getting more and more followers, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<rect x="3" y="7" width="18" height="13" rx="2" />
|
||||
<path d="M8 7v-2a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v2" />
|
||||
<line x1="12" y1="12" x2="12" y2="12.01" />
|
||||
<path d="M3 13a20 20 0 0 0 18 0" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 hrs ago</div>
|
||||
<h4>+3 New Products were added!</h4>
|
||||
<p class="text-secondary">Congratulations!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M5 12l5 5l10 -10" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>Database backup completed!</h4>
|
||||
<p class="text-secondary">Download the <a href="#">latest backup</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-facebook-lt">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>+290 Page Likes</h4>
|
||||
<p class="text-secondary">This is great, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<circle cx="9" cy="7" r="4" />
|
||||
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
|
||||
<path d="M16 11h6m-3 -3v6" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 days ago</div>
|
||||
<h4>+3 Friend Requests</h4>
|
||||
<div class="avatar-list mt-3">
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
<span class="avatar"> <span class="badge bg-success"></span>JL </span>
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<line x1="15" y1="8" x2="15.01" y2="8" />
|
||||
<rect x="4" y="4" width="16" height="16" rx="3" />
|
||||
<path d="M4 15l4 -4a3 5 0 0 1 3 0l5 5" />
|
||||
<path d="M14 14l1 -1a3 5 0 0 1 3 0l2 2" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">3 days ago</div>
|
||||
<h4>+2 New photos</h4>
|
||||
<div class="mt-3">
|
||||
<div class="row g-2">
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"
|
||||
/>
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 weeks ago</div>
|
||||
<h4>System updated to v2.02</h4>
|
||||
<p class="text-secondary">
|
||||
Check the complete changelog at the <a href="#">activity page</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% include "ui/timeline.html" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<ul class="timeline">
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-twitter-lt">
|
||||
{% include "ui/icon.html" icon="brand-twitter" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">10 hrs ago</div>
|
||||
<h4>+1150 Followers</h4>
|
||||
<p class="text-secondary">You’re getting more and more followers, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="briefcase" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 hrs ago</div>
|
||||
<h4>+3 New Products were added!</h4>
|
||||
<p class="text-secondary">Congratulations!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="check" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>Database backup completed!</h4>
|
||||
<p class="text-secondary">Download the <a href="#">latest backup</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-facebook-lt">
|
||||
{% include "ui/icon.html" icon="brand-facebook" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>+290 Page Likes</h4>
|
||||
<p class="text-secondary">This is great, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="user-plus" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 days ago</div>
|
||||
<h4>+3 Friend Requests</h4>
|
||||
<div class="avatar-list mt-3">
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
<span class="avatar"> <span class="badge bg-success"></span>JL </span>
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="photo" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">3 days ago</div>
|
||||
<h4>+2 New photos</h4>
|
||||
<div class="mt-3">
|
||||
<div class="row g-2">
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="settings" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 weeks ago</div>
|
||||
<h4>System updated to v2.02</h4>
|
||||
<p class="text-secondary">
|
||||
Check the complete changelog at the <a href="#">activity page</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
||||
|
||||
## Simple timeline
|
||||
|
||||
Use a simplified version of the timeline, if it suits your design better. You can still make use of all the available timeline components.
|
||||
|
||||
{% capture html -%}
|
||||
<ul class="timeline timeline-simple">
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-twitter-lt">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">10 hrs ago</div>
|
||||
<h4>+1150 Followers</h4>
|
||||
<p class="text-secondary">You’re getting more and more followers, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<rect x="3" y="7" width="18" height="13" rx="2" />
|
||||
<path d="M8 7v-2a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v2" />
|
||||
<line x1="12" y1="12" x2="12" y2="12.01" />
|
||||
<path d="M3 13a20 20 0 0 0 18 0" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 hrs ago</div>
|
||||
<h4>+3 New Products were added!</h4>
|
||||
<p class="text-secondary">Congratulations!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M5 12l5 5l10 -10" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>Database backup completed!</h4>
|
||||
<p class="text-secondary">Download the <a href="#">latest backup</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-facebook-lt">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>+290 Page Likes</h4>
|
||||
<p class="text-secondary">This is great, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<circle cx="9" cy="7" r="4" />
|
||||
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
|
||||
<path d="M16 11h6m-3 -3v6" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 days ago</div>
|
||||
<h4>+3 Friend Requests</h4>
|
||||
<div class="avatar-list mt-3">
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
<span class="avatar"> <span class="badge bg-success"></span>JL </span>
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<line x1="15" y1="8" x2="15.01" y2="8" />
|
||||
<rect x="4" y="4" width="16" height="16" rx="3" />
|
||||
<path d="M4 15l4 -4a3 5 0 0 1 3 0l5 5" />
|
||||
<path d="M14 14l1 -1a3 5 0 0 1 3 0l2 2" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">3 days ago</div>
|
||||
<h4>+2 New photos</h4>
|
||||
<div class="mt-3">
|
||||
<div class="row g-2">
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"
|
||||
/>
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 weeks ago</div>
|
||||
<h4>System updated to v2.02</h4>
|
||||
<p class="text-secondary">
|
||||
Check the complete changelog at the <a href="#">activity page</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% include "ui/timeline.html" simple %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<ul class="timeline timeline-simple">
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-twitter-lt">
|
||||
{% include "ui/icon.html" icon="brand-twitter" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">10 hrs ago</div>
|
||||
<h4>+1150 Followers</h4>
|
||||
<p class="text-secondary">You’re getting more and more followers, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="briefcase" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 hrs ago</div>
|
||||
<h4>+3 New Products were added!</h4>
|
||||
<p class="text-secondary">Congratulations!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="check" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>Database backup completed!</h4>
|
||||
<p class="text-secondary">Download the <a href="#">latest backup</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon bg-facebook-lt">
|
||||
{% include "ui/icon.html" icon="brand-facebook" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">1 day ago</div>
|
||||
<h4>+290 Page Likes</h4>
|
||||
<p class="text-secondary">This is great, keep it up!</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="user-plus" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 days ago</div>
|
||||
<h4>+3 Friend Requests</h4>
|
||||
<div class="avatar-list mt-3">
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
<span class="avatar"> <span class="badge bg-success"></span>JL </span>
|
||||
<span class="avatar" style="background-image: url(...)">
|
||||
<span class="badge bg-success"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="photo" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">3 days ago</div>
|
||||
<h4>+2 New photos</h4>
|
||||
<div class="mt-3">
|
||||
<div class="row g-2">
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="media media-2x1 rounded">
|
||||
<a class="media-content" style="background-image: url(...)"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-event">
|
||||
<div class="timeline-event-icon">
|
||||
{% include "ui/icon.html" icon="settings" %}
|
||||
</div>
|
||||
<div class="card timeline-event-card">
|
||||
<div class="card-body">
|
||||
<div class="text-secondary float-end">2 weeks ago</div>
|
||||
<h4>System updated to v2.02</h4>
|
||||
<p class="text-secondary">
|
||||
Check the complete changelog at the <a href="#">activity page</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
title: TinyMCE
|
||||
docs-libs: tinymce
|
||||
summary: The WYSIWYG editor that is flexible, customizable, and designed with the user in mind. TinyMCE can handle any challenge, from the most simple implementation through to the most complex use case.
|
||||
description: Flexible WYSIWYG editor for content.
|
||||
---
|
||||
|
||||
[TinyMCE](https://www.tiny.cloud/docs/) documentation.
|
||||
|
||||
## Default text editor
|
||||
|
||||
Initialize TinyMCE 6 on any element (or elements) on the web page by passing an object containing a selector value to `tinymce.init()`. The selector value can be any valid CSS selector.
|
||||
|
||||
{% capture html -%}
|
||||
<form method="post">
|
||||
<textarea id="tinymce-default">Hello, <b>Tabler</b>!</textarea>
|
||||
</form>
|
||||
<script src="{{ cdnUrl }}/dist/libs/tinymce/tinymce.min.js" defer></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
let options = {
|
||||
selector: "#tinymce-default",
|
||||
height: 300,
|
||||
menubar: false,
|
||||
statusbar: false,
|
||||
plugins: [
|
||||
"advlist autolink lists link image charmap print preview anchor",
|
||||
"searchreplace visualblocks code fullscreen",
|
||||
"insertdatetime media table paste code help wordcount",
|
||||
],
|
||||
toolbar:
|
||||
"undo redo | formatselect | " +
|
||||
"bold italic backcolor | alignleft aligncenter " +
|
||||
"alignright alignjustify | bullist numlist outdent indent | " +
|
||||
"removeformat",
|
||||
content_style:
|
||||
"body { font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif; font-size: 14px; -webkit-font-smoothing: antialiased; }",
|
||||
};
|
||||
if (localStorage.getItem("tablerTheme") === "dark") {
|
||||
options.skin = "oxide-dark";
|
||||
options.content_css = "dark";
|
||||
}
|
||||
tinyMCE.init(options);
|
||||
});
|
||||
</script>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
@@ -192,34 +192,9 @@ description: Monitor data activity visually.
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<div class="tracking">
|
||||
...
|
||||
<div
|
||||
class="tracking-block bg-success"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Operational"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="No data"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block bg-failed"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Operational"
|
||||
></div>
|
||||
...
|
||||
</div>
|
||||
```
|
||||
|
||||
## Tracking inside a card
|
||||
|
||||
You can add a tracking component inside the cards to give your reports a fresh look and visualize the status of your system in an attractive way. If you want to read how to add other elements to a card it is worth reading [documentation of card](/docs/components/cards).
|
||||
You can add a tracking component inside the cards to give your reports a fresh look and visualize the status of your system in an attractive way. If you want to read how to add other elements to a card it is worth reading [documentation of card](/img/components/cards).
|
||||
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
@@ -456,95 +431,3 @@ You can add a tracking component inside the cards to give your reports a fresh l
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="subheader">Status monitoring</div>
|
||||
<div class="ms-auto lh-1">
|
||||
<div class="dropdown">
|
||||
<a
|
||||
class="dropdown-toggle text-secondary"
|
||||
href="#"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
>Current month</a
|
||||
>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<a class="dropdown-item active" href="#">Current month</a>
|
||||
<a class="dropdown-item" href="#">Last month</a>
|
||||
<a class="dropdown-item" href="#">Last 3 months</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-baseline">
|
||||
<div class="h1 mb-3 me-2">99.5%</div>
|
||||
<div class="me-auto">
|
||||
<span class="text-green d-inline-flex align-items-center lh-1">
|
||||
2%
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="icon ms-1"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<polyline points="3 17 9 11 13 15 21 7" />
|
||||
<polyline points="14 7 21 7 21 14" />
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<div class="tracking">
|
||||
<div
|
||||
class="tracking-block bg-success"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Operational"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block bg-danger"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Downtime"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block bg-success"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Operational"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block bg-warning"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="Big load"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="No data"
|
||||
></div>
|
||||
<div
|
||||
class="tracking-block"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="No data"
|
||||
></div>
|
||||
...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Vector Maps
|
||||
docs-libs: [jsvectormap, jsvectormap-world, jsvectormap-world-merc]
|
||||
docs-libs: [jsvectormap]
|
||||
description: Interactive guide to creating vector maps with jsVectorMap.
|
||||
summary: Vector maps are a great way to display geographical data in an interactive and visually appealing way. Learn how to create vector maps with jsVectorMap.
|
||||
---
|
||||
@@ -14,55 +14,22 @@ To use vector maps in your project, you need to include the jsVectorMap library
|
||||
<script src="{{ cdnUrl }}/dist/libs/jsvectormap/dist/maps/js/jsvectormap-world.js"></script>
|
||||
```
|
||||
|
||||
## Sample demo
|
||||
## Default map
|
||||
|
||||
Integrating the vector map into your website is straightforward. Below is a sample implementation for a world map:
|
||||
|
||||
```html
|
||||
<div id="map-world" class="w-100 h-100"></div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const map = new jsVectorMap({
|
||||
selector: "#map-world",
|
||||
map: "world",
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% include "ui/map-vector.html" map-id="empty" %}
|
||||
{{ script }}
|
||||
```
|
||||
|
||||
## Sample demo
|
||||
|
||||
Look at the example below to see how the vector map works with a world map.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="ratio ratio-16x9">
|
||||
<div>
|
||||
<div id="map-world" class="w-100 h-100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const map = new jsVectorMap({
|
||||
selector: "#map-world",
|
||||
map: "world",
|
||||
backgroundColor: "transparent",
|
||||
regionStyle: {
|
||||
initial: {
|
||||
fill: "var(--tblr-body-bg)",
|
||||
stroke: "var(--tblr-border-color)",
|
||||
strokeWidth: 2,
|
||||
},
|
||||
},
|
||||
zoomOnScroll: false,
|
||||
zoomButtons: false,
|
||||
});
|
||||
window.addEventListener("resize", () => {
|
||||
map.updateSize();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% include "ui/map-vector.html" map-id="world" %}
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -71,99 +38,17 @@ Look at the example below to see how the vector map works with a world map.
|
||||
You can add markers to the map to highlight specific locations. Below is a sample implementation for a world map with markers:
|
||||
|
||||
{% capture html -%}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="ratio ratio-16x9">
|
||||
<div>
|
||||
<div id="map-world-markers" class="w-100 h-100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const map = new jsVectorMap({
|
||||
selector: "#map-world-markers",
|
||||
map: "world_merc",
|
||||
backgroundColor: "transparent",
|
||||
regionStyle: {
|
||||
initial: {
|
||||
fill: "var(--tblr-body-bg)",
|
||||
stroke: "var(--tblr-border-color)",
|
||||
strokeWidth: 2,
|
||||
},
|
||||
},
|
||||
zoomOnScroll: false,
|
||||
zoomButtons: false,
|
||||
markers: [
|
||||
{
|
||||
coords: [61.524, 105.3188],
|
||||
name: "Russia",
|
||||
},
|
||||
{
|
||||
coords: [56.1304, -106.3468],
|
||||
name: "Canada",
|
||||
},
|
||||
{
|
||||
coords: [71.7069, -42.6043],
|
||||
name: "Greenland",
|
||||
},
|
||||
{
|
||||
coords: [26.8206, 30.8025],
|
||||
name: "Egypt",
|
||||
},
|
||||
{
|
||||
coords: [-14.235, -51.9253],
|
||||
name: "Brazil",
|
||||
},
|
||||
{
|
||||
coords: [35.8617, 104.1954],
|
||||
name: "China",
|
||||
},
|
||||
{
|
||||
coords: [37.0902, -95.7129],
|
||||
name: "United States",
|
||||
},
|
||||
{
|
||||
coords: [60.472024, 8.468946],
|
||||
name: "Norway",
|
||||
},
|
||||
{
|
||||
coords: [48.379433, 31.16558],
|
||||
name: "Ukraine",
|
||||
},
|
||||
],
|
||||
markerStyle: {
|
||||
initial: {
|
||||
r: 4,
|
||||
stroke: "#fff",
|
||||
opacity: 1,
|
||||
strokeWidth: 3,
|
||||
stokeOpacity: 0.5,
|
||||
fill: "var(--tblr-primary)",
|
||||
},
|
||||
hover: {
|
||||
fill: "var(--tblr-primary)",
|
||||
stroke: "var(--tblr-primary)",
|
||||
},
|
||||
},
|
||||
markerLabelStyle: {
|
||||
initial: {
|
||||
fontSize: 10,
|
||||
},
|
||||
},
|
||||
labels: {
|
||||
markers: {
|
||||
render: function (marker) {
|
||||
return marker.name;
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
window.addEventListener("resize", () => {
|
||||
map.updateSize();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% include "ui/map-vector.html" map-id="world-markers" %}
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Lines
|
||||
|
||||
You can also draw lines on the map to represent routes or connections between different locations. Below is a sample implementation for a world map with lines:
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/map-vector.html" map-id="world-lines" %}
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
18
docs/content/ui/components/wysiwyg.md
Normal file
18
docs/content/ui/components/wysiwyg.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: WYSIWYG editor
|
||||
docs-libs: [hugerte]
|
||||
summary: The WYSIWYG editor that is flexible, customizable, and designed with the user in mind. HugeRTE can handle any challenge, from the most simple implementation through to the most complex use case.
|
||||
description: Flexible WYSIWYG editor for content.
|
||||
---
|
||||
|
||||
[HugeRTE](https://hugerte.org/) documentation.
|
||||
|
||||
## Default text editor
|
||||
|
||||
Initialize HugeRTE on any element (or elements) on the web page by passing an object containing a selector value to `hugerte.init()`. The selector value can be any valid CSS selector.
|
||||
|
||||
{% capture html -%}
|
||||
{% include "ui/wysiwyg.html" %}
|
||||
{{ script }}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
@@ -4,7 +4,7 @@ summary: The color check is a great way to make your form more user-friendly and
|
||||
description: Enhance forms with color checks.
|
||||
---
|
||||
|
||||
Your input controls can come in a variety of colors, depending on your preferences. Click [here](/docs/ui/base/colors) to see the list of available colors.
|
||||
Your input controls can come in a variety of colors, depending on your preferences. See the [full list of available colors](/ui/base/colors) for more details.
|
||||
|
||||
```html
|
||||
<label class="form-colorinput">
|
||||
@@ -16,198 +16,21 @@ Your input controls can come in a variety of colors, depending on your preferenc
|
||||
There is also an example of a color input:
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Color Input</label>
|
||||
<div class="row g-2">
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="dark" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-dark"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput form-colorinput-light">
|
||||
<input name="color" type="radio" value="white" class="form-colorinput-input" checked />
|
||||
<span class="form-colorinput-color bg-white"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="blue" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-blue"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="azure" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-azure"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="indigo" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-indigo"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="purple" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-purple"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="pink" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-pink"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="red" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-red"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="orange" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-orange"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="yellow" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-yellow"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="lime" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-lime"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color" type="radio" value="green" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-green"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "parts/form/input-color.html" type="checkbox" %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
If you need to select only one color, you can use the radio input type:
|
||||
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Color Input</label>
|
||||
<div class="row g-2">
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="dark" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-dark rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput form-colorinput-light">
|
||||
<input
|
||||
name="color-rounded"
|
||||
type="radio"
|
||||
value="white"
|
||||
class="form-colorinput-input"
|
||||
checked
|
||||
/>
|
||||
<span class="form-colorinput-color bg-white rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="blue" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-blue rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="azure" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-azure rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="indigo" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-indigo rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="purple" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-purple rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="pink" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-pink rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="red" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-red rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="orange" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-orange rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="yellow" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-yellow rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="lime" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-lime rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-colorinput">
|
||||
<input name="color-rounded" type="radio" value="green" class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-green rounded-circle"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "parts/form/input-color.html" name="color-rounded" rounded=true %}
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<label class="form-colorinput">
|
||||
<input name="..." type="radio" value="..." class="form-colorinput-input" />
|
||||
<span class="form-colorinput-color bg-dark rounded-circle"></span>
|
||||
</label>
|
||||
```
|
||||
|
||||
## Input color picker
|
||||
|
||||
Add an color picker to your form to let users customize it according to their preferences.
|
||||
|
||||
```html
|
||||
<input
|
||||
type="color"
|
||||
class="form-control form-control-color"
|
||||
value="#066fd1"
|
||||
title="Choose your color"
|
||||
/>
|
||||
```
|
||||
|
||||
There is also an example of a color picker input:
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Color picker</label>
|
||||
|
||||
@@ -97,38 +97,18 @@ Use the `form-control-rounded` class if you prefer form controls with rounded co
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Form control rounded</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control form-control-rounded mb-2"
|
||||
name="Form control rounded"
|
||||
placeholder="Text.."
|
||||
/>
|
||||
<div class="input-icon">
|
||||
<input type="text" value="" class="form-control form-control-rounded" placeholder="Search…" />
|
||||
<span class="input-icon-addon">
|
||||
{% include "ui/icon.html" icon="search" %}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Form control flush
|
||||
|
||||
You can remove borders from your form control by adding the `form-control-flush` class.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Form control flush</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control form-control-flush"
|
||||
name="Form control flush"
|
||||
placeholder="Text.."
|
||||
/>
|
||||
</div>
|
||||
<label class="form-label">Form control flush</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control form-control-flush"
|
||||
name="Form control flush"
|
||||
placeholder="Text.."
|
||||
/>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
@@ -438,8 +418,6 @@ Add a range slider to make it possible for users to set a value or range, such a
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Range input</label>
|
||||
<input type="range" class="form-range mb-2" value="40" min="0" max="100" step="10" />
|
||||
<div class="form-range mb-2" id="range-simple"></div>
|
||||
<div class="form-range mb-2" id="range-connect"></div>
|
||||
<div class="form-range mb-2 text-green" id="range-color"></div>
|
||||
</div>
|
||||
<script>
|
||||
@@ -547,13 +525,13 @@ Include a link in your input control to add a clickable element within the contr
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
## Input with appended `<kbd>`
|
||||
## Input with appended kbd
|
||||
|
||||
Include a `<kbd>` in your input control to add a shortcut hint to the control.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Input with appended link</label>
|
||||
<label class="form-label">Input with appended kbd</label>
|
||||
<div class="input-group input-group-flat">
|
||||
<input type="password" class="form-control" value="ultrastrongpassword" autocomplete="off" />
|
||||
<span class="input-group-text">
|
||||
|
||||
@@ -33,14 +33,3 @@ Group parts of your form to make it well-structured and clearer for users, using
|
||||
</fieldset>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<fieldset class="form-fieldset">
|
||||
...
|
||||
<div class="mb-3">
|
||||
<label class="form-label required">Company</label>
|
||||
<input type="text" class="form-control" autocomplete="off" />
|
||||
</div>
|
||||
...
|
||||
</fieldset>
|
||||
```
|
||||
|
||||
@@ -43,12 +43,6 @@ Look at the example below to see how the input help works:
|
||||
|
||||
Use the `.required` class to indicate that a field is required. It will add a red asterisk to the label.
|
||||
|
||||
```html
|
||||
<label class="form-label required">Required</label>
|
||||
```
|
||||
|
||||
Look at the example below to see how the required field works:
|
||||
|
||||
{% capture html -%}
|
||||
<div>
|
||||
<label class="form-label required">Required</label>
|
||||
@@ -80,12 +74,6 @@ Look at the example below to see how the form hint works:
|
||||
|
||||
Use the `.form-label-description` class to add additional information to the label. The text will appear next to the label. You can use it to add for example a character counter.
|
||||
|
||||
```html
|
||||
<label class="form-label">Textarea <span class="form-label-description">56/100</span> </label>
|
||||
```
|
||||
|
||||
This example shows how to use the additional info inside the label:
|
||||
|
||||
{% capture html -%}
|
||||
<div>
|
||||
<label class="form-label">Textarea <span class="form-label-description">56/100</span> </label>
|
||||
|
||||
@@ -133,18 +133,9 @@ If you want to use the image check as a radio button, you can change the input t
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<label class="form-imagecheck">
|
||||
<input name="..." type="radio" value="1" class="form-imagecheck-input" />
|
||||
<span class="form-imagecheck-figure">
|
||||
<img src="..." alt="" class="form-imagecheck-image" />
|
||||
</span>
|
||||
</label>
|
||||
```
|
||||
|
||||
## Avatars
|
||||
|
||||
If you want to use the image check with avatars, you can use an [avatar component](/docs/ui/components/avatars) instead of an image.
|
||||
If you want to use the image check with avatars, you can use an [avatar component](/ui/components/avatars) instead of an image.
|
||||
|
||||
{% capture html -%}
|
||||
<div class="mb-3">
|
||||
@@ -203,14 +194,3 @@ If you want to use the image check with avatars, you can use an [avatar componen
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<label class="form-imagecheck">
|
||||
<input name="..." type="checkbox" value="..." class="form-imagecheck-input" />
|
||||
<span class="form-imagecheck-figure">
|
||||
<span class="form-imagecheck-image">
|
||||
<span class="avatar avatar-md" style="background-image: url(...)"></span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
```
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
title: Input mask
|
||||
summary: An input mask is used to clarify the input format required in a given field and is helpful for users, removing confusion and reducing the number of validation errors.
|
||||
description: Clarify input formats for users.
|
||||
docs-libs: imask
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -380,25 +380,3 @@ Use more advanced selectboxes to display the range of available options. You can
|
||||
</div>
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html column %}
|
||||
|
||||
```html
|
||||
<label class="form-selectgroup-item flex-fill">
|
||||
<input
|
||||
type="radio"
|
||||
name="form-payment"
|
||||
value="mastercard"
|
||||
class="form-selectgroup-input"
|
||||
checked
|
||||
/>
|
||||
<div class="form-selectgroup-label d-flex align-items-center p-3">
|
||||
<div class="me-3">
|
||||
<span class="form-selectgroup-check"></span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="payment payment-provider-mastercard payment-xs me-2"></span>
|
||||
ending in <strong>2807</strong>
|
||||
</div>
|
||||
</div>
|
||||
</label>
|
||||
```
|
||||
|
||||
|
||||
@@ -20,13 +20,6 @@ To apply the validation state to the form control, use the `.is-valid` and `.is-
|
||||
|
||||
To provide users with additional information about the validation state, you can use the `.valid-feedback` and `.invalid-feedback` classes.
|
||||
|
||||
```html
|
||||
<input type="text" class="form-control is-valid" placeholder="Valid State..." />
|
||||
<div class="valid-feedback">Looks good!</div>
|
||||
```
|
||||
|
||||
This is how it works in the example below:
|
||||
|
||||
{% capture html -%}
|
||||
<div>
|
||||
<label class="form-label required">City</label>
|
||||
@@ -53,12 +46,6 @@ If you prefer a more subtle manner of informing users of the input control valid
|
||||
|
||||
To do this, use the `.is-valid-lite` and `.is-invalid-lite` classes.
|
||||
|
||||
```html
|
||||
<input type="text" class="form-control is-valid is-valid-lite" placeholder="Valid State..." />
|
||||
```
|
||||
|
||||
Look how it works in the example below:
|
||||
|
||||
{% capture html -%}
|
||||
<input type="text" class="form-control is-valid is-valid-lite" placeholder="Valid State..." />
|
||||
<input type="text" class="form-control is-invalid is-invalid-lite" placeholder="Invalid State..." />
|
||||
|
||||
@@ -19,7 +19,7 @@ Yes, absolutely.
|
||||
|
||||
## Can I use Tabler in commercial projects?
|
||||
|
||||
Of course! Tabler is under MIT license, so you can confidently use it in commercial projects. However, remember to include a note that your project uses Tabler. You can read about our license here: [License](/license)
|
||||
Of course! Tabler is under MIT license, so you can confidently use it in commercial projects. However, remember to include a note that your project uses Tabler. You can read about our license here: [License]({{ site.homepage }}/license).
|
||||
|
||||
## Can Tabler be used with WordPress?
|
||||
|
||||
@@ -27,4 +27,4 @@ Tabler is an HTML template that can be used for any purpose. However, it is not
|
||||
|
||||
## How do I get notified of new Tabler versions?
|
||||
|
||||
You may watch the releases on GitHub or follow me on Twitter.
|
||||
You may watch [the releases on GitHub](https://github.com/tabler/tabler/releases), follow us on [X](https://x.com/tabler_io) or stay up to date with our [changelog]({{ site.homepage }}/changelog).
|
||||
|
||||
@@ -4,7 +4,7 @@ summary: This guide explains how to contribute to Tabler, from setting up a deve
|
||||
description: Guide to contributing to Tabler and setting up for development.
|
||||
---
|
||||
|
||||
Contributions are always welcome and highly encouraged! Whether you're new to open source or a seasoned contributor, your input helps make Tabler better for everyone. If you're new to open source, [start here](https://opensource.guide/how-to-contribute/) to learn more about contributing.
|
||||
Contributions are always welcome and highly encouraged! Whether you're new to open source or a seasoned contributor, your input helps make Tabler better for everyone. If you're new to open source, we recommend reading a [how to contribute](https://opensource.guide/how-to-contribute/) guide to learn more about contributing.
|
||||
|
||||
## Contribution Requirements
|
||||
|
||||
@@ -13,7 +13,7 @@ When contributing to Tabler, please adhere to the following guidelines:
|
||||
1. By submitting a contribution, you grant a non-exclusive license to the Tabler project to use your contribution in any context deemed appropriate.
|
||||
2. If your contribution includes content from other sources, it must be appropriately licensed under an open source license.
|
||||
3. Contributions must be submitted via GitHub pull requests.
|
||||
4. Ensure your code works in all supported browsers (refer to our [browser support documentation](/docs/ui/getting-started/browser-support)).
|
||||
4. Ensure your code works in all supported browsers (refer to our [browser support documentation](/ui/getting-started/browser-support)).
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -37,18 +37,18 @@ Follow these steps to set up Tabler for development:
|
||||
|
||||
To set up Tabler for development, follow these steps:
|
||||
|
||||
<div class="steps">
|
||||
<div class="steps steps-vertical">
|
||||
|
||||
### Ensure Node.js and npm are installed
|
||||
### Ensure Node.js and pnpm are installed
|
||||
|
||||
You’ll need Node.js (v20 or higher) and pnpm to compile Tabler’s files. If you don’t have them installed, download and install them from the official websites:
|
||||
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [pnpm](https://pnpm.io/)
|
||||
- [pnpm](https://pnpm.io/) (we use pnpm over other package managers for faster installation).
|
||||
|
||||
### Install dependencies
|
||||
|
||||
Run the following command to install all required npm packages. We recommend using pnpm for faster installation:
|
||||
Run the following command to install all required npm packages:
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
@@ -56,7 +56,7 @@ pnpm install
|
||||
|
||||
### Start developer mode
|
||||
|
||||
Use the following command to enable autocompilation with live reload. This will start a local server at `http://localhost:3000/`:
|
||||
Use the following command to enable autocompilation with live reload. This will start up the preview website at `http://localhost:3000/`, and the documentation website at `http://localhost:3010/`:
|
||||
|
||||
```bash
|
||||
pnpm run dev
|
||||
@@ -64,7 +64,7 @@ pnpm run dev
|
||||
|
||||
### Make changes
|
||||
|
||||
Make your changes in the appropriate folders, such as `./src/` or `./docs/`. Avoid modifying files in `./dist/`, as they are auto-generated during the build process and will be overwritten.
|
||||
Make your changes in the appropriate folders, such as `./core/`, `./preview/` or `./docs/`. Avoid modifying files in any `dist` folders, as they are auto-generated during the build process and will be overwritten.
|
||||
</div>
|
||||
|
||||
## Compiling for Production
|
||||
|
||||
@@ -13,4 +13,4 @@ Tabler is fully responsive and compatible with all modern browsers. Thanks to it
|
||||
|
||||
Tabler is a perfect solution if you want to create an interface which is not only user-friendly but also fully responsive. Thanks to the big choice of ready-made components, you can customize your design and adapt it to the needs of even the most demanding users. On top of that, Tabler is an open source solution, continuously developed and improved by the open source community.
|
||||
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/tabler-preview.png?2" src-dark="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/tabler-preview-dark.png?2" alt="Screencap of tabler site showing global traffic and statistics" />
|
||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview.png?2" src-dark="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview-dark.png?2" alt="Screencap of tabler site showing global traffic and statistics" />
|
||||
@@ -7,7 +7,7 @@ description: "Set up Tabler: HTML, CSS, JS, and build stunning UIs."
|
||||
|
||||
This guide will take you through the essential steps to set up Tabler in your project, from creating a basic HTML file to incorporating Tabler’s styles and scripts. Let’s dive in!
|
||||
|
||||
<div class="steps">
|
||||
<div class="steps steps-vertical">
|
||||
|
||||
### Create a Basic HTML File
|
||||
|
||||
@@ -56,7 +56,7 @@ Update your HTML file to include these resources:
|
||||
|
||||
This setup includes the Tabler CSS and JavaScript via a CDN, providing a responsive and functional base for your project.
|
||||
|
||||
You can also download the files and include them locally in your project. For more information, see the [Download](/docs/ui/getting-started/download) page.
|
||||
You can also download the files and include them locally in your project. For more information, see the [Download](/ui/getting-started/download) page.
|
||||
|
||||
### Open in Your Browser
|
||||
|
||||
@@ -64,4 +64,4 @@ Save the file and open it in your browser. You should see your first Tabler-powe
|
||||
|
||||
</div>
|
||||
|
||||
With these simple steps, you're ready to explore Tabler's features and build stunning web interfaces. For inspiration and guidance, you can view live demos at [preview.tabler.io](https://preview.tabler.io) and consult our [official documentation](https://tabler.io/docs) for detailed instructions and examples.
|
||||
With these simple steps, you're ready to explore Tabler's features and build stunning web interfaces. For inspiration and guidance, you can view live demos at [preview.tabler.io](https://preview.tabler.io) and consult our [official documentation](https://docs.tabler.io) for detailed instructions and examples.
|
||||
7
docs/content/ui/getting-started/references.md
Normal file
7
docs/content/ui/getting-started/references.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: 3rd-party Libraries & Resources
|
||||
---
|
||||
|
||||
Tabler uses the following open source resources:
|
||||
|
||||
{% include "docs/open-source-resources.html" %}
|
||||
@@ -10,20 +10,6 @@ Navigation bars are essential components of modern web applications, providing u
|
||||
|
||||
If you want to create a horizontal navigation bar, you can use the `.nav` class. The `.nav-item` class is used to style each item within the navigation bar, and `.nav-link` is applied to the links. The `.active` class highlights the current active link, while the `.disabled` class styles non-clickable links.
|
||||
|
||||
```html
|
||||
<ul class="nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="#">Active</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
||||
|
||||
Look at the example below to see how the horizontal navigation bar is displayed.
|
||||
|
||||
{% capture html -%}
|
||||
@@ -34,9 +20,6 @@ Look at the example below to see how the horizontal navigation bar is displayed.
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
@@ -64,9 +47,6 @@ There is an example below to see how the vertical navigation bar is displayed.
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
@@ -84,7 +64,7 @@ To create a tabbed navigation interface, use the `.nav-tabs` class. This is idea
|
||||
</ul>
|
||||
```
|
||||
|
||||
Example below shows how the tabbed navigation interface is displayed.
|
||||
The example below shows how the tabbed navigation interface is displayed.
|
||||
|
||||
{% capture html -%}
|
||||
<ul class="nav nav-tabs">
|
||||
@@ -94,9 +74,6 @@ Example below shows how the tabbed navigation interface is displayed.
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
@@ -106,7 +83,7 @@ Example below shows how the tabbed navigation interface is displayed.
|
||||
|
||||
## Pills
|
||||
|
||||
For a pill-shaped navigation style, use the `.nav-pills` class. This is a great choice for a sleek, modern look, especially in interactive UI components.
|
||||
For a pill-shaped navigation style, use the `.nav-pills` class. This is a great choice for a sleek, modern look, especially in the interactive UI components.
|
||||
|
||||
{% capture html -%}
|
||||
<ul class="nav nav-pills">
|
||||
@@ -116,9 +93,6 @@ For a pill-shaped navigation style, use the `.nav-pills` class. This is a great
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
@@ -138,9 +112,6 @@ To create a navigation bar with an underline effect for active links, use the `.
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
@@ -4,9 +4,9 @@ summary: Learn how to build a sample version of the dashboard
|
||||
description: Learn to design dashboard layouts.
|
||||
---
|
||||
|
||||
<Callout>
|
||||
Before you start with this section, make sure you have followed the [installation guideline](/docs/ui/getting-started/installation).
|
||||
</Callout>
|
||||
{% callout %}
|
||||
Before you start with this section, make sure you have followed the [installation guideline](/ui/getting-started/installation).
|
||||
{% endcallout %}
|
||||
|
||||
## Sample layout
|
||||
|
||||
|
||||
@@ -28,12 +28,7 @@ To create a flag, add the `flag` class to a component and choose the country who
|
||||
|
||||
## Country flags
|
||||
|
||||
To use the flag of a particular country, add the `flag-country-(country name)` class. For example, to create a flag of Andorra, you should use the following class: `.flag-country-ad`. The full list of countries can be found below.
|
||||
|
||||
```html
|
||||
<span class="flag flag-country-ad"></span>
|
||||
<span class="flag flag-country-ae"></span>
|
||||
```
|
||||
To use the flag of a particular country, add the `flag-country-(country name)` class. For example, to create a flag of Andorra, you should use the following class: `.flag-country-ad`. The full list of countries can be found at the end of this page.
|
||||
|
||||
{% capture html -%}
|
||||
<span class="flag flag-country-tg"></span>
|
||||
@@ -55,14 +50,6 @@ Using Bootstrap’s typical naming structure, you can create a standard flag, or
|
||||
{%- endcapture %}
|
||||
{% include "docs/example.html" html=html %}
|
||||
|
||||
```html
|
||||
<span class="flag flag-xl ..."></span>
|
||||
<span class="flag flag-lg ..."></span>
|
||||
<span class="flag flag-md ..."></span>
|
||||
<span class="flag flag-sm ..."></span>
|
||||
<span class="flag flag-xs ..."></span>
|
||||
```
|
||||
|
||||
## Flags list
|
||||
|
||||
The full list of countries can be found below.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user