diff --git a/package-lock.json b/package-lock.json index e28e027..f547e8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,20 +9,20 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@mdi/font": "^5.9.55", - "apexcharts": "^3.28.1", - "bootstrap": "^5.1.0", - "bootstrap-icons": "^1.5.0", - "dropzone": "^5.9.2", + "@mdi/font": "^6.5.95", + "apexcharts": "^3.30.0", + "bootstrap": "^5.1.3", + "bootstrap-icons": "^1.7.1", + "dropzone": "^5.9.3", "feather-icons": "^4.28.0", "jquery": "^3.6.0", "jquery-slimscroll": "^1.3.8", - "prismjs": "^1.24.1" + "prismjs": "^1.25.0" }, "devDependencies": { - "autoprefixer": "^10.3.3", - "browser-sync": "^2.27.5", - "cssnano": "^5.0.8", + "autoprefixer": "^10.4.0", + "browser-sync": "^2.27.7", + "cssnano": "^5.0.11", "del": "^6.0.0", "gulp": "^4.0.2", "gulp-autoprefixer": "^8.0.0", @@ -33,11 +33,11 @@ "gulp-postcss": "^9.0.1", "gulp-replace": "^1.1.3", "gulp-sass": "^5.0.0", - "gulp-terser": "^2.0.1", + "gulp-terser": "^2.1.0", "gulp-useref": "^5.0.0", "node-sass": "^6.0.1", - "postcss": "^8.3.6", - "sass": "^1.38.2" + "postcss": "^8.3.11", + "sass": "^1.43.4" } }, "node_modules/@babel/code-frame": { @@ -138,9 +138,9 @@ } }, "node_modules/@mdi/font": { - "version": "5.9.55", - "resolved": "https://registry.npmjs.org/@mdi/font/-/font-5.9.55.tgz", - "integrity": "sha512-jswRF6q3eq8NWpWiqct6q+6Fg/I7nUhrxYJfiEM8JJpap0wVJLQdbKtyS65GdlK7S7Ytnx3TTi/bmw+tBhkGmg==" + "version": "6.5.95", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-6.5.95.tgz", + "integrity": "sha512-ES5rj6J39FUkHe/b3C9SJs8bqIungYhuU7rBINTBaHOv/Ce4RCb3Gw08CZVl32W33UEkgRkzyWaIedV4at+QHg==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -178,9 +178,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", - "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", + "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==", "peer": true, "funding": { "type": "opencollective", @@ -188,9 +188,9 @@ } }, "node_modules/@trysound/sax": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", - "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, "engines": { "node": ">=10.13.0" @@ -364,9 +364,9 @@ } }, "node_modules/apexcharts": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.28.1.tgz", - "integrity": "sha512-5M1KitI/XmY2Sx6ih9vQOXyQUTmotDG/cML2N6bkBlVseF10RPSzM7dkrf7Y68apSZF6e7J581gXXu1+qkLhCA==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.30.0.tgz", + "integrity": "sha512-NHhFjkd4sqoQqHi+ECN/duVCRvqVZMdXX/UBzCs1xriq8NbNLvs+nIM8OXH1Siv+W50FrK1uTDZrW2cLsKWhBQ==", "dependencies": { "svg.draggable.js": "^2.2.2", "svg.easing.js": "^2.0.0", @@ -681,16 +681,16 @@ } }, "node_modules/autoprefixer": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.3.tgz", - "integrity": "sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", + "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", "dev": true, "dependencies": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.5", + "caniuse-lite": "^1.0.30001272", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", "postcss-value-parser": "^4.1.0" }, "bin": { @@ -908,21 +908,21 @@ "dev": true }, "node_modules/bootstrap": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.0.tgz", - "integrity": "sha512-bs74WNI9BgBo3cEovmdMHikSKoXnDgA6VQjJ7TyTotU6L7d41ZyCEEelPwkYEzsG/Zjv3ie9IE3EMAje0W9Xew==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "funding": { "type": "opencollective", "url": "https://opencollective.com/bootstrap" }, "peerDependencies": { - "@popperjs/core": "^2.9.3" + "@popperjs/core": "^2.10.2" } }, "node_modules/bootstrap-icons": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.5.0.tgz", - "integrity": "sha512-44feMc7DE1Ccpsas/1wioN8ewFJNquvi5FewA06wLnqct7CwMdGDVy41ieHaacogzDqLfG8nADIvMNp9e4bfbA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz", + "integrity": "sha512-Hkuoo0qrWegA9cdzwS68YPSOLf7d42gqnMzT1tIy/SWvnxnI+Y5PFvK2qIbM/L7knH8SdC8FPgjA+bktzmGcAw==", "engines": { "node": ">=10" } @@ -950,13 +950,13 @@ } }, "node_modules/browser-sync": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.5.tgz", - "integrity": "sha512-0GMEPDqccbTxwYOUGCk5AZloDj9I/1eDZCLXUKXu7iBJPznGGOnMHs88mrhaFL0fTA0R23EmsXX9nLZP+k5YzA==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.7.tgz", + "integrity": "sha512-9ElnnA/u+s2Jd+IgY+2SImB+sAEIteHsMG0NR96m7Ph/wztpvJCUpyC2on1KqmG9iAp941j+5jfmd34tEguGbg==", "dev": true, "dependencies": { - "browser-sync-client": "^2.27.5", - "browser-sync-ui": "^2.27.5", + "browser-sync-client": "^2.27.7", + "browser-sync-ui": "^2.27.7", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", "chokidar": "^3.5.1", @@ -983,7 +983,7 @@ "serve-static": "1.13.2", "server-destroy": "1.0.1", "socket.io": "2.4.0", - "ua-parser-js": "^0.7.28", + "ua-parser-js": "1.0.2", "yargs": "^15.4.1" }, "bin": { @@ -994,9 +994,9 @@ } }, "node_modules/browser-sync-client": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.5.tgz", - "integrity": "sha512-l2jtf60/exv0fQiZkhi3z8RgexYYLGS7DVDnyepkrp+oFAPlKW69daL6NrVSgrwu6lzSTCCTAiPXnUSrQ57e/Q==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.7.tgz", + "integrity": "sha512-wKg9UP9a4sCIkBBAXUdbkdWFJzfSAQizGh+nC19W9y9zOo9s5jqeYRFUUbs7x5WKhjtspT+xetVp9AtBJ6BmWg==", "dev": true, "dependencies": { "etag": "1.8.1", @@ -1009,9 +1009,9 @@ } }, "node_modules/browser-sync-ui": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.5.tgz", - "integrity": "sha512-KxBJhQ6XNbQ8w8UlkPa9/J5R0nBHgHuJUtDpEXQx1jBapDy32WGzD0NENDozP4zGNvJUgZk3N80hqB7YCieC3g==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.7.tgz", + "integrity": "sha512-Bt4OQpx9p18OIzk0KKyu7jqlvmjacasUlk8ARY3uuIyiFWSBiRgr2i6XY8dEMF14DtbooaEBOpHEu9VCYvMcCw==", "dev": true, "dependencies": { "async-each-series": "0.1.1", @@ -1023,16 +1023,16 @@ } }, "node_modules/browserslist": { - "version": "4.16.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", - "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001251", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.811", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -1153,9 +1153,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001252", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", - "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", "dev": true, "funding": { "type": "opencollective", @@ -1386,15 +1386,9 @@ } }, "node_modules/colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", - "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", + "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", "dev": true }, "node_modules/combined-stream": { @@ -1564,19 +1558,10 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "node_modules/css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/css-declaration-sorter": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz", - "integrity": "sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", + "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", "dev": true, "dependencies": { "timsort": "^0.3.0" @@ -1618,9 +1603,9 @@ } }, "node_modules/css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true, "engines": { "node": ">= 6" @@ -1642,12 +1627,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", - "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.11.tgz", + "integrity": "sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.1.4", + "cssnano-preset-default": "^5.1.7", "is-resolvable": "^1.1.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" @@ -1664,25 +1649,25 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", - "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz", + "integrity": "sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^2.0.1", "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", + "postcss-colormin": "^5.2.1", + "postcss-convert-values": "^5.0.2", "postcss-discard-comments": "^5.0.1", "postcss-discard-duplicates": "^5.0.1", "postcss-discard-empty": "^5.0.1", "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", + "postcss-merge-longhand": "^5.0.4", + "postcss-merge-rules": "^5.0.3", "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.2", - "postcss-minify-params": "^5.0.1", + "postcss-minify-gradients": "^5.0.3", + "postcss-minify-params": "^5.0.2", "postcss-minify-selectors": "^5.1.0", "postcss-normalize-charset": "^5.0.1", "postcss-normalize-display-values": "^5.0.1", @@ -1691,13 +1676,13 @@ "postcss-normalize-string": "^5.0.1", "postcss-normalize-timing-functions": "^5.0.1", "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", + "postcss-normalize-url": "^5.0.3", "postcss-normalize-whitespace": "^5.0.1", "postcss-ordered-values": "^5.0.2", "postcss-reduce-initial": "^5.0.1", "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" + "postcss-svgo": "^5.0.3", + "postcss-unique-selectors": "^5.0.2" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -2041,9 +2026,9 @@ } }, "node_modules/dropzone": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.9.2.tgz", - "integrity": "sha512-5t2z51DzIsWDbTpwcJIvUlwxBbvcwdCApz0yb9ecKJwG155Xm92KMEZmHW1B0MzoXOKvFwdd0nPu5cpeVcvPHQ==" + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.9.3.tgz", + "integrity": "sha512-Azk8kD/2/nJIuVPK+zQ9sjKMRIpRvNyqn9XwbBHNq+iNuSccbJS6hwm1Woy0pMST0erSo0u4j+KJaodndDk4vA==" }, "node_modules/duplexer": { "version": "0.1.2", @@ -2114,9 +2099,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.826", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.826.tgz", - "integrity": "sha512-bpLc4QU4B8PYmdO4MSu2ZBTMD8lAaEXRS43C09lB31BvYwuk9UxgBRXbY5OJBw7VuMGcg2MZG5FyTaP9u4PQnw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz", + "integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==", "dev": true }, "node_modules/emoji-regex": { @@ -3838,13 +3823,13 @@ } }, "node_modules/gulp-terser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.0.1.tgz", - "integrity": "sha512-XCrnCXP8ovNpgLK9McJIXlgm0j3W2TsiWu7K9y3m+Sn5XZgUzi6U8MPHtS3NdLMic9poCj695N0ARJ2B6atypw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.1.0.tgz", + "integrity": "sha512-lQ3+JUdHDVISAlUIUSZ/G9Dz/rBQHxOiYDQ70IVWFQeh4b33TC1MCIU+K18w07PS3rq/CVc34aQO4SUbdaNMPQ==", "dev": true, "dependencies": { "plugin-error": "^1.0.1", - "terser": "5.4.0", + "terser": "^5.9.0", "through2": "^4.0.2", "vinyl-sourcemaps-apply": "^0.2.1" }, @@ -5651,9 +5636,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5700,9 +5685,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/node-sass": { @@ -5914,9 +5899,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" @@ -6357,6 +6342,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -6438,13 +6429,13 @@ } }, "node_modules/postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", "dev": true, "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", "source-map-js": "^0.6.2" }, "engines": { @@ -6469,14 +6460,14 @@ } }, "node_modules/postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz", + "integrity": "sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==", "dev": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "colord": "^2.0.1", + "colord": "^2.9.1", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -6487,9 +6478,9 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", + "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.1.0" @@ -6576,12 +6567,11 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", + "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", "dev": true, "dependencies": { - "css-color-names": "^1.0.1", "postcss-value-parser": "^4.1.0", "stylehacks": "^5.0.1" }, @@ -6593,16 +6583,15 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", + "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", "dev": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" + "postcss-selector-parser": "^6.0.5" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6627,12 +6616,12 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", - "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", + "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", "dev": true, "dependencies": { - "colord": "^2.6", + "colord": "^2.9.1", "cssnano-utils": "^2.0.1", "postcss-value-parser": "^4.1.0" }, @@ -6644,16 +6633,15 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", + "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", "dev": true, "dependencies": { "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" + "postcss-value-parser": "^4.1.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6785,9 +6773,9 @@ } }, "node_modules/postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", + "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", "dev": true, "dependencies": { "is-absolute-url": "^3.0.3", @@ -6878,13 +6866,13 @@ } }, "node_modules/postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", + "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" + "svgo": "^2.7.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6894,14 +6882,13 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", + "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", "dev": true, "dependencies": { "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" + "postcss-selector-parser": "^6.0.5" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6926,9 +6913,9 @@ } }, "node_modules/prismjs": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", - "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", + "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" }, "node_modules/process-nextick-args": { "version": "2.0.1", @@ -7491,9 +7478,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.38.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.2.tgz", - "integrity": "sha512-Bz1fG6qiyF0FX6m/I+VxtdVKz1Dfmg/e9kfDy2PhWOkq3T384q2KxwIfP0fXpeI+EyyETdOauH+cRHQDFASllA==", + "version": "1.43.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", + "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0" @@ -8237,9 +8224,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -8637,17 +8624,17 @@ } }, "node_modules/svgo": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.5.0.tgz", - "integrity": "sha512-FSdBOOo271VyF/qZnOn1PgwCdt1v4Dx0Sey+U1jgqm1vqRYjPGdip0RGrFW6ItwtkBB8rHgHk26dlVr0uCs82Q==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, "dependencies": { - "@trysound/sax": "0.1.1", - "colorette": "^1.3.0", + "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { @@ -8724,20 +8711,28 @@ } }, "node_modules/terser": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.4.0.tgz", - "integrity": "sha512-3dZunFLbCJis9TAF2VnX+VrQLctRUmt1p3W2kCsJuZE4ZgWqh//+1MZ62EanewrqKoUf4zIaDGZAvml4UDc0OQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } } }, "node_modules/terser/node_modules/source-map": { @@ -8983,9 +8978,9 @@ "dev": true }, "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", "dev": true, "funding": [ { @@ -9055,12 +9050,6 @@ "node": ">=0.10.0" } }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "node_modules/unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -9243,16 +9232,6 @@ "node": ">= 0.10" } }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -9750,9 +9729,9 @@ } }, "@mdi/font": { - "version": "5.9.55", - "resolved": "https://registry.npmjs.org/@mdi/font/-/font-5.9.55.tgz", - "integrity": "sha512-jswRF6q3eq8NWpWiqct6q+6Fg/I7nUhrxYJfiEM8JJpap0wVJLQdbKtyS65GdlK7S7Ytnx3TTi/bmw+tBhkGmg==" + "version": "6.5.95", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-6.5.95.tgz", + "integrity": "sha512-ES5rj6J39FUkHe/b3C9SJs8bqIungYhuU7rBINTBaHOv/Ce4RCb3Gw08CZVl32W33UEkgRkzyWaIedV4at+QHg==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -9781,15 +9760,15 @@ } }, "@popperjs/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", - "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", + "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==", "peer": true }, "@trysound/sax": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", - "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true }, "@types/expect": { @@ -9929,9 +9908,9 @@ } }, "apexcharts": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.28.1.tgz", - "integrity": "sha512-5M1KitI/XmY2Sx6ih9vQOXyQUTmotDG/cML2N6bkBlVseF10RPSzM7dkrf7Y68apSZF6e7J581gXXu1+qkLhCA==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.30.0.tgz", + "integrity": "sha512-NHhFjkd4sqoQqHi+ECN/duVCRvqVZMdXX/UBzCs1xriq8NbNLvs+nIM8OXH1Siv+W50FrK1uTDZrW2cLsKWhBQ==", "requires": { "svg.draggable.js": "^2.2.2", "svg.easing.js": "^2.0.0", @@ -10177,16 +10156,16 @@ "dev": true }, "autoprefixer": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.3.tgz", - "integrity": "sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", + "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", "dev": true, "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.5", + "caniuse-lite": "^1.0.30001272", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", "postcss-value-parser": "^4.1.0" } }, @@ -10357,15 +10336,15 @@ "dev": true }, "bootstrap": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.0.tgz", - "integrity": "sha512-bs74WNI9BgBo3cEovmdMHikSKoXnDgA6VQjJ7TyTotU6L7d41ZyCEEelPwkYEzsG/Zjv3ie9IE3EMAje0W9Xew==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "requires": {} }, "bootstrap-icons": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.5.0.tgz", - "integrity": "sha512-44feMc7DE1Ccpsas/1wioN8ewFJNquvi5FewA06wLnqct7CwMdGDVy41ieHaacogzDqLfG8nADIvMNp9e4bfbA==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz", + "integrity": "sha512-Hkuoo0qrWegA9cdzwS68YPSOLf7d42gqnMzT1tIy/SWvnxnI+Y5PFvK2qIbM/L7knH8SdC8FPgjA+bktzmGcAw==" }, "brace-expansion": { "version": "1.1.11", @@ -10387,13 +10366,13 @@ } }, "browser-sync": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.5.tgz", - "integrity": "sha512-0GMEPDqccbTxwYOUGCk5AZloDj9I/1eDZCLXUKXu7iBJPznGGOnMHs88mrhaFL0fTA0R23EmsXX9nLZP+k5YzA==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.7.tgz", + "integrity": "sha512-9ElnnA/u+s2Jd+IgY+2SImB+sAEIteHsMG0NR96m7Ph/wztpvJCUpyC2on1KqmG9iAp941j+5jfmd34tEguGbg==", "dev": true, "requires": { - "browser-sync-client": "^2.27.5", - "browser-sync-ui": "^2.27.5", + "browser-sync-client": "^2.27.7", + "browser-sync-ui": "^2.27.7", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", "chokidar": "^3.5.1", @@ -10420,14 +10399,14 @@ "serve-static": "1.13.2", "server-destroy": "1.0.1", "socket.io": "2.4.0", - "ua-parser-js": "^0.7.28", + "ua-parser-js": "1.0.2", "yargs": "^15.4.1" } }, "browser-sync-client": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.5.tgz", - "integrity": "sha512-l2jtf60/exv0fQiZkhi3z8RgexYYLGS7DVDnyepkrp+oFAPlKW69daL6NrVSgrwu6lzSTCCTAiPXnUSrQ57e/Q==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.7.tgz", + "integrity": "sha512-wKg9UP9a4sCIkBBAXUdbkdWFJzfSAQizGh+nC19W9y9zOo9s5jqeYRFUUbs7x5WKhjtspT+xetVp9AtBJ6BmWg==", "dev": true, "requires": { "etag": "1.8.1", @@ -10437,9 +10416,9 @@ } }, "browser-sync-ui": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.5.tgz", - "integrity": "sha512-KxBJhQ6XNbQ8w8UlkPa9/J5R0nBHgHuJUtDpEXQx1jBapDy32WGzD0NENDozP4zGNvJUgZk3N80hqB7YCieC3g==", + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.7.tgz", + "integrity": "sha512-Bt4OQpx9p18OIzk0KKyu7jqlvmjacasUlk8ARY3uuIyiFWSBiRgr2i6XY8dEMF14DtbooaEBOpHEu9VCYvMcCw==", "dev": true, "requires": { "async-each-series": "0.1.1", @@ -10451,16 +10430,16 @@ } }, "browserslist": { - "version": "4.16.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", - "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001251", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.811", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "bs-recipes": { @@ -10550,9 +10529,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001252", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", - "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", "dev": true }, "caseless": { @@ -10736,15 +10715,9 @@ "dev": true }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==", - "dev": true - }, - "colorette": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", - "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", + "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", "dev": true }, "combined-stream": { @@ -10892,16 +10865,10 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true - }, "css-declaration-sorter": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz", - "integrity": "sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", + "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", "dev": true, "requires": { "timsort": "^0.3.0" @@ -10931,9 +10898,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true }, "cssesc": { @@ -10943,37 +10910,37 @@ "dev": true }, "cssnano": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", - "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.11.tgz", + "integrity": "sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.4", + "cssnano-preset-default": "^5.1.7", "is-resolvable": "^1.1.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", - "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz", + "integrity": "sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA==", "dev": true, "requires": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^2.0.1", "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", + "postcss-colormin": "^5.2.1", + "postcss-convert-values": "^5.0.2", "postcss-discard-comments": "^5.0.1", "postcss-discard-duplicates": "^5.0.1", "postcss-discard-empty": "^5.0.1", "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", + "postcss-merge-longhand": "^5.0.4", + "postcss-merge-rules": "^5.0.3", "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.2", - "postcss-minify-params": "^5.0.1", + "postcss-minify-gradients": "^5.0.3", + "postcss-minify-params": "^5.0.2", "postcss-minify-selectors": "^5.1.0", "postcss-normalize-charset": "^5.0.1", "postcss-normalize-display-values": "^5.0.1", @@ -10982,13 +10949,13 @@ "postcss-normalize-string": "^5.0.1", "postcss-normalize-timing-functions": "^5.0.1", "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", + "postcss-normalize-url": "^5.0.3", "postcss-normalize-whitespace": "^5.0.1", "postcss-ordered-values": "^5.0.2", "postcss-reduce-initial": "^5.0.1", "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" + "postcss-svgo": "^5.0.3", + "postcss-unique-selectors": "^5.0.2" } }, "cssnano-utils": { @@ -11243,9 +11210,9 @@ } }, "dropzone": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.9.2.tgz", - "integrity": "sha512-5t2z51DzIsWDbTpwcJIvUlwxBbvcwdCApz0yb9ecKJwG155Xm92KMEZmHW1B0MzoXOKvFwdd0nPu5cpeVcvPHQ==" + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.9.3.tgz", + "integrity": "sha512-Azk8kD/2/nJIuVPK+zQ9sjKMRIpRvNyqn9XwbBHNq+iNuSccbJS6hwm1Woy0pMST0erSo0u4j+KJaodndDk4vA==" }, "duplexer": { "version": "0.1.2", @@ -11310,9 +11277,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.826", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.826.tgz", - "integrity": "sha512-bpLc4QU4B8PYmdO4MSu2ZBTMD8lAaEXRS43C09lB31BvYwuk9UxgBRXbY5OJBw7VuMGcg2MZG5FyTaP9u4PQnw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz", + "integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==", "dev": true }, "emoji-regex": { @@ -12872,13 +12839,13 @@ } }, "gulp-terser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.0.1.tgz", - "integrity": "sha512-XCrnCXP8ovNpgLK9McJIXlgm0j3W2TsiWu7K9y3m+Sn5XZgUzi6U8MPHtS3NdLMic9poCj695N0ARJ2B6atypw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.1.0.tgz", + "integrity": "sha512-lQ3+JUdHDVISAlUIUSZ/G9Dz/rBQHxOiYDQ70IVWFQeh4b33TC1MCIU+K18w07PS3rq/CVc34aQO4SUbdaNMPQ==", "dev": true, "requires": { "plugin-error": "^1.0.1", - "terser": "5.4.0", + "terser": "^5.9.0", "through2": "^4.0.2", "vinyl-sourcemaps-apply": "^0.2.1" }, @@ -14214,9 +14181,9 @@ "dev": true }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", "dev": true }, "nanomatch": { @@ -14251,9 +14218,9 @@ "dev": true }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node-sass": { @@ -14411,9 +14378,9 @@ } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -14745,6 +14712,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -14801,13 +14774,13 @@ "dev": true }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", "dev": true, "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", "source-map-js": "^0.6.2" } }, @@ -14822,21 +14795,21 @@ } }, "postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz", + "integrity": "sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "colord": "^2.0.1", + "colord": "^2.9.1", "postcss-value-parser": "^4.1.0" } }, "postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", + "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", "dev": true, "requires": { "postcss-value-parser": "^4.1.0" @@ -14882,27 +14855,25 @@ } }, "postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", + "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", "dev": true, "requires": { - "css-color-names": "^1.0.1", "postcss-value-parser": "^4.1.0", "stylehacks": "^5.0.1" } }, "postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", + "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" + "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { @@ -14915,27 +14886,26 @@ } }, "postcss-minify-gradients": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", - "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", + "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", "dev": true, "requires": { - "colord": "^2.6", + "colord": "^2.9.1", "cssnano-utils": "^2.0.1", "postcss-value-parser": "^4.1.0" } }, "postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", + "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" + "postcss-value-parser": "^4.1.0" } }, "postcss-minify-selectors": { @@ -15014,9 +14984,9 @@ } }, "postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", + "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", "dev": true, "requires": { "is-absolute-url": "^3.0.3", @@ -15074,24 +15044,23 @@ } }, "postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", + "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", "dev": true, "requires": { "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" + "svgo": "^2.7.0" } }, "postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", + "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" + "postcss-selector-parser": "^6.0.5" } }, "postcss-value-parser": { @@ -15107,9 +15076,9 @@ "dev": true }, "prismjs": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", - "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", + "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" }, "process-nextick-args": { "version": "2.0.1", @@ -15552,9 +15521,9 @@ "dev": true }, "sass": { - "version": "1.38.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.2.tgz", - "integrity": "sha512-Bz1fG6qiyF0FX6m/I+VxtdVKz1Dfmg/e9kfDy2PhWOkq3T384q2KxwIfP0fXpeI+EyyETdOauH+cRHQDFASllA==", + "version": "1.43.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", + "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0" @@ -16192,9 +16161,9 @@ } }, "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -16515,17 +16484,17 @@ } }, "svgo": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.5.0.tgz", - "integrity": "sha512-FSdBOOo271VyF/qZnOn1PgwCdt1v4Dx0Sey+U1jgqm1vqRYjPGdip0RGrFW6ItwtkBB8rHgHk26dlVr0uCs82Q==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, "requires": { - "@trysound/sax": "0.1.1", - "colorette": "^1.3.0", + "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "picocolors": "^1.0.0", "stable": "^0.1.8" }, "dependencies": { @@ -16591,14 +16560,14 @@ } }, "terser": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.4.0.tgz", - "integrity": "sha512-3dZunFLbCJis9TAF2VnX+VrQLctRUmt1p3W2kCsJuZE4ZgWqh//+1MZ62EanewrqKoUf4zIaDGZAvml4UDc0OQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "dependencies": { "source-map": { @@ -16800,9 +16769,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", "dev": true }, "unc-path-regex": { @@ -16847,12 +16816,6 @@ "set-value": "^2.0.1" } }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -16997,12 +16960,6 @@ "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", "dev": true }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", diff --git a/package.json b/package.json index 3547348..bd0b8fa 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,9 @@ }, "homepage": "https://github.com/codescandy/Dash-UI#readme", "devDependencies": { - "autoprefixer": "^10.3.3", - "browser-sync": "^2.27.5", - "cssnano": "^5.0.8", + "autoprefixer": "^10.4.0", + "browser-sync": "^2.27.7", + "cssnano": "^5.0.11", "del": "^6.0.0", "gulp": "^4.0.2", "gulp-autoprefixer": "^8.0.0", @@ -47,21 +47,21 @@ "gulp-postcss": "^9.0.1", "gulp-replace": "^1.1.3", "gulp-sass": "^5.0.0", - "gulp-terser": "^2.0.1", + "gulp-terser": "^2.1.0", "gulp-useref": "^5.0.0", "node-sass": "^6.0.1", - "postcss": "^8.3.6", - "sass": "^1.38.2" + "postcss": "^8.3.11", + "sass": "^1.43.4" }, "dependencies": { - "@mdi/font": "^5.9.55", - "apexcharts": "^3.28.1", - "bootstrap": "^5.1.0", - "bootstrap-icons": "^1.5.0", - "dropzone": "^5.9.2", + "@mdi/font": "^6.5.95", + "apexcharts": "^3.30.0", + "bootstrap": "^5.1.3", + "bootstrap-icons": "^1.7.1", + "dropzone": "^5.9.3", "feather-icons": "^4.28.0", "jquery": "^3.6.0", "jquery-slimscroll": "^1.3.8", - "prismjs": "^1.24.1" + "prismjs": "^1.25.0" } } diff --git a/src/assets/css/theme.css b/src/assets/css/theme.css index 326f809..2c3638d 100644 --- a/src/assets/css/theme.css +++ b/src/assets/css/theme.css @@ -17,7 +17,7 @@ } .bg-gray-400 { - background-color: #ced4da; + background-color: #C4CDD5; } .smooth-shadow-sm { @@ -121,7 +121,7 @@ } .border-dashed { - border: 1px dashed #dee2e6 !important; + border: 1px dashed #DFE3E8 !important; } .divider { @@ -130,7 +130,7 @@ } .divider::after, .divider::before { flex: 1 1 0%; - border-top: 0.0625rem solid #ced4da; + border-top: 0.0625rem solid #C4CDD5; content: ""; margin-top: 0.0625rem; } @@ -203,7 +203,7 @@ h4, } .text-inherit { - color: #212529; + color: #161C24; } .text-primary-hover:hover { @@ -211,7 +211,7 @@ h4, } /*! - * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Bootstrap v5.1.3 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) @@ -228,25 +228,25 @@ h4, --bs-teal: #20c997; --bs-cyan: #0dcaf0; --bs-white: #fff; - --bs-gray: #6c757d; - --bs-gray-dark: #343a40; - --bs-gray-100: #f8f9fa; - --bs-gray-200: #e9ecef; - --bs-gray-300: #dee2e6; - --bs-gray-400: #ced4da; - --bs-gray-500: #adb5bd; - --bs-gray-600: #6c757d; - --bs-gray-700: #495057; - --bs-gray-800: #343a40; - --bs-gray-900: #212529; + --bs-gray: #637381; + --bs-gray-dark: #212B36; + --bs-gray-100: #F9FAFB; + --bs-gray-200: #F4F6F8; + --bs-gray-300: #DFE3E8; + --bs-gray-400: #C4CDD5; + --bs-gray-500: #919EAB; + --bs-gray-600: #637381; + --bs-gray-700: #454F5B; + --bs-gray-800: #212B36; + --bs-gray-900: #161C24; --bs-primary: #624BFF; - --bs-secondary: #6c757d; + --bs-secondary: #637381; --bs-success: #198754; --bs-info: #0dcaf0; --bs-warning: #ffc107; --bs-danger: #dc3545; - --bs-light: #f8f9fa; - --bs-dark: #212529; + --bs-light: #F9FAFB; + --bs-dark: #212B36; --bs-white: #fff; --bs-light-primary: #E0DCFE; --bs-light-danger: #FBEBEC; @@ -262,13 +262,13 @@ h4, --bs-dark-success: #139a74; --bs-dark-secondary: #5c596d; --bs-primary-rgb: 98, 75, 255; - --bs-secondary-rgb: 108, 117, 125; + --bs-secondary-rgb: 99, 115, 129; --bs-success-rgb: 25, 135, 84; --bs-info-rgb: 13, 202, 240; --bs-warning-rgb: 255, 193, 7; --bs-danger-rgb: 220, 53, 69; - --bs-light-rgb: 248, 249, 250; - --bs-dark-rgb: 33, 37, 41; + --bs-light-rgb: 249, 250, 251; + --bs-dark-rgb: 33, 43, 54; --bs-white-rgb: 255, 255, 255; --bs-light-primary-rgb: 224, 220, 254; --bs-light-danger-rgb: 251, 235, 236; @@ -285,7 +285,8 @@ h4, --bs-dark-secondary-rgb: 92, 89, 109; --bs-white-rgb: 255, 255, 255; --bs-black-rgb: 0, 0, 0; - --bs-body-rgb: 108, 117, 125; + --bs-body-color-rgb: 99, 115, 129; + --bs-body-bg-rgb: 255, 255, 255; --bs-font-sans-serif: "Inter", "sans-serif"; --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); @@ -293,8 +294,8 @@ h4, --bs-body-font-size: 0.9375rem; --bs-body-font-weight: 400; --bs-body-line-height: 1.5; - --bs-body-color: #6c757d; - --bs-body-bg: #e9ecef; + --bs-body-color: #637381; + --bs-body-bg: #fff; } *, @@ -339,7 +340,7 @@ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { margin-bottom: 0.5rem; font-weight: 500; line-height: 1.2; - color: #343a40; + color: #212B36; } h1, .h1 { @@ -513,7 +514,7 @@ kbd { padding: 0.2rem 0.4rem; font-size: 0.875em; color: #fff; - background-color: #212529; + background-color: #161C24; border-radius: 0.2rem; } kbd kbd { @@ -539,7 +540,7 @@ table { caption { padding-top: 0.75rem; padding-bottom: 0.75rem; - color: #6c757d; + color: #637381; text-align: left; } @@ -822,7 +823,7 @@ progress { margin-top: -1rem; margin-bottom: 1rem; font-size: 0.875em; - color: #6c757d; + color: #637381; } .blockquote-footer::before { content: "— "; @@ -835,8 +836,8 @@ progress { .img-thumbnail { padding: 0.25rem; - background-color: #e9ecef; - border: 1px solid #dee2e6; + background-color: #fff; + border: 1px solid #DFE3E8; border-radius: 0.375rem; max-width: 100%; height: auto; @@ -853,7 +854,7 @@ progress { .figure-caption { font-size: 0.875em; - color: #6c757d; + color: #637381; } .container, @@ -900,16 +901,16 @@ progress { --bs-gutter-y: 0; display: flex; flex-wrap: wrap; - margin-top: calc(var(--bs-gutter-y) * -1); - margin-right: calc(var(--bs-gutter-x) * -.5); - margin-left: calc(var(--bs-gutter-x) * -.5); + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); } .row > * { flex-shrink: 0; width: 100%; max-width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); margin-top: var(--bs-gutter-y); } @@ -3268,18 +3269,18 @@ progress { } .table { --bs-table-bg: transparent; - --bs-table-accent-bg: rgba(248, 249, 250, 0.7); - --bs-table-striped-color: #6c757d; - --bs-table-striped-bg: #f8f9fa; - --bs-table-active-color: #6c757d; - --bs-table-active-bg: #f8f9fa; - --bs-table-hover-color: #6c757d; - --bs-table-hover-bg: rgba(248, 249, 250, 0.7); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #637381; + --bs-table-striped-bg: #f9fafb; + --bs-table-active-color: #637381; + --bs-table-active-bg: #f9fafb; + --bs-table-hover-color: #637381; + --bs-table-hover-bg: rgba(249, 250, 251, 0.7); width: 100%; margin-bottom: 1rem; - color: #6c757d; + color: #637381; vertical-align: top; - border-color: #dee2e6; + border-color: #DFE3E8; } .table > :not(caption) > * > * { padding: 0.75rem 1.5rem; @@ -3293,8 +3294,8 @@ progress { .table > thead { vertical-align: bottom; } -.table > :not(:last-child) > :last-child > * { - border-bottom-color: #e9ecef; +.table > :not(:first-child) { + border-top: 2px solid #F4F6F8; } .caption-top { @@ -3315,8 +3316,11 @@ progress { .table-borderless > :not(caption) > * > * { border-bottom-width: 0; } +.table-borderless > :not(:first-child) { + border-top-width: 0; +} -.table-striped > tbody > tr:nth-of-type(odd) { +.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: var(--bs-table-striped-bg); color: var(--bs-table-striped-color); } @@ -3326,7 +3330,7 @@ progress { color: var(--bs-table-active-color); } -.table-hover > tbody > tr:hover { +.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: var(--bs-table-hover-bg); color: var(--bs-table-hover-color); } @@ -3344,15 +3348,15 @@ progress { } .table-secondary { - --bs-table-bg: #e2e3e5; + --bs-table-bg: #e0e3e6; --bs-table-striped-bg: black; --bs-table-striped-color: #fff; --bs-table-active-bg: black; --bs-table-active-color: #fff; - --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-bg: #cfd2d5; --bs-table-hover-color: #000; color: #000; - border-color: #cbccce; + border-color: #cacccf; } .table-success { @@ -3404,27 +3408,27 @@ progress { } .table-light { - --bs-table-bg: #f8f9fa; + --bs-table-bg: #F9FAFB; --bs-table-striped-bg: black; --bs-table-striped-color: #fff; --bs-table-active-bg: black; --bs-table-active-color: #fff; - --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-bg: #e6e7e8; --bs-table-hover-color: #000; color: #000; - border-color: #dfe0e1; + border-color: #e0e1e2; } .table-dark { - --bs-table-bg: #212529; + --bs-table-bg: #212B36; --bs-table-striped-bg: white; --bs-table-striped-color: #000; --bs-table-active-bg: white; --bs-table-active-color: #000; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: #323b45; --bs-table-hover-color: #fff; color: #fff; - border-color: #373b3e; + border-color: #37404a; } .table-responsive { @@ -3464,7 +3468,7 @@ progress { } .form-label { margin-bottom: 0.5rem; - color: #212529; + color: #161C24; } .col-form-label { @@ -3473,7 +3477,7 @@ progress { margin-bottom: 0; font-size: inherit; line-height: 1.5; - color: #212529; + color: #161C24; } .col-form-label-lg { @@ -3491,7 +3495,7 @@ progress { .form-text { margin-top: 0.25rem; font-size: 0.875em; - color: #6c757d; + color: #637381; } .form-control { @@ -3501,10 +3505,10 @@ progress { font-size: 0.9375rem; font-weight: 400; line-height: 1.5; - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #fff; background-clip: padding-box; - border: 1px solid #ced4da; + border: 1px solid #C4CDD5; -webkit-appearance: none; -moz-appearance: none; appearance: none; @@ -3523,8 +3527,8 @@ progress { cursor: pointer; } .form-control:focus { - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #fff; border-color: #b1a5ff; outline: 0; box-shadow: 0 0 0 0.25rem rgba(98, 75, 255, 0.25); @@ -3533,19 +3537,19 @@ progress { height: 1.5em; } .form-control::-moz-placeholder { - color: #6c757d; + color: #637381; opacity: 1; } .form-control:-ms-input-placeholder { - color: #6c757d; + color: #637381; opacity: 1; } .form-control::placeholder { - color: #6c757d; + color: #637381; opacity: 1; } .form-control:disabled, .form-control[readonly] { - background-color: #e9ecef; + background-color: #F4F6F8; opacity: 1; } .form-control::-webkit-file-upload-button { @@ -3553,8 +3557,8 @@ progress { margin: -0.5rem -1rem; -webkit-margin-end: 1rem; margin-inline-end: 1rem; - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #F4F6F8; pointer-events: none; border-color: inherit; border-style: solid; @@ -3569,8 +3573,8 @@ progress { margin: -0.5rem -1rem; -webkit-margin-end: 1rem; margin-inline-end: 1rem; - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #F4F6F8; pointer-events: none; border-color: inherit; border-style: solid; @@ -3589,18 +3593,18 @@ progress { } } .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { - background-color: #dde0e3; + background-color: #e8eaec; } .form-control:hover:not(:disabled):not([readonly])::file-selector-button { - background-color: #dde0e3; + background-color: #e8eaec; } .form-control::-webkit-file-upload-button { padding: 0.5rem 1rem; margin: -0.5rem -1rem; -webkit-margin-end: 1rem; margin-inline-end: 1rem; - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #F4F6F8; pointer-events: none; border-color: inherit; border-style: solid; @@ -3617,7 +3621,7 @@ progress { } } .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { - background-color: #dde0e3; + background-color: #e8eaec; } .form-control-plaintext { @@ -3626,7 +3630,7 @@ progress { padding: 0.5rem 0; margin-bottom: 0; line-height: 1.5; - color: #6c757d; + color: #637381; background-color: transparent; border: solid transparent; border-width: 1px 0; @@ -3721,13 +3725,13 @@ textarea.form-control-lg { font-size: 0.9375rem; font-weight: 400; line-height: 1.5; - color: #6c757d; - background-color: #e9ecef; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + color: #637381; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23212B36' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 16px 12px; - border: 1px solid #ced4da; + border: 1px solid #C4CDD5; border-radius: 0.375rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -webkit-appearance: none; @@ -3749,11 +3753,11 @@ textarea.form-control-lg { background-image: none; } .form-select:disabled { - background-color: #e9ecef; + background-color: #F4F6F8; } .form-select:-moz-focusring { color: transparent; - text-shadow: 0 0 0 #6c757d; + text-shadow: 0 0 0 #637381; } .form-select-sm { @@ -3761,6 +3765,7 @@ textarea.form-control-lg { padding-bottom: 0.25rem; padding-left: 0.5rem; font-size: 0.8203125rem; + border-radius: 0.2rem; } .form-select-lg { @@ -3768,6 +3773,7 @@ textarea.form-control-lg { padding-bottom: 0.5rem; padding-left: 1rem; font-size: 1.171875rem; + border-radius: 0.5rem; } .form-check { @@ -3786,7 +3792,7 @@ textarea.form-control-lg { height: 1em; margin-top: 0.25em; vertical-align: top; - background-color: #e9ecef; + background-color: #fff; background-repeat: no-repeat; background-position: center; background-size: contain; @@ -3888,10 +3894,10 @@ textarea.form-control-lg { outline: 0; } .form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #e9ecef, 0 0 0 0.25rem rgba(98, 75, 255, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(98, 75, 255, 0.25); } .form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #e9ecef, 0 0 0 0.25rem rgba(98, 75, 255, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(98, 75, 255, 0.25); } .form-range::-moz-focus-outer { border: 0; @@ -3922,7 +3928,7 @@ textarea.form-control-lg { height: 0.5rem; color: transparent; cursor: pointer; - background-color: #dee2e6; + background-color: #DFE3E8; border-color: transparent; border-radius: 1rem; } @@ -3951,7 +3957,7 @@ textarea.form-control-lg { height: 0.5rem; color: transparent; cursor: pointer; - background-color: #dee2e6; + background-color: #DFE3E8; border-color: transparent; border-radius: 1rem; } @@ -3959,10 +3965,10 @@ textarea.form-control-lg { pointer-events: none; } .form-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd; + background-color: #919EAB; } .form-range:disabled::-moz-range-thumb { - background-color: #adb5bd; + background-color: #919EAB; } .form-floating { @@ -4073,11 +4079,11 @@ textarea.form-control-lg { font-size: 0.9375rem; font-weight: 400; line-height: 1.5; - color: #6c757d; + color: #637381; text-align: center; white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; + background-color: #F4F6F8; + border: 1px solid #C4CDD5; border-radius: 0.375rem; } @@ -4172,7 +4178,7 @@ textarea.form-control-lg { } .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { padding-right: 5.5rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23212B36' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); background-position: right 1rem center, center right 3rem; background-size: 16px 12px, calc(0.75em + 0.5rem) calc(0.75em + 0.5rem); } @@ -4261,7 +4267,7 @@ textarea.form-control-lg { } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { padding-right: 5.5rem; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23212B36' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); background-position: right 1rem center, center right 3rem; background-size: 16px 12px, calc(0.75em + 0.5rem) calc(0.75em + 0.5rem); } @@ -4302,7 +4308,7 @@ textarea.form-control-lg { display: inline-block; font-weight: 500; line-height: 1.5; - color: #6c757d; + color: #637381; text-align: center; vertical-align: middle; cursor: pointer; @@ -4323,7 +4329,7 @@ textarea.form-control-lg { } } .btn:hover { - color: #6c757d; + color: #637381; } .btn-check:focus + .btn, .btn:focus { outline: 0; @@ -4366,32 +4372,32 @@ textarea.form-control-lg { .btn-secondary { color: #fff; - background-color: #6c757d; - border-color: #6c757d; + background-color: #637381; + border-color: #637381; } .btn-secondary:hover { color: #fff; - background-color: #5c636a; - border-color: #565e64; + background-color: #54626e; + border-color: #4f5c67; } .btn-check:focus + .btn-secondary, .btn-secondary:focus { color: #fff; - background-color: #5c636a; - border-color: #565e64; - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + background-color: #54626e; + border-color: #4f5c67; + box-shadow: 0 0 0 0.25rem rgba(122, 136, 148, 0.5); } .btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { color: #fff; - background-color: #565e64; - border-color: #51585e; + background-color: #4f5c67; + border-color: #4a5661; } .btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.25rem rgba(122, 136, 148, 0.5); } .btn-secondary:disabled, .btn-secondary.disabled { color: #fff; - background-color: #6c757d; - border-color: #6c757d; + background-color: #637381; + border-color: #637381; } .btn-success { @@ -4516,62 +4522,62 @@ textarea.form-control-lg { .btn-light { color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + background-color: #F9FAFB; + border-color: #F9FAFB; } .btn-light:hover { color: #000; - background-color: #f9fafb; - border-color: #f9fafb; + background-color: #fafbfc; + border-color: #fafbfb; } .btn-check:focus + .btn-light, .btn-light:focus { color: #000; - background-color: #f9fafb; - border-color: #f9fafb; - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + background-color: #fafbfc; + border-color: #fafbfb; + box-shadow: 0 0 0 0.25rem rgba(212, 213, 213, 0.5); } .btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { color: #000; - background-color: #f9fafb; - border-color: #f9fafb; + background-color: #fafbfc; + border-color: #fafbfb; } .btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + box-shadow: 0 0 0 0.25rem rgba(212, 213, 213, 0.5); } .btn-light:disabled, .btn-light.disabled { color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + background-color: #F9FAFB; + border-color: #F9FAFB; } .btn-dark { color: #fff; - background-color: #212529; - border-color: #212529; + background-color: #212B36; + border-color: #212B36; } .btn-dark:hover { color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; + background-color: #1c252e; + border-color: #1a222b; } .btn-check:focus + .btn-dark, .btn-dark:focus { color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + background-color: #1c252e; + border-color: #1a222b; + box-shadow: 0 0 0 0.25rem rgba(66, 75, 84, 0.5); } .btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { color: #fff; - background-color: #1a1e21; - border-color: #191c1f; + background-color: #1a222b; + border-color: #192029; } .btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + box-shadow: 0 0 0 0.25rem rgba(66, 75, 84, 0.5); } .btn-dark:disabled, .btn-dark.disabled { color: #fff; - background-color: #212529; - border-color: #212529; + background-color: #212B36; + border-color: #212B36; } .btn-white { @@ -5020,27 +5026,27 @@ textarea.form-control-lg { } .btn-outline-secondary { - color: #6c757d; - border-color: #6c757d; + color: #637381; + border-color: #637381; } .btn-outline-secondary:hover { color: #fff; - background-color: #6c757d; - border-color: #6c757d; + background-color: #637381; + border-color: #637381; } .btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(99, 115, 129, 0.5); } .btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { color: #fff; - background-color: #6c757d; - border-color: #6c757d; + background-color: #637381; + border-color: #637381; } .btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(99, 115, 129, 0.5); } .btn-outline-secondary:disabled, .btn-outline-secondary.disabled { - color: #6c757d; + color: #637381; background-color: transparent; } @@ -5145,52 +5151,52 @@ textarea.form-control-lg { } .btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; + color: #F9FAFB; + border-color: #F9FAFB; } .btn-outline-light:hover { color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + background-color: #F9FAFB; + border-color: #F9FAFB; } .btn-check:focus + .btn-outline-light, .btn-outline-light:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(249, 250, 251, 0.5); } .btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + background-color: #F9FAFB; + border-color: #F9FAFB; } .btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(249, 250, 251, 0.5); } .btn-outline-light:disabled, .btn-outline-light.disabled { - color: #f8f9fa; + color: #F9FAFB; background-color: transparent; } .btn-outline-dark { - color: #212529; - border-color: #212529; + color: #212B36; + border-color: #212B36; } .btn-outline-dark:hover { color: #fff; - background-color: #212529; - border-color: #212529; + background-color: #212B36; + border-color: #212B36; } .btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 43, 54, 0.5); } .btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { color: #fff; - background-color: #212529; - border-color: #212529; + background-color: #212B36; + border-color: #212B36; } .btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 43, 54, 0.5); } .btn-outline-dark:disabled, .btn-outline-dark.disabled { - color: #212529; + color: #212B36; background-color: transparent; } @@ -5557,7 +5563,7 @@ textarea.form-control-lg { text-decoration: none; } .btn-link:disabled, .btn-link.disabled { - color: #6c757d; + color: #637381; } .btn-lg, .btn-group-lg > .btn { @@ -5641,7 +5647,7 @@ textarea.form-control-lg { padding: 0.5rem 0; margin: 0; font-size: 0.9375rem; - color: #6c757d; + color: #637381; text-align: left; list-style: none; background-color: #fff; @@ -5845,15 +5851,15 @@ textarea.form-control-lg { padding: 0.25rem 1rem; clear: both; font-weight: 400; - color: #212529; + color: #161C24; text-align: inherit; white-space: nowrap; background-color: transparent; border: 0; } .dropdown-item:hover, .dropdown-item:focus { - color: #1e2125; - background-color: #e9ecef; + color: #141920; + background-color: #F4F6F8; } .dropdown-item.active, .dropdown-item:active { color: #fff; @@ -5861,7 +5867,7 @@ textarea.form-control-lg { background-color: #624BFF; } .dropdown-item.disabled, .dropdown-item:disabled { - color: #adb5bd; + color: #919EAB; pointer-events: none; background-color: transparent; } @@ -5875,23 +5881,23 @@ textarea.form-control-lg { padding: 0.5rem 1rem; margin-bottom: 0; font-size: 0.8203125rem; - color: #6c757d; + color: #637381; white-space: nowrap; } .dropdown-item-text { display: block; padding: 0.25rem 1rem; - color: #212529; + color: #161C24; } .dropdown-menu-dark { - color: #dee2e6; - background-color: #343a40; + color: #DFE3E8; + background-color: #212B36; border-color: rgba(0, 0, 0, 0.15); } .dropdown-menu-dark .dropdown-item { - color: #dee2e6; + color: #DFE3E8; } .dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { color: #fff; @@ -5902,16 +5908,16 @@ textarea.form-control-lg { background-color: #624BFF; } .dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { - color: #adb5bd; + color: #919EAB; } .dropdown-menu-dark .dropdown-divider { border-color: rgba(0, 0, 0, 0.15); } .dropdown-menu-dark .dropdown-item-text { - color: #dee2e6; + color: #DFE3E8; } .dropdown-menu-dark .dropdown-header { - color: #adb5bd; + color: #919EAB; } .btn-group, @@ -6033,13 +6039,13 @@ textarea.form-control-lg { color: #4e3ccc; } .nav-link.disabled { - color: #6c757d; + color: #637381; pointer-events: none; cursor: default; } .nav-tabs { - border-bottom: 1px solid #dee2e6; + border-bottom: 1px solid #DFE3E8; } .nav-tabs .nav-link { margin-bottom: -1px; @@ -6049,19 +6055,19 @@ textarea.form-control-lg { border-top-right-radius: 0.375rem; } .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; + border-color: #F4F6F8 #F4F6F8 #DFE3E8; isolation: isolate; } .nav-tabs .nav-link.disabled { - color: #6c757d; + color: #637381; background-color: transparent; border-color: transparent; } .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #e9ecef; - border-color: #dee2e6 #dee2e6 #e9ecef; + color: #454F5B; + background-color: #fff; + border-color: #DFE3E8 #DFE3E8 #fff; } .nav-tabs .dropdown-menu { margin-top: -1px; @@ -6605,13 +6611,13 @@ textarea.form-control-lg { } .card > .list-group:first-child { border-top-width: 0; - border-top-left-radius: calc(0.375rem - 1px); - border-top-right-radius: calc(0.375rem - 1px); + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; } .card > .list-group:last-child { border-bottom-width: 0; - border-bottom-right-radius: calc(0.375rem - 1px); - border-bottom-left-radius: calc(0.375rem - 1px); + border-bottom-right-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; } .card > .card-header + .list-group, .card > .list-group + .card-footer { @@ -6624,11 +6630,11 @@ textarea.form-control-lg { } .card-title { - margin-bottom: 0.5rem; + margin-bottom: 1.5rem; } .card-subtitle { - margin-top: -0.25rem; + margin-top: -0.75rem; margin-bottom: 0; } @@ -6647,7 +6653,7 @@ textarea.form-control-lg { border-bottom: 1px solid rgba(0, 0, 0, 0.125); } .card-header:first-child { - border-radius: calc(0.375rem - 1px) calc(0.375rem - 1px) 0 0; + border-radius: 0.5rem 0.5rem 0 0; } .card-footer { @@ -6656,7 +6662,7 @@ textarea.form-control-lg { border-top: 1px solid rgba(0, 0, 0, 0.125); } .card-footer:last-child { - border-radius: 0 0 calc(0.375rem - 1px) calc(0.375rem - 1px); + border-radius: 0 0 0.5rem 0.5rem; } .card-header-tabs { @@ -6665,10 +6671,6 @@ textarea.form-control-lg { margin-left: -0.75rem; border-bottom: 0; } -.card-header-tabs .nav-link.active { - background-color: #fff; - border-bottom-color: #fff; -} .card-header-pills { margin-right: -0.75rem; @@ -6682,7 +6684,7 @@ textarea.form-control-lg { bottom: 0; left: 0; padding: 1rem; - border-radius: calc(0.375rem - 1px); + border-radius: 0.5rem; } .card-img, @@ -6693,14 +6695,14 @@ textarea.form-control-lg { .card-img, .card-img-top { - border-top-left-radius: calc(0.375rem - 1px); - border-top-right-radius: calc(0.375rem - 1px); + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; } .card-img, .card-img-bottom { - border-bottom-right-radius: calc(0.375rem - 1px); - border-bottom-left-radius: calc(0.375rem - 1px); + border-bottom-right-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; } .card-group > .card { @@ -6752,9 +6754,9 @@ textarea.form-control-lg { width: 100%; padding: 1rem 1.25rem; font-size: 0.9375rem; - color: #6c757d; + color: #637381; text-align: left; - background-color: #e9ecef; + background-color: #fff; border: 0; border-radius: 0; overflow-anchor: none; @@ -6780,7 +6782,7 @@ textarea.form-control-lg { height: 1.25rem; margin-left: auto; content: ""; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%3e%3cpath 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-.708z'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23637381'%3e%3cpath 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-.708z'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-size: 1.25rem; transition: transform 0.2s ease-in-out; @@ -6805,7 +6807,7 @@ textarea.form-control-lg { } .accordion-item { - background-color: #e9ecef; + background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.125); } .accordion-item:first-of-type { @@ -6868,11 +6870,11 @@ textarea.form-control-lg { .breadcrumb-item + .breadcrumb-item::before { float: left; padding-right: 0.5rem; - color: #6c757d; + color: #637381; content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } .breadcrumb-item.active { - color: #6c757d; + color: #637381; } .pagination { @@ -6886,7 +6888,7 @@ textarea.form-control-lg { display: block; color: #624BFF; background-color: #fff; - border: 1px solid #dee2e6; + border: 1px solid #DFE3E8; transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -6897,13 +6899,13 @@ textarea.form-control-lg { .page-link:hover { z-index: 2; color: #4e3ccc; - background-color: #e9ecef; - border-color: #dee2e6; + background-color: #F4F6F8; + border-color: #DFE3E8; } .page-link:focus { z-index: 3; color: #4e3ccc; - background-color: #e9ecef; + background-color: #F4F6F8; outline: 0; box-shadow: 0 0 0 0.25rem rgba(98, 75, 255, 0.25); } @@ -6918,10 +6920,10 @@ textarea.form-control-lg { border-color: #624BFF; } .page-item.disabled .page-link { - color: #6c757d; + color: #637381; pointer-events: none; background-color: #fff; - border-color: #dee2e6; + border-color: #DFE3E8; } .page-link { @@ -7021,12 +7023,12 @@ textarea.form-control-lg { } .alert-secondary { - color: #41464b; - background-color: #e2e3e5; - border-color: #d3d6d8; + color: #3b454d; + background-color: #e0e3e6; + border-color: #d0d5d9; } .alert-secondary .alert-link { - color: #34383c; + color: #2f373e; } .alert-success { @@ -7066,21 +7068,21 @@ textarea.form-control-lg { } .alert-light { - color: #636464; + color: #646464; background-color: #fefefe; - border-color: #fdfdfe; + border-color: #fdfefe; } .alert-light .alert-link { - color: #4f5050; + color: #505050; } .alert-dark { - color: #141619; - background-color: #d3d3d4; - border-color: #bcbebf; + color: #141a20; + background-color: #d3d5d7; + border-color: #bcbfc3; } .alert-dark .alert-link { - color: #101214; + color: #10151a; } .alert-white { @@ -7225,7 +7227,7 @@ textarea.form-control-lg { height: 1rem; overflow: hidden; font-size: 0.703125rem; - background-color: #e9ecef; + background-color: #F4F6F8; border-radius: 0.375rem; } @@ -7281,25 +7283,25 @@ textarea.form-control-lg { .list-group-item-action { width: 100%; - color: #495057; + color: #454F5B; text-align: inherit; } .list-group-item-action:hover, .list-group-item-action:focus { z-index: 1; - color: #495057; + color: #454F5B; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; } .list-group-item-action:active { - color: #6c757d; - background-color: #e9ecef; + color: #637381; + background-color: #F4F6F8; } .list-group-item { position: relative; display: block; padding: 0.5rem 1rem; - color: #212529; + color: #161C24; background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.125); } @@ -7312,7 +7314,7 @@ textarea.form-control-lg { border-bottom-left-radius: inherit; } .list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; + color: #637381; pointer-events: none; background-color: #fff; } @@ -7498,17 +7500,17 @@ textarea.form-control-lg { } .list-group-item-secondary { - color: #41464b; - background-color: #e2e3e5; + color: #3b454d; + background-color: #e0e3e6; } .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #41464b; - background-color: #cbccce; + color: #3b454d; + background-color: #cacccf; } .list-group-item-secondary.list-group-item-action.active { color: #fff; - background-color: #41464b; - border-color: #41464b; + background-color: #3b454d; + border-color: #3b454d; } .list-group-item-success { @@ -7568,31 +7570,31 @@ textarea.form-control-lg { } .list-group-item-light { - color: #636464; + color: #646464; background-color: #fefefe; } .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #636464; + color: #646464; background-color: #e5e5e5; } .list-group-item-light.list-group-item-action.active { color: #fff; - background-color: #636464; - border-color: #636464; + background-color: #646464; + border-color: #646464; } .list-group-item-dark { - color: #141619; - background-color: #d3d3d4; + color: #141a20; + background-color: #d3d5d7; } .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #141619; - background-color: #bebebf; + color: #141a20; + background-color: #bec0c2; } .list-group-item-dark.list-group-item-action.active { color: #fff; - background-color: #141619; - border-color: #141619; + background-color: #141a20; + border-color: #141a20; } .list-group-item-white { @@ -7858,7 +7860,7 @@ textarea.form-control-lg { display: flex; align-items: center; padding: 0.5rem 0.75rem; - color: #6c757d; + color: #637381; background-color: rgba(255, 255, 255, 0.85); background-clip: padding-box; border-bottom: 1px solid rgba(0, 0, 0, 0.05); @@ -7962,7 +7964,7 @@ textarea.form-control-lg { align-items: center; justify-content: space-between; padding: 1rem 1rem; - border-bottom: 1px solid #dee2e6; + border-bottom: 1px solid #DFE3E8; border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } @@ -7989,7 +7991,7 @@ textarea.form-control-lg { align-items: center; justify-content: flex-end; padding: 0.75rem; - border-top: 1px solid #dee2e6; + border-top: 1px solid #DFE3E8; border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } @@ -8373,7 +8375,7 @@ textarea.form-control-lg { padding: 0.5rem 1rem; margin-bottom: 0; font-size: 0.9375rem; - color: #343a40; + color: #212B36; background-color: #f0f0f0; border-bottom: 1px solid rgba(0, 0, 0, 0.2); border-top-left-radius: calc(0.5rem - 1px); @@ -8385,7 +8387,7 @@ textarea.form-control-lg { .popover-body { padding: 1rem 1rem; - color: #6c757d; + color: #637381; } .carousel { @@ -8842,10 +8844,10 @@ textarea.form-control-lg { } .link-secondary { - color: #6c757d; + color: #637381; } .link-secondary:hover, .link-secondary:focus { - color: #565e64; + color: #4f5c67; } .link-success { @@ -8877,17 +8879,17 @@ textarea.form-control-lg { } .link-light { - color: #f8f9fa; + color: #F9FAFB; } .link-light:hover, .link-light:focus { - color: #f9fafb; + color: #fafbfc; } .link-dark { - color: #212529; + color: #212B36; } .link-dark:hover, .link-dark:focus { - color: #1a1e21; + color: #1a222b; } .link-white { @@ -9010,15 +9012,15 @@ textarea.form-control-lg { } .ratio-4x3 { - --bs-aspect-ratio: calc(3 / 4 * 100%); + --bs-aspect-ratio: 75%; } .ratio-16x9 { - --bs-aspect-ratio: calc(9 / 16 * 100%); + --bs-aspect-ratio: 56.25%; } .ratio-21x9 { - --bs-aspect-ratio: calc(9 / 21 * 100%); + --bs-aspect-ratio: 42.8571428571%; } .fixed-top { @@ -9038,6 +9040,7 @@ textarea.form-control-lg { } .sticky-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9045,6 +9048,7 @@ textarea.form-control-lg { @media (min-width: 576px) { .sticky-sm-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9052,6 +9056,7 @@ textarea.form-control-lg { } @media (min-width: 768px) { .sticky-md-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9059,6 +9064,7 @@ textarea.form-control-lg { } @media (min-width: 992px) { .sticky-lg-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9066,6 +9072,7 @@ textarea.form-control-lg { } @media (min-width: 1200px) { .sticky-xl-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9073,6 +9080,7 @@ textarea.form-control-lg { } @media (min-width: 1400px) { .sticky-xxl-top { + position: -webkit-sticky; position: sticky; top: 0; z-index: 1020; @@ -9275,6 +9283,7 @@ textarea.form-control-lg { } .position-sticky { + position: -webkit-sticky !important; position: sticky !important; } @@ -9371,7 +9380,7 @@ textarea.form-control-lg { } .border { - border: 1px solid #dee2e6 !important; + border: 1px solid #DFE3E8 !important; } .border-0 { @@ -9379,7 +9388,7 @@ textarea.form-control-lg { } .border-top { - border-top: 1px solid #dee2e6 !important; + border-top: 1px solid #DFE3E8 !important; } .border-top-0 { @@ -9387,7 +9396,7 @@ textarea.form-control-lg { } .border-end { - border-right: 1px solid #dee2e6 !important; + border-right: 1px solid #DFE3E8 !important; } .border-end-0 { @@ -9395,7 +9404,7 @@ textarea.form-control-lg { } .border-bottom { - border-bottom: 1px solid #dee2e6 !important; + border-bottom: 1px solid #DFE3E8 !important; } .border-bottom-0 { @@ -9403,7 +9412,7 @@ textarea.form-control-lg { } .border-start { - border-left: 1px solid #dee2e6 !important; + border-left: 1px solid #DFE3E8 !important; } .border-start-0 { @@ -9415,7 +9424,7 @@ textarea.form-control-lg { } .border-secondary { - border-color: #6c757d !important; + border-color: #637381 !important; } .border-success { @@ -9435,11 +9444,11 @@ textarea.form-control-lg { } .border-light { - border-color: #f8f9fa !important; + border-color: #F9FAFB !important; } .border-dark { - border-color: #212529 !important; + border-color: #212B36 !important; } .border-white { @@ -12242,7 +12251,7 @@ textarea.form-control-lg { } .text-secondary { - color: #6c757d !important; + color: #637381 !important; } .text-success { @@ -12262,11 +12271,11 @@ textarea.form-control-lg { } .text-light { - color: #f8f9fa !important; + color: #F9FAFB !important; } .text-dark { - color: #212529 !important; + color: #212B36 !important; } .text-white { @@ -12326,47 +12335,47 @@ textarea.form-control-lg { } .text-gray-100 { - color: #f8f9fa !important; + color: #F9FAFB !important; } .text-gray-200 { - color: #e9ecef !important; + color: #F4F6F8 !important; } .text-gray-300 { - color: #dee2e6 !important; + color: #DFE3E8 !important; } .text-gray-400 { - color: #ced4da !important; + color: #C4CDD5 !important; } .text-gray-500 { - color: #adb5bd !important; + color: #919EAB !important; } .text-gray-600 { - color: #6c757d !important; + color: #637381 !important; } .text-gray-700 { - color: #495057 !important; + color: #454F5B !important; } .text-gray-800 { - color: #343a40 !important; + color: #212B36 !important; } .text-gray-900 { - color: #212529 !important; + color: #161C24 !important; } .text-body { - color: #6c757d !important; + color: #637381 !important; } .text-muted { - color: #6c757d !important; + color: #637381 !important; } .text-black-50 { @@ -12402,7 +12411,7 @@ textarea.form-control-lg { } .bg-secondary { - background-color: #6c757d !important; + background-color: #637381 !important; } .bg-success { @@ -12422,11 +12431,11 @@ textarea.form-control-lg { } .bg-light { - background-color: #f8f9fa !important; + background-color: #F9FAFB !important; } .bg-dark { - background-color: #212529 !important; + background-color: #212B36 !important; } .bg-white { @@ -12486,43 +12495,43 @@ textarea.form-control-lg { } .bg-gray-100 { - background-color: #f8f9fa !important; + background-color: #F9FAFB !important; } .bg-gray-200 { - background-color: #e9ecef !important; + background-color: #F4F6F8 !important; } .bg-gray-300 { - background-color: #dee2e6 !important; + background-color: #DFE3E8 !important; } .bg-gray-400 { - background-color: #ced4da !important; + background-color: #C4CDD5 !important; } .bg-gray-500 { - background-color: #adb5bd !important; + background-color: #919EAB !important; } .bg-gray-600 { - background-color: #6c757d !important; + background-color: #637381 !important; } .bg-gray-700 { - background-color: #495057 !important; + background-color: #454F5B !important; } .bg-gray-800 { - background-color: #343a40 !important; + background-color: #212B36 !important; } .bg-gray-900 { - background-color: #212529 !important; + background-color: #161C24 !important; } .bg-body { - background-color: #e9ecef !important; + background-color: #fff !important; } .bg-transparent { @@ -25957,8 +25966,8 @@ textarea.form-control-lg { width: 100%; max-width: 250px; padding: 0rem; - background-color: #212529; - border-right: 1px solid #212529; + background-color: #212B36; + border-right: 1px solid #212B36; transition: margin 0.25s ease-out; } .navbar-vertical .slimScrollDiv { @@ -25978,7 +25987,7 @@ textarea.form-control-lg { height: 1.875rem; } .navbar-vertical .navbar-heading { - color: #495057; + color: #454F5B; padding: 1rem 1.5rem; font-size: 0.75rem; text-transform: uppercase; @@ -25989,7 +25998,7 @@ textarea.form-control-lg { padding: 0.5rem 1.5rem; display: flex; align-items: center; - color: #adb5bd; + color: #919EAB; font-weight: 500; line-height: 1.8; -webkit-transition: all 0.5s; @@ -25997,17 +26006,17 @@ textarea.form-control-lg { transition: all 0.5s; } .navbar-vertical .navbar-nav .nav-item .nav-link:hover { - color: #e9ecef; + color: #F4F6F8; } .navbar-vertical .navbar-nav .nav-item .nav-link:hover .nav-icon { - color: #e9ecef; + color: #F4F6F8; opacity: 1; } .navbar-vertical .navbar-nav .nav-item .nav-link.active { - color: #e9ecef; + color: #F4F6F8; } .navbar-vertical .navbar-nav .nav-item .nav-link.active .nav-icon { - color: #e9ecef; + color: #F4F6F8; opacity: 1; } .navbar-vertical .navbar-nav .nav-item .nav-link[data-bs-toggle=collapse] { @@ -26037,7 +26046,7 @@ textarea.form-control-lg { margin-right: 0.5rem; } .navbar-vertical .navbar-nav .nav .nav-item .nav-link { - color: #adb5bd; + color: #919EAB; padding: 0.25rem 3rem; } .navbar-vertical .navbar-nav .nav .nav-item .nav-link:hover { @@ -26047,7 +26056,7 @@ textarea.form-control-lg { color: #fff; } .navbar-vertical .navbar-nav .nav .nav-item .nav .nav-item .nav-link { - color: #adb5bd; + color: #919EAB; padding: 0.25rem 3.5rem; } .navbar-vertical .navbar-nav .nav .nav-item .nav .nav-item .nav-link:hover { @@ -26057,7 +26066,7 @@ textarea.form-control-lg { color: #fff; } .navbar-vertical .navbar-nav .nav .nav-item .nav .nav-item .nav .nav-item .nav-link { - color: #adb5bd; + color: #919EAB; padding: 0.25rem 4.2rem; } .navbar-vertical .navbar-nav .nav .nav-item .nav .nav-item .nav .nav-item .nav-link:hover { @@ -26140,7 +26149,7 @@ textarea.form-control-lg { } .header .navbar #nav-toggle { font-size: 20px; - color: #495057; + color: #454F5B; line-height: 0.5; } @media (max-width: 576px) { @@ -26224,68 +26233,14 @@ textarea.form-control-lg { margin-left: 15.6875rem; } } -.copy-button { - cursor: pointer; - border: 0; - font-size: 0.875rem; - line-height: 1.125rem; - text-transform: capitalize; - font-weight: 600; - padding: 0.25rem 0.5rem; - color: #624BFF; - background-color: #fff; - position: absolute; - top: 0.875rem; - right: 0.625rem; - border-radius: 0.25rem; - border: 1px solid #624BFF; -} -.copy-button:hover { - outline: 0; - background-color: #fff; - color: #624BFF; -} -.copy-button:focus { - outline: 0; - background-color: #fff; - color: #624BFF; -} -.copy-button:active { - outline: 0; - background-color: #fff; - color: #624BFF; -} - -.content-section { - padding: 2.5rem; -} - -.content-section--paste { - margin-top: 3.75rem; - background-color: #e9ecef; -} -.content-section--paste h1, .content-section--paste .h1 { - font-size: 0.75rem; - color: #6c757d; - text-transform: uppercase; -} - -.copy-content { - position: relative; -} - -.copy-content-height { - overflow: auto; -} - .nav-line-bottom { - border-bottom: 1px solid #e9ecef; + border-bottom: 1px solid #F4F6F8; } .nav-line-bottom .nav-item .nav-link { - color: #6c757d; + color: #637381; border-radius: 0px; margin-bottom: -1px; - padding: 1.2rem; + padding: 0.875rem 1.25rem; font-weight: 500; } @media (max-width: 576px) { @@ -26323,7 +26278,7 @@ textarea.form-control-lg { } .nav-lb-tab { - border-bottom: 1px solid #dee2e6; + border-bottom: 1px solid #DFE3E8; } @media (max-width: 576px) { .nav-lb-tab { @@ -26344,7 +26299,7 @@ textarea.form-control-lg { padding: 16px 0px; margin-bottom: -1px; font-weight: 500; - color: #6c757d; + color: #637381; white-space: nowrap; } .nav-lb-tab .nav-item .nav-link.active { @@ -26359,7 +26314,7 @@ textarea.form-control-lg { } .nav-lt-tab { - border-top: 1px solid #dee2e6; + border-top: 1px solid #DFE3E8; } @media (max-width: 768px) { .nav-lt-tab { @@ -26380,7 +26335,7 @@ textarea.form-control-lg { border-radius: 0px; padding: 1rem 0rem; font-weight: 500; - color: #6c757d; + color: #637381; } .nav-lt-tab .nav-item .nav-link.active { background-color: transparent; @@ -26394,18 +26349,18 @@ textarea.form-control-lg { } .nav-email-list .nav-item .nav-link { - color: #6c757d; + color: #637381; padding: 6px 10px; border-radius: 8px; margin-bottom: 4px; font-weight: 500; } .nav-email-list .nav-item .nav-link:hover { - background-color: #f8f9fa; + background-color: #F9FAFB; color: #624BFF; } .nav-email-list .nav-item .nav-link.active { - background-color: #f8f9fa; + background-color: #F9FAFB; color: #624BFF; } .nav-email-list .nav-text { @@ -26439,7 +26394,7 @@ body { .docs-header .navbar { margin-left: 15.625rem; padding: 0.5rem 0.625rem; - border-bottom: 1px solid #e9ecef; + border-bottom: 1px solid #F4F6F8; } @media (max-width: 576px) { .docs-header .navbar { @@ -26455,7 +26410,7 @@ body { line-height: 1.75rem; padding: 0.875rem; margin-bottom: 0rem; - color: #495057; + color: #454F5B; } .docs-header .navbar .navbar-nav .nav-item .nav-link:hover { color: #000; @@ -26470,7 +26425,7 @@ body { position: relative; left: 0; margin-left: 15.625rem; - background-color: #f8f9fa; + background-color: #F9FAFB; top: 35px; } @@ -26515,7 +26470,7 @@ body { } .color-swatch-body { - border: 1px solid #e9ecef; + border: 1px solid #F4F6F8; background-color: #fff; border-bottom-left-radius: 0.5rem; border-bottom-right-radius: 0.5rem; @@ -26550,7 +26505,7 @@ body { } .setting-nav a { font-size: 14px; - color: #212529; + color: #161C24; font-weight: 500; display: block; background-color: #fff; @@ -26567,46 +26522,12 @@ body { transition: 0.5s ease; } -.sidebar-nav-fixed { - position: sticky; - top: 4rem; - height: calc(100vh - 2rem); - overflow-y: auto; - padding-top: 4.0625rem; - border-left: 1px solid #dee2e6; -} -.sidebar-nav-fixed ul { - list-style: none; -} -.sidebar-nav-fixed ul li a { - font-size: 0.8125rem; - color: #6c757d; - display: block; - padding: 0.125rem 1.5rem; - background: transparent; - border-radius: 0px; - border-left: 2px solid transparent; - line-height: 1.4375rem; - text-decoration: none; - transition: 0.5s ease; -} -.sidebar-nav-fixed ul li a:hover { - color: #624BFF; -} -.sidebar-nav-fixed ul li a.active { - display: block; - color: #624BFF; - background: transparent !important; - text-decoration: none; - border-left-color: #624BFF; - transition: 0.5s ease; -} -.sidebar-nav-fixed ul li ul { - list-style: none; - padding-left: 0rem; -} -.sidebar-nav-fixed ul li ul li a { - padding: 0.125rem 2.5rem; +.ratio { + display: inline-block; + width: 10rem; + color: #637381; + background-color: #F9FAFB; + border: 1px solid #F4F6F8; } .card { @@ -26683,7 +26604,7 @@ body { } .avatar-offline:before { - background-color: #ced4da; + background-color: #C4CDD5; } .avatar-online:before { @@ -26719,7 +26640,7 @@ body { .avatar-secondary .avatar-initials { color: #fff; - background-color: #6c757d; + background-color: #637381; } .avatar-success .avatar-initials { @@ -26744,12 +26665,12 @@ body { .avatar-light .avatar-initials { color: #fff; - background-color: #f8f9fa; + background-color: #F9FAFB; } .avatar-dark .avatar-initials { color: #fff; - background-color: #212529; + background-color: #212B36; } .avatar-group .avatar + .avatar { @@ -26766,18 +26687,18 @@ body { } .btn-outline-white { - border-color: #dee2e6; - color: #6c757d; + border-color: #DFE3E8; + color: #637381; } .btn-outline-white:hover, .btn-outline-white:focus { - background-color: #f8f9fa; - border-color: #ced4da; - color: #6c757d; + background-color: #F9FAFB; + border-color: #C4CDD5; + color: #637381; } .btn-outline-white.active { - background-color: #f8f9fa; - border-color: #ced4da; - color: #6c757d; + background-color: #F9FAFB; + border-color: #C4CDD5; + color: #637381; } .btn-icon { @@ -26838,7 +26759,7 @@ body { .dropdown-menu { font-size: 0.875rem; line-height: 1.375rem; - color: #495057; + color: #454F5B; border: none; box-shadow: 0px 0px 1px rgba(60, 66, 87, 0.05), 0px 3px 6px rgba(60, 66, 87, 0.1), 0px 9px 24px rgba(60, 66, 87, 0.2); border-radius: 0.5rem; @@ -26846,7 +26767,7 @@ body { } .dropdown-header { - color: #adb5bd; + color: #919EAB; padding: 0.25rem 1.2rem; margin-bottom: 0.2rem; text-transform: uppercase; @@ -26857,7 +26778,7 @@ body { .dropdown-text { padding: 0.25rem 1.2rem; - color: #adb5bd; + color: #919EAB; font-size: 0.75rem; line-height: 1.4; } @@ -26866,19 +26787,19 @@ body { font-size: 0.875rem; line-height: 28px; font-weight: 500; - color: #212529; + color: #161C24; padding: 0.125rem 1.2rem; } .dropdown-item:hover { color: #624BFF; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; border-radius: 0rem; } .dropdown-item.active { color: #624BFF; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; } .dropdown-item:last-child { border-bottom: 0rem; @@ -26886,11 +26807,11 @@ body { .dropdown-item:focus { color: #624BFF; text-decoration: none; - background-color: #dee2e6; + background-color: #DFE3E8; border-radius: 0rem; color: #624BFF; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; border-radius: 0rem; } .dropdown-item:focus .dropdown-toggle::after { @@ -26899,13 +26820,13 @@ body { .dropdown-item:focus:hover { color: #624BFF; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; border-radius: 0rem; } .dropdown-item:focus:active { color: #000; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; border-radius: 0.25rem; } .dropdown-item:hover.dropdown-toggle::after { @@ -26914,7 +26835,7 @@ body { .dropdown-item:hover { color: #624BFF; text-decoration: none; - background-color: #f8f9fa; + background-color: #F9FAFB; border-radius: 0px; } @@ -26990,7 +26911,7 @@ body { opacity: 0.7; font-size: 1rem; width: 1.5rem; - color: #6c757d; + color: #637381; } @media (min-width: 990px) { @@ -27041,7 +26962,7 @@ body { .form-control-flush:focus { color: #495057; background-color: #fff; - border-bottom-color: #ced4da; + border-bottom-color: #C4CDD5; outline: 0; box-shadow: none; } @@ -27060,16 +26981,15 @@ body { } .table .thead-light th { - color: #6c757d; + color: #637381; } .table thead th { - font-weight: 600; + font-weight: 500; padding: 0.75rem 1.5rem; - text-transform: uppercase; - letter-spacing: 0.05em; - font-size: 0.75rem; - color: #6c757d; + text-transform: capitalize; + font-size: 0.875rem; + color: #637381; } @media (max-width: 768px) { @@ -27101,16 +27021,16 @@ body { padding: 0rem; } } -.demo-sidebar { +.doc-sidebar { z-index: 2; width: 13.625rem; - border-right: 1px solid #e9ecef; + border-right: 1px solid #DFE3E8; position: fixed; - height: 100vh; + height: 100%; overflow: auto; } -@media (max-width: 768px) { - .demo-sidebar { +@media (max-width: 990px) { + .doc-sidebar { width: 100%; position: relative; border: 0; @@ -27118,42 +27038,42 @@ body { } } @media (min-width: 990px) and (max-width: 1200px) { - .demo-sidebar { + .doc-sidebar { width: 10rem; } } -.demo-sidebar .navbar-nav { +.doc-sidebar .navbar-nav { padding-top: 1rem; } -.demo-sidebar .navbar-nav .navbar-header { - margin-bottom: 1rem; +.doc-sidebar .navbar-nav .navbar-header { + margin-bottom: 0.5rem; padding: 0rem 1rem; - margin-top: 1.5625rem; + margin-top: 2rem; font-size: 0.75rem; } -.demo-sidebar .navbar-nav .navbar-header .heading { +.doc-sidebar .navbar-nav .navbar-header .heading { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; - color: #ced4da; + color: #C4CDD5; margin-bottom: 0rem; } -.demo-sidebar .navbar-nav .navbar-header span { - color: #6c757d; +.doc-sidebar .navbar-nav .navbar-header span { + color: #637381; } -.demo-sidebar .navbar-nav .nav-item .nav-link { - color: #343a40; +.doc-sidebar .navbar-nav .nav-item .nav-link { + color: #212B36; font-size: 0.875rem; line-height: 1.25rem; - padding: 0.6rem 1rem; + padding: 0.25rem 1rem; font-family: "Inter", "sans-serif"; font-weight: 500; } -.demo-sidebar .navbar-nav .nav-item .nav-link:hover { +.doc-sidebar .navbar-nav .nav-item .nav-link:hover { color: #624BFF; } -.demo-sidebar .navbar-nav .nav-item .nav-link.active { +.doc-sidebar .navbar-nav .nav-item .nav-link.active { color: #624BFF; } @@ -27163,7 +27083,7 @@ body { } .apexcharts-tooltip .apexcharts-tooltip-series-group { background: #fff !important; - color: #212529; + color: #212B36; padding: 3px 16px 6px 16px !important; display: none; text-align: left; @@ -27182,14 +27102,14 @@ body { } .apexcharts-tooltip.apexcharts-theme-light { - border: 1px solid #e9ecef !important; - background-color: #f8f9fa !important; + border: 1px solid #F4F6F8 !important; + background-color: #F9FAFB !important; background: #fff !important; } .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { background: #fff !important; - border-bottom: 1px solid #e9ecef !important; + border-bottom: 1px solid #F4F6F8 !important; } .apexcharts-tooltip-title { @@ -27199,10 +27119,75 @@ body { font-weight: 600 !important; } -pre[class*=language-].line-numbers { - position: initial; +/* Code blocks */ +code[class*=language-], pre[class*=language-] { + font-family: "Inter", "sans-serif"; +} + +pre[class*=language-] { + padding: 1em; + overflow: auto; + border-radius: 0.5rem !important; + margin: 0; +} + +:not(pre) > code[class*=language-], +pre[class*=language-] { + background: #161C24; +} + +div.code-toolbar { + position: relative; +} +div.code-toolbar > .toolbar { + position: absolute; + top: 0; + right: 0; + transition: opacity 0.3s ease-in-out; + opacity: 0; + padding: 0.5rem; +} +div.code-toolbar:hover > .toolbar, div.code-toolbar:focus-within > .toolbar { + opacity: 1; +} +div.code-toolbar > .toolbar > .toolbar-item { + display: inline-block; +} +div.code-toolbar > .toolbar > .toolbar-item > a { + cursor: pointer; +} +div.code-toolbar > .toolbar > .toolbar-item > button { + background: none; + border: 0; + color: #212B36; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; +} +div.code-toolbar > .toolbar > .toolbar-item > a, div.code-toolbar > .toolbar > .toolbar-item > button, div.code-toolbar > .toolbar > .toolbar-item > span { + color: #212B36; + font-size: 0.75rem; + padding: 0.25rem 0.5rem; + background: #fff; + font-weight: 600; + border-radius: 0.25rem; +} +div.code-toolbar > .toolbar > .toolbar-item > a:hover, div.code-toolbar > .toolbar > .toolbar-item > a:focus { + color: #212B36; + text-decoration: none; +} +div.code-toolbar > .toolbar > .toolbar-item > button:hover, div.code-toolbar > .toolbar > .toolbar-item > button:focus { + color: #212B36; + text-decoration: none; +} +div.code-toolbar > .toolbar > .toolbar-item > span:hover, div.code-toolbar > .toolbar > .toolbar-item > span:focus { + color: inherit; + text-decoration: none; } +/* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ .heading-permalink { color: transparent; margin-left: -2rem; diff --git a/src/assets/js/copyButton.js b/src/assets/js/copyButton.js deleted file mode 100644 index 87f52bd..0000000 --- a/src/assets/js/copyButton.js +++ /dev/null @@ -1,61 +0,0 @@ -// -// Copy button -// - -'use strict'; - -(function () { - - // Get the elements. - // - the 'pre' element. - // - the 'div' with the 'paste-content' id. - - var pre = document.getElementsByTagName('pre'); - // var pasteContent = document.getElementById('paste-content'); - - // Add a copy button in the 'pre' element. - // which only has the className of 'language-'. - - for (var i = 0; i < pre.length; i++) { - var isLanguage = pre[i].children[0].className.indexOf('language-'); - - if (isLanguage === 0) { - var button = document.createElement('button'); - button.className = 'copy-button'; - button.textContent = 'Copy'; - - pre[i].appendChild(button); - } - }; - // Run Clipboard - - var copyCode = new Clipboard('.copy-button', { - target: function (trigger) { - return trigger.previousElementSibling; - } - }); - // On success: - // - Change the "Copy" text to "Copied". - // - Swap it to "Copy" in 2s. - // - Lead user to the "contenteditable" area with Velocity scroll. - - copyCode.on('success', function (event) { - event.clearSelection(); - event.trigger.textContent = 'Copied'; - window.setTimeout(function () { - event.trigger.textContent = 'Copy'; - }, 2000); - - }); - // On error (Safari): - // - Change the "Press Ctrl+C to copy" - // - Swap it to "Copy" in 2s. - - copyCode.on('error', function (event) { - event.trigger.textContent = 'Press "Ctrl + C" to copy'; - window.setTimeout(function () { - event.trigger.textContent = 'Copy'; - }, 5000); - }); - -})(); \ No newline at end of file diff --git a/src/assets/js/main.js b/src/assets/js/main.js index 2c190de..403540f 100644 --- a/src/assets/js/main.js +++ b/src/assets/js/main.js @@ -35,7 +35,7 @@ if ($(".nav-scroller").length) { $(".nav-scroller").slimScroll({ - height: "100%", + height: "97%", }); } diff --git a/src/assets/scss/theme/_variables.scss b/src/assets/scss/theme/_variables.scss index 91a9e33..13266c6 100644 --- a/src/assets/scss/theme/_variables.scss +++ b/src/assets/scss/theme/_variables.scss @@ -1,13 +1,13 @@ $white: #fff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #6c757d !default; -$gray-700: #495057 !default; -$gray-800: #343a40 !default; -$gray-900: #212529 !default; +$gray-100: #F9FAFB !default; +$gray-200: #F4F6F8 !default; +$gray-300: #DFE3E8 !default; +$gray-400: #C4CDD5 !default; +$gray-500: #919EAB !default; +$gray-600: #637381 !default; +$gray-700: #454F5B !default; +$gray-800: #212B36 !default; +$gray-900: #161C24 !default; $black: #000 !default; $red: #dc3545 !default; $orange: #fd7e14 !default; @@ -22,9 +22,8 @@ $info: $cyan !default; $warning: $yellow !default; $danger: $red !default; $light: $gray-100 !default; -$dark: $gray-900 !default; -$light: $gray-100 !default; -$dark: $gray-900 !default; +$dark: $gray-800 !default; + @@ -78,7 +77,7 @@ $theme-colors: ( "primary": $primary, // Body // // Settings for the `
` element. -$body-bg: $gray-200 !default; + $body-color: $gray-600 !default; // Typography // Font, line-height, and color for body text, headings, and more. @@ -159,6 +158,7 @@ $spacers: map-merge((0: 0, 1: ($spacer * 0.25), // 4px $border-radius: .375rem !default; $border-radius-lg: .5rem !default; $border-radius-sm: .2rem !default; + $smooth-shadow-sm: 0px 2px 4px rgba(0, 0, 20, 0.08), 0px 1px 2px rgba(0, 0, 20, 0.08)!default; @@ -224,6 +224,8 @@ $grid-gutter-width: 32px !default; $card-spacer-y: 1.5rem !default; $card-spacer-x: 1.5rem !default; +$card-inner-border-radius: .5rem !default; +$card-title-spacer-y: $spacer * 1.5 !default; @@ -255,7 +257,7 @@ $table-cell-padding-y-sm: .3rem !default; $table-cell-padding-x-sm: .6rem !default; -$table-accent-bg: rgba($gray-100, 0.7) !default; + $table-hover-bg: rgba($gray-100, 0.7) !default; diff --git a/src/assets/scss/theme/components/_docs.scss b/src/assets/scss/theme/components/_docs.scss index 5926276..5fa2676 100644 --- a/src/assets/scss/theme/components/_docs.scss +++ b/src/assets/scss/theme/components/_docs.scss @@ -165,50 +165,14 @@ - // Sidebar -.sidebar-nav-fixed { - position: sticky; - top: 4rem; - height: calc(100vh - 2rem); - overflow-y: auto; - padding-top: 4.0625rem; - border-left: 1px solid $gray-300; - ul { - list-style: none; - li { - a { - font-size: 0.8125rem; - color: $gray-600; - display: block; - padding: 0.125rem 1.5rem; - background: transparent; - border-radius: 0px; - border-left: 2px solid transparent; - line-height: 1.4375rem; - text-decoration: none; - transition: 0.5s ease; - &:hover { - color: $primary; - } - } - a.active { - display: block; - color: $primary; - background: transparent !important; - text-decoration: none; - border-left-color: $primary; - transition: 0.5s ease; - } - ul { - list-style: none; - padding-left: 0rem; - li { - a { - padding: 0.125rem 2.5rem; - } - } - } - } - } - } \ No newline at end of file + + // ratio + +.ratio{ + display: inline-block; + width: 10rem; + color: $gray-600; + background-color: $gray-100; + border: 1px solid $gray-200; +} \ No newline at end of file diff --git a/src/assets/scss/theme/components/_layout.scss b/src/assets/scss/theme/components/_layout.scss index 93e083e..af28c94 100644 --- a/src/assets/scss/theme/components/_layout.scss +++ b/src/assets/scss/theme/components/_layout.scss @@ -129,54 +129,4 @@ - // Copy Button - -.copy-button { - cursor: pointer; - border: 0; - font-size: 0.875rem; - line-height: 1.125rem; - text-transform: capitalize; - font-weight: 600; - padding: 0.25rem 0.5rem; - color: $primary; - background-color: #fff; - position: absolute; - top: 0.875rem; - right: 0.625rem; - border-radius: 0.25rem; - border: 1px solid $primary; - &:hover { - outline: 0; - background-color: $white; - color: $primary; - } - &:focus { - outline: 0; - background-color: $white; - color: $primary; - } - &:active { - outline: 0; - background-color: $white; - color: $primary; - } -} -.content-section { - padding: 2.5rem; -} -.content-section--paste { - margin-top: 3.75rem; - background-color: $gray-200; - h1 { - font-size: 0.75rem; - color: $gray-600; - text-transform: uppercase; - } -} -.copy-content { - position: relative; -} -.copy-content-height { - overflow: auto; -} + \ No newline at end of file diff --git a/src/assets/scss/theme/components/_nav.scss b/src/assets/scss/theme/components/_nav.scss index 434bcf2..3d3f194 100644 --- a/src/assets/scss/theme/components/_nav.scss +++ b/src/assets/scss/theme/components/_nav.scss @@ -6,7 +6,7 @@ color: $gray-600; border-radius: 0px; margin-bottom: -1px; - padding: 1.2rem; + padding: .875rem 1.25rem; font-weight: 500; @media (max-width: 576px) { padding: 0.8rem; diff --git a/src/assets/scss/theme/components/_navbar-vertical.scss b/src/assets/scss/theme/components/_navbar-vertical.scss index 1f3598c..8f2d0ca 100644 --- a/src/assets/scss/theme/components/_navbar-vertical.scss +++ b/src/assets/scss/theme/components/_navbar-vertical.scss @@ -10,8 +10,8 @@ width: 100%; max-width: 250px; padding: 0rem; - background-color: $gray-900; - border-right: 1px solid $gray-900; + background-color: $gray-800; + border-right: 1px solid $gray-800; -webkit-transition: margin 0.25s ease-out; -moz-transition: margin 0.25s ease-out; -o-transition: margin 0.25s ease-out; diff --git a/src/assets/scss/theme/components/_sidenav.scss b/src/assets/scss/theme/components/_sidenav.scss index 78a7938..5b39446 100644 --- a/src/assets/scss/theme/components/_sidenav.scss +++ b/src/assets/scss/theme/components/_sidenav.scss @@ -12,7 +12,6 @@ @media(max-width: 768px) { // Docs nav sidebar .docs-nav-sidebar { - .navbar-toggler { background-color: $white; } @@ -41,19 +40,19 @@ -.demo-sidebar{ +.doc-sidebar{ z-index: 2; width: 13.625rem; - border-right: 1px solid $gray-200; - + border-right: 1px solid $gray-300; position: fixed; - height: 100vh; + height: 100%; overflow: auto; + - @media(max-width:768px) { + @media(max-width:990px) { width: 100%; position: relative; border: 0; @@ -68,9 +67,9 @@ .navbar-nav{ padding-top: 1rem; .navbar-header { - margin-bottom: 1rem; + margin-bottom: .5rem; padding: 0rem 1rem; - margin-top: 1.5625rem; + margin-top: 2rem; font-size: 0.75rem; .heading { font-size: 0.75rem; @@ -89,7 +88,7 @@ color: $gray-800; font-size: .875rem; line-height: 1.25rem; - padding: 0.6rem 1rem; + padding: 0.25rem 1rem; font-family: $font-family-sans-serif; font-weight: 500; diff --git a/src/assets/scss/theme/components/_table.scss b/src/assets/scss/theme/components/_table.scss index aa002ae..47547c5 100644 --- a/src/assets/scss/theme/components/_table.scss +++ b/src/assets/scss/theme/components/_table.scss @@ -14,11 +14,11 @@ .table thead th { - font-weight: 600; + font-weight: 500; padding: 0.75rem 1.5rem; - text-transform: uppercase; - letter-spacing: 0.05em; - font-size: 0.75rem; + text-transform: capitalize; + + font-size: 0.875rem; color: $gray-600; } diff --git a/src/assets/scss/theme/vendor/prismJs/_prism.scss b/src/assets/scss/theme/vendor/prismJs/_prism.scss index 95bec48..7f096c5 100644 --- a/src/assets/scss/theme/vendor/prismJs/_prism.scss +++ b/src/assets/scss/theme/vendor/prismJs/_prism.scss @@ -1,7 +1,92 @@ -// prism +// Prism -pre[class*="language-"].line-numbers{ - position: initial; -} \ No newline at end of file +/* Code blocks */ +code[class*="language-"], pre[class*="language-"]{ + + font-family: $font-family-base; +} +pre[class*="language-"] { + padding: 1em; + overflow: auto; + + border-radius: 0.5rem !important; + margin: 0; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: $gray-900; +} + + +div.code-toolbar { + position: relative; + + > .toolbar { + position: absolute; + top: 0; + right: 0; + transition: opacity 0.3s ease-in-out; + opacity: 0; + padding: .5rem; + } + + &:hover > .toolbar, &:focus-within > .toolbar { + opacity: 1; + } + + > .toolbar > .toolbar-item { + display: inline-block; + + > { + a { + cursor: pointer; + } + + button { + background: none; + border: 0; + color: $dark; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + + } + + a, button, span { + color: $dark; + font-size: .75rem; + padding: .25rem .5rem; + background: $white; + font-weight: 600; + border-radius: .25rem; + } + + a { + &:hover, &:focus { + color: $dark; + text-decoration: none; + } + } + + button { + &:hover, &:focus { + color: $dark; + text-decoration: none; + } + } + + span { + &:hover, &:focus { + color: inherit; + text-decoration: none; + } + } + } + } +} + +/* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ \ No newline at end of file diff --git a/src/components/accordions.html b/src/components/accordions.html deleted file mode 100644 index 2dbf4e6..0000000 --- a/src/components/accordions.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - @@include("../partials/head.html") -Build vertically collapsing accordions in combination with our Collapse JavaScript plugin.
-Click the accordions below to expand/collapse the accordion content.
-.accordion-body
,
- though the transition does limit overflow.
- .accordion-body
,
- though the transition does limit overflow.
- .accordion-body
,
- though the transition does limit overflow.
- Add .accordion-flush
to remove the default background-color
, some borders, and some rounded corners to render accordions edge-to-edge with their parent container.
.accordion-flush
class. This is the first item's accordion body..accordion-flush
class. This is the second item's accordion body. Let's imagine this being filled with some actual content..accordion-flush
class. This is the third item's accordion body. Nothing more exciting happening here in terms of content, but just
- filling up the space to make it look, at least at first glance, a bit more representative of how this would look in a real-world application.- Bootstrap alerts are feedback messages which are displayed after specific actions preceded by the user. Length of the text is not limited. -
-Alerts are available for any length of text, as well as an optional dismiss button. For proper styling, use one of the eight required contextual classes (e.g.,
- .alert-success
).
-
Use the .alert-link
utility class to quickly provide matching colored links within any alert.
Alerts can also contain additional HTML elements like headings, paragraphs and dividers.
-Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content. -
-Whenever you need to, be sure to use margin utilities to keep things nice and tidy. -
-Similarly, you can use Bootstrap Icons to create alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles.
-Using the alert JavaScript plugin, it’s possible to dismiss any alert inline. Here’s how:
-- Documentation and examples for badges, our small count and labeling component. -
-
- Badges scale to match the size of the immediate parent element by using relative font sizing and
- em
units.
-
- Badges can be used as part of links or buttons to - provide a counter. -
-
- Use the
- .rounded-pill
- modifier class to make badges more rounded (with a
- larger
- border-radius
and
- additional horizontal
- padding
). Useful
- if you miss the badges from v3.
-
- Use .badge-dot
classes on an
- <a>
- element quickly provide
- actionable badges with hover and focus states.
-
Indicate the current page’s location within a navigational hierarchy - that automatically adds separators via CSS.
-Dividers are automatically added in CSS through ::before
and content
. They can be changed by modifying a local CSS custom property --bs-breadcrumb-divider
, or through the $breadcrumb-divider
Sass variable — and $breadcrumb-divider-flipped
for its RTL counterpart, if needed. We default to our Sass variable, which is set as a fallback to the custom property. This way, you get a global divider that you can override without recompiling CSS at any time.
Indicate the current page’s location within a navigational hierarchy that automatically adds separators via CSS.
-Fancy larger or smaller buttons? Add .btn-lg
or .btn-sm
for additional sizes.
Here we create a responsive variation, starting with vertically stacked buttons until the md
breakpoint, where .d-md-block
replaces the .d-grid
class, thus nullifying the gap-2
utility.
- Resize your browser to see them change.
You can adjust the width of your block buttons with grid column width classes. For example, for a half-width “block button”, use .col-6
. Center it horizontally with .mx-auto
, too.
Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we’ve taken our previous responsive example and added some flex utilities and a margin utility on the button to right align the buttons when they’re - no longer stacked.
- -Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active. There’s no need to add a class to <button>
s as they use a
- pseudo-class. However, you can still force the same active appearance with .active
(and include the
- aria-pressed="true"
attribute) should you need to replicate the state programmatically.
-
Make buttons look inactive by adding the disabled
boolean attribute to any <button>
element.
Add data-bs-toggle="button"
to toggle a button’s active
state. If you’re pre-toggling a button, you must manually add the .active
class and
- aria-pressed="true"
to the <button>
.
Geek's cards provide a flexible and extensible content container with multiple variants and options. -
-Below is an example of a basic card with mixed content and a fixed width.
-Some quick example text to build on the card title and make up the bulk of the card's content.
- Go somewhere -The building block of a card is the .card-body
. Use it whenever you need a padded section within a card.
Card titles are used by adding .card-title
to a <h*>
tag. In the same way, links are added and placed next to each other by adding
- .card-link
to an <a>
tag.
Subtitles are used by adding a .card-subtitle
to a <h*>
tag. If the .card-title
and the
- .card-subtitle
items are placed in a
- .card-body
item, the card title and subtitle are aligned nicely.
-
Some quick example text to build on the card title and make up the bulk of the card's content.
- Card link - Another link -.card-img-top
places an image to the top of the card. With
- .card-text
, text can be added to the card. Text within
- .card-text
can also be styled with the standard HTML tags.
-
Some quick example text to build on the card title and make up the bulk of the card's content.
-Mix and match multiple content types to create the card you need, or throw everything in there. Shown below are image styles, blocks, text styles, and a list group—all wrapped in a fixed-width card. -
-Some quick example text to build on the card title and make up the bulk of the card's content.
-You can quickly change the text alignment of any card—in its entirety or specific parts—with our text align classes.
-With supporting text below as a natural lead-in to additional content. -
- Go somewhere -With supporting text below as a natural lead-in to additional content. -
- Go somewhere -With supporting text below as a natural lead-in to additional content. -
- Go somewhere -Cards include a few options for working with images. Choose from appending “image caps” at either end of a card, overlaying images with card content, or simply embedding the image in a card.
-Similar to headers and footers, cards can include top and bottom “image caps”—images at the top or bottom of a card.
-This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-Last updated 3 - mins ago
-This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-Last updated 3 - mins ago
-Turn an image into a card background and overlay your card’s text. Depending on the image, you may or may not need additional styles or utilities.
-A slideshow component for cycling through elements—images or slides of text—like a carousel.
-Here’s a carousel with slides only. Note the presence of the .d-block
and .w-100
on carousel images to prevent browser default image alignment.
-
Adding in the previous and next controls:
-You can also add the indicators to the carousel, alongside the controls, too. -
-Add .carousel-fade
to your carousel to animate slides with a fade transition instead of a slide.
Add data-bs-interval=""
to a .carousel-item
to change the amount of time to delay between automatically cycling to the next item.
Add .carousel-dark
to the .carousel
for darker controls, indicators, and captions. Controls have been inverted from their default white fill with the filter
CSS property. Captions and controls
- have additional Sass variables that customize the color
and slide-img-color
.
Toggle the visibility of content across your project with a few classes and our JavaScript plugins.
-Click the buttons below to show and hide another element via class changes: -
-.collapse
hides content.collapsing
is applied during transitions
- .collapse.show
shows contentYou can use a link with the href
attribute, or a button with the data-bs-target
attribute. In both cases, the data-bs-toggle="collapse"
is required.
-
- - Link with href - - -
-A <button>
or <a>
can show and hide multiple elements by referencing them with a JQuery selector in its href
or data-bs-target
attribute. Multiple <button>
or <a>
can show and hide an element if they each reference
- it with their href
or data-bs-target
attribute
- Toggle first element - - -
-Using the card component, you can extend the default collapse behavior to create an accordion. To properly achieve the accordion style, be sure to use
- .accordion
as a wrapper.
- Toggle contextual overlays for displaying lists of links and more with the Bootstrap dropdown plugin. -
-The best part is you can do this with any button variant, too:
-The best part is you can do this with any button variant, too:
-Button dropdowns work with buttons of all sizes, including default and split dropdown buttons.
-Trigger dropdown menus above elements by adding .dropup
,.dropleft
,.dropright
to the parent element.
By default, a dropdown menu is automatically positioned 100% from the top and along the left side of its parent. Add .dropdown-menu-right
to a .dropdown-menu
to right align the dropdown menu.
By default, a dropdown menu is automatically positioned 100% from the top and along the left side of its parent. Add .dropdown-menu-right
to a .dropdown-menu
to right align the dropdown menu.
Separate groups of related menu items with a divider.
-Put a form within a dropdown menu, or make it into a dropdown menu, and use - margin or padding utilities to give it the negative space you require.
-Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms. -
-Textual form controls—like <input>
s,
- <select>
s, and <textarea>
s—are styled with the
- .form-control
class. Included are styles for general appearance, focus state, sizing, and more.
Set heights using classes like .form-control-lg
and .form-control-sm
.
You may also choose from small and large custom selects to match our similarly sized text inputs. -
-It provides valuable, actionable feedback to your users with HTML5 form validation. -
-Use readonly
or disabled
attributes for
- .form-control
Create custom <input
- type="range">
controls with .custom-range.
The track (the background) and thumb (the value) are both styled to appear the same across browsers. As only IE and Firefox support “filling”
- their track from the left or right of the thumb as a means to visually indicate progress, we do not currently support it.
Add the disabled
boolean attribute on an input to give it a grayed out appearance and remove pointer events.
Add the disabled
boolean attribute on an input to give it a grayed out appearance and remove pointer events.
By default, range inputs “snap” to integer values. To change this, you can specify a step
value. In the example below, we double the number of steps by using step="0.5"
.
Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms. -
-Place one add-on or button on either side of an input. You may also place one on both sides of an input. Remember to place <label>
s outside the input group.
-
Add the relative form sizing classes to the .input-group
itself and contents within will automatically resize—no need for repeating the form control size classes on each element.
-
Place any checkbox or radio option within an input group’s addon instead of text. -
-While multiple <input>
s are supported visually, validation styles are only available for input groups with a single <input>
.
Multiple add-ons are supported and can be mixed with checkbox and radio input versions. -
-The most basic list group is an unordered list with list items and the proper classes. Build upon it with the options that follow, or with your own CSS as needed. -
-The most basic list group is an unordered list with list items and the proper classes. Build upon it with the options that follow, or with your own CSS as needed. -
-Add .active
to a .list-group-item
to indicate the current active selection.
Add .disabled
to a .list-group-item
to make it
- appear disabled. Note that some elements with .disabled
will also require custom JavaScript to fully disable their click events (e.g., links).
With <button>
s, you can also make use of the disabled
attribute instead of the .disabled
class. Sadly,
- <a>
s don’t support the disabled attribute.
Add .list-group-flush
to remove some borders and rounded corners to render list group items edge-to-edge in a parent container (e.g., cards).
Add .list-group-horizontal
to change the layout of list group items from vertical to horizontal across all breakpoints. Alternatively, choose a responsive variant .list-group-horizontal-{sm|md|lg|xl}
to make a list group horizontal starting at that breakpoint’s min-width
. Currently horizontal
- list groups cannot be combined with flush list groups.
ProTip: Want equal-width list group items when horizontal? Add .flex-fill
to each list group item.
-
Use contextual classes to style list items with a stateful background and color. -
-Add badges to any list group item to show unread counts, activity, and more with the help of some - utilities.
-Add nearly any HTML within, even for linked list groups like the one below, with the help of flexbox utilities.
-Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
- Donec id elit non mi porta. - - -Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
- Donec id elit non mi porta. - - -Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
- Donec id elit non mi porta. - -- Documentation and examples for Bootstrap’s powerful, responsive navigation header, the navbar. - Includes support for branding, navigation, and more, including support for our collapse plugin. -
-Build hidden sidebars into your project for navigation, shopping carts, and more with a few classes and our JavaScript plugin.
-Below is an offcanvas example that is shown by default (via .show
on .offcanvas
). Offcanvas includes support for a header with a close button and an optional body class for some initial padding
.
- We suggest that you include offcanvas headers with dismiss actions whenever possible, or provide an explicit dismiss action.
Use the buttons below to show and hide an offcanvas element via JavaScript that toggles the .show
class on an element with the .offcanvas
class.
There’s no default placement for offcanvas components, so you must add one of the modifier classes below;
-.offcanvas-start
places offcanvas on the left of the viewport (shown above).offcanvas-end
places offcanvas on the right of the viewport.offcanvas-top
places offcanvas on the top of the viewport.offcanvas-bottom
places offcanvas on the bottom of the viewportTry the top, right, and bottom examples out below.
-Scrolling the <body>
element is disabled when an offcanvas and its backdrop are visible. Use the data-bs-scroll
attribute to toggle <body>
scrolling and data-bs-backdrop
to toggle the backdrop.
Try scrolling the rest of the page to see this option in action.
-.....
-Try scrolling the rest of the page to see this option in action.
-Documentation and examples for adding Bootstrap popovers, like those found in iOS, to any element on your site.
-Four options are available: top, right, bottom, and left aligned.
-Use the focus
trigger to dismiss popovers on the user’s next click of a different element than the toggle element.
-
Documentation and examples for using Bootstrap custom progress bars featuring support for stacked bars, animated backgrounds, and text labels.
-Add labels to your progress bars by placing text within the .progress-bar
.
We only set a height
value on the
- .progress
, so if you change that value the inner .progress-bar
will automatically resize accordingly.
Use background utility classes to change the appearance of individual progress bars.
-Add .progress-bar-striped
to any .progress-bar
to apply a stripe via CSS gradient over the progress bar’s background color.
The striped gradient can also be animated. Add .progress-bar-animated
to .progress-bar
to animate the stripes right to left via CSS3 animations.
-
Automatically update Bootstrap navigation or list group components based on scroll position to indicate which link is currently active in the viewport.
-Scrollspy also works with .list-group
s. Scroll the area next to the list group and watch the active class change.
Ex consequat commodo adipisicing exercitation aute excepteur occaecat ullamco duis aliqua id magna ullamco eu. Do aute ipsum ipsum ullamco cillum consectetur ut et aute consectetur labore. Fugiat laborum incididunt tempor - eu consequat enim dolore proident. Qui laborum do non excepteur nulla magna eiusmod consectetur in. Aliqua et aliqua officia quis et incididunt voluptate non anim reprehenderit adipisicing dolore ut consequat deserunt mollit - dolore. Aliquip nulla enim veniam non fugiat id cupidatat nulla elit cupidatat commodo velit ut eiusmod cupidatat elit dolore.
-Quis magna Lorem anim amet ipsum do mollit sit cillum voluptate ex nulla tempor. Laborum consequat non elit enim exercitation cillum aliqua consequat id aliqua. Esse ex consectetur mollit voluptate est in duis laboris ad - sit ipsum anim Lorem. Incididunt veniam velit elit elit veniam Lorem aliqua quis ullamco deserunt sit enim elit aliqua esse irure. Laborum nisi sit est tempor laborum mollit labore officia laborum excepteur commodo non - commodo dolor excepteur commodo. Ipsum fugiat ex est consectetur ipsum commodo tempor sunt in proident.
-Quis anim sit do amet fugiat dolor velit sit ea ea do reprehenderit culpa duis. Nostrud aliqua ipsum fugiat minim proident occaecat excepteur aliquip culpa aute tempor reprehenderit. Deserunt tempor mollit elit ex pariatur - dolore velit fugiat mollit culpa irure ullamco est ex ullamco excepteur.
-Quis anim sit do amet fugiat dolor velit sit ea ea do reprehenderit culpa duis. Nostrud aliqua ipsum fugiat minim proident occaecat excepteur aliquip culpa aute tempor reprehenderit. Deserunt tempor mollit elit ex pariatur - dolore velit fugiat mollit culpa irure ullamco est ex ullamco excepteur.
-Indicate the loading state of a component or page with Bootstrap spinners, built entirely with HTML, CSS, and no JavaScript. -
-Use the border spinners for a lightweight loading indicator.
-The border spinner uses currentColor
for its border-color
, meaning you can customize the color with text color utilities. You can use any
- of our text color utilities on the standard spinner.
Once again, this spinner is built with currentColor
, so you can easily change its appearance with text color
- utilities. Here it is in blue, along with the supported variants.
-
Spinners in Bootstrap are built with rem
s, currentColor
, and display:
- inline-flex
. This means they can easily be resized, recolored, and quickly aligned.
Use margin utilities like .m-5
for easy spacing.
-
Use flexbox utilities, float utilities, or - text alignment utilities to place spinners exactly where you need them in any situation.
-Add .spinner-border-sm
and .spinner-grow-sm
to make a smaller spinner that can quickly be used within other components.
Or, use custom CSS or inline styles to change the dimensions as needed.
-Push notifications to your visitors with a toast, a lightweight and easily customizable alert message.
-To encourage extensible and predictable toasts, we recommend a header and body. Toast headers use display:
- flex
, allowing easy alignment of content thanks to our margin and flexbox utilities.
-
When you have multiple toasts, we default to vertically stacking them in a readable manner.
-Place toasts with custom CSS as you need them. The top right is often used for notifications, as is the top middle. If you’re only ever going to show one toast at a time, put the positioning styles right on the
- .toast
.
For systems that generate more notifications, consider using a wrapping element so they can easily stack.
-You can also get fancy with flexbox utilities to align toasts horizontally and/or vertically.
-Toasts are intended to be small interruptions to your visitors or users, so to help those with screen readers and similar assistive technologies, you should wrap your toasts in an
- aria-live
region. Changes to live regions (such as injecting/updating a toast component) are automatically announced by screen readers without needing to move the
- user’s focus or otherwise interrupt the user. Additionally, include aria-atomic="true"
to ensure that the entire toast is always announced as a single (atomic) unit, rather than announcing what
- was changed (which could lead to problems if you only update part of the toast’s content, or if displaying the same toast content at a later point in time). If the information needed is important for the process, e.g. for a list
- of errors in a form, then use the alert component instead of toast.
-
Documentation and examples for adding custom Bootstrap tooltips with - CSS and JavaScript using CSS3 for animations and data-attributes for local title storage.
-Hover over the buttons below to see the four tooltips directions: top, right, bottom, and left. -
-+ Build vertically collapsing accordions in combination with our Collapse JavaScript plugin. +
++ Click the accordions below to expand/collapse the + accordion content. +
+.accordion-body
, though the
+ transition does limit overflow.
+ .accordion-body
, though the
+ transition does limit overflow.
+ .accordion-body
, though the
+ transition does limit overflow.
+ <!-- Accordion Example -->
+
+<div class="accordion" id="accordionExample">
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="headingOne">
+ <button class="accordion-button" type="button" data-bs-toggle="collapse"
+ data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
+ Accordion Item #1
+ </button>
+ </h2>
+ <div id="collapseOne" class="accordion-collapse collapse show"
+ aria-labelledby="headingOne" data-bs-parent="#accordionExample">
+ <div class="accordion-body">
+ <strong>This is the first item's accordion
+ body.</strong>
+ It is hidden by default, until the collapse
+ plugin adds the appropriate classes that we
+ use to style each element. These classes
+ control the overall appearance, as well as
+ the showing and hiding via CSS transitions.
+ You can modify any of this with custom CSS
+ or overriding our default variables. It's
+ also worth noting that just about any HTML
+ can go within the
+ <code>.accordion-body</code>, though the
+ transition does limit overflow.
+ </div>
+ </div>
+ </div>
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="headingTwo">
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
+ data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
+ Accordion Item #2
+ </button>
+ </h2>
+ <div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo"
+ data-bs-parent="#accordionExample">
+ <div class="accordion-body">
+ <strong>This is the second item's accordion
+ body.</strong>
+ It is hidden by default, until the collapse
+ plugin adds the appropriate classes that we
+ use to style each element. These classes
+ control the overall appearance, as well as
+ the showing and hiding via CSS transitions.
+ You can modify any of this with custom CSS
+ or overriding our default variables. It's
+ also worth noting that just about any HTML
+ can go within the
+ <code>.accordion-body</code>, though the
+ transition does limit overflow.
+ </div>
+ </div>
+ </div>
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="headingThree">
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
+ data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
+ Accordion Item #3
+ </button>
+ </h2>
+ <div id="collapseThree" class="accordion-collapse collapse"
+ aria-labelledby="headingThree" data-bs-parent="#accordionExample">
+ <div class="accordion-body">
+ <strong>This is the third item's accordion
+ body.</strong>
+ It is hidden by default, until the collapse
+ plugin adds the appropriate classes that we
+ use to style each element. These classes
+ control the overall appearance, as well as
+ the showing and hiding via CSS transitions.
+ You can modify any of this with custom CSS
+ or overriding our default variables. It's
+ also worth noting that just about any HTML
+ can go within the
+ <code>.accordion-body</code>, though the
+ transition does limit overflow.
+ </div>
+ </div>
+ </div>
+</div>
+
+
+ Add .accordion-flush
to remove the default
+ background-color
, some borders, and some
+ rounded corners to render accordions edge-to-edge with
+ their parent container.
+
.accordion-flush
class. This is
+ the first item's accordion body.
+ .accordion-flush
class. This is
+ the second item's accordion body. Let's
+ imagine this being filled with some actual
+ content.
+ .accordion-flush
class. This is
+ the third item's accordion body. Nothing
+ more exciting happening here in terms of
+ content, but just filling up the space to
+ make it look, at least at first glance, a
+ bit more representative of how this would
+ look in a real-world application.
+ <!-- Accordion flush -->
+
+<div class="accordion accordion-flush" id="accordionFlushExample">
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="flush-headingOne">
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
+ data-bs-target="#flush-collapseOne" aria-expanded="false"
+ aria-controls="flush-collapseOne">
+ Accordion Item #1
+ </button>
+ </h2>
+ <div id="flush-collapseOne" class="accordion-collapse collapse"
+ aria-labelledby="flush-headingOne" data-bs-parent="#accordionFlushExample">
+ <div class="accordion-body">Placeholder content for this accordion, which is intended
+ to demonstrate the <code>.accordion-flush</code> class. This is the first item's
+ accordion body.
+ </div>
+ </div>
+ </div>
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="flush-headingTwo">
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
+ data-bs-target="#flush-collapseTwo" aria-expanded="false"
+ aria-controls="flush-collapseTwo">
+ Accordion Item #2
+ </button>
+ </h2>
+ <div id="flush-collapseTwo" class="accordion-collapse collapse"
+ aria-labelledby="flush-headingTwo" data-bs-parent="#accordionFlushExample">
+ <div class="accordion-body">Placeholder content for this accordion, which is intended
+ to demonstrate the <code>.accordion-flush</code> class. This is the second item's
+ accordion body. Let's imagine this being filled with
+ some actual content.
+ </div>
+ </div>
+ </div>
+ <div class="accordion-item">
+ <h2 class="accordion-header" id="flush-headingThree">
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
+ data-bs-target="#flush-collapseThree" aria-expanded="false"
+ aria-controls="flush-collapseThree">
+ Accordion Item #3
+ </button>
+ </h2>
+ <div id="flush-collapseThree" class="accordion-collapse collapse"
+ aria-labelledby="flush-headingThree" data-bs-parent="#accordionFlushExample">
+ <div class="accordion-body">Placeholder content for this accordion, which is intended
+ to demonstrate the <code>.accordion-flush</code> class. This is the third item's
+ accordion body. Nothing more exciting happening here
+ in terms of content, but just filling up the space to make it look, at least at
+ first glance, a bit more representative of how this would look in a real-world
+ application.
+ </div>
+ </div>
+ </div>
+</div>
+
+ Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. + +
+Alerts are available for any length of text, as well as an optional dismiss button. For proper
+ styling, use one of the eight required contextual classes (e.g.,
+ .alert-success
).
+
<!-- Primary alert -->
+<div class="alert alert-primary" role="alert">
+ This is a primary alert—check it out!
+</div>
+
+<!-- Secondary alert -->
+<div class="alert alert-secondary" role="alert">
+ This is a secondary alert—check it out!
+</div>
+
+<!-- Success alert -->
+<div class="alert alert-success" role="alert">
+ This is a success alert—check it out!
+</div>
+
+<!-- Danger alert -->
+<div class="alert alert-danger" role="alert">
+ This is a danger alert—check it out!
+</div>
+
+<!-- Warning alert -->
+<div class="alert alert-warning" role="alert">
+ This is a warning alert—check it out!
+</div>
+
+<!-- Info alert -->
+<div class="alert alert-info" role="alert">
+ This is a info alert—check it out!
+</div>
+
+<!-- Light alert -->
+<div class="alert alert-light" role="alert">
+ This is a light alert—check it out!
+</div>
+
+<!-- Dark alert -->
+<div class="alert alert-dark" role="alert">
+ This is a dark alert—check it out!
+</div>
+
+
+ Click the button below to show an alert (hidden with inline styles to start), then dismiss (and destroy) it with the built-in close button.
+<!-- Live Alert -->
+
+<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
+ <div class="alert alert-primary alert-dismissible" role="alert" id="liveAlert">
+ <strong>Nice!</strong> You've triggered this alert.
+ <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
+</div>
+
+ Use the .alert-link
utility class to quickly provide
+ matching colored links within any alert.
<!-- Primary alert -->
+ <div class="alert alert-primary" role="alert">
+ A simple primary alert with <a href="#" class="alert-link">an
+ example link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Secondary alert -->
+ <div class="alert alert-secondary" role="alert">
+ A simple secondary alert with <a href="#" class="alert-link">an
+ example link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Success alert -->
+ <div class="alert alert-success" role="alert">
+ A simple success alert with <a href="#" class="alert-link">an
+ example link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Danger alert -->
+ <div class="alert alert-danger" role="alert">
+ A simple danger alert with <a href="#" class="alert-link">an example
+ link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Warning alert -->
+ <div class="alert alert-warning" role="alert">
+ A simple warning alert with <a href="#" class="alert-link">an
+ example link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Info alert -->
+ <div class="alert alert-info" role="alert">
+ A simple info alert with <a href="#" class="alert-link">an example
+ link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Light alert -->
+ <div class="alert alert-light" role="alert">
+ A simple light alert with <a href="#" class="alert-link">an example
+ link</a>. Give it a click if you like.
+ </div>
+
+ <!-- Dark alert -->
+ <div class="alert alert-dark" role="alert">
+ A simple dark alert with <a href="#" class="alert-link">an example
+ link</a>. Give it a click if you like.
+ </div>
+
+
+ Alerts can also contain additional HTML elements like headings, paragraphs and dividers.
+Aww yeah, you successfully read this important alert message. This example text is going to + run a bit longer so that you can see how spacing within an alert works with this kind of + content. +
+Whenever you need to, be sure to use margin utilities to keep things nice and + tidy.
+<!-- Additional content -->
+
+ <div class="alert alert-success" role="alert">
+ <h4 class="alert-heading">Well done!</h4>
+ <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
+ <hr>
+ <p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
+</div>
+
+ Similarly, you can use Bootstrap Icons to create alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles.
+<!-- Primary alert -->
+ <div class="alert alert-primary d-flex align-items-center" role="alert">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-info-circle-fill me-2" viewBox="0 0 16 16">
+ <path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
+ </svg>
+ <div>
+ An example alert with an icon
+ </div>
+ </div>
+
+ <!-- Success alert -->
+ <div class="alert alert-success d-flex align-items-center" role="alert">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-check-circle-fill me-2" viewBox="0 0 16 16">
+ <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
+ </svg>
+ <div>
+ An example success alert with an icon
+ </div>
+ </div>
+
+ <!-- Warning alert -->
+ <div class="alert alert-warning d-flex align-items-center" role="alert">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill me-2" viewBox="0 0 16 16">
+ <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
+ </svg>
+ <div>
+ An example warning alert with an icon
+ </div>
+ </div>
+
+ <!-- Danger alert -->
+ <div class="alert alert-danger d-flex align-items-center" role="alert">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill me-2" viewBox="0 0 16 16">
+ <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
+ </svg>
+ <div>
+ An example danger alert with an icon
+ </div>
+ </div>
+ Using the alert JavaScript plugin, it’s possible to dismiss any alert inline. Here’s how:
+<!-- Dismissing alert -->
+
+ <div class="alert alert-warning alert-dismissible fade show" role="alert">
+ <strong>Holy guacamole!</strong> You should check in on some of those fields below.
+ <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
+ <span aria-hidden="true">×</span>
+ </button>
+</div>
+
+ Documentation and examples for badges, our small count and labeling + component.
+Use our background utility classes to quickly change the appearance of a badge. Please note that
+ when using Bootstrap’s default .bg-light
, you’ll likely need a text color utility
+ like .text-dark
for proper styling. This is because background utilities do not set
+ anything but background-color
.
<!-- Primary badge -->
+ <span class="badge bg-primary">Primary</span>
+
+ <!-- Secondary badge -->
+ <span class="badge bg-secondary">Secondary</span>
+
+ <!-- Success badge -->
+ <span class="badge bg-success">Success</span>
+
+ <!-- Danger badge -->
+ <span class="badge bg-danger">Danger</span>
+
+ <!-- Warning badge -->
+ <span class="badge bg-warning text-dark">Warning</span>
+
+ <!-- Info badge -->
+ <span class="badge bg-info text-dark">Info</span>
+
+ <!-- Light badge -->
+ <span class="badge bg-light text-dark">Light</span>
+
+ <!-- Dark badge -->
+ <span class="badge bg-dark">Dark</span>
+ Use the .rounded-pill
utility class to make badges more rounded with a larger
+ border-radius
.
<!-- Primary badge -->
+ <span class="badge rounded-pill bg-primary">Primary</span>
+
+ <!-- Secondary badge -->
+ <span class="badge rounded-pill bg-secondary">Secondary</span>
+
+ <!-- Success badge -->
+ <span class="badge rounded-pill bg-success">Success</span>
+
+ <!-- Danger badge -->
+ <span class="badge rounded-pill bg-danger">Danger</span>
+
+ <!-- Warning badge -->
+ <span class="badge rounded-pill bg-warning text-dark">Warning</span>
+
+ <!-- Info badge -->
+ <span class="badge rounded-pill bg-info text-dark">Info</span>
+
+ <!-- Light badge -->
+ <span class="badge rounded-pill bg-light text-dark">Light</span>
+
+ <!-- Dark badge -->
+ <span class="badge rounded-pill bg-dark">Dark</span>
+ Badges can be used as part of links or buttons to provide a counter.
+ <!-- Button -->
+ <button type="button" class="btn btn-primary">
+ Notifications <span class="badge bg-secondary">4</span>
+ </button>
+ Use utilities to modify a .badge
and position it in the corner of a link or button.
+
<!-- Positioned -->
+ <button type="button" class="btn btn-primary position-relative">
+ Inbox
+ <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
+ 99+
+ <span class="visually-hidden">unread messages</span>
+ </span>
+ </button>
+
+ You can also replace the .badge
class with a few more utilities without a count for
+ a more generic indicator.
<!-- Positioned -->
+ <button type="button" class="btn btn-primary position-relative">
+ Profile
+ <span class="position-absolute top-0 start-100 translate-middle p-2 bg-danger border border-light rounded-circle">
+ <span class="visually-hidden">New alerts</span>
+ </span>
+</button>
+
+ Use .badge-dot
classes on an <a>
+ element quickly provide
+ actionable badges with hover and focus states.
<!-- Primary badge -->
+ <span class="me-2"><span class="badge bg-dot bg-primary me-1"></span>
+ <span>Primary</span></span>
+
+ <!-- Secondary badge -->
+ <span class="me-2"><span class="badge bg-dot bg-secondary me-1"></span><span
+ class="text-secondary">Secondary</span></span>
+
+ <!-- Success badge -->
+ <span class="me-2"><span class="badge bg-dot bg-success me-1"></span><span
+ class="text-success">Success</span></span>
+
+ <!-- Danger badge -->
+ <span class="me-2"><span class="badge bg-dot bg-danger me-1"></span><span
+ class="text-danger">Danger</span></span>
+
+ <!-- Warning badge -->
+ <span class="me-2"><span class="badge bg-dot bg-warning me-1"></span><span
+ class="text-warning">Warning</span></span>
+
+ <!-- Info badge -->
+ <span class="me-2"><span class="badge bg-dot bg-info me-1"></span><span
+ class="text-info">Info</span></span>
+
+ <!-- Light badge -->
+ <span class="me-2"><span class="badge bg-dot bg-light me-1"></span><span
+ class="text-light">Light</span></span>
+
+ <!-- Dark badge -->
+ <span class="me-2"><span class="badge bg-dot bg-dark me-1"></span><span
+ class="text-dark">Dark</span></span>
+
+ Badges scale to match the size of the immediate parent element by using relative font sizing and
+ em
units.
+
<!-- Headings -->
+<h1>Example heading <span class="badge bg-secondary">New</span></h1>
+<h2>Example heading <span class="badge bg-secondary">New</span></h2>
+<h2>Example heading <span class="badge bg-secondary">New</span></h2>
+<h4>Example heading <span class="badge bg-secondary">New</span></h4>
+<h5>Example heading <span class="badge bg-secondary">New</span></h5>
+<h6>Example heading <span class="badge bg-secondary">New</span></h6>
+
+ Use border utilities to add or remove an element’s borders. Choose from all borders or one at a time.
Change the border color using utilities built on our theme colors.
Add classes to an element to easily round its corners.
Use .rounded-3
or .rounded-0
for larger or smaller border-radius.
Indicate the current page’s location within a navigational hierarchy + that automatically adds separators via CSS.
+<!-- Breadcrumb -->
+<nav aria-label="breadcrumb">
+ <ol class="breadcrumb">
+ <li class="breadcrumb-item active" aria-current="page">Home</li>
+ </ol>
+ </nav>
+
+ <!-- Breadcrumb -->
+ <nav aria-label="breadcrumb">
+ <ol class="breadcrumb">
+ <li class="breadcrumb-item"><a href="#">Home</a></li>
+ <li class="breadcrumb-item active" aria-current="page">Library</li>
+ </ol>
+ </nav>
+
+ <!-- Breadcrumb -->
+ <nav aria-label="breadcrumb">
+ <ol class="breadcrumb">
+ <li class="breadcrumb-item"><a href="#">Home</a></li>
+ <li class="breadcrumb-item"><a href="#">Library</a></li>
+ <li class="breadcrumb-item active" aria-current="page">Data</li>
+ </ol>
+</nav>
+ Dividers are automatically added in CSS through ::before
and content
. They can be changed by modifying a local CSS custom property --bs-breadcrumb-divider
, or through the $breadcrumb-divider
Sass variable — and $breadcrumb-divider-flipped
for its RTL counterpart, if needed. We default to our Sass variable, which is set as a fallback to the custom property. This way, you get a global divider that you can override without recompiling CSS at any time.
<!-- Breadcrumb -->
+<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
+ <ol class="breadcrumb">
+ <li class="breadcrumb-item"><a href="#">Home</a></li>
+ <li class="breadcrumb-item active" aria-current="page">Library</li>
+ </ol>
+</nav>
+
+ Group a series of buttons together on a single line with the button group, and super-power them with JavaScript.
+Group a series of buttons together on a single line with the button + group, and super-power them with JavaScript.
These classes can also be added to groups of links, as an alternative to the navigation components.
+These classes can also be added to groups of links, as an alternative to the navigation components.
- <!-- Mixed Style -->
+<div class="btn-group" role="group" aria-label="Basic mixed styles example">
+ <button type="button" class="btn btn-danger">Left</button>
+ <button type="button" class="btn btn-warning">Middle</button>
+ <button type="button" class="btn btn-success">Right</button>
+</div>
+
<!-- Outline Styled -->
+ <div class="btn-group" role="group" aria-label="Basic outlined example">
+ <button type="button" class="btn btn-outline-primary">Left</button>
+ <button type="button" class="btn btn-outline-primary">Middle</button>
+ <button type="button" class="btn btn-outline-primary">Right</button>
+</div>
+
<!-- Checkbox and radio button groups -->
+<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
+ <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked>
+ <label class="btn btn-outline-primary" for="btnradio1">Radio 1</label>
- <div class="btn-group" role="group" aria-label="Basic radio toggle button group">
- <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked>
- <label class="btn btn-outline-primary" for="btnradio1">Radio 1</label>
+ <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off">
+ <label class="btn btn-outline-primary" for="btnradio2">Radio 2</label>
- <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off">
- <label class="btn btn-outline-primary" for="btnradio2">Radio 2</label>
+ <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off">
+ <label class="btn btn-outline-primary" for="btnradio3">Radio 3</label>
+</div>
- <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off">
- <label class="btn btn-outline-primary" for="btnradio3">Radio 3</label>
- </div>
+ Make a set of buttons appear vertically stacked rather than horizontally. Split button dropdowns are not supported here.
Use Bootstrap’s custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
+ <!-- Primary Button -->
+ <button type="button" class="btn btn-primary mb-2">Primary</button>
+
+ <!-- Secondary Button -->
+ <button type="button" class="btn btn-secondary mb-2">Secondary</button>
+
+ <!-- Success Button -->
+ <button type="button" class="btn btn-success mb-2">Success</button>
+
+ <!-- Danger Button -->
+ <button type="button" class="btn btn-danger mb-2">Danger</button>
+
+ <!-- Warning Button -->
+ <button type="button" class="btn btn-warning mb-2">Warning</button>
+
+ <!-- Info Button -->
+ <button type="button" class="btn btn-info mb-2">Info</button>
+
+ <!-- Light Button -->
+ <button type="button" class="btn btn-light mb-2">Light</button>
+
+ <!-- Dark Button -->
+ <button type="button" class="btn btn-dark mb-2">Dark</button>
+
+ <!-- Link Button -->
+ <button type="button" class="btn btn-link mb-2">Link</button>
+ <!-- Primary Outline Button -->
+ <button type="button" class="btn btn-outline-primary mb-2">Primary</button>
+
+ <!-- Secondary Outline Button -->
+ <button type="button" class="btn btn-outline-secondary mb-2">Secondary</button>
+
+ <!-- Success Outline Button -->
+ <button type="button" class="btn btn-outline-success mb-2">Success</button>
+
+ <!-- Danger Outline Button -->
+ <button type="button" class="btn btn-outline-danger mb-2">Danger</button>
+
+ <!-- Warning Outline Button -->
+ <button type="button" class="btn btn-outline-warning mb-2">Warning</button>
+
+ <!-- Info Outline Button -->
+ <button type="button" class="btn btn-outline-info mb-2">Info</button>
+
+ <!-- Light Outline Button -->
+ <button type="button" class="btn btn-outline-light mb-2">Light</button>
+
+ <!-- Dark Outline Button -->
+ <button type="button" class="btn btn-outline-dark mb-2">Dark</button>
+ <!-- Button Tag -->
+<a class="btn btn-primary" href="#" role="button">Link</a>
+<button class="btn btn-primary" type="submit">Button</button>
+<input class="btn btn-primary" type="button" value="Input">
+<input class="btn btn-primary" type="submit" value="Submit">
+<input class="btn btn-primary" type="reset" value="Reset">
+
+ Fancy larger or smaller buttons? Add .btn-lg
or .btn-sm
for additional sizes.
<!-- Sizing Button -->
+<button type="button" class="btn btn-primary btn-lg">Large
+ button</button>
+<button type="button" class="btn btn-primary">Default
+ button</button>
+<button type="button" class="btn btn-primary btn-sm">Small
+ button</button>
+<button type="button" class="btn btn-primary btn-xs">Xtra Small
+ button</button>
+
+ <!-- Button Block -->
+ <div class="d-grid gap-2">
+ <button class="btn btn-primary" type="button">Button</button>
+ <button class="btn btn-primary" type="button">Button</button>
+ </div>
+
+ Here we create a responsive variation, starting with vertically stacked buttons until the md
breakpoint, where .d-md-block
replaces the .d-grid
class, thus nullifying the gap-2
utility. Resize your browser to see them change.
<!-- Button Block --> <div class="d-grid gap-2 d-md-block">
+ <button class="btn btn-primary" type="button">Button</button>
+ <button class="btn btn-primary" type="button">Button</button>
+ </div>
+
+ You can adjust the width of your block buttons with grid column width classes. For example, for a half-width “block button”, use .col-6
. Center it horizontally with .mx-auto
, too.
<!-- Button Block -->
+<div class="d-grid gap-2 col-6 mx-auto">
+ <button class="btn btn-primary" type="button">Button</button>
+ <button class="btn btn-primary" type="button">Button</button>
+</div>
+
+ Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we’ve taken our previous responsive example and added some flex utilities and a margin utility on the button to right align the buttons when they’re no longer stacked.
+ + <!-- Button Block -->
+ <div class="d-grid gap-2 d-md-flex justify-content-md-end">
+ <button class="btn btn-primary" type="button">Button</button>
+ <button class="btn btn-primary" type="button">Button</button>
+ </div>
+
+ <!-- Button With Icon -->
+<button type="button" class="btn btn-primary">
+ Your Text Goes Here <i class="fe fe-shopping-bag ms-1"></i>
+</button>
+
+ <!-- Button with Icon-->
+<!-- Button with Icon-->
+ <button type="button" class="btn btn-primary btn-icon">
+ +
+ </button>
+ <button type="button" class="btn btn-primary btn-icon">
+ <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
+ </button>
+
+ <button type="button" class="btn btn-icon btn-white border border-2 rounded-circle btn-dashed ms-2">
+ +
+ </button>
+ <!-- Button with icon Size -->
+<button type="button" class="btn btn-primary btn-lg">
+ +
+ </button>
+ <button type="button" class="btn btn-primary">
+ +
+ </button>
+ <button type="button" class="btn btn-primary btn-sm">
+ +
+</button>
+ Buttons will appear pressed (with a darker background, darker border, and
+ inset shadow) when active. There’s no need to add a class to <button>
s as they use a
+ pseudo-class. However, you can still force the same active
+ appearance with .active
(and include
+ the
+ aria-pressed="true"
attribute) should you need to replicate the
+ state programmatically.
+
<!-- Button Active State -->
+<a href="#" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Primary link</a>
+<a href="#" class="btn btn-secondary btn-lg active" role="button" aria-pressed="true">Link</a>
+
+ Make buttons look inactive by adding the disabled
boolean
+ attribute to any <button>
element.
<!-- Button Disabled -->
+<button type="button" class="btn btn-primary" disabled>Primary button</button>
+<button type="button" class="btn btn-secondary" disabled>Button</button>
+
+ Add data-bs-toggle="button"
to toggle a
+ button’s active
state. If you’re
+ pre-toggling a button, you must manually add the .active
+ class and
+ aria-pressed="true"
to the <button>
.
<!-- Toggle State -->
+ <button type="button" class="btn btn-primary" data-bs-toggle="button" autocomplete="off">Toggle button</button>
+ <button type="button" class="btn btn-primary active" data-bs-toggle="button" autocomplete="off" aria-pressed="true">Active toggle button</button>
+ <button type="button" class="btn btn-primary" disabled data-bs-toggle="button" autocomplete="off">Disabled toggle button</button>
+
+ Dash ui cards provide a flexible and extensible content container with + multiple variants and options. +
+Below is an example of a basic card with mixed content and a fixed width.
+Some quick example text to build on the card title and make up the bulk + of the card's content.
+ Go somewhere +<!-- Basic -->
+ <div class="card" style="width: 20rem;">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
+ <a href="#" class="btn btn-primary">Go somewhere</a>
+ </div>
+</div>
+
+ The building block of a card is the .card-body
. Use it
+ whenever you need a padded section within a card.
<!-- card body -->
+<div class="card">
+ <div class="card-body">
+ This is some text within a card body.
+ </div>
+</div>
+
+ Card titles are used by adding .card-title
to a <h*>
tag. In the same way, links are added and placed
+ next to each other by adding
+ .card-link
to an <a>
tag.
Subtitles are used by adding a .card-subtitle
to a <h*>
tag. If the .card-title
and the
+ .card-subtitle
items are placed in a
+ .card-body
item, the card title and subtitle are aligned
+ nicely.
Some quick example text to build on the card title and make up the bulk + of the card's content.
+ Card link + Another link +<!-- Title Text -->
+<div class="card" style="width: 18rem;">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
+ <a href="#" class="card-link">Card link</a>
+ <a href="#" class="card-link">Another link</a>
+ </div>
+</div>
+
+
+ Mix and match multiple content types to create the card you need, or throw everything in there. + Shown below are image styles, blocks, text styles, and a list group—all wrapped in a fixed-width + card.
+Some quick example text to build on the card title and make up the bulk + of the card's content.
+<!-- Kitchen Sink -->
+<div class="card" style="width: 20rem;">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
+ </div>
+ <ul class="list-group list-group-flush">
+ <li class="list-group-item">Cras justo odio</li>
+ <li class="list-group-item">Dapibus ac facilisis in</li>
+ <li class="list-group-item">Vestibulum at eros</li>
+ </ul>
+ <div class="card-body">
+ <a href="#" class="card-link">Card link</a>
+ <a href="#" class="card-link">Another link</a>
+ </div>
+</div>
+
+ You can quickly change the text alignment of any card—in its entirety or specific parts—with our + text align classes.
+With supporting text below as a natural lead-in to additional content. +
+ Go somewhere +With supporting text below as a natural lead-in to additional content. +
+ Go somewhere +With supporting text below as a natural lead-in to additional content. +
+ Go somewhere +<!-- Text alignment -->
+<div class="card" style="width: 18rem;">
+ <div class="card-body">
+ <h5 class="card-title">Special title treatment</h5>
+ <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
+ <a href="#" class="btn btn-primary">Go somewhere</a>
+ </div>
+</div>
+<div class="card text-center" style="width: 18rem;">
+ <div class="card-body">
+ <h5 class="card-title">Special title treatment</h5>
+ <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
+ <a href="#" class="btn btn-primary">Go somewhere</a>
+ </div>
+</div>
+<div class="card text-end" style="width: 18rem;">
+ <div class="card-body">
+ <h5 class="card-title">Special title treatment</h5>
+ <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
+ <a href="#" class="btn btn-primary">Go somewhere</a>
+ </div>
+</div>
+
+ Cards include a few options for working with images. Choose from appending “image caps” at either + end of a card, overlaying images with card content, or simply embedding the image in a card.
+ +.card-img-top
places an image to the top of the card. With .card-text
, text can be added to the card. Text within .card-text
can also be styled with the standard HTML tags.
This is a wider card with supporting text below as a natural lead-in to + additional content. This content is a little bit longer.
+Last updated 3 + mins ago
+<!-- Image on Top -->
+ <div class="card">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to
+ additional content. This content is a little bit longer.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3
+ mins ago</small></p>
+ </div>
+</div>
+
+
+ .card-img-bottom
places an image to the bottom of the card. With .card-text
, text can be added to the card. Text within .card-text
can also be styled with the standard HTML tags.
This is a wider card with supporting text below as a natural lead-in to + additional content. This content is a little bit longer.
+Last updated 3 + mins ago
+<!-- Image on bottom -->
+<div class="card">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to
+ additional content. This content is a little bit longer.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3
+ mins ago</small></p>
+ </div>
+ <img src="../assets/images/blog/blog-img-1.jpg" class="card-img-bottom" alt="...">
+</div>
+
+
+ Turn an image into a card background and overlay your card’s text. Depending on the image, you + may or may not need additional styles or utilities.
+<!-- image overlay -->
+<div class="card bg-dark text-white">
+ <img src="..." class="rounded" alt="...">
+ <div class="card-img-overlay">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ <p class="card-text">Last updated 3 mins ago</p>
+ </div>
+</div>
+
+ Using a combination of grid and utility classes, cards can be made horizontal in a mobile-friendly and responsive way. In the example below, we remove the grid gutters with .g-0
and use .col-md-*
classes to make the card horizontal at the md
breakpoint. Further adjustments may be needed depending on your card content.
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
+Last updated 3 mins ago
+<!-- Horizontal -->
+ <div class="card mb-3" style="max-width: 540px;">
+ <div class="row g-0">
+ <div class="col-md-4">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="img-fluid rounded-start h-100" alt="...">
+ </div>
+ <div class="col-md-8">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards. For the time being, these layout options are not yet responsive.
+Use card groups to render cards as a single, attached element with equal width and height columns. Card groups start off stacked and use display: flex;
to become attached with uniform dimensions starting at the sm
breakpoint.
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
+Last updated 3 mins ago
+This card has supporting text below as a natural lead-in to additional content.
+Last updated 3 mins ago
+This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
+Last updated 3 mins ago
+<!-- Card group -->
+ <div class="card-group">
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
+ </div>
+ </div>
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
+ </div>
+ </div>
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
+ <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
+ </div>
+ </div>
+ </div>
+
+
+ Use the Bootstrap grid system and its.row-cols classes to control how many grid columns (wrapped around your cards) you show per row. For example, here’s .row-cols-1
laying out the cards on one column, and .row-cols-md-2
splitting four cards to equal width across multiple rows, from the medium breakpoint up.
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
+This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
+This is a longer card with supporting text below as a natural lead-in to additional content.
+This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
+<!-- Card group -->
+ <div class="row row-cols-1 row-cols-md-2 g-4">
+ <div class="col">
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ </div>
+ </div>
+ </div>
+ <div class="col">
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ </div>
+ </div>
+ </div>
+ <div class="col">
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content.</p>
+ </div>
+ </div>
+ </div>
+ <div class="col">
+ <div class="card">
+ <img src="../assets/images/placeholder/placeholder-4by3.svg" class="card-img-top" alt="...">
+ <div class="card-body">
+ <h5 class="card-title">Card title</h5>
+ <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ A slideshow component for cycling through elements—images or slides of text—like a carousel.
+Here’s a carousel with slides only. Note the presence of the .d-block
and .w-100
on carousel images to prevent browser default image
+ alignment.
+
<!-- Slides only -->
+<div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel">
+ <div class="carousel-inner">
+ <div class="carousel-item active">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ </div>
+</div>
+
+
+ Adding in the previous and next controls:
+ <!-- With Control -->
+<div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
+ <div class="carousel-inner">
+ <div class="carousel-item active">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ </div>
+ <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+</div>
+
+ You can also add the indicators to the carousel, alongside the controls, too. +
+ <!-- With Indicators -->
+<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
+ <ol class="carousel-indicators">
+ <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active"></li>
+ <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1"></li>
+ <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2"></li>
+ </ol>
+ <div class="carousel-inner">
+ <div class="carousel-item active">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ </div>
+ <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+</div>
+
+ Add .carousel-fade
to your carousel to animate slides with a fade transition instead of a slide.
<!-- Crossfade -->
+ <div id="carouselExampleFade" class="carousel slide carousel-fade" data-bs-ride="carousel">
+ <div class="carousel-inner">
+ <div class="carousel-item active">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ </div>
+ <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+</div>
+
+
+ Add data-bs-interval=""
to a .carousel-item
to change the amount of time to delay between automatically cycling to the next item.
<!-- Individual -->
+ <div id="carouselExampleInterval" class="carousel slide" data-bs-ride="carousel">
+ <div class="carousel-inner">
+ <div class="carousel-item active" data-bs-interval="10000">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item" data-bs-interval="2000">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100 " alt="...">
+ </div>
+ </div>
+ <a class="carousel-control-prev" href="#carouselExampleInterval" role="button" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="carousel-control-next" href="#carouselExampleInterval" role="button" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+</div>
+
+ Carousels support swiping left/right on touchscreen devices to move between slides. This can be disabled using the data-bs-touch
attribute. The example below also does not include the data-bs-ride
attribute and has data-bs-interval="false"
so it doesn’t autoplay.
<!-- Disable touch swiping -->
+<div id="carouselExampleControlsNoTouching" class="carousel slide" data-bs-touch="false" data-bs-interval="false">
+ <div class="carousel-inner">
+ <div class="carousel-item active">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100" alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100" alt="...">
+ </div>
+ <div class="carousel-item">
+ <img src="../assets/images/blog/blog-img-1.jpg" class="d-block w-100" alt="...">
+ </div>
+ </div>
+ <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="visually-hidden">Previous</span>
+ </button>
+ <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="visually-hidden">Next</span>
+ </button>
+</div>
+ Add .carousel-dark
to the .carousel
for darker controls, indicators, and captions. Controls have been inverted from their default white fill with the filter
CSS property. Captions
+ and controls have additional Sass variables that customize the color
and background-color
.
<!-- Dark varient -->
+ <div id="carouselExampleDark" class="carousel carousel-dark slide" data-bs-ride="carousel">
+ <div class="carousel-indicators">
+ <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
+ <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="1" aria-label="Slide 2"></button>
+ <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="2" aria-label="Slide 3"></button>
+ </div>
+ <div class="carousel-inner">
+ <div class="carousel-item active" data-bs-interval="10000">
+ <img src="..." class="d-block w-100" alt="...">
+ <div class="carousel-caption d-none d-md-block">
+ <h3>First slide label</h3>
+ <p>Some representative placeholder content for the first slide.</p>
+ </div>
+ </div>
+ <div class="carousel-item" data-bs-interval="2000">
+ <img src="..." class="d-block w-100" alt="...">
+ <div class="carousel-caption d-none d-md-block">
+ <h3>Second slide label</h3>
+ <p>Some representative placeholder content for the second slide.</p>
+ </div>
+ </div>
+ <div class="carousel-item">
+ <img src="..." class="d-block w-100" alt="...">
+ <div class="carousel-caption d-none d-md-block">
+ <h3>Third slide label</h3>
+ <p>Some representative placeholder content for the third slide.</p>
+ </div>
+ </div>
+ </div>
+ <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="visually-hidden">Previous</span>
+ </button>
+ <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="visually-hidden">Next</span>
+ </button>
+ </div>
+
+ We’re constantly improving & updating Dashui. See the latest features and improvements. @@ -36,18 +36,55 @@
v1.0.1
- Aug 17, 2021
+ v1.0.2
- Dec 2, 2021
v1.0.1
- Aug 17, 2021
+ A generic close button for dismissing content like modals and alerts.
+Provide an option to dismiss or close a component with .btn-close
. Default styling is limited, but highly customizable. Modify the Sass variables to replace the default background-image
. Be sure to include text for screen readers, as we’ve done with aria-label
.
<!-- close button -->
+ <button type="button" class="btn-close" aria-label="Close"></button>
+
+ Disabled close buttons change their opacity
. We’ve also applied pointer-events: none
and user-select: none
to preventing hover and active states from triggering.
<!-- Disabled state -->
+<button type="button" class="btn-close" disabled aria-label="Close"></button>
+
+ Change the default .btn-close
to be white with the .btn-close-white
class. This class uses the filter
property to invert the background-image
.
<!-- White variant -->
+<button type="button" class="btn-close btn-close-white" aria-label="Close"></button>
+<button type="button" class="btn-close btn-close-white" disabled aria-label="Close"></button>
+
+ Toggle the visibility of content across your project with a few + classes and our JavaScript plugins.
+Click the buttons below to show and hide another element via class changes: +
+.collapse
hides content.collapsing
is applied during transitions
+ .collapse.show
shows contentYou can use a link with the href
attribute, or a button
+ with the data-bs-target
attribute. In both cases, the data-bs-toggle="collapse"
is required.
+
+
+ Link with href
+
+
<!-- collapse -->
+ <p>
+ <a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
+ Link with href
+ </a>
+ <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
+ Button with data-bs-target
+ </button>
+</p>
+<div class="collapse" id="collapseExample">
+ <div class="card card-body">
+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
+ </div>
+</div>
+
+ A <button>
or <a>
can show and hide multiple elements by referencing
+ them with a JQuery selector in its href
or data-bs-target
attribute. Multiple <button>
or <a>
can show and hide an element
+ if they each reference it with their href
or data-bs-target
attribute
+ Toggle first element
+
<!-- multiple target collapse -->
+<p>
+ <a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
+ <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
+ <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
+</p>
+<div class="row">
+ <div class="col">
+ <div class="collapse multi-collapse" id="multiCollapseExample1">
+ <div class="card card-body">
+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
+ </div>
+ </div>
+ </div>
+ <div class="col">
+ <div class="collapse multi-collapse" id="multiCollapseExample2">
+ <div class="card card-body">
+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
+ </div>
+ </div>
+ </div>
+</div>
+
+
+
<!-- Horizontal -->
+ <p>
+ <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
+ Toggle width collapse
+ </button>
+ </p>
+ <div style="min-height: 120px;">
+ <div class="collapse collapse-horizontal" id="collapseWidthExample">
+ <div class="card card-body" style="width: 300px;">
+ This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
+ </div>
+ </div>
+</div>
+
+ Colored links with hover states +
+You can use the .link-*
classes to colorize links. Unlike the .text-*
classes, these classes have a :hover
and :focus
state.
<!-- primary link-->
+ <a href="#" class="link-primary">Primary link</a><br>
+
+ <!-- secondary link-->
+ <a href="#" class="link-secondary">Secondary link</a><br>
+
+ <!-- success link-->
+ <a href="#" class="link-success">Success link</a><br>
+
+ <!-- danger link-->
+ <a href="#" class="link-danger">Danger link</a><br>
+
+ <!-- warning link-->
+ <a href="#" class="link-warning">Warning link</a><br>
+
+ <!-- info link-->
+ <a href="#" class="link-info">Info link</a><br>
+
+ <!-- light link-->
+ <a href="#" class="link-light">Light link</a><br>
+
+ <!-- dark link-->
+ <a href="#" class="link-dark">Dark link</a>
+ #495057
+#637381
#f8f9fa
+#F9FAFB
#212529
+#161C24
#F9FAFB
+#F4F6F8
+#DFE3E8
+#C4CDD5
+#919EAB
+#637381
+#454F5B
+#212B36
+#161C24
+