VCard.sass 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. @use '../../styles/tools'
  2. @use './variables' as *
  3. @use './mixins' as *
  4. @include tools.layer('components')
  5. .v-card
  6. display: block
  7. overflow: hidden
  8. overflow-wrap: $card-overflow-wrap
  9. position: relative
  10. padding: $card-padding
  11. text-decoration: none
  12. transition-duration: $card-transition-duration
  13. transition-property: $card-transition-property
  14. transition-timing-function: $card-transition-timing-function
  15. z-index: 0
  16. @include tools.border($card-border...)
  17. @include tools.position($card-positions)
  18. @include tools.rounded($card-border-radius)
  19. @include tools.states('.v-card__overlay')
  20. @include tools.variant($card-variants...)
  21. &--disabled
  22. pointer-events: none
  23. user-select: none
  24. >:not(.v-card__loader)
  25. opacity: $card-disabled-opacity
  26. &--flat
  27. box-shadow: none
  28. &--hover
  29. cursor: pointer
  30. &::before,
  31. &::after
  32. border-radius: inherit
  33. bottom: 0
  34. content: ''
  35. display: block
  36. left: 0
  37. pointer-events: none
  38. position: absolute
  39. right: 0
  40. top: 0
  41. transition: inherit
  42. &::before
  43. opacity: 1
  44. z-index: -1
  45. @include tools.elevation($card-elevation)
  46. &::after
  47. z-index: 1
  48. opacity: 0
  49. @include tools.elevation($card-hover-elevation)
  50. &:hover::after
  51. opacity: 1
  52. &:hover::before
  53. opacity: 0
  54. &:hover
  55. @include tools.elevation($card-hover-elevation)
  56. &--link
  57. cursor: pointer
  58. .v-card-actions
  59. align-items: center
  60. display: flex
  61. flex: $card-actions-flex
  62. min-height: $card-actions-min-height
  63. padding: $card-actions-padding
  64. gap: $card-actions-gap
  65. .v-card-item
  66. align-items: $card-item-align-items
  67. display: grid
  68. flex: $card-header-flex
  69. grid-template-areas: "prepend content append"
  70. grid-template-columns: max-content auto max-content
  71. padding: $card-item-padding
  72. + .v-card-text
  73. padding-top: 0
  74. &__prepend,
  75. &__append
  76. align-items: center
  77. display: flex
  78. &__prepend
  79. grid-area: prepend
  80. padding-inline-end: $card-prepend-padding-inline-end
  81. &__append
  82. grid-area: append
  83. padding-inline-start: $card-append-padding-inline-start
  84. .v-card-item__content
  85. align-self: center
  86. grid-area: content
  87. overflow: hidden
  88. .v-card-title
  89. display: block
  90. flex: $card-title-flex
  91. font-size: $card-title-font-size
  92. font-weight: $card-title-font-weight
  93. hyphens: $card-title-hyphens
  94. letter-spacing: $card-title-letter-spacing
  95. min-width: 0
  96. overflow-wrap: $card-title-overflow-wrap
  97. overflow: $card-title-overflow
  98. padding: $card-title-padding
  99. text-overflow: $card-title-text-overflow
  100. text-transform: $card-title-text-transform
  101. white-space: $card-title-white-space
  102. word-break: $card-title-word-break
  103. word-wrap: $card-title-word-wrap
  104. @include card-line-height-densities($card-title-densities)
  105. .v-card-item &
  106. padding: $card-title-header-padding
  107. + .v-card-text,
  108. + .v-card-actions
  109. padding-top: 0
  110. .v-card-subtitle
  111. display: block
  112. flex: $card-subtitle-flex
  113. font-size: $card-subtitle-font-size
  114. font-weight: $card-subtitle-font-weight
  115. letter-spacing: $card-subtitle-letter-spacing
  116. opacity: $card-subtitle-opacity
  117. overflow: $card-subtitle-overflow
  118. padding: $card-subtitle-padding
  119. text-overflow: $card-subtitle-text-overflow
  120. text-transform: $card-subtitle-text-transform
  121. white-space: $card-subtitle-white-space
  122. @include card-line-height-densities($card-subtitle-density-line-height)
  123. .v-card-item &
  124. padding: $card-subtitle-header-padding
  125. .v-card-text
  126. flex: $card-text-flex
  127. font-size: $card-text-font-size
  128. font-weight: $card-text-font-weight
  129. letter-spacing: $card-text-letter-spacing
  130. opacity: $card-text-opacity
  131. padding: $card-text-padding
  132. text-transform: $card-text-text-transform
  133. @include card-line-height-densities($card-text-density-line-height)
  134. .v-card__image
  135. display: flex
  136. height: 100%
  137. flex: $card-img-flex
  138. left: 0
  139. overflow: hidden
  140. position: absolute
  141. top: 0
  142. width: 100%
  143. z-index: -1
  144. .v-card__content
  145. border-radius: inherit
  146. overflow: hidden
  147. position: relative
  148. .v-card__loader
  149. bottom: $card-loader-bottom
  150. top: $card-loader-top
  151. left: 0
  152. position: absolute
  153. right: 0
  154. width: 100%
  155. z-index: 1
  156. .v-card__overlay
  157. background-color: currentColor
  158. border-radius: inherit
  159. position: absolute
  160. top: 0
  161. right: 0
  162. bottom: 0
  163. left: 0
  164. pointer-events: none
  165. opacity: 0
  166. transition: opacity 0.2s ease-in-out