Skip to content

Commit e2a22c7

Browse files
committed
docs(site): refine mobile hero positioning
Signed-off-by: xunzhuo <xunzhuo@vllm-semantic-router.ai>
1 parent f4ce38e commit e2a22c7

2 files changed

Lines changed: 105 additions & 26 deletions

File tree

apps/site/src/css/elephant.css

Lines changed: 89 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,67 @@ h3 {
225225
}
226226

227227
.navbar__toggle {
228-
border: 1px solid var(--border-soft);
229-
border-radius: 999px;
228+
position: relative;
229+
align-items: center;
230+
justify-content: center;
231+
width: 2.65rem;
232+
height: 2.35rem;
233+
padding: 0;
234+
border: 1px solid rgba(170, 162, 149, 0.26);
235+
border-radius: 0.88rem;
236+
background: rgba(251, 247, 239, 0.78);
230237
color: var(--text-main);
238+
box-shadow: 0 10px 24px rgba(45, 92, 123, 0.08);
239+
transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease,
240+
transform 180ms ease, box-shadow 180ms ease;
241+
}
242+
243+
.navbar__toggle:hover,
244+
.navbar__toggle:focus-visible {
245+
background: #ffffff;
246+
border-color: rgba(170, 162, 149, 0.38);
247+
color: var(--accent-light);
248+
transform: translateY(-1px);
249+
box-shadow: 0 14px 30px rgba(45, 92, 123, 0.12);
250+
}
251+
252+
.navbar__toggle svg {
253+
width: 1.1rem;
254+
height: 1.1rem;
255+
opacity: 0;
256+
}
257+
258+
.navbar__toggle::before,
259+
.navbar__toggle::after {
260+
content: "";
261+
position: absolute;
262+
left: 50%;
263+
width: 1.08rem;
264+
height: 2px;
265+
border-radius: 999px;
266+
background: currentColor;
267+
transform: translateX(-50%);
268+
transition: top 180ms ease, transform 180ms ease, width 180ms ease;
269+
}
270+
271+
.navbar__toggle::before {
272+
top: calc(50% - 0.24rem);
273+
}
274+
275+
.navbar__toggle::after {
276+
top: calc(50% + 0.24rem);
277+
}
278+
279+
.navbar__toggle[aria-expanded="true"]::before {
280+
top: 50%;
281+
width: 1rem;
282+
transform: translate(-50%, -50%) rotate(42deg);
283+
}
284+
285+
.navbar__toggle[aria-expanded="true"]::after {
286+
top: 50%;
287+
width: 1rem;
288+
transform: translate(-50%, -50%) rotate(-42deg);
231289
}
232290

