Skip to content

Commit 73b0d0e

Browse files
authored
Website Update
1 parent de4b2bf commit 73b0d0e

3 files changed

Lines changed: 245 additions & 39 deletions

File tree

docs/assets/css/style.css

Lines changed: 125 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@
4141
--mobile-row-inline: clamp(52px, 11.8vw, 60px);
4242
--mobile-menu-inline: clamp(36px, 8.4vw, 46px);
4343
--page-top-offset: calc(env(safe-area-inset-top, 0px) + 12px + var(--nav-pill-height-desktop) + 28px);
44+
--home-ui-shift: 0px;
45+
--home-ui-opacity: 1;
46+
--home-image-scroll-scale: 1;
47+
--home-image-presence: 1;
48+
--home-image-base-opacity: 1;
49+
--home-image-base-brightness: 1;
50+
--home-image-base-contrast: 1;
51+
--home-image-silhouette-opacity: 0;
52+
--home-image-silhouette-brightness: 1.36;
53+
--home-image-silhouette-contrast: 1.12;
54+
--home-backdrop-opacity: 1;
55+
--home-content-layer-lift: 0px;
4456
}
4557

4658
* {
@@ -88,6 +100,14 @@ a {
88100
z-index: 1;
89101
}
90102

103+
.page-content-layer,
104+
.site-footer {
105+
position: relative;
106+
z-index: 1;
107+
transform: translate3d(0, calc(-1 * var(--home-content-layer-lift)), 0);
108+
will-change: transform;
109+
}
110+
91111
.site-nav {
92112
position: relative;
93113
inset: auto;
@@ -1000,8 +1020,8 @@ a {
10001020
.hero {
10011021
--hero-top-pad: calc(var(--page-top-offset) + clamp(0.75rem, 1.15vw, 1.3rem));
10021022
--hero-content-bottom-gap: clamp(3rem, 4.1vw, 4.2rem);
1003-
--hero-extra-tail: 0px;
10041023
--hero-stage-min: 0px;
1024+
--home-transition-span: clamp(7rem, 14vh, 11rem);
10051025
--hero-stage-height: calc(var(--hero-initial-viewport-height, 100svh) - var(--hero-top-pad) - var(--hero-content-bottom-gap));
10061026
--hero-stage-reference: max(var(--hero-stage-height), var(--hero-stage-min));
10071027
--hero-image-size: clamp(30rem, calc(var(--hero-stage-reference) * 1.06), 60rem);
@@ -1013,28 +1033,48 @@ a {
10131033
position: relative;
10141034
margin-top: calc(var(--page-top-offset) * -1);
10151035
min-height: max(
1016-
calc(var(--hero-initial-viewport-height, 100svh) + var(--hero-extra-tail)),
1017-
calc(var(--hero-top-pad) + var(--hero-stage-min) + var(--hero-content-bottom-gap) + var(--hero-extra-tail))
1036+
calc(var(--hero-initial-viewport-height, 100svh) + var(--home-transition-span)),
1037+
calc(var(--hero-top-pad) + var(--hero-stage-min) + var(--hero-content-bottom-gap) + var(--home-transition-span))
10181038
);
10191039
padding-top: var(--hero-top-pad);
1020-
padding-bottom: calc(var(--hero-content-bottom-gap) + var(--hero-extra-tail));
1021-
background: #000;
1040+
padding-bottom: calc(var(--hero-content-bottom-gap) + var(--home-transition-span));
1041+
background: transparent;
10221042
overflow: clip;
10231043
isolation: isolate;
10241044
}
10251045

10261046
.hero-layout {
10271047
position: relative;
1048+
position: sticky;
1049+
top: var(--hero-top-pad);
10281050
min-height: var(--hero-stage-reference);
1051+
z-index: 2;
1052+
isolation: isolate;
1053+
}
1054+
1055+
.hero-layout::before {
1056+
content: "";
1057+
position: absolute;
1058+
left: 50%;
1059+
top: calc(-1 * var(--hero-top-pad));
1060+
width: 100vw;
1061+
height: calc(var(--hero-stage-reference) + var(--hero-top-pad) + var(--hero-content-bottom-gap));
1062+
transform: translateX(-50%);
1063+
background: #000;
1064+
opacity: var(--home-backdrop-opacity);
1065+
pointer-events: none;
1066+
z-index: 0;
1067+
will-change: opacity;
10291068
}
10301069

10311070
.hero-stage {
10321071
position: relative;
10331072
min-height: inherit;
1073+
z-index: 1;
10341074
isolation: isolate;
10351075
}
10361076

1037-
.hero-image-wrap::after {
1077+
.hero-image-frame::after {
10381078
content: "";
10391079
position: absolute;
10401080
left: -3%;
@@ -1054,9 +1094,18 @@ a {
10541094
display: grid;
10551095
place-items: center;
10561096
width: min(var(--hero-image-size), var(--hero-image-max-inline));
1057-
transform: translate(-50%, -50%);
1097+
transform: translate(-50%, -50%) scale(var(--home-image-scroll-scale));
10581098
overflow: visible;
10591099
pointer-events: none;
1100+
opacity: var(--home-image-presence);
1101+
will-change: transform, opacity;
1102+
}
1103+
1104+
.hero-image-frame {
1105+
position: relative;
1106+
display: grid;
1107+
place-items: center;
1108+
width: 100%;
10601109
will-change: transform, opacity;
10611110
}
10621111

@@ -1073,6 +1122,21 @@ a {
10731122
.hero-home-image--base {
10741123
position: relative;
10751124
z-index: 1;
1125+
opacity: var(--home-image-base-opacity);
1126+
filter:
1127+
brightness(var(--home-image-base-brightness))
1128+
contrast(var(--home-image-base-contrast));
1129+
}
1130+
1131+
.hero-home-image--silhouette {
1132+
position: relative;
1133+
z-index: 2;
1134+
opacity: var(--home-image-silhouette-opacity);
1135+
mix-blend-mode: screen;
1136+
filter:
1137+
brightness(var(--home-image-silhouette-brightness))
1138+
contrast(var(--home-image-silhouette-contrast))
1139+
saturate(0.86);
10761140
}
10771141

10781142
.hero-kicker {
@@ -1084,6 +1148,9 @@ a {
10841148
justify-content: space-between;
10851149
gap: 1rem;
10861150
padding: 0;
1151+
transform: translate3d(0, calc(-1 * var(--home-ui-shift)), 0);
1152+
opacity: var(--home-ui-opacity);
1153+
will-change: transform, opacity;
10871154
}
10881155

10891156
.hero-meta {
@@ -1212,18 +1279,22 @@ a {
12121279
opacity: 1;
12131280
}
12141281

1215-
.js .hero-image-wrap {
1216-
transform: translate(-50%, calc(-50% + 1.2rem)) scale(1.055);
1282+
.js .hero-image-frame {
1283+
transform: translate3d(0, 1.2rem, 0) scale(1.055);
12171284
}
12181285

1219-
.js .hero-image-wrap::after {
1286+
.js .hero-image-frame::after {
12201287
opacity: 0;
12211288
}
12221289

12231290
.js .hero-home-image--base {
12241291
opacity: 0;
12251292
}
12261293

1294+
.js .hero-home-image--silhouette {
1295+
opacity: 0;
1296+
}
1297+
12271298
.js body.hero-ready .hero-shape-fill {
12281299
animation:
12291300
hero-mask-reveal-script 860ms cubic-bezier(0.18, 0.92, 0.24, 1) 90ms forwards,
@@ -1250,11 +1321,11 @@ a {
12501321
hero-glow-pass 1120ms cubic-bezier(0.22, 0.88, 0.24, 1) 970ms forwards;
12511322
}
12521323

1253-
.js body.hero-ready .hero-image-wrap {
1324+
.js body.hero-ready .hero-image-frame {
12541325
animation: hero-image-entrance 2480ms cubic-bezier(0.18, 0.9, 0.22, 1) 120ms forwards;
12551326
}
12561327

1257-
.js body.hero-ready .hero-image-wrap::after {
1328+
.js body.hero-ready .hero-image-frame::after {
12581329
animation: hero-image-gradient-settle 2480ms cubic-bezier(0.18, 0.9, 0.22, 1) 120ms forwards;
12591330
}
12601331

@@ -1327,11 +1398,11 @@ a {
13271398

13281399
@keyframes hero-image-entrance {
13291400
0% {
1330-
transform: translate(-50%, calc(-50% + 1.2rem)) scale(1.055);
1401+
transform: translate3d(0, 1.2rem, 0) scale(1.055);
13311402
}
13321403

13331404
100% {
1334-
transform: translate(-50%, -50%) scale(1);
1405+
transform: translate3d(0, 0, 0) scale(1);
13351406
}
13361407
}
13371408

@@ -1368,6 +1439,9 @@ a {
13681439
justify-content: space-between;
13691440
gap: clamp(1.6rem, 3vw, 3.4rem);
13701441
padding: 0;
1442+
transform: translate3d(0, calc(-1 * var(--home-ui-shift)), 0);
1443+
opacity: var(--home-ui-opacity);
1444+
will-change: transform, opacity;
13711445
}
13721446

13731447
.hero-actions {
@@ -1396,13 +1470,7 @@ a {
13961470
}
13971471

13981472
#about::after {
1399-
content: "";
1400-
position: absolute;
1401-
inset: 0 0 auto;
1402-
z-index: 0;
1403-
height: clamp(6rem, 11vw, 9rem);
1404-
pointer-events: none;
1405-
background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.96) 18%, rgba(0, 0, 0, 0.72) 52%, rgba(0, 0, 0, 0) 100%);
1473+
content: none;
14061474
}
14071475

14081476
#about > .container {
@@ -1690,6 +1758,7 @@ a {
16901758
position: relative;
16911759
width: 100vw;
16921760
margin-left: calc(50% - 50vw);
1761+
isolation: isolate;
16931762
overflow-x: hidden;
16941763
padding-inline:
16951764
max(env(safe-area-inset-left, 0px), 0px)
@@ -1700,6 +1769,7 @@ a {
17001769

17011770
.discipline-stack-stage {
17021771
position: relative;
1772+
z-index: 1;
17031773
width: min(calc(100% - 1.5rem), 1380px);
17041774
margin: 0 auto;
17051775
padding:
@@ -1711,14 +1781,13 @@ a {
17111781

17121782
.stack-loading-overlay {
17131783
position: absolute;
1714-
inset:
1715-
var(--discipline-stack-pad-top)
1716-
var(--discipline-stack-pad-inline)
1717-
var(--discipline-stack-pad-bottom);
1784+
inset: 0;
1785+
left: 50%;
1786+
width: 100vw;
1787+
transform: translateX(-50%);
17181788
z-index: 24;
17191789
display: grid;
17201790
place-items: center;
1721-
border-radius: 40px;
17221791
opacity: 1;
17231792
visibility: visible;
17241793
pointer-events: none;
@@ -1731,13 +1800,12 @@ a {
17311800
content: "";
17321801
position: absolute;
17331802
inset: 0;
1734-
border-radius: inherit;
17351803
background:
1736-
linear-gradient(180deg, rgba(11, 11, 15, 0.64) 0%, rgba(7, 7, 10, 0.76) 100%);
1737-
border: 1px solid rgba(243, 242, 238, 0.08);
1804+
linear-gradient(180deg, rgba(10, 10, 14, 0.48) 0%, rgba(8, 8, 11, 0.72) 100%);
17381805
backdrop-filter: blur(18px) saturate(0.82);
17391806
-webkit-backdrop-filter: blur(18px) saturate(0.82);
1740-
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
1807+
-webkit-mask: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
1808+
mask: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
17411809
}
17421810

17431811
.stack-loading-spinner {
@@ -2367,7 +2435,7 @@ a {
23672435
.hero {
23682436
--hero-top-pad: calc(var(--page-top-offset) + 0.45rem);
23692437
--hero-content-bottom-gap: 2.12rem;
2370-
--hero-extra-tail: clamp(1.45rem, 5.4vw, 2.1rem);
2438+
--home-transition-span: clamp(8rem, 15vh, 10.5rem);
23712439
--hero-image-size: clamp(29rem, calc(var(--hero-stage-reference) * 0.96), 52rem);
23722440
--hero-image-max-inline: 110vw;
23732441
--hero-tagline-base-size: clamp(2.25rem, min(calc(var(--hero-stage-reference) * 0.1), 11.2cqi), 3.35rem);
@@ -2532,6 +2600,7 @@ a {
25322600

25332601
.hero {
25342602
--hero-stage-min: 20.75rem;
2603+
--home-transition-span: clamp(6rem, 11vh, 8rem);
25352604
}
25362605

25372606
.discipline-stack-shell {
@@ -2583,6 +2652,15 @@ a {
25832652
scroll-behavior: auto;
25842653
}
25852654

2655+
.hero {
2656+
--home-transition-span: 0px !important;
2657+
}
2658+
2659+
.page-content-layer,
2660+
.site-footer {
2661+
transform: none !important;
2662+
}
2663+
25862664
.button,
25872665
.project-stack-card,
25882666
.project-stack-card__surface,
@@ -2633,6 +2711,14 @@ a {
26332711
transform: translate(-50%, -50%) scale(1) !important;
26342712
}
26352713

2714+
.hero-image-frame {
2715+
opacity: 1 !important;
2716+
filter: none !important;
2717+
animation: none !important;
2718+
transition: none !important;
2719+
transform: none !important;
2720+
}
2721+
26362722
.hero-home-image--base {
26372723
opacity: 1 !important;
26382724
filter: none !important;
@@ -2641,7 +2727,14 @@ a {
26412727
transform: none !important;
26422728
}
26432729

2644-
.hero-image-wrap::after {
2730+
.hero-home-image--silhouette {
2731+
opacity: 0 !important;
2732+
filter: none !important;
2733+
animation: none !important;
2734+
transition: none !important;
2735+
}
2736+
2737+
.hero-image-frame::after {
26452738
opacity: 1 !important;
26462739
animation: none !important;
26472740
transition: none !important;

0 commit comments

Comments
 (0)