پیشنمایش زنده
کد HTML
<div class="card">
<div
aria-label="Abstract gradient background"
role="img"
class="card-image"
></div>
<div class="card-content">
<p class="card-title">Advanced CSS Card</p>
<p class="card-description">
This card showcases advanced CSS techniques including animations,
gradients, and interactive elements.
</p>
<div class="card-tags">
<span class="card-tag">Design</span>
<span class="card-tag">CSS</span>
<span class="card-tag">HTML</span>
</div>
<div class="card-footer">
<div class="card-stats">
<span class="card-stat">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
class="card-stat-icon"
>
<path
d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.78 7.77L10 18.78l8.39-8.4a5.5 5.5 0 0 0-7.78-7.77l-.61.61z"
></path>
</svg>
42
</span>
<span class="card-stat">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
class="card-stat-icon"
>
<path
d="M17 11v3l-3-3H8a2 2 0 0 1-2-2V2c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2h-1zm-3 2v2a2 2 0 0 1-2 2H6l-3 3v-3H2a2 2 0 0 1-2-2V8c0-1.1.9-2 2-2h2v3a4 4 0 0 0 4 4h6z"
></path>
</svg>
18
</span>
</div>
<a class="card-button" href="#">Explore</a>
</div>
</div>
</div>
کد CSS
.card {
width: 320px;
background-color: #ffffff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}
.card:hover {
transform: translateY(-10px) rotateY(5deg);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.card-image {
height: 160px;
background: linear-gradient(135deg, #4f46e5, #818cf8);
position: relative;
overflow: hidden;
}
.card-image::before {
content: "";
position: absolute;
top: 0;
left: -50%;
width: 200%;
height: 100%;
background: linear-gradient(
to bottom,
transparent,
rgba(255, 255, 255, 0.1) 50%,
transparent
);
transform: rotate(45deg);
animation: shine 3s infinite;
}
@keyframes shine {
0% {
transform: translateX(-50%) rotate(45deg);
}
100% {
transform: translateX(100%) rotate(45deg);
}
}
.card-content {
padding: 24px;
}
.card-title {
font-size: 24px;
font-weight: 600;
color: #1f2937;
margin: 0 0 16px;
position: relative;
padding-bottom: 10px;
}
.card-title::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 50px;
height: 3px;
background-color: #4f46e5;
transition: width 0.3s ease;
}
.card:hover .card-title::after {
width: 100px;
}
.card-description {
font-size: 14px;
color: #4b5563;
line-height: 1.6;
margin-bottom: 20px;
}
.card-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 20px;
}
.card-tag {
font-size: 12px;
color: #4f46e5;
background-color: #eef2ff;
padding: 4px 10px;
border-radius: 20px;
transition: all 0.3s ease;
}
.card-tag:hover {
background-color: #4f46e5;
color: #ffffff;
transform: translateY(-2px);
}
.card-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 16px;
border-top: 1px solid #e5e7eb;
}
.card-stats {
display: flex;
gap: 16px;
}
.card-stat {
display: flex;
align-items: center;
gap: 4px;
font-size: 14px;
color: #6b7280;
}
.card-stat-icon {
width: 20px;
height: 20px;
fill: currentColor;
}
.card-button {
display: inline-block;
padding: 10px 20px;
background: linear-gradient(135deg, #4f46e5, #818cf8);
color: #ffffff;
text-decoration: none;
border-radius: 25px;
font-weight: 600;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.card-button::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
135deg,
transparent,
rgba(255, 255, 255, 0.3),
transparent
);
transition: all 0.4s ease;
}
.card-button:hover::before {
left: 100%;
}
.card-button:hover {
transform: translateY(-3px);
box-shadow: 0 5px 15px rgba(79, 70, 229, 0.4);
}
@keyframes float {
0%,
100% {
transform: translateY(0) rotate(0deg);
}
50% {
transform: translateY(-10px) rotate(2deg);
}
}
.card {
animation: float 6s ease-in-out infinite;
}