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

Compare commits

...

94 Commits

Author SHA1 Message Date
github-actions[bot]
6d0271ad57 chore: update versions (#2187)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-01 14:53:46 +01:00
Paweł Kuna
f29c911032 Fix Documentation structure (#2186) 2025-03-01 14:50:35 +01:00
BG-Software
01ee740535 Documentation for Tabler Emails (#2163)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-03-01 14:44:16 +01:00
codecalm
7d5d9bc847 chore: mark banner package as private 2025-03-01 14:30:41 +01:00
codecalm
776a85cf1a chore: remove obsolete changeset files for layout and styling updates 2025-03-01 14:25:42 +01:00
github-actions[bot]
ac10f55405 chore: update versions (#2131)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-01 14:19:38 +01:00
codecalm
d0f45a41f8 update changes pririties 2025-03-01 14:08:28 +01:00
codecalm
16a42ba330 Fix signature component with styling and update canvas dimensions 2025-03-01 13:46:18 +01:00
codecalm
f7d5b6a05e Add Playwright configuration and visual regression tests; refactor SCSS files and update component naming 2025-03-01 13:03:42 +01:00
Paweł Kuna
4376968bca add Signature Pad feature (#2183)
Co-authored-by: ethancrawford <ethan_jc@hotmail.com>
2025-03-01 12:36:41 +01:00
Paweł Kuna
dee2b8ad64 Replace Playwright workflow with Argos workflow for testing (#2185) 2025-03-01 12:27:51 +01:00
BG-Software
2c9a4dfb37 Decrease padding of form-control input in 2-step-verification-code (#2181) 2025-02-28 10:19:37 +01:00
Paweł Kuna
e46fec5050 Update twelve-shirts-mix.md 2025-02-28 00:11:53 +01:00
Paweł Kuna
f3c409ffc2 Refactor alert component styles and markup, remove Bootstrap styles (#2141) 2025-02-28 00:04:50 +01:00
codecalm
309ff40a48 Update package versions in package.json 2025-02-26 19:37:25 +01:00
codecalm
eea2d38f39 Remove unused dependencies from pnpm-lock.yaml 2025-02-26 19:33:40 +01:00
codecalm
876bec9db3 Remove console log from HTML formatting in reformat-mdx script 2025-02-26 19:22:41 +01:00
codecalm
f06cce0300 Clean up HTML syntax and remove unused dependencies in documentation and package.json 2025-02-26 19:20:37 +01:00
codecalm
e1931f8c37 Refactor accordion component styles and markup, remove preview dependency 2025-02-26 18:55:53 +01:00
Paweł Kuna
c240b5ad21 Refactor accordion component styles and markup, remove Bootstrap styles (#2139) 2025-02-26 18:53:01 +01:00
codecalm
baafe08d6e Add condition to skip tests for draft pull requests in Playwright workflow 2025-02-26 18:38:27 +01:00
codecalm
cba487f5b7 build fix 2025-02-19 03:19:27 +01:00
Paweł Kuna
edbaa1eddd Add selectable table functionality with active background color (#2171) 2025-02-19 03:16:53 +01:00
Paweł Kuna
378fba89f5 Refactor badge styles, remove Bootstrap styles (#2169) 2025-02-19 02:20:25 +01:00
codecalm
b0a62b7cf5 Add threshold option to argosScreenshot for improved visual comparison 2025-02-19 02:09:48 +01:00
codecalm
1415820cb1 Fix screenshot filename in visual regression tests to use the correct HTML file name 2025-02-19 01:49:58 +01:00
codecalm
81a8738823 Remove limit on visual regression tests to include all HTML files for comprehensive comparison 2025-02-19 01:45:59 +01:00
codecalm
417d0bc444 Fix Playwright version retrieval in workflow to use devDependencies from package.json 2025-02-19 01:31:54 +01:00
codecalm
22e10d4dba Refactor Playwright workflow by removing unnecessary artifact upload step 2025-02-19 01:22:17 +01:00
codecalm
57f6219f7c Integrate Argos CI for visual regression testing and streamline screenshot comparison 2025-02-19 01:18:22 +01:00
codecalm
fbe3680142 Limit visual regression tests to the first 10 HTML files for improved performance 2025-02-19 01:14:53 +01:00
codecalm
c2b446c209 Enhance Playwright workflow with version retrieval and caching for improved performance 2025-02-19 01:13:48 +01:00
codecalm
09844ab64b Remove snapshot update flag from Playwright test command 2025-02-19 01:09:11 +01:00
codecalm
cea1c87c21 Update Playwright test command to include snapshot updates 2025-02-19 01:06:31 +01:00
Paweł Kuna
a2640e2147 Add Playwright configuration and visual regression tests (#2170) 2025-02-19 00:58:10 +01:00
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
codecalm
06c3b5dd65 Update pnpm to version 9.15.4 in package.json and pnpm-lock.yaml 2025-02-11 20:00:05 +01:00
codecalm
cac2606016 Use cross-env for setting NODE_ENV in watch-html script for better compatibility 2025-02-11 19:52:00 +01:00
codecalm
bc3a8360a7 Add pnpm as a dependency in package.json and update pnpm-lock.yaml 2025-02-11 19:50:52 +01:00
codecalm
6b3bf15c4c Replace 'rm -rf' with 'rimraf' for cross-platform compatibility in clean scripts 2025-02-11 19:15:43 +01:00
Paweł Kuna
76f5de44e7 Update timeline card layout and profile header styles (#2140)
* Update timeline card layout and profile header styles

* Create large-walls-wave.md
2025-02-08 14:14:38 +01:00
Paweł Kuna
24b944cbdc Remove box-shadow from avatar styles for a cleaner appearance (#2137)
* Remove box-shadow from avatar styles for a cleaner appearance

* Create ten-houses-punch.md
2025-02-08 13:58:39 +01:00
BG-Software
687267de38 Fix overflow of label in a floating-input (#2072)
* Fix overflow of label in a floating-input

Temporary fix for the bug in twbs/bootstrap v5.3.3.

* Create dry-rice-march.md

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-02-08 13:57:11 +01:00
Paweł Kuna
ea144622a1 Add documentation for segmented control component (#2134)
* Add documentation for segmented control component

* Enhance documentation for segmented control component with additional examples and usage guidelines

* Create stale-pianos-crash.md

* Add changeset for @tabler/core minor update
2025-02-06 21:59:04 +01:00
codecalm
52fa8658ea Update package dependencies to latest versions 2025-02-06 21:28:25 +01:00
codecalm
ffa095f981 Update asset paths from 'core' to 'dist' in configuration and layout files 2025-02-06 18:45:17 +01:00
codecalm
6b7a761fd4 Update robots.txt handling and improve sitemap URL generation 2025-02-06 18:24:17 +01:00
codecalm
3b85669999 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-06 18:24:00 +01:00
codecalm
ffaf92b67b Update changeset for segmented control component 2025-02-06 18:23:58 +01:00
falsulaiman
78383ef568 Update _nav.scss (#2133)
* Update _nav.scss

### Issue: Dash (`-`) causing W3C validator error and CSS issues

**Problem**:
The use of a dash (`-`) in certain areas is triggering errors in the W3C validator and affecting the proper functioning of CSS.

1. **HTML Issue**: The dash might be incorrectly placed in attribute names or element IDs, causing validation errors.
   - Example: `data-name` is fine, but ensure it's used correctly and within the valid context.

2. **CSS Issue**: If the dash is used improperly in class or ID names, it can cause selector issues in CSS.
   - Example: `.my-class-name` is correct, but make sure that the class is correctly applied to the element and styled properly in CSS.

**Proposed Fix**:
- Ensure that any attribute or class names are formatted correctly. For example, `data-name` is valid, but check for any spelling mistakes or misplaced dashes.
- In CSS, ensure proper selector syntax like:
   ```css
   .my-class-name {
       /* Styles here */
   }

* Fix margin calculation for nav links in _nav.scss

* Create red-pens-punch.md

---------

Co-authored-by: codecalm <codecalm@gmail.com>
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com>
2025-02-06 18:23:13 +01:00
Paweł Kuna
cb278c762d Add segmented control component (#2087)
* Add segmented control component and update related files

* Implement segmented navigation component and update related styles

* Create grumpy-flowers-act.md

* Refactor .gitignore and move playground pages to preview directory

* Enhance segmented navigation with hover state and class support

* Refactor segmented control layout for improved responsiveness and alignment
2025-02-06 18:02:46 +01:00
codecalm
117fbbb2d5 Update .gitignore to include preview directory files 2025-02-06 00:07:17 +01:00
codecalm
60699ed9c3 Remove "New" badges from menu items in menu.json 2025-02-05 23:06:31 +01:00
codecalm
54f0802f72 Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-05 22:52:38 +01:00
codecalm
c2afa77258 update changesets 2025-02-05 22:52:37 +01:00
BG-Software
c079e646ef Improve documentation for buttons (#2129)
* Fix background-image of buttons with avatars

* Remove duplicated code blocks in buttons docs

+ Fix links to tabler.io/icons.
+ Replace Twitter with X on icon button.

* Create silly-lobsters-move.md
2025-02-05 22:51:34 +01:00
codecalm
1394c3420c Merge branch 'main' of https://github.com/tabler/tabler into dev 2025-02-05 22:51:16 +01:00
codecalm
92275670f5 Add styles for tom-select and nouislider to libs.json 2025-02-05 22:50:23 +01:00
codecalm
37af5425ff Enhance autosize and input mask initialization with conditional checks; update Eleventy config to set server passthrough copy behavior 2025-02-05 22:19:18 +01:00
codecalm
d40dc60cd8 Update environment variable handling in Eleventy configuration 2025-02-05 22:12:30 +01:00
BG-Software
11f4487286 Use the full license agreement for illustrations in docs (#2128)
* Use the full license agreement for illustrations in docs

* Create short-wombats-rhyme.md
2025-02-05 22:07:27 +01:00
codecalm
0689fa2abf Merge branch 'dev' of https://github.com/tabler/tabler into dev 2025-02-05 22:05:42 +01:00
codecalm
4268994034 Change release workflow trigger branch from main to dev 2025-02-05 22:05:40 +01:00
Paweł Kuna
8dffb4e345 Update robots.txt handling and improve sitemap URL generation (#2130)
* Update robots.txt handling and improve sitemap URL generation

* Add dynamic page data handling and update sitemap generation

* Remove debug output from sitemap generation

* Create thin-clouds-glow.md
2025-02-05 22:04:57 +01:00
codecalm
bc5951b50d Add build step to bundlewatch workflow 2025-02-03 23:04:41 +01:00
294 changed files with 10811 additions and 4793 deletions

63
.build/reformat-mdx.mjs Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env node
'use strict'
import { readFileSync, writeFileSync } from 'node:fs';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url'
import { sync } from 'glob';
import * as prettier from "prettier";
const __dirname = dirname(fileURLToPath(import.meta.url))
const docs = sync(join(__dirname, '..', 'docs', '**', '*.mdx'))
async function formatHTML(htmlString) {
try {
const formattedHtml = await prettier.format(htmlString, {
parser: "html",
printWidth: 100,
});
return formattedHtml;
} catch (error) {
console.error("Error formatting HTML:", error);
return htmlString; // Return original in case of an error
}
}
async function replaceAsync(str, regex, asyncFn) {
const matches = [...str.matchAll(regex)];
const replacements = await Promise.all(
matches.map(async (match) => asyncFn(...match))
);
let result = str;
matches.forEach((match, i) => {
result = result.replace(match[0], replacements[i]);
});
return result;
}
for (const file of docs) {
const oldContent = readFileSync(file, 'utf8')
// get codeblocks from markdown
const content = await replaceAsync(oldContent, /(```([a-z0-9]+).*?\n)(.*?)(```)/gs, async (m, m1, m2, m3, m4) => {
if (m2 === 'html') {
m3 = await formatHTML(m3);
// remove empty lines
m3 = m3.replace(/^\s*[\r\n]/gm, '');
return m1 + m3.trim() + "\n" + m4;
}
return m.trim();
})
if (content !== oldContent) {
writeFileSync(file, content, 'utf8')
console.log(`Reformatted ${file}`)
}
}

View File

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

View File

@@ -1,4 +0,0 @@
---
---
Refactor bundlewatch workflow to use Turbo

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Fix size of `apexcharts` tooltip marker

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Refactored the project into a monorepo, removed Gulp, and introduced a new, more efficient build process.

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Fix vertical alignment in single page and error layouts

66
.github/workflows/argos.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
name: Argos Tests
on:
push:
branches:
- dev
pull_request:
paths:
- 'preview/**/*.js'
- 'preview/**/*.html'
- 'preview/**/*.scss'
- 'core/**/*.js'
- 'core/**/*.scss'
env:
NODE: 20
permissions:
contents: read
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE }}"
- name: Install PNPM
uses: pnpm/action-setup@v4
- name: Get installed Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
- name: Cache playwright binaries
uses: actions/cache@v4
id: playwright-cache
with:
path: |
~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: Install pnpm dependencies
run: pnpm install
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Run Playwright tests
run: pnpm run playwright

View File

@@ -3,7 +3,7 @@ name: Release
on:
push:
branches:
- main
- dev
permissions:
contents: read

8
.gitignore vendored
View File

@@ -19,9 +19,11 @@ node_modules/
/svg-tmp/
/components/
/percy.sh
/src/pages/playground.html
/src/pages/playground-*.html
/src/pages/features.html
/preview/pages/playground.html
/preview/pages/screenshot.html
/preview/pages/screenshot-*.html
/preview/pages/playground-*.html
/preview/pages/features.html
.pnp.loader.mjs
.pnp.cjs

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!

View File

@@ -1,38 +0,0 @@
#!/usr/bin/env node
'use strict'
import { readFileSync, writeFileSync } from 'node:fs';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url'
import { sync } from 'glob';
import beautify from 'js-beautify';
const __dirname = dirname(fileURLToPath(import.meta.url))
const docs = sync(join(__dirname, '..', 'docs', '**', '*.mdx'))
docs.forEach((file, i) => {
const oldContent = readFileSync(file, 'utf8')
// get codeblocks from markdown
const content = oldContent.replace(/(```([a-z0-9]+).*?\n)(.*?)(```)/gs, (m, m1, m2, m3, m4) => {
if (m2 === 'html') {
// m3 = beautify.default.html(m3, {
// "indent_size": 2,
// "indent_char": " ",
// }).trim();
// remove empty lines
m3 = m3.replace(/^\s*[\r\n]/gm, '');
return m1 + m3 + "\n" + m4;
}
return m
})
if (content !== oldContent) {
writeFileSync(file, content, 'utf8')
console.log(`Reformatted ${file}`)
}
})

39
core/CHANGELOG.md Normal file
View File

@@ -0,0 +1,39 @@
# @tabler/core
## 1.1.1
### Patch Changes
- f29c911: Fix Documentation structure
## 1.1.0
### Minor Changes
- a2640e2: Add Playwright configuration and visual regression tests
- d3ae77c: Enable `scrollSpy` in `countup` module
- bd3d959: Refactor SCSS files to replace divide function with calc
- cb278c7: Add Segmented Control component
- b47725d: Add new text features page with mentions: user, color and app.
- b4b4d1a: Add Scroll Spy page
- 9cd5327: Update border radius variables for consistency across components
- 4376968: Add Signature Pad feature and signatures page
- f95f250: Update color utility classes and replace background colors in pricing table
- eaa7f81: Refactored the project into a monorepo, removed Gulp, and introduced a new, more efficient build process.
- ea14462: Add documentation for segmented control component
- 1edaff4: Add new payment provider (Troy)
- edbaa1e: Add selectable table functionality with active background color
- 378fba8: Refactor badge styles, remove Bootstrap styles
- f3c409f: Refactor alert component styles and markup, remove Bootstrap styles
- c240b5a: Refactor accordion component styles and markup, remove Bootstrap styles
### Patch Changes
- 687267d: Fix overflow of `label` in a `floating-input`
- 06b1dec: Fix size of `apexcharts` tooltip marker
- afd0700: Fix apexcharts heatmap example in docs
- 78383ef: Fix negative margins in `.navbar-bordered` variant
- 11f4487: Use the full license agreement for illustrations in docs
- b28ce9f: Fix vertical alignment in single page and error layouts
- 24b944c: Fix `.avatar-upload` double borders
- ca4ba14: Fixes navbar styles with new hover effects and color variables

View File

@@ -0,0 +1,14 @@
---
title: Tabler Emails
seoTitle: Tabler Emails - premium email templates
order: 4
description: Customizable email templates for over 90 clients and devices.
summary: Tabler Emails is a set of 80 eye-catching, customizable HTML templates. They are compatible with over 90 email clients and devices.
seoDescription: Tabler Emails is a collection of 80 premium, customizable HTML templates. They are compatible with over 90 email clients and devices.
---
# Tabler Emails
*Change below image!*
![Tabler Emails](/docs/cover-illustrations.png)

View File

@@ -0,0 +1,29 @@
---
title: Compiled templates
order: 2
seoTitle: Tabler Emails - How to use the compiled HTML email templates
description: Learn how to use the compiled HTML email templates from the Tabler Emails package.
summary: The compiled HTML files from the Tabler Emails package are ready to use in your email marketing campaigns. This guide explains how to use them effectively.
seoDescription: The compiled HTML files from the Tabler Emails package are ready to use in your email marketing campaigns. This guide explains how to use them effectively.
---
## Compiled version of the template
If you only want to change a content - text or images - of the email template, you can just use the compiled HTML files - `compiled.html`. They are ready to use, and you need only a basic knowledge of HTML to modify them.
## How to modify the compiled HTML files
1. Open the `compiled.html` file in your favorite code editor.
2. Find the content you want to change inside the `<body>` element.
3. Modify the content as needed:
* Change the text, which is mostly placed inside the `<p>` or `<h1>` tags.
* Change the images by replacing the `src` attribute of the `<img>` tag.
* Change the links by replacing the `href` attribute of the `<a>` tag.
* Remove the HTML elements you don't need, but only if you're sure that they are not necessary for the email template to work correctly.
4. If you changed the images, make sure to replace them in the `assets/` folder.
5. Remove all the images you don't use from `assets/` to reduce the size of the email template.
## How to use the compiled HTML files
After changing the templates as needed, you can use them in your email campaigns.
The `compiled.html` file with the `assets/` folder should be sent to your email marketing tool, like Mailchimp, SendGrid, or any other.

View File

@@ -0,0 +1,63 @@
---
title: Contents
order: 1
seoTitle: Tabler Emails - Content of the package
description: Content of the Tabler Emails package.
summary: The Tabler Emails package contains files which can be used by everyone, even without great knowledge of HTML.
seoDescription: todo
---
## Folder structure
Once you unzip the downloaded file, you will see the following structure:
```
tabler-emails/
├── emails/
| ├── absence/
| | ├── assets/
| | ├── compiled.html
| | ├── compiled-dark.html
| | ├── source.html
| | ├── source-dark.html
| | ├── screenshot.jpg
| | ├── screenshot-dark.jpg
| | ├── screenshot-mobile.jpg
| | └── screenshot-mobile-dark.jpg
| ├── access-token/
| ├── account-deleted/
| ├── .../
| ├── welcome/
| └── whishlist/
├── images/
| ├── chart-donuts/
| ├── icons/
| ├── illustrations/
| └── overlays/
├── license.txt
└── readme.html
```
## Understanding the file structure in Tabler Emails
The **Tabler Emails** package is organized into a clear and efficient folder structure to streamline the use of its assets. Below is a breakdown of its key directories:
### 1. Email Templates: `emails/`
This folder contains <EmailsCount /> email subfolders, each with a specific template. Each email folder contains the following files:
* Compiled HTML files for light and dark themes. Read more about its usage in the [Compiled HTML](/docs/emails/compiled-html) section.
* Source HTML files for light and dark themes. Find more information in the [Source HTML](/docs/emails/source-html) section.
* Screenshot images for desktop and mobile views.
* Assets folder with images used in the email template and the CSS file with styles
### 2. Images: `images/`
It contains 4 subfolders with images used across the different email templates:
* `chart-donuts/`: Images of donut charts with different fill.
* `icons/`: [Tabler Icons](/icons) used in the email templates, in PNG version.
* `illustrations/`: PNG versions of [Tabler Illustrations](/illustrations) for light and dark themes.
* `overlays/`: overlay images used in the email templates.
### 3. License: `license.txt`
This file contains the license information for the Tabler Emails package.
### 4. Readme: `readme.html`
This file with the main information about the Tabler Emails package. It contains a brief description of the package and instructions on how to use it.

View File

@@ -0,0 +1,9 @@
---
title: Introduction
seoTitle: Introduction to Tabler Emails
description: Base information about Tabler Emails package.
summary: Tabler Emails is a set of 80 eye-catching, customizable HTML templates. They are compatible with over 90 email clients and devices.
seoDescription: Tabler Emails is a collection of 80 premium, customizable HTML templates. They are compatible with over 90 email clients and devices.
---

View File

@@ -0,0 +1,26 @@
---
title: Source templates
order: 3
seoTitle: Tabler Emails - How to use the source HTML email templates
description: Learn how to use the source HTML email templates from the Tabler Emails package.
summary: The source HTML files from the Tabler Emails package needs a bit more work that the compiled ones. Learn how to use them.
seoDescription: The source HTML files from the Tabler Emails package needs a bit more work that the compiled ones. Learn how to use them.
---
## Source version of the template
If you want to make more advanced changes to the email template, you can use the source HTML files - `source.html` combined with the `theme.css` file. They are ready to use, but you need a basic knowledge of HTML and CSS to modify them.
## How to modify the source HTML files
1. Open the `source.html` file in your favorite code editor.
2. Open the `theme.css` file from `assets/`* directory in the same editor.
3. Change all the content and styles as needed.
4. Use a selected tool to inline the CSS styles into the HTML file. There are a lot of options, like:
* Online tools like [Juice](https://automattic.github.io/juice/) or [Mailchimp CSS Inliner Tool](https://templates.mailchimp.com/resources/inline-css/).
* NPM tools like [juice](https://www.npmjs.com/package/juice) or [inline-css](https://www.npmjs.com/package/inline-css).
5. Save the output HTML file.
## How to use the source HTML files
To use the modified HTML template send the output file with the `assets/` folder to your email marketing tool.

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">
@@ -29,7 +29,7 @@ import { IconHeart } from '@tabler/icons-svelte';
You can pass additional props to adjust the icon.
```html
```sveltehtml
<IconHeart size={48} stroke={1} />
```

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

@@ -30,9 +30,14 @@ or just [download from Github](https://github.com/tabler/tabler-icons/releases).
### CDN
```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@$ICONS_VERSION/dist/tabler-icons.min.css">
<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

@@ -29,7 +29,18 @@ You can paste the content of the icon file into your HTML code to display it on
```html
<a href="">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-disabled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.25" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon icon-tabler icon-tabler-disabled"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="1.25"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
...
</svg>
Click me
@@ -59,8 +70,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 +81,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.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,90 @@
---
title: Tabler Illustrations License
---
### Personal License
By purchasing Tabler Illustrations, you are granted an ongoing, non-exclusive license by codecalm.net to use Tabler Illustrations.
The license grants permission to one individual (the Licensee) to access and use the Tabler Illustrations.
You **can**:
* Use the Tabler Illustrations to create unlimited End Products.
* Modify the Tabler Illustrations to create derivative Tabler Illustrations. Those Tabler Illustrations are subject to this license.
* Use the Tabler Illustrations to create unlimited End Products for unlimited Clients.
* Use the Tabler Illustrations to create End Products where the End Product is sold to End Users.
You **cannot**:
* Use the Tabler Illustrations to create End Products that are designed to allow an End User to build their own End Products using the Tabler Illustrations or derivatives of the Tabler Illustrations.
* Re-distribute the Tabler Illustrations or derivatives of the Tabler Illustrations separately from an End Product, neither in code nor as design assets.
* Share your access to the Tabler Illustrations with any other individuals. You need a Team License for that to be allowed.
* Use the Tabler Illustrations to create End Products that are open source and freely available to End Users.
* Use the Tabler Illustrations to produce anything that may be deemed by codecalm.net, in their sole and absolute discretion, to be competitive or in conflict with the business of codecalm.net
#### Example usage
Examples of usage **allowed** by the license:* Creating a personal website by yourself.
* Creating a website or web application for a client that will be owned by that client.
* Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application.
* Creating a commercial self-hosted web application that is sold to end users for a one-time fee.
Examples of usage **not allowed** by the license:
* Creating a repository of your favorite Tabler Illustrations (or derivatives based on Tabler Illustrations) and publishing it publicly.
* Creating a UI library using Tabler Illustrations and making it available either for sale or for free.
* Converting a Tabler Illustrations to another framework and making it available either for sale or for free.
* Creating a Figma or Sketch file based on the Tabler Illustrations.
* Creating a "website builder" project where end users can build their own websites using illustrations included with or derived from Tabler Illustrations.
* Creating a theme, template, or project starter kit using the illustrations and making it available either for sale or for free.
* Creating a web application where the primary purpose is clearly not to simply re-distribute the illustrations (like a conference organization app that uses the illustrations for its UI for example) that is free and open source, where the source code is publicly available.
In simple terms, use Tabler Illustrations for anything you like as long as it doesn't compete with Tabler Illustrations.
### Team License
By purchasing Tabler Illustrations, you are granted an ongoing, non-exclusive license by codecalm.net to use Tabler Illustrations.
The license grants permission for up to 10 Employees and Contractors of the Licensee to access and use the Tabler Illustrations.
You **can**:
* Use the Tabler Illustrations to create unlimited End Products.
* Modify the Tabler Illustrations to create derivative Tabler Illustrations. Those Tabler Illustrations are subject to this license.
* Use the Tabler Illustrations to create unlimited End Products for unlimited Clients.
* Use the Tabler Illustrations to create End Products where the End Product is sold to End Users.
You **cannot**:
* Use the Tabler Illustrations to create End Products that are designed to allow an End User to build their own End Products using the Tabler Illustrations or derivatives of the Tabler Illustrations.
* Re-distribute the Tabler Illustrations or derivatives of the Tabler Illustrations separately from an End Product.
* Use the Tabler Illustrations to create End Products that are the property of any individual or entity other than the Licensee or Clients of the Licensee.
* Grant access to the Tabler Illustrations to individuals who are not an Employee or Contractor of the Licensee.
* Use the Tabler Illustrations to create End Products that are open source and freely available to End Users.
* Use the Tabler Illustrations to produce anything that may be deemed by codecalm.net, in their sole and absolute discretion, to be competitive or in conflict with the business of codecalm.net
#### Example usage
Examples of usage **allowed** by the license:
* Creating a website for your company.
* Creating a website or web application for a client that will be owned by that client.
* Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application.
* Creating a commercial self-hosted web application that is sold to end users for a one-time fee.
Examples of use **not allowed** by the license:
* Creating a repository of your favorite Tabler Illustrations (or derivatives based on Tabler Illustrations) and publishing it publicly.
* Creating a UI library using Tabler Illustrations and making it available either for sale or for free.
* Converting a Tabler Illustrations to another framework and making it available either for sale or for free.
* Creating a "website builder" project where end users can build their own websites using illustrations included with or derived from Tabler Illustrations.
* Creating a theme or template using the illustrations and making it available either for sale or for free.
* Creating any End Product that is not the sole property of either your company or a client of your company. For example your employees/contractors can't use your company Tabler Illustrations license to build their own websites or side projects.
* Giving someone access to Tabler Illustrations when they purchase a product from you. For example, you can't use a Team License as a way to give someone access to Tabler Illustrations when they purchase an online course from you.
* Selling access to your team account to people who don't work for you company.
---
In case of differences between above license agreements and the license agreements provided with the product, the license agreement provided with the product shall prevail.

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 866 B

After

Width:  |  Height:  |  Size: 866 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 168 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

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="Email Templates" href="/docs/emails" icon="mail"><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>

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,17 +32,20 @@ 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>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
<p>At vero eos et accusam et justo duo dolores et ea rebum.</p>
</div>
```
@@ -50,7 +53,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>
@@ -65,18 +68,17 @@ Use a variety of semantic text elements, depending of how you want to display pa
<mark>Highlighted</mark>
<s>Strikethrough</s>
<samp>Sample</samp>
Text <sub>Subscripted</sub>
Text <sup>Superscripted</sup>
Text <sub>Subscripted</sub> Text <sup>Superscripted</sup>
<time>20:00</time>
<u>Underline</u>
<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>
@@ -109,19 +111,15 @@ Here is an example of semantic text elements:
<div>
<samp>Sample</samp>
</div>
<div>Text <sub>Subscripted</sub>
</div>
<div>Text <sup>Superscripted</sup>
</div>
<div>Text <sub>Subscripted</sub></div>
<div>Text <sup>Superscripted</sup></div>
<div>
<time>20:00</time>
</div>
<div>
<u>Underline</u>
</div>
<div>
<var>x</var> = <var>y</var> + 2
</div>
<div><var>x</var> = <var>y</var> + 2</div>
```
@@ -132,9 +130,17 @@ Use the `hr` tag to represent a thematic break between paragraphs within one sec
```html example vertical centered columns={2}
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A atque ex excepturi fuga magnam nam reiciendis velit. Amet eius eos eveniet fuga in ipsa, ipsum voluptatum. Dolorem expedita quibusdam veniam?</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A atque ex excepturi fuga magnam nam
reiciendis velit. Amet eius eos eveniet fuga in ipsa, ipsum voluptatum. Dolorem expedita
quibusdam veniam?
</p>
<hr />
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A atque ex excepturi fuga magnam nam reiciendis velit. Amet eius eos eveniet fuga in ipsa, ipsum voluptatum. Dolorem expedita quibusdam veniam?</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A atque ex excepturi fuga magnam nam
reiciendis velit. Amet eius eos eveniet fuga in ipsa, ipsum voluptatum. Dolorem expedita
quibusdam veniam?
</p>
</div>
```
@@ -148,25 +154,29 @@ You can also add a label to a horizontal rule and align it as you see fit.
```html example vertical centered columns={2}
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
<div class="hr-text">
<span>Rule text</span>
</div>
<p>
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<div class="hr-text hr-text-center">
<span>Rule text</span>
</div>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
<div class="hr-text hr-text-end">
<span>Rule text</span>
</div>
<p>
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit amet.
</p>
```
@@ -262,9 +272,7 @@ Use the `.antialiased` utility to render text using subpixel antialiasing or use
Use the `<kbd>` to indicate input that is typically entered via keyboard.
```html example vertical centered
<div>
To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd>C</kbd>.
</div>
<div>To edit settings, press <kbd>ctrl</kbd> + <kbd>,</kbd> or <kbd>ctrl</kbd> + <kbd>C</kbd>.</div>
```
```html
@@ -273,14 +281,26 @@ 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">
<h1>Hello World</h1>
<p>Lorem ipsum<sup>[1]</sup> dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque. Sub<sub>script</sub> works as well!</p>
<p>
Lorem ipsum<sup>[1]</sup> dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus
ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut
vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque. Sub<sub
>script</sub
>
works as well!
</p>
<h2>Second level</h2>
<p>Curabitur accumsan turpis pharetra <strong>augue tincidunt</strong> blandit. Quisque condimentum maximus mi, sit amet commodo arcu rutrum id. Proin pretium urna vel cursus venenatis. Suspendisse potenti. Etiam mattis sem rhoncus lacus dapibus facilisis. Donec at dignissim dui. Ut et neque nisl.</p>
<p>
Curabitur accumsan turpis pharetra <strong>augue tincidunt</strong> blandit. Quisque condimentum
maximus mi, sit amet commodo arcu rutrum id. Proin pretium urna vel cursus venenatis.
Suspendisse potenti. Etiam mattis sem rhoncus lacus dapibus facilisis. Donec at dignissim dui.
Ut et neque nisl.
</p>
<ul>
<li>In fermentum leo eu lectus mollis, quis dictum mi aliquet.</li>
<li>Morbi eu nulla lobortis, lobortis est in, fringilla felis.</li>

View File

@@ -37,12 +37,14 @@ Alert classes affect the color of all the text inside an alert. Use another clas
Add a link to your alert message to redirect users to the details they need to complete or additional information they should read. Use `alert-link` class to style the link and match the text color.
```html example vertical background="surface" columns={2} centered height="120px"
<div class="alert alert-danger m-0">This is a danger alert — <a href="#" class="alert-link">check it out</a>!</div>
<div class="alert alert-danger m-0">
This is a danger alert — <a href="#" class="alert-link">check it out</a>!
</div>
```
## 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 +85,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">
@@ -155,7 +157,9 @@ Use `alert-icon` class for `<svg>` or `<i>`, when using webfont, to provide the
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 9v2m0 4v.01" />
<path d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75" />
<path
d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75"
/>
</svg>
</div>
<div>
@@ -201,10 +205,14 @@ Add an avatar to your alert modal to make it more personalized.
<div class="alert alert-success" role="alert">
<div class="d-flex">
<div>
<span class="avatar me-3" style="background-image: url(/static/samples/avatars/039m.jpg)"></span>
<span
class="avatar me-3"
style="background-image: url(/static/samples/avatars/039m.jpg)"
></span>
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
</div>
@@ -214,27 +222,36 @@ Add an avatar to your alert modal to make it more personalized.
<span class="avatar me-3">JL</span>
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
</div>
<div class="alert alert-warning" role="alert">
<div class="d-flex">
<div>
<span class="avatar me-3" style="background-image: url(/static/samples/avatars/035f.jpg)"></span>
<span
class="avatar me-3"
style="background-image: url(/static/samples/avatars/035f.jpg)"
></span>
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
</div>
<div class="alert alert-danger" role="alert">
<div class="d-flex">
<div>
<span class="avatar me-3" style="background-image: url(/static/samples/avatars/056f.jpg)"></span>
<span
class="avatar me-3"
style="background-image: url(/static/samples/avatars/056f.jpg)"
></span>
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
</div>
@@ -295,7 +312,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 +371,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">
@@ -374,7 +391,10 @@ You're not limited to the 4 default alert's colors. You can use any [base or soc
<div class="alert alert-instagram alert-dismissible alert-important" role="alert">
<div class="d-flex">
<div>
<span class="avatar me-3" style="background-image: url(/static/samples/avatars/035f.jpg)"></span>
<span
class="avatar me-3"
style="background-image: url(/static/samples/avatars/035f.jpg)"
></span>
</div>
<div>
<h4 class="alert-title">Sophia just added a new post on Instagram</h4>

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,25 +38,58 @@ 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">
<svg xmlns="http://www.w3.org/2000/svg" class="icon avatar-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon avatar-icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<circle cx="12" cy="7" r="4" />
<path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
</svg>
</span>
<span class="avatar">
<svg xmlns="http://www.w3.org/2000/svg" class="icon avatar-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon avatar-icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<line x1="12" y1="5" x2="12" y2="19" />
<line x1="5" y1="12" x2="19" y2="12" />
</svg>
</span>
<span class="avatar">
<svg xmlns="http://www.w3.org/2000/svg" class="icon avatar-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon avatar-icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<circle cx="9" cy="7" r="4" />
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
@@ -99,7 +132,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>
@@ -109,9 +142,7 @@ Add a status indicator to your avatar to show, for instance, if a users is onlin
<span class="avatar" style="background-image: url(/samples/avatars/022m.jpg)">
<span class="badge bg-success"></span>
</span>
<span class="avatar">
<span class="badge bg-warning"></span>SA
</span>
<span class="avatar"> <span class="badge bg-warning"></span>SA </span>
<span class="avatar" style="background-image: url(/samples/avatars/022m.jpg)">
<span class="badge bg-info"></span>
</span>
@@ -163,13 +194,34 @@ Make the list stack once a certain number of avatars is reached to make it look
```html example centered separated code
<div class="avatar-list avatar-list-stacked">
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/035m.jpg)"></span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/027f.jpg)"></span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/036f.jpg)"></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/035m.jpg)"
></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/027f.jpg)"
></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/036f.jpg)"
></span>
<span class="avatar avatar-sm rounded-circle">SA</span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/034f.jpg)"></span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/043f.jpg)"></span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/039f.jpg)"></span>
<span class="avatar avatar-sm rounded-circle" style="background-image: url(/samples/avatars/020m.jpg)"></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/034f.jpg)"
></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/043f.jpg)"
></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/039f.jpg)"
></span>
<span
class="avatar avatar-sm rounded-circle"
style="background-image: url(/samples/avatars/020m.jpg)"
></span>
</div>
```

View File

@@ -27,18 +27,12 @@ The default badges are square and come in the basic set of colors.
## Headings
```html example columns={1} height="20rem" centered
<h1>Example heading <span class="badge">New</span>
</h1>
<h2>Example heading <span class="badge">New</span>
</h2>
<h3>Example heading <span class="badge">New</span>
</h3>
<h4>Example heading <span class="badge">New</span>
</h4>
<h5>Example heading <span class="badge">New</span>
</h5>
<h6>Example heading <span class="badge">New</span>
</h6>
<h1>Example heading <span class="badge">New</span></h1>
<h2>Example heading <span class="badge">New</span></h2>
<h3>Example heading <span class="badge">New</span></h3>
<h4>Example heading <span class="badge">New</span></h4>
<h5>Example heading <span class="badge">New</span></h5>
<h6>Example heading <span class="badge">New</span></h6>
```
## Outline badges
@@ -111,8 +105,8 @@ Badges can be used as part of links or buttons to provide a counter.
The results can be seen in the example below.
```html example centered separated
<button type="button" class="btn">Notifications <span class="badge bg-red-lt ms-2">4</span>
</button>
<button type="button" class="btn">Notifications <span class="badge bg-green-lt ms-2">4</span>
<button type="button" class="btn">Notifications <span class="badge bg-red-lt ms-2">4</span></button>
<button type="button" class="btn">
Notifications <span class="badge bg-green-lt ms-2">4</span>
</button>
```

View File

@@ -92,7 +92,18 @@ You can use icons in breadcrumbs to make them more visually appealing. The examp
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<polyline points="5 12 3 12 12 3 21 12 19 12" />
<path d="M5 12v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8" />
@@ -151,18 +162,33 @@ You can use breadcrumbs in headers to show the current page location and provide
</ol>
</div>
<h2 class="page-title">
<span class="text-truncate">Knights of Ni, we are but simple travelers who seek the enchanter who lives beyond these woods.</span>
<span class="text-truncate"
>Knights of Ni, we are but simple travelers who seek the enchanter who lives beyond these
woods.</span
>
</h2>
</div>
<div class="col-auto">
<div class="btn-list">
<a href="#" class="btn d-none d-md-inline-flex">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1" />
<path d="M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z" />
<path d="M16 5l3 3" />
</svg> Edit
</svg>
Edit
</a>
<a href="#" class="btn btn-primary">Publish</a>
</div>

View File

@@ -25,24 +25,16 @@ Cards with the `.card-sm` class are well suited for small items such as widgets,
```html example vertical centered separated height={500} background="base"
<div class="card card-sm">
<div class="card-body">
This is some text within a card body.
</div>
<div class="card-body">This is some text within a card body.</div>
</div>
<div class="card">
<div class="card-body">
This is some text within a card body.
</div>
<div class="card-body">This is some text within a card body.</div>
</div>
<div class="card card-md">
<div class="card-body">
This is some text within a card body.
</div>
<div class="card-body">This is some text within a card body.</div>
</div>
<div class="card card-lg">
<div class="card-body">
This is some text within a card body.
</div>
<div class="card-body">This is some text within a card body.</div>
</div>
```
@@ -81,18 +73,23 @@ To create a more visually appealing card, add a title and an image. Thanks to th
```html example centered columns={1} height={500} background="base"
<div class="card">
<!-- Photo -->
<div class="img-responsive img-responsive-21x9 card-img-top" style="background-image: url(/samples/photos/cup-of-coffee-and-an-open-book.jpg)"></div>
<div
class="img-responsive img-responsive-21x9 card-img-top"
style="background-image: url(/samples/photos/cup-of-coffee-and-an-open-book.jpg)"
></div>
<div class="card-body">
<h3 class="card-title">Card with title and image</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
```
## 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">
@@ -103,7 +100,10 @@ Add an image to your blog post card to make it eye-catching. You can do it by ad
<h3 class="card-title">
<a href="#">How do you know she is a witch?</a>
</h3>
<div class="text-secondary">Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit. But she's got a wart. You ...</div>
<div class="text-secondary">
Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit. But she's got a wart.
You ...
</div>
<div class="d-flex align-items-center pt-4 mt-auto">
<span class="avatar" style="background-image: url(/samples/avatars/023m.jpg)"></span>
<div class="ms-3">
@@ -112,8 +112,21 @@ Add an image to your blog post card to make it eye-catching. You can do it by ad
</div>
<div class="ms-auto">
<a href="#" class="icon d-none d-md-inline-block ms-3 text-secondary">
<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">
<path d="M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572"></path>
<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"
>
<path
d="M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572"
></path>
</svg>
</a>
</div>
@@ -135,7 +148,9 @@ Add the `.row-deck` class to `.row`, if you want to display several cards next t
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">Extra long content of card. Lorem ipsum dolor sit amet, consetetur sadipscing elitr</div>
<div class="card-body">
Extra long content of card. Lorem ipsum dolor sit amet, consetetur sadipscing elitr
</div>
</div>
</div>
<div class="col-md-4">
@@ -155,7 +170,11 @@ You can also add an image on the left side of the card. To do it, add the `.card
<div class="row row-0 flex-fill">
<div class="col-md-3">
<a href="#">
<img src="/samples/photos/a-woman-works-on-a-laptop-at-home.jpg" class="w-100 h-100 object-cover" alt="Card side image" />
<img
src="/samples/photos/a-woman-works-on-a-laptop-at-home.jpg"
class="w-100 h-100 object-cover"
alt="Card side image"
/>
</a>
</div>
<div class="col">
@@ -163,7 +182,10 @@ You can also add an image on the left side of the card. To do it, add the `.card
<h3 class="card-title">
<a href="#">Shut up!</a>
</h3>
<div class="text-secondary">Burn her! How do you know she is a witch? You don't frighten us, English pig-dogs! Go and boil yo...</div>
<div class="text-secondary">
Burn her! How do you know she is a witch? You don't frighten us, English pig-dogs! Go and
boil yo...
</div>
<div class="d-flex align-items-center pt-4 mt-auto">
<span class="avatar" style="background-image: url(/samples/avatars/029m.jpg)"></span>
<div class="ms-3">
@@ -172,8 +194,21 @@ You can also add an image on the left side of the card. To do it, add the `.card
</div>
<div class="ms-auto">
<a href="#" class="icon d-none d-md-inline-block ms-3 text-red">
<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">
<path d="M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572"></path>
<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"
>
<path
d="M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572"
></path>
</svg>
</a>
</div>
@@ -186,7 +221,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">
@@ -195,8 +230,10 @@ Add a status color to your card, either at the top or on the side of the card, t
<div class="card-status-top bg-danger"></div>
<div class="card-body">
<h3 class="card-title">Card with top status</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
</div>
@@ -205,8 +242,10 @@ Add a status color to your card, either at the top or on the side of the card, t
<div class="card-status-start bg-green"></div>
<div class="card-body">
<h3 class="card-title">Card with side status</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
</div>
@@ -218,16 +257,20 @@ Add a status color to your card, either at the top or on the side of the card, t
<div class="card-status-top bg-danger"></div>
<div class="card-body">
<h3 class="card-title">Card with top status</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
<div class="card">
<div class="card-status-start bg-green"></div>
<div class="card-body">
<h3 class="card-title">Card with side status</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
```
@@ -240,8 +283,10 @@ Use the `card-stacked` class to stack up multiple cards, if you want to save scr
<div class="card card-stacked">
<div class="card-body">
<h3 class="card-title">Stacked card</h3>
<p class="text-secondary">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima
neque pariatur perferendis sed suscipit velit vitae voluptatem.</p>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt,
iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.
</p>
</div>
</div>
```
@@ -271,7 +316,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #1</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -279,7 +325,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #2</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -287,7 +334,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #3</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -295,7 +343,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #4</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -327,7 +376,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #1</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -336,7 +386,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #2</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -345,7 +396,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #3</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>
@@ -354,7 +406,8 @@ Organize multiple cards into tabs to be able to display more content in a well-o
<div class="card-body">
<div class="card-title">Content of tab #4</div>
<p class="text-secondary">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, alias aliquid
distinctio dolorem expedita, fugiat hic magni molestiae molestias odit.
</p>
</div>
</div>

View File

@@ -0,0 +1,459 @@
---
title: Carousel
summary: A carousel is used to display multiple pieces of visual content without taking up too much space. Carousels eliminate the need to scroll down the page to see all content and are a popular method of displaying marketing information.
bootstrapLink: components/carousel/
description: Display visual content with carousels.
---
## Default markup
Use a carousel to make your website design more visually appealing for users. In the default carousel design, respective elements slide automatically and users can go to the next slide by clicking an arrow.
```html example centered columns={2} height="35rem"
<div id="carousel-sample" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button
type="button"
data-bs-target="#carousel-sample"
data-bs-slide-to="0"
class="active"
></button>
<button type="button" data-bs-target="#carousel-sample" data-bs-slide-to="1"></button>
<button type="button" data-bs-target="#carousel-sample" data-bs-slide-to="2"></button>
<button type="button" data-bs-target="#carousel-sample" data-bs-slide-to="3"></button>
<button type="button" data-bs-target="#carousel-sample" data-bs-slide-to="4"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img
class="d-block w-100"
alt=""
src="/samples/photos/city-lights-reflected-in-the-water-at-night.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/color-palette-guide-sample-colors-catalog-.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/finances-us-dollars-and-bitcoins-currency-money.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/tropical-palm-leaves-floral-pattern-background.jpg"
/>
</div>
<div class="carousel-item">
<img class="d-block w-100" alt="" src="/samples/photos/young-woman-working-in-a-cafe.jpg" />
</div>
</div>
<a
class="carousel-control-prev"
data-bs-target="#carousel-sample"
role="button"
data-bs-slide="prev"
>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</a>
<a
class="carousel-control-next"
data-bs-target="#carousel-sample"
role="button"
data-bs-slide="next"
>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
```
## Dots indicators
You can replace the standard indicators with dots. Just add the `carousel-indicators-dot` class to your carousel:
```html example centered columns={2} height="35rem"
<div id="carousel-indicators-dot" class="carousel slide carousel-fade" data-bs-ride="carousel">
<div class="carousel-indicators carousel-indicators-dot">
<button
type="button"
data-bs-target="#carousel-indicators-dot"
data-bs-slide-to="0"
class="active"
></button>
<button type="button" data-bs-target="#carousel-indicators-dot" data-bs-slide-to="1"></button>
<button type="button" data-bs-target="#carousel-indicators-dot" data-bs-slide-to="2"></button>
<button type="button" data-bs-target="#carousel-indicators-dot" data-bs-slide-to="3"></button>
<button type="button" data-bs-target="#carousel-indicators-dot" data-bs-slide-to="4"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img
class="d-block w-100"
alt=""
src="/samples/photos/stylish-workspace-with-macbook-pro.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/coffee-on-a-table-with-other-items.jpg"
/>
</div>
<div class="carousel-item">
<img class="d-block w-100" alt="" src="/samples/photos/book-on-the-grass.jpg" />
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/a-woman-works-at-a-desk-with-a-laptop-and-a-cup-of-coffee.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/people-by-a-banquet-table-full-with-food.jpg"
/>
</div>
</div>
</div>
```
## Thumb indicators
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">
<div class="carousel-indicators carousel-indicators-thumb">
<button
type="button"
data-bs-target="#carousel-indicators-thumb"
data-bs-slide-to="0"
class="ratio ratio-4x3 active"
style="background-image: url(/samples/photos/group-of-people-sightseeing-in-the-city.jpg)"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb"
data-bs-slide-to="1"
class="ratio ratio-4x3"
style="background-image: url(/samples/photos/young-woman-working-in-a-cafe.jpg)"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb"
data-bs-slide-to="2"
class="ratio ratio-4x3"
style="
background-image: url(/samples/photos/soft-photo-of-woman-on-the-bed-with-the-book-and-cup-of-coffee-in-hands.jpg);
"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb"
data-bs-slide-to="3"
class="ratio ratio-4x3"
style="background-image: url(/samples/photos/stylish-workplace-with-computer-at-home.jpg)"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb"
data-bs-slide-to="4"
class="ratio ratio-4x3"
style="background-image: url(/samples/photos/stylish-workspace-with-macbook-pro.jpg)"
></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img
class="d-block w-100"
alt=""
src="/samples/photos/group-of-people-sightseeing-in-the-city.jpg"
/>
</div>
<div class="carousel-item">
<img class="d-block w-100" alt="" src="/samples/photos/young-woman-working-in-a-cafe.jpg" />
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/soft-photo-of-woman-on-the-bed-with-the-book-and-cup-of-coffee-in-hands.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/stylish-workplace-with-computer-at-home.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/stylish-workspace-with-macbook-pro.jpg"
/>
</div>
</div>
</div>
```
## Vertical indicators
To make the indicators go to the right side, add the `carousel-indicators-vertical` class. You can combine it with other classes that are responsible for dots or thumbnails.
```html example centered columns={2} height="35rem"
<div
id="carousel-indicators-dot-vertical"
class="carousel slide carousel-fade"
data-bs-ride="carousel"
>
<div class="carousel-indicators carousel-indicators-vertical carousel-indicators-dot">
<button
type="button"
data-bs-target="#carousel-indicators-dot-vertical"
data-bs-slide-to="0"
class="active"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-dot-vertical"
data-bs-slide-to="1"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-dot-vertical"
data-bs-slide-to="2"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-dot-vertical"
data-bs-slide-to="3"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-dot-vertical"
data-bs-slide-to="4"
></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" alt="" src="/samples/photos/man-looking-out-to-sea.jpg" />
</div>
<div class="carousel-item">
<img class="d-block w-100" alt="" src="/samples/photos/making-magic-with-fairy-lights.jpg" />
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/finances-us-dollars-and-bitcoins-currency-money-5.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/cup-of-coffee-on-table-in-cafe-2.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/young-woman-sitting-on-the-sofa-and-working-on-her-laptop-2.jpg"
/>
</div>
</div>
</div>
```
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"
>
<div class="carousel-indicators carousel-indicators-vertical carousel-indicators-thumb">
<button
type="button"
data-bs-target="#carousel-indicators-thumb-vertical"
data-bs-slide-to="0"
class="ratio ratio-4x3 active"
style="
background-image: url(/samples/photos/finances-us-dollars-and-bitcoins-currency-money.jpg);
"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb-vertical"
data-bs-slide-to="1"
class="ratio ratio-4x3"
style="background-image: url(/samples/photos/businesswoman-working-at-her-laptop.jpg)"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb-vertical"
data-bs-slide-to="2"
class="ratio ratio-4x3"
style="background-image: url(/samples/photos/color-palette-guide-sample-colors-catalog-.jpg)"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb-vertical"
data-bs-slide-to="3"
class="ratio ratio-4x3"
style="
background-image: url(/samples/photos/blue-sofa-with-pillows-in-a-designer-living-room-interior.jpg);
"
></button>
<button
type="button"
data-bs-target="#carousel-indicators-thumb-vertical"
data-bs-slide-to="4"
class="ratio ratio-4x3"
style="
background-image: url(/samples/photos/beautiful-blonde-woman-on-a-wooden-pier-by-the-lake.jpg);
"
></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img
class="d-block w-100"
alt=""
src="/samples/photos/finances-us-dollars-and-bitcoins-currency-money.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/businesswoman-working-at-her-laptop.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/color-palette-guide-sample-colors-catalog-.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/blue-sofa-with-pillows-in-a-designer-living-room-interior.jpg"
/>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/beautiful-blonde-woman-on-a-wooden-pier-by-the-lake.jpg"
/>
</div>
</div>
</div>
```
## Carousel with captions
Add captions to your slides easily with the `.carousel-caption` element within any `.carousel-item`. To make the text more readable on the image you can add `carousel-caption-background` which will add a black overlay over the image.
```html example centered columns={2} height="35rem"
<div id="carousel-captions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img
class="d-block w-100"
alt=""
src="/samples/photos/workplace-with-laptop-on-table-at-home-4.jpg"
/>
<div class="carousel-caption-background d-none d-md-block"></div>
<div class="carousel-caption d-none d-md-block">
<h3>Slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</div>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/people-watching-a-presentation-in-a-room.jpg"
/>
<div class="carousel-caption-background d-none d-md-block"></div>
<div class="carousel-caption d-none d-md-block">
<h3>Slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</div>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/people-by-a-banquet-table-full-with-food.jpg"
/>
<div class="carousel-caption-background d-none d-md-block"></div>
<div class="carousel-caption d-none d-md-block">
<h3>Slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</div>
</div>
<div class="carousel-item">
<img
class="d-block w-100"
alt=""
src="/samples/photos/books-and-purple-flowers-on-a-wooden-stool-by-the-bed.jpg"
/>
<div class="carousel-caption-background d-none d-md-block"></div>
<div class="carousel-caption d-none d-md-block">
<h3>Slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" alt="" src="/samples/photos/cup-of-coffee-and-an-open-book.jpg" />
<div class="carousel-caption-background d-none d-md-block"></div>
<div class="carousel-caption d-none d-md-block">
<h3>Slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</div>
</div>
</div>
<a
class="carousel-control-prev"
data-bs-target="#carousel-captions"
role="button"
data-bs-slide="prev"
>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</a>
<a
class="carousel-control-next"
data-bs-target="#carousel-captions"
role="button"
data-bs-slide="next"
>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
```

View File

@@ -0,0 +1,697 @@
---
title: Charts
libs: apexcharts
summary: Tabler uses ApexCharts - a free and open-source modern charting library that helps developers to create beautiful and interactive visualizations for web pages.
description: Interactive data visualizations with ApexCharts.
---
To be able to use the charts in your application you will need to install the apexcharts dependency with `npm install apexcharts`.
See also the [ApexCharts](https://apexcharts.com/) documentation.
## Line Chart
Line charts are an essential tool for visualizing data trends over time. They are particularly useful for representing continuous data, such as stock prices, website traffic, or user activity. Below is an example of a line chart showcasing session duration, page views, and total visits:
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-demo-line" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-demo-line"), {
chart: {
type: "line",
fontFamily: "inherit",
height: 240,
parentHeightOffset: 0,
toolbar: {
show: false,
},
animations: {
enabled: false,
},
},
fill: {
opacity: 1,
},
stroke: {
width: 2,
lineCap: "round",
curve: "straight",
},
series: [
{
name: "Session Duration",
data: [117, 92, 94, 98, 75, 110, 69, 80, 109, 113, 115, 95],
},
{
name: "Page Views",
data: [59, 80, 61, 66, 70, 84, 87, 64, 94, 56, 55, 67],
},
{
name: "Total Visits",
data: [53, 51, 52, 41, 46, 60, 45, 43, 30, 50, 58, 59],
},
],
tooltip: {
theme: "dark",
},
grid: {
padding: {
top: -20,
right: 0,
left: -4,
bottom: -4,
},
strokeDashArray: 4,
},
xaxis: {
labels: {
padding: 0,
},
tooltip: {
enabled: false,
},
type: "datetime",
},
yaxis: {
labels: {
padding: 4,
},
},
labels: [
"2020-06-21",
"2020-06-22",
"2020-06-23",
"2020-06-24",
"2020-06-25",
"2020-06-26",
"2020-06-27",
"2020-06-28",
"2020-06-29",
"2020-06-30",
"2020-07-01",
"2020-07-02",
],
colors: [tabler.getColor("yellow"), tabler.getColor("green"), tabler.getColor("primary")],
legend: {
show: true,
position: "bottom",
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8,
},
},
}).render();
});
</script>
```
## Area Chart
Area charts are ideal for representing cumulative data over time. They add visual emphasis to trends by filling the space under the line, making it easier to compare values. Here's an example of an area chart with smooth transitions and data from two series:
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-demo-area" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-demo-area"), {
chart: {
type: "area",
fontFamily: "inherit",
height: 240,
parentHeightOffset: 0,
toolbar: {
show: false,
},
animations: {
enabled: false,
},
},
dataLabels: {
enabled: false,
},
fill: {
opacity: 0.16,
type: "solid",
},
stroke: {
width: 2,
lineCap: "round",
curve: "smooth",
},
series: [
{
name: "series1",
data: [56, 40, 39, 47, 34, 48, 44],
},
{
name: "series2",
data: [45, 43, 30, 23, 38, 39, 54],
},
],
tooltip: {
theme: "dark",
},
grid: {
padding: {
top: -20,
right: 0,
left: -4,
bottom: -4,
},
strokeDashArray: 4,
},
xaxis: {
labels: {
padding: 0,
},
tooltip: {
enabled: false,
},
axisBorder: {
show: false,
},
type: "datetime",
},
yaxis: {
labels: {
padding: 4,
},
},
labels: [
"2020-06-21",
"2020-06-22",
"2020-06-23",
"2020-06-24",
"2020-06-25",
"2020-06-26",
"2020-06-27",
],
colors: [tabler.getColor("primary"), tabler.getColor("purple")],
legend: {
show: true,
position: "bottom",
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8,
},
},
}).render();
});
</script>
```
## Bar Chart
Bar charts are highly effective for comparing data across different categories. They provide a clear and concise way to visualize differences in values, making them perfect for analyzing categorical data. Here's an example of a bar chart with stacked bars for enhanced readability:
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-demo-bar" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-demo-bar"), {
chart: {
type: "bar",
fontFamily: "inherit",
height: 240,
parentHeightOffset: 0,
toolbar: {
show: false,
},
animations: {
enabled: false,
},
stacked: true,
},
plotOptions: {
bar: {
barHeight: "50%",
horizontal: true,
},
},
dataLabels: {
enabled: false,
},
fill: {
opacity: 1,
},
series: [
{
name: "Container for a Fanta",
data: [44, 55, 41, 37, 22, 43, 21],
},
{
name: "Strange sunglasses",
data: [53, 32, 33, 52, 13, 43, 32],
},
{
name: "Pen Pineapple Apple Pen",
data: [12, 17, 11, 9, 15, 11, 20],
},
{
name: "Binoculars",
data: [9, 7, 5, 8, 6, 9, 4],
},
{
name: "Magical notebook",
data: [25, 12, 19, 32, 25, 24, 10],
},
],
tooltip: {
theme: "dark",
},
grid: {
padding: {
top: -20,
right: 0,
left: -4,
bottom: -4,
},
strokeDashArray: 4,
},
xaxis: {
labels: {
padding: 0,
formatter: function (val) {
return val + "K";
},
},
tooltip: {
enabled: false,
},
axisBorder: {
show: false,
},
categories: ["2008", "2009", "2010", "2011", "2012", "2013", "2014"],
},
yaxis: {
labels: {
padding: 4,
},
},
colors: [
tabler.getColor("purple"),
tabler.getColor("green"),
tabler.getColor("yellow"),
tabler.getColor("red"),
tabler.getColor("primary"),
],
legend: {
show: true,
position: "bottom",
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8,
},
},
}).render();
});
</script>
```
## Pie Chart
Pie charts are a simple and effective way to visualize proportions and ratios. They are commonly used to represent data as percentages of a whole, making them ideal for displaying parts of a dataset. Below is an example of a pie chart showcasing distribution across categories:
```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>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-demo-pie"), {
chart: {
type: "donut",
fontFamily: "inherit",
height: 240,
sparkline: {
enabled: true,
},
animations: {
enabled: false,
},
},
fill: {
opacity: 1,
},
series: [44, 55, 12, 2],
labels: ["Direct", "Affilliate", "E-mail", "Other"],
tooltip: {
theme: "dark",
},
grid: {
strokeDashArray: 4,
},
colors: [
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,
},
},
}).render();
});
</script>
```
## Heatmap Chart
Heatmaps provide a graphical representation of data where individual values are represented by color intensity. They are particularly useful for identifying patterns or anomalies within large datasets. Here's an example of a heatmap chart to visualize data distributions:
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-demo-heatmap" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-demo-heatmap"), {
chart: {
type: "heatmap",
fontFamily: "inherit",
height: 240,
animations: {
enabled: false,
},
toolbar: {
show: false,
},
},
tooltip: {
theme: "dark",
},
fill: {
opacity: 1,
},
series: [
{
name: "New York",
data: [
{ x: "Monday", y: 22 },
{ x: "Tuesday", y: 24 },
{ x: "Wednesday", y: 19 },
{ x: "Thursday", y: 23 },
{ x: "Friday", y: 25 },
{ x: "Saturday", y: 27 },
{ x: "Sunday", y: 26 },
],
},
{
name: "Los Angeles",
data: [
{ x: "Monday", y: 28 },
{ x: "Tuesday", y: 30 },
{ x: "Wednesday", y: 27 },
{ x: "Thursday", y: 29 },
{ x: "Friday", y: 31 },
{ x: "Saturday", y: 32 },
{ x: "Sunday", y: 33 },
],
},
{
name: "Chicago",
data: [
{ x: "Monday", y: 18 },
{ x: "Tuesday", y: 20 },
{ x: "Wednesday", y: 17 },
{ x: "Thursday", y: 19 },
{ x: "Friday", y: 21 },
{ x: "Saturday", y: 22 },
{ x: "Sunday", y: 23 },
],
},
{
name: "Houston",
data: [
{ x: "Monday", y: 25 },
{ x: "Tuesday", y: 27 },
{ x: "Wednesday", y: 24 },
{ x: "Thursday", y: 26 },
{ x: "Friday", y: 28 },
{ x: "Saturday", y: 29 },
{ x: "Sunday", y: 30 },
],
},
{
name: "Phoenix",
data: [
{ x: "Monday", y: 33 },
{ x: "Tuesday", y: 35 },
{ x: "Wednesday", y: 32 },
{ x: "Thursday", y: 34 },
{ x: "Friday", y: 36 },
{ x: "Saturday", y: 37 },
{ x: "Sunday", y: 38 },
],
},
{
name: "Philadelphia",
data: [
{ x: "Monday", y: 20 },
{ x: "Tuesday", y: 22 },
{ x: "Wednesday", y: 19 },
{ x: "Thursday", y: 21 },
{ x: "Friday", y: 23 },
{ x: "Saturday", y: 24 },
{ x: "Sunday", y: 25 },
],
},
],
colors: [tabler.getColor("primary")],
dataLabels: {
enabled: false,
},
xaxis: {
tooltip: {
enabled: false,
},
},
title: {
text: "Average Temperature by Day and City",
},
}).render();
});
</script>
```
## Advanced example
For more complex data visualizations, you can create advanced charts with multiple series and custom configurations. Below is an example of a social media referrals chart combining data from Facebook, Twitter, and Dribbble:
```html example centered columns={2} height="25rem" libs="apexcharts"
<div class="card">
<div class="card-body">
<div id="chart-social-referrals" class="chart-lg"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts &&
new ApexCharts(document.getElementById("chart-social-referrals"), {
chart: {
type: "line",
fontFamily: "inherit",
height: 240,
parentHeightOffset: 0,
toolbar: {
show: false,
},
animations: {
enabled: false,
},
},
fill: {
opacity: 1,
},
stroke: {
width: 2,
lineCap: "round",
curve: "smooth",
},
series: [
{
name: "Facebook",
data: [
13281, 8521, 15038, 9983, 15417, 8888, 7052, 14270, 5214, 9587, 5950, 16852, 17836,
12217, 17406, 12262, 9147, 14961, 18292, 15230, 13435, 10649, 5140, 13680, 4508,
13271, 13413, 5543, 18727, 18238, 18175, 6246, 5864, 17847, 9170, 6445, 12945, 8142,
8980, 10422, 15535, 11569, 10114, 17621, 16138, 13046, 6652, 9906, 14100, 16495, 6749,
],
},
{
name: "Twitter",
data: [
3680, 1862, 3070, 2252, 5348, 3091, 3000, 3984, 5176, 5325, 2420, 5474, 3098, 1893,
3748, 2879, 4197, 5186, 4213, 4334, 2807, 1594, 4863, 2030, 3752, 4856, 5341, 3954,
3461, 3097, 3404, 4949, 2283, 3227, 3630, 2360, 3477, 4675, 1901, 2252, 3347, 2954,
5029, 2079, 2830, 3292, 4578, 3401, 4104, 3749, 4457, 3734,
],
},
{
name: "Dribbble",
data: [
722, 1866, 961, 1108, 1110, 561, 1753, 1815, 1985, 776, 859, 547, 1488, 766, 702, 621,
1599, 1372, 1620, 963, 759, 764, 739, 789, 1696, 1454, 1842, 734, 551, 1689, 1924,
1875, 908, 1675, 1541, 1953, 534, 502, 1524, 1867, 719, 1472, 1608, 1025, 889, 1150,
654, 1695, 1662, 1285, 1787,
],
},
],
tooltip: {
theme: "dark",
},
grid: {
padding: {
top: -20,
right: 0,
left: -4,
bottom: -4,
},
strokeDashArray: 4,
xaxis: {
lines: {
show: true,
},
},
},
xaxis: {
labels: {
padding: 0,
},
tooltip: {
enabled: false,
},
type: "datetime",
},
yaxis: {
labels: {
padding: 4,
},
},
labels: [
"2020-06-21",
"2020-06-22",
"2020-06-23",
"2020-06-24",
"2020-06-25",
"2020-06-26",
"2020-06-27",
"2020-06-28",
"2020-06-29",
"2020-06-30",
"2020-07-01",
"2020-07-02",
"2020-07-03",
"2020-07-04",
"2020-07-05",
"2020-07-06",
"2020-07-07",
"2020-07-08",
"2020-07-09",
"2020-07-10",
"2020-07-11",
"2020-07-12",
"2020-07-13",
"2020-07-14",
"2020-07-15",
"2020-07-16",
"2020-07-17",
"2020-07-18",
"2020-07-19",
"2020-07-20",
"2020-07-21",
"2020-07-22",
"2020-07-23",
"2020-07-24",
"2020-07-25",
"2020-07-26",
"2020-07-27",
"2020-07-28",
"2020-07-29",
"2020-07-30",
"2020-07-31",
"2020-08-01",
"2020-08-02",
"2020-08-03",
"2020-08-04",
"2020-08-05",
"2020-08-06",
"2020-08-07",
"2020-08-08",
"2020-08-09",
"2020-08-10",
],
colors: [
tabler.getColor("facebook"),
tabler.getColor("twitter"),
tabler.getColor("dribbble"),
],
legend: {
show: true,
position: "bottom",
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8,
},
},
}).render();
});
</script>
```

