Skip to content

Commit d54c1aa

Browse files
committed
Updated the UI of the home page
1 parent 249078b commit d54c1aa

2 files changed

Lines changed: 80 additions & 7 deletions

File tree

app.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,16 +113,30 @@ function renderHome() {
113113
<div class="icon">${p.iconSvg ? `<img src="${p.iconSvg}" alt="${esc(p.name)}" style="width:32px;height:32px;object-fit:contain;" />` : p.icon}</div>
114114
<h3>${esc(p.name)}</h3>
115115
<p>${esc(p.tagline)}</p>
116-
<div class="count">${p.videos.length} video${p.videos.length === 1 ? "" : "s"}</div>
116+
<div class="count">${p.videos.length} video${p.videos.length === 1 ? "" : "s"} &rarr;</div>
117117
</div>`
118118
).join("");
119119
app.innerHTML = `
120-
<header class="hero fade">
121-
<h1>Your BrowserStack Demo Hub</h1><h2> Explore, Learn, Launch</h2>
122-
<p>Explore interactive demos of BrowserStack's powerful testing features, all in one place. Whether you're new or looking to deepen your product knowledge, this hub helps you quickly understand, experience, and onboard with BrowserStack.
123-
124-
</p>
125-
</header>
120+
<div class="home-hero-wrap fade">
121+
<div class="hero-orb orb-1"></div>
122+
<div class="hero-orb orb-2"></div>
123+
<div class="hero-orb orb-3"></div>
124+
<div class="hero-glass">
125+
<div class="hero-logo-row">
126+
<img src="browserstack-icon.svg" alt="BrowserStack" class="hero-logo" />
127+
<span class="hero-brand">BrowserStack</span>
128+
</div>
129+
<h1 class="hero-title">Welcome to the <span class="hero-grad">Demo Hub</span></h1>
130+
<p class="hero-sub">Explore, Learn, Launch</p>
131+
<p class="hero-desc">Explore interactive demos of BrowserStack's powerful testing features, all in one place. Whether you're new or looking to deepen your product knowledge, this hub helps you quickly understand, experience, and onboard with BrowserStack.</p>
132+
<div class="hero-chips">
133+
<span class="chip">🚀 Onboarding</span>
134+
<span class="chip">🎬 Video Walkthroughs</span>
135+
<span class="chip">📚 Documentation</span>
136+
</div>
137+
</div>
138+
</div>
139+
<h2 class="section-label fade">Choose a product</h2>
126140
<div class="grid fade">${cards}</div>`;
127141
}
128142

styles.css

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,65 @@ header.hero h1 .grad {
7676
}
7777
header.hero p { color: var(--muted); margin-top: 16px; font-size: 1.15rem; max-width: 620px; margin-inline: auto; }
7878

79+
/* Home hero — liquid glass */
80+
.home-hero-wrap {
81+
position: relative; margin-bottom: 52px; border-radius: 28px; overflow: hidden;
82+
padding: 2px; /* border gradient trick */
83+
background: linear-gradient(135deg, rgba(44,116,246,0.25), rgba(111,123,255,0.15), rgba(44,116,246,0.1));
84+
}
85+
.hero-orb {
86+
position: absolute; border-radius: 50%; filter: blur(60px); pointer-events: none; z-index: 0;
87+
animation: orbdrift 12s ease-in-out infinite alternate;
88+
}
89+
.orb-1 { width: 420px; height: 420px; top: -120px; left: -80px; background: radial-gradient(circle, rgba(44,116,246,0.22), transparent 70%); animation-delay: 0s; }
90+
.orb-2 { width: 320px; height: 320px; top: -60px; right: -60px; background: radial-gradient(circle, rgba(111,123,255,0.18), transparent 70%); animation-delay: -4s; }
91+
.orb-3 { width: 260px; height: 260px; bottom: -80px; left: 40%; background: radial-gradient(circle, rgba(44,116,246,0.14), transparent 70%); animation-delay: -8s; }
92+
@keyframes orbdrift { from { transform: translate(0,0) scale(1); } to { transform: translate(20px, -20px) scale(1.08); } }
93+
.hero-glass {
94+
position: relative; z-index: 1;
95+
background: rgba(255,255,255,0.72);
96+
backdrop-filter: blur(28px) saturate(180%);
97+
-webkit-backdrop-filter: blur(28px) saturate(180%);
98+
border-radius: 26px;
99+
border: 1px solid rgba(255,255,255,0.85);
100+
box-shadow: 0 8px 40px rgba(44,116,246,0.10), inset 0 1px 0 rgba(255,255,255,0.9);
101+
padding: 52px 56px 48px;
102+
text-align: center;
103+
}
104+
.hero-logo-row { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 24px; }
105+
.hero-logo { width: 36px; height: 36px; }
106+
.hero-brand { font-size: 1.05rem; font-weight: 700; color: var(--navy); letter-spacing: -0.01em; }
107+
.hero-title {
108+
font-size: clamp(2.6rem, 6vw, 4rem); font-weight: 800; letter-spacing: -0.04em;
109+
color: var(--navy); line-height: 1.05; margin-bottom: 10px;
110+
}
111+
.hero-grad {
112+
background: linear-gradient(120deg, var(--orange), var(--brand));
113+
-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
114+
}
115+
.hero-sub {
116+
font-size: 1.25rem; font-weight: 600; color: var(--orange); letter-spacing: 0.01em; margin-bottom: 18px;
117+
}
118+
.hero-desc {
119+
color: var(--muted); font-size: 1.05rem; line-height: 1.7; max-width: 640px; margin: 0 auto 28px;
120+
}
121+
.hero-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
122+
.chip {
123+
font-size: 0.82rem; font-weight: 600; padding: 7px 16px; border-radius: 100px;
124+
background: rgba(44,116,246,0.08); border: 1px solid rgba(44,116,246,0.18);
125+
color: var(--ink); letter-spacing: 0.01em;
126+
transition: background 0.25s, transform 0.25s;
127+
}
128+
.chip:hover { background: rgba(44,116,246,0.15); transform: translateY(-1px); }
129+
.section-label {
130+
font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
131+
color: var(--muted); margin-bottom: 20px;
132+
}
133+
@media (max-width: 640px) {
134+
.hero-glass { padding: 36px 24px 32px; }
135+
.hero-title { font-size: 2.2rem; }
136+
}
137+
79138
/* Breadcrumb */
80139
.crumbs { display: flex; gap: 8px; align-items: center; margin-bottom: 28px; font-size: 0.92rem; }
81140
.crumbs a { color: var(--muted); cursor: pointer; text-decoration: none; transition: color 0.2s; }

0 commit comments

Comments
 (0)