1
0
mirror of https://github.com/tabler/tabler.git synced 2025-12-23 02:14:26 +04:00

Compare commits

..

26 Commits

Author SHA1 Message Date
tabler.developer@gmail.com
95891cb108 remove old lemon squeezy integration 2023-12-07 02:07:01 +01:00
tabler.developer@gmail.com
09a8e2d2c5 lemon squeezy integration 2023-12-07 00:56:02 +01:00
tabler.developer@gmail.com
e4c76be517 fix lemon squeezy integration 2023-11-12 23:21:31 +01:00
tabler.developer@gmail.com
9bbdba9c67 add lemon squeezy webhooks 2023-11-08 01:39:58 +01:00
tabler.developer@gmail.com
4ef2d125c2 WIP add lemon squeezy webhooks 2023-10-26 22:12:50 +02:00
tabler.developer@gmail.com
7193a70102 pricing cards for lemon squeezy products 2023-10-20 02:00:26 +02:00
tabler.developer@gmail.com
442ac3bb4b fetch lemon squezy products 2023-10-09 00:44:43 +02:00
tabler.developer@gmail.com
877182140d Merge branch 'dev' into dev-site-entry 2023-10-08 14:34:08 +02:00
tabler.developer@gmail.com
9772160071 fix build 2023-09-09 01:46:05 +02:00
tabler.developer@gmail.com
aeff172a41 init subscriptions 2023-09-09 01:29:20 +02:00
tabler.developer@gmail.com
7e62c3a563 add navigation auth 2023-08-31 02:11:31 +02:00
tabler.developer@gmail.com
d673851db5 replace credentails auth with auth0 2023-08-28 00:16:54 +02:00
tabler.developer@gmail.com
020255f161 auth error handling 2023-08-27 00:44:28 +02:00
tabler.developer@gmail.com
5edc93384c fix error message 2023-08-21 22:30:49 +02:00
tabler.developer@gmail.com
0efbb01e55 fix package.json 2023-08-20 22:33:23 +02:00
tabler.developer@gmail.com
361e81e478 postinstall prisma generate 2023-08-20 22:25:44 +02:00
tabler.developer@gmail.com
ebda434060 add prisma generate 2023-08-20 22:03:49 +02:00
tabler.developer@gmail.com
8ffe0e6a1a auth fixes 2023-08-20 20:49:48 +02:00
tabler.developer@gmail.com
5250158600 remove nextauth url 2023-08-20 16:51:43 +02:00
tabler.developer@gmail.com
e307ba44fb add credentials provider 2023-08-20 16:43:59 +02:00
tabler.developer@gmail.com
8cf5058456 add google-brand icon 2023-08-15 21:50:59 +02:00
tabler.developer@gmail.com
b7c772ce1b styles fix 2023-08-15 21:18:11 +02:00
tabler.developer@gmail.com
1f0e6e074a add google provider 2023-08-15 16:26:15 +02:00
tabler.developer@gmail.com
a76df72359 prisma and auth init 2023-08-15 00:30:16 +02:00
tabler.developer@gmail.com
90f4931c96 tabler signup and signin 2023-08-12 18:05:13 +02:00
tabler.developer@gmail.com
33bbc46229 init tabler site entry 2023-08-08 23:09:36 +02:00
6659 changed files with 842634 additions and 47138 deletions

89
.all-contributorsrc Normal file
View File

