Skip to content

Commit 5da27b0

Browse files
authored
Merge pull request #35 from ValienteTechnologies/staging
Staging
2 parents 5064027 + 3ddd2eb commit 5da27b0

25 files changed

Lines changed: 850 additions & 927 deletions

_includes/layout/nav-header.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484

8585
<!-- Header -->
8686
<header class="masthead">
87+
<div class="masthead-bg" aria-hidden="true"></div>
8788
<canvas id="meshNetwork" class="mesh-network-canvas"></canvas>
8889
<div class="container">
8990
<div class="intro-text">

_layouts/error.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@
3535
</div>
3636
</div>
3737

38-
<script src="/assets/js/space-bg.js"></script>
38+
<script src="/assets/js/space-bg.js" defer></script>

_pages/404.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ sitemap: false
88

99
{% assign t = site.data["404"][site.active_lang] | default: site.data["404"].tr %}
1010

11-
<div class="error-content">
12-
<h1 class="error-title">{{ t.heading }}</h1>
11+
<div class="error-content page-section">
12+
<h1 class="section-heading text-uppercase">{{ t.heading }}</h1>
1313
<a href="/" class="btn btn-primary btn-xl">{{ t.button }}</a>
1414
<div class="error-image">
1515
<img src="/assets/img/404.svg" alt="404 - Page Not Found" />

_sass/base/_mixins.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
}
2525

2626
// Layout & section mixins
27-
// Ensures a consistent, full‑viewport section layout with snap scrolling.
2827
@mixin full-viewport-section {
2928
min-height: 100vh;
3029
display: flex;

_sass/base/_page.scss

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,6 @@ body {
7979
width: 100%;
8080
}
8181

82-
#pagecontainer {
83-
scroll-snap-align: start;
84-
scroll-snap-stop: normal;
85-
}
8682

