blob: 48e3a94d1cded8e407a9eda3814125e75a7101df [file]
/**
* PostCard Component Styles
* Text-forward blog post card with category badge, metadata, and author info.
*/
.postCard {
display: flex;
flex-direction: column;
padding: var(--ai-spacing-xl);
background: var(--ai-bg-card);
border: 1px solid var(--ai-border-light);
border-radius: var(--ai-radius-lg);
transition: border-color var(--ai-transition-normal),
box-shadow var(--ai-transition-normal);
}
.postCard:hover {
border-color: var(--ai-border-medium);
box-shadow: var(--ai-shadow-sm);
}
.postCard__link {
text-decoration: none;
color: inherit;
display: block;
}
.postCard__link:hover {
text-decoration: none;
}
/* Header with meta and title */
.postCard__header {
margin-bottom: var(--ai-spacing-md);
}
.postCard__meta {
display: flex;
align-items: center;
gap: var(--ai-spacing-xs);
margin-bottom: var(--ai-spacing-sm);
font-size: 1.4rem;
color: var(--ai-text-secondary);
}
.postCard__separator {
color: var(--ai-gray-300);
}
.postCard__date,
.postCard__readingTime {
color: var(--ai-text-secondary);
}
/* Category badge */
.postCard__category {
font-size: 1.2rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
padding: 2px 8px;
border-radius: var(--ai-radius-xs);
background: var(--ai-gray-100);
color: var(--ai-text-secondary);
}
.postCard__category--release {
background: var(--ai-blue-lighter);
color: var(--ai-blue);
}
.postCard__category--technical {
background: var(--ai-gray-100);
color: var(--ai-gray-400);
}
.postCard__category--tutorial {
background: var(--ai-primary-lightest);
color: var(--ai-primary-dark);
}
.postCard__category--community {
background: #e8f0fa;
color: var(--ai-blue-dark);
}
/* Title */
.postCard__title {
font-size: 2.2rem;
font-weight: 700;
line-height: 1.3;
color: var(--ai-text-primary);
margin: 0;
transition: color var(--ai-transition-normal);
}
.postCard__link:hover .postCard__title {
color: var(--ai-blue);
}
/* Description */
.postCard__description {
font-size: 1.6rem;
line-height: 1.6;
color: var(--ai-text-secondary);
margin: 0 0 var(--ai-spacing-md) 0;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Footer with author and date */
.postCard__footer {
margin-top: auto;
padding-top: var(--ai-spacing-md);
}
/* Author */
.postCard__author {
display: flex;
align-items: center;
gap: var(--ai-spacing-sm);
}
.postCard__authorImage {
width: 36px;
height: 36px;
border-radius: var(--ai-radius-circle);
object-fit: cover;
}
.postCard__authorInfo {
display: flex;
flex-direction: column;
}
.postCard__authorName {
font-size: 1.4rem;
font-weight: 600;
color: var(--ai-text-primary);
}
.postCard__authorTitle {
font-size: 1.3rem;
color: var(--ai-text-secondary);
}
/* Date line under category */
.postCard__dateLine {
display: flex;
align-items: center;
gap: var(--ai-spacing-xs);
font-size: 1.3rem;
color: var(--ai-text-tertiary);
margin-bottom: var(--ai-spacing-sm);
}
/* Tags */
.postCard__tags {
display: flex;
flex-wrap: wrap;
gap: var(--ai-spacing-xs);
margin-top: var(--ai-spacing-md);
padding-top: var(--ai-spacing-md);
border-top: 1px solid var(--ai-border-light);
}
.postCard__tag {
font-size: 1.3rem;
color: var(--ai-blue);
background: var(--ai-blue-lighter);
padding: 4px 12px;
border-radius: var(--ai-radius-full);
text-decoration: none;
transition: background var(--ai-transition-normal);
}
.postCard__tag:hover {
background: var(--ai-blue-light);
text-decoration: none;
}
/* === Variant: Featured === */
.postCard--featured {
padding: var(--ai-spacing-2xl);
background: linear-gradient(135deg, var(--ai-bg-card) 0%, var(--ai-gray-50) 100%);
border: none;
box-shadow: var(--ai-shadow-md);
}
.postCard--featured .postCard__title {
font-size: 2.8rem;
}
.postCard--featured .postCard__description {
font-size: 1.7rem;
-webkit-line-clamp: 4;
}
/* === Variant: Compact === */
.postCard--compact {
padding: var(--ai-spacing-md);
background: transparent;
border: none;
border-radius: 0;
}
.postCard--compact:hover {
background: var(--ai-gray-50);
box-shadow: none;
}
.postCard--compact .postCard__header {
margin-bottom: 0;
}
.postCard--compact .postCard__meta {
font-size: 1.2rem;
margin-bottom: var(--ai-spacing-xs);
}
.postCard--compact .postCard__title {
font-size: 1.6rem;
}
.postCard--compact .postCard__category {
display: none;
}
/* === Variant: Related === */
.postCard--related {
padding: var(--ai-spacing-lg);
}
.postCard--related .postCard__title {
font-size: 1.8rem;
}
.postCard--related .postCard__description {
font-size: 1.5rem;
-webkit-line-clamp: 2;
}
/* === Responsive === */
@media (max-width: 768px) {
.postCard {
padding: var(--ai-spacing-lg);
}
.postCard__title {
font-size: 2rem;
}
.postCard__description {
font-size: 1.5rem;
}
.postCard--featured {
padding: var(--ai-spacing-xl);
}
.postCard--featured .postCard__title {
font-size: 2.2rem;
}
}