@@ -0,0 +1,89 @@
{
"projectName": "tabler",
"projectOwner": "tabler",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"CONTRIBUTORS.md"
],
"imageSize": 100,
"commit": true,
"commitConvention": "angular",
"contributors": [
{
"login": "codecalm",
"name": "Paweł Kuna",
"avatar_url": "https://avatars.githubusercontent.com/u/1282324?v=4",
"profile": "https://tabler.io/",
"contributions": [
"code",
"doc"
]
},
{
"login": "martynaaj",
"name": "Martyna",
"avatar_url": "https://avatars.githubusercontent.com/u/60158888?v=4",
"profile": "https://github.com/martynaaj",
"contributions": [
"doc"
]
},
{
"login": "deralaxo",
"name": "Dawid Harat",
"avatar_url": "https://avatars.githubusercontent.com/u/40028795?v=4",
"profile": "https://github.com/deralaxo",
"contributions": [
"code"
]
},
{
"login": "rjd22",
"name": "Robert-Jan de Dreu",
"avatar_url": "https://avatars.githubusercontent.com/u/160743?v=4",
"profile": "https://codersopinion.com/",
"contributions": [
"code"
]
},
{
"login": "FreexD",
"name": "Michał Wolny",
"avatar_url": "https://avatars.githubusercontent.com/u/7117869?v=4",
"profile": "https://github.com/FreexD",
"contributions": [
"code"
]
},
{
"login": "wangkanai",
"name": "Sarin Na Wangkanai",
"avatar_url": "https://avatars.githubusercontent.com/u/10666633?v=4",
"profile": "https://www.wangkanai.com/",
"contributions": [
"code"
]
},
{
"login": "WinterSilence",
"name": "Anton",
"avatar_url": "https://avatars.githubusercontent.com/u/3521094?v=4",
"profile": "https://ensostudio.ru/",
"contributions": [
"code"
]
},
{
"login": "dheineman",
"name": "Dave Heineman",
"avatar_url": "https://avatars.githubusercontent.com/u/516028?v=4",
"profile": "https://github.com/dheineman",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"linkToUsage": false
}

View File

@@ -1,6 +1,11 @@
>= 1%
last 2 versions
Firefox ESR
last 1 major version
not dead
safari >= 15.4
iOS >= 15.4
Chrome >= 60
Firefox >= 60
Edge >= 15.15063
Explorer 11
iOS >= 10
Safari >= 10
Android >= 6
not ExplorerMobile <= 11

View File

@@ -1,63 +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 * 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": minor
---
Add gradient background utilities

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Updated link to icons documentation

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Rollback accordion component structure

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new `Tag` component

View File

@@ -4,7 +4,8 @@
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add customizable Star Ratings component using `star-rating.js` library

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix text color in dark version of navbar

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.21 with 18 new icons added

5
.changeset/flags.md Normal file
View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add `flags.html` page with list of all flags

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Adding Two-Step Verification Pages

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Add Bootstrap components to Tabler JS

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
`Dockerfile` fix

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.20 with 37 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Adding `alerts.html` page with example of alerts.

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Unify size of avatar, flag and payment components

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Bootstrap to v5.3.0

View File

@@ -1,4 +0,0 @@
---
---
Replace HTML `alt` attribute to `aria-title` used on SVG element

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix `rgba` color values in `_variables.scss`

View File

@@ -1,4 +0,0 @@
---
---
Update modal examples

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix form controls bugs in dark mode

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Change primary color value to new Tabler branding

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Unified Box Shadows with Bootstrap Compatibility

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Apply border radius to `tom-select` on focus

View File

@@ -1,5 +0,0 @@
---
"preview": patch
---
Add missing `tw` entry in `flags.json`

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Minor spelling and grammar improvements to emails docs

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Unify dark mode with latest Bootstrap API and improve dark mode elements

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.22 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add All Contributions package to project for easy contribution tracking

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Resolved light dropdown issue on dark theme

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
New Chat component

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.19 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Adjusting form element sizes for enhanced mobile devices compatibility

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Switch from `npm` to `pnpm` for faster package installation

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add variable to configure `avatar-list` spacing

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update required Node.js version to 18 and add `.nvmrc` file

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix table default background color

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Fix `autosize` and `input mask` plugins to use window scope

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Avoid SCSS color dependency on `:focus`

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.18 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add Prettier to project for consistent code formatting

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update Tabler Icons to version 2.25 with 48 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Add new color picker component using `coloris.js` library

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Fix responsiveness issue in Settings menu

View File

@@ -1,5 +0,0 @@
---
"@tabler/core": patch
---
Improve README

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add new Filled section to Icons page

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Update `bootstrap` to v5.3.1

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Update Tabler Icons to version 2.23 with 18 new icons added

View File

@@ -0,0 +1,5 @@
---
"@tabler/core": patch
---
Add support for changeset tool for more efficient and organized code changes

View File

@@ -13,7 +13,7 @@ jobs:
name: Add new issue and pr to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v1.0.2
- uses: actions/add-to-project@v0.5.0
with:
project-url: https://github.com/orgs/tabler/projects/9/views/1
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,67 +0,0 @@
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
if: 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

@@ -9,7 +9,7 @@ on:
env:
FORCE_COLOR: 2
NODE: 20
NODE: 18
jobs:
bundlewatch:
@@ -17,33 +17,30 @@ jobs:
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-
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v3
with:
node-version: "${{ env.NODE }}"
- name: Install PNPM
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v2
with:
version: 7
- name: Set up Bundler
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
ruby-version: 2.6
bundler-cache: true
- name: Install pnpm dependencies
run: pnpm install --no-frozen-lockfile
- name: Run build
run: pnpm run build
- name: Run bundlewatch
run: pnpm run bundlewatch
env:

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v3
with:
persist-credentials: false

View File

@@ -11,7 +11,7 @@ jobs:
pull-requests: write
issues: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@v8
with:
days-before-issue-stale: 360
days-before-issue-close: 14

View File

@@ -1,6 +1,10 @@
name: Changed lock files
on:
pull_request: null
push:
branches:
- main
- dev
permissions:
pull-requests: read
@@ -11,7 +15,7 @@ jobs:
name: Verify lock file integrity
steps:
- name: Clone Tabler
uses: actions/checkout@v4
uses: actions/checkout@v2
- name: Prevent lock file change
uses: xalvarez/prevent-file-change-action@v1

View File

@@ -5,46 +5,41 @@ on:
branches:
- dev
permissions:
contents: read
pull-requests: write
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to create release
issues: write # to post issue comments
pull-requests: write # to create pull request
steps:
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Setup Node.js 18
uses: actions/setup-node@v4
uses: actions/setup-node@v3
with:
node-version: 20
node-version: 18
- name: Install PNPM
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v2
with:
version: 7
- name: Install Dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Creating .npmrc
run: |
cat << EOF > "$HOME/.npmrc"
//registry.npmjs.org/:_authToken=$NPM_TOKEN
EOF
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create release Pull Request or publish to NPM
- name: Create Release Pull Request
uses: changesets/action@v1
with:
version: pnpm run version
publish: pnpm run publish
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -1,10 +1,11 @@
name: Test build
on:
pull_request: null
pull_request:
types: [ opened, reopened ]
env:
NODE: 20
NODE: 18
permissions:
contents: read
@@ -14,24 +15,26 @@ jobs:
runs-on: ubuntu-latest
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-
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v3
with:
node-version: "${{ env.NODE }}"
cache: pnpm
- name: Install PNPM
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v2
with:
version: 7
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
- run: ruby --version
- run: node --version
- name: Install pnpm dependencies

15
.gitignore vendored
View File

@@ -12,6 +12,8 @@ node_modules/
/.cache/
.sass-cache/
.vscode/
/_gh_pages/
/site/docs/**/dist/
/site/static/**/dist/
@@ -19,20 +21,13 @@ node_modules/
/svg-tmp/
/components/
/percy.sh
/preview/pages/playground.html
/preview/pages/screenshot.html
/preview/pages/screenshot-*.html
/preview/pages/playground-*.html
/preview/pages/features.html
/src/pages/playground.html
/src/pages/playground-*.html
/src/pages/features.html
.pnp.loader.mjs
.pnp.cjs
.yarn
.next
.vercel
.turbo
package-lock.json
demo/
dist/
packages-zip/

View File

@@ -1,16 +0,0 @@
#!/bin/sh
if git diff --quiet --cached package.json; then
if git diff --quiet --cached pnpm-lock.yaml; then
echo "pnpm-lock.yaml not changed, nothing to do."
else
echo "pnpm-lock.yaml changed, restore..."
git restore --staged pnpm-lock.yaml
git checkout pnpm-lock.yaml
echo "Restored pnpm-lock.yaml."
fi
else
echo "package.json changed, pnpm-lock.yaml change"
fi
exit 0

2
.nvmrc
View File

@@ -1 +1 @@
20
18

3
.percy.yml Normal file
View File

@@ -0,0 +1,3 @@
version: 1
snapshot:
widths: [1440]

12
.vscode/settings.json vendored
View File

@@ -1,12 +0,0 @@
{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**/.idea/": true
},
"explorerExclude.backup": {}
}

View File