8783
footer {
8884
flex-shrink: 0;

_sass/components/_navbar.scss

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,12 @@
8282
#mainNav {
8383
padding-top: 25px;
8484
padding-bottom: 25px;
85-
-webkit-transition: padding-top 0.3s, padding-bottom 0.3s;
86-
-moz-transition: padding-top 0.3s, padding-bottom 0.3s;
8785
transition: padding-top 0.3s, padding-bottom 0.3s;
8886
border: none;
8987
border-bottom: 1px solid $surface-subtle;
9088

9189
.navbar-brand {
9290
font-size: 1.75em;
93-
-webkit-transition: all 0.3s;
94-
-moz-transition: all 0.3s;
9591
transition: all 0.3s;
9692
}
9793

_sass/layout/_error.scss

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
flex-direction: column;
99
justify-content: center;
1010
box-sizing: border-box;
11+
scroll-snap-align: start;
12+
scroll-snap-stop: normal;
1113

1214
// Bootstrap row: fill remaining height, center content
1315
> .row {
@@ -24,15 +26,12 @@
2426
justify-content: center;
2527
width: 100%;
2628

27-
.error-title {
28-
color: $white;
29-
font-family: 'Montserrat', sans-serif;
30-
font-size: 1.1rem;
31-
font-weight: 700;
32-
letter-spacing: 0.15em;
33-
text-transform: uppercase;
34-
margin: 3rem 0 0.75rem;
35-
opacity: 0.9;
29+
&.page-section {
30+
padding-block: 0;
31+
}
32+
33+
.section-heading {
34+
margin: 3rem 0 1.25rem;
3635
}
3736

3837
.btn {

_sass/layout/_footer.scss

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ ul.social-buttons {
3535
display: block;
3636
width: 38px;
3737
height: 38px;
38-
-webkit-transition: all 0.3s;
39-
-moz-transition: all 0.3s;
4038
transition: all 0.3s;
4139
color: white;
4240
border-radius: 100%;

_sass/layout/_masthead.scss

Lines changed: 50 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -6,39 +6,55 @@ header.masthead {
66
overflow: hidden;
77
@include full-viewport-section;
88
align-items: center;
9-
9+
// Solid fallback colour while .masthead-bg renders
10+
background: $valiente-midnight;
11+
12+
// GPU-composited gradient layer — animates via transform, not background-position
13+
.masthead-bg {
14+
position: absolute;
15+
top: -50%;
16+
left: -50%;
17+
width: 200%;
18+
height: 200%;
19+
background: linear-gradient(
20+
135deg,
21+
$valiente-midnight 0%,
22+
$valiente-ink 16%,
23+
darken($valiente-violet, 5%) 32%,
24+
darken($valiente-fuchsia, 5%) 48%,
25+
darken($valiente-magenta, 7%) 64%,
26+
darken($valiente-rose, 12%) 82%,
27+
darken($valiente-ink, 6%) 100%
28+
);
29+
animation: gradientDrift 20s ease-in-out infinite;
30+
will-change: transform;
31+
pointer-events: none;
32+
z-index: 0;
33+
}
34+
1035
// Mesh network canvas
1136
.mesh-network-canvas {
37+
display: none; // Hidden by default on mobile
1238
position: absolute;
1339
top: 0;
1440
left: 0;
1541
width: 100%;
1642
height: 100%;
17-
z-index: 1;
43+
z-index: 3;
1844
pointer-events: none;
45+
46+
@media (min-width: 768px) {
47+
display: block;
48+
}
1949
}
20-
50+
2151
// Container and text should be above canvas
2252
.container {
2353
position: relative;
24-
z-index: 2;
54+
z-index: 4;
2555
width: 100%;
2656
}
27-
28-
// Animated colorful gradient background - smoother with more color stops
29-
background: linear-gradient(
30-
135deg,
31-
$valiente-midnight 0%,
32-
$valiente-ink 16%,
33-
darken($valiente-violet, 5%) 32%,
34-
darken($valiente-fuchsia, 5%) 48%,
35-
darken($valiente-magenta, 7%) 64%,
36-
darken($valiente-rose, 12%) 82%,
37-
darken($valiente-ink, 6%) 100%
38-
);
39-
background-size: 300% 300%;
40-
animation: gradientShift 20s ease-in-out infinite;
41-
57+
4258
// Logo background detail with low opacity
4359
&::before {
4460
content: '';
@@ -53,18 +69,18 @@ header.masthead {
5369
background-repeat: no-repeat;
5470
opacity: 0.08;
5571
pointer-events: none;
56-
z-index: 0;
72+
z-index: 1;
5773
}
58-
59-
// Add animated overlay and particles combined
74+
75+
// Animated overlay (transform only — composited)
6076
&::after {
6177
content: '';
6278
position: absolute;
6379
top: 0;
6480
left: 0;
6581
right: 0;
6682
bottom: 0;
67-
background:
83+
background:
6884
radial-gradient(ellipse 60% 40% at 20% 50%, rgba(255, 255, 255, 0.12) 0%, transparent 60%),
6985
radial-gradient(ellipse 50% 50% at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 60%),
7086
radial-gradient(ellipse 40% 60% at 50% 20%, rgba($valiente-violet, 0.25) 0%, transparent 50%),
@@ -74,22 +90,12 @@ header.masthead {
7490
radial-gradient(1px 1px at 80% 10%, rgba(255, 255, 255, 0.3), transparent),
7591
radial-gradient(2px 2px at 90% 60%, rgba(255, 255, 255, 0.25), transparent),
7692
radial-gradient(1px 1px at 33% 80%, rgba(255, 255, 255, 0.35), transparent);
77-
background-size:
78-
100% 100%,
79-
100% 100%,
80-
100% 100%,
81-
200% 200%,
82-
200% 200%,
83-
200% 200%,
84-
200% 200%,
85-
200% 200%,
86-
200% 200%;
87-
animation: overlayMove 25s ease-in-out infinite, particlesMove 25s linear infinite;
93+
animation: overlayMove 25s ease-in-out infinite;
8894
pointer-events: none;
8995
opacity: 0.9;
90-
z-index: 0;
96+
z-index: 2;
9197
}
92-
98+
9399
.intro-text {
94100
position: relative;
95101
z-index: 1;
@@ -122,26 +128,16 @@ header.masthead {
122128
}
123129
}
124130

125-
// Gradient animation - smoother circular movement
126-
@keyframes gradientShift {
127-
0% {
128-
background-position: 0% 50%;
129-
}
130-
25% {
131-
background-position: 100% 0%;
132-
}
133-
50% {
134-
background-position: 100% 100%;
135-
}
136-
75% {
137-
background-position: 0% 100%;
138-
}
139-
100% {
140-
background-position: 0% 50%;
141-
}
131+
// GPU-composited gradient drift — uses transform not background-position
132+
@keyframes gradientDrift {
133+
0% { transform: translate(0%, 0%); }
134+
25% { transform: translate(25%, 0%); }
135+
50% { transform: translate(25%, 25%); }
136+
75% { transform: translate(0%, 25%); }
137+
100% { transform: translate(0%, 0%); }
142138
}
143139

144-
// Overlay movement animation - smoother transitions
140+
// Overlay movement animation — transform only (composited)
145141
@keyframes overlayMove {
146142
0% {
147143
transform: translate(0, 0) scale(1) rotate(0deg);
@@ -165,15 +161,6 @@ header.masthead {
165161
}
166162
}
167163

168-
// Particles movement animation
169-
@keyframes particlesMove {
170-
0% {
171-
background-position: 0% 0%;
172-
}
173-
100% {
174-
background-position: 100% 100%;
175-
}
176-
}
177164
@media (min-width: 768px) {
178165
header.masthead {
179166
.intro-text {

_sass/layout/_services.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ $services-accent-bright: lighten($primary, 8%);
1010
padding-block: var(--space-section-y);
1111
color: var(--color-text-on-dark);
1212
overflow: hidden;
13+
contain: layout style paint;
1314
@include full-viewport-section;
1415

1516
.section-heading {

0 commit comments

Comments
 (0)