@coreui/coreui 4.2.5 → 4.3.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/LICENSE +5 -6
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +36 -83
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +4 -6
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +40 -89
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +8 -12
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +176 -48
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +4 -6
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +180 -54
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +8 -12
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +1328 -95
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +4 -6
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +1237 -101
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +8 -12
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +2372 -889
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +4 -6
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2295 -902
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +8 -12
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +289 -264
  36. package/dist/js/coreui.bundle.js.map +1 -1
  37. package/dist/js/coreui.bundle.min.js +4 -4
  38. package/dist/js/coreui.bundle.min.js.map +1 -1
  39. package/dist/js/coreui.esm.js +255 -230
  40. package/dist/js/coreui.esm.js.map +1 -1
  41. package/dist/js/coreui.esm.min.js +4 -4
  42. package/dist/js/coreui.esm.min.js.map +1 -1
  43. package/dist/js/coreui.js +258 -232
  44. package/dist/js/coreui.js.map +1 -1
  45. package/dist/js/coreui.min.js +4 -4
  46. package/dist/js/coreui.min.js.map +1 -1
  47. package/js/dist/alert.js +10 -9
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +11 -10
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +10 -9
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +11 -10
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +10 -9
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +5 -5
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +9 -9
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +5 -5
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +6 -5
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +13 -12
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +12 -13
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +10 -9
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +13 -12
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +10 -9
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +14 -13
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +10 -9
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +13 -12
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +10 -9
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +14 -13
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +10 -9
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +10 -9
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +10 -9
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +6 -5
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +5 -5
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +10 -6
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +10 -9
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +10 -9
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +10 -9
  102. package/js/dist/util/template-factory.js.map +1 -1
  103. package/js/index.esm.js +21 -0
  104. package/js/index.umd.js +38 -0
  105. package/js/src/alert.js +4 -4
  106. package/js/src/base-component.js +4 -4
  107. package/js/src/button.js +4 -4
  108. package/js/src/carousel.js +7 -7
  109. package/js/src/collapse.js +5 -5
  110. package/js/src/dom/data.js +2 -2
  111. package/js/src/dom/event-handler.js +4 -5
  112. package/js/src/dom/manipulator.js +2 -2
  113. package/js/src/dom/selector-engine.js +2 -2
  114. package/js/src/dropdown.js +9 -9
  115. package/js/src/modal.js +9 -10
  116. package/js/src/navigation.js +4 -4
  117. package/js/src/offcanvas.js +11 -11
  118. package/js/src/popover.js +3 -3
  119. package/js/src/scrollspy.js +6 -6
  120. package/js/src/sidebar.js +5 -5
  121. package/js/src/tab.js +7 -7
  122. package/js/src/toast.js +4 -4
  123. package/js/src/tooltip.js +9 -9
  124. package/js/src/util/backdrop.js +3 -3
  125. package/js/src/util/component-functions.js +3 -3
  126. package/js/src/util/config.js +3 -3
  127. package/js/src/util/focustrap.js +2 -2
  128. package/js/src/util/index.js +2 -2
  129. package/js/src/util/sanitizer.js +6 -4
  130. package/js/src/util/scrollbar.js +3 -3
  131. package/js/src/util/swipe.js +3 -3
  132. package/js/src/util/template-factory.js +4 -4
  133. package/package.json +54 -44
  134. package/scss/_accordion.scss +9 -1
  135. package/scss/_alert.scss +6 -10
  136. package/scss/_badge.scss +2 -1
  137. package/scss/_button-group.scss +4 -4
  138. package/scss/_buttons.scss +23 -1
  139. package/scss/_card.scss +8 -3
  140. package/scss/_carousel.scss +24 -8
  141. package/scss/_close.scss +32 -9
  142. package/scss/_dropdown.scss +3 -3
  143. package/scss/_functions.scss +6 -22
  144. package/scss/_grid.scss +8 -0
  145. package/scss/_helpers.scss +2 -0
  146. package/scss/_list-group.scss +11 -2
  147. package/scss/_maps.scss +125 -0
  148. package/scss/_mixins.scss +1 -4
  149. package/scss/_nav.scss +7 -0
  150. package/scss/_navbar.scss +17 -4
  151. package/scss/_offcanvas.scss +4 -2
  152. package/scss/_pagination.scss +1 -1
  153. package/scss/_progress.scss +10 -1
  154. package/scss/_reboot.scss +2 -3
  155. package/scss/_root.scss +144 -16
  156. package/scss/_tables.scss +18 -15
  157. package/scss/_tooltip.scss +5 -6
  158. package/scss/_type.scss +3 -1
  159. package/scss/_utilities.scss +182 -23
  160. package/scss/_variables-dark.scss +169 -0
  161. package/scss/_variables.scss +357 -340
  162. package/scss/coreui-grid.rtl.scss +2 -7
  163. package/scss/coreui-grid.scss +3 -10
  164. package/scss/coreui-reboot.rtl.scss +2 -7
  165. package/scss/coreui-reboot.scss +4 -7
  166. package/scss/coreui-utilities.rtl.scss +2 -7
  167. package/scss/coreui-utilities.scss +3 -7
  168. package/scss/coreui.rtl.scss +2 -7
  169. package/scss/coreui.scss +3 -7
  170. package/scss/forms/_floating-labels.scss +23 -4
  171. package/scss/forms/_form-check.scss +22 -24
  172. package/scss/forms/_form-control.scss +33 -13
  173. package/scss/forms/_form-range.scss +8 -8
  174. package/scss/forms/_form-select.scss +19 -10
  175. package/scss/forms/_form-text.scss +1 -1
  176. package/scss/forms/_input-group.scss +1 -1
  177. package/scss/forms/_labels.scss +2 -2
  178. package/scss/helpers/_color-bg.scss +12 -2
  179. package/scss/helpers/_colored-links.scss +20 -2
  180. package/scss/helpers/_focus-ring.scss +5 -0
  181. package/scss/helpers/_icon-link.scss +25 -0
  182. package/scss/mixins/_alert.scss +4 -1
  183. package/scss/mixins/_banner.scss +7 -0
  184. package/scss/mixins/_breakpoints.scss +0 -13
  185. package/scss/mixins/_caret.scss +31 -26
  186. package/scss/mixins/_color-mode.scss +21 -0
  187. package/scss/mixins/_forms.scss +8 -7
  188. package/scss/mixins/_grid.scss +1 -1
  189. package/scss/mixins/_list-group.scss +3 -0
  190. package/scss/mixins/_utilities.scss +35 -15
  191. package/scss/mixins/_visually-hidden.scss +5 -1
  192. package/scss/sidebar/_sidebar.scss +10 -2
  193. package/scss/vendor/_rfs.scss +24 -30
  194. package/scss/mixins/_css-vars.scss +0 -87
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@coreui/coreui",
3
3
  "description": "The most popular front-end framework for developing responsive, mobile-first projects on the web rewritten and maintained by the CoreUI Team",
