w-lab-app/src/components/domains/dashboard/cards/VideoGuideCard/VideoGuideCard.module.scss
2025-10-28 21:29:34 +04:00

274 lines
4.7 KiB
SCSS

.container.container {
display: flex;
min-width: 260px;
min-height: 280px;
height: 100%;
flex-direction: column;
align-items: flex-start;
border-radius: 24px;
border: 0 solid #e5e7eb;
background: rgba(0, 0, 0, 0);
box-shadow:
0 4px 6px 0 rgba(0, 0, 0, 0.1),
0 10px 15px 0 rgba(0, 0, 0, 0.1);
overflow: hidden;
padding: 0;
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
position: relative;
// Hover effect only for purchased cards (wrapped in Link)
:global(a):hover & {
transform: translateY(-4px);
box-shadow:
0 6px 10px 0 rgba(0, 0, 0, 0.12),
0 12px 18px 0 rgba(0, 0, 0, 0.12);
}
&.processing {
pointer-events: none;
}
}
.processingOverlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.95);
z-index: 10;
}
// Image section
.image {
display: flex;
min-height: 160px;
padding: 16px;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 10px;
align-self: stretch;
border: 0 solid #e5e7eb;
position: relative;
overflow: hidden;
&::before {
content: "";
position: absolute;
inset: 0;
background: lightgray 50% / cover no-repeat;
z-index: 0;
}
.imageContent {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
pointer-events: none;
z-index: 0;
}
.playIcon {
position: relative;
z-index: 1;
width: 64px;
height: 65px;
svg {
width: 64px;
height: 65px;
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.25));
}
}
}
// Content section
.content {
display: flex;
padding: 16px;
flex-direction: column;
align-items: flex-start;
justify-content: space-between;
gap: 24px;
align-self: stretch;
background: #fff;
flex: 1;
.purchased & {
gap: 6px;
}
}
// Top section
.top {
display: flex;
align-items: flex-start;
gap: 14px;
align-self: stretch;
.text {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 3px;
flex: 1 0 0;
}
.arrowButton {
display: flex;
width: 40px;
height: 40px;
padding: 12px 0;
justify-content: center;
align-items: center;
border-radius: 9999px;
border: 0 solid #e5e7eb;
background: #f5f5f7;
cursor: pointer;
transition: opacity 0.2s ease;
svg {
width: 8px;
height: 14px;
flex-shrink: 0;
}
&:hover {
opacity: 0.8;
}
}
}
.title {
align-self: stretch;
color: #1d1d1f;
font-family: Inter, sans-serif;
font-size: 20px;
font-style: normal;
font-weight: 500;
line-height: 28px;
text-align: left;
}
.subtitle {
align-self: stretch;
color: #6b7280;
font-family: Inter, sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 20px;
text-align: left;
}
// Bottom section
.bottom {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
gap: 8px;
align-self: stretch;
}
.bottomText {
display: flex;
height: 24px;
justify-content: space-between;
align-items: center;
align-self: stretch;
}
.duration {
display: flex;
width: 49px;
flex-direction: column;
justify-content: center;
align-self: stretch;
color: #6b7280;
font-family: Inter, sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 20px;
}
.durationPurchased {
display: flex;
justify-content: flex-end;
align-self: stretch;
color: #6b7280;
font-family: Inter, sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 20px;
}
.discountBadge {
display: flex;
padding: 6px 10px;
justify-content: center;
align-items: center;
gap: 10px;
align-self: stretch;
border-radius: 9999px;
border: 0 solid #e5e7eb;
background: rgba(255, 107, 107, 0.1);
}
.discountText {
color: #ff6b6b;
text-align: center;
font-family: Inter, sans-serif;
font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: normal;
.oldPrice {
color: #8b8b8b;
font-family: Inter, sans-serif;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-decoration-line: line-through;
}
}
.buyButton.buyButton {
display: flex;
padding: 8px 10px;
justify-content: center;
align-items: center;
gap: 10px;
border-radius: 12px;
border: 0 solid #e5e7eb;
background: #2563eb;
cursor: pointer;
transition: opacity 0.2s ease;
width: auto;
color: #fff;
text-align: center;
font-family: Inter, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: normal;
&:hover {
opacity: 0.9;
}
}