@@ -19,6 +19,7 @@ const CustomFooter: React.FC = () => {
19
19
const year = new Date ( ) . getFullYear ( ) ;
20
20
const screens = useBreakpoint ( ) ;
21
21
const [ expanded , setExpanded ] = useState ( false ) ;
22
+ const [ hoveredLink , setHoveredLink ] = useState < string | null > ( null ) ;
22
23
23
24
return (
24
25
< Footer
@@ -44,7 +45,15 @@ const CustomFooter: React.FC = () => {
44
45
The open-source smart legal contract stack
45
46
</ Text >
46
47
< Link href = "mailto:admin@accordproject.org" >
47
- < Text strong style = { { color : "rgba(255, 255, 255, 0.65)" } } >
48
+ < Text
49
+ strong
50
+ style = { {
51
+ color : hoveredLink === "email" ? "#19c6c7" : "rgba(255, 255, 255, 0.65)" ,
52
+ ...( hoveredLink === "email" ? { transition : "color 0.3s ease" } : { } ) ,
53
+ } }
54
+ onMouseEnter = { ( ) => setHoveredLink ( "email" ) }
55
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
56
+ >
48
57
admin@accordproject.org
49
58
</ Text >
50
59
</ Link >
@@ -53,12 +62,15 @@ const CustomFooter: React.FC = () => {
53
62
size = "large"
54
63
style = { {
55
64
padding : "5px 30px" ,
56
- backgroundColor : "#19c6c7" ,
65
+ backgroundColor : hoveredLink === "join" ? "#17b0b1" : "#19c6c7" ,
57
66
borderRadius : "5px" ,
58
- color : "#050c40" ,
67
+ color : hoveredLink === "join" ? "#ffffff" : "#050c40" ,
59
68
textAlign : "center" ,
60
69
border : "none" ,
70
+ ...( hoveredLink === "join" ? { transition : "background-color 0.3s ease, color 0.3s ease" } : { } ) ,
61
71
} }
72
+ onMouseEnter = { ( ) => setHoveredLink ( "join" ) }
73
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
62
74
>
63
75
Join
64
76
</ Button >
@@ -71,7 +83,14 @@ const CustomFooter: React.FC = () => {
71
83
< Button
72
84
type = "text"
73
85
onClick = { ( ) => setExpanded ( ! expanded ) }
74
- style = { { color : "white" , fontSize : "16px" , marginBottom : "10px" } }
86
+ style = { {
87
+ color : hoveredLink === "expand" ? "#19c6c7" : "white" ,
88
+ fontSize : "16px" ,
89
+ marginBottom : "10px" ,
90
+ ...( hoveredLink === "expand" ? { transition : "color 0.3s ease" } : { } ) ,
91
+ } }
92
+ onMouseEnter = { ( ) => setHoveredLink ( "expand" ) }
93
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
75
94
>
76
95
{ expanded ? < UpOutlined /> : < DownOutlined /> } Other Links
77
96
</ Button >
@@ -96,7 +115,13 @@ const CustomFooter: React.FC = () => {
96
115
< Link
97
116
href = { link . href }
98
117
key = { link . title }
99
- style = { { color : "white" , fontSize : "15px" } }
118
+ style = { {
119
+ color : hoveredLink === link . title ? "#19c6c7" : "white" ,
120
+ fontSize : "15px" ,
121
+ ...( hoveredLink === link . title ? { transition : "color 0.3s ease" } : { } ) ,
122
+ } }
123
+ onMouseEnter = { ( ) => setHoveredLink ( link . title ) }
124
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
100
125
>
101
126
{ link . title }
102
127
</ Link >
@@ -112,21 +137,31 @@ const CustomFooter: React.FC = () => {
112
137
< Row justify = "space-between" align = "middle" style = { { marginTop : "40px" } } >
113
138
< Col >
114
139
< Text style = { { color : "rgba(255, 255, 255, 0.85)" } } >
115
- copyright © { year } accord project • { " " }
140
+ copyright © { year } accord project • { " " }
116
141
< Link
117
142
strong
118
143
href = "https://accordproject.org/privacy"
119
144
target = "_blank"
120
- style = { { color : "rgba(255, 255, 255, 0.85)" } }
145
+ style = { {
146
+ color : hoveredLink === "trademark" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
147
+ ...( hoveredLink === "trademark" ? { transition : "color 0.3s ease" } : { } ) ,
148
+ } }
149
+ onMouseEnter = { ( ) => setHoveredLink ( "trademark" ) }
150
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
121
151
>
122
152
trademark policy
123
153
</ Link > { " " }
124
- • { " " }
154
+ • { " " }
125
155
< Link
126
156
strong
127
157
href = "https://accordproject.org/brand-assets"
128
158
target = "_blank"
129
- style = { { color : "rgba(255, 255, 255, 0.85)" } }
159
+ style = { {
160
+ color : hoveredLink === "brand-assets" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
161
+ ...( hoveredLink === "brand-assets" ? { transition : "color 0.3s ease" } : { } ) ,
162
+ } }
163
+ onMouseEnter = { ( ) => setHoveredLink ( "brand-assets" ) }
164
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
130
165
>
131
166
brand assets
132
167
</ Link >
@@ -135,16 +170,52 @@ const CustomFooter: React.FC = () => {
135
170
136
171
< Col >
137
172
< Space >
138
- < Link href = "https://github.com/accordproject" target = "_blank" style = { { color : "rgba(255, 255, 255, 0.85)" } } >
173
+ < Link
174
+ href = "https://github.com/accordproject"
175
+ target = "_blank"
176
+ style = { {
177
+ color : hoveredLink === "github" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
178
+ ...( hoveredLink === "github" ? { transition : "color 0.3s ease" } : { } ) ,
179
+ } }
180
+ onMouseEnter = { ( ) => setHoveredLink ( "github" ) }
181
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
182
+ >
139
183
< GithubOutlined style = { { fontSize : "17px" } } />
140
184
</ Link >
141
- < Link href = "https://twitter.com/AccordHQ" target = "_blank" style = { { color : "rgba(255, 255, 255, 0.85)" } } >
185
+ < Link
186
+ href = "https://twitter.com/AccordHQ"
187
+ target = "_blank"
188
+ style = { {
189
+ color : hoveredLink === "twitter" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
190
+ ...( hoveredLink === "twitter" ? { transition : "color 0.3s ease" } : { } ) ,
191
+ } }
192
+ onMouseEnter = { ( ) => setHoveredLink ( "twitter" ) }
193
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
194
+ >
142
195
< XOutlined style = { { fontSize : "17px" } } />
143
196
</ Link >
144
- < Link href = "https://discord.com/invite/Zm99SKhhtA" target = "_blank" style = { { color : "rgba(255, 255, 255, 0.85)" } } >
197
+ < Link
198
+ href = "https://discord.com/invite/Zm99SKhhtA"
199
+ target = "_blank"
200
+ style = { {
201
+ color : hoveredLink === "discord" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
202
+ ...( hoveredLink === "discord" ? { transition : "color 0.3s ease" } : { } ) ,
203
+ } }
204
+ onMouseEnter = { ( ) => setHoveredLink ( "discord" ) }
205
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
206
+ >
145
207
< DiscordFilled style = { { fontSize : "17px" } } />
146
208
</ Link >
147
- < Link href = "https://www.linkedin.com/company/accordproject/" target = "_blank" style = { { color : "rgba(255, 255, 255, 0.85)" } } >
209
+ < Link
210
+ href = "https://www.linkedin.com/company/accordproject/"
211
+ target = "_blank"
212
+ style = { {
213
+ color : hoveredLink === "linkedin" ? "#19c6c7" : "rgba(255, 255, 255, 0.85)" ,
214
+ ...( hoveredLink === "linkedin" ? { transition : "color 0.3s ease" } : { } ) ,
215
+ } }
216
+ onMouseEnter = { ( ) => setHoveredLink ( "linkedin" ) }
217
+ onMouseLeave = { ( ) => setHoveredLink ( null ) }
218
+ >
148
219
< LinkedinFilled style = { { fontSize : "17px" } } />
149
220
</ Link >
150
221
</ Space >
@@ -154,4 +225,4 @@ const CustomFooter: React.FC = () => {
154
225
) ;
155
226
} ;
156
227
157
- export default CustomFooter ;
228
+ export default CustomFooter ;
0 commit comments