198 lines
3.8 KiB
SCSS
198 lines
3.8 KiB
SCSS
//
|
|
// card.scss
|
|
// Extended from Bootstrap
|
|
//
|
|
|
|
// Quick fix for border radius issue in safari
|
|
.card, .overflow-hidden{
|
|
will-change: transform;
|
|
}
|
|
|
|
//
|
|
// Additional styles for theme
|
|
//
|
|
|
|
// Hovering on card to show element
|
|
.card{
|
|
.card-element-hover{
|
|
visibility: hidden;
|
|
margin-top: 30px;
|
|
opacity: 0;
|
|
transition: $transition-base;
|
|
z-index: 9;
|
|
}
|
|
&:hover{
|
|
.card-element-hover{
|
|
visibility: visible;
|
|
margin-top: 0px;
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Hovering on card to show hover overlay on bottom
|
|
.card{
|
|
&.card-overlay-bottom{
|
|
overflow: hidden;
|
|
&:before {
|
|
content: "";
|
|
position: absolute;
|
|
height: 50%;
|
|
width: 100%;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba($black, 1)));
|
|
background-image: linear-gradient(180deg, transparent, rgba($black, 1));
|
|
z-index: 1;
|
|
}
|
|
}
|
|
.card-img-overlay{
|
|
z-index: 2;
|
|
}
|
|
}
|
|
|
|
// Hovering on card to show hover overlay on top
|
|
.card{
|
|
&.card-overlay-top{
|
|
overflow: hidden;
|
|
&:before {
|
|
content: "";
|
|
position: absolute;
|
|
height: 50%;
|
|
width: 100%;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba($black, 1)));
|
|
background-image: linear-gradient(0deg, transparent, rgba($black, 1));
|
|
}
|
|
}
|
|
}
|
|
|
|
// Card hover image scale
|
|
.card-img-scale{
|
|
.card-img {
|
|
transition: $transition-base;
|
|
transform: scale(1);
|
|
}
|
|
&:hover .card-img{
|
|
transform: scale(1.08);
|
|
}
|
|
}
|
|
|
|
// Card hover bg image scale
|
|
.card-bg-scale{
|
|
z-index: 99;
|
|
}
|
|
.card-bg-scale::after {
|
|
content:"";
|
|
position:absolute;
|
|
top:0;
|
|
right:0;
|
|
bottom:0;
|
|
left:0;
|
|
background: inherit;
|
|
transition: all 1s !important;
|
|
z-index: -2;
|
|
}
|
|
.card-bg-scale:hover::after {
|
|
transform: scale(1.1);
|
|
transition: all 1s !important;
|
|
}
|
|
|
|
// card featured
|
|
.card-featured {
|
|
position: absolute;
|
|
z-index: 99;
|
|
background: $primary;
|
|
color: $white;
|
|
transform: rotate(45deg);
|
|
text-align: center;
|
|
top: -8px;
|
|
right: -48px;
|
|
width: 120px;
|
|
padding: 16px 0 3px 0;
|
|
}
|
|
|
|
// Flash overlay on card hover
|
|
.card-img-flash {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.card-img-flash::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
z-index: 2;
|
|
left: -80%;
|
|
width: 50%;
|
|
height: 100%;
|
|
display: block;
|
|
background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
|
|
transform: skewX(-25deg);
|
|
}
|
|
.card-img-flash:hover::before {
|
|
animation: imgflash 1s;
|
|
}
|
|
@-webkit-keyframes imgflash {
|
|
100% {
|
|
left: 125%;
|
|
}
|
|
}
|
|
@keyframes imgflash {
|
|
100% {
|
|
left: 125%;
|
|
}
|
|
}
|
|
|
|
// card grid for fix height
|
|
.card-grid {
|
|
.card-grid-lg{
|
|
height: 560px;
|
|
}
|
|
.card-grid-sm{
|
|
height: calc(280px - calc(var(--bs-gutter-y) / 2));
|
|
}
|
|
}
|
|
@include media-breakpoint-down(md) {
|
|
.card-grid .card-grid-lg{
|
|
height: 400px;
|
|
}
|
|
}
|
|
|
|
// Card fold style on hover
|
|
.card-fold {
|
|
position: relative;
|
|
transform: translateZ(0);
|
|
box-shadow: 0 0 1px rgba($black, 0);
|
|
}
|
|
.card-fold:after {
|
|
position: absolute;
|
|
content: '';
|
|
height: 0;
|
|
width: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
z-index: 1000;
|
|
background: linear-gradient(-45deg, $body-bg 45%, $body-bg 45%, $gray-400 50%, $white 70%);
|
|
box-shadow: -5px -5px 5px rgba($black, 0.4);
|
|
transition: 0.3s;
|
|
border-radius: $card-border-radius 0px 0px 0px;
|
|
}
|
|
.card:hover .card-fold:after,
|
|
.card:focus .card-fold:after,
|
|
.card:active .card-fold:after,
|
|
.card:hover.card-fold:after,
|
|
.card:focus.card-fold:after,
|
|
.card:active.card-fold:after {
|
|
width: 40px;
|
|
height: 40px;
|
|
}
|
|
|
|
.bg-dark .card-fold{
|
|
&:after{
|
|
--bs-bg-opacity: 1;
|
|
background: linear-gradient(-45deg, rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) 45%, $black 45%, $gray-400 50%, $white 70%);
|
|
}
|
|
} |