mirror of
https://github.com/tabler/tabler.git
synced 2026-08-26 21:04:25 +04:00
Improve README and community health files (#2808)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/core": patch
|
||||
---
|
||||
|
||||
Updated the npm package README with badges, quick links, CDN usage, documentation and changelog links.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@tabler/docs": patch
|
||||
---
|
||||
|
||||
Updated the How to Contribute guide with starter issues, GitHub Codespaces setup, a table of useful commands and pull request conventions.
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "Tabler",
|
||||
"image": "mcr.microsoft.com/devcontainers/javascript-node:24",
|
||||
"postCreateCommand": "corepack enable && pnpm install",
|
||||
"forwardPorts": [3000, 3010],
|
||||
"portsAttributes": {
|
||||
"3000": {
|
||||
"label": "Preview website"
|
||||
},
|
||||
"3010": {
|
||||
"label": "Documentation website"
|
||||
}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"astro-build.astro-vscode",
|
||||
"esbenp.prettier-vscode",
|
||||
"stylelint.vscode-stylelint"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# Default owners for everything in the repo, unless a later match takes precedence.
|
||||
# They will be requested for review when someone opens a pull request.
|
||||
* @codecalm
|
||||
@@ -3,70 +3,75 @@ description: Create a report to help us improve
|
||||
title: "[BUG] "
|
||||
labels: ["bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "## Thank you for making a bug report!"
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug! It's really important to fill this form out completely as
|
||||
not filling it out will make the bug reports hard to replicate.
|
||||
- type: input
|
||||
id: browser
|
||||
attributes:
|
||||
label: Browser
|
||||
description: "What browser and version did this bug occur on?"
|
||||
placeholder: "e.g. Chrome ver.22, Safari ver.10"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: OS
|
||||
description: "What is the operating system of your device?"
|
||||
placeholder: "e.g. Windows 10, iOS 14, Ubuntu 23.04"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: screen_size
|
||||
attributes:
|
||||
label: Screen size
|
||||
description: "What is the screen size of your device?"
|
||||
placeholder: "e.g. 800x600, 1920x1080"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: "A clear and concise description of what the bug is."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: How to reproduce
|
||||
description: "How do you trigger this bug? Please walk us through it step by step."
|
||||
value: |
|
||||
1. Go to '...'
|
||||
2. Click on '...'
|
||||
3. Scroll down to '...'
|
||||
4. See error
|
||||
...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Screenshots
|
||||
description: "If applicable, add screenshots here to help explain this problem. This helps us understand whats happening better."
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: jsfiddle
|
||||
attributes:
|
||||
label: JSFiddle
|
||||
description: "Please add a jsFiddle replicating the bug. Without the jsFiddle most bug reports cannot be solved and will be closed."
|
||||
validations:
|
||||
required: false
|
||||
---
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Thank you for making a bug report!
|
||||
Thanks for taking the time to fill out this bug report! Please fill this form out completely —
|
||||
incomplete reports are hard to replicate and may be closed.
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Tabler version
|
||||
description: "Which version of Tabler are you using?"
|
||||
placeholder: "e.g. 1.4.0"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: browser
|
||||
attributes:
|
||||
label: Browser
|
||||
description: "What browser and version did this bug occur on?"
|
||||
placeholder: "e.g. Chrome ver.22, Safari ver.10"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: OS
|
||||
description: "What is the operating system of your device?"
|
||||
placeholder: "e.g. Windows 10, iOS 14, Ubuntu 23.04"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: screen_size
|
||||
attributes:
|
||||
label: Screen size
|
||||
description: "What is the screen size of your device?"
|
||||
placeholder: "e.g. 800x600, 1920x1080"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: "A clear and concise description of what the bug is."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: How to reproduce
|
||||
description: "How do you trigger this bug? Please walk us through it step by step."
|
||||
value: |
|
||||
1. Go to '...'
|
||||
2. Click on '...'
|
||||
3. Scroll down to '...'
|
||||
4. See error
|
||||
...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Screenshots
|
||||
description: "If applicable, add screenshots here to help explain this problem. This helps us understand what's happening better."
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: live_example
|
||||
attributes:
|
||||
label: Live example
|
||||
description: "Please add a link to a live example replicating the bug (for example a JSFiddle or CodeSandbox — you can start from our [starter template](https://stackblitz.com/github/tabler/tabler-starter)). Without it, most bug reports cannot be solved and will be closed."
|
||||
validations:
|
||||
required: false
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 📖 Documentation
|
||||
url: https://docs.tabler.io
|
||||
about: Guides for installing, using and customizing Tabler.
|
||||
- name: 💬 Questions and ideas
|
||||
url: https://github.com/tabler/tabler/discussions
|
||||
about: Ask questions, share ideas and discuss with the community.
|
||||
- name: 🛡️ Security issue
|
||||
url: https://github.com/tabler/tabler/blob/dev/SECURITY.md
|
||||
about: Please report security vulnerabilities privately — never in a public issue.
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for Tabler
|
||||
title: "[FEATURE] "
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Example: I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
@@ -0,0 +1,39 @@
|
||||
name: Feature request
|
||||
description: Suggest an idea for Tabler
|
||||
title: "[FEATURE] "
|
||||
labels: ["feature request"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to suggest an improvement! If you are not sure about your idea yet,
|
||||
consider starting a [discussion](https://github.com/tabler/tabler/discussions) first.
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Is your feature request related to a problem?
|
||||
description: "A clear and concise description of what the problem is."
|
||||
placeholder: "Example: I'm always frustrated when..."
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Describe the solution you'd like
|
||||
description: "A clear and concise description of what you want to happen."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Describe alternatives you've considered
|
||||
description: "A clear and concise description of any alternative solutions or features you've considered."
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: "Add any other context, links or screenshots about the feature request here."
|
||||
validations:
|
||||
required: false
|
||||
@@ -0,0 +1,16 @@
|
||||
<!-- Thank you for contributing to Tabler! Please read CONTRIBUTING.md before opening a pull request. -->
|
||||
|
||||
## What does this PR do?
|
||||
|
||||
<!-- A short description of the change and why it is needed. Link related issues with "Fixes #123" or "Closes #123". -->
|
||||
|
||||
## Screenshots
|
||||
|
||||
<!-- For visual changes, add before/after screenshots. Remove this section if not applicable. -->
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] The branch is based on `dev` and named `<type>/<short-description>` (for example `fix/markdown-table-overflow`)
|
||||
- [ ] `pnpm run build` passes locally
|
||||
- [ ] A changeset is included if the change affects any package (`pnpm exec changeset`)
|
||||
- [ ] Documentation is updated if needed (`docs/pages/**`)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Getting support
|
||||
|
||||
Thanks for using Tabler! Here is where to go depending on what you need:
|
||||
|
||||
- **Documentation** — guides for installing, using and customizing Tabler: [docs.tabler.io](https://docs.tabler.io)
|
||||
- **Questions and ideas** — ask the community in [GitHub Discussions](https://github.com/tabler/tabler/discussions)
|
||||
- **Bug reports** — open an issue using the [bug report template](https://github.com/tabler/tabler/issues/new?template=bug_report.yml)
|
||||
- **Feature requests** — open an issue using the [feature request template](https://github.com/tabler/tabler/issues/new?template=feature_request.yml)
|
||||
- **Security issues** — please report privately, following our [security policy](../SECURITY.md)
|
||||
|
||||
Please keep the issue tracker for bugs and feature requests — usage questions get better answers in Discussions.
|
||||
+30
-7
@@ -1,6 +1,15 @@
|
||||
# Contributing to Tabler
|
||||
|
||||
Thank you for wanting to contribute! This is a short overview - the full guide lives in the documentation: [How to Contribute](https://docs.tabler.io/ui/getting-started/how-to-contribute/).
|
||||
Thank you for wanting to contribute! This is a short overview — the full guide lives in the documentation: [How to Contribute](https://docs.tabler.io/ui/getting-started/how-to-contribute/).
|
||||
|
||||
## Ways to contribute
|
||||
|
||||
- **Pick a starter issue** — issues labeled [`good first issue`](https://github.com/tabler/tabler/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) are small and well-scoped, and [`help wanted`](https://github.com/tabler/tabler/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) issues welcome community help.
|
||||
- **Report a bug** — use the [bug report template](https://github.com/tabler/tabler/issues/new?template=bug_report.yml). Include steps to reproduce and, if possible, a live example (for example a JSFiddle).
|
||||
- **Suggest a feature** — use the [feature request template](https://github.com/tabler/tabler/issues/new?template=feature_request.yml) or start a [discussion](https://github.com/tabler/tabler/discussions) first if you are not sure.
|
||||
- **Improve the documentation** — docs live in `docs/pages/**/*.mdx` and follow the same pull request workflow as code.
|
||||
- **Submit a pull request** — fixes and improvements are always welcome. For large changes, please open an issue or discussion first so we can align before you invest time.
|
||||
- **Report a security issue** — do not open a public issue; follow the [security policy](SECURITY.md) instead.
|
||||
|
||||
## Quick start
|
||||
|
||||
@@ -13,15 +22,28 @@ pnpm run dev
|
||||
|
||||
This starts the preview website at [http://localhost:3000](http://localhost:3000) and the documentation at [http://localhost:3010](http://localhost:3010), both with live reload.
|
||||
|
||||
You can also skip the local setup entirely: open the repository in [GitHub Codespaces](https://codespaces.new/tabler/tabler) or a VS Code Dev Container — the configuration in `.devcontainer/` installs Node.js, pnpm and all dependencies for you.
|
||||
|
||||
## Where things live
|
||||
|
||||
- `core/` - the framework: SCSS (`core/scss/`) and JavaScript (`core/js/`)
|
||||
- `preview/` - demo website (Astro, pages in `preview/pages/*.astro`)
|
||||
- `docs/` - documentation website (Astro, pages in `docs/pages/**/*.mdx`)
|
||||
- `shared/` - components and layouts shared by preview and docs (`@shared` alias), plus `data/` and `static/`
|
||||
- `shared/data/` - JSON data for demo pages (`@data` alias)
|
||||
- `core/` — the framework: SCSS (`core/scss/`) and JavaScript (`core/js/`)
|
||||
- `preview/` — demo website (Astro, pages in `preview/pages/*.astro`)
|
||||
- `docs/` — documentation website (Astro, pages in `docs/pages/**/*.mdx`)
|
||||
- `shared/` — components and layouts shared by preview and docs (`@shared` alias), plus `data/` and `static/`
|
||||
- `shared/data/` — JSON data for demo pages (`@data` alias)
|
||||
|
||||
Do not edit `dist/` folders - they are generated by the build.
|
||||
Do not edit `dist/` folders — they are generated by the build.
|
||||
|
||||
## Useful commands
|
||||
|
||||
| Command | What it does |
|
||||
| -------------------- | ----------------------------------------------------- |
|
||||
| `pnpm run dev` | Start preview and docs dev servers with live reload |
|
||||
| `pnpm run build` | Production build of all packages |
|
||||
| `pnpm run lint` | Markdown, Prettier and SCSS variable checks |
|
||||
| `pnpm run lint:fix` | Auto-fix lint issues where possible |
|
||||
| `pnpm run test` | Run the test suites |
|
||||
| `pnpm run check` | Lint plus TypeScript type checks |
|
||||
|
||||
## Before you open a pull request
|
||||
|
||||
@@ -29,6 +51,7 @@ Do not edit `dist/` folders - they are generated by the build.
|
||||
2. **Build and test**: `pnpm run build` must pass. For docs changes, also run `pnpm run lint`.
|
||||
3. **Add a changeset** if your change affects any package: `pnpm exec changeset`. Use one sentence starting with `Added`, `Updated`, `Fixed` or `Removed`, with backticks for code tokens (for example `` Added `.btn-ghost` variant for buttons. ``).
|
||||
4. **Write the PR in English**: a concise title in present tense (max ~72 chars, no trailing period) and a short description that explains why the change is needed.
|
||||
5. **Keep the scope small**: one logical change per pull request makes reviews faster and releases safer.
|
||||
|
||||
## Code style
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
## Contributors
|
||||
|
||||
Thanks goes to these wonderful people
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tabler.io/"><img src="https://avatars.githubusercontent.com/u/1282324?v=4?s=100" width="100px;" alt="Paweł Kuna"/><br /><sub><b>Paweł Kuna</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=codecalm" title="Code">💻</a> <a href="https://github.com/tabler/tabler/commits?author=codecalm" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martynaaj"><img src="https://avatars.githubusercontent.com/u/60158888?v=4?s=100" width="100px;" alt="Martyna"/><br /><sub><b>Martyna</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=martynaaj" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/deralaxo"><img src="https://avatars.githubusercontent.com/u/40028795?v=4?s=100" width="100px;" alt="Dawid Harat"/><br /><sub><b>Dawid Harat</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=deralaxo" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://codersopinion.com/"><img src="https://avatars.githubusercontent.com/u/160743?v=4?s=100" width="100px;" alt="Robert-Jan de Dreu"/><br /><sub><b>Robert-Jan de Dreu</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=rjd22" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FreexD"><img src="https://avatars.githubusercontent.com/u/7117869?v=4?s=100" width="100px;" alt="Michał Wolny"/><br /><sub><b>Michał Wolny</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=FreexD" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.wangkanai.com/"><img src="https://avatars.githubusercontent.com/u/10666633?v=4?s=100" width="100px;" alt="Sarin Na Wangkanai"/><br /><sub><b>Sarin Na Wangkanai</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=wangkanai" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://ensostudio.ru/"><img src="https://avatars.githubusercontent.com/u/3521094?v=4?s=100" width="100px;" alt="Anton"/><br /><sub><b>Anton</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=WinterSilence" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dheineman"><img src="https://avatars.githubusercontent.com/u/516028?v=4?s=100" width="100px;" alt="Dave Heineman"/><br /><sub><b>Dave Heineman</b></sub></a><br /><a href="https://github.com/tabler/tabler/commits?author=dheineman" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
@@ -1,5 +1,8 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/tabler/tabler"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/shared/static/logo.svg" alt="A premium and open source dashboard template with a responsive and high-quality UI." width="300"></a><br><br>
|
||||
<a href="https://tabler.io"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/shared/static/logo.svg" alt="Tabler" width="300"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
A premium and open source dashboard template with a responsive and high-quality UI.
|
||||
</p>
|
||||
|
||||
@@ -7,13 +10,17 @@ A premium and open source dashboard template with a responsive and high-quality
|
||||
<a href="https://www.npmjs.com/package/@tabler/core" target="__blank"><img src="https://img.shields.io/npm/v/@tabler/core?color=1864ab&label=Latest+version" alt="NPM version"></a>
|
||||
<a href="https://www.npmjs.com/package/@tabler/core" target="__blank"><img alt="NPM Downloads" src="https://img.shields.io/npm/dm/@tabler/core?color=1971c2&label=Downloads"></a>
|
||||
<a href="https://preview.tabler.io" target="__blank"><img src="https://img.shields.io/static/v1?label=Demo&message=preview&color=228be6" alt="Tabler preview"></a>
|
||||
<a href="https://github.com/tabler/tabler/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tabler.svg?label=License&message=MIT&color=1c7ed6" alt="License"></a>
|
||||
<a href="https://github.com/tabler/tabler/archive/dev.zip" target="__blank"><img src="https://img.shields.io/static/v1?label=Download&message=ZIP&color=339af0" alt="Tabler preview"></a>
|
||||
<a href="https://github.com/tabler/tabler/blob/dev/LICENSE"><img src="https://img.shields.io/npm/l/tabler.svg?label=License&message=MIT&color=1c7ed6" alt="License"></a>
|
||||
<a href="https://github.com/tabler/tabler/archive/dev.zip" target="__blank"><img src="https://img.shields.io/static/v1?label=Download&message=ZIP&color=339af0" alt="Download ZIP"></a>
|
||||
<a href="https://github.com/tabler/tabler/actions/workflows/test.yml" target="__blank"><img alt="Test build" src="https://github.com/tabler/tabler/actions/workflows/test.yml/badge.svg"></a>
|
||||
<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
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io">Live demo</a> · <a href="https://docs.tabler.io">Documentation</a> · <a href="https://github.com/tabler/tabler/releases">Releases</a> · <a href="https://github.com/tabler/tabler/discussions">Discussions</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) :)**
|
||||
|
||||
@@ -23,23 +30,9 @@ A premium and open source dashboard template with a responsive and high-quality
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Testing
|
||||
|
||||
<p align="center">Browser testing via:</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=tabler" target="_blank">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/f0967860-31ad-4078-850b-40b0abc95582" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/55ac290a-6729-44aa-bbc3-4c5e909facbf" />
|
||||
<img src="https://github.com/user-attachments/assets/86bcbe29-eb8d-4273-a381-5ce17d4ca92d" alt="TestMu AI" 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>
|
||||
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! [Show me a demo](https://preview.tabler.io)
|
||||
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io" target="_blank">
|
||||
@@ -51,112 +44,134 @@ Tabler is fully responsive and compatible with all modern browsers. Thanks to it
|
||||
|
||||
We've created this admin panel for everyone who wants to create templates based on our pre-made components. Our mission is to deliver a user-friendly, clear and easy administration panel that can be used by both simple websites and sophisticated systems. The only requirement is basic HTML and CSS knowledge — as a reward, you'll be able to manage and visualize different types of data in the easiest possible way!
|
||||
|
||||
* **Responsive:** With the support for mobile, tablet and desktop displays, it doesn’t matter what device you’re using. Tabler is responsive in all major browsers.
|
||||
* **Cross Browser:** Our theme works perfectly with the latest Chrome, Firefox+, Safari, Opera, Edge and mobile browsers. We work hard to provide continuous support for them.
|
||||
* **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 Bootstrap’s 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!
|
||||
- **Responsive:** With the support for mobile, tablet and desktop displays, it doesn't matter what device you're using. Tabler is responsive in all major browsers.
|
||||
- **Cross Browser:** Our theme works perfectly with the latest Chrome, Firefox, Safari, Opera, Edge and mobile browsers. We work hard to provide continuous support for them.
|
||||
- **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 Bootstrap's 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!
|
||||
|
||||
## 📖 Documentation
|
||||
## 📦 Installation
|
||||
|
||||
The documentation is available at https://docs.tabler.io/
|
||||
### Package managers
|
||||
|
||||
## 🪴 Project Activity
|
||||
|
||||
<p align="center">
|
||||
<img src="https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg" alt="Repobeats analytics image" />
|
||||
</p>
|
||||
|
||||
## 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. You can install it with npm or your preferred JavaScript package manager:
|
||||
|
||||
```sh
|
||||
npm install --save @tabler/core
|
||||
```
|
||||
|
||||
### CDN support
|
||||
### CDN
|
||||
|
||||
All files included in `@tabler/core` npm package are also available over a CDN.
|
||||
All files included in the `@tabler/core` npm package are also available over a CDN.
|
||||
|
||||
#### Javascript
|
||||
JavaScript:
|
||||
|
||||
```html
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/js/tabler.min.js"></script>
|
||||
```
|
||||
|
||||
#### Styles
|
||||
Styles:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css">
|
||||
```
|
||||
|
||||
## Building locally
|
||||
### Download
|
||||
|
||||
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.
|
||||
If you don't use a package manager, you can [download the latest release](https://github.com/tabler/tabler/releases) as a ZIP archive.
|
||||
|
||||
### First steps: Downloading the Tabler source files
|
||||
### Quick start
|
||||
|
||||
With either method, the first thing you'll want to do is download a copy of the Tabler source files to your device.
|
||||
Create an HTML file with Tabler's CSS and JavaScript loaded from the CDN and start building:
|
||||
|
||||
#### 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/) (version 22.12 or newer), 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
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Tabler demo</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, Tabler!</h1>
|
||||
<button class="btn btn-primary">Primary button</button>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/js/tabler.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
4. Then execute the following to start up the application stack:
|
||||
```sh
|
||||
pnpm run start
|
||||
```
|
||||
5. Open [http://localhost:3000](http://localhost:3000) to view the preview website in your browser, or [http://localhost:3010](http://localhost:3010) to view the documentation website - and voilà.
|
||||
Changes to most of the source files of Tabler core, preview and docs will rebuild the application and refresh the page.
|
||||
|
||||
**Note**:
|
||||
If you wish to perform a one-off production build without a dev server, you can run:
|
||||
Or try it without installing anything: open the [tabler-starter](https://github.com/tabler/tabler-starter) template on [StackBlitz](https://stackblitz.com/github/tabler/tabler-starter), [CodeSandbox](https://codesandbox.io/s/github/tabler/tabler-starter) or [GitHub Codespaces](https://codespaces.new/tabler/tabler-starter).
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
The full documentation is available at [docs.tabler.io](https://docs.tabler.io/). To see what changed in each release, check the [changelog](core/CHANGELOG.md) and [GitHub releases](https://github.com/tabler/tabler/releases).
|
||||
|
||||
## 🛠️ Development
|
||||
|
||||
To build a copy of Tabler locally, you have two options: set up the development tools directly on your device, or use the provided Docker setup. You can also start right away in the cloud with [GitHub Codespaces](https://codespaces.new/tabler/tabler) — the dev container installs everything for you.
|
||||
|
||||
### Local setup
|
||||
|
||||
1. Install [Node.js](https://nodejs.org/download/) (version 22.12 or newer) and [pnpm](https://pnpm.io/installation) (we recommend [Corepack](https://pnpm.io/installation#using-corepack)).
|
||||
2. Clone the repository:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/tabler/tabler.git
|
||||
cd tabler
|
||||
```
|
||||
|
||||
3. Install dependencies:
|
||||
|
||||
```sh
|
||||
pnpm install
|
||||
```
|
||||
|
||||
4. Start the development servers:
|
||||
|
||||
```sh
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
5. Open [http://localhost:3000](http://localhost:3000) to view the preview website, or [http://localhost:3010](http://localhost:3010) to view the documentation website. Changes to most source files of Tabler core, preview and docs will rebuild the application and refresh the page.
|
||||
|
||||
To perform a one-off production build without a dev server, run:
|
||||
|
||||
```sh
|
||||
pnpm run build
|
||||
```
|
||||
|
||||
### Docker
|
||||
|
||||
### Installing and running development tools with Docker
|
||||
1. From the root `tabler` directory, build the image:
|
||||
|
||||
**Plain Docker**
|
||||
```sh
|
||||
docker build -t tabler .
|
||||
```
|
||||
|
||||
Here is an example of how to use this image:
|
||||
2. Run the image. The following command mounts the source directories into the container and exposes port 3000 (preview) and port 3010 (documentation):
|
||||
|
||||
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 source directories into the container, exposes port 3000 to browse the preview website and port 3010 to browse the documentation website:
|
||||
```sh
|
||||
docker run -p 3000:3000 -p 3010:3010 -v $(pwd)/core:/app/core -v $(pwd)/preview:/app/preview -v $(pwd)/docs:/app/docs -v $(pwd)/shared:/app/shared tabler
|
||||
```
|
||||
3. Open your browser to [http://localhost:3000](http://localhost:3000) (preview) or [http://localhost:3010](http://localhost:3010) (documentation). Edit anything in the `core/`, `preview/`, `docs/` or `shared/` folders and watch your browser refresh the page after it has been rebuilt.
|
||||
```sh
|
||||
docker run -p 3000:3000 -p 3010:3010 -v $(pwd)/core:/app/core -v $(pwd)/preview:/app/preview -v $(pwd)/docs:/app/docs -v $(pwd)/shared:/app/shared tabler
|
||||
```
|
||||
|
||||
**Docker Compose**
|
||||
3. Open [http://localhost:3000](http://localhost:3000) (preview) or [http://localhost:3010](http://localhost:3010) (documentation). Edit anything in the `core/`, `preview/`, `docs/` or `shared/` folders and watch your browser refresh the page after it has been rebuilt.
|
||||
|
||||
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 `core/`, `preview/`, `docs/` or `shared/` folders the same way as with plain docker and access the same URLs and ports in your browser.
|
||||
Alternatively, use Docker Compose: `docker compose up --build` builds and starts the container with the same mounts, ports and URLs.
|
||||
|
||||
## Bugs and feature requests
|
||||
## 🤝 Contributing
|
||||
|
||||
Found a bug or have a feature request? [Please open a new issue](https://github.com/tabler/tabler/issues/new).
|
||||
We welcome contributions of all kinds! Please read the [contributing guide](CONTRIBUTING.md) to learn about the development workflow, project structure and conventions. By participating, you agree to follow our [Code of Conduct](.github/CODE_OF_CONDUCT.md).
|
||||
|
||||
- **Found a bug?** [Open a bug report](https://github.com/tabler/tabler/issues/new?template=bug_report.yml).
|
||||
- **Have an idea?** [Open a feature request](https://github.com/tabler/tabler/issues/new?template=feature_request.yml) or start a [discussion](https://github.com/tabler/tabler/discussions).
|
||||
- **Found a security issue?** Please report it privately — see our [security policy](SECURITY.md).
|
||||
|
||||
## 🪴 Project activity
|
||||
|
||||
<p align="center">
|
||||
<img src="https://repobeats.axiom.co/api/embed/61d1db34446967b0848af68198a392067e0f5870.svg" alt="Repobeats analytics image" />
|
||||
</p>
|
||||
|
||||
## 🤓 Creators
|
||||
|
||||
@@ -171,17 +186,22 @@ Found a bug or have a feature request? [Please open a new issue](https://github.
|
||||
- <https://x.com/B_Gaweda>
|
||||
- <https://github.com/BG-Software-BG>
|
||||
|
||||
**Bartosz Dobija**
|
||||
|
||||
- <https://github.com/Bartosz-Do>
|
||||
|
||||
## 👨🚀 Contributors
|
||||
|
||||
This project exists thanks to all the people who contribute.
|
||||
|
||||
<img src="https://opencollective.com/tabler/contributors.svg?width=890&button=false" />
|
||||
<a href="https://github.com/tabler/tabler/graphs/contributors">
|
||||
<img src="https://opencollective.com/tabler/contributors.svg?width=890&button=false" alt="Tabler contributors">
|
||||
</a>
|
||||
|
||||
## Social media
|
||||
## 📣 Social media
|
||||
|
||||
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>
|
||||
Stay up to date by joining our community on [X](https://x.com/tabler_io) and [Facebook](https://www.facebook.com/tabler.io).
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
||||
## 📄 License
|
||||
|
||||
Tabler is licensed under the [MIT License](LICENSE).
|
||||
|
||||
+18
-6
@@ -1,16 +1,28 @@
|
||||
# Security Policy
|
||||
|
||||
We take security very seriously and ask that you follow the following process.
|
||||
We take security seriously and appreciate responsible disclosure of vulnerabilities.
|
||||
|
||||
## Supported Versions
|
||||
## Supported versions
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 1.0.x | :white_check_mark: |
|
||||
| 1.x | :white_check_mark: |
|
||||
| 0.x | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
## 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.
|
||||
Please make sure to use a descriptive title in the email.
|
||||
**Please do not report security vulnerabilities through public GitHub issues.**
|
||||
|
||||
If you think you have found a security issue, report it privately in one of two ways:
|
||||
|
||||
- Use GitHub's private reporting: [Report a vulnerability](https://github.com/tabler/tabler/security/advisories/new) (Security tab → "Report a vulnerability")
|
||||
- Send the details to **support@tabler.io**
|
||||
|
||||
Please include:
|
||||
|
||||
- A descriptive title
|
||||
- A description of the issue and its potential impact
|
||||
- Steps to reproduce, or a proof of concept if possible
|
||||
- The affected version(s)
|
||||
|
||||
We will review your report and get back to you as soon as possible. Please give us reasonable time to address the issue before disclosing it publicly.
|
||||
|
||||
+67
-13
@@ -1,6 +1,20 @@
|
||||
# Tabler Core
|
||||
<p align="center">
|
||||
<a href="https://tabler.io"><img src="https://raw.githubusercontent.com/tabler/tabler/refs/heads/dev/shared/static/logo.svg" alt="Tabler" width="300"></a>
|
||||
</p>
|
||||
|
||||
Tabler Core is a set of components and utilities for building web applications. It provides a collection of pre-designed components, such as buttons, forms, modals, and more, that can be easily customized and integrated into your projects.
|
||||
<p align="center">
|
||||
A premium and open source dashboard template with a responsive and high-quality UI.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/@tabler/core" target="_blank"><img src="https://img.shields.io/npm/v/@tabler/core?color=1864ab&label=Latest+version" alt="NPM version"></a>
|
||||
<a href="https://www.npmjs.com/package/@tabler/core" target="_blank"><img alt="NPM Downloads" src="https://img.shields.io/npm/dm/@tabler/core?color=1971c2&label=Downloads"></a>
|
||||
<a href="https://github.com/tabler/tabler/blob/dev/LICENSE"><img src="https://img.shields.io/npm/l/tabler.svg?label=License&message=MIT&color=1c7ed6" alt="License"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://preview.tabler.io">Live demo</a> · <a href="https://docs.tabler.io">Documentation</a> · <a href="https://github.com/tabler/tabler">GitHub</a> · <a href="https://github.com/tabler/tabler/blob/dev/core/CHANGELOG.md">Changelog</a>
|
||||
</p>
|
||||
|
||||
## 🔎 Preview
|
||||
|
||||
@@ -12,21 +26,62 @@ Tabler is fully responsive and compatible with all modern browsers. Thanks to it
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Installation
|
||||
## 📦 Installation
|
||||
|
||||
To install Tabler Core, you can use npm or yarn. Run one of the following commands in your terminal:
|
||||
Install `@tabler/core` with npm or your preferred JavaScript package manager:
|
||||
|
||||
```bash
|
||||
npm install @tabler/core
|
||||
```sh
|
||||
npm install --save @tabler/core
|
||||
```
|
||||
|
||||
or
|
||||
### CDN
|
||||
|
||||
```bash
|
||||
pnpm add @tabler/core
|
||||
All files included in the `@tabler/core` npm package are also available over a CDN.
|
||||
|
||||
JavaScript:
|
||||
|
||||
```html
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/js/tabler.min.js"></script>
|
||||
```
|
||||
|
||||
## Sponsors
|
||||
Styles:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css">
|
||||
```
|
||||
|
||||
### Quick start
|
||||
|
||||
Create an HTML file with Tabler's CSS and JavaScript loaded from the CDN and start building:
|
||||
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Tabler demo</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/css/tabler.min.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, Tabler!</h1>
|
||||
<button class="btn btn-primary">Primary button</button>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tabler/core@latest/dist/js/tabler.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
Or try it without installing anything: open the [tabler-starter](https://github.com/tabler/tabler-starter) template on [StackBlitz](https://stackblitz.com/github/tabler/tabler-starter), [CodeSandbox](https://codesandbox.io/s/github/tabler/tabler-starter) or [GitHub Codespaces](https://codespaces.new/tabler/tabler-starter).
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
The full documentation is available at [docs.tabler.io](https://docs.tabler.io/). Release notes live in the [changelog](https://github.com/tabler/tabler/blob/dev/core/CHANGELOG.md).
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions of all kinds! See the [contributing guide](https://github.com/tabler/tabler/blob/dev/CONTRIBUTING.md) to get started.
|
||||
|
||||
## 💛 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) :)**
|
||||
|
||||
@@ -36,7 +91,6 @@ pnpm add @tabler/core
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 📄 License
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
||||
Tabler is licensed under the [MIT License](https://github.com/tabler/tabler/blob/dev/LICENSE).
|
||||
|
||||
@@ -9,6 +9,8 @@ import Steps from '@components/Steps.astro'
|
||||
|
||||
Contributions are always welcome and highly encouraged! Whether you're new to open source or a seasoned contributor, your input helps make Tabler better for everyone. If you're new to open source, we recommend reading a [how to contribute](https://opensource.guide/how-to-contribute/) guide to learn more about contributing.
|
||||
|
||||
Not sure where to start? Look for issues labeled [good first issue](https://github.com/tabler/tabler/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) - they are small and well-scoped.
|
||||
|
||||
## Contribution Requirements
|
||||
|
||||
When contributing to Tabler, please adhere to the following guidelines:
|
||||
@@ -39,7 +41,9 @@ Follow these steps to set up Tabler for development:
|
||||
|
||||
## Development
|
||||
|
||||
To set up Tabler for development, follow these steps:
|
||||
You can skip the local setup and open the repository in [GitHub Codespaces](https://codespaces.new/tabler/tabler) or a VS Code Dev Container. The configuration in `.devcontainer/` installs Node.js, pnpm and all dependencies for you.
|
||||
|
||||
To set up Tabler for development on your own machine, follow these steps:
|
||||
|
||||
<Steps>
|
||||
|
||||
@@ -71,6 +75,17 @@ pnpm run dev
|
||||
Make your changes in the appropriate folders, such as `./core/`, `./preview/` or `./docs/`. Avoid modifying files in any `dist` folders, as they are auto-generated during the build process and will be overwritten.
|
||||
</Steps>
|
||||
|
||||
## Useful commands
|
||||
|
||||
| Command | What it does |
|
||||
| ------------------- | --------------------------------------------------- |
|
||||
| `pnpm run dev` | Start preview and docs dev servers with live reload |
|
||||
| `pnpm run build` | Production build of all packages |
|
||||
| `pnpm run lint` | Markdown, Prettier and SCSS variable checks |
|
||||
| `pnpm run lint:fix` | Auto-fix lint issues where possible |
|
||||
| `pnpm run test` | Run the test suites |
|
||||
| `pnpm run check` | Lint plus TypeScript type checks |
|
||||
|
||||
## Project structure
|
||||
|
||||
Tabler is a pnpm monorepo. The packages you will work with most often are:
|
||||
@@ -111,4 +126,10 @@ Before submitting a pull request, ensure your changes are properly compiled and
|
||||
|
||||
## Submitting Your Contribution
|
||||
|
||||
Once your changes are ready, create a pull request (PR) on GitHub. Make sure to include a clear and concise description of the changes and their purpose. Thank you for contributing to Tabler!
|
||||
Once your changes are ready, create a pull request (PR) on GitHub:
|
||||
|
||||
1. Branch off `dev` and name the branch `<type>/<short-description>`, for example `feat/gh-123-add-stepper-component` or `fix/markdown-table-overflow`. Allowed types: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `build`, `ci`, `perf`, `style`, `revert`.
|
||||
2. Write the PR in English: a concise title in present tense (max ~72 characters, no trailing period) and a short description that explains why the change is needed.
|
||||
3. Keep the scope small - one logical change per pull request makes reviews faster.
|
||||
|
||||
Thank you for contributing to Tabler!
|
||||
|
||||
Reference in New Issue
Block a user