4
- "version": "4.2.5",
4
+ "version": "4.3.0-alpha.0",
5
5
  "config": {
6
- "version_short": "4.2"
6
+ "version_short": "4.3"
7
7
  },
8
8
  "keywords": [
9
9
  "css",
@@ -17,26 +17,26 @@
17
17
  "homepage": "https://coreui.io",
18
18
  "author": "The CoreUI Team (https://github.com/orgs/coreui/people)",
19
19
  "scripts": {
20
- "start": "npm-run-all --parallel watch docs-serve",
20
+ "start": "npm-run-all watch docs-serve",
21
21
  "bundlewatch": "bundlewatch --config .bundlewatch.config.json",
22
- "changelog": "auto-changelog --template build/changelog-template.hbs --commit-limit false --package --backfill-limit 0 --starting-version v4.2.5",
23
22
  "css": "npm-run-all css-compile css-prefix css-minify",
24
23
  "css-compile": "sass --style expanded --source-map --embed-sources --no-error-css scss/:dist/css/",
25
24
  "css-lint": "npm-run-all --aggregate-output --continue-on-error --parallel css-lint-*",
26
- "css-lint-stylelint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache --rd",
25
+ "css-lint-stylelint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache",
27
26
  "css-lint-vars": "fusv scss/ docs/assets/scss/",
28
27
  "css-minify": "npm-run-all --aggregate-output --parallel css-minify-*",
29
28
  "css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
30
29
  "css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
31
30
  "css-prefix": "npm-run-all --aggregate-output --parallel css-prefix-*",
32
31
  "css-prefix-main": "postcss --config build/postcss.config.js --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
32
+ "css-test": "jasmine --config=scss/tests/jasmine.js",
33
33
  "js": "npm-run-all js-compile js-minify",
34
34
  "js-compile": "npm-run-all --aggregate-output --parallel js-compile-*",
35
35
  "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap",
36
36
  "js-compile-standalone-esm": "rollup --environment ESM:true,BUNDLE:false --config build/rollup.config.js --sourcemap",
37
37
  "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap",
38
38
  "js-compile-plugins": "node build/build-plugins.js",
39
- "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js .",
39
+ "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js,.md .",
40
40
  "js-minify": "npm-run-all --aggregate-output --parallel js-minify-*",
41
41
  "js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/coreui.js.map,includeSources,url=coreui.min.js.map\" --output dist/js/coreui.min.js dist/js/coreui.js",
42
42
  "js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/coreui.esm.js.map,includeSources,url=coreui.esm.min.js.map\" --output dist/js/coreui.esm.min.js dist/js/coreui.esm.js",
@@ -50,23 +50,24 @@
50
50
  "js-test-jquery": "cross-env JQUERY=true npm run js-test-karma",
51
51
  "lint": "npm-run-all --aggregate-output --continue-on-error --parallel js-lint css-lint lockfile-lint",
52
52
  "docs": "npm-run-all docs-build docs-lint",
53
- "docs-build": "hugo --cleanDestinationDir --enableGitInfo",
53
+ "docs-build": "hugo --cleanDestinationDir --printUnusedTemplates",
54
54
  "docs-compile": "npm run docs-build",
55
55
  "docs-vnu": "node build/vnu-jar.js",
56
56
  "docs-lint": "npm run docs-vnu",
57
- "docs-serve": "hugo server --port 9001 --disableFastRender",
57
+ "docs-serve": "hugo server --port 9001 --disableFastRender --printUnusedTemplates",
58
58
  "docs-serve-only": "npx sirv-cli _gh_pages --port 9001",
59
59
  "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
60
- "update-deps": "ncu -u -x globby,karma-browserstack-launcher,karma-rollup-preprocessor && echo Manually update site/assets/js/vendor",
60
+ "update-deps": "ncu -u -x globby,karma-browserstack-launcher,karma-rollup-preprocessor,terser && echo Manually update docs/assets/js/vendor",
61
61
  "release": "npm-run-all dist release-sri docs-build release-zip*",
62
62
  "release-sri": "node build/generate-sri.js",
63
63
  "release-version": "node build/change-version.js",
64
- "release-zip": "cross-env-shell \"rm -rf coreui-$npm_package_version-dist && cp -r dist/ coreui-$npm_package_version-dist && zip -r9 coreui-$npm_package_version-dist.zip coreui-$npm_package_version-dist && rm -rf coreui-$npm_package_version-dist\"",
64
+ "release-zip": "cross-env-shell \"rm -rf coreui-$npm_package_version-dist coreui-$npm_package_version-dist.zip && cp -r dist/ coreui-$npm_package_version-dist && zip -qr9 coreui-$npm_package_version-dist.zip coreui-$npm_package_version-dist && rm -rf coreui-$npm_package_version-dist\"",
65
65
  "dist": "npm-run-all --aggregate-output --parallel css js",
66
66
  "test": "npm-run-all lint dist js-test docs-build docs-lint",
67
67
  "watch": "npm-run-all --parallel watch-*",
68
68
  "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm-run-all css-lint css-compile css-prefix\"",
69
69
  "watch-css-docs": "nodemon --watch docs/assets/scss/ --ext scss --exec \"npm run css-lint\"",
70
+ "watch-css-test": "nodemon --watch scss/ --ext scss,js --exec \"npm run css-test\"",
70
71
  "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm-run-all js-lint js-compile\"",
71
72
  "watch-js-docs": "nodemon --watch docs/assets/js/ --ext js --exec \"npm run js-lint\""
72
73
  },
@@ -81,63 +82,75 @@
81
82
  "bugs": {
82
83
  "url": "https://github.com/coreui/coreui/issues"
83
84
  },
85
+ "funding": [
86
+ {
87
+ "type": "opencollective",
88
+ "url": "https://opencollective.com/coreui"
89
+ }
90
+ ],
84
91
  "license": "MIT",
85
92
  "peerDependencies": {
86
- "@popperjs/core": "^2.11.6"
93
+ "@popperjs/core": "^2.11.7"
87
94
  },
88
95
  "devDependencies": {
89
- "@babel/cli": "^7.20.7",
90
- "@babel/core": "^7.20.7",
91
- "@babel/preset-env": "^7.20.2",
92
- "@popperjs/core": "^2.11.6",
96
+ "@babel/cli": "^7.21.5",
97
+ "@babel/core": "^7.21.8",
98
+ "@babel/preset-env": "^7.21.5",
99
+ "@popperjs/core": "^2.11.7",
93
100
  "@rollup/plugin-babel": "^6.0.3",
94
- "@rollup/plugin-commonjs": "^24.0.0",
95
- "@rollup/plugin-node-resolve": "^15.0.1",
101
+ "@rollup/plugin-commonjs": "^24.1.0",
102
+ "@rollup/plugin-node-resolve": "^15.0.2",
96
103
  "@rollup/plugin-replace": "^5.0.2",
97
- "autoprefixer": "^10.4.12",
104
+ "autoprefixer": "^10.4.14",
98
105
  "bundlewatch": "^0.3.3",
99
- "clean-css-cli": "^5.6.1",
106
+ "clean-css-cli": "^5.6.2",
100
107
  "cross-env": "^7.0.3",
101
- "eslint": "^8.30.0",
108
+ "eslint": "^8.39.0",
102
109
  "eslint-config-xo": "^0.43.1",
103
110
  "eslint-plugin-html": "^7.1.0",
104
- "eslint-plugin-import": "^2.26.0",
111
+ "eslint-plugin-import": "^2.27.5",
105
112
  "eslint-plugin-markdown": "^3.0.0",
106
- "eslint-plugin-unicorn": "^45.0.2",
107
- "find-unused-sass-variables": "^4.0.5",
113
+ "eslint-plugin-unicorn": "^46.0.0",
114
+ "find-unused-sass-variables": "^5.0.0",
108
115
  "globby": "^11.1.0",
109
116
  "hammer-simulator": "0.0.1",
110
- "hugo-bin": "^0.97.0",
117
+ "hugo-bin": "^0.102.0",
111
118
  "ip": "^2.0.0",
112
- "jquery": "^3.6.3",
113
- "karma": "^6.4.1",
114
- "karma-browserstack-launcher": "1.4.0",
115
- "karma-chrome-launcher": "^3.1.1",
119
+ "jasmine": "^4.6.0",
120
+ "jquery": "^3.6.4",
121
+ "karma": "^6.4.2",
122
+ "karma-browserstack-launcher": "1.6.0",
123
+ "karma-chrome-launcher": "^3.2.0",
116
124
  "karma-coverage-istanbul-reporter": "^3.0.3",
117
125
  "karma-detect-browsers": "^2.3.3",
118
126
  "karma-firefox-launcher": "^2.1.2",
119
127
  "karma-jasmine": "^5.1.0",
120
128
  "karma-jasmine-html-reporter": "^2.0.0",
121
- "karma-rollup-preprocessor": "7.0.7",
122
- "lockfile-lint": "^4.9.6",
123
- "nodemon": "^2.0.20",
129
+ "karma-rollup-preprocessor": "7.0.8",
130
+ "lockfile-lint": "^4.10.1",
131
+ "nodemon": "^2.0.22",
124
132
  "npm-run-all": "^4.1.5",
125
- "postcss": "^8.4.20",
133
+ "postcss": "^8.4.23",
126
134
  "postcss-cli": "^10.1.0",
127
- "rollup": "^3.8.1",
135
+ "postcss-combine-duplicated-selectors": "^10.0.3",
136
+ "postcss-drop-empty-css-vars": "^0.0.0",
137
+ "rollup": "^3.21.5",
128
138
  "rollup-plugin-istanbul": "^4.0.0",
129
- "rtlcss": "^4.0.0",
130
- "sass": "^1.57.1",
139
+ "rtlcss": "^4.1.0",
140
+ "sass": "^1.62.1",
141
+ "sass-true": "^7.0.0",
131
142
  "shelljs": "^0.8.5",
132
- "stylelint": "^14.16.0",
133
- "stylelint-config-twbs-bootstrap": "^7.0.0",
134
- "terser": "5.16.0",
135
- "vnu-jar": "22.9.29"
143
+ "stylelint": "^15.6.1",
144
+ "stylelint-config-twbs-bootstrap": "^10.0.0",
145
+ "terser": "5.17.1",
146
+ "vnu-jar": "23.4.11"
136
147
  },
137
148
  "files": [
138
149
  "dist/{css,js}/*.{css,js,map}",
139
150
  "js/{src,dist}/**/*.{js,map}",
140
- "scss/**/*.scss"
151
+ "js/index.{esm,umd}.js",
152
+ "scss/**/*.scss",
153
+ "!scss/tests/**"
141
154
  ],
142
155
  "hugo-bin": {
143
156
  "buildTags": "extended"
@@ -157,10 +170,7 @@
157
170
  },
158
171
  "dependencies": {},
159
172
  "peerDependencies": {
160
- "@popperjs/core": "^2.11.6"
173
+ "@popperjs/core": "^2.11.7"
161
174
  }
162
- },
163
- "dependencies": {
164
- "postcss-combine-duplicated-selectors": "^10.0.3"
165
175
  }
