@@ -3,16 +3,13 @@ import { Badge } from 'antd';
33
44const 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
3128export 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
82112export 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