Skip to content

Commit 227ef80

Browse files
committed
Polish endorsements section styling
- Add supporting intro copy and tighten avatar/card sizing - Refine desktop and mobile spacing, fades, and typography - Ignore local `.gstack/` workspace files
1 parent c8ebca0 commit 227ef80

2 files changed

Lines changed: 52 additions & 51 deletions

File tree

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ __screenshots__/
2323
.tanstack
2424
squashfs-root/
2525
.vercel
26+
.gstack/

‎apps/marketing/src/pages/index.astro‎

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,11 @@ const mobileEndorsementRows = [
168168

169169
<!-- ── Endorsements ─────────────────────────────────────────── -->
170170
<section id="endorsements" class="sec-endorsements" aria-labelledby="endorsements-title">
171-
<div class="endorsements-head container">
172-
<h2 id="endorsements-title">Developers love T3 Code</h2>
171+
<div class="container">
172+
<div class="endorsements-head">
173+
<h2 id="endorsements-title">Developers love T3 Code</h2>
174+
<p>Real reactions from people building with T3 Code today.</p>
175+
</div>
173176
</div>
174177

175178
<div class="endorsement-carousel endorsement-carousel--desktop" aria-label="Developer endorsements">
@@ -192,8 +195,8 @@ const mobileEndorsementRows = [
192195
<img
193196
src={`/pfps/${tweet.handle}.webp`}
194197
alt=""
195-
width="40"
196-
height="40"
198+
width="28"
199+
height="28"
197200
loading="lazy"
198201
decoding="async"
199202
/>
@@ -230,8 +233,8 @@ const mobileEndorsementRows = [
230233
<img
231234
src={`/pfps/${tweet.handle}.webp`}
232235
alt=""
233-
width="40"
234-
height="40"
236+
width="28"
237+
height="28"
235238
loading="lazy"
236239
decoding="async"
237240
/>
@@ -999,23 +1002,27 @@ const mobileEndorsementRows = [
9991002
/* ── Endorsements ─────────────────────────────────────── */
10001003
.sec-endorsements {
10011004
overflow: hidden;
1002-
padding: 44px 0 56px;
1003-
background:
1004-
linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 42%),
1005-
#09090b;
1005+
padding: 72px 0;
10061006
}
10071007

10081008
.endorsements-head {
1009-
display: block;
1010-
margin-bottom: 30px;
1009+
max-width: 640px;
1010+
margin-bottom: 32px;
10111011
}
10121012

10131013
.endorsements-head h2 {
1014-
max-width: 760px;
1015-
font-size: clamp(30px, 3.8vw, 46px);
1014+
font-size: clamp(26px, 2.4vw, 32px);
10161015
font-weight: 500;
1017-
letter-spacing: -0.035em;
1018-
line-height: 1.05;
1016+
letter-spacing: -0.025em;
1017+
line-height: 1.15;
1018+
margin-bottom: 8px;
1019+
}
1020+
1021+
.endorsements-head p {
1022+
color: var(--fg-muted);
1023+
font-size: 15px;
1024+
letter-spacing: -0.003em;
1025+
line-height: 1.5;
10191026
}
10201027

10211028
.endorsement-carousel {
@@ -1036,18 +1043,18 @@ const mobileEndorsementRows = [
10361043
top: 0;
10371044
bottom: 0;
10381045
z-index: 2;
1039-
width: max(28px, calc((100vw - 1240px) / 2 + 48px));
1046+
width: max(48px, calc((100vw - 1240px) / 2 + 56px));
10401047
pointer-events: none;
10411048
}
10421049

10431050
.endorsement-carousel::before {
10441051
left: 0;
1045-
background: linear-gradient(90deg, var(--bg) 8%, transparent);
1052+
background: linear-gradient(90deg, var(--bg), transparent);
10461053
}
10471054

10481055
.endorsement-carousel::after {
10491056
right: 0;
1050-
background: linear-gradient(270deg, var(--bg) 8%, transparent);
1057+
background: linear-gradient(270deg, var(--bg), transparent);
10511058
}
10521059

10531060
.endorsement-row {
@@ -1079,65 +1086,59 @@ const mobileEndorsementRows = [
10791086

10801087
.endorsement-card {
10811088
position: relative;
1082-
width: clamp(278px, 28vw, 356px);
1083-
height: 156px;
1084-
padding: 16px;
1089+
width: clamp(264px, 22vw, 308px);
1090+
height: 132px;
1091+
padding: 14px 16px;
10851092
display: flex;
10861093
flex-direction: column;
1094+
gap: 10px;
10871095
border: 1px solid var(--border);
1088-
border-radius: 8px;
1089-
background:
1090-
linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
1091-
#0d0d10;
1092-
box-shadow: 0 22px 44px -28px rgba(0, 0, 0, 0.75);
1096+
border-radius: 10px;
1097+
background: rgba(255, 255, 255, 0.012);
10931098
transition:
1094-
transform 0.18s ease,
10951099
border-color 0.18s ease,
10961100
background 0.18s ease;
10971101
}
10981102

10991103
.endorsement-card:hover {
1100-
transform: translateY(-2px);
11011104
border-color: var(--border-strong);
1102-
background:
1103-
linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
1104-
#101014;
1105+
background: rgba(255, 255, 255, 0.03);
11051106
}
11061107

11071108
.endorsement-author {
11081109
display: flex;
11091110
align-items: center;
1110-
gap: 10px;
1111-
margin-bottom: 12px;
1111+
gap: 8px;
1112+
min-width: 0;
11121113
}
11131114

11141115
.endorsement-author img {
1115-
width: 40px;
1116-
height: 40px;
1116+
width: 28px;
1117+
height: 28px;
11171118
border-radius: 50%;
11181119
object-fit: cover;
1119-
border: 1px solid rgba(255, 255, 255, 0.16);
1120+
flex-shrink: 0;
11201121
}
11211122

11221123
.endorsement-handle {
1123-
color: var(--fg);
1124-
font-size: 14px;
1125-
font-weight: 600;
1124+
color: var(--fg-muted);
1125+
font-size: 13px;
1126+
font-weight: 500;
11261127
letter-spacing: -0.005em;
11271128
overflow: hidden;
11281129
text-overflow: ellipsis;
11291130
white-space: nowrap;
11301131
}
11311132

11321133
.endorsement-card p {
1133-
color: color-mix(in oklab, var(--fg) 88%, var(--fg-muted));
1134-
font-size: 14px;
1134+
color: var(--fg);
1135+
font-size: 13.5px;
11351136
line-height: 1.4;
1136-
letter-spacing: -0.004em;
1137+
letter-spacing: -0.003em;
11371138
display: -webkit-box;
11381139
overflow: hidden;
11391140
-webkit-box-orient: vertical;
1140-
-webkit-line-clamp: 4;
1141+
-webkit-line-clamp: 3;
11411142
}
11421143

11431144
/* ── Git ──────────────────────────────────────────────── */
@@ -1354,10 +1355,10 @@ const mobileEndorsementRows = [
13541355
.container { padding-left: 20px; padding-right: 20px; }
13551356
.hero-preview { display: none; }
13561357
.sec-endorsements {
1357-
padding: 36px 0 46px;
1358+
padding: 56px 0;
13581359
}
13591360
.endorsements-head {
1360-
margin-bottom: 26px;
1361+
margin-bottom: 28px;
13611362
}
13621363
.endorsement-carousel--desktop {
13631364
display: none;
@@ -1367,7 +1368,7 @@ const mobileEndorsementRows = [
13671368
}
13681369
.endorsement-carousel::before,
13691370
.endorsement-carousel::after {
1370-
width: 20px;
1371+
width: 28px;
13711372
}
13721373
.endorsement-track {
13731374
animation-duration: 68s;
@@ -1376,13 +1377,12 @@ const mobileEndorsementRows = [
13761377
animation-duration: 76s;
13771378
}
13781379
.endorsement-card {
1379-
width: 286px;
1380-
height: 152px;
1380+
width: 268px;
1381+
height: 132px;
13811382
padding: 14px;
13821383
}
13831384
.endorsement-card p {
1384-
font-size: 13.5px;
1385-
-webkit-line-clamp: 4;
1385+
font-size: 13px;
13861386
}
13871387
}
13881388
</style>

0 commit comments

Comments
 (0)