166
176
  }
@@ -13,7 +13,6 @@
13
13
  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
14
14
  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
15
15
  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
16
- --#{$prefix}accordion-btn-color: #{$accordion-color};
17
16
  --#{$prefix}accordion-btn-color: #{$accordion-button-color};
18
17
  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
19
18
  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
@@ -148,3 +147,12 @@
148
147
  }
149
148
  }
150
149
  }
150
+
151
+ @if $enable-dark-mode {
152
+ @include color-mode(dark) {
153
+ .accordion-button::after {
154
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)};
155
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)};
156
+ }
157
+ }
158
+ }
package/scss/_alert.scss CHANGED
@@ -12,6 +12,7 @@
12
12
  --#{$prefix}alert-border-color: transparent;
13
13
  --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
14
  --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
+ --#{$prefix}alert-link-color: inherit;
15
16
  // scss-docs-end alert-css-vars
16
17
 
17
18
  position: relative;
@@ -56,17 +57,12 @@
56
57
 
57
58
  // scss-docs-start alert-modifiers
58
59
  // Generate contextual modifier classes for colorizing the alert.
59
-
60
- @each $state, $value in $alert-variants {
61
- $alert-background: map-get($value, "alert-bg");
62
- $alert-border: map-get($value, "alert-border");
63
- $alert-color: map-get($value, "alert-color");
64
-
65
- @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
66
- $alert-color: mix(map-get($value, "base-color"), color-contrast($alert-background), abs($alert-color-scale));
67
- }
60
+ @each $state in map-keys($theme-colors) {
68
61
  .alert-#{$state} {
69
- @include alert-variant($alert-background, $alert-border, $alert-color);
62
+ --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis);
63
+ --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle);
64
+ --#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle);
65
+ --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis);
70
66
  }
