mirror of
https://github.com/tabler/tabler.git
synced 2025-12-23 02:14:26 +04:00
Compare commits
2 Commits
dev-onboar
...
dev-doc-ch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd8ef47ef1 | ||
|
|
0e935316f5 |
5
.changeset/afraid-bobcats-greet.md
Normal file
5
.changeset/afraid-bobcats-greet.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Update illustrations to v1.7
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added new "Pay" page with dedicated layout, navigation link, and payment form (card + PayPal).
|
|
||||||
5
.changeset/beige-apricots-pretend.md
Normal file
5
.changeset/beige-apricots-pretend.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add SRI hashes to scripts and styles
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added `.btn-ghost` button variant with transparent background and hover effects.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Add a color palette in the signing component
|
|
||||||
5
.changeset/cold-jokes-allow.md
Normal file
5
.changeset/cold-jokes-allow.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: improve Introduction, Base, Layout and Plugins sections in documentation
|
||||||
@@ -3,18 +3,8 @@
|
|||||||
"changelog": "@changesets/cli/changelog",
|
"changelog": "@changesets/cli/changelog",
|
||||||
"commit": false,
|
"commit": false,
|
||||||
"fixed": [],
|
"fixed": [],
|
||||||
"linked": [
|
"linked": [],
|
||||||
[
|
|
||||||
"@tabler/core",
|
|
||||||
"@tabler/preview",
|
|
||||||
"@tabler/docs"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"baseBranch": "dev",
|
"baseBranch": "dev",
|
||||||
"ignore": [],
|
"ignore": []
|
||||||
"privatePackages": {
|
|
||||||
"version": true,
|
|
||||||
"tag": false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix icon alignment for `.btn-sm` and `.btn-xl` sizes
|
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
"@tabler/docs": patch
|
"@tabler/docs": patch
|
||||||
---
|
---
|
||||||
|
|
||||||
Fix Docs search in dark mode
|
Fix input mask example in docs
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
"@tabler/preview": patch
|
"@tabler/preview": patch
|
||||||
---
|
---
|
||||||
|
|
||||||
Update activity messages
|
Update icons to v3.31.0
|
||||||
5
.changeset/eleven-seals-unite.md
Normal file
5
.changeset/eleven-seals-unite.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix broken links to other docs section and tabler.io website; improve some labels.
|
||||||
5
.changeset/few-donuts-repeat.md
Normal file
5
.changeset/few-donuts-repeat.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add "text features" menu item
|
||||||
5
.changeset/forty-ties-fail.md
Normal file
5
.changeset/forty-ties-fail.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Correct `aria-label` of app menu link
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix mixed declarations in SCSS
|
|
||||||
5
.changeset/gentle-students-visit.md
Normal file
5
.changeset/gentle-students-visit.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix switch icon examples with filled icons in documentation
|
||||||
5
.changeset/good-experts-lick.md
Normal file
5
.changeset/good-experts-lick.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Add missing metadata for Tabler Documentation
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Introduced `bg-blur` utility for backdrop blur effects and increased container-tight width for layout flexibility.
|
|
||||||
5
.changeset/lemon-penguins-sin.md
Normal file
5
.changeset/lemon-penguins-sin.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix color badge in navbar menu
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Update icons to v3.34.1 (75 new icons)
|
|
||||||
5
.changeset/mighty-fans-sell.md
Normal file
5
.changeset/mighty-fans-sell.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix documentation: remove duplicated code examples; increase height of dropdown examples; fix some links
|
||||||
5
.changeset/new-rats-argue.md
Normal file
5
.changeset/new-rats-argue.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix ribbon component in the documentation
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added new onboarding page with progress indicator and navigation layout.
|
|
||||||
5
.changeset/poor-spoons-deny.md
Normal file
5
.changeset/poor-spoons-deny.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/core": "patch"
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix colour swatches on small screens
|
||||||
5
.changeset/popular-geckos-flow.md
Normal file
5
.changeset/popular-geckos-flow.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add missing `tw` entry in `flags.json`
|
||||||
5
.changeset/popular-hairs-unite.md
Normal file
5
.changeset/popular-hairs-unite.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Delete missing demo RTL style
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix double bottom border in tables.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added Progress Background component with text labels and value display.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added large and extra-large sizes for progress component (`.progress-lg`, `.progress-xl`).
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added Progress Steps component for step-by-step navigation indicators.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Added smooth transitions for progress bar width and background color changes.
|
|
||||||
5
.changeset/rude-jobs-rush.md
Normal file
5
.changeset/rude-jobs-rush.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix broken RTL preview
|
||||||
5
.changeset/short-balloons-smile.md
Normal file
5
.changeset/short-balloons-smile.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix incorrect label text on form elements docs page
|
||||||
5
.changeset/short-hounds-promise.md
Normal file
5
.changeset/short-hounds-promise.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Use tabs-package include to show webfont install steps
|
||||||
5
.changeset/silent-hornets-appear.md
Normal file
5
.changeset/silent-hornets-appear.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Demonstrate sticky header table more clearly in docs
|
||||||
5
.changeset/silent-planes-hide.md
Normal file
5
.changeset/silent-planes-hide.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/preview": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add new form layout page
|
||||||
5
.changeset/silly-pears-mix.md
Normal file
5
.changeset/silly-pears-mix.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Replace non-existent Vimeo file and enhance the inline player documentation
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated skip-link to use `visually-hidden` class for better accessibility.
|
|
||||||
5
.changeset/strong-frogs-brush.md
Normal file
5
.changeset/strong-frogs-brush.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Exclude headings inside `.example` from the Table of Contents
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated deprecated global functions (`map-merge`, `str-slice`, `percentage`, etc.) with their module-based equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Update Bootstrap to v5.3.8
|
|
||||||
5
.changeset/tidy-hairs-wonder.md
Normal file
5
.changeset/tidy-hairs-wonder.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/core": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix missing border-radius to `.card-header-tabs`
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated trending component to use `arrow-up`/`arrow-down` icons instead of `trending-up`/`trending-down`.
|
|
||||||
5
.changeset/twelve-rings-sleep.md
Normal file
5
.changeset/twelve-rings-sleep.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add missing `.steps-vertical` classes in docs
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix responsive layputs in 'Form Elements' page
|
|
||||||
5
.changeset/twenty-meals-hug.md
Normal file
5
.changeset/twenty-meals-hug.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Use color-input examples in documentation
|
||||||
5
.changeset/violet-pots-love.md
Normal file
5
.changeset/violet-pots-love.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Add URL for local dev version of docs app to README
|
||||||
5
.changeset/wet-pans-attend.md
Normal file
5
.changeset/wet-pans-attend.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@tabler/docs": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix `src` links to images in README and getting-started docs page
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
---
|
|
||||||
description: Cursor Rules for Tabler Changesets
|
|
||||||
globs:
|
|
||||||
alwaysApply: true
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
### File Structure
|
|
||||||
|
|
||||||
- Each change must be in a separate changeset file in `.changeset/` directory
|
|
||||||
- Use descriptive kebab-case filenames (e.g., `progress-sizes.md`, `button-ghost.md`)
|
|
||||||
- Follow the standard changeset format with frontmatter and description
|
|
||||||
|
|
||||||
### Change Description Format
|
|
||||||
|
|
||||||
- **One sentence per changeset** - keep descriptions concise and focused
|
|
||||||
- Use **backticks for code elements**: classes (`.btn-ghost`), properties (`stroke-width`), values (`1.5`), icons (`arrow-up`)
|
|
||||||
- Start with action verbs: "Added", "Updated", "Fixed", "Removed"
|
|
||||||
- Be specific about what was changed
|
|
||||||
|
|
||||||
### Version Bump Guidelines
|
|
||||||
|
|
||||||
- **Major**: Breaking changes, complete rewrites
|
|
||||||
- **Minor**: New features, new components, new pages, significant enhancements
|
|
||||||
- **Patch**: Bug fixes, small improvements, style updates, accessibility fixes
|
|
||||||
|
|
||||||
### Package Selection
|
|
||||||
|
|
||||||
- `"@tabler/core"`: Changes to SCSS, core functionality, CSS classes
|
|
||||||
- `"@tabler/preview"`: New pages, demo updates, preview-specific changes
|
|
||||||
- `"@tabler/docs"`: Documentation updates
|
|
||||||
- Use multiple packages when change affects multiple areas
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
|
|
||||||
#### New Feature (Minor)
|
|
||||||
|
|
||||||
```md
|
|
||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added Progress Steps component for step-by-step navigation indicators.
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Bug Fix (Patch)
|
|
||||||
|
|
||||||
```md
|
|
||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
|
|
||||||
```
|
|
||||||
|
|
||||||
#### New Page (Minor)
|
|
||||||
|
|
||||||
```md
|
|
||||||
---
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added new onboarding page with progress indicator and navigation layout.
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Style Enhancement (Patch)
|
|
||||||
|
|
||||||
```md
|
|
||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Added smooth transitions for progress bar width and background color changes.
|
|
||||||
```
|
|
||||||
|
|
||||||
### Code Formatting Rules
|
|
||||||
|
|
||||||
- Class names: `.btn-ghost`, `.progress-lg`, `.icon-sm`
|
|
||||||
- CSS properties: `stroke-width`, `background-color`, `width`
|
|
||||||
- Values: `1.5`, `transparent`, `100%`
|
|
||||||
- Icon names: `arrow-up`, `arrow-down`, `trending-up`
|
|
||||||
- HTML attributes: `aria-label`, `role`, `data-*`
|
|
||||||
- JavaScript functions: `addEventListener()`, `querySelector()`
|
|
||||||
|
|
||||||
### Common Patterns
|
|
||||||
|
|
||||||
- **Component additions**: "Added [ComponentName] component for [purpose]"
|
|
||||||
- **Size variants**: "Added [size] size variant for [component] (`.class-size`)"
|
|
||||||
- **Style fixes**: "Fixed [issue] in [component/element]"
|
|
||||||
- **Icon updates**: "Updated [component] to use `new-icon` instead of `old-icon`"
|
|
||||||
- **Accessibility**: "Improved accessibility by [specific change]"
|
|
||||||
|
|
||||||
### Commit Message Format
|
|
||||||
|
|
||||||
Use English for commit messages following conventional commit format when possible:
|
|
||||||
|
|
||||||
- `feat: add progress steps component`
|
|
||||||
- `fix: update icon stroke width for better visibility`
|
|
||||||
- `style: add smooth transitions to progress bars`
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
---
|
|
||||||
description: Tabler Project HTML Elements Guidelines
|
|
||||||
globs: ["**/*.html", "**/*.liquid", "**/*.md"]
|
|
||||||
alwaysApply: true
|
|
||||||
---
|
|
||||||
|
|
||||||
## HTML Elements Guidelines
|
|
||||||
|
|
||||||
### 1. Icons
|
|
||||||
|
|
||||||
When you need to use an icon, always use the Tabler icon include syntax:
|
|
||||||
|
|
||||||
```html
|
|
||||||
{% include "ui/icon.html" icon="ICON_NAME" %}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Examples:**
|
|
||||||
|
|
||||||
- `{% include "ui/icon.html" icon="home" %}`
|
|
||||||
- `{% include "ui/icon.html" icon="building-community" %}`
|
|
||||||
- `{% include "ui/icon.html" icon="map-pin" %}`
|
|
||||||
|
|
||||||
### 2. Page Links
|
|
||||||
|
|
||||||
When linking to other pages, always use the relative page syntax:
|
|
||||||
|
|
||||||
```html
|
|
||||||
href="{{ page | relative }}/url.html"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Examples:**
|
|
||||||
|
|
||||||
- `href="{{ page | relative }}/job-post.html"`
|
|
||||||
- `href="{{ page | relative }}/job-listing.html"`
|
|
||||||
- `href="{{ page | relative }}/marketing/index.html"`
|
|
||||||
|
|
||||||
### 3. Static Generation
|
|
||||||
|
|
||||||
All pages are statically generated to HTML using Eleventy (11ty). Keep this in mind when:
|
|
||||||
|
|
||||||
- Writing frontmatter (must be static YAML, no Liquid templating)
|
|
||||||
- Creating dynamic content (use Liquid templating in the body, not frontmatter)
|
|
||||||
- Linking between pages (use relative paths)
|
|
||||||
|
|
||||||
### 4. Additional Guidelines
|
|
||||||
|
|
||||||
#### Frontmatter Rules
|
|
||||||
|
|
||||||
- Frontmatter must be static YAML
|
|
||||||
- Cannot use Liquid templating in frontmatter
|
|
||||||
- Use static values for title, permalink, etc.
|
|
||||||
|
|
||||||
#### Liquid Templating
|
|
||||||
|
|
||||||
- Use Liquid templating only in the HTML body
|
|
||||||
- Access data using `{{ variable }}` syntax
|
|
||||||
- Use `{% for %}` loops for dynamic content
|
|
||||||
- Use `{% if %}` conditions for conditional rendering
|
|
||||||
|
|
||||||
#### File Structure
|
|
||||||
|
|
||||||
- Pages go in `preview/pages/`
|
|
||||||
- Includes go in `shared/includes/`
|
|
||||||
- Data files go in `shared/data/`
|
|
||||||
- Documentation goes in `docs/content/`
|
|
||||||
|
|
||||||
#### CSS Classes
|
|
||||||
|
|
||||||
- Use Bootstrap 5 classes
|
|
||||||
- Use Tabler's custom CSS classes
|
|
||||||
- Follow the pattern: `--#{$prefix}component-property`
|
|
||||||
|
|
||||||
#### Accessibility
|
|
||||||
|
|
||||||
- Include proper ARIA labels
|
|
||||||
- Use semantic HTML elements
|
|
||||||
- Ensure proper heading hierarchy
|
|
||||||
- Add alt text for images
|
|
||||||
|
|
||||||
### 5. Component Usage
|
|
||||||
|
|
||||||
#### Cards
|
|
||||||
|
|
||||||
- Use `card` class for main containers
|
|
||||||
- Use `card-body` for content areas
|
|
||||||
- Use `card-header` for card headers
|
|
||||||
- Use `card-title` for card title
|
|
||||||
|
|
||||||
#### Buttons
|
|
||||||
|
|
||||||
- Use `btn` class for all buttons
|
|
||||||
- Use `btn-primary` for primary actions
|
|
||||||
- Use `btn` for secondary actions, don't use `btn-outline-secondary`
|
|
||||||
- Use `btn-sm` for smaller buttons
|
|
||||||
- Use `w-100` for full-width buttons
|
|
||||||
|
|
||||||
#### Forms
|
|
||||||
|
|
||||||
- Use `form-control` for input fields
|
|
||||||
- Use `form-label` for labels
|
|
||||||
- Use `form-check` for checkboxes/radio buttons
|
|
||||||
- Use `form-select` for dropdowns
|
|
||||||
|
|
||||||
#### Layout
|
|
||||||
|
|
||||||
- Use Bootstrap grid system (`row`, `col-*`)
|
|
||||||
- Use `container-xl` for main containers
|
|
||||||
- Use `page-wrapper` for page structure
|
|
||||||
- Use `page-body` for main content area
|
|
||||||
|
|
||||||
#### Badges
|
|
||||||
|
|
||||||
- Use `badge` class for badges
|
|
||||||
- Don't use `badge-outline` for badges, use `badge` class instead
|
|
||||||
- Don't use `badge-primary` for badges, use `badge` class instead
|
|
||||||
- Don't change the text color of badges
|
|
||||||
|
|
||||||
#### Markdown
|
|
||||||
|
|
||||||
- Use `markdown` class for markdown content
|
|
||||||
- Apply to containers that render markdown content
|
|
||||||
- Example: `<div class="markdown">...</div>`
|
|
||||||
|
|
||||||
#### Rest of the rules
|
|
||||||
|
|
||||||
- Read the rest of the rules in the `docs/content/ui/` folder
|
|
||||||
|
|
||||||
### 6. Data Integration
|
|
||||||
|
|
||||||
#### Using JSON Data
|
|
||||||
|
|
||||||
```liquid
|
|
||||||
{% for item in items %}
|
|
||||||
<div>{{ item.name }}</div>
|
|
||||||
{% endfor %}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Conditional Rendering
|
|
||||||
|
|
||||||
```liquid
|
|
||||||
{% if condition %}
|
|
||||||
<div>Content</div>
|
|
||||||
{% endif %}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Including Components
|
|
||||||
|
|
||||||
```liquid
|
|
||||||
{% include "ui/button.html" color="primary" text="Click me" %}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 7. Best Practices
|
|
||||||
|
|
||||||
#### Performance
|
|
||||||
|
|
||||||
- Minimize nested loops
|
|
||||||
- Use `limit` filters when iterating large datasets
|
|
||||||
- Optimize images for web use
|
|
||||||
|
|
||||||
#### Code Organization
|
|
||||||
|
|
||||||
- Keep components modular and reusable
|
|
||||||
- Use consistent naming conventions
|
|
||||||
- Comment complex logic
|
|
||||||
- Group related functionality together
|
|
||||||
|
|
||||||
#### Error Handling
|
|
||||||
|
|
||||||
- Always check if data exists before using it
|
|
||||||
- Provide fallback content for missing data
|
|
||||||
- Use `{% if %}` guards for optional content
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
---
|
|
||||||
description: Tabler Project Rules
|
|
||||||
globs:
|
|
||||||
alwaysApply: true
|
|
||||||
---
|
|
||||||
|
|
||||||
## Documentation Standards
|
|
||||||
|
|
||||||
- Always write documentation in English (not Polish) for technical content
|
|
||||||
- Use clear, descriptive headings with proper hierarchy (##, ###)
|
|
||||||
- Include practical examples with code snippets
|
|
||||||
- Add explanations for each component's purpose and usage
|
|
||||||
- Use consistent formatting for code blocks and examples
|
|
||||||
|
|
||||||
## CSS/SCSS Guidelines
|
|
||||||
|
|
||||||
- Follow Tabler's CSS custom properties pattern: `--#{$prefix}component-property`
|
|
||||||
- Use semantic class names that describe purpose, not appearance
|
|
||||||
- Maintain consistent spacing and indentation in SCSS files
|
|
||||||
- Group related styles together with clear comments
|
|
||||||
- Use Bootstrap-compatible class naming conventions
|
|
||||||
|
|
||||||
## Component Documentation Structure
|
|
||||||
|
|
||||||
- Start with a brief description of the component's purpose
|
|
||||||
- Show basic usage examples first
|
|
||||||
- Include variations and modifiers
|
|
||||||
- Add accessibility considerations where relevant
|
|
||||||
- Provide code examples that are copy-paste ready
|
|
||||||
|
|
||||||
## File Organization
|
|
||||||
|
|
||||||
- Keep documentation files in `docs/content/ui/components/`
|
|
||||||
- Use consistent naming: lowercase with hyphens
|
|
||||||
- Include frontmatter with title, summary, and description
|
|
||||||
- Link to Bootstrap documentation when relevant
|
|
||||||
|
|
||||||
## Code Examples
|
|
||||||
|
|
||||||
- Use Liquid templating syntax for dynamic examples
|
|
||||||
- Include both HTML and rendered output
|
|
||||||
- Show responsive behavior where applicable
|
|
||||||
- Demonstrate proper accessibility attributes
|
|
||||||
|
|
||||||
## Git Commit Messages
|
|
||||||
|
|
||||||
- Use English for commit messages
|
|
||||||
- Follow conventional commit format when possible
|
|
||||||
- Be descriptive about what was changed and why
|
|
||||||
|
|
||||||
## Project-Specific Conventions
|
|
||||||
|
|
||||||
- Tabler uses Bootstrap 5 as a foundation
|
|
||||||
- Custom components extend Bootstrap functionality
|
|
||||||
- Documentation should be comprehensive but concise
|
|
||||||
- Examples should be practical and immediately usable
|
|
||||||
11
.github/workflows/argos.yml
vendored
11
.github/workflows/argos.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
if: false
|
if: false
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -36,14 +36,13 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
|
||||||
|
- name: Install PNPM
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Get installed Playwright version
|
- name: Get installed Playwright version
|
||||||
id: playwright-version
|
id: playwright-version
|
||||||
|
|||||||
11
.github/workflows/bundlewatch.yml
vendored
11
.github/workflows/bundlewatch.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -27,14 +27,13 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
|
||||||
|
- name: Install PNPM
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Set up Bundler
|
- name: Set up Bundler
|
||||||
uses: ruby/setup-ruby@v1
|
uses: ruby/setup-ruby@v1
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/close_inactive.yml
vendored
2
.github/workflows/close_inactive.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
issues: write
|
issues: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v10
|
- uses: actions/stale@v9
|
||||||
with:
|
with:
|
||||||
days-before-issue-stale: 360
|
days-before-issue-stale: 360
|
||||||
days-before-issue-close: 14
|
days-before-issue-close: 14
|
||||||
|
|||||||
7
.github/workflows/lockfiles.yaml
vendored
7
.github/workflows/lockfiles.yaml
vendored
@@ -12,10 +12,11 @@ jobs:
|
|||||||
name: Verify lock file integrity
|
name: Verify lock file integrity
|
||||||
steps:
|
steps:
|
||||||
- name: Clone Tabler
|
- name: Clone Tabler
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Prevent lock file change
|
- name: Prevent lock file change
|
||||||
uses: xalvarez/prevent-file-change-action@v2
|
uses: xalvarez/prevent-file-change-action@v2
|
||||||
with:
|
with:
|
||||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
pattern: Gemfile.lock|pnpm-lock.json|pnpm-lock.yaml
|
pattern: Gemfile.lock|pnpm-lock.json
|
||||||
trustedAuthors: codecalm, BG-Software-BG, dependabot
|
trustedAuthors: codecalm, dependabot
|
||||||
|
|||||||
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
@@ -21,17 +21,16 @@ jobs:
|
|||||||
pull-requests: write # to create pull request
|
pull-requests: write # to create pull request
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js 18
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Setup Node.js 18
|
|
||||||
uses: actions/setup-node@v5
|
|
||||||
with:
|
|
||||||
node-version: "${{ env.NODE }}"
|
|
||||||
cache: 'pnpm'
|
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
|
|||||||
11
.github/workflows/test.yml
vendored
11
.github/workflows/test.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Clone repository
|
- name: Clone repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -24,14 +24,13 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-turbo-
|
${{ runner.os }}-turbo-
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
|
||||||
|
- name: Install PNPM
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- run: node --version
|
- run: node --version
|
||||||
|
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -23,8 +23,24 @@ A premium and open source dashboard template with a responsive and high-quality
|
|||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/sponsors/codecalm" target="_blank">
|
||||||
|
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/sponsor-banner-homepage.svg" alt="Sponsor Banner">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## Testing
|
## 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">Browser testing via:</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
import { existsSync, mkdirSync, lstatSync } from 'fs'
|
|
||||||
import { emptyDirSync, copySync } from 'fs-extra/esm'
|
|
||||||
import libs from '../libs.json' with { type: 'json' }
|
|
||||||
import { fileURLToPath } from 'url'
|
|
||||||
import { join, dirname } from 'node:path';
|
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
||||||
|
|
||||||
emptyDirSync(join(__dirname, '..', 'dist/libs'))
|
|
||||||
|
|
||||||
for(const name in libs) {
|
|
||||||
const { npm } = libs[name]
|
|
||||||
|
|
||||||
if (npm) {
|
|
||||||
const from = join(__dirname, '..', `node_modules/${npm}`)
|
|
||||||
const to = join(__dirname, '..', `dist/libs/${npm}`)
|
|
||||||
|
|
||||||
// create dir in dist/libs
|
|
||||||
if (!existsSync(to)) {
|
|
||||||
mkdirSync(to, { recursive: true })
|
|
||||||
}
|
|
||||||
|
|
||||||
copySync(from, to, {
|
|
||||||
dereference: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`Successfully copied ${npm}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,260 +1,182 @@
|
|||||||
# @tabler/core
|
# Changelog
|
||||||
|
|
||||||
## 1.4.0
|
## `1.2.0` - 2025-04-16
|
||||||
|
|
||||||
### Minor Changes
|
- Add gradient background utilities
|
||||||
|
- Add new apps card with brand icons in navbar
|
||||||
|
- Replaced TinyMCE with HugeRTE to address license violation
|
||||||
|
- Update Bootstrap to version 5.3.5
|
||||||
|
- Add theme settings wizard
|
||||||
|
- Add steps light colors
|
||||||
|
- Add Turbo library integration
|
||||||
|
- Rollback accordion component structure
|
||||||
|
- Add space between page numbers in pagination
|
||||||
|
- Add Bootstrap components to Tabler JS
|
||||||
|
- Fix tooltip colors in vector maps
|
||||||
|
- Update avatar size variable to support list size configuration
|
||||||
|
- Fix broken shape in South Korea flag
|
||||||
|
- Refactor `border-radius` in components to use CSS variables
|
||||||
|
- Update disabled color variables in navbars
|
||||||
|
- Apply border radius to `tom-select` on focus
|
||||||
|
- Add avatars page with various demos of avatars
|
||||||
|
- Minor spelling and grammar improvements to emails docs
|
||||||
|
- Update avatar size variable to support list size configuration
|
||||||
|
- Refactor SCSS for alerts and close button styles
|
||||||
|
- Fix `autosize` and `input mask` plugins to use window scope
|
||||||
|
- Fix scrollbar color mixin to use body color variable
|
||||||
|
- Improve README
|
||||||
|
- Make scrollbar track transparent
|
||||||
|
- Fix scrollbar jumps when content is higher than screen
|
||||||
|
- Add responsive font size for form controls on mobile devices
|
||||||
|
- Add new advanced table example
|
||||||
|
|
||||||
- 9951fe9: Enhance button and hover animations
|
## `1.1.1` - 2025-03-01
|
||||||
- a200d30: Improve breadcrumb styles
|
|
||||||
- 49ab9ea: Add new Tabler Illustrations
|
|
||||||
|
|
||||||
### Patch Changes
|
- Fix Documentation structure
|
||||||
|
|
||||||
- 6c4dd36: Update class names from `*-left`, `*-right` to `*-start`, `*-end`
|
## `1.1.0` - 2025-03-01
|
||||||
- 6fec73a: Fix relative line heights in buttons
|
|
||||||
- db6200a: Remove `license_key` option from HugeRTE init object
|
|
||||||
- e96f055: Add different favicon to development environment
|
|
||||||
- 6c38a48: Update Bootstrap to v5.3.7
|
|
||||||
- 2a12f72: Update CSS calculations to use `calc()`
|
|
||||||
- 666a296: Fix list group item hoverable only with `.list-group-hoverable` class
|
|
||||||
- cfd4cb6: Fix `.pagination-link` hover styles to non-active items
|
|
||||||
|
|
||||||
## 1.3.2
|
- Add Playwright configuration and visual regression tests
|
||||||
|
- Enable `scrollSpy` in `countup` module
|
||||||
|
- Refactor SCSS files to replace divide function with calc
|
||||||
|
- Add Segmented Control component
|
||||||
|
- Add new text features page with mentions: user, color and app.
|
||||||
|
- Add Scroll Spy page
|
||||||
|
- Update border radius variables for consistency across components
|
||||||
|
- Add Signature Pad feature and signatures page
|
||||||
|
- Update color utility classes and replace background colors in pricing table
|
||||||
|
- Refactored the project into a monorepo, removed Gulp, and introduced a new, more efficient build process.
|
||||||
|
- Add documentation for segmented control component
|
||||||
|
- Add new payment provider (Troy)
|
||||||
|
- Add selectable table functionality with active background color
|
||||||
|
- Refactor badge styles, remove Bootstrap styles
|
||||||
|
- Refactor alert component styles and markup, remove Bootstrap styles
|
||||||
|
- Refactor accordion component styles and markup, remove Bootstrap styles
|
||||||
|
- Fix overflow of `label` in a `floating-input`
|
||||||
|
- Fix size of `apexcharts` tooltip marker
|
||||||
|
- Fix apexcharts heatmap example in docs
|
||||||
|
- Fix negative margins in `.navbar-bordered` variant
|
||||||
|
- Use the full license agreement for illustrations in docs
|
||||||
|
- Fix vertical alignment in single page and error layouts
|
||||||
|
- Fix `.avatar-upload` double borders
|
||||||
|
- Fixes navbar styles with new hover effects and color variables
|
||||||
|
|
||||||
### Patch Changes
|
## `1.0.0` - 2025-01-28
|
||||||
|
|
||||||
- 446c34e: Fix README file in core package
|
- Add new `Tag` component
|
||||||
|
- Add customizable Star Ratings component using `star-rating.js` library
|
||||||
## 1.3.1
|
- Add `flags.html` page with list of all flags
|
||||||
|
- Update CSS class from `text-muted` to `text-secondary` for better Bootstrap compatibility
|
||||||
### Patch Changes
|
- Adding `alerts.html` page with example of alerts.
|
||||||
|
- Change primary color value to new Tabler branding
|
||||||
- a7f73d7: Fix README file in core package
|
- Unify dark mode with latest Bootstrap API and improve dark mode elements
|
||||||
|
- New Chat component
|
||||||
## 1.3.0
|
- Adjusting form element sizes for enhanced mobile devices compatibility
|
||||||
|
- Add new color picker component using `coloris.js` library
|
||||||
### Minor Changes
|
- Update Tabler Icons to version 2.23 with 18 new icons added
|
||||||
|
- New page with payment providers: `payment-providers.html`
|
||||||
- a1af801: Add FullCalendar integration
|
- 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,
|
||||||
- b9d434d: Add new charts to dashboard pages
|
|
||||||
- 79bd867: Add new form layout page
|
|
||||||
|
|
||||||
### Patch Changes
|
|
||||||
|
|
||||||
- cac5d92: Update illustrations to v1.7
|
|
||||||
- f94b153: Add SRI hashes to scripts and styles
|
|
||||||
- c127d65: Fix colour picker preview page not displaying correctly
|
|
||||||
- b6e9b18: Update icons to v3.31.0
|
|
||||||
- 8850f61: Enhance pagination component with new styles
|
|
||||||
- 9910dd0: Add "text features" menu item
|
|
||||||
- 638f36c: Refactor SCSS variable names for shadows
|
|
||||||
- 0d501e9: Correct `aria-label` of app menu link
|
|
||||||
- 3a02ef9: Fix some marketing site rows overflowing on mobile
|
|
||||||
- fd0fd47: Improve card footer layout and enhance entry display format in invoices
|
|
||||||
- 74e5d26: Fix color badge in navbar menu
|
|
||||||
- 72a1d67: Add clipboard functionality to Tabler documentation
|
|
||||||
- bb617b8: Fix colour swatches on small screens
|
|
||||||
- d73d78e: Add missing `tw` entry in `flags.json`
|
|
||||||
- 19a3d20: Delete missing demo RTL style
|
|
||||||
- b5e2f54: Enhance dropdown components for better accessibility
|
|
||||||
- a41c956: Remove unnecessary `!important` from body padding
|
|
||||||
- e675389: Fix missing border-radius to `.card-header-tabs`
|
|
||||||
- 9007e73: Fix FAQ accordion structure
|
|
||||||
|
|
||||||
## 1.2.0
|
|
||||||
|
|
||||||
### Minor Changes
|
|
||||||
|
|
||||||
- c59bc9d: Add gradient background utilities
|
|
||||||
- f9e4da2: Add new apps card with brand icons in navbar
|
|
||||||
- 92a3afe: Replaced TinyMCE with HugeRTE to address license violation
|
|
||||||
- 199f39a: Update Bootstrap to version 5.3.5
|
|
||||||
- 9bbcb99: Add theme settings wizard
|
|
||||||
- b17b488: Add steps light colors
|
|
||||||
- 215eaa4: Add Turbo library integration
|
|
||||||
|
|
||||||
### Patch Changes
|
|
||||||
|
|
||||||
- aea3b0a: Rollback accordion component structure
|
|
||||||
- 3fc7b84: Add space between page numbers in pagination
|
|
||||||
- 2f8a372: Add Bootstrap components to Tabler JS
|
|
||||||
- 9fceadd: Fix tooltip colors in vector maps
|
|
||||||
- 44250db: Update avatar size variable to support list size configuration
|
|
||||||
- be1f3d1: Fix broken shape in South Korea flag
|
|
||||||
- c20d076: Refactor `border-radius` in components to use CSS variables
|
|
||||||
- 042e50f: Update disabled color variables in navbars
|
|
||||||
- 473fa38: Apply border radius to `tom-select` on focus
|
|
||||||
- 8646192: Add avatars page with various demos of avatars
|
|
||||||
- 922bb03: Minor spelling and grammar improvements to emails docs
|
|
||||||
- 44250db: Update avatar size variable to support list size configuration
|
|
||||||
- ddcd3a7: Refactor SCSS for alerts and close button styles
|
|
||||||
- e3d68d6: Fix `autosize` and `input mask` plugins to use window scope
|
|
||||||
- 4846828: Fix scrollbar color mixin to use body color variable
|
|
||||||
- 6b6617a: Improve README
|
|
||||||
- 94bea00: Make scrollbar track transparent
|
|
||||||
- e14e492: Fix scrollbar jumps when content is higher than screen
|
|
||||||
- 6d6d1bd: Add responsive font size for form controls on mobile devices
|
|
||||||
- 6c566cf: Add new advanced table example
|
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
## 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
|
Revolut Pay, Samsung Pay, Shop Pay, Solana, Spingo, Stax, Tether, True USD, Venmo, WeChat Pay, Wise, Zelle
|
||||||
|
- Change Twitter to X brand
|
||||||
### Patch Changes
|
- Updated link to icons documentation
|
||||||
|
- Dependencies update
|
||||||
- 293d0a4: Change Twitter to X brand
|
- Order menu items alphabetically
|
||||||
- fd0935a: Updated link to icons documentation
|
- Automatically retrieve and display the changelog from the CHANGELOG.md file.
|
||||||
- 1cf27dc: Dependencies update
|
- Initialize Visual Studio Code config
|
||||||
- 041f4e4: Order menu items alphabetically
|
- Make horizontal rule direction aware
|
||||||
- 20cad01: Automatically retrieve and display the changelog from the CHANGELOG.md file.
|
- Update Tabler Illustrations to v1.5
|
||||||
- 34f3efc: Initialize Visual Studio Code config
|
- Update Tabler Icons to v3.29.0
|
||||||
- 7ba7717: Make horizontal rule direction aware
|
- Remove unused dependencies from `package.json`
|
||||||
- 063ef58: Update Tabler Illustrations to v1.5
|
- Replace Jekyll with Eleventy
|
||||||
- 5e2c975: Update Tabler Icons to v3.29.0
|
- Dependencies update
|
||||||
- 9d5f7ca: Remove unused dependencies from `package.json`
|
- Update TinyMCE to v7.0
|
||||||
- be69fd6: Replace Jekyll with Eleventy
|
- Fix text color in dark version of navbar
|
||||||
- 2f5fad6: Dependencies update
|
- Remove invalid `z-index` setting for dropdowns
|
||||||
- dfd7c88: Update TinyMCE to v7.0
|
- Update Tabler Icons to version 2.21 with 18 new icons added
|
||||||
- 056df18: Fix text color in dark version of navbar
|
- Update Tabler Emails to v2.0
|
||||||
- 17327dc: Remove invalid `z-index` setting for dropdowns
|
- Init changelog script
|
||||||
- 4ff077a: Update Tabler Icons to version 2.21 with 18 new icons added
|
- Adding Two-Step Verification Pages
|
||||||
- 867c8dd: Update Tabler Emails to v2.0
|
- Replace `.page-center` with `.my-auto` in single page layouts
|
||||||
- d8605f2: Init changelog script
|
- Add border-opacity variable for improved color utility
|
||||||
- 89c6234: Adding Two-Step Verification Pages
|
- Fix icon display issues in the Star Ratings component
|
||||||
- f6e885b: Replace `.page-center` with `.my-auto` in single page layouts
|
- Fix `color` of disabled `dropdown-item` in Navbar component
|
||||||
- 7aa216f: Add border-opacity variable for improved color utility
|
- Bump pnpm/action-setup from 2 to 3
|
||||||
- 88eb413: Fix icon display issues in the Star Ratings component
|
- Add social icons plugin
|
||||||
- 78392b6: Fix `color` of disabled `dropdown-item` in Navbar component
|
- `Dockerfile` fix
|
||||||
- 4deb8f4: Bump pnpm/action-setup from 2 to 3
|
- Update Jekyll to version 4.3.4
|
||||||
- 9015472: Add social icons plugin
|
- Update Tabler Icons to version 2.20 with 37 new icons added
|
||||||
- 7fe30a1: `Dockerfile` fix
|
- Add Tabler Illustrations
|
||||||
- e53942f: Update Jekyll to version 4.3.4
|
- Update illustrations and enhance SVG handling in HTML
|
||||||
- 72f868b: Update Tabler Icons to version 2.20 with 37 new icons added
|
- Fix ids of custom size star ratings
|
||||||
- e0443c0: Add Tabler Illustrations
|
- Unify size of avatar, flag and payment components
|
||||||
- 5cca710: Update illustrations and enhance SVG handling in HTML
|
- Update icons to v2.42.0
|
||||||
- 3a4f10f: Fix ids of custom size star ratings
|
- Update Bootstrap to v5.3.0
|
||||||
- 7896562: Unify size of avatar, flag and payment components
|
- Set `font-size` of an `i` element with `icon` class in a `button` element
|
||||||
- 1587905: Update icons to v2.42.0
|
- Dependencies update
|
||||||
- d9e00b2: Update Bootstrap to v5.3.0
|
- Fix icons in `form-elements.html`
|
||||||
- bc1d1a3: Set `font-size` of an `i` element with `icon` class in a `button` element
|
- Update Tabler Icons to v3.28.1
|
||||||
- 0195f9b: Dependencies update
|
- Fix `rgba` color values in `_variables.scss`
|
||||||
- a5bf5d3: Fix icons in `form-elements.html`
|
- Fix description of alerts with a description
|
||||||
- 736410c: Update Tabler Icons to v3.28.1
|
- Fix colors of disabled `.ts-control`
|
||||||
- 3f516ea: Fix `rgba` color values in `_variables.scss`
|
- Center content on error and single page layouts
|
||||||
- e91884e: Fix description of alerts with a description
|
- Resolve map page issues
|
||||||
- 90cc744: Fix colors of disabled `.ts-control`
|
- Improve base font family loading
|
||||||
- 1801e41: Center content on error and single page layouts
|
- Introduce Docker Compose Config to build and run Ttabler locally
|
||||||
- 45c83ac: Resolve map page issues
|
- Fix `@charset` CSS declaration in bundle.
|
||||||
- faee63c: Improve base font family loading
|
- Update `_navbar.scss` with disabled dropdown menu items color
|
||||||
- 5e7e0dd: Introduce Docker Compose Config to build and run Ttabler locally
|
- Update Tabler Icons to v3.17.0
|
||||||
- c293a66: Fix `@charset` CSS declaration in bundle.
|
- Update `@tabler/icons` to v3.0
|
||||||
- cb4a681: Update `_navbar.scss` with disabled dropdown menu items color
|
- Refactor data structure by converting YAML files to JSON
|
||||||
- af41fb3: Update Tabler Icons to v3.17.0
|
- Increase `z-index` of `ts-dropdown` to prevent overlapping by buttons
|
||||||
- 6cbe888: Update `@tabler/icons` to v3.0
|
- Adding punctuation to `SECURITY.md`
|
||||||
- 0e4bf5f: Refactor data structure by converting YAML files to JSON
|
- Fix form controls bugs in dark mode
|
||||||
- 82cf257: Increase `z-index` of `ts-dropdown` to prevent overlapping by buttons
|
- Fix padding in code blocks
|
||||||
- 4b4b4f6: Adding punctuation to `SECURITY.md`
|
- Unified Box Shadows with Bootstrap Compatibility
|
||||||
- a0a2d52: Fix form controls bugs in dark mode
|
- Remove duplicated setting of color in `th` element
|
||||||
- f45b697: Fix padding in code blocks
|
- Fix layout of search results for small and medium screens
|
||||||
- 4de166d: Unified Box Shadows with Bootstrap Compatibility
|
- Remove `text-decoration` on hovering `a` element with class having `icon` class
|
||||||
- 87bf2f5: Remove duplicated setting of color in `th` element
|
- Fix small typo in tables docs
|
||||||
- 5dc45aa: Fix layout of search results for small and medium screens
|
- Improve documentation for alerts
|
||||||
- 4ae0358: Remove `text-decoration` on hovering `a` element with class having `icon` class
|
- Bump `pnpm/action-setup` from 3 to 4
|
||||||
- e798eb6: Fix small typo in tables docs
|
- Update dependencies
|
||||||
- 1c1d0c9: Improve documentation for alerts
|
- Update Tabler Icons to version 2.22 with 18 new icons added
|
||||||
- 371ef84: Bump `pnpm/action-setup` from 3 to 4
|
- Update devDependencies
|
||||||
- 8421fc2: Update dependencies
|
- Add All Contributions package to project for easy contribution tracking
|
||||||
- 0625f5f: Update Tabler Icons to version 2.22 with 18 new icons added
|
- Set value of `$font-family-monospace` as default
|
||||||
- ba65fc3: Update devDependencies
|
- Refactor Dockerfile and package.json
|
||||||
- a43ded4: Add All Contributions package to project for easy contribution tracking
|
- Resolved light dropdown issue on dark theme
|
||||||
- 2f622c9: Set value of `$font-family-monospace` as default
|
- Enhance documentation
|
||||||
- 2c7c448: Refactor Dockerfile and package.json
|
- Update Tabler Icons to version 2.19 with 18 new icons added
|
||||||
- 5ec7f05: Resolved light dropdown issue on dark theme
|
- Fix cells with inline icons
|
||||||
- b0b07b9: Enhance documentation
|
- Fix `color` of disabled `nav-link` in `nav-bordered`
|
||||||
- 0f129b1: Update Tabler Icons to version 2.19 with 18 new icons added
|
- Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
|
||||||
- 507df7b: Fix cells with inline icons
|
- Switch from `npm` to `pnpm` for faster package installation
|
||||||
- 0e5b44a: Fix `color` of disabled `nav-link` in `nav-bordered`
|
- Increase contrast of active `dropdown-item` in vertical layout
|
||||||
- 65c1300: Fix the `z-index` value of the `nav-tab` inside `card-tab` #1933
|
- Update documentation for Tabler components
|
||||||
- 8552a46: Switch from `npm` to `pnpm` for faster package installation
|
- Add variable to configure `avatar-list` spacing
|
||||||
- 4a9e40d: Increase contrast of active `dropdown-item` in vertical layout
|
- Do not display empty `fieldset` element
|
||||||
- 17ebdf4: Update documentation for Tabler components
|
- Refactor SCSS variables to use `color.adjust` for improved color manipulation
|
||||||
- 4c88481: Add variable to configure `avatar-list` spacing
|
- Add Tabler Illustrations
|
||||||
- df46ee7: Do not display empty `fieldset` element
|
- Update required Node.js version to 18 and add `.nvmrc` file
|
||||||
- 875cafa: Refactor SCSS variables to use `color.adjust` for improved color manipulation
|
- Fix table default background color
|
||||||
- eb28546: Add Tabler Illustrations
|
- Avoid SCSS color dependency on `:focus`
|
||||||
- 650d84c: Update required Node.js version to 18 and add `.nvmrc` file
|
- Update changelog configuration and release scripts
|
||||||
- fb659d4: Fix table default background color
|
- Update Tabler Icons to v3.26.0
|
||||||
- f77c712: Avoid SCSS color dependency on `:focus`
|
- Updated Tabler Icons to v3.24.0
|
||||||
- 71c68ce: Update changelog configuration and release scripts
|
- Update Tabler Icons to version 2.18 with 18 new icons added
|
||||||
- 34d124d: Update Tabler Icons to v3.26.0
|
- Update Node.js engine requirement to allow versions >=20
|
||||||
- 4cd9215: Updated Tabler Icons to v3.24.0
|
- Update Tabler Icons to v3.14.0
|
||||||
- 7bb947b: Update Tabler Icons to version 2.18 with 18 new icons added
|
- Add Prettier to project for consistent code formatting
|
||||||
- c75cf55: Update Node.js engine requirement to allow versions >=20
|
- Upgrade Node.js from version 18 to version 20 for improved performance, security, and feature updates.
|
||||||
- 1c34e8e: Update Tabler Icons to v3.14.0
|
- Update Tabler Icons to version 2.25 with 48 new icons added
|
||||||
- 289dd3b: Add Prettier to project for consistent code formatting
|
- Fix responsiveness issue in Settings menu
|
||||||
- f83e36c: Upgrade Node.js from version 18 to version 20 for improved performance, security, and feature updates.
|
- Added 3 new payments from Nepal: Esewa, FonePay, Khalti and Imepay
|
||||||
- b885852: Update Tabler Icons to version 2.25 with 48 new icons added
|
- Add new Filled section to Icons page
|
||||||
- 53a5117: Fix responsiveness issue in Settings menu
|
- Update `bootstrap` to v5.3.1
|
||||||
- 38504e5: Added 3 new payments from Nepal: Esewa, FonePay, Khalti and Imepay
|
- Update package dependencies to latest versions
|
||||||
- 35ee14d: Add new Filled section to Icons page
|
- Fix link to webfont version of Tabler Icons
|
||||||
- d32f242: Update `bootstrap` to v5.3.1
|
- Add support for changeset tool for more efficient and organized code changes
|
||||||
- d82f94e: Update package dependencies to latest versions
|
- Fix colors in date range datepicker
|
||||||
- 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
|
## `1.0.0-beta24` - 2025-01-11
|
||||||
|
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
# Tabler Core
|
|
||||||
|
|
||||||
Tabler Core is a set of components and utilities for building web applications. It provides a collection of pre-designed components, such as buttons, forms, modals, and more, that can be easily customized and integrated into your projects.
|
|
||||||
|
|
||||||
## 🔎 Preview
|
|
||||||
|
|
||||||
Tabler is fully responsive and compatible with all modern browsers. Thanks to its modern and user-friendly design you can create a fully functional interface that users will love! Choose the layouts and components you need and customize them to make your design consistent and eye-catching. Every component has been created with attention to detail to make your interface beautiful!
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://preview.tabler.io" target="_blank">
|
|
||||||
<img src="https://raw.githubusercontent.com/tabler/tabler/dev/shared/static/tabler-preview.png" alt="Tabler Preview">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
To install Tabler Core, you can use npm or yarn. Run one of the following commands in your terminal:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install @tabler/core
|
|
||||||
```
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm add @tabler/core
|
|
||||||
```
|
|
||||||
|
|
||||||
## Sponsors
|
|
||||||
|
|
||||||
**If you want to support our project and help us grow it, you can [become a sponsor on GitHub](https://github.com/sponsors/codecalm) or just [donate on PayPal](https://paypal.me/codecalm) :)**
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://github.com/sponsors/codecalm">
|
|
||||||
<img src="https://cdn.jsdelivr.net/gh/tabler/sponsors@latest/sponsors.svg" alt="Tabler sponsors">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
See the [LICENSE](https://github.com/tabler/tabler/blob/master/LICENSE) file.
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
// SortableJS plugin
|
|
||||||
// Initializes Sortable on elements marked with [data-sortable]
|
|
||||||
// Allows options via JSON in data attribute: data-sortable='{"animation":150}'
|
|
||||||
|
|
||||||
const sortableElements = document.querySelectorAll('[data-sortable]');
|
|
||||||
|
|
||||||
if (sortableElements.length) {
|
|
||||||
sortableElements.forEach(function (element) {
|
|
||||||
let options = {};
|
|
||||||
|
|
||||||
try {
|
|
||||||
const rawOptions = element.getAttribute('data-sortable');
|
|
||||||
options = rawOptions ? JSON.parse(rawOptions) : {};
|
|
||||||
} catch (e) {
|
|
||||||
// ignore invalid JSON
|
|
||||||
}
|
|
||||||
|
|
||||||
if (window.Sortable) {
|
|
||||||
// eslint-disable-next-line no-new
|
|
||||||
new window.Sortable(element, options);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -7,7 +7,6 @@ import "./src/popover"
|
|||||||
import "./src/switch-icon"
|
import "./src/switch-icon"
|
||||||
import "./src/tab"
|
import "./src/tab"
|
||||||
import "./src/toast"
|
import "./src/toast"
|
||||||
import "./src/sortable"
|
|
||||||
|
|
||||||
export * as bootstrap from "bootstrap"
|
export * as bootstrap from "bootstrap"
|
||||||
export * as tabler from "./src/tabler"
|
export * as tabler from "./src/tabler"
|
||||||
|
|||||||
170
core/libs.json
170
core/libs.json
@@ -1,170 +0,0 @@
|
|||||||
{
|
|
||||||
"imask": {
|
|
||||||
"npm": "imask",
|
|
||||||
"js": [
|
|
||||||
"dist/imask.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"autosize": {
|
|
||||||
"npm": "autosize",
|
|
||||||
"js": [
|
|
||||||
"dist/autosize.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"apexcharts": {
|
|
||||||
"npm": "apexcharts",
|
|
||||||
"js": [
|
|
||||||
"dist/apexcharts.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"nouislider": {
|
|
||||||
"npm": "nouislider",
|
|
||||||
"js": [
|
|
||||||
"dist/nouislider.min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/nouislider.min.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"countup": {
|
|
||||||
"npm": "countup.js",
|
|
||||||
"js": [
|
|
||||||
"dist/countUp.umd.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"lists": {
|
|
||||||
"npm": "list.js",
|
|
||||||
"js": [
|
|
||||||
"dist/list.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sortablejs": {
|
|
||||||
"npm": "sortablejs",
|
|
||||||
"js": [
|
|
||||||
"Sortable.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"masonry": {
|
|
||||||
"js": [
|
|
||||||
"https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"mapbox": {
|
|
||||||
"js": [
|
|
||||||
"https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"google-maps": {
|
|
||||||
"js": [
|
|
||||||
"https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_KEY"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"litepicker": {
|
|
||||||
"npm": "litepicker",
|
|
||||||
"js": [
|
|
||||||
"dist/litepicker.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tom-select": {
|
|
||||||
"npm": "tom-select",
|
|
||||||
"js": [
|
|
||||||
"dist/js/tom-select.base.min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/css/tom-select.bootstrap5.min.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"jsvectormap": {
|
|
||||||
"npm": "jsvectormap",
|
|
||||||
"js": [
|
|
||||||
"dist/jsvectormap.min.js",
|
|
||||||
"dist/maps/world.js",
|
|
||||||
"dist/maps/world-merc.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/jsvectormap.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fslightbox": {
|
|
||||||
"npm": "fslightbox",
|
|
||||||
"js": [
|
|
||||||
"index.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hugerte": {
|
|
||||||
"npm": "hugerte",
|
|
||||||
"js": [
|
|
||||||
"hugerte.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"plyr": {
|
|
||||||
"npm": "plyr",
|
|
||||||
"js": [
|
|
||||||
"dist/plyr.min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/plyr.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"dropzone": {
|
|
||||||
"npm": "dropzone",
|
|
||||||
"js": [
|
|
||||||
"dist/dropzone-min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/dropzone.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"star-rating.js": {
|
|
||||||
"npm": "star-rating.js",
|
|
||||||
"js": [
|
|
||||||
"dist/star-rating.min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/star-rating.min.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"coloris.js": {
|
|
||||||
"npm": "@melloware/coloris",
|
|
||||||
"js": [
|
|
||||||
"dist/umd/coloris.min.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"dist/coloris.min.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"typed.js": {
|
|
||||||
"npm": "typed.js",
|
|
||||||
"js": [
|
|
||||||
"dist/typed.umd.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"signature_pad": {
|
|
||||||
"npm": "signature_pad",
|
|
||||||
"js": [
|
|
||||||
"dist/signature_pad.umd.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"clipboard": {
|
|
||||||
"npm": "clipboard",
|
|
||||||
"js": [
|
|
||||||
"dist/clipboard.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fullcalendar": {
|
|
||||||
"npm": "fullcalendar",
|
|
||||||
"js": [
|
|
||||||
"index.global.min.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"turbo": {
|
|
||||||
"npm": "@hotwired/turbo",
|
|
||||||
"js": [
|
|
||||||
"dist/turbo.es2017-umd.js"
|
|
||||||
],
|
|
||||||
"head": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "@tabler/core",
|
"name": "@tabler/core",
|
||||||
"version": "1.4.0",
|
"version": "1.2.0",
|
||||||
"description": "Premium and Open Source dashboard template with responsive and high quality UI.",
|
"description": "Premium and Open Source dashboard template with responsive and high quality UI.",
|
||||||
"homepage": "https://tabler.io",
|
"homepage": "https://tabler.io",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm run clean && pnpm run copy && pnpm run watch",
|
"dev": "pnpm run watch",
|
||||||
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri",
|
"build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy && pnpm run generate-sri",
|
||||||
"clean": "shx rm -rf dist demo",
|
"clean": "shx rm -rf dist demo",
|
||||||
"css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner",
|
"css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner",
|
||||||
"css-compile": "sass --no-source-map --load-path=node_modules --style expanded scss/:dist/css/",
|
"css-compile": "sass scss/:dist/css/ --no-source-map --load-path=node_modules",
|
||||||
"css-banner": "node .build/add-banner.mjs",
|
"css-banner": "node .build/add-banner.mjs",
|
||||||
"css-prefix": "postcss --config .build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
|
"css-prefix": "postcss --config .build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
|
||||||
"css-rtl": "cross-env NODE_ENV=RTL postcss --config .build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"",
|
"css-rtl": "cross-env NODE_ENV=RTL postcss --config .build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"",
|
||||||
@@ -26,9 +26,8 @@
|
|||||||
"js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.esm.js.map,includeSources,url=tabler.esm.min.js.map\" --output dist/js/tabler.esm.min.js dist/js/tabler.esm.js",
|
"js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.esm.js.map,includeSources,url=tabler.esm.min.js.map\" --output dist/js/tabler.esm.min.js dist/js/tabler.esm.js",
|
||||||
"js-minify-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.js.map,includeSources,url=tabler-theme.min.js.map\" --output dist/js/tabler-theme.min.js dist/js/tabler-theme.js",
|
"js-minify-theme": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.js.map,includeSources,url=tabler-theme.min.js.map\" --output dist/js/tabler-theme.min.js dist/js/tabler-theme.js",
|
||||||
"js-minify-theme-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.esm.js.map,includeSources,url=tabler-theme.esm.min.js.map\" --output dist/js/tabler-theme.esm.min.js dist/js/tabler-theme.esm.js",
|
"js-minify-theme-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler-theme.esm.js.map,includeSources,url=tabler-theme.esm.min.js.map\" --output dist/js/tabler-theme.esm.min.js dist/js/tabler-theme.esm.js",
|
||||||
"copy": "pnpm run copy-img && pnpm run copy-libs",
|
"copy": "pnpm run copy-img",
|
||||||
"copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img",
|
"copy-img": "shx mkdir -p dist/img && shx cp -rf img/* dist/img",
|
||||||
"copy-libs": "node .build/copy-libs.mjs",
|
|
||||||
"watch": "concurrently \"pnpm run watch-css\" \"pnpm run watch-js\"",
|
"watch": "concurrently \"pnpm run watch-css\" \"pnpm run watch-js\"",
|
||||||
"watch-css": "nodemon --watch scss/ --ext scss --exec \"pnpm run css-compile && pnpm run css-prefix\"",
|
"watch-css": "nodemon --watch scss/ --ext scss --exec \"pnpm run css-compile && pnpm run css-prefix\"",
|
||||||
"watch-js": "nodemon --watch js/ --ext js --exec \"pnpm run js-compile\"",
|
"watch-js": "nodemon --watch js/ --ext js --exec \"pnpm run js-compile\"",
|
||||||
@@ -67,8 +66,7 @@
|
|||||||
"dist/**/*",
|
"dist/**/*",
|
||||||
"js/**/*.{js,map}",
|
"js/**/*.{js,map}",
|
||||||
"img/**/*.{svg}",
|
"img/**/*.{svg}",
|
||||||
"scss/**/*.scss",
|
"scss/**/*.scss"
|
||||||
"libs.json"
|
|
||||||
],
|
],
|
||||||
"style": "dist/css/tabler.css",
|
"style": "dist/css/tabler.css",
|
||||||
"sass": "scss/tabler.scss",
|
"sass": "scss/tabler.scss",
|
||||||
@@ -146,32 +144,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@popperjs/core": "^2.11.8",
|
"@popperjs/core": "^2.11.8",
|
||||||
"bootstrap": "5.3.8"
|
"bootstrap": "5.3.5"
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@hotwired/turbo": "^8.0.13",
|
|
||||||
"@melloware/coloris": "^0.25.0",
|
|
||||||
"apexcharts": "3.54.1",
|
|
||||||
"autosize": "^6.0.1",
|
|
||||||
"choices.js": "^11.1.0",
|
|
||||||
"clipboard": "^2.0.11",
|
|
||||||
"countup.js": "^2.9.0",
|
|
||||||
"dropzone": "^6.0.0-beta.2",
|
|
||||||
"flatpickr": "^4.6.13",
|
|
||||||
"fslightbox": "^3.7.4",
|
|
||||||
"fullcalendar": "^6.1.19",
|
|
||||||
"hugerte": "^1.0.9",
|
|
||||||
"imask": "^7.6.1",
|
|
||||||
"jsvectormap": "^1.7.0",
|
|
||||||
"list.js": "^2.3.1",
|
|
||||||
"litepicker": "^2.0.12",
|
|
||||||
"nouislider": "^15.8.1",
|
|
||||||
"plyr": "^3.8.3",
|
|
||||||
"signature_pad": "^5.1.1",
|
|
||||||
"sortablejs": "^1.15.6",
|
|
||||||
"star-rating.js": "^4.3.1",
|
|
||||||
"tom-select": "^2.4.3",
|
|
||||||
"typed.js": "^2.1.0"
|
|
||||||
},
|
},
|
||||||
"directories": {
|
"directories": {
|
||||||
"doc": "docs"
|
"doc": "docs"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
@import "bootstrap/scss/nav";
|
@import "bootstrap/scss/nav";
|
||||||
@import "bootstrap/scss/navbar";
|
@import "bootstrap/scss/navbar";
|
||||||
@import "bootstrap/scss/card";
|
@import "bootstrap/scss/card";
|
||||||
|
@import "bootstrap/scss/breadcrumb";
|
||||||
@import "bootstrap/scss/pagination";
|
@import "bootstrap/scss/pagination";
|
||||||
@import "bootstrap/scss/progress";
|
@import "bootstrap/scss/progress";
|
||||||
@import "bootstrap/scss/list-group";
|
@import "bootstrap/scss/list-group";
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Config
|
// Config
|
||||||
|
@import "bootstrap/scss/functions";
|
||||||
@import "bootstrap/scss/variables";
|
@import "bootstrap/scss/variables";
|
||||||
@import "bootstrap/scss/variables-dark";
|
@import "bootstrap/scss/variables-dark";
|
||||||
@import "bootstrap/scss/maps";
|
@import "bootstrap/scss/maps";
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:color";
|
|
||||||
|
|
||||||
@mixin caret($direction: down) {
|
@mixin caret($direction: down) {
|
||||||
$selector: "after";
|
$selector: "after";
|
||||||
|
|
||||||
@@ -76,5 +74,5 @@
|
|||||||
// TODO: remove when https://github.com/twbs/bootstrap/pull/37425/ will be released
|
// TODO: remove when https://github.com/twbs/bootstrap/pull/37425/ will be released
|
||||||
//
|
//
|
||||||
@function opaque($background, $foreground) {
|
@function opaque($background, $foreground) {
|
||||||
@return color.mix(rgba($foreground, 1), $background, color.alpha($foreground) * 100%);
|
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
@import "bootstrap/scss/functions";
|
||||||
|
|
||||||
@import "mixins";
|
@import "mixins";
|
||||||
@import "variables";
|
@import "variables";
|
||||||
|
|||||||
@@ -76,7 +76,6 @@
|
|||||||
@import "utils/opacity";
|
@import "utils/opacity";
|
||||||
@import "utils/shadow";
|
@import "utils/shadow";
|
||||||
@import "utils/text";
|
@import "utils/text";
|
||||||
@import "utils/hover";
|
|
||||||
|
|
||||||
@import "debug";
|
@import "debug";
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
@import "config";
|
@import "config";
|
||||||
|
|
||||||
:root,
|
:root,
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
--#{$prefix}brand: #{$primary};
|
--#{$prefix}brand: #{$primary};
|
||||||
|
|
||||||
/** Theme colors */
|
/** Theme colors */
|
||||||
@each $name, $color in map.merge($theme-colors, $social-colors) {
|
@each $name, $color in map-merge($theme-colors, $social-colors) {
|
||||||
--#{$prefix}#{$name}: #{$color};
|
--#{$prefix}#{$name}: #{$color};
|
||||||
--#{$prefix}#{$name}-rgb: #{to-rgb($color)};
|
--#{$prefix}#{$name}-rgb: #{to-rgb($color)};
|
||||||
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color) > $min-contrast-ratio, var(--#{$prefix}light), var(--#{$prefix}dark))};
|
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color) > $min-contrast-ratio, var(--#{$prefix}light), var(--#{$prefix}dark))};
|
||||||
@@ -43,9 +42,9 @@
|
|||||||
--#{$prefix}#{$name}-lt-rgb: #{to-rgb(theme-color-lighter($color))};
|
--#{$prefix}#{$name}-lt-rgb: #{to-rgb(theme-color-lighter($color))};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gray colors */
|
/** Social colors */
|
||||||
@each $name, $color in $gray-colors {
|
@each $name, $color in $social-colors {
|
||||||
--#{$prefix}#{$name}-fg: #{if(contrast-ratio($color, white) > $min-contrast-ratio, var(--#{$prefix}white), var(--#{$prefix}body-color))};
|
--#{$prefix}#{$name}: #{$color};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Spacers */
|
/** Spacers */
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
$negative-spacers-extra: if(
|
$negative-spacers-extra: if(
|
||||||
$enable-negative-margins,
|
$enable-negative-margins,
|
||||||
negativify-map(map.merge($spacers, $spacers-extra)),
|
negativify-map(map-merge($spacers, $spacers-extra)),
|
||||||
null
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -110,13 +110,6 @@ $utilities: (
|
|||||||
null: linear-gradient(var(--#{$prefix}gradient-direction, to right), var(--#{$prefix}gradient-stops, var(--#{$prefix}gradient-from, transparent), var(--#{$prefix}gradient-to, transparent))) no-repeat,
|
null: linear-gradient(var(--#{$prefix}gradient-direction, to right), var(--#{$prefix}gradient-stops, var(--#{$prefix}gradient-from, transparent), var(--#{$prefix}gradient-to, transparent))) no-repeat,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"bg-blur": (
|
|
||||||
property: backdrop-filter,
|
|
||||||
class: bg-blur,
|
|
||||||
values: (
|
|
||||||
null: blur($backdrop-blur)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
"bg-gradient-direction": (
|
"bg-gradient-direction": (
|
||||||
property: --#{$prefix}gradient-direction,
|
property: --#{$prefix}gradient-direction,
|
||||||
class: bg-gradient,
|
class: bg-gradient,
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
@use "sass:string";
|
|
||||||
@use "sass:math";
|
|
||||||
@use "sass:map";
|
|
||||||
@use "sass:color";
|
|
||||||
|
|
||||||
$prefix: "tblr-" !default;
|
$prefix: "tblr-" !default;
|
||||||
|
|
||||||
// BASE CONFIG
|
// BASE CONFIG
|
||||||
@@ -28,10 +23,10 @@ $font-google-monospaced: null !default;
|
|||||||
$font-local: null !default;
|
$font-local: null !default;
|
||||||
$font-icons: () !default;
|
$font-icons: () !default;
|
||||||
|
|
||||||
$font-family-sans-serif: string.unquote("#{if($font-local, "#{$font-local}, ", ' ')}#{if($font-google, "#{$font-google}, ", ' ')}") 'Inter Var', Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif !default;
|
$font-family-sans-serif: unquote("#{if($font-local, "#{$font-local}, ", ' ')}#{if($font-google, "#{$font-google}, ", ' ')}") 'Inter Var', Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif !default;
|
||||||
$font-family-monospace: string.unquote("#{if($font-google-monospaced, "#{$font-google-monospaced}, ", '')}") Monaco, Consolas, Liberation Mono, Courier New, monospace !default;
|
$font-family-monospace: unquote("#{if($font-google-monospaced, "#{$font-google-monospaced}, ", '')}") Monaco, Consolas, Liberation Mono, Courier New, monospace !default;
|
||||||
$font-family-serif: "Georgia", "Times New Roman", times, serif !default;
|
$font-family-serif: "Georgia", "Times New Roman", times, serif !default;
|
||||||
$font-family-comic: "Comic Sans MS", "Comic Sans", "Chalkboard SE", "Comic Neue", sans-serif, cursive !default;
|
$font-family-comic: "Comic Sans MS", "Comic Sans", 'Chalkboard SE', 'Comic Neue', sans-serif, cursive !default;
|
||||||
|
|
||||||
//Icons
|
//Icons
|
||||||
$icon-stroke-width: 1.5 !default;
|
$icon-stroke-width: 1.5 !default;
|
||||||
@@ -57,9 +52,9 @@ $line-height-700: 3rem !default;
|
|||||||
|
|
||||||
$font-size-base: 0.875rem !default;
|
$font-size-base: 0.875rem !default;
|
||||||
|
|
||||||
$spacing-wide: 0.04em !default;
|
$spacing-wide: .04em !default;
|
||||||
$spacing-normal: 0 !default;
|
$spacing-normal: 0 !default;
|
||||||
$spacing-tight: -0.04em !default;
|
$spacing-tight: -.04em !default;
|
||||||
|
|
||||||
$body-letter-spacing: 0 !default;
|
$body-letter-spacing: 0 !default;
|
||||||
|
|
||||||
@@ -73,12 +68,12 @@ $headings-font-weight: var(--#{$prefix}font-weight-bold) !default;
|
|||||||
$headings-margin-bottom: var(--#{$prefix}spacer) !default;
|
$headings-margin-bottom: var(--#{$prefix}spacer) !default;
|
||||||
|
|
||||||
$font-weights: (
|
$font-weights: (
|
||||||
"light": $font-weight-light,
|
'light': $font-weight-light,
|
||||||
"normal": $font-weight-normal,
|
'normal': $font-weight-normal,
|
||||||
"medium": $font-weight-medium,
|
'medium': $font-weight-medium,
|
||||||
"bold": $font-weight-bold,
|
'bold': $font-weight-bold,
|
||||||
"black": $font-weight-black,
|
'black': $font-weight-black,
|
||||||
"headings": $headings-font-weight,
|
'headings': $headings-font-weight,
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
$line-height-base: divide(1.25rem, $font-size-base) !default;
|
$line-height-base: divide(1.25rem, $font-size-base) !default;
|
||||||
@@ -104,8 +99,8 @@ $h5-line-height: 1rem !default;
|
|||||||
$h6-font-size: 0.625rem !default;
|
$h6-font-size: 0.625rem !default;
|
||||||
$h6-line-height: 1rem !default;
|
$h6-line-height: 1rem !default;
|
||||||
|
|
||||||
$font-size-reative-xs: 0.71428571em !default;
|
$font-size-reative-xs: .71428571em !default;
|
||||||
$font-size-reative-sm: 0.85714285em !default;
|
$font-size-reative-sm: .85714285em !default;
|
||||||
$font-size-reative-md: 1em !default;
|
$font-size-reative-md: 1em !default;
|
||||||
|
|
||||||
$font-sizes: (
|
$font-sizes: (
|
||||||
@@ -151,7 +146,7 @@ $border-light-opacity: 0.08 !default;
|
|||||||
$border-dark-opacity: 0.24 !default;
|
$border-dark-opacity: 0.24 !default;
|
||||||
$border-active-opacity: 0.58 !default;
|
$border-active-opacity: 0.58 !default;
|
||||||
|
|
||||||
$gray-50: #f9fafb !default;
|
$gray-50: #f9fafb !default;
|
||||||
$gray-100: #f3f4f6 !default;
|
$gray-100: #f3f4f6 !default;
|
||||||
$gray-200: #e5e7eb !default;
|
$gray-200: #e5e7eb !default;
|
||||||
$gray-300: #d1d5db !default;
|
$gray-300: #d1d5db !default;
|
||||||
@@ -205,7 +200,7 @@ $border-color-translucent: rgba(4, 32, 69, 0.1);
|
|||||||
$border-dark-color: $gray-400 !default;
|
$border-dark-color: $gray-400 !default;
|
||||||
$border-dark-color-translucent: rgba(4, 32, 69, 0.27);
|
$border-dark-color-translucent: rgba(4, 32, 69, 0.27);
|
||||||
|
|
||||||
$border-active-color: color.mix($text-secondary, #ffffff, math.percentage($border-active-opacity)) !default;
|
$border-active-color: mix($text-secondary, #ffffff, percentage($border-active-opacity)) !default;
|
||||||
$border-active-color-translucent: rgba($text-secondary, $border-active-opacity) !default;
|
$border-active-color-translucent: rgba($text-secondary, $border-active-opacity) !default;
|
||||||
|
|
||||||
$active-bg: rgba(var(--#{$prefix}primary-rgb), 0.04) !default;
|
$active-bg: rgba(var(--#{$prefix}primary-rgb), 0.04) !default;
|
||||||
@@ -215,7 +210,7 @@ $active-border-color: var(--#{$prefix}primary) !default;
|
|||||||
$hover-bg: rgba(var(--#{$prefix}secondary-rgb), 0.08) !default;
|
$hover-bg: rgba(var(--#{$prefix}secondary-rgb), 0.08) !default;
|
||||||
|
|
||||||
$disabled-bg: var(--#{$prefix}bg-surface-secondary) !default;
|
$disabled-bg: var(--#{$prefix}bg-surface-secondary) !default;
|
||||||
$disabled-color: color-transparent(var(--#{$prefix}body-color), 0.4) !default;
|
$disabled-color: color-transparent(var(--#{$prefix}body-color), .4) !default;
|
||||||
|
|
||||||
$primary: $blue !default;
|
$primary: $blue !default;
|
||||||
$secondary: $text-secondary !default;
|
$secondary: $text-secondary !default;
|
||||||
@@ -284,15 +279,14 @@ $gray-colors: (
|
|||||||
gray-700: $gray-700,
|
gray-700: $gray-700,
|
||||||
gray-800: $gray-800,
|
gray-800: $gray-800,
|
||||||
gray-900: $gray-900,
|
gray-900: $gray-900,
|
||||||
gray-950: $gray-950,
|
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
$theme-colors: map.merge($theme-colors, map.merge($extra-colors, ()));
|
$theme-colors: map-merge($theme-colors, map-merge($extra-colors, ()));
|
||||||
|
|
||||||
// BACKDROPS
|
// BACKDROPS
|
||||||
$backdrop-opacity: .32 !default;
|
$backdrop-opacity: 24% !default;
|
||||||
$backdrop-blur: 4px !default;
|
$backdrop-blur: 4px !default;
|
||||||
$backdrop-bg: light-dark(var(--#{$prefix}gray-800), var(--#{$prefix}black)) !default;
|
$backdrop-bg: var(--#{$prefix}gray-800) !default;
|
||||||
$backdrops: (
|
$backdrops: (
|
||||||
dark: color-mix(in srgb, var(--#{$prefix}color-dark), transparent var(--#{$prefix}backdrop-opacity)),
|
dark: color-mix(in srgb, var(--#{$prefix}color-dark), transparent var(--#{$prefix}backdrop-opacity)),
|
||||||
light: color-mix(in srgb, var(--#{$prefix}color-light), transparent var(--#{$prefix}backdrop-opacity)),
|
light: color-mix(in srgb, var(--#{$prefix}color-light), transparent var(--#{$prefix}backdrop-opacity)),
|
||||||
@@ -326,10 +320,10 @@ $border-values: (
|
|||||||
$icon-color: var(--#{$prefix}gray-400) !default;
|
$icon-color: var(--#{$prefix}gray-400) !default;
|
||||||
|
|
||||||
// Code
|
// Code
|
||||||
$code-color: light-dark(var(--#{$prefix}gray-600), var(--#{$prefix}gray-400)) !default;
|
$code-color: var(--#{$prefix}primary) !default;
|
||||||
$code-bg: light-dark(var(--#{$prefix}gray-100), var(--#{$prefix}gray-900)) !default;
|
|
||||||
$code-font-size: $font-size-reative-sm !default;
|
$code-font-size: $font-size-reative-sm !default;
|
||||||
$code-line-height: 1.25rem !default;
|
$code-line-height: 1.25rem !default;
|
||||||
|
$code-bg: var(--#{$prefix}primary-lt) !default;
|
||||||
|
|
||||||
$pre-padding: 1rem !default;
|
$pre-padding: 1rem !default;
|
||||||
$pre-bg: var(--#{$prefix}bg-surface-dark) !default;
|
$pre-bg: var(--#{$prefix}bg-surface-dark) !default;
|
||||||
@@ -346,7 +340,7 @@ $kbd-border-radius: var(--#{$prefix}border-radius) !default;
|
|||||||
|
|
||||||
// Avatars
|
// Avatars
|
||||||
$avatar-size: 2.5rem !default;
|
$avatar-size: 2.5rem !default;
|
||||||
$avatar-status-size: 0.75rem !default;
|
$avatar-status-size: .75rem !default;
|
||||||
$avatar-font-size: 1rem !default;
|
$avatar-font-size: 1rem !default;
|
||||||
$avatar-icon-size: 1.5rem !default;
|
$avatar-icon-size: 1.5rem !default;
|
||||||
$avatar-brand-size: 1.25rem !default;
|
$avatar-brand-size: 1.25rem !default;
|
||||||
@@ -354,52 +348,52 @@ $avatar-bg: var(--#{$prefix}bg-surface-secondary) !default;
|
|||||||
$avatar-sizes: (
|
$avatar-sizes: (
|
||||||
"xxs": (
|
"xxs": (
|
||||||
size: 1rem,
|
size: 1rem,
|
||||||
font-size: 0.5rem,
|
font-size: .5rem,
|
||||||
icon-size: 0.5rem,
|
icon-size: .5rem,
|
||||||
status-size: 0.25rem,
|
status-size: .25rem,
|
||||||
brand-size: 0.5rem,
|
brand-size: .5rem
|
||||||
),
|
),
|
||||||
"xs": (
|
"xs": (
|
||||||
size: 1.25rem,
|
size: 1.25rem,
|
||||||
font-size: $h6-font-size,
|
font-size: $h6-font-size,
|
||||||
icon-size: 0.75rem,
|
icon-size: .75rem,
|
||||||
status-size: 0.375rem,
|
status-size: .375rem,
|
||||||
brand-size: 0.75rem,
|
brand-size: .75rem
|
||||||
),
|
),
|
||||||
"sm": (
|
"sm": (
|
||||||
size: 2rem,
|
size: 2rem,
|
||||||
font-size: $h5-font-size,
|
font-size: $h5-font-size,
|
||||||
icon-size: 1.5rem,
|
icon-size: 1.5rem,
|
||||||
status-size: 0.5rem,
|
status-size: .5rem,
|
||||||
brand-size: 1rem,
|
brand-size: 1rem
|
||||||
),
|
),
|
||||||
"md": (
|
"md": (
|
||||||
size: 2.5rem,
|
size: 2.5rem,
|
||||||
font-size: $h4-font-size,
|
font-size: $h4-font-size,
|
||||||
icon-size: 1.5rem,
|
icon-size: 1.5rem,
|
||||||
status-size: 0.75rem,
|
status-size: .75rem,
|
||||||
brand-size: 1.25rem,
|
brand-size: 1.25rem
|
||||||
),
|
),
|
||||||
"lg": (
|
"lg": (
|
||||||
size: 3rem,
|
size: 3rem,
|
||||||
font-size: $h2-font-size,
|
font-size: $h2-font-size,
|
||||||
icon-size: 2rem,
|
icon-size: 2rem,
|
||||||
status-size: 0.75rem,
|
status-size: .75rem,
|
||||||
brand-size: 1.25rem,
|
brand-size: 1.25rem
|
||||||
),
|
),
|
||||||
"xl": (
|
"xl": (
|
||||||
size: 5rem,
|
size: 5rem,
|
||||||
font-size: 2rem,
|
font-size: 2rem,
|
||||||
icon-size: 3rem,
|
icon-size: 3rem,
|
||||||
status-size: 1rem,
|
status-size: 1rem,
|
||||||
brand-size: 1.25rem,
|
brand-size: 1.25rem
|
||||||
),
|
),
|
||||||
"2xl": (
|
"2xl": (
|
||||||
size: 7rem,
|
size: 7rem,
|
||||||
font-size: 3rem,
|
font-size: 3rem,
|
||||||
icon-size: 5rem,
|
icon-size: 5rem,
|
||||||
status-size: 1rem,
|
status-size: 1rem,
|
||||||
brand-size: 2rem,
|
brand-size: 2rem
|
||||||
),
|
),
|
||||||
) !default;
|
) !default;
|
||||||
$avatar-border-radius: var(--#{$prefix}border-radius) !default;
|
$avatar-border-radius: var(--#{$prefix}border-radius) !default;
|
||||||
@@ -432,7 +426,7 @@ $grid-gutter-width: 1rem !default;
|
|||||||
|
|
||||||
$container-variations: (
|
$container-variations: (
|
||||||
slim: 16rem,
|
slim: 16rem,
|
||||||
tight: 32rem,
|
tight: 30rem,
|
||||||
narrow: 61.875rem,
|
narrow: 61.875rem,
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
@@ -482,7 +476,7 @@ $size-spacers: (
|
|||||||
full: 100%,
|
full: 100%,
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
$size-values: map.merge(
|
$size-values: map-merge(
|
||||||
$spacers,
|
$spacers,
|
||||||
(
|
(
|
||||||
25: 25%,
|
25: 25%,
|
||||||
@@ -591,71 +585,41 @@ $badge-color: var(--#{$prefix}secondary) !default;
|
|||||||
$badge-bg-color: var(--#{$prefix}bg-surface-secondary) !default;
|
$badge-bg-color: var(--#{$prefix}bg-surface-secondary) !default;
|
||||||
|
|
||||||
// Buttons
|
// Buttons
|
||||||
$input-btn-border-width: var(--#{$prefix}border-width) !default;
|
$input-btn-line-height: $line-height-base !default;
|
||||||
$input-btn-font-family: var(--#{$prefix}body-font-family) !default;
|
|
||||||
$input-btn-focus-width: 0.25rem !default;
|
|
||||||
|
|
||||||
$input-btn-padding-y-sm: 0.3125rem !default;
|
|
||||||
$input-btn-padding-x-sm: 0.5rem !default;
|
|
||||||
$input-btn-font-size-sm: $h5-font-size !default;
|
|
||||||
$input-btn-line-height-sm: divide(1rem, $input-btn-font-size-sm) !default;
|
|
||||||
$input-btn-icon-size-sm: 1rem !default;
|
|
||||||
|
|
||||||
$input-btn-padding-y: 0.5625rem !default;
|
|
||||||
$input-btn-padding-x: 1rem !default;
|
|
||||||
$input-btn-line-height: 1.25rem !default;
|
|
||||||
$input-btn-font-size: $font-size-base !default;
|
$input-btn-font-size: $font-size-base !default;
|
||||||
|
$input-btn-font-family: var(--#{$prefix}body-font-face) !default;
|
||||||
|
$input-btn-padding-y: 0.5rem - 0.0625rem !default;
|
||||||
$input-btn-icon-size: $icon-size !default;
|
$input-btn-icon-size: $icon-size !default;
|
||||||
|
|
||||||
$input-btn-padding-y-lg: 0.6875rem !default;
|
$input-btn-font-size-sm: $h5-font-size !default;
|
||||||
|
$input-btn-padding-x-sm: 0.25rem !default;
|
||||||
|
$input-btn-padding-y-sm: 0.125rem - 0.0625rem !default;
|
||||||
|
$input-btn-line-height-sm: 1rem !default;
|
||||||
|
$input-btn-icon-size-sm: 1rem !default;
|
||||||
|
|
||||||
|
$input-btn-font-size-lg: $h2-font-size !default;
|
||||||
$input-btn-padding-x-lg: 1.5rem !default;
|
$input-btn-padding-x-lg: 1.5rem !default;
|
||||||
$input-btn-line-height-lg: 1.5rem !default;
|
$input-btn-padding-y-lg: 0.75rem - 0.0625rem !default;
|
||||||
$input-btn-font-size-lg: $h3-font-size !default;
|
$input-btn-line-height-lg: 2rem !default;
|
||||||
$input-btn-icon-size-lg: 1.5rem !default;
|
$input-btn-icon-size-lg: 2rem !default;
|
||||||
|
|
||||||
$input-btn-padding-y-xl: 0.6875rem !default;
|
|
||||||
$input-btn-padding-x-xl: 2rem !default;
|
|
||||||
$input-btn-font-size-xl: $h1-font-size !default;
|
|
||||||
$input-btn-line-height-xl: divide(2rem, $input-btn-font-size-lg) !default;
|
|
||||||
$input-btn-icon-size-xl: 2rem !default;
|
|
||||||
|
|
||||||
|
$input-btn-focus-width: 0.25rem !default;
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
$input-height: null !default;
|
$input-height: null !default;
|
||||||
$input-height-sm: null !default;
|
$input-height-sm: null !default;
|
||||||
$input-height-lg: null !default;
|
$input-height-lg: null !default;
|
||||||
$input-border-radius: var(--#{$prefix}border-radius) !default;
|
$input-border-radius: var(--#{$prefix}border-radius) !default;
|
||||||
$input-padding-y: $input-btn-padding-y !default;
|
|
||||||
$input-padding-x: $input-btn-padding-x !default;
|
|
||||||
$input-color: var(--#{$prefix}body-color) !default;
|
$input-color: var(--#{$prefix}body-color) !default;
|
||||||
$input-focus-color: var(--#{$prefix}body-color) !default;
|
$input-focus-color: var(--#{$prefix}body-color) !default;
|
||||||
$input-box-shadow: var(--#{$prefix}shadow-input) !default;
|
$input-box-shadow: var(--#{$prefix}shadow-input) !default;
|
||||||
|
|
||||||
$input-border-width: $input-btn-border-width !default;
|
|
||||||
$input-line-height: $input-btn-line-height !default;
|
|
||||||
$input-height-border: calc(#{$input-border-width} * 2) !default;
|
|
||||||
|
|
||||||
$input-padding-y-sm: $input-btn-padding-y-sm !default;
|
|
||||||
$input-padding-x-sm: $input-btn-padding-x-sm !default;
|
|
||||||
$input-font-size-sm: $input-btn-font-size-sm !default;
|
|
||||||
|
|
||||||
$input-padding-y-lg: $input-btn-padding-y-lg !default;
|
|
||||||
$input-padding-x-lg: $input-btn-padding-x-lg !default;
|
|
||||||
$input-font-size-lg: $input-btn-font-size-lg !default;
|
|
||||||
|
|
||||||
$input-height-inner: add($input-line-height, calc($input-padding-y * 2)) !default;
|
|
||||||
$input-height-inner-half: add($input-line-height, $input-padding-y) !default;
|
|
||||||
$input-height-inner-quarter: add($input-line-height, calc($input-padding-y * 0.5)) !default;
|
|
||||||
|
|
||||||
$input-height: add($input-line-height, add(calc($input-padding-y * 2), $input-height-border, false)) !default;
|
|
||||||
$input-height-sm: add($input-line-height, add(calc($input-padding-y-sm * 2), $input-height-border, false)) !default;
|
|
||||||
$input-height-lg: add($input-line-height, add(calc($input-padding-y-lg * 2), $input-height-border, false)) !default;
|
|
||||||
|
|
||||||
// Buttons
|
// Buttons
|
||||||
$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;
|
$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;
|
||||||
$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;
|
$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;
|
||||||
|
|
||||||
$btn-disabled-opacity: 0.4 !default;
|
$btn-disabled-opacity: .4 !default;
|
||||||
|
$btn-padding-x: 1rem !default;
|
||||||
$btn-font-weight: var(--#{$prefix}font-weight-medium) !default;
|
$btn-font-weight: var(--#{$prefix}font-weight-medium) !default;
|
||||||
$btn-border-color: var(--#{$prefix}border-color) !default;
|
$btn-border-color: var(--#{$prefix}border-color) !default;
|
||||||
$btn-border-radius: var(--#{$prefix}border-radius) !default;
|
$btn-border-radius: var(--#{$prefix}border-radius) !default;
|
||||||
@@ -663,8 +627,8 @@ $btn-box-shadow: var(--#{$prefix}shadow-input) !default;
|
|||||||
|
|
||||||
// Cards
|
// Cards
|
||||||
$card-title-spacer-y: 1.25rem !default;
|
$card-title-spacer-y: 1.25rem !default;
|
||||||
$card-box-shadow: var(--#{$prefix}shadow-card) !default;
|
$card-box-shadow: var(--#{$prefix}box-shadow-card) !default;
|
||||||
$card-hover-box-shadow: var(--#{$prefix}shadow-card-hover) !default;
|
$card-hover-box-shadow: var(--#{$prefix}box-shadow-card-hover) !default;
|
||||||
|
|
||||||
$card-bg: var(--#{$prefix}bg-surface) !default;
|
$card-bg: var(--#{$prefix}bg-surface) !default;
|
||||||
$card-bg-hover: $white !default;
|
$card-bg-hover: $white !default;
|
||||||
@@ -675,7 +639,7 @@ $card-border-color: var(--#{$prefix}border-color-translucent) !default;
|
|||||||
$card-border-radius: var(--#{$prefix}border-radius-lg) !default;
|
$card-border-radius: var(--#{$prefix}border-radius-lg) !default;
|
||||||
|
|
||||||
$card-spacer-x: 1.25rem !default;
|
$card-spacer-x: 1.25rem !default;
|
||||||
$card-spacer-y: 1.25rem !default;
|
$card-spacer-y: 1rem !default;
|
||||||
|
|
||||||
$card-cap-bg: var(--#{$prefix}bg-surface-tertiary) !default;
|
$card-cap-bg: var(--#{$prefix}bg-surface-tertiary) !default;
|
||||||
$card-cap-color: inherit !default;
|
$card-cap-color: inherit !default;
|
||||||
@@ -754,9 +718,9 @@ $list-group-item-padding-y: $card-cap-padding-y !default;
|
|||||||
$list-group-item-padding-x: $card-cap-padding-x !default;
|
$list-group-item-padding-x: $card-cap-padding-x !default;
|
||||||
|
|
||||||
// Modals
|
// Modals
|
||||||
$modal-backdrop-opacity: $backdrop-opacity !default;
|
$modal-backdrop-opacity: 0.24 !default;
|
||||||
$modal-backdrop-bg: $backdrop-bg !default;
|
$modal-backdrop-bg: $backdrop-bg !default;
|
||||||
$modal-backdrop-blur: $backdrop-blur !default;
|
$modal-backdrop-blur: 4px !default;
|
||||||
|
|
||||||
$modal-fade-transform: translate(0, -1rem) !default;
|
$modal-fade-transform: translate(0, -1rem) !default;
|
||||||
|
|
||||||
@@ -846,7 +810,7 @@ $navbar-toggler-focus-width: 0 !default;
|
|||||||
$navbar-overlap-height: 9rem !default;
|
$navbar-overlap-height: 9rem !default;
|
||||||
|
|
||||||
$navbar-nav-link-padding-x: $nav-link-padding-x !default;
|
$navbar-nav-link-padding-x: $nav-link-padding-x !default;
|
||||||
$navbar-nav-link-hover-bg: rgba(0, 0, 0, 0.04) !default;
|
$navbar-nav-link-hover-bg: rgba(0, 0, 0, .04) !default;
|
||||||
|
|
||||||
$navbar-active-border-color: var(--#{$prefix}primary) !default;
|
$navbar-active-border-color: var(--#{$prefix}primary) !default;
|
||||||
|
|
||||||
@@ -863,9 +827,9 @@ $popover-bg: var(--#{$prefix}bg-surface) !default;
|
|||||||
$popover-header-bg: transparent !default;
|
$popover-header-bg: transparent !default;
|
||||||
$popover-border-color: var(--#{$prefix}border-color) !default;
|
$popover-border-color: var(--#{$prefix}border-color) !default;
|
||||||
$popover-body-color: inherit !default;
|
$popover-body-color: inherit !default;
|
||||||
$popover-body-padding-x: 0.5rem !default;
|
$popover-body-padding-x: .5rem !default;
|
||||||
$popover-body-padding-y: 0.5rem !default;
|
$popover-body-padding-y: .5rem !default;
|
||||||
$popover-box-shadow: var(--#{$prefix}shadow-lg) !default;
|
$popover-box-shadow: var(--#{$prefix}box-shadow-lg) !default;
|
||||||
|
|
||||||
// Footer
|
// Footer
|
||||||
$footer-padding-y: 2rem !default;
|
$footer-padding-y: 2rem !default;
|
||||||
@@ -874,17 +838,13 @@ $footer-border-color: var(--#{$prefix}border-color) !default;
|
|||||||
$footer-color: var(--#{$prefix}gray-500) !default;
|
$footer-color: var(--#{$prefix}gray-500) !default;
|
||||||
|
|
||||||
// Pagination
|
// Pagination
|
||||||
$pagination-border-width: 1px !default;
|
$pagination-border-width: 0 !default;
|
||||||
$pagination-border-color: transparent !default;
|
$pagination-padding-y: 0.25rem !default;
|
||||||
$pagination-padding-y: calc(0.25rem + 1px) !default;
|
|
||||||
$pagination-padding-x: 0.25rem !default;
|
$pagination-padding-x: 0.25rem !default;
|
||||||
$pagination-color: var(--#{$prefix}body-color) !default;
|
$pagination-color: var(--#{$prefix}gray-500) !default;
|
||||||
$pagination-bg: transparent !default;
|
$pagination-bg: transparent !default;
|
||||||
$pagination-hover-bg: var(--#{$prefix}active-bg) !default;
|
|
||||||
$pagination-hover-border-color: var(--#{$prefix}pagination-border-color) !default;
|
|
||||||
$pagination-disabled-bg: transparent !default;
|
$pagination-disabled-bg: transparent !default;
|
||||||
$pagination-disabled-color: var(--#{$prefix}disabled-color) !default;
|
$pagination-disabled-color: var(--#{$prefix}disabled-color) !default;
|
||||||
$pagination-disabled-border-color: var(--#{$prefix}pagination-border-color) !default;
|
|
||||||
|
|
||||||
$pagination-active-bg: var(--#{$prefix}primary) !default;
|
$pagination-active-bg: var(--#{$prefix}primary) !default;
|
||||||
$pagination-active-border-color: var(--#{$prefix}primary) !default;
|
$pagination-active-border-color: var(--#{$prefix}primary) !default;
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clearfix
|
// Clearfix
|
||||||
//
|
//
|
||||||
@@ -88,7 +86,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Responsive sticky top and bottom
|
// Responsive sticky top and bottom
|
||||||
@each $breakpoint in map.keys($grid-breakpoints) {
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
@include media-breakpoint-up($breakpoint) {
|
@include media-breakpoint-up($breakpoint) {
|
||||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||||
|
|
||||||
|
|||||||
@@ -1,50 +1,39 @@
|
|||||||
@keyframes pulse {
|
@keyframes pulse {
|
||||||
0% {
|
from {
|
||||||
transform: scale(1);
|
opacity: 1;
|
||||||
|
transform: scale3d(.8, .8, .8)
|
||||||
}
|
}
|
||||||
|
|
||||||
14% {
|
50% {
|
||||||
transform: scale(1.25);
|
transform: scale3d(1, 1, 1);
|
||||||
|
opacity: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
28% {
|
to {
|
||||||
transform: scale(1);
|
opacity: 1;
|
||||||
}
|
transform: scale3d(.8, .8, .8)
|
||||||
|
|
||||||
42% {
|
|
||||||
transform: scale(1.25);
|
|
||||||
}
|
|
||||||
|
|
||||||
70% {
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes tada {
|
@keyframes tada {
|
||||||
0% {
|
0% {
|
||||||
transform: scale3d(1, 1, 1);
|
transform: scale3d(1, 1, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
10%,
|
10%, 5% {
|
||||||
5% {
|
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -5deg)
|
||||||
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -5deg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
15%,
|
15%, 25%, 35%, 45% {
|
||||||
25%,
|
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 5deg)
|
||||||
35%,
|
|
||||||
45% {
|
|
||||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 5deg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
20%,
|
20%, 30%, 40% {
|
||||||
30%,
|
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -5deg)
|
||||||
40% {
|
|
||||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -5deg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
transform: scale3d(1, 1, 1);
|
transform: scale3d(1, 1, 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,27 +61,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes shake {
|
|
||||||
0% {
|
|
||||||
transform: scaleX(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
20% {
|
|
||||||
transform: scale3d(0.9, 0.9, 0.9) rotate(-5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
50%,
|
|
||||||
70%,
|
|
||||||
90% {
|
|
||||||
transform: scale3d(1.25, 1.25, 1.25) rotate(5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
60%,
|
|
||||||
80% {
|
|
||||||
transform: scale3d(1.25, 1.25, 1.25) rotate(-5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
to {
|
|
||||||
transform: scaleX(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
// stylelint-disable property-no-vendor-prefix
|
// stylelint-disable property-no-vendor-prefix
|
||||||
body {
|
body {
|
||||||
letter-spacing: $body-letter-spacing;
|
letter-spacing: $body-letter-spacing;
|
||||||
@@ -9,7 +7,7 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0;
|
padding: 0 !important;
|
||||||
|
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
@@ -37,7 +35,7 @@ body {
|
|||||||
//
|
//
|
||||||
.layout-boxed {
|
.layout-boxed {
|
||||||
--#{$prefix}theme-boxed-border-radius: 0;
|
--#{$prefix}theme-boxed-border-radius: 0;
|
||||||
--#{$prefix}theme-boxed-width: #{map.get($container-max-widths, xxl)};
|
--#{$prefix}theme-boxed-width: #{map-get($container-max-widths, xxl)};
|
||||||
|
|
||||||
@include media-breakpoint-up(md) {
|
@include media-breakpoint-up(md) {
|
||||||
background: $dark linear-gradient(to right, rgba(#fff, .1), transparent) fixed;
|
background: $dark linear-gradient(to right, rgba(#fff, .1), transparent) fixed;
|
||||||
|
|||||||
@@ -61,6 +61,9 @@
|
|||||||
|
|
||||||
--#{$prefix}btn-color: #{$darken-dark};
|
--#{$prefix}btn-color: #{$darken-dark};
|
||||||
|
|
||||||
|
--#{$prefix}code-color: var(--#{$prefix}body-color);
|
||||||
|
--#{$prefix}code-bg: #{$border-dark-color-dark};
|
||||||
|
|
||||||
.navbar-brand-autodark {
|
.navbar-brand-autodark {
|
||||||
.navbar-brand-image {
|
.navbar-brand-image {
|
||||||
@include autodark-image;
|
@include autodark-image;
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
@mixin navbar-vertical-nav {
|
@mixin navbar-vertical-nav {
|
||||||
.navbar-collapse {
|
.navbar-collapse {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -126,7 +124,7 @@ Navbar
|
|||||||
}
|
}
|
||||||
|
|
||||||
.navbar-expand {
|
.navbar-expand {
|
||||||
@each $breakpoint in map.keys($grid-breakpoints) {
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
||||||
$infix: breakpoint-infix($next, $grid-breakpoints);
|
$infix: breakpoint-infix($next, $grid-breakpoints);
|
||||||
|
|
||||||
@@ -162,8 +160,7 @@ Navbar
|
|||||||
&.navbar-vertical {
|
&.navbar-vertical {
|
||||||
box-shadow: inset calc(-1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
|
box-shadow: inset calc(-1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
|
||||||
|
|
||||||
&.navbar-right,
|
&.navbar-right {
|
||||||
&.navbar-end {
|
|
||||||
box-shadow: inset calc(1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
|
box-shadow: inset calc(1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -175,8 +172,7 @@ Navbar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.navbar-vertical.navbar-right,
|
&.navbar-vertical.navbar-right {
|
||||||
&.navbar-vertical.navbar-end {
|
|
||||||
~ .navbar,
|
~ .navbar,
|
||||||
~ .page-wrapper {
|
~ .page-wrapper {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
@@ -223,13 +219,13 @@ Navbar toggler
|
|||||||
width: 1.25em;
|
width: 1.25em;
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
position: relative;
|
|
||||||
@include transition(
|
@include transition(
|
||||||
top $navbar-toggler-animation-time $navbar-toggler-animation-time,
|
top $navbar-toggler-animation-time $navbar-toggler-animation-time,
|
||||||
bottom $navbar-toggler-animation-time $navbar-toggler-animation-time,
|
bottom $navbar-toggler-animation-time $navbar-toggler-animation-time,
|
||||||
transform $navbar-toggler-animation-time,
|
transform $navbar-toggler-animation-time,
|
||||||
opacity 0s $navbar-toggler-animation-time
|
opacity 0s $navbar-toggler-animation-time
|
||||||
);
|
);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
@@ -309,7 +305,7 @@ Navbar vertical
|
|||||||
@if $enable-navbar-vertical {
|
@if $enable-navbar-vertical {
|
||||||
.navbar-vertical {
|
.navbar-vertical {
|
||||||
&.navbar-expand {
|
&.navbar-expand {
|
||||||
@each $breakpoint in map.keys($grid-breakpoints) {
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
||||||
$infix: breakpoint-infix($next, $grid-breakpoints);
|
$infix: breakpoint-infix($next, $grid-breakpoints);
|
||||||
|
|
||||||
@@ -322,12 +318,11 @@ Navbar vertical
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: $zindex-fixed;
|
z-index: $zindex-fixed;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
@include transition(transform $transition-time);
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@include transition(transform $transition-time);
|
|
||||||
|
|
||||||
&.navbar-right,
|
&.navbar-right {
|
||||||
&.navbar-end {
|
|
||||||
left: auto;
|
left: auto;
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
@@ -369,8 +364,7 @@ Navbar vertical
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.navbar-right ~ .page,
|
&.navbar-right ~ .page {
|
||||||
&.navbar-end ~ .page {
|
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: $sidebar-width;
|
padding-right: $sidebar-width;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
.shape {
|
.shape {
|
||||||
--#{$prefix}shape-size: #{$avatar-size};
|
--#{$prefix}shape-size: #{$avatar-size};
|
||||||
--#{$prefix}shape-icon-size: #{$avatar-icon-size};
|
--#{$prefix}shape-icon-size: #{$avatar-icon-size};
|
||||||
@@ -20,8 +18,8 @@
|
|||||||
|
|
||||||
@each $avatar-size, $size in $avatar-sizes {
|
@each $avatar-size, $size in $avatar-sizes {
|
||||||
.shape-#{$avatar-size} {
|
.shape-#{$avatar-size} {
|
||||||
--#{$prefix}shape-size: #{map.get($size, size)};
|
--#{$prefix}shape-size: #{map-get($size, size)};
|
||||||
--#{$prefix}shape-icon-size: #{map.get($size, icon-size)};
|
--#{$prefix}shape-icon-size: #{map-get($size, icon-size)};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,5 @@
|
|||||||
@use "sass:math";
|
|
||||||
@use "sass:string";
|
|
||||||
@use "sass:list";
|
|
||||||
@use "sass:map";
|
|
||||||
@use "sass:color";
|
|
||||||
@use "sass:meta";
|
|
||||||
|
|
||||||
@function theme-color-lighter($color, $background: #fff) {
|
@function theme-color-lighter($color, $background: #fff) {
|
||||||
@return color.mix($color, $background, 10%);
|
@return mix($color, $background, 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
@function theme-color-darker($color) {
|
@function theme-color-darker($color) {
|
||||||
@@ -17,10 +10,10 @@
|
|||||||
// Replace all occurrences of a substring within a string.
|
// Replace all occurrences of a substring within a string.
|
||||||
//
|
//
|
||||||
@function str-replace($string, $search, $replace: "") {
|
@function str-replace($string, $search, $replace: "") {
|
||||||
$index: string.index($string, $search);
|
$index: str-index($string, $search);
|
||||||
|
|
||||||
@if $index {
|
@if $index {
|
||||||
@return string.slice($string, 1, $index - 1) + $replace + str-replace(string.slice($string, $index + string.length($search)), $search, $replace);
|
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
@return $string;
|
@return $string;
|
||||||
@@ -44,23 +37,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@function breakpoint-prev($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map.keys($breakpoints)) {
|
@function breakpoint-prev($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
|
||||||
$n: index($breakpoint-names, $name);
|
$n: index($breakpoint-names, $name);
|
||||||
@if not $n {
|
@if not $n {
|
||||||
@error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
|
@error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
|
||||||
}
|
}
|
||||||
@return if($n > 1, list.nth($breakpoint-names, $n - 1), null);
|
@return if($n > 1, nth($breakpoint-names, $n - 1), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Escape SVG strings.
|
// Escape SVG strings.
|
||||||
//
|
//
|
||||||
@function escape-svg($string) {
|
@function escape-svg($string) {
|
||||||
@if string.index($string, "data:image/svg+xml") {
|
@if str-index($string, "data:image/svg+xml") {
|
||||||
@each $char, $encoded in $escaped-characters {
|
@each $char, $encoded in $escaped-characters {
|
||||||
// Do not escape the url brackets
|
// Do not escape the url brackets
|
||||||
@if string.index($string, "url(") == 1 {
|
@if str-index($string, "url(") == 1 {
|
||||||
$string: url("#{str-replace(string.slice($string, 6, -3), $char, $encoded)}");
|
$string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
|
||||||
} @else {
|
} @else {
|
||||||
$string: str-replace($string, $char, $encoded);
|
$string: str-replace($string, $char, $encoded);
|
||||||
}
|
}
|
||||||
@@ -77,7 +70,7 @@
|
|||||||
* @return {String} - The percentage representation of the value.
|
* @return {String} - The percentage representation of the value.
|
||||||
*/
|
*/
|
||||||
@function to-percentage($value) {
|
@function to-percentage($value) {
|
||||||
@return if(math.is-unitless($value), math.percentage($value), $value);
|
@return if(unitless($value), percentage($value), $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,306 +94,3 @@
|
|||||||
|
|
||||||
@return url('data:image/svg+xml;charset=UTF-8,#{$svg}');
|
@return url('data:image/svg+xml;charset=UTF-8,#{$svg}');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bootstrap functions
|
|
||||||
//
|
|
||||||
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
|
|
||||||
|
|
||||||
// Ascending
|
|
||||||
// Used to evaluate Sass maps like our grid breakpoints.
|
|
||||||
@mixin _assert-ascending($map, $map-name) {
|
|
||||||
$prev-key: null;
|
|
||||||
$prev-num: null;
|
|
||||||
@each $key, $num in $map {
|
|
||||||
@if $prev-num == null or math.unit($num) == "%" or math.unit($prev-num) == "%" {
|
|
||||||
// Do nothing
|
|
||||||
} @else if not math.compatible($prev-num, $num) {
|
|
||||||
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
|
|
||||||
} @else if $prev-num >= $num {
|
|
||||||
@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
|
|
||||||
}
|
|
||||||
$prev-key: $key;
|
|
||||||
$prev-num: $num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Starts at zero
|
|
||||||
// Used to ensure the min-width of the lowest breakpoint starts at 0.
|
|
||||||
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
|
|
||||||
@if list.length($map) > 0 {
|
|
||||||
$values: map.values($map);
|
|
||||||
$first-value: list.nth($values, 1);
|
|
||||||
@if $first-value != 0 {
|
|
||||||
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Colors
|
|
||||||
@function to-rgb($value) {
|
|
||||||
@return color.channel($value, "red", $space: rgb), color.channel($value, "green", $space: rgb), color.channel($value, "blue", $space: rgb);
|
|
||||||
}
|
|
||||||
|
|
||||||
// stylelint-disable scss/dollar-variable-pattern
|
|
||||||
@function rgba-css-var($identifier, $target) {
|
|
||||||
@if $identifier == "body" and $target == "bg" {
|
|
||||||
@return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
||||||
} @if $identifier == "body" and $target == "text" {
|
|
||||||
@return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
||||||
} @else {
|
|
||||||
@return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@function map-loop($map, $func, $args...) {
|
|
||||||
$_map: ();
|
|
||||||
|
|
||||||
@each $key, $value in $map {
|
|
||||||
// allow to pass the $key and $value of the map as an function argument
|
|
||||||
$_args: ();
|
|
||||||
@each $arg in $args {
|
|
||||||
$_args: list.append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg)));
|
|
||||||
}
|
|
||||||
|
|
||||||
$_map: map.merge($_map, ($key: meta.call(meta.get-function($func), $_args...)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@return $_map;
|
|
||||||
}
|
|
||||||
// stylelint-enable scss/dollar-variable-pattern
|
|
||||||
|
|
||||||
@function varify($list) {
|
|
||||||
$result: null;
|
|
||||||
@each $entry in $list {
|
|
||||||
$result: list.append($result, var(--#{$prefix}#{$entry}), space);
|
|
||||||
}
|
|
||||||
@return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Internal Bootstrap function to turn maps into its negative variant.
|
|
||||||
// It prefixes the keys with `n` and makes the value negative.
|
|
||||||
@function negativify-map($map) {
|
|
||||||
$result: ();
|
|
||||||
@each $key, $value in $map {
|
|
||||||
@if $key != 0 {
|
|
||||||
$result: map.merge($result, ("n" + $key: (-$value)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get multiple keys from a sass map
|
|
||||||
@function map-get-multiple($map, $values) {
|
|
||||||
$result: ();
|
|
||||||
@each $key, $value in $map {
|
|
||||||
@if (index($values, $key) != null) {
|
|
||||||
$result: map.merge($result, ($key: $value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Merge multiple maps
|
|
||||||
@function map-merge-multiple($maps...) {
|
|
||||||
$merged-maps: ();
|
|
||||||
|
|
||||||
@each $map in $maps {
|
|
||||||
$merged-maps: map.merge($merged-maps, $map);
|
|
||||||
}
|
|
||||||
@return $merged-maps;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace `$search` with `$replace` in `$string`
|
|
||||||
// Used on our SVG icon backgrounds for custom forms.
|
|
||||||
//
|
|
||||||
// @author Kitty Giraudel
|
|
||||||
// @param {String} $string - Initial string
|
|
||||||
// @param {String} $search - Substring to replace
|
|
||||||
// @param {String} $replace ('') - New value
|
|
||||||
// @return {String} - Updated string
|
|
||||||
@function str-replace($string, $search, $replace: "") {
|
|
||||||
$index: string.index($string, $search);
|
|
||||||
|
|
||||||
@if $index {
|
|
||||||
@return string.slice($string, 1, $index - 1) + $replace + str-replace(string.slice($string, $index + string.length($search)), $search, $replace);
|
|
||||||
}
|
|
||||||
|
|
||||||
@return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// See https://codepen.io/kevinweber/pen/dXWoRw
|
|
||||||
//
|
|
||||||
// Requires the use of quotes around data URIs.
|
|
||||||
|
|
||||||
@function escape-svg($string) {
|
|
||||||
@if string.index($string, "data:image/svg+xml") {
|
|
||||||
@each $char, $encoded in $escaped-characters {
|
|
||||||
// Do not escape the url brackets
|
|
||||||
@if string.index($string, "url(") == 1 {
|
|
||||||
$string: url("#{str-replace(string.slice($string, 6, -3), $char, $encoded)}");
|
|
||||||
} @else {
|
|
||||||
$string: str-replace($string, $char, $encoded);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Color contrast
|
|
||||||
// See https://github.com/twbs/bootstrap/pull/30168
|
|
||||||
|
|
||||||
// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
|
|
||||||
// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
|
|
||||||
$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;
|
|
||||||
|
|
||||||
@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
|
|
||||||
$foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;
|
|
||||||
$max-ratio: 0;
|
|
||||||
$max-ratio-color: null;
|
|
||||||
|
|
||||||
@each $color in $foregrounds {
|
|
||||||
$contrast-ratio: contrast-ratio($background, $color);
|
|
||||||
@if $contrast-ratio >= $min-contrast-ratio {
|
|
||||||
@return $color;
|
|
||||||
} @else if $contrast-ratio > $max-ratio {
|
|
||||||
$max-ratio: $contrast-ratio;
|
|
||||||
$max-ratio-color: $color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
|
|
||||||
|
|
||||||
@return $max-ratio-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
@function contrast-ratio($background, $foreground: $color-contrast-light) {
|
|
||||||
$l1: luminance($background);
|
|
||||||
$l2: luminance(opaque($background, $foreground));
|
|
||||||
|
|
||||||
@return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return WCAG2.2 relative luminance
|
|
||||||
// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
|
|
||||||
// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
|
|
||||||
@function luminance($color) {
|
|
||||||
$rgb: (
|
|
||||||
"r": math.round(color.channel($color, "red", $space: rgb)),
|
|
||||||
"g": math.round(color.channel($color, "green", $space: rgb)),
|
|
||||||
"b": math.round(color.channel($color, "blue", $space: rgb))
|
|
||||||
);
|
|
||||||
|
|
||||||
@each $name, $value in $rgb {
|
|
||||||
$value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), list.nth($_luminance-list, $value + 1));
|
|
||||||
$rgb: map.merge($rgb, ($name: $value));
|
|
||||||
}
|
|
||||||
|
|
||||||
@return (map.get($rgb, "r") * .2126) + (map.get($rgb, "g") * .7152) + (map.get($rgb, "b") * .0722);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return opaque color
|
|
||||||
// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
|
|
||||||
@function opaque($background, $foreground) {
|
|
||||||
@return color.mix(rgba($foreground, 1), $background, color.opacity($foreground) * 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
// scss-docs-start color-functions
|
|
||||||
// Tint a color: mix a color with white
|
|
||||||
@function tint-color($color, $weight) {
|
|
||||||
@return color.mix(white, $color, $weight);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shade a color: mix a color with black
|
|
||||||
@function shade-color($color, $weight) {
|
|
||||||
@return color.mix(black, $color, $weight);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shade the color if the weight is positive, else tint it
|
|
||||||
@function shift-color($color, $weight) {
|
|
||||||
@return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
|
|
||||||
}
|
|
||||||
// scss-docs-end color-functions
|
|
||||||
|
|
||||||
// Return valid calc
|
|
||||||
@function add($value1, $value2, $return-calc: true) {
|
|
||||||
@if $value1 == null {
|
|
||||||
@return $value2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $value2 == null {
|
|
||||||
@return $value1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
|
|
||||||
@return $value1 + $value2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + string.unquote(" + ") + $value2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@function subtract($value1, $value2, $return-calc: true) {
|
|
||||||
@if $value1 == null and $value2 == null {
|
|
||||||
@return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $value1 == null {
|
|
||||||
@return -$value2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $value2 == null {
|
|
||||||
@return $value1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
|
|
||||||
@return $value1 - $value2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@if meta.type-of($value2) != number {
|
|
||||||
$value2: string.unquote("(") + $value2 + string.unquote(")");
|
|
||||||
}
|
|
||||||
|
|
||||||
@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + string.unquote(" - ") + $value2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@function divide($dividend, $divisor, $precision: 10) {
|
|
||||||
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
|
||||||
$dividend: math.abs($dividend);
|
|
||||||
$divisor: math.abs($divisor);
|
|
||||||
@if $dividend == 0 {
|
|
||||||
@return 0;
|
|
||||||
}
|
|
||||||
@if $divisor == 0 {
|
|
||||||
@error "Cannot divide by 0";
|
|
||||||
}
|
|
||||||
$remainder: $dividend;
|
|
||||||
$result: 0;
|
|
||||||
$factor: 10;
|
|
||||||
@while ($remainder > 0 and $precision >= 0) {
|
|
||||||
$quotient: 0;
|
|
||||||
@while ($remainder >= $divisor) {
|
|
||||||
$remainder: $remainder - $divisor;
|
|
||||||
$quotient: $quotient + 1;
|
|
||||||
}
|
|
||||||
$result: $result * 10 + $quotient;
|
|
||||||
$factor: $factor * .1;
|
|
||||||
$remainder: $remainder * 10;
|
|
||||||
$precision: $precision - 1;
|
|
||||||
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
|
||||||
$result: $result + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$result: $result * $factor * $sign;
|
|
||||||
$dividend-unit: math.unit($dividend);
|
|
||||||
$divisor-unit: math.unit($divisor);
|
|
||||||
$unit-map: (
|
|
||||||
"px": 1px,
|
|
||||||
"rem": 1rem,
|
|
||||||
"em": 1em,
|
|
||||||
"%": 1%
|
|
||||||
);
|
|
||||||
@if ($dividend-unit != $divisor-unit and map.has-key($unit-map, $dividend-unit)) {
|
|
||||||
$result: $result * map.get($unit-map, $dividend-unit);
|
|
||||||
}
|
|
||||||
@return $result;
|
|
||||||
}
|
|
||||||
@@ -13,4 +13,4 @@
|
|||||||
@import "vendor/coloris";
|
@import "vendor/coloris";
|
||||||
@import "vendor/typed";
|
@import "vendor/typed";
|
||||||
@import "vendor/turbo";
|
@import "vendor/turbo";
|
||||||
@import "vendor/fullcalendar";
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
--#{$prefix}avatar-size: var(--#{$prefix}avatar-list-size, #{$avatar-size});
|
--#{$prefix}avatar-size: var(--#{$prefix}avatar-list-size, #{$avatar-size});
|
||||||
--#{$prefix}avatar-status-size: #{$avatar-status-size};
|
--#{$prefix}avatar-status-size: #{$avatar-status-size};
|
||||||
@@ -57,15 +55,15 @@
|
|||||||
|
|
||||||
@each $avatar-size, $size in $avatar-sizes {
|
@each $avatar-size, $size in $avatar-sizes {
|
||||||
.avatar-#{$avatar-size} {
|
.avatar-#{$avatar-size} {
|
||||||
--#{$prefix}avatar-size: #{map.get($size, size)};
|
--#{$prefix}avatar-size: #{map-get($size, size)};
|
||||||
--#{$prefix}avatar-status-size: #{map.get($size, status-size)};
|
--#{$prefix}avatar-status-size: #{map-get($size, status-size)};
|
||||||
--#{$prefix}avatar-font-size: #{map.get($size, font-size)};
|
--#{$prefix}avatar-font-size: #{map-get($size, font-size)};
|
||||||
--#{$prefix}avatar-icon-size: #{map.get($size, icon-size)};
|
--#{$prefix}avatar-icon-size: #{map-get($size, icon-size)};
|
||||||
--#{$prefix}avatar-brand-size: #{map.get($size, brand-size)};
|
--#{$prefix}avatar-brand-size: #{map-get($size, brand-size)};
|
||||||
|
|
||||||
.badge:empty {
|
.badge:empty {
|
||||||
width: map.get($size, status-size);
|
width: map-get($size, status-size);
|
||||||
height: map.get($size, status-size);
|
height: map-get($size, status-size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,7 +94,7 @@
|
|||||||
|
|
||||||
@each $avatar-size, $size in $avatar-sizes {
|
@each $avatar-size, $size in $avatar-sizes {
|
||||||
.avatar-list-#{$avatar-size} {
|
.avatar-list-#{$avatar-size} {
|
||||||
--#{$prefix}avatar-list-size: #{map.get($size, size)};
|
--#{$prefix}avatar-list-size: #{map-get($size, size)};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,7 @@
|
|||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
--#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
|
|
||||||
--#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
|
|
||||||
--#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
|
|
||||||
--#{$prefix}breadcrumb-font-size: #{$breadcrumb-font-size};
|
|
||||||
--#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
|
|
||||||
--#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
|
|
||||||
--#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
|
|
||||||
--#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
|
|
||||||
--#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
|
|
||||||
--#{$prefix}breadcrumb-item-active-font-weight: #{$breadcrumb-active-font-weight};
|
--#{$prefix}breadcrumb-item-active-font-weight: #{$breadcrumb-active-font-weight};
|
||||||
--#{$prefix}breadcrumb-item-disabled-color: #{$breadcrumb-disabled-color};
|
--#{$prefix}breadcrumb-item-disabled-color: #{$breadcrumb-disabled-color};
|
||||||
--#{$prefix}breadcrumb-link-color: #{$breadcrumb-link-color};
|
--#{$prefix}breadcrumb-link-color: #{$breadcrumb-link-color};
|
||||||
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
@include font-size(var(--#{$prefix}breadcrumb-font-size));
|
|
||||||
list-style: none;
|
|
||||||
background-color: var(--#{$prefix}breadcrumb-bg);
|
|
||||||
@include border-radius(var(--#{$prefix}breadcrumb-border-radius));
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
@@ -37,7 +21,6 @@
|
|||||||
|
|
||||||
.breadcrumb-item {
|
.breadcrumb-item {
|
||||||
&.active {
|
&.active {
|
||||||
color: var(--#{$prefix}breadcrumb-item-active-color);
|
|
||||||
font-weight: var(--#{$prefix}breadcrumb-item-active-font-weight);
|
font-weight: var(--#{$prefix}breadcrumb-item-active-font-weight);
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -58,20 +41,6 @@
|
|||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& + & {
|
|
||||||
padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
float: left;
|
|
||||||
padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
|
|
||||||
color: var(--#{$prefix}breadcrumb-divider-color);
|
|
||||||
content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider));
|
|
||||||
/*rtl:raw:
|
|
||||||
transform: scaleX(-1);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@each $name, $symbol in $breadcrumb-variants {
|
@each $name, $symbol in $breadcrumb-variants {
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
@use "sass:color";
|
@use "sass:color";
|
||||||
@use "sass:map";
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Button
|
// Button
|
||||||
//
|
//
|
||||||
.btn {
|
.btn {
|
||||||
--#{$prefix}btn-icon-size: #{$input-btn-icon-size};
|
--#{$prefix}btn-icon-size: #{$input-btn-icon-size};
|
||||||
--#{$prefix}btn-icon-color: inherit;
|
|
||||||
--#{$prefix}btn-bg: var(--#{$prefix}bg-surface);
|
--#{$prefix}btn-bg: var(--#{$prefix}bg-surface);
|
||||||
--#{$prefix}btn-color: var(--#{$prefix}body-color);
|
--#{$prefix}btn-color: var(--#{$prefix}body-color);
|
||||||
--#{$prefix}btn-border-color: #{$btn-border-color};
|
--#{$prefix}btn-border-color: #{$btn-border-color};
|
||||||
--#{$prefix}btn-hover-bg: var(--#{$prefix}btn-bg);
|
--#{$prefix}btn-hover-bg: var(--#{$prefix}btn-bg);
|
||||||
--#{$prefix}btn-hover-border-color: var(--#{$prefix}border-active-color);
|
--#{$prefix}btn-hover-border-color: var(--#{$prefix}border-active-color);
|
||||||
|
--#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
|
||||||
--#{$prefix}btn-active-color: #{$active-color};
|
--#{$prefix}btn-active-color: #{$active-color};
|
||||||
--#{$prefix}btn-active-bg: #{$active-bg};
|
--#{$prefix}btn-active-bg: #{$active-bg};
|
||||||
--#{$prefix}btn-active-border-color: #{$active-border-color};
|
--#{$prefix}btn-active-border-color: #{$active-border-color};
|
||||||
@@ -22,8 +21,6 @@
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
box-shadow: var(--#{$prefix}btn-box-shadow);
|
box-shadow: var(--#{$prefix}btn-box-shadow);
|
||||||
position: relative;
|
position: relative;
|
||||||
min-width: calc((var(--#{$prefix}btn-line-height) * 1) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
|
|
||||||
min-height: calc((var(--#{$prefix}btn-line-height) * 1) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: var(--#{$prefix}btn-icon-size);
|
width: var(--#{$prefix}btn-icon-size);
|
||||||
@@ -32,7 +29,7 @@
|
|||||||
font-size: var(--#{$prefix}btn-icon-size);
|
font-size: var(--#{$prefix}btn-icon-size);
|
||||||
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
|
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
color: var(--#{$prefix}btn-icon-color);
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
@@ -41,8 +38,7 @@
|
|||||||
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
|
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-right,
|
.icon-right {
|
||||||
.icon-end {
|
|
||||||
margin: 0 calc(var(--#{$prefix}btn-padding-x) / -4) 0 calc(var(--#{$prefix}btn-padding-x) / 2);
|
margin: 0 calc(var(--#{$prefix}btn-padding-x) / -4) 0 calc(var(--#{$prefix}btn-padding-x) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,9 +72,9 @@
|
|||||||
//
|
//
|
||||||
// Button color variations
|
// Button color variations
|
||||||
//
|
//
|
||||||
@each $color, $value in map.merge($theme-colors, $social-colors) {
|
@each $color, $value in map-merge($theme-colors, $social-colors) {
|
||||||
.btn-#{$color} {
|
.btn-#{$color} {
|
||||||
@if $color == "dark" {
|
@if $color == 'dark' {
|
||||||
--#{$prefix}btn-border-color: var(--#{$prefix}dark-mode-border-color);
|
--#{$prefix}btn-border-color: var(--#{$prefix}dark-mode-border-color);
|
||||||
--#{$prefix}btn-hover-border-color: var(--#{$prefix}dark-mode-border-active-color);
|
--#{$prefix}btn-hover-border-color: var(--#{$prefix}dark-mode-border-active-color);
|
||||||
--#{$prefix}btn-active-border-color: var(--#{$prefix}dark-mode-border-active-color);
|
--#{$prefix}btn-active-border-color: var(--#{$prefix}dark-mode-border-active-color);
|
||||||
@@ -99,8 +95,7 @@
|
|||||||
--#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
|
--#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-outline-#{$color},
|
.btn-outline-#{$color} {
|
||||||
.btn-outline.btn-#{$color} {
|
|
||||||
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
|
||||||
--#{$prefix}btn-bg: transparent;
|
--#{$prefix}btn-bg: transparent;
|
||||||
--#{$prefix}btn-border-color: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-border-color: var(--#{$prefix}#{$color});
|
||||||
@@ -109,22 +104,11 @@
|
|||||||
--#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
|
||||||
--#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
|
--#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
|
||||||
--#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
|
||||||
--#{$prefix}btn-active-border-color: var(--#{$prefix}#{$color});
|
|
||||||
--#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
|
||||||
--#{$prefix}btn-disabled-border-color: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-disabled-border-color: var(--#{$prefix}#{$color});
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-ghost {
|
.btn-ghost-#{$color} {
|
||||||
--#{$prefix}btn-bg: transparent;
|
|
||||||
--#{$prefix}btn-border-color: transparent;
|
|
||||||
--#{$prefix}btn-box-shadow: none;
|
|
||||||
--#{$prefix}btn-hover-bg: var(--#{$prefix}bg-surface-secondary);
|
|
||||||
--#{$prefix}btn-hover-border-color: transparent;
|
|
||||||
--#{$prefix}btn-hover-color: var(--#{$prefix}body-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-ghost-#{$color},
|
|
||||||
.btn-ghost.btn-#{$color} {
|
|
||||||
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
|
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
|
||||||
--#{$prefix}btn-bg: transparent;
|
--#{$prefix}btn-bg: transparent;
|
||||||
--#{$prefix}btn-border-color: transparent;
|
--#{$prefix}btn-border-color: transparent;
|
||||||
@@ -146,27 +130,16 @@
|
|||||||
//
|
//
|
||||||
// Button sizes
|
// Button sizes
|
||||||
//
|
//
|
||||||
.btn-sm,
|
.btn-sm, .btn-group-sm > .btn {
|
||||||
.btn-group-sm > .btn {
|
|
||||||
--#{$prefix}btn-line-height: #{$input-btn-line-height-sm};
|
--#{$prefix}btn-line-height: #{$input-btn-line-height-sm};
|
||||||
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-sm};
|
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-sm};
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-lg,
|
.btn-lg, .btn-group-lg > .btn {
|
||||||
.btn-group-lg > .btn {
|
|
||||||
--#{$prefix}btn-line-height: #{$input-btn-line-height-lg};
|
--#{$prefix}btn-line-height: #{$input-btn-line-height-lg};
|
||||||
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-lg};
|
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-lg};
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-xl,
|
|
||||||
.btn-group-xl > .btn {
|
|
||||||
--#{$prefix}btn-line-height: #{$input-btn-line-height-xl};
|
|
||||||
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-xl};
|
|
||||||
--#{$prefix}btn-padding-y: #{$input-btn-padding-y-xl};
|
|
||||||
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-xl};
|
|
||||||
--#{$prefix}btn-font-size: #{$input-btn-font-size-xl};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Button shapes
|
// Button shapes
|
||||||
//
|
//
|
||||||
@@ -187,18 +160,15 @@
|
|||||||
//
|
//
|
||||||
// Icon button
|
// Icon button
|
||||||
//
|
//
|
||||||
.btn-icon,
|
.btn-icon {
|
||||||
.btn-action {
|
min-width: calc((var(--#{$prefix}btn-line-height) * var(--#{$prefix}btn-font-size)) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
|
||||||
|
min-height: calc((var(--#{$prefix}btn-line-height) * var(--#{$prefix}btn-font-size)) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
margin: calc(-1 * var(--#{$prefix}btn-padding-x));
|
margin: calc(-1 * var(--#{$prefix}btn-padding-x));
|
||||||
}
|
}
|
||||||
//[BUG] btn-sm and btn-xl with an icon looks broken
|
|
||||||
//issue #2470 fixed
|
|
||||||
min-width: calc(var(--#{$prefix}btn-icon-size) + (var(--#{$prefix}btn-padding-x) * 2));
|
|
||||||
min-height: calc(var(--#{$prefix}btn-icon-size) + (var(--#{$prefix}btn-padding-y) * 2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -245,7 +215,7 @@
|
|||||||
height: var(--#{$prefix}btn-icon-size);
|
height: var(--#{$prefix}btn-icon-size);
|
||||||
left: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
|
left: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
|
||||||
top: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
|
top: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
|
||||||
animation: spinner-border 0.75s linear infinite;
|
animation: spinner-border .75s linear infinite;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +224,14 @@
|
|||||||
//
|
//
|
||||||
.btn-action {
|
.btn-action {
|
||||||
--#{$prefix}border-color: transparent;
|
--#{$prefix}border-color: transparent;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
color: var(--#{$prefix}secondary);
|
color: var(--#{$prefix}secondary);
|
||||||
|
display: inline-flex;
|
||||||
|
width: 2rem;
|
||||||
|
height: 2rem;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
border-radius: var(--#{$prefix}border-radius);
|
border-radius: var(--#{$prefix}border-radius);
|
||||||
background: transparent;
|
background: transparent;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
@@ -272,7 +249,6 @@
|
|||||||
&.show {
|
&.show {
|
||||||
color: var(--#{$prefix}body-color);
|
color: var(--#{$prefix}body-color);
|
||||||
background: var(--#{$prefix}active-bg);
|
background: var(--#{$prefix}active-bg);
|
||||||
border-color: transparent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.show {
|
&.show {
|
||||||
@@ -283,64 +259,3 @@
|
|||||||
.btn-actions {
|
.btn-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-animate-icon {
|
|
||||||
.icon {
|
|
||||||
transition: transform 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: translateX(4px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-animate-icon-rotate {
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: rotate(90deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-animate-icon-move-start {
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: translateX(-4px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-animate-icon-pulse {
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: none;
|
|
||||||
animation: pulse 0.9s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-animate-icon-shake {
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: none;
|
|
||||||
animation: shake 0.9s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-animate-icon-tada {
|
|
||||||
&:hover,
|
|
||||||
&:focus-visible {
|
|
||||||
.icon {
|
|
||||||
transform: none;
|
|
||||||
animation: tada 0.9s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -111,11 +111,11 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: $card-spacer-y $card-spacer-x;
|
padding: $card-spacer-y $card-spacer-x;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@include transition(background $transition-time);
|
||||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
|
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
|
||||||
flex: 1;
|
flex: 1;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
font-weight: var(--#{$prefix}font-weight-medium);
|
font-weight: var(--#{$prefix}font-weight-medium);
|
||||||
@include transition(background $transition-time);
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -215,13 +215,11 @@ Stacked card
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Card rotate
|
// Card rotate
|
||||||
.card-rotate-left,
|
.card-rotate-left {
|
||||||
.card-rotate-start {
|
|
||||||
transform: rotate(-1.5deg);
|
transform: rotate(-1.5deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-rotate-right,
|
.card-rotate-right {
|
||||||
.card-rotate-end {
|
|
||||||
transform: rotate(1.5deg);
|
transform: rotate(1.5deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,23 +436,6 @@ Card table
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody {
|
|
||||||
tr {
|
|
||||||
&:last-child {
|
|
||||||
td {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tfoot {
|
|
||||||
tr {
|
|
||||||
&:last-child {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-body + & {
|
.card-body + & {
|
||||||
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color);
|
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
color: var(--#{$prefix}btn-close-color);
|
color: var(--#{$prefix}btn-close-color);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
opacity: var(--#{$prefix}btn-close-hover-opacity);
|
opacity: var(--#{$prefix}btn-close-hover-opacity);
|
||||||
background-color: var(--#{$prefix}btn-close-color);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
.dropend {
|
.dropend {
|
||||||
> .dropdown-menu {
|
> .dropdown-menu {
|
||||||
margin-top: subtract(calc(-1 * $dropdown-padding-y), 1px);
|
margin-top: subtract(-$dropdown-padding-y, 1px);
|
||||||
margin-left: -.25rem;
|
margin-left: -.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
$countries: (
|
$countries: (
|
||||||
'ad', 'af', 'ae', 'afrun', 'ag', 'ai', 'al', 'am', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bl', 'bm', 'bn', 'bo', 'bq-bo', 'bq-sa', 'bq-se', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb-eng', 'gb-sct', 'gb', 'gb-wls', 'gb-nir', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mf', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa', 'rainbow', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'um', 'unasur', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'za', 'zm', 'zw'
|
'ad', 'af', 'ae', 'afrun', 'ag', 'ai', 'al', 'am', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bl', 'bm', 'bn', 'bo', 'bq-bo', 'bq-sa', 'bq-se', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb-eng', 'gb-sct', 'gb', 'gb-wls', 'gb-nir', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mf', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa', 'rainbow', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'um', 'unasur', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'za', 'zm', 'zw'
|
||||||
);
|
);
|
||||||
@@ -28,6 +26,6 @@ $countries: (
|
|||||||
|
|
||||||
@each $flag-size, $size in $flag-sizes {
|
@each $flag-size, $size in $flag-sizes {
|
||||||
.flag-#{$flag-size} {
|
.flag-#{$flag-size} {
|
||||||
height: map.get($size, size);
|
height: map-get($size, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,7 @@ Form label
|
|||||||
&.required {
|
&.required {
|
||||||
&:after {
|
&:after {
|
||||||
content: "*";
|
content: "*";
|
||||||
margin-left: 0.25rem;
|
margin-left: .25rem;
|
||||||
color: $red;
|
color: $red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,17 +39,17 @@ Form hint
|
|||||||
}
|
}
|
||||||
|
|
||||||
& + .form-control {
|
& + .form-control {
|
||||||
margin-top: 0.25rem;
|
margin-top: .25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-label + & {
|
.form-label + & {
|
||||||
margin-top: -0.25rem;
|
margin-top: -.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-group + &,
|
.input-group + &,
|
||||||
.form-control + &,
|
.form-control + &,
|
||||||
.form-select + & {
|
.form-select + & {
|
||||||
margin-top: 0.5rem;
|
margin-top: .5rem;
|
||||||
color: $form-secondary-color;
|
color: $form-secondary-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -90,18 +90,18 @@ Form control
|
|||||||
}
|
}
|
||||||
|
|
||||||
.form-control-dark {
|
.form-control-dark {
|
||||||
background-color: rgba($black, 0.1);
|
background-color: rgba($black, .1);
|
||||||
color: $white;
|
color: $white;
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
background-color: rgba($black, 0.1);
|
background-color: rgba($black, .1);
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-color: rgba($white, 0.24);
|
border-color: rgba($white, .24);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::placeholder {
|
&::placeholder {
|
||||||
color: rgba($white, 0.6);
|
color: rgba($white, .6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ Form help
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 1.125rem;
|
width: 1.125rem;
|
||||||
height: 1.125rem;
|
height: 1.125rem;
|
||||||
font-size: 0.75rem;
|
font-size: .75rem;
|
||||||
color: $form-secondary-color;
|
color: $form-secondary-color;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -161,6 +161,8 @@ Form help
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Input group
|
Input group
|
||||||
*/
|
*/
|
||||||
@@ -206,21 +208,19 @@ Input group
|
|||||||
|
|
||||||
.input-group-text {
|
.input-group-text {
|
||||||
background: $form-check-input-bg;
|
background: $form-check-input-bg;
|
||||||
z-index: 10;
|
|
||||||
@include transition($input-transition);
|
@include transition($input-transition);
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
border-right: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
border-left: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Upload files
|
Upload files
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
.row > * {
|
.row > * {
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
}
|
}
|
||||||
@@ -19,8 +17,8 @@
|
|||||||
|
|
||||||
@each $name, $value in (0: 0, sm: .375rem, md: 1.5rem, lg: 3rem) {
|
@each $name, $value in (0: 0, sm: .375rem, md: 1.5rem, lg: 3rem) {
|
||||||
.row-#{$name} {
|
.row-#{$name} {
|
||||||
margin-right: calc(-1 * $value);
|
margin-right: (-$value);
|
||||||
margin-left: calc(-1 * $value);
|
margin-left: -($value);
|
||||||
|
|
||||||
> .col,
|
> .col,
|
||||||
> [class*="col-"] {
|
> [class*="col-"] {
|
||||||
@@ -56,7 +54,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@each $name, $size in map.merge((null: $spacer), $spacers) {
|
@each $name, $size in map-merge((null: $spacer), $spacers) {
|
||||||
$name-prefixed: if($name == null, null, '-#{$name}');
|
$name-prefixed: if($name == null, null, '-#{$name}');
|
||||||
|
|
||||||
.space-y#{$name-prefixed} {
|
.space-y#{$name-prefixed} {
|
||||||
@@ -71,7 +69,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@each $name, $size in map.merge((null: $spacer), $spacers) {
|
@each $name, $size in map-merge((null: $spacer), $spacers) {
|
||||||
$name-prefixed: if($name == null, null, '-#{$name}');
|
$name-prefixed: if($name == null, null, '-#{$name}');
|
||||||
|
|
||||||
.divide-y#{$name-prefixed} {
|
.divide-y#{$name-prefixed} {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
//
|
//
|
||||||
.icon-sm {
|
.icon-sm {
|
||||||
--#{$prefix}icon-size: 1rem;
|
--#{$prefix}icon-size: 1rem;
|
||||||
stroke-width: 1.5;
|
stroke-width: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-md {
|
.icon-md {
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
@use "sass:math";
|
|
||||||
|
|
||||||
.img-responsive {
|
.img-responsive {
|
||||||
--#{$prefix}img-responsive-ratio: #{math.percentage(.75)};
|
--#{$prefix}img-responsive-ratio: #{percentage(.75)};
|
||||||
background: no-repeat center/cover;
|
background: no-repeat center/cover;
|
||||||
padding-top: var(--#{$prefix}img-responsive-ratio);
|
padding-top: var(--#{$prefix}img-responsive-ratio);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,14 @@
|
|||||||
border-left-width: $border-width-wide;
|
border-left-width: $border-width-wide;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.list-group-item {
|
||||||
|
&:active,
|
||||||
|
&:focus,
|
||||||
|
&:hover {
|
||||||
|
background-color: $dropdown-link-hover-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.list-group-item {
|
.list-group-item {
|
||||||
&.disabled,
|
&.disabled,
|
||||||
&:disabled {
|
&:disabled {
|
||||||
@@ -50,14 +58,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.list-group-hoverable {
|
.list-group-hoverable {
|
||||||
.list-group-item {
|
|
||||||
&:active,
|
|
||||||
&:focus,
|
|
||||||
&:hover {
|
|
||||||
background-color: $dropdown-link-hover-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-item-actions {
|
.list-group-item-actions {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@include transition(opacity $transition-time);
|
@include transition(opacity $transition-time);
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ Markdown
|
|||||||
border: 1px solid var(--#{$prefix}border-color);
|
border: 1px solid var(--#{$prefix}border-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
> pre {
|
||||||
max-height: 20rem;
|
max-height: 20rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.nav-pills {
|
&.nav-pills {
|
||||||
margin: 0 calc(-1 * $nav-link-padding-x);
|
margin: 0 (-$nav-link-padding-x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,10 +44,6 @@
|
|||||||
margin: 0 0 calc(-1 * #{$nav-bordered-border-width});
|
margin: 0 0 calc(-1 * #{$nav-bordered-border-width});
|
||||||
border: 0;
|
border: 0;
|
||||||
border-bottom: $nav-bordered-link-active-border-width var(--#{$prefix}border-style) transparent;
|
border-bottom: $nav-bordered-link-active-border-width var(--#{$prefix}border-style) transparent;
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link.active,
|
.nav-link.active,
|
||||||
@@ -65,8 +61,8 @@
|
|||||||
|
|
||||||
.nav-link {
|
.nav-link {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
@include transition(color $transition-time, background-color $transition-time);
|
@include transition(color $transition-time, background-color $transition-time);
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
|
|||||||
@@ -1,28 +1,25 @@
|
|||||||
.pagination {
|
.pagination {
|
||||||
margin: 0;
|
|
||||||
--#{$prefix}pagination-gap: .25rem;
|
--#{$prefix}pagination-gap: .25rem;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
gap: var(--#{$prefix}pagination-gap);
|
gap: var(--#{$prefix}pagination-gap);
|
||||||
line-height: var(--#{$prefix}body-line-height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-link {
|
.page-link {
|
||||||
min-width: 2rem;
|
min-width: 1.75rem;
|
||||||
border-radius: var(--#{$prefix}pagination-border-radius);
|
border-radius: var(--#{$prefix}border-radius);
|
||||||
}
|
|
||||||
|
|
||||||
.page-item:not(.active) .page-link:hover {
|
|
||||||
background: var(--#{$prefix}pagination-hover-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-text {
|
|
||||||
padding-left: .5rem;
|
|
||||||
padding-right: .5rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-item {
|
.page-item {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
|
&:not(.active) {
|
||||||
|
.page-link {
|
||||||
|
&:hover {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.page-prev,
|
&.page-prev,
|
||||||
&.page-next {
|
&.page-next {
|
||||||
flex: 0 0 50%;
|
flex: 0 0 50%;
|
||||||
@@ -59,13 +56,3 @@
|
|||||||
color: $pagination-disabled-color;
|
color: $pagination-disabled-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-outline {
|
|
||||||
--#{$prefix}pagination-border-color: var(--#{$prefix}border-color);
|
|
||||||
--#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);
|
|
||||||
--#{$prefix}pagination-border-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination-circle {
|
|
||||||
--#{$prefix}pagination-border-radius: var(--tblr-border-radius-pill);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@use "sass:map";
|
|
||||||
|
|
||||||
$payment-icons: ("2c2p", "2checkout", "adyen", "affirm", "alipay-plus", "alipay", "allegro-pay", "amazon-pay", "amazon", "americanexpress", "applepay", "authorize", "autopay", "bancontact", "binance-usd", "bitcoin", "bitpay", "bkash", "blik", "braintree", "cash-app", "chime", "cirrus", "clickandbuy", "coinkite", "dinersclub", "directdebit", "discover", "dotpay", "dwolla", "easypaisa", "ebay", "elo", "epayco", "esewa", "ethereum", "eway", "fonepay", "giropay", "google-pay", "googlewallet", "hubspot", "ingenico", "ideal", "imepay", "jcb", "khalti", "klarna", "laser", "litecoin", "maestro", "mastercard", "mercado-pago", "metamask", "mir", "monero", "moneygram", "neteller", "ogone", "okpay", "opensea", "paybox", "payconiq", "payka", "payline", "paymill", "payone", "payoneer", "paypal", "paypo", "paysafe", "paysafecard", "payu", "payza", "poli", "przelewy24", "revolut-pay", "ripple", "sage", "samsung-pay", "sepa", "shop-pay", "shopify", "skrill", "solana", "solo", "spingo", "square", "stax", "stripe", "switch", "tether", "tpay", "troy", "true-usd", "ukash", "unionpay", "venmo", "verifone", "verisign", "visa", "we-chat-pay", "webmoney", "westernunion", "wise", "worldpay", "zelle");
|
$payment-icons: ("2c2p", "2checkout", "adyen", "affirm", "alipay-plus", "alipay", "allegro-pay", "amazon-pay", "amazon", "americanexpress", "applepay", "authorize", "autopay", "bancontact", "binance-usd", "bitcoin", "bitpay", "bkash", "blik", "braintree", "cash-app", "chime", "cirrus", "clickandbuy", "coinkite", "dinersclub", "directdebit", "discover", "dotpay", "dwolla", "easypaisa", "ebay", "elo", "epayco", "esewa", "ethereum", "eway", "fonepay", "giropay", "google-pay", "googlewallet", "hubspot", "ingenico", "ideal", "imepay", "jcb", "khalti", "klarna", "laser", "litecoin", "maestro", "mastercard", "mercado-pago", "metamask", "mir", "monero", "moneygram", "neteller", "ogone", "okpay", "opensea", "paybox", "payconiq", "payka", "payline", "paymill", "payone", "payoneer", "paypal", "paypo", "paysafe", "paysafecard", "payu", "payza", "poli", "przelewy24", "revolut-pay", "ripple", "sage", "samsung-pay", "sepa", "shop-pay", "shopify", "skrill", "solana", "solo", "spingo", "square", "stax", "stripe", "switch", "tether", "tpay", "troy", "true-usd", "ukash", "unionpay", "venmo", "verifone", "verisign", "visa", "we-chat-pay", "webmoney", "westernunion", "wise", "worldpay", "zelle");
|
||||||
|
|
||||||
.payment {
|
.payment {
|
||||||
@@ -25,6 +23,6 @@ $payment-icons: ("2c2p", "2checkout", "adyen", "affirm", "alipay-plus", "alipay"
|
|||||||
|
|
||||||
@each $payment-size, $size in $payment-sizes {
|
@each $payment-size, $size in $payment-sizes {
|
||||||
.payment-#{$payment-size} {
|
.payment-#{$payment-size} {
|
||||||
height: map.get($size, size);
|
height: map-get($size, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,20 +42,11 @@ Progress
|
|||||||
height: .25rem;
|
height: .25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-lg {
|
|
||||||
height: .75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress-xl {
|
|
||||||
height: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Progress bar
|
Progress bar
|
||||||
*/
|
*/
|
||||||
.progress-bar {
|
.progress-bar {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@include transition(width $transition-time, background $transition-time);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar-indeterminate {
|
.progress-bar-indeterminate {
|
||||||
@@ -114,31 +105,3 @@ Progressbg
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
padding-left: 2rem;
|
padding-left: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Progress steps
|
|
||||||
*/
|
|
||||||
.progress-steps {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
gap: .25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress-steps-item {
|
|
||||||
flex: 1 1 0;
|
|
||||||
min-height: .25rem;
|
|
||||||
margin-top: 0;
|
|
||||||
color: inherit;
|
|
||||||
text-align: center;
|
|
||||||
cursor: default;
|
|
||||||
background-color: var(--tblr-border-color);
|
|
||||||
border-radius: var(--#{$prefix}border-radius-pill);
|
|
||||||
|
|
||||||
@at-root a#{&} {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user