117 lines
2.1 KiB
CSS

/* PostCard.css */
.post-card {
background-color: white;
border-radius: 1rem;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
overflow: hidden;
transition: box-shadow 0.3s ease, transform 0.3s ease;
display: flex;
flex-direction: column;
height: 100%;
}
.post-card:hover {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transform: translateY(-5px);
}
.post-card-image-wrapper {
height: 12rem;
background-color: #e5e7eb;
overflow: hidden;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.post-card-image {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.post-card:hover .post-card-image {
transform: scale(1.05);
}
.post-card-fallback {
font-size: 3rem;
color: #9ca3af;
}
.post-card-content {
padding: 1.5rem;
display: flex;
flex-direction: column;
flex: 1;
}
.post-meta {
display: flex;
align-items: center;
font-size: 0.875rem;
color: #6b7280;
margin-bottom: 0.75rem;
}
.post-category-badge {
color: #2563eb;
font-weight: 700;
text-transform: uppercase;
font-size: 0.75rem;
letter-spacing: 0.05em;
}
.post-meta-divider {
margin: 0 0.5rem;
color: #e5e7eb;
}
.post-title {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 0.75rem;
line-height: 1.4;
}
.post-title a {
color: #111827;
text-decoration: none;
transition: color 0.2s;
}
.post-title a:hover {
color: #2563eb;
}
.post-excerpt {
color: #4b5563;
font-size: 0.95rem;
line-height: 1.6;
margin-bottom: 1.5rem;
flex: 1;
/* Line clamping for Webkit browsers */
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.post-read-more {
display: inline-flex;
align-items: center;
color: #2563eb;
font-weight: 600;
text-decoration: none;
font-size: 0.95rem;
transition: color 0.2s;
}
.post-read-more:hover {
color: #1d4ed8;
text-decoration: underline;
}