233291
.navbar-sidebar {
@@ -591,8 +649,12 @@ h3 {
591649

592650
.manifesto-title {
593651
display: grid;
652+
justify-items: center;
594653
gap: 0.05em;
654+
margin-right: auto;
655+
margin-left: auto;
595656
max-width: none;
657+
text-align: center;
596658
font-size: clamp(4.4rem, 9vw, 8.4rem);
597659
line-height: 0.9;
598660
letter-spacing: -0.035em;
@@ -611,6 +673,7 @@ h3 {
611673
justify-items: center;
612674
gap: 0.95rem;
613675
width: min(100%, 50rem);
676+
text-align: center;
614677
font-size: clamp(1.12rem, 1.45vw, 1.42rem);
615678
line-height: 1.42;
616679
text-wrap: pretty;
@@ -1458,7 +1521,7 @@ h3 {
14581521
}
14591522

14601523
.manifesto-section {
1461-
padding-top: 7.4rem;
1524+
padding-top: 6.9rem;
14621525
}
14631526

14641527
.manifesto-mark-wrap {
@@ -1468,12 +1531,27 @@ h3 {
14681531

14691532
.manifesto-title {
14701533
max-width: 9.2ch;
1471-
font-size: clamp(3.1rem, 12.2vw, 4.85rem);
1534+
font-size: clamp(2.9rem, 11.4vw, 4.45rem);
14721535
}
14731536

14741537
.manifesto-copy {
1475-
font-size: 1.14rem;
1476-
line-height: 1.28;
1538+
gap: 0.75rem;
1539+
width: min(100%, 23rem);
1540+
font-size: 1.02rem;
1541+
line-height: 1.3;
1542+
}
1543+
1544+
.manifesto-hook {
1545+
font-size: 1.24rem;
1546+
margin-bottom: 0;
1547+
}
1548+
1549+
.manifesto-copy .pill-row {
1550+
display: grid;
1551+
grid-template-columns: repeat(3, minmax(0, 1fr));
1552+
width: 100%;
1553+
gap: 0.5rem;
1554+
padding-top: 0.1rem;
14771555
}
14781556

14791557
.cta-row {
@@ -1490,9 +1568,12 @@ h3 {
14901568
}
14911569

14921570
.info-pill {
1571+
width: 100%;
1572+
min-width: 0;
14931573
min-height: 2.15rem;
1494-
padding: 0.55rem 0.82rem;
1495-
white-space: normal;
1574+
padding: 0.5rem 0.5rem;
1575+
font-size: 0.58rem;
1576+
white-space: nowrap;
14961577
text-align: center;
14971578
}
14981579

apps/site/src/pages/index.tsx

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const installCommand = "curl -fsSL https://elephant.agentic-in.ai/install.sh | b
1010
const pageTitle = "Personal-Model-First Self-Evolving AI Agent";
1111
const pageTitleWithSite = `${pageTitle} | Elephant Agent`;
1212
const pageDescription =
13-
"Elephant Agent grows a correctable Personal Model, asks with user-paced curiosity, and reflects after the turn so personal AI can evolve around you.";
13+
"Elephant Agent starts from you, grows a correctable Personal Model, and self-evolves through curiosity and reflection.";
1414
const pageKeywords = [
1515
"personal-model-first AI",
1616
"personal AI agent",
@@ -46,39 +46,39 @@ const problemRows = [
4646
body:
4747
"You repeat the same people, projects, risks, and preferences every time.",
4848
note: "Elephant Agent carries the useful understanding forward.",
49-
vs: "Others add memory slots. Elephant Agent grows a Personal Model.",
49+
vs: "Others add memory slots. Elephant Agent grows understanding.",
5050
},
5151
{
5252
name: "Drift",
5353
body:
5454
"A strong answer today can still forget what mattered yesterday.",
5555
note: "Elephant Agent resumes from the right thread.",
56-
vs: "Others extend context windows. Elephant Agent picks up the right thread.",
56+
vs: "Others extend context windows. Elephant Agent keeps the path alive.",
5757
},
5858
{
5959
name: "Passivity",
6060
body:
6161
"Most agents wait for you to explain every missing piece.",
6262
note: "Elephant Agent can ask when the answer would change future help.",
63-
vs: "Others wait. Elephant Agent gets curious at your pace, then reflects after the turn.",
63+
vs: "Others wait. Elephant Agent asks gently and reflects after the turn.",
6464
},
6565
];
6666

6767
const thesisCards = [
6868
{
6969
kicker: "01 →",
7070
title: "Personal Model first",
71-
body: "Identity, World, Pulse, and Journey give the agent a correctable way to understand one person.",
71+
body: "Identity, World, Pulse, and Journey keep understanding centered on one person.",
7272
},
7373
{
7474
kicker: "02 →",
7575
title: "Curiosity by design",
76-
body: "Quiet, balanced, or active. Elephant Agent asks only when the answer would change how it helps.",
76+
body: "Quiet, balanced, or active. It asks gently when one answer would change future help.",
7777
},
7878
{
7979
kicker: "03",
8080
title: "Reflect after the turn",
81-
body: "Background reflect jobs turn lived Steps into durable, inspectable understanding instead of hidden profiling.",
81+
body: "After the conversation, reflect jobs turn lived evidence into correctable Personal Model updates.",
8282
},
8383
];
8484

@@ -107,7 +107,7 @@ export default function HomePage(): React.JSX.Element {
107107
<div className="grid manifesto-grid">
108108
<div className="manifesto-title-wrap">
109109
<span className="label" data-reveal>
110-
Personal-model-first AI
110+
PM-first self-evolving AI
111111
</span>
112112
<h1 className="manifesto-title" data-reveal>
113113
<span>Elephant Agent</span>
@@ -119,10 +119,8 @@ export default function HomePage(): React.JSX.Element {
119119
Elephants never forget.
120120
</p>
121121
<p>
122-
Elephant Agent is a Personal-Model-first self-evolving AI
123-
agent. It starts from you, asks gently when understanding is
124-
missing, and reflects after the turn so the right people,
125-
risks, rhythms, and decisions can guide what happens next.
122+
Personal-Model-first self-evolving AI agent, built around
123+
you. Curious by design. Reflective after the turn.
126124
</p>
127125
<div className="pill-row">
128126
<span className="info-pill info-pill-highlight">PM-first</span>
@@ -186,14 +184,14 @@ export default function HomePage(): React.JSX.Element {
186184
<strong className="memory-key">relationship</strong>.
187185
</p>
188186
<p>
189-
That is the inspiration behind Elephant Agent. A personal AI
187+
That is the inspiration behind Elephant Agent. Personal AI
190188
should not archive every transcript and call it memory. It
191-
should turn memory into a{" "}
189+
should self-evolve around a{" "}
192190
<strong className="memory-key">correctable Personal Model</strong>:
193-
episodic traces, social context, risk signals, current
194-
rhythms, and long-term lessons that help tomorrow feel
195-
continuous. Not more storage. A living understanding that can
196-
ask, learn, and be corrected.
191+
who you are, what surrounds you, what is alive right now, and
192+
what your path has taught you. Not more storage. A living
193+
understanding that asks, reflects, and becomes more yours
194+
over time.
197195
</p>
198196
</div>
199197
</div>

0 commit comments

Comments
 (0)