Skip to content

Commit a5cf098

Browse files
p4gsclaudehappy-otter
committed
Revert to CSS stroke-based glow approach (pre-SVG)
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 531b8b0 commit a5cf098

1 file changed

Lines changed: 48 additions & 50 deletions

File tree

docs/projects/nthpartyfinder/index.html

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -161,28 +161,27 @@
161161
}
162162

163163
.hero-title {
164+
font-family: var(--font-display);
165+
font-size: clamp(4.05rem, 10.5vw, 7.75rem);
166+
font-weight: 400;
167+
letter-spacing: 6px;
168+
text-transform: uppercase;
169+
line-height: 1.15;
170+
color: #fff;
164171
margin-bottom: 12px;
165172
position: relative;
166173
z-index: 1;
167-
line-height: 0;
168-
}
169-
.hero-title-svg {
170-
width: 100%;
171-
max-width: 820px;
172-
height: auto;
173-
display: block;
174-
margin: 0 auto;
175-
overflow: visible;
176174
filter: drop-shadow(1px 1px 0px #000);
177175
}
178-
.hero-title-svg text {
179-
font-family: var(--font-display);
180-
font-weight: 400;
181-
letter-spacing: 6px;
182-
text-transform: uppercase;
176+
@keyframes lava-flow {
177+
0% { background-position: 0% 50%; }
178+
50% { background-position: 100% 50%; }
179+
100% { background-position: 0% 50%; }
183180
}
184-
.svg-fill {
185-
animation: neon-flicker 4s infinite;
181+
@keyframes lava-flow-reverse {
182+
0% { background-position: 100% 50%; }
183+
50% { background-position: 0% 50%; }
184+
100% { background-position: 100% 50%; }
186185
}
187186
@keyframes neon-flicker {
188187
0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
@@ -192,6 +191,35 @@
192191
opacity: 0.82;
193192
}
194193
}
194+
.lava-text { display: inline; }
195+
.lava-letter {
196+
display: inline-block;
197+
position: relative;
198+
background: linear-gradient(90deg, #FF8C00, #FF9A1F, #00A8E8, #00C2FF, #FF8C00);
199+
background-size: 300% 100%;
200+
-webkit-background-clip: text;
201+
background-clip: text;
202+
-webkit-text-fill-color: transparent;
203+
animation: lava-flow 8s ease-in-out infinite, neon-flicker 4s infinite;
204+
animation-delay: calc(var(--i) * -0.6s), 0s;
205+
}
206+
.lava-letter::before {
207+
content: attr(data-letter);
208+
position: absolute;
209+
top: 0;
210+
left: 0;
211+
z-index: -1;
212+
background: linear-gradient(90deg, #FF8C00, #FF9A1F, #00A8E8, #00C2FF, #FF8C00);
213+
background-size: 300% 100%;
214+
-webkit-background-clip: text;
215+
background-clip: text;
216+
-webkit-text-fill-color: transparent;
217+
-webkit-text-stroke: 4px transparent;
218+
paint-order: stroke fill;
219+
animation: lava-flow-reverse 8s ease-in-out infinite;
220+
animation-delay: calc(var(--i) * -0.6s);
221+
filter: blur(1.5px);
222+
}
195223

196224
.hero-tagline {
197225
font-family: var(--font-mono);
@@ -577,7 +605,7 @@
577605

578606
@media (max-width: 768px) {
579607
.hero { padding: 80px 0 60px; }
580-
.hero-title-svg { max-width: 600px; }
608+
.hero-title { font-size: clamp(3.2rem, 12vw, 5.5rem); letter-spacing: 4px; }
581609
.nav-links { gap: 16px; }
582610
.features-grid { grid-template-columns: 1fr; }
583611
.install-grid { grid-template-columns: 1fr; }
@@ -597,7 +625,7 @@
597625
@media (max-width: 520px) {
598626
.nav-links { display: none; }
599627
.hero-ctas { flex-direction: column; align-items: center; }
600-
.hero-title-svg { max-width: 500px; }
628+
.hero-title { font-size: clamp(2.8rem, 11vw, 4.5rem); letter-spacing: 3px; }
601629
.container { padding: 0 16px; }
602630
}
603631
</style>
@@ -624,38 +652,8 @@
624652
<div class="container">
625653
<div class="hero-eyebrow"><span class="dot"></span> GRC Engineering Open Source</div>
626654
<h1 class="hero-title">
627-
<svg class="hero-title-svg" viewBox="0 0 900 240" xmlns="http://www.w3.org/2000/svg">
628-
<defs>
629-
<!-- Main lava gradient (flows left to right) -->
630-
<linearGradient id="lava-grad" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="2700" y2="0">
631-
<stop offset="0%" stop-color="#FF8C00"/>
632-
<stop offset="25%" stop-color="#FF9A1F"/>
633-
<stop offset="50%" stop-color="#00A8E8"/>
634-
<stop offset="75%" stop-color="#00C2FF"/>
635-
<stop offset="100%" stop-color="#FF8C00"/>
636-
<animateTransform attributeName="gradientTransform" type="translate" values="0 0; -1800 0; 0 0" dur="8s" repeatCount="indefinite"/>
637-
</linearGradient>
638-
<!-- Reverse lava gradient for glow (flows right to left) -->
639-
<linearGradient id="lava-grad-rev" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="2700" y2="0">
640-
<stop offset="0%" stop-color="#FF8C00"/>
641-
<stop offset="25%" stop-color="#FF9A1F"/>
642-
<stop offset="50%" stop-color="#00A8E8"/>
643-
<stop offset="75%" stop-color="#00C2FF"/>
644-
<stop offset="100%" stop-color="#FF8C00"/>
645-
<animateTransform attributeName="gradientTransform" type="translate" values="-1800 0; 0 0; -1800 0" dur="8s" repeatCount="indefinite"/>
646-
</linearGradient>
647-
<!-- Glow blur filter -->
648-
<filter id="glow-blur" x="-10%" y="-10%" width="120%" height="120%">
649-
<feGaussianBlur in="SourceGraphic" stdDeviation="1.5" result="blur"/>
650-
</filter>
651-
</defs>
652-
<!-- Glow layer: stroke only, reverse gradient, blurred -->
653-
<text class="svg-glow" x="450" y="105" text-anchor="middle" font-size="110" fill="none" stroke="url(#lava-grad-rev)" stroke-width="4" filter="url(#glow-blur)">NTH PARTY</text>
654-
<text class="svg-glow" x="450" y="220" text-anchor="middle" font-size="110" fill="none" stroke="url(#lava-grad-rev)" stroke-width="4" filter="url(#glow-blur)">FINDER</text>
655-
<!-- Crisp fill layer on top -->
656-
<text class="svg-fill" x="450" y="105" text-anchor="middle" font-size="110" fill="url(#lava-grad)">NTH PARTY</text>
657-
<text class="svg-fill" x="450" y="220" text-anchor="middle" font-size="110" fill="url(#lava-grad)">FINDER</text>
658-
</svg>
655+
<span class="lava-text"><span class="lava-letter" style="--i:0" data-letter="N">N</span><span class="lava-letter" style="--i:1" data-letter="t">t</span><span class="lava-letter" style="--i:2" data-letter="h">h</span><span class="lava-letter" style="--i:3" data-letter=" ">&nbsp;</span><span class="lava-letter" style="--i:4" data-letter="P">P</span><span class="lava-letter" style="--i:5" data-letter="a">a</span><span class="lava-letter" style="--i:6" data-letter="r">r</span><span class="lava-letter" style="--i:7" data-letter="t">t</span><span class="lava-letter" style="--i:8" data-letter="y">y</span></span><br>
656+
<span class="lava-text"><span class="lava-letter" style="--i:9" data-letter="F">F</span><span class="lava-letter" style="--i:10" data-letter="i">i</span><span class="lava-letter" style="--i:11" data-letter="n">n</span><span class="lava-letter" style="--i:12" data-letter="d">d</span><span class="lava-letter" style="--i:13" data-letter="e">e</span><span class="lava-letter" style="--i:14" data-letter="r">r</span></span>
659657
</h1>
660658
<p class="hero-tagline">Every party has an Nth degree</p>
661659
<p class="hero-desc">

0 commit comments

Comments
 (0)