View File

@@ -26,7 +26,10 @@ description: Detailed product information in grids.
<div class="datagrid-title">Creator</div>
<div class="datagrid-content">
<div class="d-flex align-items-center">
<span class="avatar avatar-xs me-2 rounded" style="background-image: url(/samples/avatars/027m.jpg)"></span>
<span
class="avatar avatar-xs me-2 rounded"
style="background-image: url(/samples/avatars/027m.jpg)"
></span>
Paweł Kuna
</div>
</div>
@@ -38,20 +41,30 @@ description: Detailed product information in grids.
<div class="datagrid-item">
<div class="datagrid-title">Edge network</div>
<div class="datagrid-content">
<span class="status status-green">
Active
</span>
<span class="status status-green"> Active </span>
</div>
</div>
<div class="datagrid-item">
<div class="datagrid-title">Avatars list</div>
<div class="datagrid-content">
<div class="avatar-list avatar-list-stacked">
<span class="avatar avatar-xs rounded" style="background-image: url(/samples/avatars/029f.jpg)"></span>
<span
class="avatar avatar-xs rounded"
style="background-image: url(/samples/avatars/029f.jpg)"
></span>
<span class="avatar avatar-xs rounded">JL</span>
<span class="avatar avatar-xs rounded" style="background-image: url(/samples/avatars/015f.jpg)"></span>
<span class="avatar avatar-xs rounded" style="background-image: url(/samples/avatars/004m.jpg)"></span>
<span class="avatar avatar-xs rounded" style="background-image: url(/samples/avatars/037m.jpg)"></span>
<span
class="avatar avatar-xs rounded"
style="background-image: url(/samples/avatars/015f.jpg)"
></span>
<span
class="avatar avatar-xs rounded"
style="background-image: url(/samples/avatars/004m.jpg)"
></span>
<span
class="avatar avatar-xs rounded"
style="background-image: url(/samples/avatars/037m.jpg)"
></span>
<span class="avatar avatar-xs rounded">+3</span>
</div>
</div>
@@ -68,7 +81,18 @@ description: Detailed product information in grids.
<div class="datagrid-item">
<div class="datagrid-title">Icon</div>
<div class="datagrid-content">
<svg xmlns="http://www.w3.org/2000/svg" class="icon text-green" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon text-green"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M5 12l5 5l10 -10" />
</svg>
@@ -83,14 +107,12 @@ description: Detailed product information in grids.
</div>
<div class="datagrid-item">
<div class="datagrid-title">Longer description</div>
<div class="datagrid-content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
<div class="datagrid-content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
</div>
</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