71
67
  }
72
68
  // scss-docs-end alert-modifiers
package/scss/_badge.scss CHANGED
@@ -42,6 +42,7 @@
42
42
  //
43
43
 
44
44
  .badge-sm {
45
- padding: $badge-padding-y-sm $badge-padding-x-sm;
45
+ --#{$prefix}badge-padding-x: #{$badge-padding-x-sm};
46
+ --#{$prefix}badge-padding-y: #{$badge-padding-y-sm};
46
47
  @include font-size($badge-font-size-sm);
47
48
  }
@@ -39,7 +39,7 @@
39
39
  // Prevent double borders when buttons are next to each other
40
40
  > :not(.btn-check:first-child) + .btn,
41
41
  > .btn-group:not(:first-child) {
42
- @include ltr-rtl("margin-left", -$btn-border-width);
42
+ margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
43
43
  }
44
44
 
45
45
  // Reset rounded corners
@@ -79,11 +79,11 @@
79
79
  &::after,
80
80
  .dropup &::after,
81
81
  .dropend &::after {
82
- @include ltr-rtl("margin-left", 0);
82
+ margin-left: 0;
83
83
  }
84
84
 
85
85
  .dropstart &::before {
86
- @include ltr-rtl("margin-right", 0);
86
+ margin-right: 0;
87
87
  }
