nakama/frontend/src/pages/Notifications.css

185 lines
3.2 KiB
CSS
Raw Normal View History

2025-11-03 20:35:01 +00:00
.notifications-page {
min-height: 100vh;
}
.notifications-header {
position: sticky;
top: 0;
background: var(--bg-secondary);
padding: 16px;
border-bottom: 1px solid var(--divider-color);
display: flex;
justify-content: space-between;
align-items: center;
z-index: 10;
}
.notifications-header > div {
display: flex;
align-items: center;
gap: 12px;
}
.notifications-header h1 {
font-size: 24px;
font-weight: 700;
color: var(--text-primary);
}
.unread-badge {
padding: 4px 10px;
border-radius: 12px;
background: #FF3B30;
color: white;
font-size: 13px;
font-weight: 700;
}
.mark-all-btn {
display: flex;
align-items: center;
gap: 6px;
padding: 8px 12px;
border-radius: 20px;
background: var(--button-accent);
color: white;
font-size: 14px;
font-weight: 600;
}
.notifications-list {
padding: 16px;
display: flex;
flex-direction: column;
gap: 12px;
}
/* Telegram-стиль баблов */
.notification-bubble {
display: flex;
gap: 12px;
padding: 12px;
border-radius: 16px;
background: var(--bg-secondary);
box-shadow: 0 2px 8px var(--shadow-sm);
cursor: pointer;
transition: all 0.2s;
position: relative;
}
.notification-bubble.unread {
background: #E8F4FD;
border-left: 3px solid var(--button-accent);
}
.notification-bubble:active {
transform: scale(0.98);
box-shadow: 0 1px 4px var(--shadow-sm);
}
.bubble-avatar {
position: relative;
flex-shrink: 0;
}
.bubble-avatar img {
width: 48px;
height: 48px;
border-radius: 50%;
object-fit: cover;
}
.bubble-icon {
position: absolute;
bottom: -2px;
right: -2px;
width: 24px;
height: 24px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid var(--bg-secondary);
}
.bubble-content {
flex: 1;
display: flex;
flex-direction: column;
gap: 6px;
}
.bubble-text {
font-size: 15px;
line-height: 1.4;
}
.bubble-username {
font-weight: 600;
color: var(--text-primary);
}
.bubble-action {
color: var(--text-secondary);
}
.bubble-post-preview {
padding: 8px 12px;
border-radius: 10px;
background: var(--bg-primary);
font-size: 14px;
color: var(--text-secondary);
line-height: 1.4;
}
.bubble-image-preview {
width: 100%;
max-width: 200px;
height: 120px;
border-radius: 10px;
overflow: hidden;
}
.bubble-image-preview img {
width: 100%;
height: 100%;
object-fit: cover;
}
.bubble-time {
font-size: 12px;
color: var(--text-secondary);
}
.bubble-unread-dot {
position: absolute;
top: 16px;
right: 12px;
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--button-accent);
}
/* Разные стили для разных типов уведомлений */
.notification-bubble.unread:has(.bubble-icon[style*="FF3B30"]) {
background: #FFE8E6;
border-left-color: #FF3B30;
}
.notification-bubble.unread:has(.bubble-icon[style*="34C759"]) {
background: #E6F9EB;
border-left-color: #34C759;
}
.notification-bubble.unread:has(.bubble-icon[style*="5856D6"]) {
background: #EEEAFD;
border-left-color: #5856D6;
}
.notification-bubble.unread:has(.bubble-icon[style*="FF9500"]) {
background: #FFF3E0;
border-left-color: #FF9500;
}