1
0
mirror of https://github.com/tabler/tabler.git synced 2025-12-21 17:34:25 +04:00

Compare commits

...

30 Commits

Author SHA1 Message Date
Paweł Kuna
9cd532745a Update border radius variables for consistency across components (#2167) 2025-02-15 13:33:39 +01:00
Paweł Kuna
063bdc28ab Update and simplify main menu (#2166) 2025-02-15 13:20:29 +01:00
Luca Sabato
5d8392366c Fixed missing images in the README and getting started page + minor formatting changes (#2161)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-14 14:14:28 +01:00
Paweł Kuna
2d05b5d5d3 Fix chart styling with border-radius (#2160) 2025-02-14 00:17:37 +01:00
Paweł Kuna
ca4ba14718 Enhance navbar styles with new hover effects and color variables (#2159) 2025-02-14 00:01:41 +01:00
codecalm
9755e1e9e9 Update changelog to consolidate payment provider support details 2025-02-13 23:07:24 +01:00
codecalm
954e42f9c0 Update changelog texts 2025-02-13 23:06:57 +01:00
BG-Software
b47815d530 Fix instruction for CDN icons version (#2157) 2025-02-13 23:00:18 +01:00
oksuzgil
1edaff454b New payment provider (TROY) (#2146)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
Co-authored-by: codecalm <codecalm@gmail.com>
2025-02-13 22:59:45 +01:00
Paweł Kuna
b47725dcc2 New text features page (#2152) 2025-02-13 22:49:42 +01:00
Luca Sabato
b85ef1a95e added "start" command to package.json scripts as alias for dev (#2156)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-13 22:49:29 +01:00
Paweł Kuna
eff95dc033 Add section comments and format HTML for improved readability (#2158) 2025-02-13 22:41:46 +01:00
ethancrawford
846c48d140 Add various spelling fixes and grammar improvements (#2153)
Co-authored-by: BG-Software <73077398+BG-Software-BG@users.noreply.github.com>
2025-02-13 22:29:45 +01:00
codecalm
ee3862fcf4 Enhance Markdown styling by adding image support in paragraphs and updating image reference in example 2025-02-13 21:41:08 +01:00
codecalm
2fe9e70b54 Update layout for Markdown page to use 'markdown' layout 2025-02-13 21:37:55 +01:00
codecalm
002528fadd Refactor colorpicker to use dynamic color values from site.colors 2025-02-13 21:34:08 +01:00
codecalm
ee5e25a52b Bump @tabler/core version to minor 2025-02-12 21:14:35 +01:00
Paweł Kuna
bd3d959cea Refactor SCSS files to replace divide function with calc (#2150) 2025-02-12 21:12:52 +01:00
BG-Software
afd070012d Fix apexcharts heatmap example in docs (#2147) 2025-02-12 21:12:25 +01:00
ethancrawford
d6a10938e3 Fix broken 'top pages' table (#2144)
Co-authored-by: BG-Software <73077398+BG-Software-BG@users.noreply.github.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-12 21:09:14 +01:00
Paweł Kuna
f95f2509c7 Update color utility classes and fix colors in pricing page (#2122) 2025-02-12 21:01:04 +01:00
codecalm
3dea9de29c Add "preview" to ignore list in changeset configuration 2025-02-12 19:48:41 +01:00
codecalm
3b0623fc42 build fix 2025-02-12 19:44:43 +01:00
Bartłomiej Gawęda
f38fac3508 Remove rimraf in preview 2025-02-12 19:36:55 +01:00
Paweł Kuna
b4b4d1a816 Add Scroll Spy page (#2142) 2025-02-12 19:21:31 +01:00
Bartłomiej Gawęda
821a1c5405 Use shx for mkdir and rm commands, remove rimraf 2025-02-12 19:11:04 +01:00
codecalm
1b0266e612 Enhance copy-img script to ensure destination directory exists and use shx for cross-platform compatibility 2025-02-12 18:59:23 +01:00
codecalm
3320246d0f Fix clean script in package.json to remove only the dist directory 2025-02-12 18:45:59 +01:00
codecalm
55f467c945 Replace background tasks with concurrently for improved script execution in package.json 2025-02-12 18:37:16 +01:00
codecalm
958ad128ad Refactor package.json scripts for improved readability and consistency 2025-02-12 18:31:04 +01:00
132 changed files with 850 additions and 462 deletions

View File

@@ -6,5 +6,7 @@
"linked": [],
"access": "public",
"baseBranch": "main",
"ignore": []
"ignore": [
"preview"
]
}

View File

@@ -1,5 +1,5 @@
---
"@tabler/core": patch
"@tabler/core": minor
---
Enable `scrollSpy` in `countup` module

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Refactor SCSS files to replace divide function with calc

View File

@@ -1,5 +1,5 @@
---
"@tabler/core": patch
"@tabler/core": minor
---
Add segmented control component

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new text features page with mentions: user, color and app.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add Scroll Spy page

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update border radius variables for consistency across components

View File

@@ -0,0 +1,5 @@
---
---
Fix apexcharts heatmap example in docs

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Update color utility classes and replace background colors in pricing table

View File

@@ -0,0 +1,5 @@
---
"preview": patch
---
Fix broken "top pages" table

View File

@@ -0,0 +1,5 @@
---
"preview": patch
---
Update and simplify main menu

View File

@@ -0,0 +1,5 @@
---
---
Fix spelling and improve grammar in the documentation

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new payment provider (Troy)

View File

@@ -0,0 +1,5 @@
---
---
Fixed missing image in the README and Getting Started page

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fixes navbar styles with new hover effects and color variables

View File

@@ -0,0 +1,4 @@
---
---
Add section comments and format HTML for improved readability

View File

@@ -0,0 +1,5 @@
---
---
Fix instruction for CDN icons version

View File

@@ -44,9 +44,6 @@ jobs:
- name: Install pnpm dependencies
run: pnpm install --no-frozen-lockfile
- name: Build
run: pnpm run build
- name: Run bundlewatch
run: pnpm run bundlewatch
env:

View File

@@ -16,8 +16,7 @@
- be14607: Add new color picker component using `coloris.js` library
- d046570: Update Tabler Icons to version 2.23 with 18 new icons added
- 5488c50: New page with payment providers: `payment-providers.html`
- 5488c50: Add support for new payment providers: 2c2p, Adyen, Affirm, Alipay Plus, Allegro Pay, Amazon Pay, Apple Pay, Autopay, Binance USD, Bkash, Cash App, Chime, EasyPaisa, Ethereum, Google Pay, HubSpot, iDeal, Litecoin, Mercado Pago,
MetaMask, MoneyGram, OpenSea, Payconiq, Payka, Payline, PayPo, Paysafe, Poli, Revolut Pay, Samsung Pay, Shop Pay, Solana, Spingo, Stax, Tether, True USD, Venmo, WeChat Pay, Wise, Zelle
- 5488c50: Add support for new payment providers: 2c2p, Adyen, Affirm, Alipay Plus, Allegro Pay, Amazon Pay, Apple Pay, Autopay, Binance USD, Bkash, Cash App, Chime, EasyPaisa, Ethereum, Google Pay, HubSpot, iDeal, Litecoin, Mercado Pago, MetaMask, MoneyGram, OpenSea, Payconiq, Payka, Payline, PayPo, Paysafe, Poli, Revolut Pay, Samsung Pay, Shop Pay, Solana, Spingo, Stax, Tether, True USD, Venmo, WeChat Pay, Wise, Zelle
### Patch Changes

View File

@@ -1,5 +1,5 @@
<p align="center">
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/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/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 premium and open source dashboard template with a responsive and high-quality UI.
</p>
@@ -18,9 +18,9 @@ A premium and open source dashboard template with a responsive and high-quality
**If you want to support our project and help me 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>
<a href="https://github.com/sponsors/codecalm">
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
</a>
</p>
## Testing
@@ -28,21 +28,24 @@ A premium and open source dashboard template with a responsive and high-quality
<p align="center">Browser testing via:</p>
<p align="center">
<a href="https://www.lambdatest.com/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/14dd2a0a-bafe-436e-a6cb-29636278c781">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83">
<img src="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83" alt="Tabler Icons preview" width="296">
</picture>
</a>
<a href="https://www.lambdatest.com/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/14dd2a0a-bafe-436e-a6cb-29636278c781">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83">
<img src="https://github.com/user-attachments/assets/d3dede5a-d702-47c3-bb66-4d887948ed83" alt="Tabler Icons preview" width="296">
</picture>
</a>
</p>
## 🔎 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! <a href="https://preview.tabler.io">Show me a demo</a>
<a href="https://preview.tabler.io" target="_blank"><img src="https://raw.githubusercontent.com/tabler/tabler/dev/src/static/tabler-preview.png" alt="Tabler preview"></a>
<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">
</a>
</p>
## 🚀 Features
@@ -67,8 +70,11 @@ To run the documentation site locally, follow instructions in the [Documentation
## 💕 Sponsor Tabler
<a href="https://github.com/sponsors/codecalm" target="_blank"><img src="/src/static/sponsor-banner-readme.png?raw=true" alt="Sponsor Tabler" /></a>
<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>
### Sponsors
@@ -94,12 +100,15 @@ To use our build system and run our documentation locally, you'll need a copy of
**OSX users**:
```pnpm install```
```sh
pnpm install
```
and then
```npm run start```
```sh
npm run start
```
**Windows users**:
@@ -216,4 +225,4 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -6,27 +6,27 @@
"scripts": {
"dev": "pnpm run watch",
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy",
"clean": "rimraf dist/* demo",
"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",
"css-compile": "sass scss/:dist/css/ --no-source-map --load-path=node_modules",
"css-banner": "node build/add-banner.mjs",
"css-prefix": "postcss --config build/postcss.config.mjs --replace 'dist/css/*.css' '!dist/css/*.rtl*.css' '!dist/css/*.min.css'",
"css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir 'dist/css' --ext '.rtl.css' 'dist/css/*.css' '!dist/css/*.min.css' '!dist/css/*.rtl.css'",
"css-prefix": "postcss --config build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
"css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"",
"css-minify": "pnpm run css-minify-main && pnpm run css-minify-rtl",
"css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix '.min' 'dist/css/*.css' '!dist/css/*.min.css' '!dist/css/*rtl*.css'",
"css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix '.min' 'dist/css/*rtl.css' '!dist/css/*.min.css'",
"css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
"css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
"js": "pnpm run js-compile && pnpm run js-minify",
"js-compile": "pnpm run js-compile-standalone && pnpm run js-compile-standalone-esm",
"js-compile-standalone": "rollup --config build/rollup.config.mjs --sourcemap",
"js-compile-standalone-esm": "rollup --environment ESM:true --config build/rollup.config.mjs --sourcemap",
"js-minify": "pnpm run js-minify-standalone && pnpm run js-minify-standalone-esm",
"js-minify-standalone": "terser --compress passes=2 --mangle --comments '/^!/' --source-map 'content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map' --output dist/js/tabler.min.js dist/js/tabler.js",
"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-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map\" --output dist/js/tabler.min.js dist/js/tabler.js",
"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",
"copy": "pnpm run copy-img",
"copy-img": "cp -r img dist/img",
"watch": "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'",
"copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img",
"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\"",
"bundlewatch": "bundlewatch",
"format:check": "prettier --check src/**/*.{js,scss} --cache",
"format:write": "prettier --write src/**/*.{js,scss} --cache"
@@ -89,7 +89,7 @@
},
{
"path": "./dist/css/tabler-flags.css",
"maxSize": "2 kB"
"maxSize": "2.5 kB"
},
{
"path": "./dist/css/tabler-flags.min.css",
@@ -97,7 +97,7 @@
},
{
"path": "./dist/css/tabler-payments.css",
"maxSize": "2 kB"
"maxSize": "2.2 kB"
},
{
"path": "./dist/css/tabler-payments.min.css",

View File

@@ -1,9 +1,9 @@
@import "bootstrap/scss/functions";
@import "mixins";
@import "variables";
@import "variables-dark";
@import "utilities";
@import "mixins";
@import "bootstrap-config";
@import "bootstrap-override";

View File

@@ -93,4 +93,13 @@ $utilities: (
responsive: true,
values: 2 3 4,
),
"bg-pattern": (
property: background,
class: bg-pattern,
values: (
transparent: #{url-svg(
'<svg width="16" height="16" viewBox="0 0 16 16"><rect x="0" y="0" width="8" height="8" fill="rgba(130, 130, 130, .1)" /><rect x="8" y="8" width="8" height="8" fill="rgba(130, 130, 130, .1)" /></svg>'
)} repeat center/16px 16px,
)
)
) !default;

View File

@@ -293,8 +293,8 @@ $theme-colors: map-merge($theme-colors, map-merge($extra-colors, $social-colors)
$border-width: 1px !default;
$border-width-wide: 2px !default;
$border-radius-sm: 2px !default;
$border-radius: 4px !default;
$border-radius-sm: 4px !default;
$border-radius: 6px !default;
$border-radius-lg: 8px !default;
$border-radius-pill: 100rem !default;
@@ -614,7 +614,7 @@ $card-color: inherit !default;
$card-border-width: var(--#{$prefix}border-width) !default;
$card-border-color: var(--#{$prefix}border-color-translucent) !default;
$card-border-radius: var(--#{$prefix}border-radius) !default;
$card-border-radius: var(--#{$prefix}border-radius-lg) !default;
$card-spacer-x: 1.25rem !default;
$card-spacer-y: 1rem !default;
@@ -681,7 +681,7 @@ $dropdown-divider-margin-y: var(--#{$prefix}spacer-2) !default;
// Tooltip
$tooltip-bg: var(--#{$prefix}bg-surface-dark) !default;
$tooltip-color: var(--#{$prefix}light) !default;
$tooltip-padding-y: var(--#{$prefix}spacer-2) !default;
$tooltip-padding-y: var(--#{$prefix}spacer-1) !default;
$tooltip-padding-x: var(--#{$prefix}spacer-2) !default;
// Loader
@@ -729,9 +729,10 @@ $modal-sm: 380px !default;
$nav-link-padding-y: 0.5rem !default;
$nav-link-padding-x: 0.75rem !default;
$nav-link-color: var(--#{$prefix}gray-500) !default;
$nav-link-active-color: var(--#{$prefix}body-color) !default;
$nav-link-disabled-color: var(--#{$prefix}disabled-color) !default;
$nav-link-icon-size: $icon-size !default;
$nav-link-icon-color: var(--#{$prefix}icon-color) !default;
$nav-link-icon-color: inherit !default;
$nav-pills-link-active-color: var(--#{$prefix}primary) !default;
$nav-pills-link-active-bg: var(--#{$prefix}active-bg) !default;
@@ -753,7 +754,7 @@ $nav-tabs-bg: var(--#{$prefix}bg-surface-tertiary) !default;
// Navbar
$navbar-height: 3.5rem !default;
$navbar-padding-y: 0.25rem !default;
$navbar-light-color: var(--#{$prefix}muted) !default;
$navbar-light-color: var(--#{$prefix}secondary) !default;
$navbar-hover-color: $white !default;
@@ -762,8 +763,8 @@ $navbar-border-color: var(--#{$prefix}border-color) !default;
$navbar-light-color: var(--#{$prefix}body-color) !default;
$navbar-light-brand-color: var(--#{$prefix}body-color) !default;
$navbar-light-active-color: var(--#{$prefix}body-color) color !default;
$navbar-light-hover-color: var(--#{$prefix}body-color) color !default;
$navbar-light-active-color: var(--#{$prefix}body-color) !default;
$navbar-light-hover-color: var(--#{$prefix}body-color) !default;
$navbar-light-disabled-color: var(--#{$prefix}disabled-color) !default;
$navbar-light-active-bg: rgba(0, 0, 0, 0.2) !default;
@@ -787,6 +788,7 @@ $navbar-toggler-focus-width: 0 !default;
$navbar-overlap-height: 9rem !default;
$navbar-nav-link-padding-x: $nav-link-padding-x !default;
$navbar-nav-link-hover-bg: rgba(0, 0, 0, .04) !default;
$navbar-active-border-color: var(--#{$prefix}primary) !default;
@@ -803,6 +805,9 @@ $popover-bg: var(--#{$prefix}bg-surface) !default;
$popover-header-bg: transparent !default;
$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;
// Footer
$footer-padding-y: 2rem !default;

View File

@@ -107,8 +107,8 @@ Navbar
.nav-link {
position: relative;
min-width: 2rem;
min-height: 2rem;
min-width: 2.5rem;
min-height: 2.5rem;
justify-content: center;
border-radius: var(--#{$prefix}border-radius);
@@ -122,11 +122,6 @@ Navbar
}
}
.navbar-nav {
margin: 0;
padding: 0;
}
.navbar-expand {
@each $breakpoint in map-keys($grid-breakpoints) {
$next: breakpoint-next($breakpoint, $grid-breakpoints);
@@ -146,6 +141,10 @@ Navbar
.nav-item.active {
position: relative;
.nav-link {
color: var(--#{$prefix}navbar-active-color);
}
&:after {
content: "";
position: absolute;
@@ -276,6 +275,9 @@ Navbar transparent
Navbar nav
*/
.navbar-nav {
--#{$prefix}nav-link-hover-bg: #{$navbar-nav-link-hover-bg};
margin: 0;
padding: 0;
align-items: stretch;
.nav-item {

View File

@@ -53,7 +53,7 @@
justify-content: center;
text-decoration: none;
padding: .25rem;
color: var(--#{$prefix}muted);
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h5);
border-radius: var(--#{$prefix}border-radius);
line-height: 1;

View File

@@ -18,7 +18,7 @@
}
.hero-description {
color: var(--#{$prefix}muted);
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h2);
line-height: 1.5;
margin: 0 auto;

View File

@@ -81,7 +81,7 @@
}
.section-description {
color: var(--#{$prefix}muted);
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h3);
line-height: var(--#{$prefix}line-height-h3);
margin-top: 1rem;

View File

@@ -42,3 +42,34 @@
@return if($n > 1, nth($breakpoint-names, $n - 1), null);
}
/**
* Converts a given value to a percentage string.
*
* @param {Number} $value - The value to be converted to a percentage.
* @return {String} - The percentage representation of the value.
*/
@function to-percentage($value) {
@return if(unitless($value), percentage($value), $value);
}
/**
* Generates a transparent version of the given color.
*
* @param {Color} $color - The base color to be made transparent.
* @param {Number} $alpha - The level of transparency, ranging from 0 (fully transparent) to 1 (fully opaque). Default is 1.
* @return {Color} - The resulting color with the specified transparency.
*/
@function color-transparent($color, $alpha: 1, $background: transparent) {
@if $alpha == 1 {
@return $color;
} @else {
@return color-mix(in srgb, #{$color} #{to-percentage($alpha)}, $background);
}
}
@function url-svg($svg) {
$svg: str-replace($svg, '#', '%23');
$svg: str-replace($svg, '<svg', '<svg xmlns="http://www.w3.org/2000/svg"');
@return url('data:image/svg+xml;charset=UTF-8,#{$svg}');
}

View File

@@ -5,7 +5,7 @@
overflow: hidden;
user-select: none;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
min-width: ($badge-padding-y * 2 ) + (divide($badge-font-size, 100%) * 1em);
min-width: 1.25rem;
font-weight: $headings-font-weight;
letter-spacing: .04em;
vertical-align: bottom;

View File

@@ -28,8 +28,8 @@
}
.calendar-date {
flex: 0 0 divide(100%, 7);
max-width: divide(100%, 7);
flex: 0 0 calc(100% / 7);
max-width: calc(100% / 7);
padding: .2rem;
text-align: center;
border: 0;

View File

@@ -36,7 +36,8 @@ Markdown
padding: .5rem 1.5rem;
}
> img {
> img,
> p > img {
border-radius: var(--#{$prefix}border-radius);
}
}

View File

@@ -13,7 +13,7 @@
.nav-link.active,
.nav-item.show .nav-link {
font-weight: var(--#{$prefix}font-weight-bold);
font-weight: var(--#{$prefix}font-weight-medium);
}
&.nav-pills {
@@ -51,8 +51,13 @@
.nav-link {
display: flex;
@include transition(color $transition-time);
@include transition(color $transition-time, background-color $transition-time);
align-items: center;
&:hover,
&:focus {
background-color: var(--#{$prefix}nav-link-hover-bg);
}
}
.nav-link-toggle {

View File

@@ -1,4 +1,4 @@
$payment-icons: ("2c2p", "2checkout", "adyen", "affirm", "alipay-plus", "alipay", "allegro-pay", "amazon-pay", "amazon", "americanexpress", "applepay", "authorize", "autopay", "bancontact", "binance-usd", "bitcoin", "bitpay", "bkash", "blik", "braintree", "cash-app", "chime", "cirrus", "clickandbuy", "coinkite", "dinersclub", "directdebit", "discover", "dotpay", "dwolla", "easypaisa", "ebay", "elo", "epayco", "esewa", "ethereum", "eway", "fonepay", "giropay", "google-pay", "googlewallet", "hubspot", "ingenico", "ideal", "imepay", "jcb", "khalti", "klarna", "laser", "litecoin", "maestro", "mastercard", "mercado-pago", "metamask", "mir", "monero", "moneygram", "neteller", "ogone", "okpay", "opensea", "paybox", "payconiq", "payka", "payline", "paymill", "payone", "payoneer", "paypal", "paypo", "paysafe", "paysafecard", "payu", "payza", "poli", "przelewy24", "revolut-pay", "ripple", "sage", "samsung-pay", "sepa", "shop-pay", "shopify", "skrill", "solana", "solo", "spingo", "square", "stax", "stripe", "switch", "tether", "tpay", "true-usd", "ukash", "unionpay", "venmo", "verifone", "verisign", "visa", "we-chat-pay", "webmoney", "westernunion", "wise", "worldpay", "zelle");
$payment-icons: ("2c2p", "2checkout", "adyen", "affirm", "alipay-plus", "alipay", "allegro-pay", "amazon-pay", "amazon", "americanexpress", "applepay", "authorize", "autopay", "bancontact", "binance-usd", "bitcoin", "bitpay", "bkash", "blik", "braintree", "cash-app", "chime", "cirrus", "clickandbuy", "coinkite", "dinersclub", "directdebit", "discover", "dotpay", "dwolla", "easypaisa", "ebay", "elo", "epayco", "esewa", "ethereum", "eway", "fonepay", "giropay", "google-pay", "googlewallet", "hubspot", "ingenico", "ideal", "imepay", "jcb", "khalti", "klarna", "laser", "litecoin", "maestro", "mastercard", "mercado-pago", "metamask", "mir", "monero", "moneygram", "neteller", "ogone", "okpay", "opensea", "paybox", "payconiq", "payka", "payline", "paymill", "payone", "payoneer", "paypal", "paypo", "paysafe", "paysafecard", "payu", "payza", "poli", "przelewy24", "revolut-pay", "ripple", "sage", "samsung-pay", "sepa", "shop-pay", "shopify", "skrill", "solana", "solo", "spingo", "square", "stax", "stripe", "switch", "tether", "tpay", "troy", "true-usd", "ukash", "unionpay", "venmo", "verifone", "verisign", "visa", "we-chat-pay", "webmoney", "westernunion", "wise", "worldpay", "zelle");
.payment {
height: $avatar-size;

View File

@@ -72,7 +72,7 @@ b {
}
blockquote {
padding-left: 1rem;
padding: 1rem 1rem 1rem;
border-left: 2px var(--#{$prefix}border-style) var(--#{$prefix}border-color);
p {
@@ -89,7 +89,8 @@ blockquote {
}
}
ul, ol {
ul,
ol {
padding-left: 1.5rem;
}
@@ -123,6 +124,12 @@ code {
border-radius: var(--#{$prefix}border-radius);
}
abbr {
text-decoration: underline dotted;
cursor: help;
text-decoration-skip-ink: none;
}
kbd,
.kbd {
border: $kbd-border;
@@ -145,18 +152,23 @@ img {
margin-left: 0;
}
/**
Selection
*/
::selection {
background-color: rgba(var(--#{$prefix}primary-rgb), .16);
::selection,
.text-selected {
background-color: color-transparent(var(--#{$prefix}primary), .1);
}
.text-selected {
display: inline-block;
}
/**
Links
*/
[class^="link-"], [class*=" link-"] {
[class^="link-"],
[class*=" link-"] {
&.disabled {
color: $nav-link-disabled-color !important;
pointer-events: none;
@@ -173,3 +185,68 @@ Subheader
.subheader {
@include subheader;
}
/**
Mentions
*/
.mention {
display: inline-block;
box-shadow: var(--tblr-box-shadow-border);
border-radius: var(--#{$prefix}border-radius-pill);
line-height: calc(16em / 12);
font-size: calc(12em / 14);
color: var(--#{$prefix}body-color);
background: var(--#{$prefix}bg-surface-tertiary);
padding: calc(2em / 12) calc(8em / 12);
font-weight: var(--#{$prefix}font-weight-medium);
@at-root a#{&} {
cursor: pointer;
&:hover,
&.hover {
background: var(--#{$prefix}bg-surface-secondary);
text-decoration: underline;
}
}
}
.mention-avatar,
.mention-app,
.mention-color {
width: calc(14em / 12);
height: calc(14em / 12);
border-radius: var(--#{$prefix}border-radius-pill);
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);
vertical-align: middle;
text-align: center;
}
.mention-app {
box-shadow: none;
background: none;
border-radius: 0;
}
.mention-count {
color: var(--#{$prefix}secondary);
margin-left: calc(8em / 12);
}
$text-variants: (
incorrect: var(--#{$prefix}red),
correct: var(--#{$prefix}green),
);
@each $variant, $color in $text-variants {
.text-#{$variant} {
background: color-transparent($color, .04);
background: color-transparent($color, 4%);
text-decoration: underline;
text-decoration-thickness: 1px;
text-decoration-color: $color;
}
}

View File

@@ -31,7 +31,7 @@
@each $color, $value in $gray-colors {
.bg-#{"" + $color} {
--#{$prefix}bg-opacity: .1;
--#{$prefix}bg-opacity: 1;
background-color: rgba(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}bg-opacity)) !important;
}
@@ -39,3 +39,15 @@
color: $value !important;
}
}
.bg-surface {
background-color: var(--#{$prefix}bg-surface) !important;
}
.bg-surface-secondary {
background-color: var(--#{$prefix}bg-surface-secondary) !important;
}
.bg-surface-tertiary {
background-color: var(--#{$prefix}bg-surface-tertiary) !important;
}

View File

@@ -2,6 +2,6 @@
@for $i from 0 through 20 {
.opacity-#{$i * 5} {
opacity: divide($i * 5, 100) !important;
opacity: calc(#{$i * 5} / 100) !important;
}
}

View File

@@ -40,4 +40,9 @@
.apexcharts-radialbar-track .apexcharts-radialbar-area {
stroke: var(--#{$prefix}border-color) !important;
}
.apexcharts-svg,
.apexcharts-canvas {
border-radius: inherit;
}

View File

@@ -1,6 +1,6 @@
---
title: Tabler Icons
summary: Tabler Icons is a powerful and versatile icon library that offers a huge collection of high quality icons suitable for a wide range of applications. With its clean and modern aesthetic, extensive customisation options, and user-friendly website and plugins, Tabler Icons is an excellent resource for designers and developers looking to enhance their projects with high-quality icons.
summary: Tabler Icons is a powerful and versatile icon library that offers a huge collection of high quality icons suitable for a wide range of applications. With its clean and modern aesthetic, extensive customization options, and user-friendly website and plugins, Tabler Icons is an excellent resource for designers and developers looking to enhance their projects with high-quality icons.
order: 2
description: Over 5000 pixel-perfect icons for web design and development
---

View File

@@ -14,7 +14,7 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
It's built with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```js
import { IconArrowDown } from '@tabler/icons-preact';

View File

@@ -14,7 +14,7 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
It's built with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```jsx
import { IconArrowLeft } from '@tabler/icons-react';

View File

@@ -15,7 +15,7 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
It's built with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```js
import { IconArrowRight } from '@tabler/icons-solidjs';

View File

@@ -15,7 +15,7 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
It's built with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```sveltehtml
<script lang="ts">

View File

@@ -15,7 +15,7 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
All icons are Vue components that contain SVG elements. So any icon can be imported and used as a component. It also helps to use threeshaking, so you only import the icons you use.
All icons are Vue components that contain SVG elements, so any icon can be imported and used as a component. It also helps to use treeshaking, so you only import the icons you use.
```vue
<template>

View File

@@ -33,6 +33,8 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@$ICONS_VERSION/dist/tabler-icons.min.css">
```
Instead of a specific version, you can use `latest` to always get the newest icons.
## Usage
### HTML

View File

@@ -16,8 +16,6 @@ All PNG files are stored in `icons` subdirectory.
## CDN
Replace `$ICONS_VERSION` with `latest` or any specific version you need.
#### Outline version
```html
@@ -29,3 +27,5 @@ Replace `$ICONS_VERSION` with `latest` or any specific version you need.
```html
<img src="https://unpkg.com/@tabler/icons-png@$ICONS_VERSION/icons/filled/home.png" />
```
Instead of a specific version, you can use `latest` to always get the newest icons.

View File

@@ -59,8 +59,6 @@ Add an icon to be displayed on your page with the following markup (`activity` i
## CDN
Replace `$ICONS_VERSION` with `latest` or any specific version you need.
#### Outline version
```html
@@ -72,3 +70,5 @@ Replace `$ICONS_VERSION` with `latest` or any specific version you need.
```html
<img src="https://unpkg.com/@tabler/icons@$ICONS_VERSION/icons/filled/home.svg" />
```
Instead of a specific version, you can use `latest` to always get the newest icons.

View File

@@ -323,7 +323,7 @@ Each illustration has a dark mode variant. To use it, copy the dark mode SVG cod
Tabler Illustrations supports autodark mode, which automatically switches the color scheme of the illustrations based on the user's system preferences. To enable autodark mode, copy illustration code from the `svg-css-autodark` folder.
Illustration change theme based on the user's system preferences or `data-bs-theme` attribute or `theme` class.
Illustrations change theme based on the user's system preferences or `data-bs-theme` attribute or `theme` class.
```html
<html data-bs-theme="dark">

View File

@@ -11,6 +11,6 @@ Find all the guides and resources you need to develop with Tabler and our other
<Card title="UI Components" href="/docs/ui" icon="paint">Free and open source web application UI kit based on Bootstrap</Card>
<Card title="Icons" href="/docs/icons" icon="ghost"><IconsCount /> pixel-perfect icons for web design and development</Card>
<Card title="Illustrations" href="/docs/illustrations" icon="brand-figma"><IllustrationsCount /> customizable SVG illustrations for your web project</Card>
<Card title="Email Templates" icon="mail" disabled badge="Comming soon"><EmailsCount /> responsive email templates ready to use in your marketing campaigns</Card>
<Card title="Avatars" icon="user-circle" disabled badge="Comming soon">Package of over 100 avatars for your next web project</Card>
</Cards>
<Card title="Email Templates" icon="mail" disabled badge="Coming soon"><EmailsCount /> responsive email templates ready to use in your marketing campaigns</Card>
<Card title="Avatars" icon="user-circle" disabled badge="Coming soon">Package of over 100 avatars for your next web project</Card>
</Cards>

View File

@@ -1,6 +1,6 @@
---
title: Colors
summary: The choice of colors for a website or app interface has an big influence on how users interact with the product and what decisions they make. Harmonic colors can contribute to a nice first impression and encourage users to engage with your product, so it's a very important aspect of a successful design, which needs to be well thought out.
summary: The choice of colors for a website or app interface has a big influence on how users interact with the product and what decisions they make. Harmonious colors can contribute to a nice first impression and encourage users to engage with your product, so it's a very important aspect of a successful design, which needs to be well thought out.
bootstrapLink: utilities/colors/
description: Impact of colors on user interface design.
---
@@ -80,4 +80,4 @@ Use the colors of popular social networks to create a recognizable design and ma
{ name: "flickr", value: "#0063dc" },
{ name: "bitbucket", value: "#0052cc" },
{ name: "tabler", value: "#066fd1" }
]} />
]} />

View File

@@ -7,7 +7,7 @@ description: Role of typography in interface design.
## Headings
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.
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
@@ -19,7 +19,7 @@ The `h1` tag is the highest level and the `h6` tag is the lowest level.
<h6>H6 Heading</h6>
```
There is example of headings with different levels:
Below are examples of headings with different levels:
```html example vertical columns={1}
<h1>H1 Heading</h1>
@@ -32,13 +32,13 @@ There is example of headings with different levels:
## Paragraphs
Organize longer pieces of text into paragraphs using the `p` tag. It is the most common element for text content.
Organize longer pieces of text into paragraphs using the `p` tag. It is the most common element for text content.
```html
<p>At vero eos et accusam et justo duo dolores et ea rebum.</p>
```
If you use second paragraph, it will be separated from the first one by a blank line.
If you use a second paragraph, it will be separated from the first one by a blank line.
```html example vertical centered columns={2}
<div>
@@ -50,7 +50,7 @@ If you use second paragraph, it will be separated from the first one by a blank
## Semantic text elements
Use a variety of semantic text elements, depending of how you want to display particular fragments of content.
Use a variety of semantic text elements, depending on how you want to display particular fragments of content.
```html
<abbr title="Internationalization">I18N</abbr>
@@ -72,11 +72,11 @@ Text <sup>Superscripted</sup>
<var>x</var> = <var>y</var> + 2
```
Here is an example of semantic text elements:
Here are examples of semantic text elements:
```html example vertical separated columns={1}
<div>
<abbr title="Internationalization">I1f8N</abbr>
<abbr title="Internationalization">I18N</abbr>
</div>
<div><strong>Bold</strong></div>
<div>
@@ -273,7 +273,7 @@ To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd
## Markdown elements
If you can't use the CSS classes you want or if you just want to use HTML tags, use the `.markdown` class in a container. It will apply the default styles for 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.
```html example centered background="white" columns={2} height="30rem"
<div class="markdown">

View File

@@ -42,7 +42,7 @@ Add a link to your alert message to redirect users to the details they need to c
## Dismissible alerts
Add the `x` close button to make an alert modal dismissible. Thanks to that, your alert modal will disappear only once the user closes it.
Add the `x` close button to make an alert modal dismissible. Thanks to that, your alert modal will disappear only when the user closes it.
```html
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
@@ -83,7 +83,7 @@ Add the `x` close button to make an alert modal dismissible. Thanks to that, you
Add an icon to your alert modal to make it more user-friendly and help users easily identify the message.
Use `alert-icon` class for `<svg>` or `<i>`, when using webfont, to provide the proper styling.
Use the `alert-icon` class on an `<svg>` (or on an `<i>` when using the webfont) to provide the proper styling.
```html example vertical background="surface" columns={2} centered separated height="420px"
<div class="alert alert-success" role="alert">
@@ -295,7 +295,7 @@ Buttons don't inherit the alert's color, so you should set the proper class if y
## Important alerts
If you want your alert to be really eye-catching, you can add a `alert-important` class. It will use the selected color as a background for the alert.
If you want your alert to be really eye-catching, you can add an `alert-important` class. It will use the selected color as a background for the alert.
```html
<div class="alert alert-important alert-success alert-dismissible" role="alert">...</div>
@@ -354,9 +354,9 @@ You can also use other elements, like icons and dismissible buttons, with this t
</div>
```
## Custom alert's color
## Custom alert color
You're not limited to the 4 default alert's colors. You can use any [base or social color](../base/colors) you want.
You're not limited to the 4 default alert colors. You can use any [base or social color](../base/colors) you want.
```html example vertical background="surface" columns={2} centered separated height="420px"
<div class="alert alert-lime" role="alert">

View File

@@ -1,12 +1,12 @@
---
title: Avatars
summary: Avatars help customise various elements of a user interface and make the product experience more personalised. They are often used in communication apps, collaboration tools and social media.
summary: Avatars help customize various elements of a user interface and make the product experience more personalized. They are often used in communication apps, collaboration tools and social media.
description: Personalize UI with user avatars.
---
## Default markup
Use the `avatar` class to add an avatar to your interface design for greater customisation.
Use the `avatar` class to add an avatar to your interface design for greater customization.
```html example centered separated code
<span class="avatar" style="background-image: url(/samples/avatars/002f.jpg)"></span>
@@ -16,7 +16,7 @@ Use the `avatar` class to add an avatar to your interface design for greater cus
## Avatar image
Set an image as the background to make users easy to indentify and create a personalised experience.
Set an image as the background to make users easy to indentify and create a personalized experience.
```html example centered separated code
<span class="avatar" style="background-image: url(/samples/avatars/016f.jpg)"></span>
@@ -38,7 +38,7 @@ You can also use initials instead of pictures.
## Avatar icons
Apart from pictures and initials, you can also use icons to make the avatars more universal.
Besides pictures and initials, you can also use icons to make the avatars more universal.
```html example centered separated
<span class="avatar">
@@ -99,7 +99,7 @@ Using Bootstraps typical naming structure, you can create a standard avatar o
## Avatar status
Add a status indicator to your avatar to show, for instance, if a users is online or offline or indicate the number of messages they have received.
Add a status indicator to your avatar to show, for instance, if a user is online or offline or indicate the number of messages they have received.
```html example centered separated code
<span class="avatar" style="background-image: url(/samples/avatars/018m.jpg)"></span>

View File

@@ -7,7 +7,7 @@ description: Customizable buttons for user actions.
## Button tag
As one of the most common elements of UI design, buttons have a very important function of engaging users with your website or app and guiding them in their actions. Use the `.btn` classes with the `<button>` element and add additional styling that will make your buttons serve their purpose and draw users' attention.
As one of the most common elements of UI design, buttons have a very important function of engaging users within your website or app and guiding them in their actions. Use the `.btn` classes with the `<button>` element and add additional styling that will make your buttons serve their purpose and draw users' attention.
```html example centered separated height="7rem"
<a href="#" class="btn" role="button">Link</a>
@@ -27,7 +27,7 @@ The standard button creates a white background and subtle hover animation. It's
## Button variations
Use the button classes that correspond to the function of your button. The big range of available colors will help you show your buttons' purpose and make them easy to spot.
Use the button classes that correspond to the function of your button. The big range of available colors will help you show your button's purpose and make it easy to spot.
```html example vertical centered separated scrollable height="15rem"
<a href="#" class="btn btn-primary">Primary</a>
@@ -76,7 +76,7 @@ Choose the right color for your button to make it go well with your design and d
## Ghost buttons
Use the `.btn-ghost-*` class to make your button look simple yet aesthetically appealing. Ghost buttons help focus users' attention on the website's primary design, at the same time encouraging them to take action.
Use the `.btn-ghost-*` class to make your button look simple yet aesthetically appealing. Ghost buttons help focus users' attention on the website's primary design, encouraging them to take action at the same time.
```html example vertical centered separated scrollable height="15rem"
<a href="#" class="btn btn-ghost-primary">Primary</a>
@@ -138,7 +138,7 @@ Add `.btn-lg` or `.btn-sm` to change the size of your button and differentiate t
## Buttons with icons
Label your button with text and add an icon to communiacate 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 atractive look.
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)
@@ -320,7 +320,7 @@ You can use the icons of popular social networking sites, which users are famili
</a>
```
You can also add an icon without the name of a social networking site, if you want to display more buttons on a small space.
You can also add an icon without the name of a social networking site, if you want to display more buttons in a small space.
```html example separated scrollable height="7rem"
<a href="#" class="btn btn-facebook btn-icon" aria-label="Button">
@@ -602,7 +602,7 @@ Add the `.btn-loading` class to show a button's loading state, which can be usef
## List of buttons
Create a list of buttons using the `.btn-list` container to display different actions a user can take. If you add aditional styling, such as colours, you will be able to focus users' attention on a particular action or suggest the result.
Create a list of buttons using the `.btn-list` container to display different actions a user can take. If you add additional styling, such as colors, you will be able to focus users' attention on a particular action or suggest the result.
```html example vertical centered columns={3} height="7rem"
<div class="btn-list">

View File

@@ -92,7 +92,7 @@ To create a more visually appealing card, add a title and an image. Thanks to th
## Blog post card
Add an image to your blog post card to make it eye-catching. You can do it by adding the image in the `.card-img-top` class. Thanks to the `.d-flex` and `.flex-column` classes within `.card-body`, the author details will be displayed at the bottom of the card.
Add an image to your blog post card to make it eye-catching. You can do it by adding the image, with a `.card-img-top` class, inside the `.card` element. Thanks to the `.d-flex` and `.flex-column` classes within `.card-body`, the author details will be displayed at the bottom of the card.
```html example centered columns={1} height={600} background="base"
<div class="card d-flex flex-column">
@@ -186,7 +186,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 customise 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.
```html example columns={2} centered height={400} background="base"
<div class="row row-deck">

View File

@@ -81,7 +81,7 @@ You can replace the standard indicators with dots. Just add the `carousel-indica
## Thumb indicators
The syntax is similar with thumbnails. Add class `carousel-indicators-thumb` and add `background-image` to element `[data-bs-target]`. Default thumbnails have an aspect ratio of 1:1. To change this use `ratio` utils.
The syntax is similar for thumbnails. Add class `carousel-indicators-thumb` and add `background-image` to element `[data-bs-target]`. Default thumbnails have an aspect ratio of 1:1. To change this use `ratio` utils.
```html example centered columns={2} height="35rem"
<div id="carousel-indicators-thumb" class="carousel slide carousel-fade" data-bs-ride="carousel">
@@ -145,7 +145,7 @@ To make the indicators go to the right side, add the `carousel-indicators-vertic
</div>
```
Likewise, you can add thumbnails on the right side:
An example of adding thumbnails on the right side:
```html example centered columns={2} height="35rem"
<div id="carousel-indicators-thumb-vertical" class="carousel slide carousel-fade" data-bs-ride="carousel">

View File

@@ -352,10 +352,7 @@ Pie charts are a simple and effective way to visualize proportions and ratios. T
horizontal: 8,
vertical: 8
},
},
tooltip: {
fillSeriesColor: false
},
}
})).render();
});
</script>
@@ -368,51 +365,48 @@ Heatmaps provide a graphical representation of data where individual values are
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-demo-pie" class="chart-lg"></div>
<div id="chart-demo-heatmap" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
window.ApexCharts && (new ApexCharts(document.getElementById('chart-demo-pie'), {
window.ApexCharts && (new ApexCharts(document.getElementById('chart-demo-heatmap'), {
chart: {
type: "donut",
type: "heatmap",
fontFamily: 'inherit',
height: 240,
sparkline: {
enabled: true
},
animations: {
enabled: false
},
toolbar: {
show: false
}
},
tooltip: {
theme: 'dark'
},
fill: {
opacity: 1,
},
series: [44, 55, 12, 2],
labels: ["Direct", "Affilliate", "E-mail", "Other"],
tooltip: {
theme: 'dark'
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: [tabler.getColor("primary")],
dataLabels: {
enabled: false
},
grid: {
strokeDashArray: 4,
},
colors: [tabler.getColor("primary"), tabler.getColor("primary", 0.8), tabler.getColor("primary", 0.6), tabler.getColor("gray-300")],
legend: {
show: true,
position: 'bottom',
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8
xaxis: {
tooltip: {
enabled: false
},
},
tooltip: {
fillSeriesColor: false
title: {
text: 'Average Temperature by Day and City',
},
})).render();
});

View File

@@ -90,7 +90,7 @@ description: Detailed product information in grids.
</div>
```
You can adjust the datagrid to your needs setting the values of variables:
You can adjust the datagrid to your needs by setting the values of variables:
| Variable | Description | Default |
|----------|-------------|---------|

View File

@@ -1,6 +1,6 @@
---
title: Dropdowns
summary: Use dropdowns to display lists of options or include more positions in a menu without overwhelming users with too many buttons and long lists. Dropdowns facilitate users' interaction with your website or software and make your design look clear.
summary: Use dropdowns to display lists of options or include more items in a menu without overwhelming users with too many buttons and long lists. Dropdowns facilitate users' interaction with your website or software and make your design look clear.
bootstrapLink: components/dropdowns
description: Organize options with dropdown menus.
---

View File

@@ -1,6 +1,6 @@
---
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 library on the web and is used by millions of people.
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.
---

View File

@@ -1,6 +1,6 @@
---
title: Icons
summary: Use one of over 5000 icons created specifically for Tabler and make your dashboard look even more attractive. All icons are under MIT license, so you can use them without any problem both in private and commercial projects.
summary: Use any of over 5000 icons created specifically for Tabler and make your dashboard look even more attractive. All icons are under MIT license, so you can use them without any problem both in private and commercial projects.
banner: icons
description: Enhance dashboards with custom icons.
---
@@ -9,7 +9,7 @@ If you need to add icons to your website, you can use the Tabler Icons library.
## Base icon
To add icon to your code copy the SVG code from the Tabler Icons website and paste it into your HTML file.
To add an icon to your code copy the SVG code from the Tabler Icons website and paste it into your HTML file.
```html
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-heart" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">

View File

@@ -111,7 +111,7 @@ You can use the modal to create a prompt or alert. Look at the example below to
<circle cx="12" cy="12" r="9" />
<path d="M9 12l2 2l4 -4" />
</svg>
<h3>Payment succedeed</h3>
<h3>Payment succeeded</h3>
<div class="text-secondary">Your payment of $290 has been successfully submitted. Your invoice has been sent to support@tabler.io.</div>
</div>
<div class="modal-footer">

View File

@@ -1,12 +1,12 @@
---
title: Placeholder
summary: Placeholder is used to reserve space for content that soon will appear in a layout.
summary: Placeholder is used to reserve space for content that will soon appear in a layout.
description: Reserve space for upcoming content.
---
## Placeholder line
Placeholder lines can contain have lines of text. Their length is different and depends on the `col-` class.
Placeholder lines can contain lines of text. Their length is different and depends on the `col-` class.
```html example columns={1}
<div class="placeholder col-9"></div>
@@ -15,7 +15,7 @@ Placeholder lines can contain have lines of text. Their length is different and
<div class="placeholder col-8"></div>
```
However, it may be useful, however, to specify the full width in order to fit the content more effectively.
However, it may be useful to specify the full width in order to fit the content more effectively.
```html example columns={1}
<div class="placeholder col-12"></div>
@@ -24,7 +24,7 @@ However, it may be useful, however, to specify the full width in order to fit th
<div class="placeholder col-12"></div>
```
You can also move the lines to right or to center:
You can also move the lines to the right or center them:
```html example columns={1}
<div class="text-end">
@@ -41,7 +41,7 @@ You can also move the lines to right or to center:
## Placeholder heading
A placeholder can contain also a header element looks like header:
A placeholder can also contain an element that looks like a header:
```html example columns={1}
<div class="placeholder col-9 mb-3"></div>
@@ -51,13 +51,13 @@ A placeholder can contain also a header element looks like header:
## Placeholder avatar
You can use a placeholder, which will look like an avatar. You can use the `avatar` component, and get the image in the right proportions.
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 like.
Look at the example below to see how the avatar placeholder looks.
```html example columns={1} centered
<div class="row">
@@ -71,7 +71,7 @@ Look at the example below to see how the avatar placeholder looks like.
</div>
```
You can also use the `avatar` component with different sizes. Look at the example below to see how the avatar placeholder looks like.
You can also use the `avatar` component with different sizes. Look at the example below to see how the avatar placeholder looks.
```html example centered separated
<div class="avatar avatar-xl placeholder"></div>
@@ -84,9 +84,7 @@ You can also use the `avatar` component with different sizes. Look at the exampl
## Placeholder image
You can use a placeholder, which will look like a picture. You can use the `ratio` component, and get the image in the right proportions.
You can also use the `ratio` component, and get the image in the right proportions.
You can use a placeholder that will look like a picture. You can use the `ratio` component, and get the image in the right proportions.
```html example columns={1} height={500} scrollable separated vertical
<div class="ratio ratio-1x1 placeholder">
@@ -105,7 +103,7 @@ You can also use the `ratio` component, and get the image in the right proportio
## Placeholder color
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.
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>
@@ -127,7 +125,7 @@ Look at the example below to see how the color affects the placeholder.
## Placeholder sizing
The size of `.placeholders` are based on the typographic style of the parent element. Customize them with sizing modifiers: `.placeholder-lg`, `.placeholder-sm`, or `.placeholder-xs`.
The sizes of placeholders are based on the typographic style of the parent element. Customize them with sizing modifiers: `.placeholder-lg`, `.placeholder-sm`, or `.placeholder-xs`.
```html example columns={1}
<span class="placeholder col-12 placeholder-lg"></span>

View File

@@ -41,7 +41,7 @@ Four options are available: `top`, `right`, `bottom`, and `left` aligned. Direct
## Popover on hover
Popover can be triggered `manual`, with a `click` and on `focus` and on `hover`. This one reacts on hover.
Popover can be triggered in one or more of the following styles: `manual`, with a `click`, on `focus`, and on `hover`. This one reacts on hover. See more details on the Popover component page of [Bootstrap's documentation](https://getbootstrap.com/docs)
```html example centered
<button type="button" class="btn btn-primary" data-bs-trigger="hover" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Hover to toggle popover</button>

View File

@@ -59,7 +59,7 @@ You can also use native HTML5 `<progress>` element. It is a great way to create
<progress class="progress progress-sm" value="15" max="100" />
```
This is how it looks like:
This is how it looks:
```html example columns={1} centered
<progress class="progress progress-sm" value="15" max="100" />
@@ -104,7 +104,7 @@ You can stack multiple progress bars on top of each other to create a visually a
</div>
```
This is how it looks like:
This is how it looks:
```html example columns={2} centered
<div class="progress-stacked">
@@ -130,7 +130,7 @@ You can create a striped progress bar by adding the `.progress-bar-striped` clas
</div>
```
This is how it looks like:
This is how it looks:
```html example columns={1} centered separated
<div class="progress">

View File

@@ -120,7 +120,7 @@ Look at the example below to see how the button with a spinner works:
## Animated dots
Use animated dots to show the loading state of a component. They provide feedback for an action a user has taken, when it takes a bit longer to complete. To do it you need to use the `.animated-dots` class on `span` element.
Use animated dots to show the loading state of a component. They provide feedback for an action a user has taken, when it takes a bit longer to complete. To do it you need to use the `.animated-dots` class on a `span` element.
```html example centered code
<h1>Loading<span class="animated-dots"></span>

View File

@@ -98,7 +98,7 @@ Look at the example below to see how the status with a dot works:
### Animated dot
You can also animate the dot to make it more noticeable. To do this, use the `.status-dot-animated` class inside the `.status-dot` element.
You can also animate the dot to make it more noticeable. To do this, add a `.status-dot-animated` class to the `.status-dot` element.
```html example centered separated columns={2}
<span class="status status-blue">
@@ -153,7 +153,7 @@ You can also animate the dot to make it more noticeable. To do this, use the `.s
## Lite status
Use the lite status to make the status less noticeable. To do this, use the `.status-lite` class inside the `.status` element.
Use the lite status to make the status less noticeable. To do this, add a `.status-lite` class to the `.status` element.
```html example centered separated columns={2}
<span class="status status-blue status-lite">
@@ -231,7 +231,7 @@ Look at the example below to see how the status dots work:
<span class="status-dot status-cyan"></span>
```
The dots can also be animated. To do this, use the `.status-dot-animated` class.
The dots can also be animated. To do this, add the `.status-dot-animated` class.
```html
<span class="status-dot status-dot-animated status-blue"></span>
@@ -256,7 +256,7 @@ The animated status dots can be used in the same way as the regular status dots.
## Status indicator
Use the status indicator to show the status of a component or page. The status indicator can be animated. To do this, use the `.status-indicator-animated` class.
Use the status indicator to show the status of a component or page. The status indicator can be animated. To do this, also add the `.status-indicator-animated` class.
```html example centered separated columns={1}
<span class="status-indicator status-blue status-indicator-animated">

View File

@@ -46,7 +46,7 @@ The example below demonstrates a simple progress tracker with four steps, where
## Tooltips
Add tooltips, if you want to provide users with additional information about the steps they are expected to complete. Tooltips are displayed when a user hovers over a given step and help clarify what might not be clear from the interface.
Add tooltips if you want to provide users with additional information about the steps they are expected to complete. Tooltips are displayed when a user hovers over a given step and help clarify what might not be clear from the interface.
To add a tooltip, use the `data-bs-toggle="tooltip"` attribute and specify the tooltip content with the `title` attribute.

View File

@@ -7,7 +7,7 @@ description: Transition between two icons smoothly.
## Default markup
To replace the icons, all should add `active` class to the `switch-icon` component.
The icon transition is triggered by adding an `.active` class to the `switch-icon` component.
```html example centered
<button class="switch-icon" data-bs-toggle="switch-icon">

View File

@@ -1,6 +1,6 @@
---
title: Tables
summary: Tables are a useful interface element that allows to visualise data and arrange it in a clear way. Thanks to that, users can browse a lot of information at once and a good table design will help you take care of its clarity.
summary: Tables are useful interface elements that allow you to visualize data and arrange it in a clear way. Thanks to that, users can browse a lot of information at once and a good table design will help you take care of its clarity.
bootstrapLink: content/tables/
description: Visualize data clearly with tables.
---

View File

@@ -194,7 +194,7 @@ Make one or more of your tabs into a dropdown to add more options within one ele
## Full-width tabs
Add the `nav-fill` class to make the tabs take up the full space of the parent element.
Add the `.nav-fill` class to make the tabs take up the full space of the parent element.
```html example centered columns={1} height="20rem"
<div class="card">

View File

@@ -6,7 +6,7 @@ description: Visualize events and processes clearly.
## Timeline
The available timeline design is comprised 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 yor website or app more attractive.
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.
```html example height="400px" scrollable background="base"
<ul class="timeline">

View File

@@ -1,6 +1,6 @@
---
title: Tracking
summary: Component for visualising activity logs or other monitoring-related data. With its ability to show data in a visually appealing and easily understandable way, the tracking component is an essential tool for any organization that relies on data monitoring and analysis to optimize performance and user experience.
summary: Component for visualizing activity logs or other monitoring-related data. With its ability to show data in a visually appealing and easily understandable way, the tracking component is an essential tool for any organization that relies on data monitoring and analysis to optimize performance and user experience.
description: Monitor data activity visually.
---
@@ -53,7 +53,7 @@ description: Monitor data activity visually.
## Tracking inside a card
You can add a tracking component inside the cards to give your reports a fresh look and visualise the status of your system in an attractive way. If you want to read how to add other elements to 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](/docs/components/cards).
```html example centered columns={1}
<div class="card">

View File

@@ -187,7 +187,7 @@ If you need to select only one color, you can use the radio input type:
## Input color picker
Add an color picker to your form to let users customise it according to their preferences.
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">

View File

@@ -129,7 +129,7 @@ Add icons to your input controls to suggest users what they should enter or info
## Separated inputs
Include an additional element in your input section, such as a button which can be used to submit the information enetered in the input control.
Include an additional element in your input section, such as a button which can be used to submit the information entered in the input control.
```html example centered columns={1} height="20rem"
<div class="mb-3">
@@ -182,7 +182,7 @@ Add one of the available selects - either a dropdown or a multiple choice select
## Input size
Choose the size of an input control that will go well with your form design. Apart from the default size, you can also use small and large input controls.
Choose the size of an input control that will go well with your form design. Besides the default size, you can also use small and large input controls.
```html example centered columns={1} height="20rem"
<div class="mb-3">
@@ -295,7 +295,7 @@ Use radio buttons for the parts of your form which require users to choose one o
## Checkboxes
Use checkoxes if you want to allow users to select more than one option from a set of predefined options or to turn an option on or off.
Use checkboxes if you want to allow users to select more than one option from a set of predefined options or to turn an option on or off.
```html example centered columns={1} height="20rem"
<div class="mb-3">
@@ -454,7 +454,7 @@ Include a link in your input control to add a clickable element within the contr
## Input with appended `<kbd>`
Include a `<kbd>` in your input control to add shortcut to the control.
Include a `<kbd>` in your input control to add a shortcut hint to the control.
```html example centered columns={1}
<div class="mb-3">

View File

@@ -6,7 +6,7 @@ description: Add visual appeal to forms with images.
## Default markup
To build an image check, you need to use the `.form-imagecheck` class and the `.form-imagecheck-input` class for the input element. You can also use the `.form-imagecheck-figure` class to style the image and the `.form-imagecheck-image` class to style the image itself.
To build an image check, you need to use the `.form-imagecheck` class and the `.form-imagecheck-input` class for the input element. You can also use the `.form-imagecheck-figure` class to display the custom checkbox and the `.form-imagecheck-image` class to style the image itself.
```html
<label class="form-imagecheck">
@@ -114,7 +114,7 @@ If you want to use the image check as a radio button, you can change the input t
## Avatars
If you want to use the image check with avatars, you can use the `.avatar` instead of the image.
If you want to use the image check with avatars, you can use an [avatar component](/docs/ui/components/avatars) instead of an image.
```html example centered columns={2} height="15rem"
<div class="mb-3">

View File

@@ -1,6 +1,6 @@
---
title: Input mask
summary: An input mask is a 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.
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.
---
@@ -43,4 +43,4 @@ Look at the example below to see how the input mask works:
## More examples
If you need more examples of input masks, you can find them in the [IMask documentation](https://imask.js.org/guide.html#masked-input).
If you need more examples of input masks, you can find them in the [IMask documentation](https://imask.js.org/guide.html#masked-input).

View File

@@ -228,7 +228,7 @@ Look at the example below to see how the pill selectgroup works:
## Advanced selectboxes
Use more advanced selectboxes to display the range of available options. You can choose selectboxes with radio buttons, if you want users to select only one option or with checkboxes, if they are allowed to choose multiple options.
Use more advanced selectboxes to display the range of available options. You can choose selectboxes with radio buttons if you want users to select only one option, or with checkboxes if they are allowed to choose multiple options.
```html example height="30rem" centered columns="1" plugins="payments"
<div class="mb-3">

View File

@@ -50,7 +50,7 @@ You can also use the `.valid-feedback` to provide users with positive feedback.
## Subtle validation states
If you prefer a more subtle manner of informing users of the input control validation state, you can use tick and cross symbols and resign from colored control frames and the validation feedback.
If you prefer a more subtle manner of informing users of the input control validation state, you can use tick and cross symbols and refrain from using colored control frames and the validation feedback.
To do this, use the `.is-valid-lite` and `.is-invalid-lite` classes.

View File

@@ -6,7 +6,7 @@ description: Get Tabler CSS, JS, and source code.
## CDN via jsDelivr
All files included in `@tabler/core` npm package are available over a jsDelivr CDN. Use it to deliver cached version of Tablers compiled CSS and JS to your project.
All files included in the `@tabler/core` npm package are available over a jsDelivr CDN. Use it to deliver cached versions of Tablers compiled CSS and JS to your project.
```html
<script src="$TABLER_CDN/dist/js/tabler.min.js"></script>
@@ -28,7 +28,7 @@ Install Tabler in your Node.js powered apps with the npm package:
<TabsPackage name="@tabler/core" />
Tabler uses other packages to enhance the functionality for example charts and input masks. These are not automatically installed to avoid huge
Tabler uses other packages to enhance its functionality - for example, charts and input masks. These are not automatically installed to avoid huge
dependency trees and need to be installed by using npm install. We support the following packages as of writing.
- [apexcharts](https://apexcharts.com/)
@@ -41,4 +41,4 @@ dependency trees and need to be installed by using npm install. We support the f
- [nouislider](https://refreshless.com/nouislider/)
- [tom-select](https://tom-select.js.org/)
For the complete list of supported packages you can check the peerDependencies section in our [package.json](https://github.com/tabler/tabler/blob/dev/package.json)
For the complete list of supported packages you can check the peerDependencies section in our [package.json](https://github.com/tabler/tabler/blob/dev/package.json)

View File

@@ -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/src/static/tabler-preview.png?2" src-dark="https://raw.githubusercontent.com/tabler/tabler/dev/src/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/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" />

View File

@@ -1,6 +1,6 @@
---
title: Navs and tabs
summary: This guide covered the basics of creating different types of navigation bars and tabs, including horizontal, vertical, pill-shaped, and underline-styled navs.
summary: This guide covers the basics of creating different types of navigation bars and tabs, including horizontal, vertical, pill-shaped, and underline-styled navs.
description: "Essential guide to nav styles: tabs, pills, dropdowns, and more."
---

View File

@@ -144,7 +144,7 @@ description: Examples of Tabler page headers.
## Bordered header
Page header with a border to separate content is an effective way to organize and present information in a clear and visually appealing way.
A page header with a border to separate content is an effective way to organize and present information in a clear and visually appealing way.
```html example fullpage
<div class="page-header page-header-border">

View File

@@ -8,9 +8,9 @@ description: Visual representation of countries/languages.
## Installation
This part of Tabler is distributed as plugin. To enable it you should include `tabler-flags.css` or `tabler-flags.min.css` file to your page.
This part of Tabler is distributed as a plugin. To enable it you should include `tabler-flags.css` or `tabler-flags.min.css` file in your page.
You can also include plugin via CDN:
You can also include the plugin via CDN:
```html
<link rel="stylesheet" href="$TABLER_CDN/dist/css/tabler-flags.min.css">
@@ -18,7 +18,7 @@ You can also include plugin via CDN:
## Flag
To create a flag, add the `flag` class to a component and choose the country whose flag you want to use.
To create a flag, add the `flag` class to a component and choose the country whose flag you want to use.
```html example centered separated plugins="flags"
<span class="flag flag-country-us"></span>
@@ -27,7 +27,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 should use the following class: `.flag-country-ad`. Full list of countries can be found below.
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>

View File

@@ -1,15 +1,15 @@
---
title: Payments
summary: The Tabler payments plug-in will let you use a set of payment provider icons to facilitate the payment process and make it more-user friendly.
summary: The Tabler payments plug-in will let you use a set of payment provider icons to facilitate the payment process and make it more user-friendly.
plugin: payments
description: User-friendly payment provider icons.
---
## Installation
This part of Tabler is distributed as plugin. To enable it you should include `tabler-payments.css` or `tabler-payments.min.css` file to your page.
This part of Tabler is distributed as a plugin. To enable it you should include `tabler-payments.css` or `tabler-payments.min.css` file in your page.
You can also include plugin via CDN:
You can also include the plugin via CDN:
```html
<link rel="stylesheet" href="$TABLER_CDN/dist/css/tabler-payments.min.css">
@@ -135,6 +135,7 @@ Select an icon from the list of payment providers. Each icon comes in two color
{ "name": "Switch", "code": "switch" },
{ "name": "Tether", "code": "tether" },
{ "name": "Tpay", "code": "tpay" },
{ "name": "Troy", "code": "troy" },
{ "name": "True USD", "code": "true-usd" },
{ "name": "Ukash", "code": "ukash" },
{ "name": "UnionPay", "code": "unionpay" },

View File

@@ -8,9 +8,9 @@ description: Connect users to your social profiles.
## Installation
This part of Tabler is distributed as plugin. To enable it you should include `tabler-socials.css` or `tabler-socials.min.css` file to your page.
This part of Tabler is distributed as a plugin. To enable it you should include `tabler-socials.css` or `tabler-socials.min.css` file in your page.
You can also include plugin via CDN:
You can also include the plugin via CDN:
```html
<link rel="stylesheet" href="$TABLER_CDN/dist/css/tabler-socials.min.css">
@@ -18,7 +18,7 @@ You can also include plugin via CDN:
## Social icons
To create a social icon, add the `social` class to a component and choose the country whose flag you want to use.
To create a social icon, add the `social` class to a component and also add the class for the specific social app whose icon you want to use.
```html example centered separated plugins="socials"
<span class="social social-app-facebook"></span>

View File

@@ -9,7 +9,7 @@ Margin utilities allow you to control the space between elements, providing flex
### Margin size
In table below you can see the available margin sizes.
In the table below you can see the available margin sizes.
Name|Value
-|-
@@ -205,7 +205,7 @@ Use the `my-*` utilities to control the vertical margin of an element. Vertical
## Horizontal centering
Additionally, Tabler also includes an `.mx-auto` class for horizontally centering fixed-width block level contentthat is, content that has `display: block` and a width setby setting the horizontal margins to `auto`.
Additionally, Tabler also includes an `.mx-auto` class for horizontally centering fixed-width block level contentthat is, content that has `display: block` and a width setby setting the horizontal margins to `auto`.
```html
<div class="mx-auto">...</div>

View File

@@ -3,7 +3,7 @@ title: Visually hidden
summary: Use these helpers to visually hide elements but keep them accessible to assistive technologies.
---
Visually hide an element while still allowing it to be exposed to assistive technologies (such as screen readers) with `.visually-hidden`. Use `.visually-hidden-focusable` to visually hide an element by default, but to display it when it's focused (e.g. by a keyboard-only user). `.visually-hidden-focusable` can also be applied to a containerthanks to `:focus-within`, the container will be displayed when any child element of the container receives focus.
Visually hide an element while still allowing it to be exposed to assistive technologies (such as screen readers) with `.visually-hidden`. Use `.visually-hidden-focusable` to visually hide an element by default, but to display it when it's focused (e.g. by a keyboard-only user). `.visually-hidden-focusable` can also be applied to a container thanks to `:focus-within`, the container will be displayed when any child element of the container receives focus.
```html
<h2 class="visually-hidden">Title for screen readers</h2>

View File

@@ -9,7 +9,8 @@
"bundlewatch": "turbo bundlewatch",
"version": "changeset version",
"publish": "changeset publish",
"reformat-mdx": "node build/reformat-mdx.mjs"
"reformat-mdx": "node build/reformat-mdx.mjs",
"start": "pnpm dev"
},
"packageManager": "pnpm@9.15.4",
"devDependencies": {
@@ -22,18 +23,20 @@
"autoprefixer": "^10.4.20",
"bundlewatch": "^0.4.0",
"clean-css-cli": "^5.6.3",
"concurrently": "^9.1.2",
"cross-env": "^7.0.3",
"glob": "^11.0.1",
"htmlfy": "^0.6.0",
"js-beautify": "^1.15.1",
"nodemon": "^3.1.9",
"pnpm": "9.15.4",
"postcss": "^8.5.1",
"postcss-cli": "^11.0.0",
"prettier": "^3.4.2",
"rimraf": "^6.0.1",
"rollup": "4.34.4",
"rtlcss": "^4.3.0",
"sass": "1.71.0",
"shx": "^0.3.4",
"terser": "^5.38.1",
"turbo": "^2.4.0"
}

101
pnpm-lock.yaml generated
View File

@@ -35,12 +35,18 @@ importers:
clean-css-cli:
specifier: ^5.6.3
version: 5.6.3
concurrently:
specifier: ^9.1.2
version: 9.1.2
cross-env:
specifier: ^7.0.3
version: 7.0.3
glob:
specifier: ^11.0.1
version: 11.0.1
htmlfy:
specifier: ^0.6.0
version: 0.6.0
js-beautify:
specifier: ^1.15.1
version: 1.15.1
@@ -59,9 +65,6 @@ importers:
prettier:
specifier: ^3.4.2
version: 3.4.2
rimraf:
specifier: ^6.0.1
version: 6.0.1
rollup:
specifier: 4.34.4
version: 4.34.4
@@ -71,6 +74,9 @@ importers:
sass:
specifier: 1.71.0
version: 1.71.0
shx:
specifier: ^0.3.4
version: 0.3.4
terser:
specifier: ^5.38.1
version: 5.38.1
@@ -1532,6 +1538,20 @@ packages:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
/concurrently@9.1.2:
resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==}
engines: {node: '>=18'}
hasBin: true
dependencies:
chalk: 4.1.2
lodash: 4.17.21
rxjs: 7.8.1
shell-quote: 1.8.2
supports-color: 8.1.1
tree-kill: 1.2.2
yargs: 17.7.2
dev: true
/config-chain@1.1.13:
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
dependencies:
@@ -2194,6 +2214,10 @@ packages:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
dev: true
/htmlfy@0.6.0:
resolution: {integrity: sha512-EV1RNjYuG6xIxwA8zDjAUQVeS/SsPE0nhFsdjM8ALopS22ZRAcePocdrhKaaV26PYiTkUrKplJuSZkGRN6Y0Rg==}
dev: true
/htmlparser2@7.2.0:
resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==}
dependencies:
@@ -2287,6 +2311,11 @@ packages:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
dev: true
/interpret@1.4.0:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: '>= 0.10'}
dev: true
/is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
dev: true
@@ -2581,6 +2610,10 @@ packages:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
dev: true
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
/lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
dev: true
@@ -3220,6 +3253,13 @@ packages:
picomatch: 2.3.1
dev: true
/rechoir@0.6.2:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
dependencies:
resolve: 1.22.10
dev: true
/regenerator-runtime@0.14.1:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
@@ -3282,15 +3322,6 @@ packages:
glob: 10.4.5
dev: true
/rimraf@6.0.1:
resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
engines: {node: 20 || >=22}
hasBin: true
dependencies:
glob: 11.0.1
package-json-from-dist: 1.0.1
dev: true
/rollup@4.34.4:
resolution: {integrity: sha512-spF66xoyD7rz3o08sHP7wogp1gZ6itSq22SGa/IZTcUDXDlOyrShwMwkVSB+BUxFRZZCUYqdb3KWDEOMVQZxuw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -3337,6 +3368,12 @@ packages:
queue-microtask: 1.2.3
dev: true
/rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
dependencies:
tslib: 2.8.1
dev: true
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
@@ -3419,6 +3456,30 @@ packages:
engines: {node: '>=8'}
dev: true
/shell-quote@1.8.2:
resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
engines: {node: '>= 0.4'}
dev: true
/shelljs@0.8.5:
resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
engines: {node: '>=4'}
hasBin: true
dependencies:
glob: 7.2.3
interpret: 1.4.0
rechoir: 0.6.2
dev: true
/shx@0.3.4:
resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==}
engines: {node: '>=6'}
hasBin: true
dependencies:
minimist: 1.2.8
shelljs: 0.8.5
dev: true
/signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@@ -3600,6 +3661,13 @@ packages:
has-flag: 4.0.0
dev: true
/supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
dev: true
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -3672,6 +3740,15 @@ packages:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: true
/tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
dev: true
/tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
dev: true
/tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
dependencies:

View File

@@ -590,14 +590,16 @@ export default function (eleventyConfig) {
/**
* Transforms
*/
function prettifyHTML(content, outputPath) {
return outputPath.endsWith('.html')
? content
.replace(/\/\/ @formatter:(on|off)\n+/gm, '')
// remove empty lines
.replace(/^\s*[\r\n]/gm, '')
: content
}
if (environment !== "development") {
function prettifyHTML(content, outputPath) {
return outputPath.endsWith('.html')
? content
.replace(/\/\/ @formatter:(on|off)\n+/gm, '')
// remove empty lines
.replace(/^\s*[\r\n]/gm, '')
: content
}
eleventyConfig.addTransform('htmlformat', prettifyHTML)
eleventyConfig.addTransform('htmlformat', prettifyHTML)
}
};

View File

@@ -4,21 +4,23 @@
"scripts": {
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run html",
"dev": "pnpm run clean && pnpm run watch",
"watch": "pnpm run watch-html & pnpm run watch-css & pnpm run watch-js",
"watch": "concurrently \"pnpm run watch-html\" \"pnpm run watch-css\" \"pnpm run watch-js\"",
"watch-html": "cross-env NODE_ENV=development eleventy --serve --port=3000 --incremental",
"watch-js": "nodemon --watch js/ --ext js --exec 'pnpm run js'",
"watch-css": "nodemon --watch scss/ --ext scss --exec 'pnpm run css'",
"watch-js": "nodemon --watch js/ --ext js --exec \"pnpm run js\"",
"watch-css": "nodemon --watch scss/ --ext scss --exec \"pnpm run css\"",
"css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-minify",
"css-compile": "sass scss/:dist/preview/css/ --no-source-map --load-path=node_modules",
"css-prefix": "postcss --config build/postcss.config.mjs --replace 'dist/preview/css/*.css' '!dist/preview/css/*.rtl*.css' '!dist/preview/css/*.min.css'",
"css-minify": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/preview/css/ --batch --batch-suffix '.min' 'dist/preview/css/*.css' '!dist/preview/css/*.min.css' '!dist/preview/css/*rtl*.css'",
"css-prefix": "postcss --config build/postcss.config.mjs --replace \"dist/preview/css/*.css\" \"!dist/preview/css/*.rtl*.css\" \"!dist/preview/css/*.min.css\"",
"css-minify": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/preview/css/ --batch --batch-suffix \".min\" \"dist/preview/css/*.css\" \"!dist/preview/css/*.min.css\" \"!dist/preview/css/*rtl*.css\"",
"js": "pnpm run js-compile && pnpm run js-minify",
"js-compile": "rollup --config build/rollup.config.mjs --sourcemap",
"js-minify": "pnpm run js-minify-demo && pnpm run js-minify-theme",
"js-minify-demo": "terser --compress passes=2 --mangle --comments '/^!/' --source-map 'content=dist/preview/js/demo.js.map,includeSources,url=demo.min.js.map' --output dist/preview/js/demo.min.js dist/preview/js/demo.js",
"js-minify-theme": "terser --compress passes=2 --mangle --comments '/^!/' --source-map 'content=dist/preview/js/demo-theme.js.map,includeSources,url=demo-theme.min.js.map' --output dist/preview/js/demo-theme.min.js dist/preview/js/demo-theme.js",
"clean": "rimraf dist demo",
"html": "eleventy",
"js-minify-demo": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/preview/js/demo.js.map,includeSources,url=demo.min.js.map\" --output dist/preview/js/demo.min.js dist/preview/js/demo.js",
"js-minify-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/preview/js/demo-theme.js.map,includeSources,url=demo-theme.min.js.map\" --output dist/preview/js/demo-theme.min.js dist/preview/js/demo-theme.js",
"clean": "shx rm -rf dist demo",
"html": "pnpm run html-build && pnpm run html-prettify",
"html-build": "eleventy",
"html-prettify": "prettier --write \"dist/**/*.html\"",
"svg-optimize": "svgo -f svg/brand --pretty",
"unused-files": "node build/unused-files.mjs",
"download-images": "node build/download-images.mjs",
@@ -55,5 +57,10 @@
"imageoptim-cli": "^3.1.9",
"@11ty/eleventy": "^3.0.0",
"@repo/banner": "workspace:*"
},
"prettier": {
"tabWidth": 2,
"useTabs": false,
"printWidth": 160
}
}

View File

@@ -96,14 +96,6 @@
"title": "Carousel",
"url": "carousel.html"
},
"charts": {
"url": "charts.html",
"title": "Charts"
},
"colorpicker": {
"url": "colorpicker.html",
"title": "Color picker"
},
"colors": {
"url": "colors.html",
"title": "Colors"
@@ -112,18 +104,10 @@
"url": "datagrid.html",
"title": "Data grid"
},
"datatables": {
"url": "datatables.html",
"title": "Datatables"
},
"dropdowns": {
"url": "dropdowns.html",
"title": "Dropdowns"
},
"dropzone": {
"title": "Dropzone",
"url": "dropzone.html"
},
"error": {
"title": "Error pages",
"children": {
@@ -141,18 +125,6 @@
}
}
},
"flags": {
"title": "Flags",
"url": "flags.html"
},
"plyr": {
"title": "Inline player",
"url": "inline-player.html"
},
"lightbox": {
"title": "Lightbox",
"url": "lightbox.html"
},
"lists": {
"title": "Lists",
"url": "lists.html"
@@ -161,18 +133,6 @@
"url": "modals.html",
"title": "Modal"
},
"maps": {
"url": "maps.html",
"title": "Map"
},
"map-fullsize": {
"url": "map-fullsize.html",
"title": "Map fullsize"
},
"maps-vector": {
"url": "maps-vector.html",
"title": "Map vector"
},
"markdown": {
"title": "Markdown",
"url": "markdown.html"
@@ -198,6 +158,11 @@
"url": "segmented-control.html",
"badge": "New"
},
"scroll-spy": {
"title": "Scroll spy",
"url": "scroll-spy.html",
"badge": "New"
},
"social": {
"title": "Social icons",
"url": "social-icons.html"
@@ -222,10 +187,6 @@
"url": "tags.html",
"title": "Tags"
},
"tinymce": {
"title": "TinyMCE",
"url": "tinymce.html"
},
"toasts": {
"title": "Toasts",
"url": "toasts.html"
@@ -299,10 +260,6 @@
"title": "Page loader",
"url": "page-loader.html"
},
"payment-providers": {
"title": "Payment providers",
"url": "payment-providers.html"
},
"photogrid": {
"title": "Photogrid",
"url": "photogrid.html"
@@ -408,20 +365,77 @@
}
}
},
"icons": {
"title": "%ICONS_COUNT% icons",
"icon": "ghost",
"url": "icons.html"
"plugins": {
"title": "Plugins",
"icon": "puzzle",
"children": {
"charts": {
"url": "charts.html",
"title": "Charts"
},
"colorpicker": {
"url": "colorpicker.html",
"title": "Color picker"
},
"datatables": {
"url": "datatables.html",
"title": "Datatables"
},
"dropzone": {
"title": "Dropzone",
"url": "dropzone.html"
},
"plyr": {
"title": "Inline player",
"url": "inline-player.html"
},
"lightbox": {
"title": "Lightbox",
"url": "lightbox.html"
},
"maps": {
"url": "maps.html",
"title": "Map"
},
"map-fullsize": {
"url": "map-fullsize.html",
"title": "Map fullsize"
},
"maps-vector": {
"url": "maps-vector.html",
"title": "Map vector"
},
"tinymce": {
"title": "TinyMCE",
"url": "tinymce.html"
}
}
},
"emails": {
"title": "Emails",
"icon": "mail-opened",
"url": "emails.html"
},
"illustrations": {
"title": "Illustrations",
"icon": "brand-figma",
"url": "illustrations.html"
"addons": {
"title": "Addons",
"icon": "plus",
"children": {
"icons": {
"title": "Icons",
"url": "icons.html"
},
"emails": {
"title": "Emails",
"url": "emails.html"
},
"flags": {
"title": "Flags",
"url": "flags.html"
},
"illustrations": {
"title": "Illustrations",
"url": "illustrations.html"
},
"payment-providers": {
"title": "Payment providers",
"url": "payment-providers.html"
}
}
},
"help": {
"title": "Help",

View File

@@ -371,6 +371,10 @@
"name": "Tpay",
"logo": "tpay"
},
{
"name": "Troy",
"logo": "troy"
},
{
"name": "True USD",
"logo": "true-usd"

View File

@@ -13,5 +13,5 @@
</div>
</div>
</div>
{% include "ui/chart.html" chart-id="revenue-bg" size="sm" %}
{% include "ui/chart.html" chart-id="revenue-bg" size="sm" class="rounded-bottom" %}
</div>

View File

@@ -10,15 +10,15 @@
</tr>
</thead>
<tbody>
{% for page in pages %}
{% for url in urls %}
<tr>
<td>
<div class="progressbg">
{% include "ui/progress.html" value=page.bounce class="progressbg-progress" color="primary-lt" %}
<div class="progressbg-text">{{ page.uri }}</div>
{% include "ui/progress.html" value=url.bounce class="progressbg-progress" color="primary-lt" %}
<div class="progressbg-text">{{ url.uri }}</div>
</div>
</td>
<td class="w-1 fw-bold text-end">{{ page.visitors }}</td>
<td class="w-1 fw-bold text-end">{{ url.visitors }}</td>
</tr>
{% endfor %}
</tbody>

View File

@@ -1,7 +1,7 @@
{% assign person-id = include.person-id | default: 0 %}
{% assign person = people[person-id] %}
<a class="card card-link" href="#">
<div class="card-cover card-cover-blurred text-center{% if include.blurred %} card-cover-blurred{% endif %}" style="background-image: url({% include "ui/photo.html" id=person-id %})">
<div class="card-cover card-cover-blurred text-center{% if include.blurred %} card-cover-blurred{% endif %}" style="background-image: url({{ page | relative }}/static/photos/{{ photos[person-id].file }})">
{% include "ui/avatar.html" size="xl" person=person thumb=true rounded=true %}
</div>
<div class="card-body text-center">

View File

@@ -1,10 +1,12 @@
<!-- CSS files -->
{% if site.useIconfont %}
<!-- BEGIN ICONFONT STYLES -->
<link href="https://www.unpkg.com/@tabler/icons-webfont@latest/dist/tabler-icons.min.css" rel="stylesheet" />
<!-- END ICON FONT STYLES -->
{% endif %}
{% if page-libs %}
<!-- BEGIN PAGE LEVEL STYLES -->
{% for lib in libs.css %}
{% if page-libs contains lib[0] %}
{% for file in lib[1] %}
@@ -12,12 +14,19 @@
{% endfor %}
{% endif %}
{% endfor %}
<!-- END PAGE LEVEL STYLES -->
{% endif %}
<!-- BEGIN GLOBAL MANDATORY STYLES -->
<link href="{{ page | relative }}/dist/css/tabler{% if layout-rtl %}.rtl{% endif %}{% if environment != 'development' %}.min{% endif %}.css{% if environment != 'development' %}?{{ 'now' | date: '%s' }}{% endif %}" rel="stylesheet"/>
<!-- END GLOBAL MANDATORY STYLES -->
<!-- BEGIN PLUGINS STYLES -->
{% for plugin in site.tablerCssPlugins %}
<link href="{{ page | relative }}/dist/css/{{ plugin }}{% if layout-rtl %}.rtl{% endif %}{% if environment != 'development' %}.min{% endif %}.css{% if environment != 'development' %}?{{ 'now' | date: '%s' }}{% endif %}" rel="stylesheet"/>
{% endfor %}
<!-- END PLUGINS STYLES -->
<link href="{{ page | relative }}/preview/css/demo{% if layout-rtl %}.rtl{% endif %}{% if environment != 'development' %}.min{% endif %}.css{% if environment != 'development' %}?{{ 'now' | date: '%s' }}{% endif %}" rel="stylesheet"/>
<!-- BEGIN DEMO STYLES -->
<link href="{{ page | relative }}/preview/css/demo{% if layout-rtl %}.rtl{% endif %}{% if environment != 'development' %}.min{% endif %}.css{% if environment != 'development' %}?{{ 'now' | date: '%s' }}{% endif %}" rel="stylesheet"/>
<!-- END DEMO STYLES -->

Some files were not shown because too many files have changed in this diff Show More