Skip to content

Commit 531d326

Browse files
committed
Update Payment Notifications to match liquid blue/cyan theme from Paid Subscribers - Apply glass morphism effects and cyan color scheme to BaseNotification icons and notification items
1 parent a7c5125 commit 531d326

2 files changed

Lines changed: 106 additions & 62 deletions

File tree

src/components/common/BaseNotification/BaseNotification.styles.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export const Description = styled(BaseTypography.Text)`
2020
`;
2121

2222
export const SpaceWrapper = styled(BaseSpace)<SpacewWrapperProps>`
23-
background-color: var(--background-color);
23+
/* Remove background - transparent by default */
24+
background: transparent;
2425
2526
& ${Title}, span[role='img'] {
2627
${(props) => {
@@ -39,7 +40,7 @@ export const SpaceWrapper = styled(BaseSpace)<SpacewWrapperProps>`
3940
return css`
4041
/* Liquid cyan theme colors to match Paid Subscribers */
4142
color: rgba(45, 212, 191, 0.95);
42-
filter: drop-shadow(0 0 4px rgba(6, 182, 212, 0.3));
43+
filter: drop-shadow(0 0 2px rgba(6, 182, 212, 0.15));
4344
`;
4445
case 'mention':
4546
return css`
@@ -54,19 +55,19 @@ export const SpaceWrapper = styled(BaseSpace)<SpacewWrapperProps>`
5455
& span[role='img'] {
5556
font-size: 2rem;
5657
57-
/* Add glow effect for info icons */
58+
/* Add subtle glow effect for info icons */
5859
${(props) => props.type === 'info' && css`
59-
animation: pulseGlow 2s ease-in-out infinite;
60+
animation: pulseGlow 3s ease-in-out infinite;
6061
6162
@keyframes pulseGlow {
6263
0% {
63-
filter: drop-shadow(0 0 4px rgba(6, 182, 212, 0.3));
64+
filter: drop-shadow(0 0 2px rgba(6, 182, 212, 0.15));
6465
}
6566
50% {
66-
filter: drop-shadow(0 0 8px rgba(45, 212, 191, 0.5));
67+
filter: drop-shadow(0 0 4px rgba(45, 212, 191, 0.25));
6768
}
6869
100% {
69-
filter: drop-shadow(0 0 4px rgba(6, 182, 212, 0.3));
70+
filter: drop-shadow(0 0 2px rgba(6, 182, 212, 0.15));
7071
}
7172
}
7273
`}

src/components/payment/PaymentNotifications/PaymentNotifications.styles.ts

Lines changed: 98 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -54,65 +54,52 @@ export const SplitDivider = styled(Divider)`
5454
`;
5555

5656
export const NotificationItem = styled.div<{ $isRead: boolean }>`
57-
padding: 0.75rem;
58-
border-radius: ${BORDER_RADIUS};
59-
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
57+
padding: 0;
6058
margin-bottom: 1rem;
61-
62-
/* Glass morphism background matching Paid Subscribers */
63-
background: linear-gradient(to bottom right,
64-
rgba(20, 184, 166, 0.08), /* from-teal-500/8 */
65-
rgba(6, 182, 212, 0.06), /* via-cyan-500/6 */
66-
rgba(34, 197, 94, 0.08) /* to-green-500/8 */
67-
);
68-
69-
backdrop-filter: blur(10px);
70-
-webkit-backdrop-filter: blur(10px);
71-
border: 1px solid rgba(45, 212, 191, 0.2);
59+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
7260
position: relative;
73-
overflow: hidden;
7461
75-
/* Glass overlay effect */
76-
&::before {
77-
content: '';
78-
position: absolute;
79-
top: 0;
80-
left: 0;
81-
right: 0;
82-
height: 50%;
83-
background: linear-gradient(
84-
180deg,
85-
rgba(255, 255, 255, 0.05) 0%,
86-
transparent 100%
87-
);
88-
pointer-events: none;
89-
}
90-
62+
/* Remove all background styling - let BaseNotification handle the visuals */
63+
background: transparent;
64+
border: none;
65+
backdrop-filter: none;
66+
-webkit-backdrop-filter: none;
67+
68+
/* Add left indicator for unread state */
9169
${({ $isRead }) =>
9270
!$isRead &&
9371
css`
94-
background: linear-gradient(to bottom right,
95-
rgba(20, 184, 166, 0.12),
96-
rgba(6, 182, 212, 0.10),
97-
rgba(34, 197, 94, 0.12)
98-
);
99-
border-left: 3px solid rgba(45, 212, 191, 0.6);
100-
box-shadow:
101-
inset 0 2px 8px rgba(45, 212, 191, 0.15),
102-
0 0 20px rgba(6, 182, 212, 0.15);
72+
&::before {
73+
content: '';
74+
position: absolute;
75+
left: 0;
76+
top: 50%;
77+
transform: translateY(-50%);
78+
width: 3px;
79+
height: 60%;
80+
background: linear-gradient(
81+
to bottom,
82+
rgba(45, 212, 191, 0.6),
83+
rgba(6, 182, 212, 0.8),
84+
rgba(45, 212, 191, 0.6)
85+
);
86+
border-radius: 0 2px 2px 0;
87+
box-shadow: 0 0 10px rgba(6, 182, 212, 0.4);
88+
animation: unreadGlow 2s ease-in-out infinite;
89+
}
90+
91+
@keyframes unreadGlow {
92+
0%, 100% {
93+
box-shadow: 0 0 10px rgba(6, 182, 212, 0.4);
94+
}
95+
50% {
96+
box-shadow: 0 0 20px rgba(45, 212, 191, 0.6);
97+
}
98+
}
10399
`}
104100
105101
&:hover {
106-
background: linear-gradient(to bottom right,
107-
rgba(20, 184, 166, 0.15),
108-
rgba(6, 182, 212, 0.12),
109-
rgba(34, 197, 94, 0.15)
110-
);
111-
border-color: rgba(45, 212, 191, 0.35);
112102
transform: translateY(-2px);
113-
box-shadow:
114-
inset 0 3px 12px rgba(45, 212, 191, 0.2),
115-
0 0 30px rgba(6, 182, 212, 0.2);
116103
}
117104
`;
118105

@@ -333,13 +320,69 @@ export const PaymentCountBadge = styled(Badge)`
333320
margin-left: 0.5rem;
334321
335322
.ant-badge-count {
336-
background: linear-gradient(135deg, #00ffff 0%, #06b6d4 100%);
337-
color: rgba(0, 0, 0, 0.85);
338-
font-weight: 600;
323+
/* Liquid glass morphism badge matching Paid Subscribers theme */
324+
background: linear-gradient(135deg,
325+
rgba(20, 184, 166, 0.85), /* from-teal-500 */
326+
rgba(6, 182, 212, 0.80), /* to-cyan-500 */
327+
rgba(45, 212, 191, 0.85) /* accent cyan */
328+
);
329+
color: rgba(0, 20, 30, 0.95); /* Dark text for contrast */
330+
font-weight: 700;
331+
font-size: 11px;
332+
backdrop-filter: blur(8px);
333+
-webkit-backdrop-filter: blur(8px);
334+
border: 1px solid rgba(45, 212, 191, 0.4);
335+
box-shadow:
336+
inset 0 1px 4px rgba(255, 255, 255, 0.25),
337+
0 0 12px rgba(45, 212, 191, 0.5),
338+
0 0 24px rgba(6, 182, 212, 0.3),
339+
0 2px 8px rgba(0, 0, 0, 0.15);
340+
position: relative;
341+
overflow: hidden;
342+
animation: pulseGlow 2s ease-in-out infinite;
343+
344+
/* Glass overlay for depth */
345+
&::before {
346+
content: '';
347+
position: absolute;
348+
top: 0;
349+
left: 0;
350+
right: 0;
351+
height: 40%;
352+
background: linear-gradient(
353+
180deg,
354+
rgba(255, 255, 255, 0.15) 0%,
355+
transparent 100%
356+
);
357+
pointer-events: none;
358+
}
359+
360+
@keyframes pulseGlow {
361+
0%, 100% {
362+
box-shadow:
363+
inset 0 1px 4px rgba(255, 255, 255, 0.25),
364+
0 0 12px rgba(45, 212, 191, 0.5),
365+
0 0 24px rgba(6, 182, 212, 0.3),
366+
0 2px 8px rgba(0, 0, 0, 0.15);
367+
}
368+
50% {
369+
box-shadow:
370+
inset 0 1px 4px rgba(255, 255, 255, 0.25),
371+
0 0 18px rgba(45, 212, 191, 0.7),
372+
0 0 36px rgba(6, 182, 212, 0.5),
373+
0 2px 10px rgba(0, 0, 0, 0.2);
374+
}
375+
}
376+
}
377+
378+
/* Hover effect on the badge count */
379+
&:hover .ant-badge-count {
380+
transform: scale(1.1);
339381
box-shadow:
340-
0 0 8px rgba(0, 255, 255, 0.5),
341-
0 0 16px rgba(0, 255, 255, 0.3);
342-
border: none;
382+
inset 0 1px 6px rgba(255, 255, 255, 0.3),
383+
0 0 20px rgba(45, 212, 191, 0.7),
384+
0 0 40px rgba(6, 182, 212, 0.5),
385+
0 3px 12px rgba(0, 0, 0, 0.2);
343386
}
344387
`;
345388

0 commit comments

Comments
 (0)