Skip to content

Commit d5af0b1

Browse files
committed
feat(hero): enhance visual elements with new styles and cursor effects
1 parent eb54681 commit d5af0b1

File tree

4 files changed

+134
-16
lines changed

4 files changed

+134
-16
lines changed

src/components/Footer.astro

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const text = lang === "pl"
1111
line2: "GitHub + LinkedIn + email after engagement (platform rules friendly).",
1212
};
1313
---
14+
1415
<div style="display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;">
1516
<div>
1617
<div>{text.line1}</div>
@@ -22,3 +23,17 @@ const text = lang === "pl"
2223
<a href="#" aria-disabled="true" style="opacity:.65; border-bottom: none;">LinkedIn</a>
2324
</div>
2425
</div>
26+
27+
<div
28+
aria-hidden="true"
29+
style="
30+
margin-top:18px;
31+
font-family: var(--mono);
32+
font-size:12px;
33+
color: rgba(255,255,255,.35);
34+
letter-spacing:.2px;
35+
user-select:none;
36+
"
37+
>
38+
— end of output —
39+
</div>

src/pages/en/index.astro

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import HeroVisual from "../../components/HeroVisual.astro";
77
<BaseLayout lang="en" title="Home">
88
<section class="hero">
99
<div>
10-
<div style="font-family: var(--mono); color: rgba(255,255,255,.55); font-size: 13px;">
10+
<div class="hero-kicker" aria-label="architecture build production">
1111
architecture · build · production
1212
</div>
1313

14-
<h1>We design & ship systems.</h1>
14+
<h1>We design &amp; ship systems.<span class="cursor" aria-hidden="true">│</span></h1>
1515

1616
<p class="lead">
1717
RocketDeploy is a senior engineering team focused on
@@ -53,12 +53,12 @@ import HeroVisual from "../../components/HeroVisual.astro";
5353

5454
<style>
5555
.hero-right {
56-
display: grid;
57-
gap: 14px;
56+
display: grid;
57+
gap: 14px;
5858
}
5959
@media (max-width: 900px) {
6060
.hero-visual-slot {
61-
display: none;
61+
display: none;
6262
}
6363
}
6464
</style>
@@ -131,10 +131,10 @@ import HeroVisual from "../../components/HeroVisual.astro";
131131
</section>
132132

133133
<section class="section">
134-
<h2>how we work</h2>
134+
<h2 class="typing">how we work<span class="cursor" aria-hidden="true">█</span></h2>
135135

136136
<div class="card">
137-
<ul style="margin: 0; padding-left: 18px; color: rgba(255,255,255,.72);">
137+
<ul class="cli-list" style="margin: 0; color: rgba(255,255,255,.72);">
138138
<li>microservices over monoliths</li>
139139
<li>clear boundaries and contracts</li>
140140
<li>API-first and event-driven where it makes sense</li>
@@ -151,7 +151,7 @@ import HeroVisual from "../../components/HeroVisual.astro";
151151
<p style="margin-top:0; color: rgba(255,255,255,.72);">
152152
We have designed and delivered systems across areas such as:
153153
</p>
154-
<ul style="margin: 0; padding-left: 18px; color: rgba(255,255,255,.72);">
154+
<ul class="check-list" style="margin: 0; color: rgba(255,255,255,.72);">
155155
<li>e-commerce platforms integrated with logistics and automation</li>
156156
<li>distributed systems connecting cloud services and physical devices</li>
157157
<li>operational platforms used daily by non-technical teams</li>

src/pages/pl/index.astro

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import HeroVisual from "../../components/HeroVisual.astro";
77
<BaseLayout lang="pl" title="Start">
88
<section class="hero">
99
<div>
10-
<div style="font-family: var(--mono); color: rgba(255,255,255,.55); font-size: 13px;">
10+
<div class="hero-kicker" aria-label="architecture build production">
1111
architecture · build · production
1212
</div>
1313

14-
<h1>Projektujemy i dowozimy systemy.</h1>
14+
<h1>
15+
Projektujemy i dowozimy systemy.<span class="cursor" aria-hidden="true">│</span>
16+
</h1>
1517

1618
<p class="lead">
1719
RocketDeploy to zespół senior inżynierów skoncentrowany na
@@ -54,12 +56,12 @@ import HeroVisual from "../../components/HeroVisual.astro";
5456

5557
<style>
5658
.hero-right {
57-
display: grid;
58-
gap: 14px;
59+
display: grid;
60+
gap: 14px;
5961
}
6062
@media (max-width: 900px) {
6163
.hero-visual-slot {
62-
display: none;
64+
display: none;
6365
}
6466
}
6567
</style>
@@ -132,10 +134,12 @@ import HeroVisual from "../../components/HeroVisual.astro";
132134
</section>
133135

