Skip to content

Commit 9c514bd

Browse files
committed
Update LiquidBlueBadge with liquid blue/cyan theme - Remove scale movement, keep pulse glow, reposition badge to top-right of bell icon
1 parent 531d326 commit 9c514bd

1 file changed

Lines changed: 80 additions & 39 deletions

File tree

src/components/common/LiquidBlueBadge/LiquidBlueBadge.styles.ts

Lines changed: 80 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@ import { Badge } from 'antd';
33

44
const pulse = keyframes`
55
0% {
6-
box-shadow: 0 0 0 0 rgba(0, 255, 255, 0.7);
7-
transform: scale(1);
6+
box-shadow: 0 0 0 0 rgba(45, 212, 191, 0.7);
87
}
98
50% {
10-
box-shadow: 0 0 0 4px rgba(0, 255, 255, 0.3), 0 0 20px rgba(0, 255, 255, 0.5);
11-
transform: scale(1.05);
9+
box-shadow: 0 0 0 4px rgba(45, 212, 191, 0.3), 0 0 20px rgba(6, 182, 212, 0.5);
1210
}
1311
100% {
14-
box-shadow: 0 0 0 0 rgba(0, 255, 255, 0.7);
15-
transform: scale(1);
12+
box-shadow: 0 0 0 0 rgba(45, 212, 191, 0.7);
1613
}
1714
`;
1815