88
88
  }
89
89
 
@@ -126,7 +126,7 @@
126
126
 
127
127
  > .btn:not(:first-child),
128
128
  > .btn-group:not(:first-child) {
129
- margin-top: -$btn-border-width;
129
+ margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
130
130
  }
131
131
 
132
132
  // Reset rounded corners
@@ -10,7 +10,7 @@
10
10
  @include rfs($btn-font-size, --#{$prefix}btn-font-size);
11
11
  --#{$prefix}btn-font-weight: #{$btn-font-weight};
12
12
  --#{$prefix}btn-line-height: #{$btn-line-height};
13
- --#{$prefix}btn-color: #{$body-color};
13
+ --#{$prefix}btn-color: #{$btn-color};
14
14
  --#{$prefix}btn-bg: transparent;
15
15
  --#{$prefix}btn-border-width: #{$btn-border-width};
16
16
  --#{$prefix}btn-border-color: transparent;
@@ -192,3 +192,25 @@
192
192
  .btn-sm {
193
193
  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
194
194
  }
195
+
196
+ @if $enable-dark-mode {
197
+ @include color-mode(dark) {
198
+ @each $state, $variant in $button-variants-dark {
199
+ .btn-#{$state} {
200
+ @include button-variant($variant);
201
+ }
202
+ }
203
+
204
+ @each $state, $variant in $button-outline-ghost-variants-dark {
205
+ .btn-outline-#{$state} {
206
+ @include button-outline-variant($variant);
207
+ }
208
+ }
209
+
210
+ @each $state, $variant in $button-outline-ghost-variants-dark {
211
+ .btn-ghost-#{$state} {
212
+ @include button-ghost-variant($variant);
213
+ }
214
+ }
215
+ }
216
+ }
package/scss/_card.scss CHANGED
@@ -7,6 +7,8 @@
7
7
  --#{$prefix}card-spacer-y: #{$card-spacer-y};