134136
<section class="section">
135-
<h2>jak pracujemy</h2>
137+
<h2 class="typing">
138+
jak pracujemy<span class="cursor" aria-hidden="true">█</span>
139+
</h2>
136140

137141
<div class="card">
138-
<ul style="margin: 0; padding-left: 18px; color: rgba(255,255,255,.72);">
142+
<ul class="cli-list" style="margin: 0; color: rgba(255,255,255,.72);">
139143
<li>microservices zamiast monolitów</li>
140144
<li>wyraźne granice odpowiedzialności i kontrakty</li>
141145
<li>API-first i event-driven tam, gdzie to daje przewagę</li>
@@ -152,7 +156,7 @@ import HeroVisual from "../../components/HeroVisual.astro";
152156
<p style="margin-top:0; color: rgba(255,255,255,.72);">
153157
Projektowaliśmy i wdrażaliśmy systemy m.in. w obszarach:
154158
</p>
155-
<ul style="margin: 0; padding-left: 18px; color: rgba(255,255,255,.72);">
159+
<ul class="check-list" style="margin: 0; color: rgba(255,255,255,.72);">
156160
<li>platformy e-commerce zintegrowane z logistyką i automatyzacją</li>
157161
<li>systemy rozproszone łączące cloud z fizycznymi urządzeniami</li>
158162
<li>platformy operacyjne używane codziennie przez zespoły nietechniczne</li>

src/styles/global.css

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,3 +268,102 @@ h1{
268268
.btn, .card{ transition: none; }
269269
.btn:hover, .card:hover{ transform: none; }
270270
}
271+
272+
/* Hero kicker (index) — monospace + subtelny vibe */
273+
.hero-kicker{
274+
font-family: var(--mono);
275+
color: rgba(255,255,255,.55);
276+
font-size: 13px;
277+
letter-spacing: .2px;
278+
display: inline-flex;
279+
align-items: baseline;
280+
gap: 6px;
281+
user-select: none;
282+
}
283+
284+
/* Cursor █ (hero + typing header) */
285+
.cursor{
286+
font-family: var(--mono);
287+
color: rgba(255,255,255,.62);
288+
animation: blink 1.35s steps(1, end) infinite;
289+
transform: translateY(-0.05em);
290+
}
291+
@keyframes blink{
292+
50%{ opacity: 0; }
293+
}
294+
@media (prefers-reduced-motion: reduce){
295+
.cursor{ animation: none; }
296+
}
297+
298+
/* H2: CLI prefix + execution line (GLOBAL) */
299+
.section h2{
300+
position: relative;
301+
display: inline-block;
302+
padding-left: 18px;
303+
}
304+
305+
/* Prefix: na razie ">" */
306+
.section h2::before{
307+
content: ">";
308+
position: absolute;
309+
left: 0;
310+
top: .15em;
311+
font-family: var(--mono);
312+
font-size: .9em;
313+
color: var(--faint);
314+
transform: translateY(1px);
315+
}
316+
317+
/* Execution line */
318+
.section h2::after{
319+
content: "";
320+
display: block;
321+
height: 1px;
322+
width: min(360px, 100%);
323+
margin-top: 10px;
324+
background: linear-gradient(
325+
90deg,
326+
rgba(255,255,255,.16) 0%,
327+
rgba(255,255,255,.08) 55%,
328+
rgba(255,255,255,0) 100%
329+
);
330+
opacity: .9;
331+
}
332+
333+
/* Typing cue — tylko tam gdzie dodana klasa */
334+
.section h2.typing{
335+
padding-right: 10px;
336+
}
337+
338+
/* Terminalowe listy (opt-in przez klasy) */
339+
.cli-list,
340+
.check-list{
341+
list-style: none;
342+
padding-left: 0;
343+
margin-left: 0;
344+
}
345+
346+
.cli-list li,
347+
.check-list li{
348+
position: relative;
349+
padding-left: 22px;
350+
line-height: 1.5;
351+
}
352+
353+
.cli-list li::before{
354+
content: "→";
355+
position: absolute;
356+
left: 0;
357+
top: .05em;
358+
font-family: var(--mono);
359+
color: var(--faint);
360+
}
361+
362+
.check-list li::before{
363+
content: "✓";
364+
position: absolute;
365+
left: 0;
366+
top: .05em;
367+
font-family: var(--mono);
368+
color: var(--faint);
369+
}

0 commit comments

Comments
 (0)