Files
citrus-cms/template/assets/scss/custom/_card.scss
T
2026-04-28 21:15:09 +03:00

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%);
}
}