Skip to content

Commit 67aa26a

Browse files
committed
Improve connect form
1 parent ebd885f commit 67aa26a

File tree

2 files changed

+125
-21
lines changed

2 files changed

+125
-21
lines changed

src/pages/ConnectForm.css

Lines changed: 122 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,49 +13,98 @@
1313
padding: 1.5rem;
1414

1515
/* Deep dark base */
16-
background: #090914;
16+
background: #06060f;
1717
}
1818

19-
/* Soft radial glow behind the card */
20-
.connect-page::before {
21-
content: '';
19+
/* ---- Animated gradient orbs ---- */
20+
21+
.connect-page-orb {
2222
position: absolute;
23-
width: 800px;
24-
height: 800px;
25-
top: 50%;
26-
left: 50%;
27-
transform: translate(-50%, -50%);
2823
border-radius: 50%;
29-
background: radial-gradient(circle, rgba(0, 165, 184, 0.06) 0%, transparent 70%);
3024
pointer-events: none;
25+
will-change: transform;
26+
}
27+
28+
.connect-page-orb--1 {
29+
width: 550px;
30+
height: 550px;
31+
top: -15%;
32+
left: -8%;
33+
background: #00a5b8;
34+
opacity: 0.22;
35+
filter: blur(100px);
36+
animation: orb-drift-1 14s ease-in-out infinite alternate;
37+
}
38+
39+
.connect-page-orb--2 {
40+
width: 500px;
41+
height: 500px;
42+
bottom: -15%;
43+
right: -6%;
44+
background: #7850dc;
45+
opacity: 0.18;
46+
filter: blur(100px);
47+
animation: orb-drift-2 18s ease-in-out infinite alternate;
48+
}
49+
50+
.connect-page-orb--3 {
51+
width: 350px;
52+
height: 350px;
53+
top: 55%;
54+
left: 58%;
55+
background: #00c896;
56+
opacity: 0.12;
57+
filter: blur(80px);
58+
animation: orb-drift-3 12s ease-in-out infinite alternate;
3159
}
3260

33-
/* Subtle dot grid overlay */
61+
@keyframes orb-drift-1 {
62+
0% { transform: translate(0, 0) scale(1); }
63+
50% { transform: translate(80px, 50px) scale(1.15); }
64+
100% { transform: translate(-40px, 90px) scale(0.95); }
65+
}
66+
67+
@keyframes orb-drift-2 {
68+
0% { transform: translate(0, 0) scale(1); }
69+
50% { transform: translate(-70px, -40px) scale(1.1); }
70+
100% { transform: translate(50px, -80px) scale(0.92); }
71+
}
72+
73+
@keyframes orb-drift-3 {
74+
0% { transform: translate(0, 0) scale(1); }
75+
50% { transform: translate(-40px, -60px) scale(1.2); }
76+
100% { transform: translate(30px, 40px) scale(0.88); }
77+
}
78+
79+
/* Fine grid overlay */
3480
.connect-page::after {
3581
content: '';
3682
position: absolute;
3783
inset: 0;
3884
background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
39-
background-size: 24px 24px;
85+
background-size: 28px 28px;
4086
pointer-events: none;
87+
z-index: 0;
4188
}
4289

4390
/* ---- Card ---- */
4491

4592
.connect-card {
4693
position: relative;
4794
z-index: 1;
48-
background: rgba(22, 22, 40, 0.8);
49-
border: 1px solid rgba(255, 255, 255, 0.06);
50-
border-radius: 1.25rem;
95+
background: rgba(14, 14, 28, 0.65);
96+
border: 1px solid rgba(255, 255, 255, 0.07);
97+
border-radius: 1.5rem;
5198
padding: 3rem 2.5rem 2.5rem;
5299
width: 100%;
53100
max-width: 440px;
54101
text-align: center;
55-
backdrop-filter: blur(16px);
102+
backdrop-filter: blur(40px) saturate(1.3);
103+
-webkit-backdrop-filter: blur(40px) saturate(1.3);
56104
box-shadow:
57-
0 0 0 1px rgba(0, 165, 184, 0.04),
58-
0 16px 48px rgba(0, 0, 0, 0.45),
105+
0 0 0 1px rgba(0, 165, 184, 0.05),
106+
0 0 80px -20px rgba(0, 165, 184, 0.08),
107+
0 24px 64px rgba(0, 0, 0, 0.5),
59108
0 2px 8px rgba(0, 0, 0, 0.3);
60109
}
61110

@@ -432,18 +481,70 @@
432481
color: #00d4ea;
433482
}
434483

435-
/* ---- Features row ---- */
436-
437484
/* ---- Responsive ---- */
438485

439486
@media (max-width: 480px) {
487+
.connect-page {
488+
padding: 0;
489+
align-items: stretch;
490+
}
491+
440492
.connect-card {
441-
padding: 2rem 1.5rem 1.75rem;
493+
max-width: none;
494+
border-radius: 0;
495+
border-left: none;
496+
border-right: none;
497+
padding: 2rem 1.25rem 1.75rem;
498+
box-shadow: none;
499+
background: rgba(14, 14, 28, 0.5);
500+
}
501+
502+
.connect-logo {
503+
margin-bottom: 0.75rem;
504+
}
505+
506+
.connect-logo img {
507+
width: 40px;
508+
height: 40px;
509+
}
510+
511+
.connect-card h1 {
512+
font-size: 1.2rem;
513+
}
514+
515+
.connect-subtitle {
516+
font-size: 0.82rem;
517+
margin-bottom: 1.25rem;
518+
}
519+
520+
.connect-form {
521+
gap: 0.75rem;
522+
}
523+
524+
.connect-field input,
525+
.connect-host-input-group input,
526+
.connect-protocol-prefix {
527+
padding-top: 0.6rem;
528+
padding-bottom: 0.6rem;
529+
}
530+
531+
.connect-button {
532+
margin-top: 0.4rem;
533+
padding: 0.65rem;
442534
}
443535

444536
.connect-discovery-row {
445537
flex-direction: column;
446538
align-items: flex-start;
447539
gap: 0.35rem;
448540
}
541+
542+
.connect-divider {
543+
margin-top: 1rem;
544+
}
545+
546+
.connect-hint {
547+
margin-top: 0.75rem;
548+
font-size: 0.75rem;
549+
}
449550
}

src/pages/ConnectForm.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ export function ConnectForm({ onConnect, onDiscover, error, isConnecting, discov
6060

6161
return (
6262
<div className="connect-page">
63+
<div className="connect-page-orb connect-page-orb--1" aria-hidden="true" />
64+
<div className="connect-page-orb connect-page-orb--2" aria-hidden="true" />
65+
<div className="connect-page-orb connect-page-orb--3" aria-hidden="true" />
6366
<div className="connect-card">
6467
<div className="connect-logo">
6568
<img src="/logo.svg" alt="ECA" />

0 commit comments

Comments
 (0)