Bez popisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

_card.scss 7.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. // Cards
  2. // *******************************************************************************
  3. .card {
  4. --#{$prefix}card-hover-box-shadow: #{$box-shadow-lg};
  5. --#{$prefix}card-border-bottom-color: #{$card-border-color};
  6. --#{$prefix}card-hover-border-color: #{$card-border-color};
  7. --#{$prefix}card-hover-border-bottom-color: #{$card-border-color};
  8. --#{$prefix}card-subtitle-color: #{$card-subtitle-color};
  9. box-shadow: var(--#{$prefix}card-box-shadow);
  10. .card-header + .card-body,
  11. .card-header + .card-content > .card-body:first-of-type,
  12. .card-header + .card-footer,
  13. .card-body + .card-footer {
  14. padding-block-start: 0;
  15. }
  16. .card-header,
  17. .card-footer {
  18. --#{$prefix}card-border-width: #{$card-border-width};
  19. }
  20. .featured-date {
  21. background-color: var(--#{$prefix}card-bg);
  22. }
  23. .card-link {
  24. display: inline-block;
  25. + .card-link {
  26. margin-inline: $card-spacer-x 0;
  27. }
  28. }
  29. hr {
  30. color: var(--#{$prefix}card-border-color);
  31. }
  32. /* Card Statistics specific separator */
  33. .card-separator {
  34. border-inline-end: var(--#{$prefix}border-width) solid var(--#{$prefix}card-border-color);
  35. @include media-breakpoint-down(md) {
  36. border-block-end: var(--#{$prefix}border-width) solid var(--#{$prefix}card-border-color);
  37. border-inline-end-width: 0 !important;
  38. padding-block-end: $card-spacer-y;
  39. }
  40. }
  41. /* List groups */
  42. > .list-group {
  43. border-block-end-width: $border-width;
  44. border-block-start-width: $border-width;
  45. .list-group-item {
  46. padding-inline: $card-spacer-x;
  47. }
  48. }
  49. /* Card Widget Separator */
  50. .card-widget-separator-wrapper {
  51. @include media-breakpoint-down(lg) {
  52. .card-widget-separator {
  53. .card-widget-2.border-end {
  54. border-inline-end: none !important;
  55. border-inline-start: none !important;
  56. }
  57. }
  58. }
  59. @include media-breakpoint-down(sm) {
  60. .card-widget-separator {
  61. .card-widget-1.border-end,
  62. .card-widget-2.border-end,
  63. .card-widget-3.border-end {
  64. border-block-end: 1px solid var(--#{$prefix}card-border-color);
  65. border-inline-end: none !important;
  66. border-inline-start: none !important;
  67. }
  68. }
  69. }
  70. }
  71. /* color border bottom and shadow in card */
  72. &[class*="card-border-shadow-"] {
  73. border-block-end: none;
  74. @include transition($card-transition);
  75. &::after {
  76. position: absolute;
  77. @include border-radius($card-border-radius);
  78. block-size: $card-spacer-y;
  79. border-block-end: .125rem solid var(--#{$prefix}card-border-bottom-color);
  80. content: "";
  81. inline-size: 100%;
  82. inset-block-end: 0;
  83. inset-inline-start: 0;
  84. @include transition($card-transition);
  85. }
  86. &:hover {
  87. box-shadow: var(--#{$prefix}card-hover-box-shadow);
  88. &::after {
  89. border-color: var(--#{$prefix}card-hover-border-bottom-color);
  90. border-block-end-width: .1875rem;
  91. }
  92. }
  93. }
  94. /* card hover border color */
  95. &[class*="card-hover-border-"],
  96. [class*="card-hover-border-"] {
  97. border-width: $border-width;
  98. @include transition($card-transition);
  99. &:hover {
  100. border-color: var(--#{$prefix}card-hover-border-color);
  101. }
  102. }
  103. .collapse > .card-body,
  104. .collapsing > .card-body {
  105. padding-block-start: 0;
  106. }
  107. }
  108. /* card-subtitle */
  109. .card-subtitle {
  110. font-weight: $font-weight-normal;
  111. }
  112. /* adding class with card background color */
  113. .bg-card {
  114. background-color: var(--#{$prefix}card-bg);
  115. }
  116. /* Card header elements
  117. ******************************************************** */
  118. .card-header.header-elements,
  119. .card-title.header-elements {
  120. display: flex;
  121. flex-wrap: wrap;
  122. align-items: center;
  123. inline-size: 100%;
  124. }
  125. .card-header-elements,
  126. .card-title-elements {
  127. display: flex;
  128. flex-wrap: wrap;
  129. align-items: center;
  130. & + &,
  131. > * + * {
  132. margin-inline-start: .25rem;
  133. }
  134. }
  135. .card-title {
  136. &:not(:is(h1, h2, h3, h4, h5, h6)) {
  137. color: var(--#{$prefix}body-color);
  138. }
  139. }
  140. /* Horizontal card radius issue fix
  141. ******************************************************** */
  142. .card-img-left,
  143. .card-img-right {
  144. block-size: 100%;
  145. object-fit: cover;
  146. }
  147. .card-img-left {
  148. @include border-start-radius($card-inner-border-radius);
  149. @include border-end-radius(0);
  150. @include media-breakpoint-down(md) {
  151. @include border-top-radius($card-inner-border-radius);
  152. @include border-bottom-radius(0);
  153. }
  154. }
  155. .card-img-right {
  156. @include border-end-radius($card-inner-border-radius);
  157. @include border-start-radius(0);
  158. @include media-breakpoint-down(md) {
  159. @include border-bottom-radius($card-inner-border-radius);
  160. @include border-top-radius(0);
  161. }
  162. }
  163. // Card group
  164. // ********************************************************
  165. .card-group {
  166. --#{$prefix}card-box-shadow: #{$card-box-shadow};
  167. --#{$prefix}card-bg: #{$card-bg};
  168. @include media-breakpoint-up(sm) {
  169. @include border-radius($card-border-radius);
  170. background-color: var(--#{$prefix}card-bg);
  171. box-shadow: var(--#{$prefix}card-box-shadow);
  172. .card {
  173. box-shadow: none;
  174. + .card {
  175. border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
  176. border-inline-start: 0;
  177. margin-inline: 0;
  178. }
  179. .card-img-top,
  180. .card-header,
  181. .card-img-bottom,
  182. .card-footer {
  183. @include border-radius(0);
  184. }
  185. &:is(:last-child) {
  186. .card-img-top,
  187. .card-header {
  188. @include border-top-end-radius($card-border-radius);
  189. }
  190. .card-img-bottom,
  191. .card-footer {
  192. @include border-bottom-end-radius($card-border-radius);
  193. }
  194. }
  195. &:is(:first-child) {
  196. .card-img-top,
  197. .card-header {
  198. @include border-top-start-radius($card-border-radius);
  199. }
  200. .card-img-bottom,
  201. .card-footer {
  202. @include border-bottom-start-radius($card-border-radius);
  203. }
  204. }
  205. }
  206. }
  207. }
  208. /* Card action */
  209. .card-action {
  210. /* Expand card(fullscreen) */
  211. &.card-fullscreen {
  212. position: fixed;
  213. z-index: 9999;
  214. display: block;
  215. overflow: auto;
  216. border: 0;
  217. @include border-radius(0);
  218. block-size: 100%;
  219. inline-size: 100%;
  220. inset: 0;
  221. }
  222. /* Alert */
  223. .card-alert {
  224. position: absolute;
  225. z-index: 999;
  226. inline-size: 100%;
  227. .alert {
  228. border-end-end-radius: 0;
  229. border-end-start-radius: 0;
  230. }
  231. }
  232. /* Card header */
  233. .card-header {
  234. &.collapsed {
  235. border-block-end: 0;
  236. }
  237. display: flex;
  238. .card-action-title {
  239. flex-grow: 1;
  240. margin-inline-end: .5rem;
  241. }
  242. .card-action-element {
  243. a:not(.dropdown-item) {
  244. color: var(--#{$prefix}heading-color);
  245. }
  246. }
  247. }
  248. /* Block UI loader */
  249. .notiflix-block {
  250. h5 {
  251. color: var(--#{$prefix}body-color);
  252. margin-block: 1rem 0;
  253. }
  254. }
  255. .collapse > .card-body,
  256. .collapsing > .card-body {
  257. padding-block-start: 0;
  258. }
  259. }
  260. /* Generate contextual modifier classes for colorizing the border bottom and shadow in the card */
  261. @each $state in map-keys($theme-colors) {
  262. .card-border-shadow-#{$state} {
  263. --#{$prefix}card-border-bottom-color: color-mix(in sRGB, var(--#{$prefix}card-bg) #{$card-border-color-scale}, var(--#{$prefix}#{$state}));
  264. --#{$prefix}card-hover-border-bottom-color: var(--#{$prefix}#{$state});
  265. }
  266. .card-hover-border-#{$state} {
  267. --#{$prefix}card-hover-border-color: color-mix(in sRGB, var(--#{$prefix}card-bg) #{$card-hover-border-scale}, var(--#{$prefix}#{$state}));
  268. }
  269. }
  270. /* Dark Theme */
  271. @if $enable-dark-mode {
  272. @include color-mode(dark) {
  273. .card {
  274. --#{$prefix}card-bg: #{$card-bg-dark};
  275. --#{$prefix}card-subtitle-color: #{$card-subtitle-color-dark};
  276. }
  277. }
  278. }