@@ -1,229 +1,6 @@
# Changelog
## 1.0.0 - 2025-01-28
### Minor Changes
- c276a8b: Add new `Tag` component
- d380224: Add customizable Star Ratings component using `star-rating.js` library
- 47cd6c1: Add `flags.html` page with list of all flags
- be67ab6: Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
- 080c746: Adding `alerts.html` page with example of alerts.
- b381273: Change primary color value to new Tabler branding
- 75619dd: Unify dark mode with latest Bootstrap API and improve dark mode elements
- cc82dbf: New Chat component
- 5a03643: Adjusting form element sizes for enhanced mobile devices compatibility
- 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
### Patch Changes
- 293d0a4: Change Twitter to X brand
- fd0935a: Updated link to icons documentation
- 1cf27dc: Dependencies update
- 041f4e4: Order menu items alphabetically
- 20cad01: Automatically retrieve and display the changelog from the CHANGELOG.md file.
- 34f3efc: Initialize Visual Studio Code config
- 7ba7717: Make horizontal rule direction aware
- 063ef58: Update Tabler Illustrations to v1.5
- 5e2c975: Update Tabler Icons to v3.29.0
- 9d5f7ca: Remove unused dependencies from `package.json`
- be69fd6: Replace Jekyll with Eleventy
- 2f5fad6: Dependencies update
- dfd7c88: Update TinyMCE to v7.0
- 056df18: Fix text color in dark version of navbar
- 17327dc: Remove invalid `z-index` setting for dropdowns
- 4ff077a: Update Tabler Icons to version 2.21 with 18 new icons added
- 867c8dd: Update Tabler Emails to v2.0
- d8605f2: Init changelog script
- 89c6234: Adding Two-Step Verification Pages
- f6e885b: Replace `.page-center` with `.my-auto` in single page layouts
- 7aa216f: Add border-opacity variable for improved color utility
- 88eb413: Fix icon display issues in the Star Ratings component
- 78392b6: Fix `color` of disabled `dropdown-item` in Navbar component
- 4deb8f4: Bump pnpm/action-setup from 2 to 3
- 9015472: Add social icons plugin
- 7fe30a1: `Dockerfile` fix
- e53942f: Update Jekyll to version 4.3.4
- 72f868b: Update Tabler Icons to version 2.20 with 37 new icons added
- e0443c0: Add Tabler Illustrations
- 5cca710: Update illustrations and enhance SVG handling in HTML
- 3a4f10f: Fix ids of custom size star ratings
- 7896562: Unify size of avatar, flag and payment components
- 1587905: Update icons to v2.42.0
- d9e00b2: Update Bootstrap to v5.3.0
- bc1d1a3: Set `font-size` of an `i` element with `icon` class in a `button` element
- 0195f9b: Dependencies update
- a5bf5d3: Fix icons in `form-elements.html`
- 736410c: Update Tabler Icons to v3.28.1
- 3f516ea: Fix `rgba` color values in `_variables.scss`
- e91884e: Fix description of alerts with a description
- 90cc744: Fix colors of disabled `.ts-control`
- 1801e41: Center content on error and single page layouts
- 45c83ac: Resolve map page issues
- faee63c: Improve base font family loading
- 5e7e0dd: Introduce Docker Compose Config to build and run Ttabler locally
- c293a66: Fix `@charset` CSS declaration in bundle.
- cb4a681: Update `_navbar.scss` with disabled dropdown menu items color
- af41fb3: Update Tabler Icons to v3.17.0
- 6cbe888: Update `@tabler/icons` to v3.0
- 0e4bf5f: Refactor data structure by converting YAML files to JSON
- 82cf257: Increase `z-index` of `ts-dropdown` to prevent overlapping by buttons
- 4b4b4f6: Adding punctuation to `SECURITY.md`
- a0a2d52: Fix form controls bugs in dark mode
- f45b697: Fix padding in code blocks
- 4de166d: Unified Box Shadows with Bootstrap Compatibility
- 87bf2f5: Remove duplicated setting of color in `th` element
- 5dc45aa: Fix layout of search results for small and medium screens
- 4ae0358: Remove `text-decoration` on hovering `a` element with class having `icon` class
- e798eb6: Fix small typo in tables docs
- 1c1d0c9: Improve documentation for alerts
- 371ef84: Bump `pnpm/action-setup` from 3 to 4
- 8421fc2: Update dependencies
- 0625f5f: Update Tabler Icons to version 2.22 with 18 new icons added
- ba65fc3: Update devDependencies
- a43ded4: Add All Contributions package to project for easy contribution tracking
- 2f622c9: Set value of `$font-family-monospace` as default
- 2c7c448: Refactor Dockerfile and package.json
- 5ec7f05: Resolved light dropdown issue on dark theme
- b0b07b9: Enhance documentation
- 0f129b1: Update Tabler Icons to version 2.19 with 18 new icons added
- 507df7b: Fix cells with inline icons
- 0e5b44a: Fix `color` of disabled `nav-link` in `nav-bordered`
- 65c1300: Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
- 8552a46: Switch from `npm` to `pnpm` for faster package installation
- 4a9e40d: Increase contrast of active `dropdown-item` in vertical layout
- 17ebdf4: Update documentation for Tabler components
- 4c88481: Add variable to configure `avatar-list` spacing
- df46ee7: Do not display empty `fieldset` element
- 875cafa: Refactor SCSS variables to use `color.adjust` for improved color manipulation
- eb28546: Add Tabler Illustrations
- 650d84c: Update required Node.js version to 18 and add `.nvmrc` file
- fb659d4: Fix table default background color
- f77c712: Avoid SCSS color dependency on `:focus`
- 71c68ce: Update changelog configuration and release scripts
- 34d124d: Update Tabler Icons to v3.26.0
- 4cd9215: Updated Tabler Icons to v3.24.0
- 7bb947b: Update Tabler Icons to version 2.18 with 18 new icons added
- c75cf55: Update Node.js engine requirement to allow versions >=20
- 1c34e8e: Update Tabler Icons to v3.14.0
- 289dd3b: Add Prettier to project for consistent code formatting
- f83e36c: Upgrade Node.js from version 18 to version 20 for improved performance, security, and feature updates.
- b885852: Update Tabler Icons to version 2.25 with 48 new icons added
- 53a5117: Fix responsiveness issue in Settings menu
- 38504e5: Added 3 new payments from Nepal: Esewa, FonePay, Khalti and Imepay
- 35ee14d: Add new Filled section to Icons page
- d32f242: Update `bootstrap` to v5.3.1
- d82f94e: Update package dependencies to latest versions
- 54c5ad0: Fix link to webfont version of Tabler Icons
- 94b83d4: Add support for changeset tool for more efficient and organized code changes
- c51ff28: Fix colors in date range datepicker
## `1.0.0-beta24` - 2025-01-11
- Enhanced documentation.
- Updated illustrations and improved SVG handling in HTML.
- Updated copyright year in LICENSE file to 2025.
- Added marketing pages plugin.
## `1.0.0-beta23` - 2025-01-07
- Documentation improvements.
- Added countup functionality and updated documentation example.
- Do not display empty `<fieldset>`.
- Set font-size of webfont icon inside a button.
- Ordered menu items alphabetically.
- Marked value of `$font-family-monospace` as `!default`.
- Fixed unpkg links to static-files icons.
- Fixed description of alerts with a description.
- Fixed layout of search results for small and medium screens.
- Removed invalid z-index setting for dropdown.
- Fixed IDs of custom size star ratings.
- Removed text-decoration on hover for elements with child icons.
- Fixed link to webfont icons.
- Updated color reference links in UI component documentation.
- Fixed typo in browser support documentation summary.
- Enhanced Figma plugin documentation with detailed usage instructions.
- Added documentation for Tabler Illustrations and updated index with a link.
- Enhanced documentation for various UI and icon sections.
- Added new documentation files for icons and UI components; restructured existing files.
- Updated documentation structure and content for icons and UI components.
- Removed outdated `menu.json` and added `index.mdx` files for UI documentation structure.
- General docs update.
- Increased contrast of active dropdown-item in vertical layout.
- Removed duplicated color setting in table headers.
- Increased `z-index` of `ts-dropdown`.
- Added social icons plugin.
- Described variables for datagrid in docs.
- Fixed multiple documentation issues.
- Removed unused config from the code.
- Fixed links to Tabler Icons.
- Updated dark image.
- Updated screenshot.
- Fixed icon issues.
- Fixed URL in documentation.
## `1.0.0-beta22` - 2025-01-02
- Fixed `@charset` CSS declaration in bundle.
- Fixed cells with inline icons.
- Fixed padding in code blocks.
- Fixed colors in date range datepicker.
- Fixed icon display issues in the Star Ratings component.
- Fixed `z-index` value of the `nav-tab` inside `card-tab`.
- Fixed wrong gray colors.
- Fixed incorrect CDN URL in `webfont.mdx`.
- Ensured border color works in dark mode.
- Replaced `.page-center` with `.my-auto` in single-page layouts.
- Updated Tabler Emails to v2.0.
- Updated Tabler Icons to v3.26.0.
- Updated docs structure.
- Updated `download.mdx`.
- Updated Node.js to version 20.
- Improved base font family.
- Made horizontal rule direction-aware.
- Added new payment providers.
- Read changelog from `CHANGELOG.md` file.
- Initialized VS Code configuration.
## `1.0.0-beta21` - 2024-09-8
- Updated dependencies.
- Updated Tabler Icons to v3.14.0 and the import script.
- Fixed invisible scrollbar in dark mode when navigating the preview.
- Styled `btn-close` specifically for `.modal-header`.
- Added proper borders to the ribbon start class.
- Changed brand color.
- Included `docs` in the `npm` package.
- Added Tabler Illustrations.
- Fixed use of the secondary color in specific form elements.
- Introduced Docker Compose Config for local Tabler builds.
- Allowed usage of `tinymce` v7.x as a peer dependency.
- Updated TinyMCE to v7.0.
- Rebranded Twitter to X.
- Replaced undraw illustrations with Tabler Illustrations.
- Added punctuation to `SECURITY.md`.
- Updated `_navbar.scss` to correct disabled dropdown menu item colors.
- Removed unused packages.
- Fixed map pages.
- Resolved issues with toasts in dark mode.
- Fixed alert background prefix.
- Corrected a typo in CHANGELOG.md.
- Fixed radial chart issue.
- Added documentation on running the site locally in Site README.
- Updated colors in `colors.mdx`.
- Fixed dynamic SCSS prefix in mixins.
- Changed `<h1>` to `<div>` in `navbar-logo.html`.
- Resolved vertical centering on error pages.
- Fixed navbar menu issues.
- Added `background-clip: border-box` to `.dropdown-menu` class.
- Replaced `href="#"` with `href="javascript:void(0)"`.
- Fixed disabled CSS class for links.
- Addressed missing variables and minor color adjustments.
- Improved heights, scrolls, and layouts in Docs examples.
- Fixed flags display in preview.
All notable changes to this project will be documented in this file.
## `1.0.0-beta20` - 2023-08-24
@@ -251,6 +28,7 @@
- `Dockerfile` fix
- Switch from `npm` to `pnpm` for faster package installation
## `1.0.0-beta19` - 2023-05-15
- Add customizable Star Ratings component using `star-rating.js` library (#1571)
@@ -259,6 +37,7 @@
- Fix text color in dark version of navbar (#1569)
- Changelog update
## `1.0.0-beta18` - 2023-05-14
- new page: Cookie banner
@@ -282,6 +61,7 @@
- Dark mode lite colors improvement
- Fix non full width selects (#1392)
## `1.0.0-beta17` - 2023-01-28
- update `bootstrap` to v5.3.0
@@ -304,6 +84,7 @@
- move `@tabler/icons` to `dev-dependencies`
- fix #1370: avatar stacked list is not stacked anymore
## `1.0.0-beta16` - 2022-11-12
- new `Photogrid` page
@@ -318,6 +99,7 @@
- homepage navbar fix
- fix #1262 - `.bg-opacity-xx` class is not functioning properly
## `1.0.0-beta15` - 2022-11-01
- new `badges` page
@@ -335,11 +117,13 @@
- `btn-actions` fixes
- replace `$text-muted` to css variable
## `1.0.0-beta14` - 2022-10-21
- fix active items in dark mode
- update Jekyll to newest version
## `1.0.0-beta13` - 2022-10-18
- update Bootstrap to 5.2.1, update dependencies
@@ -370,6 +154,7 @@
- fix #1275 - remove last border-right on progress bar
- fix #1261 - broken offcanvas bg
## `1.0.0-beta12` - 2022-09-19
- new "Job listing" page
@@ -395,6 +180,7 @@
- fix form elements demo page radio buttons
- replace `gulp-minify` with `gulp-terser`
## `1.0.0-beta11` - 2022-07-05
- new `Dropzone` component
@@ -410,6 +196,7 @@
- fix: #1125 incorrect chart display in the mobile version
- update Bootstrap to 5.2.0
## `1.0.0-beta10` - 2022-04-29
- new `datatable` component
@@ -419,6 +206,7 @@
- replace !important modifier with more specific selectors (#1100)
- new `FAQ` page
## `1.0.0-beta9` - 2022-02-26
- fix: #1061 - list group item colors in light and dark modes
@@ -432,6 +220,7 @@
- add `font-display: swap;` to improve font loading
- new `Boxed` layout
## `1.0.0-beta8` - 2022-02-05
- update dependencies
@@ -441,6 +230,7 @@
- replace `badge` with `status-dot` in `navbar-notifications.html`
- map tooltip fixes
## `1.0.0-beta7` - 2022-02-05
- fix: #1019 - project-overview.html link not working
@@ -454,6 +244,7 @@
- RTL stylesheet fixes
- new card action demos
## `1.0.0-beta6` - 2022-01-18
- pricing cards fix
@@ -467,6 +258,7 @@
- fix #959 - `node-sass` does not properly compile nested media queries
- update package dependencies to newest version
## `1.0.0-beta5` - 2021-12-07
**Tabler has finally lived to see dark mode! 🌝🌚**
@@ -484,6 +276,7 @@
- colors unify
- add `tom-select` and remove `choices.js`
## `1.0.0-beta4` - 2021-10-24
- upgrade required node.js version to 14
@@ -492,6 +285,7 @@
- fix #775 - litepicker not initializing
- fix `nouislider` import in dev
## `1.0.0-beta3` - 2021-05-08
- upgrade Bootstrap to 5.0
@@ -499,6 +293,7 @@
- change `$border-radius-pill` variable
- badge vertical align fix
## `1.0.0-beta2` - 2021-03-29
- update dependencies
@@ -512,6 +307,7 @@
- charts label fixes
- charts docs
## `1.0.0-beta` - 2021-02-17
**Initial beta release of Tabler v1.0! Lots more coming soon though 😁**

View File

@@ -1,20 +1,23 @@
FROM ruby:3.2-alpine
FROM ruby:2.7-alpine
WORKDIR /app
ADD _config.yml /app/
ADD _config_prod.yml /app/
ADD Gemfile /app/
ADD Gemfile.lock /app/
ADD package.json /app/
ADD pnpm-lock.yaml /app/
ADD gulpfile.js /app/
RUN apk add --virtual build-dependencies build-base npm
RUN apk upgrade
RUN apk add --virtual build-dependencies build-base
RUN apk add npm --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/
RUN npm i -g pnpm
RUN pnpm install
RUN bundle config --global silence_root_warning 1 && bundler install --verbose
# website
EXPOSE 3000
# website management (browser auto reload)
EXPOSE 3001
# run tabler
ENTRYPOINT [ "pnpm", "run", "start" ]
ENTRYPOINT [ "pnpm", "run", "start-plugins" ]

14
Gemfile Normal file
View File

@@ -0,0 +1,14 @@
source "https://rubygems.org"
gem "jekyll", "4.3.2"
group :jekyll_plugins do
gem "jekyll-random"
gem "jekyll-tidy"
gem "jekyll-timeago"
gem 'jekyll-redirect-from'
end
gem 'wdm', '>= 0.1.1' if Gem.win_platform?

89
Gemfile.lock Normal file
View File

@@ -0,0 +1,89 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.5)
public_suffix (>= 2.0.2, < 6.0)
colorator (1.1.0)
concurrent-ruby (1.2.2)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.16.2)
forwardable-extended (2.6.0)
google-protobuf (3.24.3)
htmlbeautifier (1.4.2)
htmlcompressor (0.4.0)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
jekyll (4.3.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-random (0.1)
jekyll (>= 3.3, < 5.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-tidy (0.2.2)
htmlbeautifier
htmlcompressor
jekyll
jekyll-timeago (0.15.0)
mini_i18n (>= 0.8.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_i18n (0.9.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.0.3)
rake (13.0.6)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
rouge (4.1.3)
safe_yaml (1.0.5)
sass-embedded (1.68.0)
google-protobuf (~> 3.23)
rake (>= 13.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.4.2)
webrick (1.8.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll (= 4.3.2)
jekyll-random
jekyll-redirect-from
jekyll-tidy
jekyll-timeago
BUNDLED WITH
2.4.19

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2018-2025 The Tabler Authors
Copyright (c) 2018-2023 The Tabler Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

241
README.md
View File

@@ -1,5 +1,5 @@
<p align="center">
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/preview/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/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 premium and open source dashboard template with a responsive and high-quality UI.
</p>
@@ -13,55 +13,19 @@ A premium and open source dashboard template with a responsive and high-quality
<a href="https://github.com/tabler/tabler" target="__blank"><img alt="GitHub stars" src="https://img.shields.io/github/stars/tabler/tabler?style=social"></a>
</p>
## Sponsors
**If you want to support our project and help us grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
<p align="center">
<a href="https://github.com/sponsors/codecalm">
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
<img src='https://raw.githubusercontent.com/tabler/static/main/sponsors.svg'>
</a>
</p>
<p align="center">
<a href="https://github.com/sponsors/codecalm" target="_blank">
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/preview/static/sponsor-banner-homepage.svg" alt="Sponsor Banner">
</a>
</p>
## Testing
<p align="center">Visual testing with:</p>
<p align="center">
<a href="https://argos-ci.com/" target="_blank">
<picture>
<img src="https://github.com/user-attachments/assets/7d231a26-eff5-4fc5-8392-b2a679a7c572" alt="Argos-CI" height="164" />
</picture>
</a>
</p>
<p align="center">Browser testing via:</p>
<p align="center">
<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="labmdatest" 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>
<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>
<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>
## 🚀 Features
@@ -72,30 +36,119 @@ We've created this admin panel for everyone who wants to create templates based
* **HTML5 & CSS3:** We use only modern web technologies, such as HTML5 and CSS3. Our theme includes some subtle CSS3 animations, which will help you attract attention.
* **Clean Code:** We followed Bootstraps guidelines carefully to make your integration as easy as possible. All code is handwritten and W3C valid.
* **Demo pages**: Tabler features over 20 individual pages using various components, which gives you the freedom to choose and combine. All components can vary in color and styling that you can easily modify using Sass. Sky is the limit!
* **Single Page Application versions:** [Tabler React](https://github.com/tabler/tabler-react) has React components for Tabler.
## 📖 Documentation
The documentation is available at https://tabler.io/docs/
Documentation is available as a part of Tabler preview: https://tabler.io/docs/
## 🪴 Project Activity
<p align="center">
<img src="https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg" alt="Repobeats analytics image" />
</p>
![Alt](https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg "Repobeats analytics image")
## 💕 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>
### Sponsors
Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. [Become a sponsor!](https://opencollective.com/tabler#sponsor)
<a href="https://opencollective.com/tabler/tiers/sponsor/0/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/0/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/1/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/1/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/2/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/2/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/3/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/3/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/4/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/4/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/5/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/5/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/6/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/6/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/7/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/7/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/8/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/8/avatar.svg" /></a>
<a href="https://opencollective.com/tabler/tiers/sponsor/9/website" target="_blank"><img src="https://opencollective.com/tabler/tiers/sponsor/9/avatar.svg" /></a>
## 📦 Setup environment
To use our build system and run our documentation locally, you'll need a copy of Tabler's source files. Follow the steps below:
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
2. Navigate to the root `/tabler` directory and run `pnpm install` to install our local dependencies listed in `package.json`.
3. [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) - the recommended version is [2.7.6](https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.6.tar.gz).
4. [Install Bundler](https://bundler.io) with `gem install bundler` and finally run `bundle install`. It will install all Ruby dependencies, such as [Jekyll and plugins](https://jekyllrb.com).
**OSX users**:
1. NPM ```pnpm install```
2. install Ruby (2.5.* recommended)
```brew install ruby @2.5```
3. install bundler
```gem install bundler```
4. install
```bundle install```
- if bundler get any errors try
```
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
```
5. Run NPM
```npm run start```
**Windows users**:
1. [Install Git](https://git-scm.com/download/win) in `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
2. [Install Ruby+Devkit](https://rubyinstaller.org/downloads/) - the recommended version is [2.7.6](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-devkit-2.7.6-1-x64.exe).
3. [Read guide](https://jekyllrb.com/docs/installation/windows/) to get Jekyll up and running without problems.
Once you complete the setup, you'll be able to run the various commands provided from the command line.
## Build locally
You need to have `pnpm` and `bundler` installed.
1. From the root `/tabler` directory, run installation in the command line:
- `pnpm install`
- `bundler install`
2. Then execute `pnpm run start-plugins` to start up the application stack.
3. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
4. Any change in the `/src` directory will build the application and refresh the page.
**Note**:
Run `pnpm run build` for reforms a one off build application without refresh.
Open [http://localhost:3001](http://localhost:3001) to configure the Web server.
## Installation
### Package Managers
Tabler is distributed via npm. You can install it with this or your preferred JavaScript package manager:
Tabler is distributed via npm.
```sh
npm install --save @tabler/core
```
## Running with Docker
If you don't want to install node/npm/ruby and the dependencies on your local environment, you can use the provided Dockerfile to build a docker image.
This Dockerfile is provided as an example to spin-up a container running Tabler.
Example of how to use this image:
1. Build the tabler image : `docker build -t tabler .`
2. Run the tabler image while mounting the `src` directory as well as the `_config.yml` file into the container.
Don't forget to expose the port 3000 so you can browse the website locally.
You can also expose the port 3001 to have access to BrowserSync
```sh
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src -v $(pwd)/_config.yml:/app/_config.yml tabler
```
Now open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
### CDN support
All files included in `@tabler/core` npm package are also available over a CDN.
All files included in `@tabler/core` npm package are available over a CDN.
#### Javascript
@@ -109,84 +162,24 @@ All files included in `@tabler/core` npm package are also available over a CDN.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css">
```
## Building locally
## Feature requests
To build a copy of Tabler locally, you have two options. You can either set up your device directly with the development tools required to build Tabler, or if you would prefer not to install all the development dependencies directly onto your device, you can use a Dockerfile that Tabler provides to build a docker image. Instructions follow below.
https://tabler.canny.io/feature-requests
### First steps: Downloading the Tabler source files
With either method, the first thing you'll want to do is download a copy of the Tabler source files to your device.
#### From the Tabler GitHub releases page
If you don't want to edit the source code once you've downloaded it, and aren't interested in merging future project updates into your copy, you can just download the source files straight from the [Tabler releases on GitHub](https://github.com/tabler/tabler/releases) and extract the contents to a directory called `tabler`.
#### Cloning with Git
If you **do** wish to edit the source code after downloading it, for example to contribute changes back to the Tabler project, you'll want to do this by cloning it with Git:
1. If you don't have Git installed on your device, download and install it. You can find instructions at [https://git-scm.com/downloads](https://git-scm.com/downloads).
2. (Optional) **Windows users:** you could optionally install Git in the `C:\Program Files\git\bin` directory and run `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"` to change the default shell.
3. Clone the Tabler project into a folder on your device. Instructions can be found at [cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
### Installing and running development tools directly
1. [Install Node.js](https://nodejs.org/download/), which we use to manage our dependencies.
2. [Install pnpm](https://pnpm.io/installation) (We recommend either by [Using Corepack](https://pnpm.io/installation#using-corepack) or by [Using npm](https://pnpm.io/installation#using-npm))
3. From the root `/tabler` directory where you downloaded the Tabler source files, run installation on the command line:
```sh
pnpm install
```
4. Then execute the following to start up the application stack:
```sh
pnpm run start
```
5. Open [http://localhost:3000](http://localhost:3000) in your browser, and voilà.
Any change in the `/src` directory will rebuild the application and refresh the page.
**Note**:
If you wish to perform a one-off build without auto-refresh on any changes, you can run:
```sh
pnpm run build
```
You can open [http://localhost:3001](http://localhost:3001) to configure the Web server.
### Installing and running development tools with Docker
**Plain Docker**
Here is an example of how to use this image:
1. From the root `/tabler` directory where you downloaded the Tabler source files, build the tabler image:
```sh
docker build -t tabler .
```
2. Run the tabler image. The following command mounts the `src` directory into the container, exposes port 3000 to browse the website locally, and exposes port 3001 to automatically sync changes:
```sh
docker run -p 3000:3000 -p 3001:3001 -v $(pwd)/src:/app/src tabler
```
3. Open your browser to [http://localhost:3000](http://localhost:3000). Edit anything in the `src/` folder and watch your browser refresh the page after it has been rebuilt.
**Docker Compose**
You can also use the docker compose config from this repo. From the root `/tabler` directory where you downloaded the Tabler source files, use `docker compose build && docker compose up` or `docker compose up --build` to build and start the container. Edit anything in the `src/` folder the same way as with plain docker and access the same URLs and ports in your browser.
## Bugs and feature requests
Found a bug or have a feature request? [Please open a new issue](https://github.com/tabler/tabler/issues/new).
## 🤓 Creators
**Paweł Kuna**
- <https://x.com/codecalm>
- <https://twitter.com/codecalm>
- <https://github.com/codecalm>
- <https://codecalm.net>
**Bartłomiej Gawęda**
- <https://x.com/B_Gaweda>
- <https://github.com/BG-Software-BG>
## 👨‍🚀 Contributors
@@ -194,11 +187,31 @@ This project exists thanks to all the people who contribute.
<img src="https://opencollective.com/tabler/contributors.svg?width=890&button=false" />
## Social media
## 🌸 Backers
Stay up to date by joining our community on <a href="https://x.com/tabler_io" >X</a> and <a href="https://www.facebook.com/tabler.io">Facebook</a>
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/tabler#backer)
<a href="https://opencollective.com/tabler#backers" target="_blank"><img src="https://opencollective.com/tabler/tiers/backer.svg?width=890&button=false" /></a>
## ❤️ Thanks
<a href="https://www.chromatic.com/"><img src="https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png" width="153" height="30" alt="Chromatic" /></a>
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
## License
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- 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!

View File

@@ -11,6 +11,6 @@ We take security very seriously and ask that you follow the following process.
## Reporting a Vulnerability
If you think you may have found a security bug, We ask that you privately send the details to support@tabler.io.
If you think you may have found a security bug we ask that you privately send the details to support@tabler.io.
Please make sure to use a descriptive title in the email.

233
_config.yml Normal file
View File

@@ -0,0 +1,233 @@
source: src/pages
destination: tmp
keep_files:
- css
- js
- img
- dist
- static
- playground.html
use-iconfont: false
rtl: false
title: Tabler
description: Premium and Open Source dashboard template with responsive and high quality UI.
theme-color: "#0054a6"
email: support@tabler.io
homepage: https://tabler.io
github-url: https://github.com/tabler/tabler
github-sponsors-url: https://github.com/sponsors/codecalm
changelog-url: https://github.com/tabler/tabler/releases
sponsor-url: https://github.com/sponsors/codecalm
preview-url: https://tabler.io/demo
docs-url: https://tabler.io/docs
mapbox-key: pk.eyJ1IjoiY29kZWNhbG0iLCJhIjoiSzRiOVJvQSJ9.BUVkTT6IYs83xSUs4H7bjQ
google-maps-key: AIzaSyAr5mRB4U1KRkVznIrDWEvZjroYcD202DI
google-maps-dev-key: AIzaSyCL-BY8-sq12m0S9H-S_yMqDmcun3A9znw
npm-package: "@tabler/core"
random-date-from: "2018-01-01"
random-date-to: "2022-01-01"
debug: false
layout-dark: false
plugins:
- jekyll-random
- jekyll-tidy
- jekyll-timeago
- jekyll-redirect-from
tabler-css-plugins:
- tabler-flags
- tabler-payments
- tabler-vendors
exclude:
- .jekyll-cache
- redirects.json
markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge
jekyll_tidy:
compress_html: false
ignore_env: development
defaults:
- scope:
type: "pages"
path: "*.md"
values:
layout: markdown
- scope:
type: "pages"
values:
layout: default
colors:
blue:
class: blue
hex: '#0054a6'
title: Blue
azure:
class: azure
hex: '#45aaf2'
title: Azure
indigo:
class: indigo
hex: '#6574cd'
title: Indigo
purple:
class: purple
hex: '#a55eea'
title: Purple
pink:
class: pink
hex: '#f66d9b'
title: Pink
red:
class: red
hex: '#fa4654'
title: Red
orange:
class: orange
hex: '#fd9644'
title: Orange
yellow:
class: yellow
hex: '#f1c40f'
title: Yellow
lime:
class: lime
hex: '#7bd235'
title: Lime
green:
class: green
hex: '#5eba00'
title: Green
teal:
class: teal
hex: '#2bcbba'
title: Teal
cyan:
class: cyan
hex: '#17a2b8'
title: Cyan
colors-extra:
white:
hex: '#ffffff'
title: White
dark:
hex: '#303645'
title: Dark
gray:
hex: '#868e96'
title: Gray
variants:
- name: success
icon: check
- name: info
icon: info-circle
- name: warning
icon: alert-triangle
- name: danger
icon: alert-circle
theme-colors:
primary:
class: primary
title: Primary
secondary:
class: secondary
title: Secondary
success:
class: success
title: Success
warning:
class: warning
title: Warning
danger:
class: danger
title: Danger
info:
class: info
title: Info
dark:
class: dark
title: Dark
light:
class: light
title: Light
button-states:
- class:
title: Normal
- class: active
title: Active state
- class: disabled
title: Disabled
socials:
facebook:
icon: brand-facebook
title: Facebook
twitter:
icon: brand-twitter
title: Twitter
google:
icon: brand-google
title: Google
youtube:
icon: brand-youtube
title: Youtube
vimeo:
icon: brand-vimeo
title: Vimeo
dribbble:
icon: brand-dribbble
title: Dribbble
github:
icon: brand-github
title: Github
instagram:
icon: brand-instagram
title: Instagram
pinterest:
icon: brand-pinterest
title: Pinterest
vk:
icon: brand-vk
title: VK
rss:
icon: rss
title: RSS
flickr:
icon: brand-flickr
title: Flickr
bitbucket:
icon: brand-bitbucket
title: Bitbucket
tabler:
icon: brand-tabler
title: Tabler
months-short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
months-long: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
icons:
link: https://tabler-icons.io
emails:
price: "$29"
count: 54
buy_link: https://tabler.io/buy-emails

4
_config_prod.yml Normal file
View File

@@ -0,0 +1,4 @@
exclude:
- redirects.json
- playground.html
- playground-*.html

58
build/download-images.js Normal file
View File

@@ -0,0 +1,58 @@
#!/usr/bin/env node
'use strict'
const YAML = require('yaml')
const fs = require('node:fs')
const path = require('node:path')
const request = require('request')
const filePath = path.join(__dirname, '../src/pages/_data/photos.yml')
const photos = YAML.parse(fs.readFileSync(filePath, 'utf8'))
const urlTitle = (str) => {
str = str
.toLowerCase()
.replaceAll('&', 'and')
.replace(/[^[a-z0-9-]/g, '-')
.replace(/-+/g, '-')
return str
}
const download = function(uri, filename, callback, error) {
request.head(uri, function(err, res, body) {
request(uri).pipe(fs.createWriteStream(filename))
.on('close', callback)
.on('error', error)
})
}
async function downloadPhotos() {
for (const key in photos) {
const photo = photos[key]
let filename, i = 1;
do {
filename = `${urlTitle(photo['title'])}${i > 1 ? `-${i}` : ''}.jpg`
i++
} while (fs.existsSync(path.join(__dirname, `../src/static/photos/${filename}`)))
await new Promise((resolve, reject) => {
download(photo['path'], path.join(__dirname, `../src/static/photos/${filename}`), function(){
resolve()
}, function() {
reject()
});
})
photos[key]['file'] = filename
photos[key]['horizontal'] = photo['width'] > photo['height']
}
fs.writeFileSync(filePath, YAML.stringify(photos))
}
downloadPhotos();

View File

@@ -1,46 +0,0 @@
#!/usr/bin/env node
'use strict'
import { readFileSync, writeFileSync } from 'node:fs';
import { join, dirname, basename } from 'node:path';
import { fileURLToPath } from 'node:url'
import { sync } from 'glob';
import banner from '@repo/banner';
const __dirname = dirname(fileURLToPath(import.meta.url))
const styles = sync(join(__dirname, '..', 'dist', 'css', '*.css'))
const plugins = {
'tabler-flags': 'Flags',
'tabler-flags.rtl': 'Flags RTL',
'tabler-marketing': 'Marketing',
'tabler-marketing.rtl': 'Marketing RTL',
'tabler-payments': 'Payments',
'tabler-payments.rtl': 'Payments RTL',
'tabler-socials': 'Socials',
'tabler-socials.rtl': 'Socials RTL',
'tabler-vendors': 'Vendors',
'tabler-vendors.rtl': 'Vendors RTL',
}
styles.forEach((file, i) => {
const content = readFileSync(file, 'utf8')
const filename = basename(file)
const pluginKey = Object.keys(plugins).find(plugin => filename.includes(plugin))
const plugin = plugins[pluginKey]
const regex = /^(@charset ['"][a-zA-Z0-9-]+['"];?)\n?/i
let newContent = ''
if (content.match(regex)) {
newContent = content.replace(regex, (m, m1) => {
return `${m1}\n${banner(plugin)}\n`
})
} else {
newContent = `${banner(plugin)}\n${content}`
}
writeFileSync(file, newContent, 'utf8')
})

View File

@@ -1,15 +0,0 @@
export default context => {
return {
map: {
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
},
rtlcss: context.env === 'RTL'
}
}
}

View File

@@ -1,46 +0,0 @@
import path from 'node:path'
import process from 'node:process'
import { fileURLToPath } from 'node:url'
import { babel } from '@rollup/plugin-babel'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import replace from '@rollup/plugin-replace'
import banner from '@repo/banner'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
const ESM = process.env.ESM === 'true'
let destinationFile = `tabler${ESM ? '.esm' : ''}`
const external = []
const plugins = [
babel({
exclude: 'node_modules/**',
babelHelpers: 'bundled'
})
]
plugins.push(
replace({
'process.env.NODE_ENV': '"production"',
preventAssignment: true
}),
nodeResolve()
)
const rollupConfig = {
input: path.resolve(__dirname, `../js/tabler.${ESM ? 'esm' : 'umd'}.js`),
output: {
banner: banner(),
file: path.resolve(__dirname, `../dist/js/${destinationFile}.js`),
format: ESM ? 'esm' : 'umd',
generatedCode: 'es2015'
},
external,
plugins
}
if (!ESM) {
rollupConfig.output.name = 'tabler'
}
export default rollupConfig

View File

@@ -1,39 +0,0 @@
# @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

@@ -1,8 +0,0 @@
---
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.
---

View File

@@ -1,29 +0,0 @@
---
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 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

@@ -1,63 +0,0 @@
---
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 their usage in the [Compiled HTML](/docs/emails/compiled-html) section.
* Source HTML files for light and dark themes. Find more information in the [Source HTML](/docs/emails/source-html) section.
* 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 fills.
* `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

@@ -1,9 +0,0 @@
---
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

@@ -1,26 +0,0 @@
---
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 need a bit more work than the compiled ones. Learn how to use them.
seoDescription: The source HTML files from the Tabler Emails package need a bit more work than 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 the `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, such as:
* 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,13 +0,0 @@
---
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 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
---
## Browse icons
Tabler Icons is a comprehensive icon library that features over <IconsCount rounded /> high-quality icons. These icons are designed with a clean and modern aesthetic, making them suitable for a wide range of applications.
To use Tabler Icons, you can visit their website at https://tabler-icons.io. From there, you can browse the full collection of icons by category or search for a specific icon using the search bar. Once you have found an icon you like, you can download it in various file formats, including SVG, PNG, and Icon Font.

View File

@@ -1,5 +0,0 @@
---
title: Libraries
description: Explore Tabler Icons libraries.
summary: The libraries section offers various integrations of Tabler Icons for popular frameworks and technologies, making it easy to incorporate icons into any project.
---

View File

@@ -1,42 +0,0 @@
---
title: Preact
description: Tabler Icons library for Preact framework.
summary: Tabler Icons for Preact provides an optimized collection of icons specifically designed for use with Preact. These lightweight and scalable icons are easy to integrate into Preact-based projects.
---
![](/docs/icons/package-preact.png)
## Installation
<TabsPackage name="@tabler/icons-preact" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
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';
const App = () => {
return <IconArrowDown />;
};
export default App;
```
You can pass additional props to adjust the icon.
```js
<IconArrowDown color="red" size={48} />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |

View File

@@ -1,42 +0,0 @@
---
title: React
description: Tabler Icons library for React framework.
summary: Tabler Icons for React offers a robust set of icons tailored for React applications, providing developers with a seamless way to enhance their user interfaces with high-quality, scalable graphics.
---
![](/docs/icons/package-react.png)
## Installation
<TabsPackage name="@tabler/icons-react" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
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';
const App = () => {
return <IconArrowLeft />;
};
export default App;
```
You can pass additional props to adjust the icon.
```js
<IconArrowLeft color="red" size={48} />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |

View File

@@ -1,42 +0,0 @@
---
title: SolidJS
description: Tabler Icons library for SolidJS framework.
summary: Tabler Icons for SolidJS is a lightweight library offering a vast selection of high-quality icons. It is designed for seamless integration with SolidJS, enabling developers to build visually appealing interfaces.
---
![](/docs/icons/package-solidjs.png)
## Installation
<TabsPackage name="@tabler/icons-solidjs" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
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';
const App = () => {
return <IconArrowRight />;
};
export default App;
```
You can pass additional props to adjust the icon.
```js
<IconArrowRight color="red" size={48} />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |

View File

@@ -1,43 +0,0 @@
---
title: Svelte
description: Tabler Icons library for Svelte framework.
summary: Tabler Icons for Svelte provides a clean and efficient way to use Tabler's comprehensive icon set in Svelte applications, helping developers deliver polished, user-friendly designs.
---
![](/docs/icons/package-svelte.png)
## Installation
<TabsPackage name="@tabler/icons-svelte" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's built with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```sveltehtml
<script lang="ts">
import { IconHeart } from '@tabler/icons-svelte';
</script>
<main>
<IconHeart />
</main>
```
You can pass additional props to adjust the icon.
```sveltehtml
<IconHeart size={48} stroke={1} />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |
| `class` | _String_ | |

View File

@@ -1,50 +0,0 @@
---
title: Vue
description: Tabler Icons library for Vue framework.
summary: Tabler Icons for Vue offers a collection of customizable and scalable icons designed for use in Vue applications, providing a powerful tool for creating modern and engaging interfaces.
---
![](/docs/icons/package-vue.png)
## Installation
<TabsPackage name="@tabler/icons-vue" />
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 treeshaking, so you only import the icons you use.
```vue
<template>
<IconHome />
</template>
<script>
// Returns Vue component
import { IconHome } from '@tabler/icons-vue';
export default {
components: {
IconHome
}
};
</script>
```
You can pass additional props to adjust the icon.
```html
<IconHome color="red" :size="48" stroke-width="1" />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |

View File

@@ -1,60 +0,0 @@
---
title: Webfont
description: Tabler Icons as a webfont.
summary: Tabler Icons as a webfont allows you to easily include icons in your projects using simple CSS classes, offering a lightweight and scalable solution for web development.
---
![](/docs/icons/package-webfont.png)
## Installation
```
yarn add @tabler/icons-webfont
```
or
```
npm install @tabler/icons-webfont
```
or
```
pnpm install @tabler/icons-webfont
```
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"
/>
```
Instead of a specific version, you can use `latest` to always get the newest icons.
## Usage
### HTML
```html
<i class="ti ti-brand-tabler"></i>
```
### CSS
```css
content: 'ec8f';
```
### SCSS
```scss
content: $ti-icon-brand-tabler;
```

View File

@@ -1,15 +0,0 @@
---
title: Figma plugin
description: Use Tabler Icons directly in Figma.
summary: The Tabler Figma plugin allows designers to seamlessly integrate Tabler Icons into their Figma projects, providing quick access to a vast library of customizable icons that enhance the design workflow.
---
![Tabler Figma Plugin](/docs/icons/figma-plugin.png)
The Tabler Icons Figma plugin is an essential tool for designers looking to enhance their workflow. It provides seamless access to a comprehensive library of high-quality, customizable icons directly within Figma. Whether you're designing dashboards, websites, or mobile apps, this plugin allows you to quickly search, preview, and integrate Tabler Icons into your projects, saving time and ensuring a consistent, modern aesthetic.
## Usage
Using the plugin is simple: install it from the Figma community, launch it within your design file, and search for the desired icon by keyword. Once youve found the perfect icon, click to insert it into your design. You can easily customize the icons size, color, and stroke weight to fit your specific needs, making it a versatile addition to your design toolkit.
<BlogButton href="https://www.figma.com/community/plugin/1169807996149376642/Tabler-Icons">Download Plugin</BlogButton>

View File

@@ -1,4 +0,0 @@
---
title: Plugins
description: Icon plugins for seamless integration.
---

View File

@@ -1,15 +0,0 @@
---
title: EPS version
description: Download Tabler Icons in EPS format.
---
![](/docs/icons/package-eps.png)
## Installation
<TabsPackage name="@tabler/icons-eps" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
All EPS files are stored in `icons` subdirectory.

View File

@@ -1,5 +0,0 @@
---
title: Static files
description: Download static file formats of icons.
summary: Static files provide multiple formats of Tabler Icons, including EPS, PDF, PNG, and SVG, offering flexibility for different design and development workflows.
---

View File

@@ -1,15 +0,0 @@
---
title: PDF version
description: Download Tabler Icons in PDF format.
---
![](/docs/icons/package-pdf.png)
## Installation
<TabsPackage name="@tabler/icons-pdf" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
All PDF files are stored in `icons` subdirectory.

View File

@@ -1,31 +0,0 @@
---
title: PNG version
description: Download Tabler Icons in PNG format.
---
![](/docs/icons/package-png.png)
## Installation
<TabsPackage name="@tabler/icons-png" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
All PNG files are stored in `icons` subdirectory.
## CDN
#### Outline version
```html
<img src="https://unpkg.com/@tabler/icons-png@$ICONS_VERSION/icons/outline/home.png" />
```
#### Filled version
```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

@@ -1,85 +0,0 @@
---
title: SVG version
description: Download Tabler Icons in SVG format.
---
![](/docs/icons/package-svg.png)
## Installation
<TabsPackage name="@tabler/icons" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## Usage
All icons are built with SVG, so you can place them as `<img>`, `background-image` and inline in HTML code.
### HTML image
If you load an icon as an image, you can modify its size using CSS.
```html
<img src="path/to/icon.svg" alt="icon title" />
```
### Inline HTML
You can paste the content of the icon file into your HTML code to display it on the page.
```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>
Click me
</a>
```
Thanks to that, you can change the size, color and the `stroke-width` of the icons with CSS code.
```css
.icon-tabler {
color: red;
width: 32px;
height: 32px;
stroke-width: 1.25;
}
```
### SVG sprite
Add an icon to be displayed on your page with the following markup (`activity` in the above example can be replaced with any valid icon name):
```html
<svg width="24" height="24">
<use xlink:href="path/to/tabler-sprite.svg#tabler-activity" />
</svg>
```
## CDN
#### Outline version
```html
<img src="https://unpkg.com/@tabler/icons@$ICONS_VERSION/icons/outline/home.svg" />
```
#### Filled version
```html
<img src="https://unpkg.com/@tabler/icons@$ICONS_VERSION/icons/filled/home.svg" />
```
Instead of a specific version, you can use `latest` to always get the newest icons.

View File

@@ -1,8 +0,0 @@
---
title: Tabler Illustrations
order: 3
description: Customizable illustrations for modern web and mobile designs.
summary: Tabler Illustrations is a collection of customizable SVG illustrations for your web project. Explore our library of illustrations to enhance your web development experience.
---
![](/docs/cover-illustrations.png)

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