@@ -30,78 +27,122 @@ const glow = keyframes`
3027

3128
export const StyledLiquidBadge = styled(Badge)`
3229
& .ant-badge-count {
33-
background: linear-gradient(135deg, #00ffff 0%, #06b6d4 100%);
34-
border: none;
35-
box-shadow:
36-
0 0 12px rgba(0, 255, 255, 0.6),
37-
0 0 24px rgba(0, 255, 255, 0.4),
38-
inset 0 0 8px rgba(255, 255, 255, 0.3);
30+
/* Liquid glass morphism matching our theme */
31+
background: linear-gradient(135deg,
32+
rgba(20, 184, 166, 0.85), /* teal */
33+
rgba(6, 182, 212, 0.80), /* cyan */
34+
rgba(45, 212, 191, 0.85) /* turquoise */
35+
);
36+
border: 1px solid rgba(45, 212, 191, 0.3);
37+
box-shadow:
38+
0 0 8px rgba(45, 212, 191, 0.5),
39+
0 0 16px rgba(6, 182, 212, 0.3),
40+
inset 0 0 4px rgba(255, 255, 255, 0.2);
3941
animation: ${pulse} 2s ease-in-out infinite;
40-
font-weight: 600;
41-
color: rgba(0, 0, 0, 0.9);
42-
backdrop-filter: blur(4px);
43-
-webkit-backdrop-filter: blur(4px);
42+
font-weight: 700;
43+
color: rgba(0, 20, 30, 0.95);
44+
backdrop-filter: blur(6px);
45+
-webkit-backdrop-filter: blur(6px);
46+
position: relative;
47+
overflow: hidden;
48+
49+
/* Glass overlay for depth */
50+
&::before {
51+
content: '';
52+
position: absolute;
53+
top: 0;
54+
left: 0;
55+
right: 0;
56+
height: 40%;
57+
background: linear-gradient(
58+
180deg,
59+
rgba(255, 255, 255, 0.12) 0%,
60+
transparent 100%
61+
);
62+
pointer-events: none;
63+
}
4464
}
4565
4666
& .ant-badge-dot {
47-
background: radial-gradient(circle, #ffffff 0%, #00ffff 40%, #06b6d4 100%);
67+
background: radial-gradient(circle,
68+
rgba(255, 255, 255, 0.9) 0%,
69+
rgba(45, 212, 191, 0.85) 40%,
70+
rgba(6, 182, 212, 0.8) 100%
71+
);
4872
width: 10px;
4973
height: 10px;
50-
box-shadow:
51-
0 0 8px rgba(0, 255, 255, 0.8),
52-
0 0 16px rgba(0, 255, 255, 0.6),
53-
0 0 24px rgba(0, 255, 255, 0.4);
74+
border: 1px solid rgba(45, 212, 191, 0.4);
75+
box-shadow:
76+
0 0 8px rgba(45, 212, 191, 0.6),
77+
0 0 16px rgba(6, 182, 212, 0.4);
5478
animation: ${pulse} 2s ease-in-out infinite;
55-
border: 1px solid rgba(255, 255, 255, 0.3);
79+
backdrop-filter: blur(4px);
5680
}
5781
5882
& .ant-badge-count-sm {
59-
background: linear-gradient(135deg, #00ffff 0%, #06b6d4 100%);
83+
background: linear-gradient(135deg,
84+
rgba(20, 184, 166, 0.82),
85+
rgba(6, 182, 212, 0.78),
86+
rgba(45, 212, 191, 0.82)
87+
);
6088
min-width: 18px;
6189
height: 18px;
6290
line-height: 18px;
6391
font-size: 11px;
6492
padding: 0 5px;
65-
box-shadow:
66-
0 0 8px rgba(0, 255, 255, 0.5),
67-
0 0 16px rgba(0, 255, 255, 0.3);
93+
border: 1px solid rgba(45, 212, 191, 0.25);
94+
box-shadow:
95+
0 0 6px rgba(45, 212, 191, 0.4),
96+
0 0 12px rgba(6, 182, 212, 0.25);
6897
animation: ${glow} 2s ease-in-out infinite;
69-
color: rgba(0, 0, 0, 0.85);
98+
color: rgba(0, 20, 30, 0.9);
7099
font-weight: 600;
100+
backdrop-filter: blur(4px);
71101
}
72102
73103
&.notification-badge {
74104
& .ant-badge-count {
75-
right: -3px;
76-
top: -3px;
105+
right: 6px;
106+
top: -12px;
77107
}
78108
}
79109
`;
80110

81111
// Tab badge with more subtle animation for inline use
82112
export const TabBadge = styled(Badge)`
83113
& .ant-badge-count {
84-
background: linear-gradient(135deg, #00ffff 0%, #14b8a6 100%);
85-
border: none;
86-
box-shadow:
87-
0 0 6px rgba(0, 255, 255, 0.5),
88-
inset 0 0 4px rgba(255, 255, 255, 0.2);
89-
color: rgba(0, 0, 0, 0.85);
114+
background: linear-gradient(135deg,
115+
rgba(20, 184, 166, 0.75),
116+
rgba(45, 212, 191, 0.70),
117+
rgba(6, 182, 212, 0.75)
118+
);
119+
border: 1px solid rgba(45, 212, 191, 0.2);
120+
box-shadow:
121+
0 0 4px rgba(45, 212, 191, 0.35),
122+
inset 0 0 3px rgba(255, 255, 255, 0.15);
123+
color: rgba(0, 20, 30, 0.85);
90124
font-weight: 600;
91125
animation: ${glow} 3s ease-in-out infinite;
126+
backdrop-filter: blur(3px);
92127
}
93128
94129
& .ant-badge-count-sm {
95-
background: linear-gradient(135deg, #00ffff 0%, #14b8a6 100%);
130+
background: linear-gradient(135deg,
131+
rgba(20, 184, 166, 0.72),
132+
rgba(45, 212, 191, 0.68),
133+
rgba(6, 182, 212, 0.72)
134+
);
96135
min-width: 16px;
97136
height: 16px;
98137
line-height: 16px;
99138
font-size: 10px;
100139
padding: 0 4px;
101-
box-shadow:
102-
0 0 6px rgba(0, 255, 255, 0.4);
103-
color: rgba(0, 0, 0, 0.8);
140+
border: 1px solid rgba(45, 212, 191, 0.18);
141+
box-shadow:
142+
0 0 4px rgba(45, 212, 191, 0.3);
143+
color: rgba(0, 20, 30, 0.8);
104144
font-weight: 600;
105145
animation: ${glow} 3s ease-in-out infinite;
146+
backdrop-filter: blur(3px);
106147
}
107148
`;

0 commit comments

Comments
 (0)