Skip to content

Commit 45a3330

Browse files
authored
Merge pull request #225 from Context-Engine-AI/feature/login-signup-nav
feat: add prominent Login/Sign Up button to navigation bar
2 parents 3103c70 + 78f6d58 commit 45a3330

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,3 +590,6 @@ OPENLIT_ENVIRONMENT=development
590590
# End of Auth & Bridge Configuration
591591
# ---------------------------------------------------------------------------
592592

593+
594+
# Landing page login URL (used by SvelteKit frontend)
595+
# VITE_CTX_LOGIN_URL=https://dev.context-engine.ai/login

.github/workflows/deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
env:
4343
NODE_ENV: production
4444
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
VITE_CTX_LOGIN_URL: ${{ secrets.VITE_CTX_LOGIN_URL }}
4546
run: npm run build
4647

4748
- name: Upload artifact

src/app.scss

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,54 @@ body::before {
234234
font-size: 15px;
235235
}
236236

237+
/* Login / Sign Up - attention-grabbing */
238+
.btn-login {
239+
background: transparent;
240+
color: #00ffcc;
241+
border: 2px solid #00ffcc;
242+
padding: 8px 20px;
243+
font-weight: 600;
244+
font-size: 14px;
245+
letter-spacing: 0.02em;
246+
box-shadow: 0 0 12px rgba(0, 255, 204, 0.3), inset 0 0 12px rgba(0, 255, 204, 0.06);
247+
animation: loginGlow 2s ease-in-out infinite alternate;
248+
position: relative;
249+
}
250+
251+
.btn-login:hover {
252+
background: rgba(0, 255, 204, 0.12);
253+
box-shadow: 0 0 24px rgba(0, 255, 204, 0.5), inset 0 0 16px rgba(0, 255, 204, 0.1);
254+
transform: translateY(-1px);
255+
color: #fff;
256+
border-color: #00ffcc;
257+
}
258+
259+
@keyframes loginGlow {
260+
0% { box-shadow: 0 0 10px rgba(0, 255, 204, 0.25), inset 0 0 10px rgba(0, 255, 204, 0.04); }
261+
100% { box-shadow: 0 0 20px rgba(0, 255, 204, 0.45), inset 0 0 14px rgba(0, 255, 204, 0.08); }
262+
}
263+
264+
[data-theme="light"] .btn-login {
265+
color: #00896b;
266+
border-color: #00896b;
267+
box-shadow: 0 0 12px rgba(0, 137, 107, 0.25), inset 0 0 10px rgba(0, 137, 107, 0.05);
268+
}
269+
270+
[data-theme="light"] .btn-login:hover {
271+
background: rgba(0, 137, 107, 0.1);
272+
box-shadow: 0 0 22px rgba(0, 137, 107, 0.4), inset 0 0 14px rgba(0, 137, 107, 0.08);
273+
color: #005d49;
274+
}
275+
276+
@media (prefers-reduced-motion: reduce) {
277+
.btn-login {
278+
animation: none;
279+
}
280+
.btn-login:hover {
281+
transform: none;
282+
}
283+
}
284+
237285
.icon-btn {
238286
display: flex;
239287
align-items: center;
@@ -939,6 +987,29 @@ body::before {
939987
color: var(--text-primary);
940988
}
941989

990+
.mobile-login-link {
991+
color: #00ffcc !important;
992+
font-weight: 600;
993+
border: 1px solid rgba(0, 255, 204, 0.3);
994+
background: rgba(0, 255, 204, 0.06);
995+
}
996+
997+
.mobile-login-link:hover {
998+
background: rgba(0, 255, 204, 0.12) !important;
999+
color: #fff !important;
1000+
}
1001+
1002+
[data-theme="light"] .mobile-login-link {
1003+
color: #00896b !important;
1004+
border-color: rgba(0, 137, 107, 0.35);
1005+
background: rgba(0, 137, 107, 0.06);
1006+
}
1007+
1008+
[data-theme="light"] .mobile-login-link:hover {
1009+
background: rgba(0, 137, 107, 0.12) !important;
1010+
color: #005d49 !important;
1011+
}
1012+
9421013
.mobile-menu-cta {
9431014
margin-top: auto;
9441015
padding-top: 24px;

src/routes/+layout.svelte

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import { onMount } from 'svelte';
44
import { page } from '$app/stores';
55
import { base } from '$app/paths';
6-
import { Sun, Moon, Mail, Github, Layers, Menu, X, Key } from 'lucide-svelte';
6+
import { Sun, Moon, Mail, Github, Layers, Menu, X, Key, LogIn } from 'lucide-svelte';
7+
8+
const loginUrl = import.meta.env.VITE_CTX_LOGIN_URL || `${base}/login`;
79
810
let { children } = $props();
911
@@ -117,6 +119,10 @@
117119
{/if}
118120
</button>
119121
<a href="#demo" class="btn btn-primary desktop-only">Request Demo</a>
122+
<a href={loginUrl} class="btn btn-login desktop-only">
123+
<LogIn size={16} />
124+
Login / Sign Up
125+
</a>
120126
<button
121127
class="icon-btn mobile-menu-btn"
122128
onclick={toggleMobileMenu}
@@ -179,6 +185,10 @@
179185
<Mail size={20} />
180186
Support
181187
</a>
188+
<a href={loginUrl} class="mobile-nav-link mobile-login-link" onclick={closeMobileMenu}>
189+
<LogIn size={20} />
190+
Login / Sign Up
191+
</a>
182192
<div class="mobile-menu-cta">
183193
<a href="#demo" class="btn btn-primary btn-lg" onclick={closeMobileMenu}>Request Demo</a>
184194
</div>

0 commit comments

Comments
 (0)