@@ -14,7 +14,8 @@ Use dividers to visually separate content into parts. You can use a line only or
</p>
<div class="hr-text">See also</div>
<p>
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus rerum, saepe sed, sit!
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
rerum, saepe sed, sit!
</p>
```
@@ -28,7 +29,8 @@ You can modify the position of the text which is to be included in a separator a
</p>
<div class="hr-text hr-text-start">Start divider</div>
<p>
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus rerum, saepe sed, sit!
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
rerum, saepe sed, sit!
</p>
<div class="hr-text">Centered divider</div>
<p>
@@ -36,7 +38,8 @@ You can modify the position of the text which is to be included in a separator a
</p>
<div class="hr-text hr-text-end">End divider</div>
<p>
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus rerum, saepe sed, sit!
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
rerum, saepe sed, sit!
</p>
```
@@ -50,7 +53,8 @@ Customize the color of dividers to make them go well with your design. Click [he
</p>
<div class="hr-text text-green">Green divider</div>
<p>
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus rerum, saepe sed, sit!
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
rerum, saepe sed, sit!
</p>
<div class="hr-text text-red">Red divider</div>
<p>
@@ -58,6 +62,7 @@ Customize the color of dividers to make them go well with your design. Click [he
</p>
<div class="hr-text text-primary">Primary divider</div>
<p>
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus rerum, saepe sed, sit!
Dicta error hic illo iure necessitatibus nihil officiis omnis perferendis, praesentium repellendus
rerum, saepe sed, sit!
</p>
```

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.
---
@@ -28,12 +28,8 @@ Use dropdown dividers to separate groups of dropdown items for greater clarity.
<div class="dropdown">
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">
Action
</a>
<a class="dropdown-item" href="#">
Another action
</a>
<a class="dropdown-item" href="#"> Action </a>
<a class="dropdown-item" href="#"> Another action </a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
@@ -48,12 +44,8 @@ Make a dropdown item look active, so that it highlights when a user hovers over
<div class="dropdown">
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">
Action
</a>
<a class="dropdown-item" href="#">
Another action
</a>
<a class="dropdown-item" href="#"> Action </a>
<a class="dropdown-item" href="#"> Another action </a>
<a class="dropdown-item active" href="#">Active action</a>
</div>
</div>
@@ -67,12 +59,8 @@ Make a dropdown item look disabled to display options which are currently not av
<div class="dropdown">
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">
Action
</a>
<a class="dropdown-item" href="#">
Another action
</a>
<a class="dropdown-item" href="#"> Action </a>
<a class="dropdown-item" href="#"> Another action </a>
<a class="dropdown-item disabled" href="#">Disabled action</a>
</div>
</div>
@@ -87,12 +75,8 @@ Add a dropdown header to group dropdown items into sections and name them accord
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu">
<span class="dropdown-header">Dropdown header</span>
<a class="dropdown-item" href="#">
Action
</a>
<a class="dropdown-item" href="#">
Another action
</a>
<a class="dropdown-item" href="#"> Action </a>
<a class="dropdown-item" href="#"> Another action </a>
</div>
</div>
```
@@ -107,15 +91,39 @@ Use icons in your dropdowns to add more visual content and make the options easy
<div class="dropdown-menu">
<span class="dropdown-header">Dropdown header</span>
<a class="dropdown-item" href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon dropdown-item-icon icon-tabler icon-tabler-settings" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon dropdown-item-icon icon-tabler icon-tabler-settings"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"></path>
<path
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"
></path>
<path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
</svg>
Action
</a>
<a class="dropdown-item" href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon dropdown-item-icon icon-tabler icon-tabler-pencil" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon dropdown-item-icon icon-tabler icon-tabler-pencil"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M4 20h4l10.5 -10.5a1.5 1.5 0 0 0 -4 -4l-10.5 10.5v4"></path>
<path d="M13.5 6.5l4 4"></path>
@@ -134,12 +142,8 @@ Add an arrow that points at the dropdown button.
<div class="dropdown">
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu dropdown-menu-arrow">
<a class="dropdown-item" href="#">
Action
</a>
<a class="dropdown-item" href="#">
Another action
</a>
<a class="dropdown-item" href="#"> Action </a>
<a class="dropdown-item" href="#"> Another action </a>
</div>
</div>
```
@@ -195,15 +199,39 @@ Make your dropdown suit the dark mode of your website or software.
<div class="dropdown-menu dropdown-menu-arrow bg-dark text-white">
<span class="dropdown-header">Dropdown header</span>
<a class="dropdown-item" href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon dropdown-item-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon dropdown-item-icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" />
<path
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"
/>
<circle cx="12" cy="12" r="3" />
</svg>
Action
</a>
<a class="dropdown-item" href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon dropdown-item-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon dropdown-item-icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1" />
<path d="M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z" />
@@ -222,16 +250,23 @@ Use a dropdown with card content to make it easy for users to get more informati
```html example height="35rem"
<div class="dropdown">
<a href="#" class="btn dropdown-toggle" data-bs-toggle="dropdown">Open dropdown</a>
<div class="dropdown-menu dropdown-menu-card" style="max-width: 16rem;">
<div class="dropdown-menu dropdown-menu-card" style="max-width: 16rem">
<div class="card d-flex flex-column">
<a href="#">
<img class="card-img-top" src="/samples/photos/friends-at-a-restaurant-drinking-wine.jpg" alt="How do you know she is a witch?" />
<img
class="card-img-top"
src="/samples/photos/friends-at-a-restaurant-drinking-wine.jpg"
alt="How do you know she is a witch?"
/>
</a>
<div class="card-body d-flex flex-column">
<h3 class="card-title">
<a href="#">How do you know she is a witch?</a>
</h3>
<div class="text-secondary">Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit. But she's got a wart. You ...</div>
<div class="text-secondary">
Are you suggesting that coconuts migrate? No, no, no! Yes, yes. A bit. But she's got a
wart. You ...
</div>
<div class="d-flex align-items-center pt-4 mt-auto">
<span class="avatar" style="background-image: url(/samples/avatars/013m.jpg)"></span>
<div class="ms-3">
@@ -240,9 +275,22 @@ Use a dropdown with card content to make it easy for users to get more informati
</div>
<div class="ms-auto">
<a href="#" class="icon d-none d-md-inline-block ms-3 text-secondary">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="icon"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M19.5 12.572l-7.5 7.428l-7.5 -7.428m0 0a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572" />
<path
d="M19.5 12.572l-7.5 7.428l-7.5 -7.428m0 0a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572"
/>
</svg>
</a>
</div>

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