8
8
  --#{$prefix}card-spacer-x: #{$card-spacer-x};
9
9
  --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
10
+ --#{$prefix}card-title-color: #{$card-title-color};
11
+ --#{$prefix}card-subtitle-color: #{$card-subtitle-color};
10
12
  --#{$prefix}card-border-width: #{$card-border-width};
11
13
  --#{$prefix}card-border-color: #{$card-border-color};
12
14
  --#{$prefix}card-border-radius: #{$card-border-radius};
@@ -28,6 +30,7 @@
28
30
  flex-direction: column;
29
31
  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
30
32
  height: var(--#{$prefix}card-height);
33
+ color: var(--#{$prefix}body-color);
31
34
  word-wrap: break-word;
32
35
  background-color: var(--#{$prefix}card-bg);
33
36
  background-clip: border-box;
@@ -73,11 +76,13 @@
73
76
 
74
77
  .card-title {
75
78
  margin-bottom: var(--#{$prefix}card-title-spacer-y);
79
+ color: var(--#{$prefix}card-title-color);
76
80
  }
77
81
 
78
82
  .card-subtitle {
79
83
  margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
80
84
  margin-bottom: 0;
85
+ color: var(--#{$prefix}card-subtitle-color);
81
86
  }
82
87
 
83
88
  .card-text:last-child {
@@ -90,7 +95,7 @@
90
95
  }
91
96
 
92
97
  + .card-link {
93
- @include ltr-rtl("margin-left", var(--#{$prefix}card-spacer-x));
98
+ margin-left: var(--#{$prefix}card-spacer-x);
94
99
  }
95
100
  }
96
101
 
@@ -193,8 +198,8 @@
193
198
  margin-bottom: 0;
194
199
 
195
200
  + .card {
196
- @include ltr-rtl("margin-left", 0);
197
- @include ltr-rtl("border-left", 0);
201
+ margin-left: 0;
202
+ border-left: 0;
198
203
  }
199
204
 
200
205
  // Handle rounded corners
@@ -96,7 +96,7 @@
96
96
  justify-content: center; // 3. horizontally center contents
97
97
  width: $carousel-control-width;
98
98
  padding: 0;
99
- color: var(--#{$prefix}carousel-control-color, $carousel-control-color);
99
+ color: $carousel-control-color;
100
100
  text-align: center;
101
101
  background: none;
102
102
  border: 0;
@@ -106,7 +106,7 @@
106
106
  // Hover/focus state
107
107
  &:hover,
108
108
  &:focus {
109
- color: var(--#{$prefix}carousel-control-color, $carousel-control-color);
109
+ color: $carousel-control-color;
110
110
  text-decoration: none;
111
111
  outline: 0;
112
112
  opacity: $carousel-control-hover-opacity;
@@ -165,7 +165,6 @@
165
165
  margin-right: $carousel-control-width;
166
166
  margin-bottom: 1rem;
167
167
  margin-left: $carousel-control-width;
168
- list-style: none;
169
168
 
170
169
  [data-coreui-target] {
171
170
  box-sizing: content-box;
@@ -177,7 +176,7 @@
177
176
  margin-left: $carousel-indicator-spacer;
178
177
  text-indent: -999px;
179
178
  cursor: pointer;
180
- background-color: var(--#{$prefix}carousel-indicator-active-bg, $carousel-indicator-active-bg);
179
+ background-color: $carousel-indicator-active-bg;
181
180
  background-clip: padding-box;
182
181
  border: 0;
183
182
  // Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -204,15 +203,13 @@
204
203
  left: (100% - $carousel-caption-width) * .5;
205
204
  padding-top: $carousel-caption-padding-y;
206
205
  padding-bottom: $carousel-caption-padding-y;
207
- color: var(--#{$prefix}carousel-caption-color, $carousel-caption-color);
206
+ color: $carousel-caption-color;
208
207
  text-align: center;
209
208
  }
210
209
 
211
210
  // Dark mode carousel
212
211
 
213
- .carousel-dark {
214
- --#{$prefix}carousel-indicator-active-bg: #{$carousel-dark-indicator-active-bg};
215
- --#{$prefix}carousel-caption-color: #{$carousel-dark-caption-color};
212
+ @mixin carousel-dark() {
216
213
  .carousel-control-prev-icon,
217
214
  .carousel-control-next-icon {
218
215
  filter: $carousel-dark-control-icon-filter;
@@ -226,3 +223,22 @@
226
223
  color: $carousel-dark-caption-color;
227
224
  }
228
225
  }
226
+
227
+ .carousel-dark {
228
+ @include carousel-dark();
229
+ }
230
+
231
+ @if $enable-dark-mode {
232
+ @include color-mode(dark) {
233
+ @if $color-mode-type == "media-query" {
234
+ .carousel {
235
+ @include carousel-dark();
236
+ }
237
+ } @else {
238
+ .carousel,
239
+ &.carousel {
240
+ @include carousel-dark();
241
+ }
242
+ }
243
+ }
244
+ }
package/scss/_close.scss CHANGED
@@ -4,37 +4,60 @@
4
4
  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
5
5
 
6
6
  .btn-close {
7
+ // scss-docs-start close-css-vars
8
+ --#{$prefix}btn-close-color: #{$btn-close-color};
9
+ --#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) };
10
+ --#{$prefix}btn-close-opacity: #{$btn-close-opacity};
11
+ --#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
12
+ --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
13
+ --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity};
14
+ --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
15
+ --#{$prefix}btn-close-white-filter: #{$btn-close-white-filter};
16
+ // scss-docs-end close-css-vars
17
+
7
18
  box-sizing: content-box;
8
19
  width: $btn-close-width;
9
20
  height: $btn-close-height;
10
21
  padding: $btn-close-padding-y $btn-close-padding-x;
11
- color: var(--#{$prefix}btn-close-color, $btn-close-color);
12
- background: transparent var(--#{$prefix}btn-close-bg, escape-svg($btn-close-bg)) center / $btn-close-width auto no-repeat; // include transparent for button elements
22
+ color: var(--#{$prefix}btn-close-color);
23
+ background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
13
24
  border: 0; // for button elements
14
25
  @include border-radius();
15
- opacity: $btn-close-opacity;
26
+ opacity: var(--#{$prefix}btn-close-opacity);
16
27
 
17
28
  // Override <a>'s hover style
18
29
  &:hover {
19
- color: var(--#{$prefix}btn-close-color, $btn-close-color);
30
+ color: var(--#{$prefix}btn-close-color);
20
31
  text-decoration: none;
21
- opacity: $btn-close-hover-opacity;
32
+ opacity: var(--#{$prefix}btn-close-hover-opacity);
22
33
  }
23
34
 
24
35
  &:focus {
25
36
  outline: 0;
26
- box-shadow: $btn-close-focus-shadow;
27
- opacity: $btn-close-focus-opacity;
37
+ box-shadow: var(--#{$prefix}btn-close-focus-shadow);
38
+ opacity: var(--#{$prefix}btn-close-focus-opacity);
28
39
  }
29
40
 
30
41
  &:disabled,
31
42
  &.disabled {
32
43
  pointer-events: none;
33
44
  user-select: none;
34
- opacity: $btn-close-disabled-opacity;
45
+ opacity: var(--#{$prefix}btn-close-disabled-opacity);
35
46
  }
36
47
  }
37
48
 
49
+ @mixin btn-close-white() {
50
+ filter: var(--#{$prefix}btn-close-white-filter);
51
+ }
52
+
38
53
  .btn-close-white {
39
- filter: $btn-close-white-filter;
54
+ @include btn-close-white();
55
+ }
56
+
57
+ @if $enable-dark-mode {
58
+ @include color-mode(dark) {
59
+ .btn-close {
60
+ @include btn-close-white();
61
+ }
62
+ }
40
63
  }
@@ -90,7 +90,7 @@
90
90
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
91
91
 
92
92
  .dropdown-menu#{$infix}-start {
93
- --#{$prefix}position: start;
93
+ --cui-position: start;
94
94
 
95
95
  &[data-coreui-popper] {
96
96
  right: auto;
@@ -99,7 +99,7 @@
99
99
  }
100
100
 
101
101
  .dropdown-menu#{$infix}-end {
102
- --#{$prefix}position: end;
102
+ --cui-position: end;
103
103
 
104
104
  &[data-coreui-popper] {
105
105
  right: 0;
@@ -145,7 +145,6 @@
145
145
  .dropstart {
146
146
  .dropdown-menu[data-coreui-popper] {
147
147
  top: 0;
148
-
149
148
  @include ltr-rtl("right", 100%);
150
149
  @include ltr-rtl("left", auto);
151
150
  margin-top: 0;
@@ -185,6 +184,7 @@
185
184
  white-space: nowrap; // prevent links from randomly breaking onto new lines
186
185
  background-color: transparent; // For `<button>`s
187
186
  border: 0; // For `<button>`s
187
+ @include border-radius(var(--#{$prefix}dropdown-item-border-radius, 0));
188
188
 
189
189
  &:hover,
190
190
  &:focus {
@@ -188,7 +188,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
188
188
  );
189
189
 
190
190
  @each $name, $value in $rgb {
191
- $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
191
+ $value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
192
192
  $rgb: map-merge($rgb, ($name: $value));
193
193
  }
194
194
 
@@ -218,17 +218,6 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
218
218
  }
219
219
  // scss-docs-end color-functions
220
220
 
221
- // scss-docs-start alert-color-functions
222
- @function alert-color-map($color) {
223
- @return (
224
- "alert-bg": shift-color($color, $alert-bg-scale),
225
- "alert-border": shift-color($color, $alert-border-scale),
226
- "alert-color": shift-color($color, $alert-color-scale),
227
- "base-color": $color
228
- );
229
- }
230
- // scss-docs-end alert-color-functions
231
-
232
221
  // scss-docs-start button-color-functions
233
222
  @function btn-color($color, $shade, $tint) {
234
223
  @return if(color-contrast($color) == $color-contrast-light, shade-color($color, $shade), tint-color($color, $tint));
@@ -267,16 +256,6 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
267
256
  }
268
257
  // scss-docs-end button-color-functions
269
258
 
270
- // scss-docs-start list-group-color-functions
271
- @function list-group-color-map($color) {
272
- @return (
273
- "bg": shift-color($color, $list-group-item-bg-scale),
274
- "bg-hover": shade-color($color, 10%),
275
- "color": shift-color($color, $list-group-item-color-scale)
276
- );
277
- }
278
- // scss-docs-end list-group-color-functions
279
-
280
259
  // scss-docs-start table-color-functions
281
260
  @function table-color-map($background, $body-bg: $body-bg) {
282
261
  $color: color-contrast(opaque($body-bg, $background));
@@ -380,3 +359,8 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
380
359
  }
381
360
  @return $result;
382
361
  }
362
+
363
+ // Generate selectors for theme variants
364
+ @function theme-prefix($theme, $selector) {
365
+ @return #{"[data-coreui-theme="$theme + "] ." + $theme + "\\:" + $selector + ", [data-coreui-theme="$theme + "] ." + $theme + "\\:" + $selector + ":not([class*='#{$theme}:'])"};
366
+ }
package/scss/_grid.scss CHANGED
@@ -2,6 +2,14 @@
2
2
  //
3
3
  // Rows contain your columns.
4
4
 
5
+ :root {
6
+ @each $name, $value in $grid-breakpoints {
7
+ --#{$prefix}breakpoint-#{$name}: #{$value};
8
+ }
9
+
10
+ --#{$prefix}mobile-breakpoint: #{$mobile-breakpoint};
11
+ }
12
+
5
13
  @if $enable-grid-classes {
6
14
  .row {
7
15
  @include make-row();
@@ -1,6 +1,8 @@
1
1
  @import "helpers/clearfix";
2
2
  @import "helpers/color-bg";
3
3
  @import "helpers/colored-links";
4
+ @import "helpers/focus-ring";
5
+ @import "helpers/icon-link";
4
6
  @import "helpers/ratio";
5
7
  @import "helpers/position";
6
8
  @import "helpers/stacks";
@@ -180,9 +180,18 @@
180
180
  // Add modifier classes to change text and background color on individual items.
181
181
  // Organizationally, this must come after the `:hover` states.
182
182
 
183
- @each $state, $variant in $list-group-variants {
183
+ @each $state in map-keys($theme-colors) {
184
184
  .list-group-item-#{$state} {
185
- @include list-group-item-variant($state, $variant);
185
+ --#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text-emphasis);
186
+ --#{$prefix}list-group-bg: var(--#{$prefix}#{$state}-bg-subtle);
187
+ --#{$prefix}list-group-border-color: var(--#{$prefix}#{$state}-border-subtle);
188
+ --#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color);
189
+ --#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle);
190
+ --#{$prefix}list-group-action-active-color: var(--#{$prefix}emphasis-color);
191
+ --#{$prefix}list-group-action-active-bg: var(--#{$prefix}#{$state}-border-subtle);
192
+ --#{$prefix}list-group-active-color: var(--#{$prefix}#{$state}-bg-subtle);
193
+ --#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text-emphasis);
194
+ --#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text-emphasis);
186
195
  }
187
196
  }
188
197
  // scss-docs-end list-group-modifiers