/** * @fileoverview Rant Component Styles for Rantii * @author retoor * @description Styles for rant card, detail and feed * @keywords css, rant, card, feed, styles */ rant-content { display: block; } .content-text { word-wrap: break-word; overflow-wrap: break-word; } .content-text p { margin-bottom: var(--spacing-sm); } .content-text p:last-child { margin-bottom: 0; } .content-text a { color: var(--color-link); } .content-text code { background-color: var(--color-code-bg); padding: 0.125em 0.375em; border-radius: var(--radius-sm); font-size: 0.875em; } .content-text pre { background-color: var(--color-code-bg); padding: var(--spacing-md); border-radius: var(--radius-md); overflow-x: auto; margin: var(--spacing-md) 0; } .content-text pre code { background: none; padding: 0; font-size: var(--font-size-sm); } .content-images, .content-videos, .content-links { margin-top: var(--spacing-md); display: flex; flex-direction: column; gap: var(--spacing-sm); } rant-card { display: block; background-color: var(--color-surface); border-radius: var(--radius-lg); cursor: pointer; transition: all var(--transition-fast); } rant-card:hover { background-color: var(--color-surface-hover); } .card-content { padding: var(--spacing-md); } .card-header { display: flex; align-items: center; gap: var(--spacing-sm); margin-bottom: var(--spacing-sm); } .card-meta { display: flex; align-items: center; gap: var(--spacing-sm); flex-wrap: wrap; } .card-username { font-weight: 600; color: var(--color-text); } .card-score { font-size: var(--font-size-sm); color: var(--color-upvote); } .card-time { font-size: var(--font-size-sm); color: var(--color-text-muted); } .card-body { margin-bottom: var(--spacing-md); } .card-image { margin-top: var(--spacing-md); } .card-footer { display: flex; align-items: center; gap: var(--spacing-md); flex-wrap: wrap; } .card-comments { display: flex; align-items: center; gap: var(--spacing-xs); color: var(--color-text-muted); padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); transition: all var(--transition-fast); } .card-comments:hover { color: var(--color-text); background-color: var(--color-surface-hover); } .card-tags { display: flex; gap: var(--spacing-xs); flex-wrap: wrap; margin-left: auto; } .tag { padding: 2px 8px; font-size: var(--font-size-xs); color: var(--color-text-secondary); background-color: var(--color-bg-tertiary); border-radius: var(--radius-full); border: none; cursor: pointer; transition: all var(--transition-fast); } .tag:hover { background-color: var(--color-primary); color: white; } .rant-card-skeleton { height: 200px; background: linear-gradient(90deg, var(--color-surface) 25%, var(--color-surface-hover) 50%, var(--color-surface) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: var(--radius-lg); } @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } rant-detail { display: block; } .rant-detail-loading, .rant-detail-error { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; text-align: center; gap: var(--spacing-md); } .detail-content { background-color: var(--color-surface); border-radius: var(--radius-lg); padding: var(--spacing-lg); } .detail-header { display: flex; align-items: center; gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .detail-header .back-btn { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--color-text-secondary); border-radius: var(--radius-md); } .detail-header .back-btn:hover { color: var(--color-text); background-color: var(--color-surface-hover); } .detail-title { font-size: var(--font-size-lg); font-weight: 600; } .detail-author { display: flex; align-items: center; gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .author-info { flex: 1; } .author-username { display: block; font-weight: 600; cursor: pointer; } .author-username:hover { color: var(--color-primary); } .author-score { font-size: var(--font-size-sm); color: var(--color-upvote); } .detail-time { font-size: var(--font-size-sm); color: var(--color-text-muted); } .detail-body { margin-bottom: var(--spacing-lg); } .detail-image { margin-top: var(--spacing-lg); } .detail-tags { display: flex; gap: var(--spacing-sm); flex-wrap: wrap; margin-bottom: var(--spacing-lg); } .detail-footer { display: flex; align-items: center; gap: var(--spacing-lg); padding-top: var(--spacing-md); border-top: 1px solid var(--color-border); } .detail-comments-count { color: var(--color-text-secondary); } .comments-section { margin-top: var(--spacing-lg); } .comments-list { display: flex; flex-direction: column; gap: var(--spacing-md); margin-top: var(--spacing-lg); } rant-feed { display: block; } .feed-controls { margin-bottom: var(--spacing-md); } .sort-tabs { display: flex; gap: var(--spacing-xs); background-color: var(--color-surface); padding: var(--spacing-xs); border-radius: var(--radius-md); } .sort-tab { flex: 1; padding: var(--spacing-sm) var(--spacing-md); color: var(--color-text-secondary); border-radius: var(--radius-sm); font-weight: 500; transition: all var(--transition-fast); } .sort-tab:hover { color: var(--color-text); } .sort-tab.active { background-color: var(--color-primary); color: white; } .feed-list { display: flex; flex-direction: column; gap: var(--spacing-md); } .feed-loading, .feed-loadmore { display: flex; justify-content: center; padding: var(--spacing-lg); } .feed-empty { text-align: center; padding: var(--spacing-2xl); color: var(--color-text-secondary); } .load-more-btn { min-width: 120px; }