mirror of
https://github.com/tabler/tabler.git
synced 2025-12-23 02:14:26 +04:00
Compare commits
54 Commits
dev-sideba
...
changeset-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3532976b5e | ||
|
|
63a35a849c | ||
|
|
94e1a95ffb | ||
|
|
83ec6f8bcc | ||
|
|
e3d86c519b | ||
|
|
f9d6076014 | ||
|
|
f264470d8f | ||
|
|
ec9469332e | ||
|
|
deb887b4aa | ||
|
|
f9551c3b8e | ||
|
|
3aba62e652 | ||
|
|
059bae1cf6 | ||
|
|
41ed22a128 | ||
|
|
e206d7a908 | ||
|
|
2dc7edae36 | ||
|
|
8bc6fa7fd1 | ||
|
|
a198b0c7c5 | ||
|
|
b1f711635b | ||
|
|
d0fe913453 | ||
|
|
0106d6b7d2 | ||
|
|
14ed4693a5 | ||
|
|
3bcd82ae9f | ||
|
|
40a9b5ac27 | ||
|
|
99b9ea45f6 | ||
|
|
4ce08cad53 | ||
|
|
b0fa6559da | ||
|
|
c7070180dc | ||
|
|
9a17b72a60 | ||
|
|
0c7996321b | ||
|
|
ba7bb880c4 | ||
|
|
5018aa9113 | ||
|
|
8d8727f587 | ||
|
|
6e656ad1de | ||
|
|
0042472f9a | ||
|
|
21eb18f918 | ||
|
|
cf04a00f8e | ||
|
|
41bcebc0a7 | ||
|
|
7475114ef1 | ||
|
|
8ce84e0f2f | ||
|
|
496704b163 | ||
|
|
e098fdfaa6 | ||
|
|
58417be796 | ||
|
|
a7fccda74c | ||
|
|
dbb5e7d2ed | ||
|
|
5da9078f55 | ||
|
|
1cd1fcaf28 | ||
|
|
b4ab1100ef | ||
|
|
af41699e84 | ||
|
|
6e2e4e3317 | ||
|
|
d8077f438c | ||
|
|
0c07677606 | ||
|
|
14418a1c08 | ||
|
|
7b74fee012 | ||
|
|
9893b11ed2 |
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": minor
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.
|
|
||||||
@@ -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
|
|
||||||
---
|
|
||||||
|
|
||||||
Added color palette to signing component.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed icon alignment for `.btn-sm` and `.btn-xl` sizes.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed mixed declarations in SCSS.
|
|
||||||
@@ -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
|
|
||||||
---
|
|
||||||
|
|
||||||
Added `bg-blur` utility and increased `container-tight` width for layout flexibility.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated icons to v3.34.1 with 75 new icons.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated activity messages.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": minor
|
|
||||||
---
|
|
||||||
|
|
||||||
Added new onboarding page with progress indicator and navigation layout.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed 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 `.progress-lg` and `.progress-xl` size variants for the progress component.
|
|
||||||
@@ -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.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated skip-link to use `visually-hidden` for improved accessibility.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated deprecated global Sass functions to module equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated Bootstrap to v5.3.8.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/core": patch
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/docs": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed Docs search display in dark mode.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@tabler/preview": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed responsive layouts on the Form Elements page.
|
|
||||||
4
.github/workflows/argos.yml
vendored
4
.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@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -40,7 +40,7 @@ jobs:
|
|||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/bundlewatch.yml
vendored
4
.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@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -31,7 +31,7 @@ jobs:
|
|||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
@@ -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@v6
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
|
|||||||
4
.github/workflows/lockfiles.yaml
vendored
4
.github/workflows/lockfiles.yaml
vendored
@@ -12,9 +12,9 @@ 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@v6
|
||||||
- name: Prevent lock file change
|
- name: Prevent lock file change
|
||||||
uses: xalvarez/prevent-file-change-action@v2
|
uses: xalvarez/prevent-file-change-action@v3
|
||||||
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|pnpm-lock.yaml
|
||||||
|
|||||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -21,13 +21,13 @@ 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@v6
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Install PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Setup Node.js 18
|
- name: Setup Node.js 18
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/test.yml
vendored
4
.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@v6
|
||||||
|
|
||||||
- name: Cache turbo build setup
|
- name: Cache turbo build setup
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v5
|
uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: "${{ env.NODE }}"
|
node-version: "${{ env.NODE }}"
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
14
.prettierrc
14
.prettierrc
@@ -4,7 +4,17 @@
|
|||||||
"printWidth": 320,
|
"printWidth": 320,
|
||||||
"proseWrap": "always",
|
"proseWrap": "always",
|
||||||
"semi": false,
|
"semi": false,
|
||||||
"singleQuote": false,
|
"singleQuote": true,
|
||||||
|
"quoteProps": "consistent",
|
||||||
"tabWidth": 2,
|
"tabWidth": 2,
|
||||||
"trailingComma": "all"
|
"useTabs": false,
|
||||||
|
"trailingComma": "all",
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "*.scss",
|
||||||
|
"options": {
|
||||||
|
"parser": "scss"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
82
core/.build/compare-variables.mjs
Normal file
82
core/.build/compare-variables.mjs
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
// Get __dirname in ES modules
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
// File paths (relative to core/.build directory)
|
||||||
|
const bootstrapPath = path.join(__dirname, '../node_modules/bootstrap/scss/_variables.scss');
|
||||||
|
const tablerPath = path.join(__dirname, '../scss/_variables.scss');
|
||||||
|
|
||||||
|
// Function to extract variable names from SCSS file
|
||||||
|
function extractVariables(filePath) {
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
const variables = new Set();
|
||||||
|
|
||||||
|
// Regex to find SCSS variables
|
||||||
|
// Looks for patterns like: $variable-name: value
|
||||||
|
// Includes variables in maps and lists
|
||||||
|
const variableRegex = /\$([a-zA-Z0-9_-]+)\s*[:=]/g;
|
||||||
|
|
||||||
|
let match;
|
||||||
|
while ((match = variableRegex.exec(content)) !== null) {
|
||||||
|
const varName = match[1];
|
||||||
|
variables.add(varName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return variables;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
function compareVariables() {
|
||||||
|
console.log('Analyzing Bootstrap variables...');
|
||||||
|
const bootstrapVars = extractVariables(bootstrapPath);
|
||||||
|
console.log(`Found ${bootstrapVars.size} variables in Bootstrap\n`);
|
||||||
|
|
||||||
|
console.log('Analyzing Tabler variables...');
|
||||||
|
const tablerVars = extractVariables(tablerPath);
|
||||||
|
console.log(`Found ${tablerVars.size} variables in Tabler\n`);
|
||||||
|
|
||||||
|
// Find variables that are in Bootstrap but not in Tabler
|
||||||
|
const missingInTabler = [];
|
||||||
|
for (const varName of bootstrapVars) {
|
||||||
|
if (!tablerVars.has(varName)) {
|
||||||
|
missingInTabler.push(varName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort alphabetically
|
||||||
|
missingInTabler.sort();
|
||||||
|
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
console.log(`Variables in Bootstrap that are missing in Tabler: ${missingInTabler.length}`);
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
|
||||||
|
if (missingInTabler.length === 0) {
|
||||||
|
console.log('All Bootstrap variables are present in Tabler!');
|
||||||
|
} else {
|
||||||
|
console.log('\nList of missing variables:\n');
|
||||||
|
missingInTabler.forEach((varName, index) => {
|
||||||
|
console.log(`${(index + 1).toString().padStart(4)}. $${varName}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optionally: show statistics
|
||||||
|
console.log('\n' + '='.repeat(60));
|
||||||
|
console.log('Statistics:');
|
||||||
|
console.log(` Bootstrap: ${bootstrapVars.size} variables`);
|
||||||
|
console.log(` Tabler: ${tablerVars.size} variables`);
|
||||||
|
console.log(` Missing: ${missingInTabler.length} variables`);
|
||||||
|
console.log(` Coverage: ${((1 - missingInTabler.length / bootstrapVars.size) * 100).toFixed(1)}%`);
|
||||||
|
console.log('='.repeat(60));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run analysis
|
||||||
|
try {
|
||||||
|
compareVariables();
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error during analysis:', error.message);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
55
core/.build/import-fonts.mjs
Normal file
55
core/.build/import-fonts.mjs
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
import { existsSync, mkdirSync } from 'fs'
|
||||||
|
import { copySync } from 'fs-extra/esm'
|
||||||
|
import { fileURLToPath } from 'url'
|
||||||
|
import { join, dirname } from 'node:path'
|
||||||
|
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
|
const fromDir = join(__dirname, '..', 'node_modules/geist/dist/fonts')
|
||||||
|
const toDir = join(__dirname, '..', 'fonts')
|
||||||
|
|
||||||
|
// Create fonts directory if it doesn't exist
|
||||||
|
if (!existsSync(toDir)) {
|
||||||
|
mkdirSync(toDir, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy geist-mono fonts
|
||||||
|
const monoFrom = join(fromDir, 'geist-mono')
|
||||||
|
const monoTo = join(toDir, 'geist-mono')
|
||||||
|
|
||||||
|
if (existsSync(monoFrom)) {
|
||||||
|
if (!existsSync(monoTo)) {
|
||||||
|
mkdirSync(monoTo, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
copySync(monoFrom, monoTo, {
|
||||||
|
dereference: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(`Successfully copied geist-mono fonts`)
|
||||||
|
} else {
|
||||||
|
console.warn(`Warning: geist-mono fonts not found at ${monoFrom}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy geist-sans fonts
|
||||||
|
const sansFrom = join(fromDir, 'geist-sans')
|
||||||
|
const sansTo = join(toDir, 'geist-sans')
|
||||||
|
|
||||||
|
if (existsSync(sansFrom)) {
|
||||||
|
if (!existsSync(sansTo)) {
|
||||||
|
mkdirSync(sansTo, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
copySync(sansFrom, sansTo, {
|
||||||
|
dereference: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(`Successfully copied geist-sans fonts`)
|
||||||
|
} else {
|
||||||
|
console.warn(`Warning: geist-sans fonts not found at ${sansFrom}`)
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,45 @@
|
|||||||
# @tabler/core
|
# @tabler/core
|
||||||
|
|
||||||
|
## 1.5.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- 5e119d4: Added Pay page with dedicated layout, navigation link, and card/PayPal payment form.
|
||||||
|
- 9c5d729: Added `.btn-ghost` button variant with transparent background and hover effects.
|
||||||
|
- ec94693: Added `.card-gradient` component with gradient variants, direction modifiers, and animated backgrounds.
|
||||||
|
- a198b0c: Added Geist font family integration.
|
||||||
|
- 8d8727f: Added language selector dropdown to navbar with flag indicators for multilingual support.
|
||||||
|
- 4ce08ca: Refactored navbar-side component by consolidating separate include files (apps, language, notifications, theme, user) into a single `navbar-side.html` file for better maintainability.
|
||||||
|
- 9c5d729: Added Progress Background component with text labels and value display.
|
||||||
|
- 9c5d729: Added `.progress-lg` and `.progress-xl` size variants for the progress component.
|
||||||
|
- 9c5d729: Added Progress Steps component for step-by-step navigation indicators.
|
||||||
|
- e3d86c5: Upgraded `apexcharts` from `3.54.1` to `5.3.6` and added CSS variables (`--chart-{id}-color-{index}`) for dynamic chart colors to fix compatibility with the new version.
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- 059bae1: Refactored Bootstrap exports to use single source of truth in `bootstrap.js` and removed duplicate exports from `tabler.js` for better maintainability.
|
||||||
|
- 5018aa9: Fixed `.btn-icon` to be square by aligning `min-width` calculation with base `.btn` formula.
|
||||||
|
- c860288: Fixed icon alignment for `.btn-sm` and `.btn-xl` sizes.
|
||||||
|
- 2dc7eda: Updated `$border-color-translucent-dark` from `rgba(72, 110, 149, 0.14)` to `rgba(128, 150, 172, 0.2)` to improve visibility of form checkboxes and other form elements in dark mode.
|
||||||
|
- 6e656ad: Fixed `.input-icon-addon` z-index issue with form validation feedback and added default height.
|
||||||
|
- 8bc6fa7: Fixed status color classes to use CSS variables instead of hardcoded values and include social colors (bitbucket, facebook, etc.) in status class generation.
|
||||||
|
- e206d7a: Fixed white space on left side when scrollbar is present by replacing `margin-inline-start: calc(100vw - 100%)` with `scrollbar-gutter: stable` on `html` element, with `overflow-y: scroll` fallback for unsupported browsers.
|
||||||
|
- 4ce08ca: Updated flags and avatars styling for better visual consistency.
|
||||||
|
- b8b63d7: Fixed mixed declarations in SCSS.
|
||||||
|
- 0106d6b: Update SCSS to use logical properties
|
||||||
|
- 9c5d729: Updated `stroke-width` for `.icon-sm` from `1` to `1.5` for better visibility.
|
||||||
|
- 5e119d4: Added `bg-blur` utility and increased `container-tight` width for layout flexibility.
|
||||||
|
- 3aba62e: Added `border-top-left-radius` and `border-top-right-radius` to first and last child elements in `.card-table` for proper corner rounding.
|
||||||
|
- 0c79963: Added `media-print` mixin and print styles to hide interactive components during printing.
|
||||||
|
- 9a3361f: Fixed double bottom border in tables.
|
||||||
|
- 9c5d729: Added smooth transitions for progress bar `width` and `background-color` changes.
|
||||||
|
- 41ed22a: Removed redundant nullish coalescing operator from `html` option in popover and tooltip initialization.
|
||||||
|
- 83ec6f8: Added Driver.js library integration and Tour demo page for interactive product tours and onboarding guides.
|
||||||
|
- 9c5d729: Updated skip-link to use `visually-hidden` for improved accessibility.
|
||||||
|
- 736e604: Updated deprecated global Sass functions to module equivalents (`map.merge`, `string.slice`, `math.percentage`, etc.).
|
||||||
|
- f8dee0a: Updated Bootstrap to v5.3.8.
|
||||||
|
- 9c5d729: Updated trending component to use `arrow-up`/`arrow-down` instead of `trending-up`/`trending-down`.
|
||||||
|
|
||||||
## 1.4.0
|
## 1.4.0
|
||||||
|
|
||||||
### Minor Changes
|
### Minor Changes
|
||||||
|
|||||||
BIN
core/fonts/geist-mono/GeistMono-Black.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Black.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Black.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Black.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Bold.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Bold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Bold.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Bold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Light.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Light.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Light.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Light.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Medium.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Medium.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Medium.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Medium.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Regular.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Regular.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Regular.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Regular.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-SemiBold.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-SemiBold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-SemiBold.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-SemiBold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Thin.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Thin.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Thin.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Thin.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraBlack.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraLight.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraLight.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-UltraLight.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-UltraLight.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Variable.ttf
Normal file
BIN
core/fonts/geist-mono/GeistMono-Variable.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-mono/GeistMono-Variable.woff2
Normal file
BIN
core/fonts/geist-mono/GeistMono-Variable.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Black.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Black.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Black.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Black.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Bold.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Bold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Bold.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Bold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Light.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Light.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Light.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Light.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Medium.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Medium.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Medium.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Medium.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Regular.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Regular.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Regular.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Regular.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-SemiBold.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-SemiBold.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-SemiBold.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-SemiBold.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Thin.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Thin.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Thin.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Thin.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraBlack.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-UltraBlack.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraBlack.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-UltraBlack.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraLight.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-UltraLight.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-UltraLight.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-UltraLight.woff2
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Variable.ttf
Normal file
BIN
core/fonts/geist-sans/Geist-Variable.ttf
Normal file
Binary file not shown.
BIN
core/fonts/geist-sans/Geist-Variable.woff2
Normal file
BIN
core/fonts/geist-sans/Geist-Variable.woff2
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="16" fill="none"><mask id="a" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" d="M.001.927h20v15h-20z"/></mask><g mask="url(#a)"><path fill="#F7FCFF" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/><mask id="b" width="21" height="16" x="0" y="0" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill="#fff" fill-rule="evenodd" d="M.001.927v15h20v-15h-20Z" clip-rule="evenodd"/></mask><g fill-rule="evenodd" clip-rule="evenodd" mask="url(#b)"><path fill="#3D58DB" d="M.001.927v15h20v-15h-20Z"/><path fill="#FFD018" d="m9.407 3.137-.14.818L10 3.57l.735.386-.14-.818.594-.64h-.821L10 1.695l-.367.804h-.822l.595.639Zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 12.55l-.367.804h-.822l.595.64ZM3.484 9.438l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386-.735.386Zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821l-.368-.803-.367.804H4.24l.595.639Zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386-.734.386Zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24l.595.64Zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.66 13.29l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821l.594.64Zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386-.734.386ZM6.52 4.666l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64-.14.818Zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387-.734.387Zm3.062 3.879-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821l.594.639Z"/></g></g></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="15" fill="none" viewBox="0 0 20 15"><path fill="#3d58db" fill-rule="evenodd" d="M0 0v15h20V0z" clip-rule="evenodd"/><path fill="#ffd018" fill-rule="evenodd" d="m9.407 2.442-.14.818.733-.385.735.386-.14-.818.594-.64h-.821L10 1l-.367.804h-.822zm0 10.855-.14.819.734-.387.735.387-.14-.819.594-.639h-.821L10 11.855l-.367.804h-.822l.595.64zM3.484 8.743l.14-.818-.594-.64h.822l.367-.803.367.804h.822l-.595.639.14.818-.734-.386zm1.352 1.77-.14.818.734-.386.735.386-.14-.818.594-.64h-.821L5.43 9.07l-.367.804H4.24zm9.009.818.14-.818-.595-.64h.822l.367-.803.368.804h.821l-.594.639.14.818-.735-.386zm-9.01-6.062-.14.818.735-.386.735.386-.14-.818.594-.639h-.821l-.368-.804-.367.804H4.24zm9.01.818.14-.818-.595-.639h.822l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.66 12.595l-.14.819.735-.387.734.386-.14-.818.595-.639h-.822l-.367-.804-.368.804h-.821zm5.418.819.14-.819-.594-.639h.821l.367-.804.368.804h.821l-.594.64.14.817-.735-.386zM6.52 3.971l.735-.387.734.387-.14-.818.595-.64h-.822l-.367-.804-.368.804h-.821l.594.64zm5.558 0 .14-.818-.594-.64h.821l.367-.804.368.804h.821l-.594.64.14.818-.735-.387zM15.14 7.85l-.14.818.735-.386.735.386-.14-.818.593-.64h-.82l-.368-.803-.368.804h-.821z" clip-rule="evenodd"/></svg>
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,7 +1,8 @@
|
|||||||
// Autosize plugin
|
// Autosize plugin
|
||||||
const elements = document.querySelectorAll('[data-bs-toggle="autosize"]');
|
const elements = document.querySelectorAll('[data-bs-toggle="autosize"]')
|
||||||
|
|
||||||
if (elements.length) {
|
if (elements.length) {
|
||||||
elements.forEach(function (element) {
|
elements.forEach(function (element) {
|
||||||
window.autosize && window.autosize(element);
|
window.autosize && window.autosize(element)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
21
core/js/src/bootstrap.js
vendored
21
core/js/src/bootstrap.js
vendored
@@ -1,3 +1,20 @@
|
|||||||
export * as Popper from '@popperjs/core';
|
export * as Popper from '@popperjs/core'
|
||||||
|
|
||||||
export { Dropdown, Tooltip, Popover, Tab, Toast } from 'bootstrap';
|
// Export all Bootstrap components directly for consistent usage
|
||||||
|
export {
|
||||||
|
Alert,
|
||||||
|
Button,
|
||||||
|
Carousel,
|
||||||
|
Collapse,
|
||||||
|
Dropdown,
|
||||||
|
Modal,
|
||||||
|
Offcanvas,
|
||||||
|
Popover,
|
||||||
|
ScrollSpy,
|
||||||
|
Tab,
|
||||||
|
Toast,
|
||||||
|
Tooltip
|
||||||
|
} from 'bootstrap'
|
||||||
|
|
||||||
|
// Re-export everything as namespace for backward compatibility
|
||||||
|
export * as bootstrap from 'bootstrap'
|
||||||
|
|||||||
@@ -1,23 +1,25 @@
|
|||||||
const elements = document.querySelectorAll('[data-countup]');
|
const elements = document.querySelectorAll('[data-countup]')
|
||||||
|
|
||||||
if (elements.length) {
|
if (elements.length) {
|
||||||
elements.forEach(function (element) {
|
elements.forEach(function (element) {
|
||||||
let options = {};
|
let options = {}
|
||||||
try {
|
try {
|
||||||
const dataOptions = element.getAttribute('data-countup') ? JSON.parse(element.getAttribute('data-countup')) : {};
|
const dataOptions = element.getAttribute('data-countup') ? JSON.parse(element.getAttribute('data-countup')) : {}
|
||||||
options = Object.assign({
|
options = Object.assign(
|
||||||
'enableScrollSpy': true
|
{
|
||||||
}, dataOptions);
|
enableScrollSpy: true,
|
||||||
|
},
|
||||||
|
dataOptions,
|
||||||
|
)
|
||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
|
|
||||||
const value = parseInt(element.innerHTML, 10);
|
const value = parseInt(element.innerHTML, 10)
|
||||||
|
|
||||||
if (window.countUp && window.countUp.CountUp) {
|
if (window.countUp && window.countUp.CountUp) {
|
||||||
const countUp = new window.countUp.CountUp(element, value, options);
|
const countUp = new window.countUp.CountUp(element, value, options)
|
||||||
if (!countUp.error) {
|
if (!countUp.error) {
|
||||||
countUp.start();
|
countUp.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { Dropdown } from './bootstrap';
|
import { Dropdown } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Core dropdowns
|
Core dropdowns
|
||||||
*/
|
*/
|
||||||
let dropdownTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'));
|
let dropdownTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="dropdown"]'))
|
||||||
dropdownTriggerList.map(function (dropdownTriggerEl) {
|
dropdownTriggerList.map(function (dropdownTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
boundary: dropdownTriggerEl.getAttribute('data-bs-boundary') === 'viewport' ? document.querySelector('.btn') : 'clippingParents',
|
boundary: dropdownTriggerEl.getAttribute('data-bs-boundary') === 'viewport' ? document.querySelector('.btn') : 'clippingParents',
|
||||||
}
|
}
|
||||||
return new Dropdown(dropdownTriggerEl, options);
|
return new Dropdown(dropdownTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
// Input mask plugin
|
// Input mask plugin
|
||||||
|
|
||||||
var maskElementList = [].slice.call(document.querySelectorAll('[data-mask]'));
|
var maskElementList = [].slice.call(document.querySelectorAll('[data-mask]'))
|
||||||
maskElementList.map(function (maskEl) {
|
maskElementList.map(function (maskEl) {
|
||||||
window.IMask && new window.IMask(maskEl, {
|
window.IMask &&
|
||||||
|
new window.IMask(maskEl, {
|
||||||
mask: maskEl.dataset.mask,
|
mask: maskEl.dataset.mask,
|
||||||
lazy: maskEl.dataset['mask-visible'] === 'true'
|
lazy: maskEl.dataset['mask-visible'] === 'true',
|
||||||
})
|
})
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { Popover } from './bootstrap';
|
import { Popover } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Core popovers
|
Core popovers
|
||||||
*/
|
*/
|
||||||
let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
|
let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
|
||||||
popoverTriggerList.map(function (popoverTriggerEl) {
|
popoverTriggerList.map(function (popoverTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
delay: {show: 50, hide: 50},
|
delay: { show: 50, hide: 50 },
|
||||||
html: popoverTriggerEl.getAttribute('data-bs-html') === "true" ?? false,
|
html: popoverTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||||
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto'
|
placement: popoverTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||||
};
|
}
|
||||||
return new Popover(popoverTriggerEl, options);
|
return new Popover(popoverTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -2,24 +2,22 @@
|
|||||||
// Initializes Sortable on elements marked with [data-sortable]
|
// Initializes Sortable on elements marked with [data-sortable]
|
||||||
// Allows options via JSON in data attribute: data-sortable='{"animation":150}'
|
// Allows options via JSON in data attribute: data-sortable='{"animation":150}'
|
||||||
|
|
||||||
const sortableElements = document.querySelectorAll('[data-sortable]');
|
const sortableElements = document.querySelectorAll('[data-sortable]')
|
||||||
|
|
||||||
if (sortableElements.length) {
|
if (sortableElements.length) {
|
||||||
sortableElements.forEach(function (element) {
|
sortableElements.forEach(function (element) {
|
||||||
let options = {};
|
let options = {}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const rawOptions = element.getAttribute('data-sortable');
|
const rawOptions = element.getAttribute('data-sortable')
|
||||||
options = rawOptions ? JSON.parse(rawOptions) : {};
|
options = rawOptions ? JSON.parse(rawOptions) : {}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// ignore invalid JSON
|
// ignore invalid JSON
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.Sortable) {
|
if (window.Sortable) {
|
||||||
// eslint-disable-next-line no-new
|
// eslint-disable-next-line no-new
|
||||||
new window.Sortable(element, options);
|
new window.Sortable(element, options)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
Switch icons
|
Switch icons
|
||||||
*/
|
*/
|
||||||
let switchesTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'));
|
let switchesTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="switch-icon"]'))
|
||||||
switchesTriggerList.map(function (switchTriggerEl) {
|
switchesTriggerList.map(function (switchTriggerEl) {
|
||||||
switchTriggerEl.addEventListener('click', (e) => {
|
switchTriggerEl.addEventListener('click', (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation()
|
||||||
|
|
||||||
switchTriggerEl.classList.toggle('active');
|
switchTriggerEl.classList.toggle('active')
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import { Tab } from './bootstrap';
|
import { Tab } from './bootstrap'
|
||||||
|
|
||||||
export const EnableActivationTabsFromLocationHash = () => {
|
export const EnableActivationTabsFromLocationHash = () => {
|
||||||
const locationHash = window.location.hash;
|
const locationHash = window.location.hash
|
||||||
|
|
||||||
if (locationHash) {
|
if (locationHash) {
|
||||||
const tabsList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]'));
|
const tabsList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]'))
|
||||||
const matchedTabs = tabsList.filter(tab => tab.hash === locationHash);
|
const matchedTabs = tabsList.filter((tab) => tab.hash === locationHash)
|
||||||
|
|
||||||
matchedTabs.map(tab => {
|
matchedTabs.map((tab) => {
|
||||||
new Tab(tab).show();
|
new Tab(tab).show()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import { Toast } from './bootstrap';
|
import { Toast } from './bootstrap'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Toasts
|
Toasts
|
||||||
*/
|
*/
|
||||||
let toastsTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'));
|
let toastsTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="toast"]'))
|
||||||
toastsTriggerList.map(function (toastTriggerEl) {
|
toastsTriggerList.map(function (toastTriggerEl) {
|
||||||
if (!toastTriggerEl.hasAttribute('data-bs-target')) {
|
if (!toastTriggerEl.hasAttribute('data-bs-target')) {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const toastEl = new Toast(toastTriggerEl.getAttribute('data-bs-target'));
|
const toastEl = new Toast(toastTriggerEl.getAttribute('data-bs-target'))
|
||||||
|
|
||||||
toastTriggerEl.addEventListener('click', () => {
|
toastTriggerEl.addEventListener('click', () => {
|
||||||
toastEl.show()
|
toastEl.show()
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Tooltip } from './bootstrap';
|
import { Tooltip } from './bootstrap'
|
||||||
|
|
||||||
let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||||
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
||||||
let options = {
|
let options = {
|
||||||
delay: {show: 50, hide: 50},
|
delay: { show: 50, hide: 50 },
|
||||||
html: tooltipTriggerEl.getAttribute("data-bs-html") === "true" ?? false,
|
html: tooltipTriggerEl.getAttribute('data-bs-html') === 'true',
|
||||||
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto'
|
placement: tooltipTriggerEl.getAttribute('data-bs-placement') ?? 'auto',
|
||||||
};
|
}
|
||||||
return new Tooltip(tooltipTriggerEl, options);
|
return new Tooltip(tooltipTriggerEl, options)
|
||||||
});
|
})
|
||||||
|
|||||||
@@ -4,14 +4,11 @@
|
|||||||
* This will prevent any flashes of the light theme (default) before switching.
|
* This will prevent any flashes of the light theme (default) before switching.
|
||||||
*/
|
*/
|
||||||
const themeConfig = {
|
const themeConfig = {
|
||||||
"theme": "light",
|
'theme': 'light',
|
||||||
"theme-base": "gray",
|
'theme-base': 'gray',
|
||||||
"theme-font": "sans-serif",
|
'theme-font': 'sans-serif',
|
||||||
"theme-primary": "blue",
|
'theme-primary': 'blue',
|
||||||
"theme-radius": "1",
|
'theme-radius': '1',
|
||||||
"sidebar-position": "left",
|
|
||||||
"sidebar-behavior": "sticky",
|
|
||||||
"layout": "container",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const params = new Proxy(new URLSearchParams(window.location.search), {
|
const params = new Proxy(new URLSearchParams(window.location.search), {
|
||||||
|
|||||||
@@ -1,28 +1,16 @@
|
|||||||
import "./src/autosize"
|
import './src/autosize'
|
||||||
import "./src/countup"
|
import './src/countup'
|
||||||
import "./src/input-mask"
|
import './src/input-mask'
|
||||||
import "./src/dropdown"
|
import './src/dropdown'
|
||||||
import "./src/tooltip"
|
import './src/tooltip'
|
||||||
import "./src/popover"
|
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"
|
import './src/sortable'
|
||||||
|
|
||||||
export * as bootstrap from "bootstrap"
|
// Re-export everything from bootstrap.js (single source of truth)
|
||||||
export * as tabler from "./src/tabler"
|
export * from './src/bootstrap'
|
||||||
|
|
||||||
export {
|
// Re-export tabler namespace
|
||||||
Alert,
|
export * as tabler from './src/tabler'
|
||||||
Modal,
|
|
||||||
Toast,
|
|
||||||
Tooltip,
|
|
||||||
Tab,
|
|
||||||
Button,
|
|
||||||
Carousel,
|
|
||||||
Collapse,
|
|
||||||
Dropdown,
|
|
||||||
Popover,
|
|
||||||
ScrollSpy,
|
|
||||||
Offcanvas
|
|
||||||
} from 'bootstrap'
|
|
||||||
|
|||||||
@@ -166,5 +166,14 @@
|
|||||||
"dist/turbo.es2017-umd.js"
|
"dist/turbo.es2017-umd.js"
|
||||||
],
|
],
|
||||||
"head": true
|
"head": true
|
||||||
|
},
|
||||||
|
"driver.js": {
|
||||||
|
"npm": "driver.js",
|
||||||
|
"js": [
|
||||||
|
"dist/driver.js.iife.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"dist/driver.css"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,41 +1,46 @@
|
|||||||
{
|
{
|
||||||
"name": "@tabler/core",
|
"name": "@tabler/core",
|
||||||
"version": "1.4.0",
|
"version": "1.5.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 clean && pnpm run copy && 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 build-assets && pnpm run copy && pnpm run generate-sri",
|
||||||
|
"build-assets": "concurrently \"pnpm run css\" \"pnpm run js\"",
|
||||||
"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 --no-source-map --load-path=node_modules --style expanded scss/:dist/css/",
|
||||||
"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\"",
|
||||||
"css-minify": "pnpm run css-minify-main && pnpm run css-minify-rtl",
|
"css-minify": "concurrently \"pnpm run css-minify-main\" \"pnpm run css-minify-rtl\"",
|
||||||
"css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
|
"css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
|
||||||
"css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
|
"css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
|
||||||
|
"css-lint": "pnpm run css-lint-variables",
|
||||||
|
"css-lint-variables": "find-unused-sass-variables scss/ node_modules/bootstrap/scss/",
|
||||||
"js": "pnpm run js-compile && pnpm run js-minify",
|
"js": "pnpm run js-compile && pnpm run js-minify",
|
||||||
"js-compile": "pnpm run js-compile-standalone && pnpm run js-compile-standalone-esm && pnpm run js-compile-theme && pnpm run js-compile-theme-esm",
|
"js-compile": "concurrently \"pnpm run js-compile-standalone\" \"pnpm run js-compile-standalone-esm\" \"pnpm run js-compile-theme\" \"pnpm run js-compile-theme-esm\"",
|
||||||
"js-compile-theme-esm": "rollup --environment THEME:true --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
|
"js-compile-theme-esm": "rollup --environment THEME:true --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
|
||||||
"js-compile-theme": "rollup --environment THEME:true --config .build/rollup.config.mjs --sourcemap",
|
"js-compile-theme": "rollup --environment THEME:true --config .build/rollup.config.mjs --sourcemap",
|
||||||
"js-compile-standalone": "rollup --config .build/rollup.config.mjs --sourcemap",
|
"js-compile-standalone": "rollup --config .build/rollup.config.mjs --sourcemap",
|
||||||
"js-compile-standalone-esm": "rollup --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
|
"js-compile-standalone-esm": "rollup --environment ESM:true --config .build/rollup.config.mjs --sourcemap",
|
||||||
"js-minify": "pnpm run js-minify-standalone && pnpm run js-minify-standalone-esm && pnpm run js-minify-theme && pnpm run js-minify-theme-esm",
|
"js-minify": "concurrently \"pnpm run js-minify-standalone\" \"pnpm run js-minify-standalone-esm\" \"pnpm run js-minify-theme\" \"pnpm run js-minify-theme-esm\"",
|
||||||
"js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map\" --output dist/js/tabler.min.js dist/js/tabler.js",
|
"js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.js.map,includeSources,url=tabler.min.js.map\" --output dist/js/tabler.min.js dist/js/tabler.js",
|
||||||
"js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/tabler.esm.js.map,includeSources,url=tabler.esm.min.js.map\" --output dist/js/tabler.esm.min.js dist/js/tabler.esm.js",
|
"js-minify-standalone-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": "concurrently \"pnpm run copy-img\" \"pnpm run copy-libs\" \"pnpm run copy-fonts\"",
|
||||||
"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",
|
"copy-libs": "node .build/copy-libs.mjs",
|
||||||
|
"copy-fonts": "shx mkdir -p dist/fonts && shx cp -rf fonts/* dist/fonts",
|
||||||
|
"import-fonts": "node .build/import-fonts.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\"",
|
||||||
"bundlewatch": "bundlewatch",
|
"bundlewatch": "bundlewatch",
|
||||||
"generate-sri": "node .build/generate-sri.js",
|
"generate-sri": "node .build/generate-sri.js",
|
||||||
"format:check": "prettier --check src/**/*.{js,scss} --cache",
|
"format:check": "prettier --check \"scss/**/*.scss\" \"js/**/*.js\" --cache",
|
||||||
"format:write": "prettier --write src/**/*.{js,scss} --cache"
|
"format:write": "prettier --write \"scss/**/*.scss\" \"js/**/*.js\" --cache"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -149,17 +154,19 @@
|
|||||||
"bootstrap": "5.3.8"
|
"bootstrap": "5.3.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@hotwired/turbo": "^8.0.13",
|
"@hotwired/turbo": "^8.0.18",
|
||||||
"@melloware/coloris": "^0.25.0",
|
"@melloware/coloris": "^0.25.0",
|
||||||
"apexcharts": "3.54.1",
|
"apexcharts": "^5.3.6",
|
||||||
"autosize": "^6.0.1",
|
"autosize": "^6.0.1",
|
||||||
"choices.js": "^11.1.0",
|
"choices.js": "^11.1.0",
|
||||||
"clipboard": "^2.0.11",
|
"clipboard": "^2.0.11",
|
||||||
"countup.js": "^2.9.0",
|
"countup.js": "^2.9.0",
|
||||||
"dropzone": "^6.0.0-beta.2",
|
"dropzone": "^6.0.0-beta.2",
|
||||||
|
"find-unused-sass-variables": "^6.1.0",
|
||||||
"flatpickr": "^4.6.13",
|
"flatpickr": "^4.6.13",
|
||||||
"fslightbox": "^3.7.4",
|
"fslightbox": "^3.7.4",
|
||||||
"fullcalendar": "^6.1.19",
|
"fullcalendar": "^6.1.19",
|
||||||
|
"geist": "^1.5.1",
|
||||||
"hugerte": "^1.0.9",
|
"hugerte": "^1.0.9",
|
||||||
"imask": "^7.6.1",
|
"imask": "^7.6.1",
|
||||||
"jsvectormap": "^1.7.0",
|
"jsvectormap": "^1.7.0",
|
||||||
@@ -171,7 +178,8 @@
|
|||||||
"sortablejs": "^1.15.6",
|
"sortablejs": "^1.15.6",
|
||||||
"star-rating.js": "^4.3.1",
|
"star-rating.js": "^4.3.1",
|
||||||
"tom-select": "^2.4.3",
|
"tom-select": "^2.4.3",
|
||||||
"typed.js": "^2.1.0"
|
"typed.js": "^2.1.0",
|
||||||
|
"driver.js": "^1.0.0"
|
||||||
},
|
},
|
||||||
"directories": {
|
"directories": {
|
||||||
"doc": "docs"
|
"doc": "docs"
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
// Layout & components
|
// Layout & components
|
||||||
@import "bootstrap/scss/root";
|
@import 'bootstrap/scss/root';
|
||||||
@import "bootstrap/scss/reboot";
|
@import 'bootstrap/scss/reboot';
|
||||||
@import "bootstrap/scss/type";
|
@import 'bootstrap/scss/type';
|
||||||
@import "bootstrap/scss/images";
|
@import 'bootstrap/scss/images';
|
||||||
@import "bootstrap/scss/containers";
|
@import 'bootstrap/scss/containers';
|
||||||
@import "bootstrap/scss/grid";
|
@import 'bootstrap/scss/grid';
|
||||||
@import "bootstrap/scss/tables";
|
@import 'bootstrap/scss/tables';
|
||||||
@import "bootstrap/scss/forms";
|
@import 'bootstrap/scss/forms';
|
||||||
@import "bootstrap/scss/buttons";
|
@import 'bootstrap/scss/buttons';
|
||||||
@import "bootstrap/scss/transitions";
|
@import 'bootstrap/scss/transitions';
|
||||||
@import "bootstrap/scss/dropdown";
|
@import 'bootstrap/scss/dropdown';
|
||||||
@import "bootstrap/scss/button-group";
|
@import 'bootstrap/scss/button-group';
|
||||||
@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/pagination";
|
@import 'bootstrap/scss/pagination';
|
||||||
@import "bootstrap/scss/progress";
|
@import 'bootstrap/scss/progress';
|
||||||
@import "bootstrap/scss/list-group";
|
@import 'bootstrap/scss/list-group';
|
||||||
@import "bootstrap/scss/toasts";
|
@import 'bootstrap/scss/toasts';
|
||||||
@import "bootstrap/scss/modal";
|
@import 'bootstrap/scss/modal';
|
||||||
@import "bootstrap/scss/tooltip";
|
@import 'bootstrap/scss/tooltip';
|
||||||
@import "bootstrap/scss/popover";
|
@import 'bootstrap/scss/popover';
|
||||||
@import "bootstrap/scss/carousel";
|
@import 'bootstrap/scss/carousel';
|
||||||
@import "bootstrap/scss/spinners";
|
@import 'bootstrap/scss/spinners';
|
||||||
@import "bootstrap/scss/offcanvas";
|
@import 'bootstrap/scss/offcanvas';
|
||||||
@import "bootstrap/scss/placeholders";
|
@import 'bootstrap/scss/placeholders';
|
||||||
|
|
||||||
// Utilities
|
// Utilities
|
||||||
@import "bootstrap/scss/utilities/api";
|
@import 'bootstrap/scss/utilities/api';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Config
|
// Config
|
||||||
@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";
|
||||||
@import "bootstrap/scss/mixins";
|
@import 'bootstrap/scss/mixins';
|
||||||
@import "bootstrap/scss/utilities";
|
// @import "bootstrap/scss/utilities";
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
@use "sass:color";
|
@use 'sass:color';
|
||||||
|
|
||||||
@mixin caret($direction: down) {
|
@mixin caret($direction: down) {
|
||||||
$selector: "after";
|
$selector: 'after';
|
||||||
|
|
||||||
@if $direction == "left" {
|
@if $direction == 'left' {
|
||||||
$selector: "before";
|
$selector: 'before';
|
||||||
}
|
}
|
||||||
|
|
||||||
&:#{$selector} {
|
&:#{$selector} {
|
||||||
content: "";
|
content: '';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: $caret-vertical-align;
|
vertical-align: $caret-vertical-align;
|
||||||
width: $caret-width;
|
width: $caret-width;
|
||||||
height: $caret-width;
|
height: $caret-width;
|
||||||
border-bottom: 1px var(--#{$prefix}border-style);
|
border-bottom: 1px var(--#{$prefix}border-style);
|
||||||
border-left: 1px var(--#{$prefix}border-style);
|
border-inline-start: 1px var(--#{$prefix}border-style);
|
||||||
margin-right: 0.1em;
|
margin-inline-end: 0.1em;
|
||||||
|
|
||||||
@if $direction != "left" {
|
@if $direction != 'left' {
|
||||||
margin-left: $caret-spacing;
|
margin-inline-start: $caret-spacing;
|
||||||
} @else {
|
} @else {
|
||||||
margin-right: $caret-spacing;
|
margin-inline-end: $caret-spacing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $direction == down {
|
@if $direction == down {
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $direction == "left" {
|
@if $direction == 'left' {
|
||||||
&:after {
|
&:after {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
@@ -45,30 +45,11 @@
|
|||||||
// Override bootstrap core
|
// Override bootstrap core
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin button-variant(
|
@mixin button-variant($background: null, $border: null, $color: null, $hover-background: null, $hover-border: null, $hover-color: null, $active-background: null, $active-border: null, $active-color: null, $disabled-background: null, $disabled-border: null, $disabled-color: null) {
|
||||||
$background: null,
|
|
||||||
$border: null,
|
|
||||||
$color: null,
|
|
||||||
$hover-background: null,
|
|
||||||
$hover-border: null,
|
|
||||||
$hover-color: null,
|
|
||||||
$active-background: null,
|
|
||||||
$active-border: null,
|
|
||||||
$active-color: null,
|
|
||||||
$disabled-background: null,
|
|
||||||
$disabled-border: null,
|
|
||||||
$disabled-color: null
|
|
||||||
) {
|
|
||||||
// Override bootstrap core
|
// Override bootstrap core
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin button-outline-variant(
|
@mixin button-outline-variant($color: null, $color-hover: null, $active-background: null, $active-border: null, $active-color: null) {
|
||||||
$color: null,
|
|
||||||
$color-hover: null,
|
|
||||||
$active-background: null,
|
|
||||||
$active-border: null,
|
|
||||||
$active-color: null
|
|
||||||
) {
|
|
||||||
// Override bootstrap core
|
// Override bootstrap core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
|
@import 'mixins';
|
||||||
|
@import 'variables';
|
||||||
|
@import 'variables-dark';
|
||||||
|
@import 'maps';
|
||||||
|
@import 'utilities';
|
||||||
|
|
||||||
|
@import 'bootstrap-config';
|
||||||
@import "mixins";
|
@import 'bootstrap-override';
|
||||||
@import "variables";
|
|
||||||
@import "variables-dark";
|
|
||||||
@import "utilities";
|
|
||||||
|
|
||||||
@import "bootstrap-config";
|
|
||||||
@import "bootstrap-override";
|
|
||||||
|
|||||||
@@ -1,84 +1,80 @@
|
|||||||
@import "config";
|
@import 'config';
|
||||||
@import "bootstrap-components";
|
@import 'bootstrap-components';
|
||||||
|
|
||||||
@import "props";
|
@import 'props';
|
||||||
|
|
||||||
@import "fonts/webfonts";
|
@import 'fonts/webfonts';
|
||||||
|
@import 'fonts/geist';
|
||||||
|
|
||||||
@import "layout/root";
|
@import 'layout/root';
|
||||||
@import "layout/animations";
|
@import 'layout/animations';
|
||||||
@import "layout/core";
|
@import 'layout/core';
|
||||||
@import "layout/navbar";
|
@import 'layout/navbar';
|
||||||
@import "layout/page";
|
@import 'layout/page';
|
||||||
@import "layout/footer";
|
@import 'layout/footer';
|
||||||
@import "layout/dark";
|
@import 'layout/dark';
|
||||||
|
|
||||||
@import "ui/accordion";
|
@import 'ui/accordion';
|
||||||
@import "ui/alerts";
|
@import 'ui/alerts';
|
||||||
@import "ui/avatars";
|
@import 'ui/avatars';
|
||||||
@import "ui/badges";
|
@import 'ui/badges';
|
||||||
@import "ui/breadcrumbs";
|
@import 'ui/breadcrumbs';
|
||||||
@import "ui/buttons";
|
@import 'ui/buttons';
|
||||||
@import "ui/button-group";
|
@import 'ui/button-group';
|
||||||
@import "ui/calendars";
|
@import 'ui/calendars';
|
||||||
@import "ui/carousel";
|
@import 'ui/carousel';
|
||||||
@import "ui/cards";
|
@import 'ui/cards';
|
||||||
@import "ui/close";
|
@import 'ui/close';
|
||||||
@import "ui/dropdowns";
|
@import 'ui/dropdowns';
|
||||||
@import "ui/datagrid";
|
@import 'ui/datagrid';
|
||||||
@import "ui/empty";
|
@import 'ui/empty';
|
||||||
@import "ui/grid";
|
@import 'ui/grid';
|
||||||
@import "ui/icons";
|
@import 'ui/icons';
|
||||||
@import "ui/images";
|
@import 'ui/images';
|
||||||
@import "ui/forms";
|
@import 'ui/forms';
|
||||||
@import "ui/forms/form-icon";
|
@import 'ui/forms/form-icon';
|
||||||
@import "ui/forms/form-colorinput";
|
@import 'ui/forms/form-colorinput';
|
||||||
@import "ui/forms/form-imagecheck";
|
@import 'ui/forms/form-imagecheck';
|
||||||
@import "ui/forms/form-selectgroup";
|
@import 'ui/forms/form-selectgroup';
|
||||||
@import "ui/forms/form-custom";
|
@import 'ui/forms/form-custom';
|
||||||
@import "ui/forms/form-check";
|
@import 'ui/forms/form-check';
|
||||||
@import "ui/forms/validation";
|
@import 'ui/forms/validation';
|
||||||
@import "ui/legend";
|
@import 'ui/legend';
|
||||||
@import "ui/lists";
|
@import 'ui/lists';
|
||||||
@import "ui/loaders";
|
@import 'ui/loaders';
|
||||||
@import "ui/login";
|
@import 'ui/login';
|
||||||
@import "ui/modals";
|
@import 'ui/modals';
|
||||||
@import "ui/nav";
|
@import 'ui/nav';
|
||||||
@import "ui/stars";
|
@import 'ui/stars';
|
||||||
@import "ui/pagination";
|
@import 'ui/pagination';
|
||||||
@import "ui/popovers";
|
@import 'ui/popovers';
|
||||||
@import "ui/progress";
|
@import 'ui/progress';
|
||||||
@import "ui/ribbons";
|
@import 'ui/ribbons';
|
||||||
@import "ui/markdown";
|
@import 'ui/markdown';
|
||||||
@import "ui/placeholder";
|
@import 'ui/placeholder';
|
||||||
@import "ui/segmented";
|
@import 'ui/segmented';
|
||||||
@import "ui/steps";
|
@import 'ui/steps';
|
||||||
@import "ui/status";
|
@import 'ui/status';
|
||||||
@import "ui/switch-icon";
|
@import 'ui/switch-icon';
|
||||||
@import "ui/tables";
|
@import 'ui/tables';
|
||||||
@import "ui/tags";
|
@import 'ui/tags';
|
||||||
@import "ui/toasts";
|
@import 'ui/toasts';
|
||||||
@import "ui/toolbar";
|
@import 'ui/toolbar';
|
||||||
@import "ui/tracking";
|
@import 'ui/tracking';
|
||||||
@import "ui/timeline";
|
@import 'ui/timeline';
|
||||||
@import "ui/type";
|
@import 'ui/type';
|
||||||
@import "ui/charts";
|
@import 'ui/charts';
|
||||||
@import "ui/offcanvas";
|
@import 'ui/offcanvas';
|
||||||
@import "ui/chat";
|
@import 'ui/chat';
|
||||||
@import "ui/signature";
|
@import 'ui/signature';
|
||||||
|
|
||||||
@import "helpers/index";
|
@import 'helpers/index';
|
||||||
|
|
||||||
@import "utils/background";
|
@import 'utils/background';
|
||||||
@import "utils/colors";
|
@import 'utils/colors';
|
||||||
@import "utils/scroll";
|
@import 'utils/scroll';
|
||||||
@import "utils/sizing";
|
@import 'utils/sizing';
|
||||||
@import "utils/opacity";
|
@import 'utils/opacity';
|
||||||
@import "utils/shadow";
|
@import 'utils/shadow';
|
||||||
@import "utils/text";
|
@import 'utils/text';
|
||||||
@import "utils/hover";
|
@import 'utils/hover';
|
||||||
|
|
||||||
@import "debug";
|
|
||||||
|
|
||||||
|
|
||||||
@import "debug";
|
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
$debug: false;
|
|
||||||
|
|
||||||
@if $debug {
|
|
||||||
$colors: (
|
|
||||||
"blue": $blue,
|
|
||||||
"azure": $azure,
|
|
||||||
"indigo": $indigo,
|
|
||||||
"purple": $purple,
|
|
||||||
"pink": $pink,
|
|
||||||
"red": $red,
|
|
||||||
"orange": $orange,
|
|
||||||
"yellow": $yellow,
|
|
||||||
"lime": $lime,
|
|
||||||
"green": $green,
|
|
||||||
"teal": $teal,
|
|
||||||
"cyan": $cyan,
|
|
||||||
);
|
|
||||||
|
|
||||||
@each $name, $color in $colors {
|
|
||||||
@debug ("#{$name}: '#{$color}'");
|
|
||||||
@debug ("#{$name}-100: '#{tint-color($color, 8)}'");
|
|
||||||
@debug ("#{$name}-200: '#{tint-color($color, 6)}'");
|
|
||||||
@debug ("#{$name}-300: '#{tint-color($color, 4)}'");
|
|
||||||
@debug ("#{$name}-400: '#{tint-color($color, 2)}'");
|
|
||||||
@debug ("#{$name}-500: '#{$color}'");
|
|
||||||
@debug ("#{$name}-600: '#{shade-color($color, 2)}'");
|
|
||||||
@debug ("#{$name}-700: '#{shade-color($color, 4)}'");
|
|
||||||
@debug ("#{$name}-800: '#{shade-color($color, 6)}'");
|
|
||||||
@debug ("#{$name}-900: '#{shade-color($color, 8)}'");
|
|
||||||
}
|
|
||||||
|
|
||||||
@debug ("gray: '#{$gray-500}'");
|
|
||||||
@debug ("gray-100: '#{$gray-100}'");
|
|
||||||
@debug ("gray-200: '#{$gray-200}'");
|
|
||||||
@debug ("gray-300: '#{$gray-300}'");
|
|
||||||
@debug ("gray-400: '#{$gray-400}'");
|
|
||||||
@debug ("gray-500: '#{$gray-500}'");
|
|
||||||
@debug ("gray-600: '#{$gray-600}'");
|
|
||||||
@debug ("gray-700: '#{$gray-700}'");
|
|
||||||
@debug ("gray-800: '#{$gray-800}'");
|
|
||||||
@debug ("gray-900: '#{$gray-900}'");
|
|
||||||
|
|
||||||
@debug ("border-color: '#{$border-color}'");
|
|
||||||
@debug ("text-secondary: '#{$text-secondary}'");
|
|
||||||
|
|
||||||
@each $name, $color in $social-colors {
|
|
||||||
@debug ("#{$name}: '#{$color}'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
155
core/scss/_maps.scss
Normal file
155
core/scss/_maps.scss
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
@use 'sass:map';
|
||||||
|
|
||||||
|
// Re-assigned maps
|
||||||
|
//
|
||||||
|
// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
|
||||||
|
|
||||||
|
$theme-colors-rgb: map-loop($theme-colors, to-rgb, '$value') !default;
|
||||||
|
|
||||||
|
$theme-colors-text: (
|
||||||
|
'primary': $primary-text-emphasis,
|
||||||
|
'secondary': $secondary-text-emphasis,
|
||||||
|
'success': $success-text-emphasis,
|
||||||
|
'info': $info-text-emphasis,
|
||||||
|
'warning': $warning-text-emphasis,
|
||||||
|
'danger': $danger-text-emphasis,
|
||||||
|
'light': $light-text-emphasis,
|
||||||
|
'dark': $dark-text-emphasis,
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$theme-colors-bg-subtle: (
|
||||||
|
'primary': $primary-bg-subtle,
|
||||||
|
'secondary': $secondary-bg-subtle,
|
||||||
|
'success': $success-bg-subtle,
|
||||||
|
'info': $info-bg-subtle,
|
||||||
|
'warning': $warning-bg-subtle,
|
||||||
|
'danger': $danger-bg-subtle,
|
||||||
|
'light': $light-bg-subtle,
|
||||||
|
'dark': $dark-bg-subtle,
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$theme-colors-border-subtle: (
|
||||||
|
'primary': $primary-border-subtle,
|
||||||
|
'secondary': $secondary-border-subtle,
|
||||||
|
'success': $success-border-subtle,
|
||||||
|
'info': $info-border-subtle,
|
||||||
|
'warning': $warning-border-subtle,
|
||||||
|
'danger': $danger-border-subtle,
|
||||||
|
'light': $light-border-subtle,
|
||||||
|
'dark': $dark-border-subtle,
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$theme-colors-text-dark: null !default;
|
||||||
|
$theme-colors-bg-subtle-dark: null !default;
|
||||||
|
$theme-colors-border-subtle-dark: null !default;
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
$theme-colors-text-dark: (
|
||||||
|
'primary': $primary-text-emphasis-dark,
|
||||||
|
'secondary': $secondary-text-emphasis-dark,
|
||||||
|
'success': $success-text-emphasis-dark,
|
||||||
|
'info': $info-text-emphasis-dark,
|
||||||
|
'warning': $warning-text-emphasis-dark,
|
||||||
|
'danger': $danger-text-emphasis-dark,
|
||||||
|
'light': $light-text-emphasis-dark,
|
||||||
|
'dark': $dark-text-emphasis-dark,
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$theme-colors-bg-subtle-dark: (
|
||||||
|
'primary': $primary-bg-subtle-dark,
|
||||||
|
'secondary': $secondary-bg-subtle-dark,
|
||||||
|
'success': $success-bg-subtle-dark,
|
||||||
|
'info': $info-bg-subtle-dark,
|
||||||
|
'warning': $warning-bg-subtle-dark,
|
||||||
|
'danger': $danger-bg-subtle-dark,
|
||||||
|
'light': $light-bg-subtle-dark,
|
||||||
|
'dark': $dark-bg-subtle-dark,
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$theme-colors-border-subtle-dark: (
|
||||||
|
'primary': $primary-border-subtle-dark,
|
||||||
|
'secondary': $secondary-border-subtle-dark,
|
||||||
|
'success': $success-border-subtle-dark,
|
||||||
|
'info': $info-border-subtle-dark,
|
||||||
|
'warning': $warning-border-subtle-dark,
|
||||||
|
'danger': $danger-border-subtle-dark,
|
||||||
|
'light': $light-border-subtle-dark,
|
||||||
|
'dark': $dark-border-subtle-dark,
|
||||||
|
) !default;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utilities maps
|
||||||
|
//
|
||||||
|
// Extends the default `$theme-colors` maps to help create our utilities.
|
||||||
|
|
||||||
|
// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
|
||||||
|
|
||||||
|
$utilities-colors: $theme-colors-rgb !default;
|
||||||
|
|
||||||
|
$utilities-text: map.merge(
|
||||||
|
$utilities-colors,
|
||||||
|
(
|
||||||
|
'black': to-rgb($black),
|
||||||
|
'white': to-rgb($white),
|
||||||
|
'body': to-rgb($body-color),
|
||||||
|
)
|
||||||
|
) !default;
|
||||||
|
$utilities-text-colors: map-loop($utilities-text, rgba-css-var, '$key', 'text') !default;
|
||||||
|
|
||||||
|
$utilities-text-emphasis-colors: (
|
||||||
|
'primary-emphasis': var(--#{$prefix}primary-text-emphasis),
|
||||||
|
'secondary-emphasis': var(--#{$prefix}secondary-text-emphasis),
|
||||||
|
'success-emphasis': var(--#{$prefix}success-text-emphasis),
|
||||||
|
'info-emphasis': var(--#{$prefix}info-text-emphasis),
|
||||||
|
'warning-emphasis': var(--#{$prefix}warning-text-emphasis),
|
||||||
|
'danger-emphasis': var(--#{$prefix}danger-text-emphasis),
|
||||||
|
'light-emphasis': var(--#{$prefix}light-text-emphasis),
|
||||||
|
'dark-emphasis': var(--#{$prefix}dark-text-emphasis),
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$utilities-bg: map.merge(
|
||||||
|
$utilities-colors,
|
||||||
|
(
|
||||||
|
'black': to-rgb($black),
|
||||||
|
'white': to-rgb($white),
|
||||||
|
'body': to-rgb($body-bg),
|
||||||
|
)
|
||||||
|
) !default;
|
||||||
|
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, '$key', 'bg') !default;
|
||||||
|
|
||||||
|
$utilities-bg-subtle: (
|
||||||
|
'primary-subtle': var(--#{$prefix}primary-bg-subtle),
|
||||||
|
'secondary-subtle': var(--#{$prefix}secondary-bg-subtle),
|
||||||
|
'success-subtle': var(--#{$prefix}success-bg-subtle),
|
||||||
|
'info-subtle': var(--#{$prefix}info-bg-subtle),
|
||||||
|
'warning-subtle': var(--#{$prefix}warning-bg-subtle),
|
||||||
|
'danger-subtle': var(--#{$prefix}danger-bg-subtle),
|
||||||
|
'light-subtle': var(--#{$prefix}light-bg-subtle),
|
||||||
|
'dark-subtle': var(--#{$prefix}dark-bg-subtle),
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$utilities-border: map.merge(
|
||||||
|
$utilities-colors,
|
||||||
|
(
|
||||||
|
'black': to-rgb($black),
|
||||||
|
'white': to-rgb($white),
|
||||||
|
)
|
||||||
|
) !default;
|
||||||
|
$utilities-border-colors: map-loop($utilities-border, rgba-css-var, '$key', 'border') !default;
|
||||||
|
|
||||||
|
$utilities-border-subtle: (
|
||||||
|
'primary-subtle': var(--#{$prefix}primary-border-subtle),
|
||||||
|
'secondary-subtle': var(--#{$prefix}secondary-border-subtle),
|
||||||
|
'success-subtle': var(--#{$prefix}success-border-subtle),
|
||||||
|
'info-subtle': var(--#{$prefix}info-border-subtle),
|
||||||
|
'warning-subtle': var(--#{$prefix}warning-border-subtle),
|
||||||
|
'danger-subtle': var(--#{$prefix}danger-border-subtle),
|
||||||
|
'light-subtle': var(--#{$prefix}light-border-subtle),
|
||||||
|
'dark-subtle': var(--#{$prefix}dark-border-subtle),
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
$utilities-links-underline: map-loop($utilities-colors, rgba-css-var, '$key', 'link-underline') !default;
|
||||||
|
|
||||||
|
$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
|
||||||
|
|
||||||
|
$gutters: $spacers !default;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
@import "mixins/mixins";
|
@import 'mixins/mixins';
|
||||||
@import "mixins/functions";
|
@import 'mixins/functions';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@use "sass:map";
|
@use 'sass:map';
|
||||||
@import "config";
|
@import 'config';
|
||||||
|
|
||||||
:root,
|
:root,
|
||||||
:host {
|
:host {
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
/** Theme colors */
|
/** Theme colors */
|
||||||
@each $name, $color in map.merge($theme-colors, $social-colors) {
|
@each $name, $color in map.merge($theme-colors, $social-colors) {
|
||||||
|
@debug contrast-ratio($color, white), $name, $min-contrast-ratio;
|
||||||
--#{$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))};
|
||||||
|
|||||||
@@ -1,167 +1,158 @@
|
|||||||
@use "sass:map";
|
@use 'sass:map';
|
||||||
|
|
||||||
$negative-spacers-extra: if(
|
$negative-spacers-extra: if($enable-negative-margins, negativify-map(map.merge($spacers, $spacers-extra)), null);
|
||||||
$enable-negative-margins,
|
|
||||||
negativify-map(map.merge($spacers, $spacers-extra)),
|
|
||||||
null
|
|
||||||
);
|
|
||||||
|
|
||||||
$utilities: (
|
$utilities: (
|
||||||
// Margin utilities
|
// Margin utilities
|
||||||
"margin":
|
'margin': (
|
||||||
(
|
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin,
|
property: margin,
|
||||||
class: m,
|
class: m,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-x": (
|
'margin-x': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-right margin-left,
|
property: margin-inline-end margin-inline-start,
|
||||||
class: mx,
|
class: mx,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-y": (
|
'margin-y': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-top margin-bottom,
|
property: margin-top margin-bottom,
|
||||||
class: my,
|
class: my,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-top": (
|
'margin-top': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-top,
|
property: margin-top,
|
||||||
class: mt,
|
class: mt,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-end": (
|
'margin-end': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-right,
|
property: margin-inline-end,
|
||||||
class: me,
|
class: me,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-bottom": (
|
'margin-bottom': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-bottom,
|
property: margin-bottom,
|
||||||
class: mb,
|
class: mb,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"margin-start": (
|
'margin-start': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-left,
|
property: margin-inline-start,
|
||||||
class: ms,
|
class: ms,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
// Negative margin utilities
|
// Negative margin utilities
|
||||||
"negative-margin":
|
'negative-margin': (
|
||||||
(
|
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin,
|
property: margin,
|
||||||
class: m,
|
class: m,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-x": (
|
'negative-margin-x': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-right margin-left,
|
property: margin-inline-end margin-inline-start,
|
||||||
class: mx,
|
class: mx,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-y": (
|
'negative-margin-y': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-top margin-bottom,
|
property: margin-top margin-bottom,
|
||||||
class: my,
|
class: my,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-top": (
|
'negative-margin-top': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-top,
|
property: margin-top,
|
||||||
class: mt,
|
class: mt,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-end": (
|
'negative-margin-end': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-right,
|
property: margin-inline-end,
|
||||||
class: me,
|
class: me,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-bottom": (
|
'negative-margin-bottom': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-bottom,
|
property: margin-bottom,
|
||||||
class: mb,
|
class: mb,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
"negative-margin-start": (
|
'negative-margin-start': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: margin-left,
|
property: margin-inline-start,
|
||||||
class: ms,
|
class: ms,
|
||||||
values: $negative-spacers-extra,
|
values: $negative-spacers-extra,
|
||||||
),
|
),
|
||||||
// Padding utilities
|
// Padding utilities
|
||||||
"padding":
|
'padding': (
|
||||||
(
|
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding,
|
property: padding,
|
||||||
class: p,
|
class: p,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-x": (
|
'padding-x': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-right padding-left,
|
property: padding-inline-end padding-inline-start,
|
||||||
class: px,
|
class: px,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-y": (
|
'padding-y': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-top padding-bottom,
|
property: padding-top padding-bottom,
|
||||||
class: py,
|
class: py,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-top": (
|
'padding-top': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-top,
|
property: padding-top,
|
||||||
class: pt,
|
class: pt,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-end": (
|
'padding-end': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-right,
|
property: padding-inline-end,
|
||||||
class: pe,
|
class: pe,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-bottom": (
|
'padding-bottom': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-bottom,
|
property: padding-bottom,
|
||||||
class: pb,
|
class: pb,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"padding-start": (
|
'padding-start': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: padding-left,
|
property: padding-inline-start,
|
||||||
class: ps,
|
class: ps,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
// Gap utility
|
// Gap utility
|
||||||
"gap":
|
'gap': (
|
||||||
(
|
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: gap,
|
property: gap,
|
||||||
class: gap,
|
class: gap,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"row-gap": (
|
'row-gap': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: row-gap,
|
property: row-gap,
|
||||||
class: row-gap,
|
class: row-gap,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"column-gap": (
|
'column-gap': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
property: column-gap,
|
property: column-gap,
|
||||||
class: column-gap,
|
class: column-gap,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
// Letter spacing
|
// Letter spacing
|
||||||
"spacing":
|
'spacing': (
|
||||||
(
|
|
||||||
property: letter-spacing,
|
property: letter-spacing,
|
||||||
class: tracking,
|
class: tracking,
|
||||||
values: (
|
values: (
|
||||||
@@ -170,38 +161,38 @@ $utilities: (
|
|||||||
wide: $spacing-wide,
|
wide: $spacing-wide,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"width": (
|
'width': (
|
||||||
property: width,
|
property: width,
|
||||||
class: w,
|
class: w,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"height": (
|
'height': (
|
||||||
property: height,
|
property: height,
|
||||||
class: h,
|
class: h,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"filter": (
|
'filter': (
|
||||||
property: filter,
|
property: filter,
|
||||||
class: filter,
|
class: filter,
|
||||||
values: (
|
values: (
|
||||||
grayscale: grayscale(100%),
|
grayscale: grayscale(100%),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"gutter-x": (
|
'gutter-x': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
css-var: true,
|
css-var: true,
|
||||||
css-variable-name: gutter-x,
|
css-variable-name: gutter-x,
|
||||||
class: gx,
|
class: gx,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"gutter-y": (
|
'gutter-y': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
css-var: true,
|
css-var: true,
|
||||||
css-variable-name: gutter-y,
|
css-variable-name: gutter-y,
|
||||||
class: gy,
|
class: gy,
|
||||||
values: $spacers-extra,
|
values: $spacers-extra,
|
||||||
),
|
),
|
||||||
"gutter": (
|
'gutter': (
|
||||||
responsive: true,
|
responsive: true,
|
||||||
css-var: true,
|
css-var: true,
|
||||||
css-variable-name: gutter-x,
|
css-variable-name: gutter-x,
|
||||||
|
|||||||
@@ -1,19 +1,127 @@
|
|||||||
|
@use 'sass:map';
|
||||||
|
|
||||||
$border-values: (
|
$border-values: (
|
||||||
null: var(--#{$prefix}border-width) var(--#{$prefix}border-style)
|
null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent),
|
||||||
var(--#{$prefix}border-color-translucent),
|
wide: $border-width-wide var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent),
|
||||||
wide: $border-width-wide var(--#{$prefix}border-style)
|
|
||||||
var(--#{$prefix}border-color-translucent),
|
|
||||||
0: 0,
|
0: 0,
|
||||||
);
|
);
|
||||||
|
|
||||||
$utilities-border-colors: map-loop((
|
$utilities-border-colors: map-loop(
|
||||||
"red": red,
|
(
|
||||||
"green": green,
|
'red': red,
|
||||||
), rgba-css-var, "$key", "border") !default;
|
'green': green,
|
||||||
|
),
|
||||||
|
rgba-css-var,
|
||||||
|
'$key',
|
||||||
|
'border'
|
||||||
|
) !default;
|
||||||
|
|
||||||
//Utilities
|
//Utilities
|
||||||
$utilities: (
|
$utilities: (
|
||||||
"object": (
|
'align': (
|
||||||
|
property: vertical-align,
|
||||||
|
class: align,
|
||||||
|
values: baseline top middle bottom text-bottom text-top,
|
||||||
|
),
|
||||||
|
'float': (
|
||||||
|
responsive: true,
|
||||||
|
property: float,
|
||||||
|
values: (
|
||||||
|
start: left,
|
||||||
|
end: right,
|
||||||
|
none: none,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Object Fit utilities
|
||||||
|
'object-fit': (
|
||||||
|
responsive: true,
|
||||||
|
property: object-fit,
|
||||||
|
values: (
|
||||||
|
contain: contain,
|
||||||
|
cover: cover,
|
||||||
|
fill: fill,
|
||||||
|
scale: scale-down,
|
||||||
|
none: none,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Opacity utilities
|
||||||
|
'opacity': (
|
||||||
|
property: opacity,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'overflow': (
|
||||||
|
property: overflow,
|
||||||
|
values: auto hidden visible scroll,
|
||||||
|
),
|
||||||
|
'overflow-x': (
|
||||||
|
property: overflow-x,
|
||||||
|
values: auto hidden visible scroll,
|
||||||
|
),
|
||||||
|
'overflow-y': (
|
||||||
|
property: overflow-y,
|
||||||
|
values: auto hidden visible scroll,
|
||||||
|
),
|
||||||
|
'display': (
|
||||||
|
responsive: true,
|
||||||
|
print: true,
|
||||||
|
property: display,
|
||||||
|
class: d,
|
||||||
|
values: inline inline-block block grid inline-grid table table-row table-cell flex inline-flex none,
|
||||||
|
),
|
||||||
|
'shadow': (
|
||||||
|
property: box-shadow,
|
||||||
|
class: shadow,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}box-shadow),
|
||||||
|
sm: var(--#{$prefix}box-shadow-sm),
|
||||||
|
lg: var(--#{$prefix}box-shadow-lg),
|
||||||
|
none: none,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'focus-ring': (
|
||||||
|
css-var: true,
|
||||||
|
css-variable-name: focus-ring-color,
|
||||||
|
class: focus-ring,
|
||||||
|
values: map-loop($theme-colors-rgb, rgba-css-var, '$key', 'focus-ring'),
|
||||||
|
),
|
||||||
|
'position': (
|
||||||
|
property: position,
|
||||||
|
values: static relative absolute fixed sticky,
|
||||||
|
),
|
||||||
|
'top': (
|
||||||
|
property: top,
|
||||||
|
values: $position-values,
|
||||||
|
),
|
||||||
|
'bottom': (
|
||||||
|
property: bottom,
|
||||||
|
values: $position-values,
|
||||||
|
),
|
||||||
|
'start': (
|
||||||
|
property: left,
|
||||||
|
class: start,
|
||||||
|
values: $position-values,
|
||||||
|
),
|
||||||
|
'end': (
|
||||||
|
property: right,
|
||||||
|
class: end,
|
||||||
|
values: $position-values,
|
||||||
|
),
|
||||||
|
'translate-middle': (
|
||||||
|
property: transform,
|
||||||
|
class: translate-middle,
|
||||||
|
values: (
|
||||||
|
null: translate(-50%, -50%),
|
||||||
|
x: translateX(-50%),
|
||||||
|
y: translateY(-50%),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'object': (
|
||||||
property: object-fit,
|
property: object-fit,
|
||||||
class: object,
|
class: object,
|
||||||
values: (
|
values: (
|
||||||
@@ -24,7 +132,7 @@ $utilities: (
|
|||||||
none: none,
|
none: none,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"cursor": (
|
'cursor': (
|
||||||
property: cursor,
|
property: cursor,
|
||||||
class: cursor,
|
class: cursor,
|
||||||
values: (
|
values: (
|
||||||
@@ -46,78 +154,429 @@ $utilities: (
|
|||||||
crosshair: crosshair,
|
crosshair: crosshair,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"border": (
|
'border': (
|
||||||
property: border,
|
property: border,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-top": (
|
'border-top': (
|
||||||
property: border-top,
|
property: border-top,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-end": (
|
'border-end': (
|
||||||
class: border-end,
|
class: border-end,
|
||||||
property: border-right,
|
property: border-inline-end,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-bottom": (
|
'border-bottom': (
|
||||||
property: border-bottom,
|
property: border-bottom,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-start": (
|
'border-start': (
|
||||||
class: border-start,
|
class: border-start,
|
||||||
property: border-left,
|
property: border-inline-start,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-x": (
|
'border-x': (
|
||||||
class: border-x,
|
class: border-x,
|
||||||
property: border-left border-right,
|
property: border-inline-start border-inline-end,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"border-y": (
|
'border-y': (
|
||||||
class: border-y,
|
class: border-y,
|
||||||
property: border-top border-bottom,
|
property: border-top border-bottom,
|
||||||
values: $border-values,
|
values: $border-values,
|
||||||
),
|
),
|
||||||
"width": (
|
'border-color': (
|
||||||
|
property: border-color,
|
||||||
|
class: border,
|
||||||
|
local-vars: (
|
||||||
|
'border-opacity': 1,
|
||||||
|
),
|
||||||
|
values: $utilities-border-colors,
|
||||||
|
),
|
||||||
|
'subtle-border-color': (
|
||||||
|
property: border-color,
|
||||||
|
class: border,
|
||||||
|
values: $utilities-border-subtle,
|
||||||
|
),
|
||||||
|
'border-width': (
|
||||||
|
property: border-width,
|
||||||
|
class: border,
|
||||||
|
values: $border-widths,
|
||||||
|
),
|
||||||
|
'border-opacity': (
|
||||||
|
css-var: true,
|
||||||
|
class: border-opacity,
|
||||||
|
values: (
|
||||||
|
10: 0.1,
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'width': (
|
||||||
property: width,
|
property: width,
|
||||||
class: w,
|
class: w,
|
||||||
values: $size-values,
|
values: $size-values,
|
||||||
),
|
),
|
||||||
"height": (
|
'max-width': (
|
||||||
|
property: max-width,
|
||||||
|
class: mw,
|
||||||
|
values: (
|
||||||
|
100: 100%,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'viewport-width': (
|
||||||
|
property: width,
|
||||||
|
class: vw,
|
||||||
|
values: (
|
||||||
|
100: 100vw,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'min-viewport-width': (
|
||||||
|
property: min-width,
|
||||||
|
class: min-vw,
|
||||||
|
values: (
|
||||||
|
100: 100vw,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'height': (
|
||||||
property: height,
|
property: height,
|
||||||
class: h,
|
class: h,
|
||||||
values: $size-values,
|
values: $size-values,
|
||||||
),
|
),
|
||||||
"columns": (
|
'max-height': (
|
||||||
|
property: max-height,
|
||||||
|
class: mh,
|
||||||
|
values: (
|
||||||
|
100: 100%,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'viewport-height': (
|
||||||
|
property: height,
|
||||||
|
class: vh,
|
||||||
|
values: (
|
||||||
|
100: 100vh,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'min-viewport-height': (
|
||||||
|
property: min-height,
|
||||||
|
class: min-vh,
|
||||||
|
values: (
|
||||||
|
100: 100vh,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'columns': (
|
||||||
property: columns,
|
property: columns,
|
||||||
class: columns,
|
class: columns,
|
||||||
responsive: true,
|
responsive: true,
|
||||||
values: 2 3 4,
|
values: 2 3 4,
|
||||||
),
|
),
|
||||||
"bg-pattern": (
|
// Flex utilities
|
||||||
|
'flex': (
|
||||||
|
responsive: true,
|
||||||
|
property: flex,
|
||||||
|
values: (
|
||||||
|
fill: 1 1 auto,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'flex-direction': (
|
||||||
|
responsive: true,
|
||||||
|
property: flex-direction,
|
||||||
|
class: flex,
|
||||||
|
values: row column row-reverse column-reverse,
|
||||||
|
),
|
||||||
|
'flex-grow': (
|
||||||
|
responsive: true,
|
||||||
|
property: flex-grow,
|
||||||
|
class: flex,
|
||||||
|
values: (
|
||||||
|
grow-0: 0,
|
||||||
|
grow-1: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'flex-shrink': (
|
||||||
|
responsive: true,
|
||||||
|
property: flex-shrink,
|
||||||
|
class: flex,
|
||||||
|
values: (
|
||||||
|
shrink-0: 0,
|
||||||
|
shrink-1: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'flex-wrap': (
|
||||||
|
responsive: true,
|
||||||
|
property: flex-wrap,
|
||||||
|
class: flex,
|
||||||
|
values: wrap nowrap wrap-reverse,
|
||||||
|
),
|
||||||
|
'justify-content': (
|
||||||
|
responsive: true,
|
||||||
|
property: justify-content,
|
||||||
|
values: (
|
||||||
|
start: flex-start,
|
||||||
|
end: flex-end,
|
||||||
|
center: center,
|
||||||
|
between: space-between,
|
||||||
|
around: space-around,
|
||||||
|
evenly: space-evenly,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'align-items': (
|
||||||
|
responsive: true,
|
||||||
|
property: align-items,
|
||||||
|
values: (
|
||||||
|
start: flex-start,
|
||||||
|
end: flex-end,
|
||||||
|
center: center,
|
||||||
|
baseline: baseline,
|
||||||
|
stretch: stretch,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'align-content': (
|
||||||
|
responsive: true,
|
||||||
|
property: align-content,
|
||||||
|
values: (
|
||||||
|
start: flex-start,
|
||||||
|
end: flex-end,
|
||||||
|
center: center,
|
||||||
|
between: space-between,
|
||||||
|
around: space-around,
|
||||||
|
stretch: stretch,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'align-self': (
|
||||||
|
responsive: true,
|
||||||
|
property: align-self,
|
||||||
|
values: (
|
||||||
|
auto: auto,
|
||||||
|
start: flex-start,
|
||||||
|
end: flex-end,
|
||||||
|
center: center,
|
||||||
|
baseline: baseline,
|
||||||
|
stretch: stretch,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'order': (
|
||||||
|
responsive: true,
|
||||||
|
property: order,
|
||||||
|
values: (
|
||||||
|
first: -1,
|
||||||
|
0: 0,
|
||||||
|
1: 1,
|
||||||
|
2: 2,
|
||||||
|
3: 3,
|
||||||
|
4: 4,
|
||||||
|
5: 5,
|
||||||
|
last: 6,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Margin utilities
|
||||||
|
'margin': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin,
|
||||||
|
class: m,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-x': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-right margin-left,
|
||||||
|
class: mx,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-y': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-top margin-bottom,
|
||||||
|
class: my,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-top': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-top,
|
||||||
|
class: mt,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-end': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-right,
|
||||||
|
class: me,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-bottom': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-bottom,
|
||||||
|
class: mb,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'margin-start': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-left,
|
||||||
|
class: ms,
|
||||||
|
values: map.merge(
|
||||||
|
$spacers,
|
||||||
|
(
|
||||||
|
auto: auto,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Negative margin utilities
|
||||||
|
'negative-margin': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin,
|
||||||
|
class: m,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-x': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-right margin-left,
|
||||||
|
class: mx,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-y': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-top margin-bottom,
|
||||||
|
class: my,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-top': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-top,
|
||||||
|
class: mt,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-end': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-right,
|
||||||
|
class: me,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-bottom': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-bottom,
|
||||||
|
class: mb,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
'negative-margin-start': (
|
||||||
|
responsive: true,
|
||||||
|
property: margin-left,
|
||||||
|
class: ms,
|
||||||
|
values: $negative-spacers,
|
||||||
|
),
|
||||||
|
// Padding utilities
|
||||||
|
'padding': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding,
|
||||||
|
class: p,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-x': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-right padding-left,
|
||||||
|
class: px,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-y': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-top padding-bottom,
|
||||||
|
class: py,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-top': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-top,
|
||||||
|
class: pt,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-end': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-right,
|
||||||
|
class: pe,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-bottom': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-bottom,
|
||||||
|
class: pb,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'padding-start': (
|
||||||
|
responsive: true,
|
||||||
|
property: padding-left,
|
||||||
|
class: ps,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
// Gap utility
|
||||||
|
'gap': (
|
||||||
|
responsive: true,
|
||||||
|
property: gap,
|
||||||
|
class: gap,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'row-gap': (
|
||||||
|
responsive: true,
|
||||||
|
property: row-gap,
|
||||||
|
class: row-gap,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'column-gap': (
|
||||||
|
responsive: true,
|
||||||
|
property: column-gap,
|
||||||
|
class: column-gap,
|
||||||
|
values: $spacers,
|
||||||
|
),
|
||||||
|
'bg-pattern': (
|
||||||
property: background,
|
property: background,
|
||||||
class: bg-pattern,
|
class: bg-pattern,
|
||||||
values: (
|
values: (
|
||||||
transparent: #{url-svg(
|
transparent: #{url-svg('<svg width="16" height="16" viewBox="0 0 16 16"><rect x="0" y="0" width="8" height="8" fill="rgba(130, 130, 130, .1)" /><rect x="8" y="8" width="8" height="8" fill="rgba(130, 130, 130, .1)" /></svg>')} repeat center/16px 16px,
|
||||||
'<svg width="16" height="16" viewBox="0 0 16 16"><rect x="0" y="0" width="8" height="8" fill="rgba(130, 130, 130, .1)" /><rect x="8" y="8" width="8" height="8" fill="rgba(130, 130, 130, .1)" /></svg>'
|
|
||||||
)} repeat center/16px 16px,
|
|
||||||
)
|
|
||||||
),
|
),
|
||||||
"bg-gradient": (
|
),
|
||||||
|
'bg-gradient': (
|
||||||
property: background,
|
property: background,
|
||||||
class: bg-gradient,
|
class: bg-gradient,
|
||||||
values: (
|
values: (
|
||||||
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": (
|
'bg-blur': (
|
||||||
property: backdrop-filter,
|
property: backdrop-filter,
|
||||||
class: bg-blur,
|
class: bg-blur,
|
||||||
values: (
|
values: (
|
||||||
null: blur($backdrop-blur)
|
null: blur($backdrop-blur),
|
||||||
)
|
|
||||||
),
|
),
|
||||||
"bg-gradient-direction": (
|
),
|
||||||
|
'bg-gradient-direction': (
|
||||||
property: --#{$prefix}gradient-direction,
|
property: --#{$prefix}gradient-direction,
|
||||||
class: bg-gradient,
|
class: bg-gradient,
|
||||||
values: (
|
values: (
|
||||||
@@ -131,7 +590,7 @@ $utilities: (
|
|||||||
to-ts: to top left,
|
to-ts: to top left,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"table-layout": (
|
'table-layout': (
|
||||||
property: table-layout,
|
property: table-layout,
|
||||||
class: table,
|
class: table,
|
||||||
values: (
|
values: (
|
||||||
@@ -139,4 +598,300 @@ $utilities: (
|
|||||||
fixed: fixed,
|
fixed: fixed,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
// Text
|
||||||
|
'font-family': (
|
||||||
|
property: font-family,
|
||||||
|
class: font,
|
||||||
|
values: (
|
||||||
|
monospace: var(--#{$prefix}font-monospace),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'font-size': (
|
||||||
|
property: font-size,
|
||||||
|
class: fs,
|
||||||
|
values: $font-sizes,
|
||||||
|
),
|
||||||
|
'font-style': (
|
||||||
|
property: font-style,
|
||||||
|
class: fst,
|
||||||
|
values: italic normal,
|
||||||
|
),
|
||||||
|
'font-weight': (
|
||||||
|
property: font-weight,
|
||||||
|
class: fw,
|
||||||
|
values: (
|
||||||
|
lighter: $font-weight-lighter,
|
||||||
|
light: $font-weight-light,
|
||||||
|
normal: $font-weight-normal,
|
||||||
|
medium: $font-weight-medium,
|
||||||
|
semibold: $font-weight-semibold,
|
||||||
|
bold: $font-weight-bold,
|
||||||
|
bolder: $font-weight-bolder,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'line-height': (
|
||||||
|
property: line-height,
|
||||||
|
class: lh,
|
||||||
|
values: (
|
||||||
|
1: 1,
|
||||||
|
sm: $line-height-sm,
|
||||||
|
base: $line-height-base,
|
||||||
|
lg: $line-height-lg,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'text-align': (
|
||||||
|
responsive: true,
|
||||||
|
property: text-align,
|
||||||
|
class: text,
|
||||||
|
values: (
|
||||||
|
start: left,
|
||||||
|
end: right,
|
||||||
|
center: center,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'text-decoration': (
|
||||||
|
property: text-decoration,
|
||||||
|
values: none underline line-through,
|
||||||
|
),
|
||||||
|
'text-transform': (
|
||||||
|
property: text-transform,
|
||||||
|
class: text,
|
||||||
|
values: lowercase uppercase capitalize,
|
||||||
|
),
|
||||||
|
'white-space': (
|
||||||
|
property: white-space,
|
||||||
|
class: text,
|
||||||
|
values: (
|
||||||
|
wrap: normal,
|
||||||
|
nowrap: nowrap,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'word-wrap': (
|
||||||
|
property: word-wrap word-break,
|
||||||
|
class: text,
|
||||||
|
values: (
|
||||||
|
break: break-word,
|
||||||
|
),
|
||||||
|
rtl: false,
|
||||||
|
),
|
||||||
|
'color': (
|
||||||
|
property: color,
|
||||||
|
class: text,
|
||||||
|
local-vars: (
|
||||||
|
'text-opacity': 1,
|
||||||
|
),
|
||||||
|
values: map.merge(
|
||||||
|
$utilities-text-colors,
|
||||||
|
(
|
||||||
|
'muted': var(--#{$prefix}secondary-color),
|
||||||
|
// deprecated
|
||||||
|
'black-50': rgba($black, 0.5),
|
||||||
|
// deprecated
|
||||||
|
'white-50': rgba($white, 0.5),
|
||||||
|
// deprecated
|
||||||
|
'body-secondary': var(--#{$prefix}secondary-color),
|
||||||
|
'body-tertiary': var(--#{$prefix}tertiary-color),
|
||||||
|
'body-emphasis': var(--#{$prefix}emphasis-color),
|
||||||
|
'reset': inherit,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'text-opacity': (
|
||||||
|
css-var: true,
|
||||||
|
class: text-opacity,
|
||||||
|
values: (
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'text-color': (
|
||||||
|
property: color,
|
||||||
|
class: text,
|
||||||
|
values: $utilities-text-emphasis-colors,
|
||||||
|
),
|
||||||
|
'link-opacity': (
|
||||||
|
css-var: true,
|
||||||
|
class: link-opacity,
|
||||||
|
state: hover,
|
||||||
|
values: (
|
||||||
|
10: 0.1,
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'link-offset': (
|
||||||
|
property: text-underline-offset,
|
||||||
|
class: link-offset,
|
||||||
|
state: hover,
|
||||||
|
values: (
|
||||||
|
1: 0.125em,
|
||||||
|
2: 0.25em,
|
||||||
|
3: 0.375em,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'link-underline': (
|
||||||
|
property: text-decoration-color,
|
||||||
|
class: link-underline,
|
||||||
|
local-vars: (
|
||||||
|
'link-underline-opacity': 1,
|
||||||
|
),
|
||||||
|
values: map.merge(
|
||||||
|
$utilities-links-underline,
|
||||||
|
(
|
||||||
|
null: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-underline-opacity, 1)),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'link-underline-opacity': (
|
||||||
|
css-var: true,
|
||||||
|
class: link-underline-opacity,
|
||||||
|
state: hover,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
10: 0.1,
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'background-color': (
|
||||||
|
property: background-color,
|
||||||
|
class: bg,
|
||||||
|
local-vars: (
|
||||||
|
'bg-opacity': 1,
|
||||||
|
),
|
||||||
|
values: map.merge(
|
||||||
|
$utilities-bg-colors,
|
||||||
|
(
|
||||||
|
'transparent': transparent,
|
||||||
|
'body-secondary': rgba(var(--#{$prefix}secondary-bg-rgb), var(--#{$prefix}bg-opacity)),
|
||||||
|
'body-tertiary': rgba(var(--#{$prefix}tertiary-bg-rgb), var(--#{$prefix}bg-opacity)),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'bg-opacity': (
|
||||||
|
css-var: true,
|
||||||
|
class: bg-opacity,
|
||||||
|
values: (
|
||||||
|
10: 0.1,
|
||||||
|
25: 0.25,
|
||||||
|
50: 0.5,
|
||||||
|
75: 0.75,
|
||||||
|
100: 1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'subtle-background-color': (
|
||||||
|
property: background-color,
|
||||||
|
class: bg,
|
||||||
|
values: $utilities-bg-subtle,
|
||||||
|
),
|
||||||
|
'gradient': (
|
||||||
|
property: background-image,
|
||||||
|
class: bg,
|
||||||
|
values: (
|
||||||
|
gradient: var(--#{$prefix}gradient),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'user-select': (
|
||||||
|
property: user-select,
|
||||||
|
values: all auto none,
|
||||||
|
),
|
||||||
|
'pointer-events': (
|
||||||
|
property: pointer-events,
|
||||||
|
class: pe,
|
||||||
|
values: none auto,
|
||||||
|
),
|
||||||
|
'rounded': (
|
||||||
|
property: border-radius,
|
||||||
|
class: rounded,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}border-radius),
|
||||||
|
0: 0,
|
||||||
|
1: var(--#{$prefix}border-radius-sm),
|
||||||
|
2: var(--#{$prefix}border-radius),
|
||||||
|
3: var(--#{$prefix}border-radius-lg),
|
||||||
|
4: var(--#{$prefix}border-radius-xl),
|
||||||
|
5: var(--#{$prefix}border-radius-xxl),
|
||||||
|
circle: 50%,
|
||||||
|
pill: var(--#{$prefix}border-radius-pill),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'rounded-top': (
|
||||||
|
property: border-start-start-radius border-start-end-radius,
|
||||||
|
class: rounded-top,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}border-radius),
|
||||||
|
0: 0,
|
||||||
|
1: var(--#{$prefix}border-radius-sm),
|
||||||
|
2: var(--#{$prefix}border-radius),
|
||||||
|
3: var(--#{$prefix}border-radius-lg),
|
||||||
|
4: var(--#{$prefix}border-radius-xl),
|
||||||
|
5: var(--#{$prefix}border-radius-xxl),
|
||||||
|
circle: 50%,
|
||||||
|
pill: var(--#{$prefix}border-radius-pill),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'rounded-end': (
|
||||||
|
property: border-end-end-radius border-end-start-radius,
|
||||||
|
class: rounded-end,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}border-radius),
|
||||||
|
0: 0,
|
||||||
|
1: var(--#{$prefix}border-radius-sm),
|
||||||
|
2: var(--#{$prefix}border-radius),
|
||||||
|
3: var(--#{$prefix}border-radius-lg),
|
||||||
|
4: var(--#{$prefix}border-radius-xl),
|
||||||
|
5: var(--#{$prefix}border-radius-xxl),
|
||||||
|
circle: 50%,
|
||||||
|
pill: var(--#{$prefix}border-radius-pill),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'rounded-bottom': (
|
||||||
|
property: border-end-end-radius border-end-start-radius,
|
||||||
|
class: rounded-bottom,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}border-radius),
|
||||||
|
0: 0,
|
||||||
|
1: var(--#{$prefix}border-radius-sm),
|
||||||
|
2: var(--#{$prefix}border-radius),
|
||||||
|
3: var(--#{$prefix}border-radius-lg),
|
||||||
|
4: var(--#{$prefix}border-radius-xl),
|
||||||
|
5: var(--#{$prefix}border-radius-xxl),
|
||||||
|
circle: 50%,
|
||||||
|
pill: var(--#{$prefix}border-radius-pill),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'rounded-start': (
|
||||||
|
property: border-start-start-radius border-start-end-radius,
|
||||||
|
class: rounded-start,
|
||||||
|
values: (
|
||||||
|
null: var(--#{$prefix}border-radius),
|
||||||
|
0: 0,
|
||||||
|
1: var(--#{$prefix}border-radius-sm),
|
||||||
|
2: var(--#{$prefix}border-radius),
|
||||||
|
3: var(--#{$prefix}border-radius-lg),
|
||||||
|
4: var(--#{$prefix}border-radius-xl),
|
||||||
|
5: var(--#{$prefix}border-radius-xxl),
|
||||||
|
circle: 50%,
|
||||||
|
pill: var(--#{$prefix}border-radius-pill),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'visibility': (
|
||||||
|
property: visibility,
|
||||||
|
class: null,
|
||||||
|
values: (
|
||||||
|
visible: visible,
|
||||||
|
invisible: hidden,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'z-index': (
|
||||||
|
property: z-index,
|
||||||
|
class: z,
|
||||||
|
values: $zindex-levels,
|
||||||
|
),
|
||||||
) !default;
|
) !default;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@use "sass:color";
|
@use 'sass:color';
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dark mode
|
// Dark mode
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
$darken-dark: color.adjust($dark, $lightness: -2%) !default;
|
$darken-dark: color.adjust($dark, $lightness: -2%) !default;
|
||||||
$lighten-dark: color.adjust($dark, $lightness: 2%) !default;
|
$lighten-dark: color.adjust($dark, $lightness: 2%) !default;
|
||||||
$border-color-dark: color.adjust($dark, $lightness: 8%) !default;
|
$border-color-dark: color.adjust($dark, $lightness: 8%) !default;
|
||||||
$border-color-translucent-dark: rgba(72, 110, 149, .14) !default;
|
$border-color-translucent-dark: rgba(128, 150, 172, 0.2) !default;
|
||||||
$border-dark-color-dark: color.adjust($dark, $lightness: 4%) !default;
|
$border-dark-color-dark: color.adjust($dark, $lightness: 4%) !default;
|
||||||
$border-active-color-dark: color.adjust($dark, $lightness: 12%) !default;
|
$border-active-color-dark: color.adjust($dark, $lightness: 12%) !default;
|
||||||
|
|
||||||
@@ -17,3 +17,96 @@ $body-emphasis-color-dark: $white !default;
|
|||||||
$code-color-dark: var(--#{$prefix}gray-300) !default;
|
$code-color-dark: var(--#{$prefix}gray-300) !default;
|
||||||
$text-secondary-dark: rgba(153, 159, 164, 1) !default;
|
$text-secondary-dark: rgba(153, 159, 164, 1) !default;
|
||||||
|
|
||||||
|
// Theme text emphasis dark
|
||||||
|
$primary-text-emphasis-dark: tint-color($primary, 40%) !default;
|
||||||
|
$secondary-text-emphasis-dark: tint-color($secondary, 40%) !default;
|
||||||
|
$success-text-emphasis-dark: tint-color($success, 40%) !default;
|
||||||
|
$info-text-emphasis-dark: tint-color($info, 40%) !default;
|
||||||
|
$warning-text-emphasis-dark: tint-color($warning, 40%) !default;
|
||||||
|
$danger-text-emphasis-dark: tint-color($danger, 40%) !default;
|
||||||
|
$light-text-emphasis-dark: $gray-100 !default;
|
||||||
|
$dark-text-emphasis-dark: $gray-300 !default;
|
||||||
|
|
||||||
|
// Theme bg subtle dark
|
||||||
|
$primary-bg-subtle-dark: shade-color($primary, 80%) !default;
|
||||||
|
$secondary-bg-subtle-dark: shade-color($secondary, 80%) !default;
|
||||||
|
$success-bg-subtle-dark: shade-color($success, 80%) !default;
|
||||||
|
$info-bg-subtle-dark: shade-color($info, 80%) !default;
|
||||||
|
$warning-bg-subtle-dark: shade-color($warning, 80%) !default;
|
||||||
|
$danger-bg-subtle-dark: shade-color($danger, 80%) !default;
|
||||||
|
$light-bg-subtle-dark: $gray-800 !default;
|
||||||
|
$dark-bg-subtle-dark: color.mix($gray-800, $black) !default;
|
||||||
|
|
||||||
|
// Theme border subtle dark
|
||||||
|
$primary-border-subtle-dark: shade-color($primary, 40%) !default;
|
||||||
|
$secondary-border-subtle-dark: shade-color($secondary, 40%) !default;
|
||||||
|
$success-border-subtle-dark: shade-color($success, 40%) !default;
|
||||||
|
$info-border-subtle-dark: shade-color($info, 40%) !default;
|
||||||
|
$warning-border-subtle-dark: shade-color($warning, 40%) !default;
|
||||||
|
$danger-border-subtle-dark: shade-color($danger, 40%) !default;
|
||||||
|
$light-border-subtle-dark: $gray-700 !default;
|
||||||
|
$dark-border-subtle-dark: $gray-800 !default;
|
||||||
|
|
||||||
|
// Body dark
|
||||||
|
$body-bg-dark: $gray-900 !default;
|
||||||
|
$body-secondary-color-dark: rgba($body-color-dark, 0.75) !default;
|
||||||
|
$body-secondary-bg-dark: $gray-800 !default;
|
||||||
|
$body-tertiary-color-dark: rgba($body-color-dark, 0.5) !default;
|
||||||
|
$body-tertiary-bg-dark: color.mix($gray-800, $gray-900, 50%) !default;
|
||||||
|
|
||||||
|
// Headings dark
|
||||||
|
$headings-color-dark: inherit !default;
|
||||||
|
|
||||||
|
// Link dark
|
||||||
|
$link-color-dark: tint-color($primary, 40%) !default;
|
||||||
|
$link-hover-color-dark: shift-color($link-color-dark, -$link-shade-percentage) !default;
|
||||||
|
|
||||||
|
// Mark dark
|
||||||
|
$mark-color-dark: $body-color-dark !default;
|
||||||
|
$mark-bg-dark: shade-color($yellow, 60%) !default;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Forms dark
|
||||||
|
//
|
||||||
|
|
||||||
|
$form-select-indicator-color-dark: $body-color-dark !default;
|
||||||
|
$form-select-indicator-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color-dark}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
|
||||||
|
|
||||||
|
$form-switch-color-dark: rgba($white, 0.25) !default;
|
||||||
|
$form-switch-bg-image-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color-dark}'/></svg>") !default;
|
||||||
|
|
||||||
|
// Form validation colors dark
|
||||||
|
$form-valid-color-dark: tint-color($green, 40%) !default;
|
||||||
|
$form-valid-border-color-dark: tint-color($green, 40%) !default;
|
||||||
|
$form-invalid-color-dark: tint-color($red, 40%) !default;
|
||||||
|
$form-invalid-border-color-dark: tint-color($red, 40%) !default;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Accordion dark
|
||||||
|
//
|
||||||
|
|
||||||
|
$accordion-icon-color-dark: $primary-text-emphasis-dark !default;
|
||||||
|
$accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
|
||||||
|
|
||||||
|
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
|
||||||
|
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Carousel dark
|
||||||
|
//
|
||||||
|
|
||||||
|
$carousel-dark-indicator-active-bg: $black !default; // Deprecated in v5.3.4
|
||||||
|
$carousel-dark-caption-color: $black !default; // Deprecated in v5.3.4
|
||||||
|
$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in v5.3.4
|
||||||
|
|
||||||
|
$carousel-indicator-active-bg-dark: $carousel-dark-indicator-active-bg !default;
|
||||||
|
$carousel-caption-color-dark: $carousel-dark-caption-color !default;
|
||||||
|
$carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !default;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Close button dark
|
||||||
|
//
|
||||||
|
|
||||||
|
$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; // Deprecated in v5.3.4
|
||||||
|
|
||||||
|
$btn-close-filter-dark: $btn-close-white-filter !default;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user