Skip to content

Commit e94e016

Browse files
p4gsclaudehappy-otter
committed
Add OCEAN-style animated logo to nthpartyfinder navbar
Gradient pill shape with rotating conic-gradient white border line, matching the OCEAN page logo style. Uses requestAnimationFrame to rotate --gradient-angle CSS custom property at 110 deg/s. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
1 parent 0a0c93c commit e94e016

File tree

1 file changed

+62
-3
lines changed

1 file changed

+62
-3
lines changed

docs/projects/nthpartyfinder/index.html

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,50 @@
9393
display: flex; align-items: center; justify-content: space-between;
9494
}
9595
.nav-logo {
96+
display: flex;
97+
align-items: center;
98+
gap: 12px;
99+
text-decoration: none;
100+
}
101+
.nav-logo-mark {
102+
position: relative;
103+
height: 36px;
104+
padding: 0 14px;
105+
background: linear-gradient(135deg, var(--neon-pink), var(--neon-blue));
106+
border-radius: 8px;
107+
display: flex;
108+
align-items: center;
109+
justify-content: center;
96110
font-family: var(--font-display);
97-
font-size: 0.9rem;
98111
font-weight: 700;
112+
font-size: 0.75rem;
99113
letter-spacing: 3px;
100114
text-transform: uppercase;
101-
color: var(--neon-pink);
115+
color: #000;
116+
box-shadow: 0 0 20px rgba(255, 168, 79, 0.25);
117+
white-space: nowrap;
118+
z-index: 1;
119+
}
120+
.nav-logo-mark::before {
121+
content: '';
122+
position: absolute;
123+
inset: -1px;
124+
border-radius: 9px;
125+
background: conic-gradient(
126+
from var(--gradient-angle, 0deg),
127+
transparent,
128+
#fff 10%,
129+
transparent 30%
130+
);
131+
z-index: -1;
132+
}
133+
.nav-logo-mark::after {
134+
content: '';
135+
position: absolute;
136+
inset: 0;
137+
border-radius: 8px;
138+
background: linear-gradient(135deg, var(--neon-pink), var(--neon-blue));
139+
z-index: -1;
102140
}
103141
.nav-links { display: flex; gap: 28px; }
104142
.nav-links a {
@@ -702,7 +740,9 @@
702740
<!-- NAV -->
703741
<nav class="nav">
704742
<div class="container">
705-
<div class="nav-logo">Nth Party Finder</div>
743+
<a href="#" class="nav-logo">
744+
<div class="nav-logo-mark">Nth Party Finder</div>
745+
</a>
706746
<div class="nav-links">
707747
<a href="#features">Features</a>
708748
<a href="#how-it-works">How It Works</a>
@@ -927,6 +967,25 @@ <h2 class="section-title">Ready to Find Your Nth Party?</h2>
927967
</div>
928968
</footer>
929969

970+
<script>
971+
(function() {
972+
var logos = document.querySelectorAll('.nav-logo-mark');
973+
var angle = 0;
974+
var speed = 110;
975+
var last = performance.now();
976+
function rotate(now) {
977+
var dt = (now - last) / 1000;
978+
last = now;
979+
angle = (angle + speed * dt) % 360;
980+
logos.forEach(function(el) {
981+
el.style.setProperty('--gradient-angle', angle + 'deg');
982+
});
983+
requestAnimationFrame(rotate);
984+
}
985+
requestAnimationFrame(rotate);
986+
}());
987+
</script>
988+
930989
<script type="module">
931990
import * as THREE from 'three';
932991

0 commit comments

Comments
 (0)