mirror of
https://github.com/rohitg00/agentmemory.git
synced 2026-09-14 20:16:33 +08:00
3338f9d039
Nav - Replace overlay hamburger with a solid horizontal bar. - Use the real agentmemory icon from assets/icon.svg as the brand mark. - Single GitHub pill: GH icon + GITHUB label + gold star + live count, the entire pill links to the repo. No more separate icon button. - Server-rendered count pulled from api.github.com/repos/... with revalidate 3600. Falls back to 0 on rate limit. - Mobile (<720px) collapses to a hamburger sheet with sections + links. Command Center (new) - Tabbed section showing the shipped viewer (:3113), the iii console (:3114), the raw KV state browser, and OTel traces. - Real screenshots vendored into public/ (dashboard.png, states.png, traces-waterfall.png, demo.gif). - Each tab ships with a description, 4-5 capability bullets, and a copy-ready launch command. Features (new) - 12-tile grid covering 12 auto-hooks, 44 MCP tools, 49 REST endpoints, BM25+vector+graph recall, auto consolidation, JSONL replay, knowledge graph extraction, mesh federation, Obsidian export, 5 LLM providers, OTel observability, 0 external DBs. Agents - Replaced the flat tile grid with an agents.md-style two-tier layout. - Top row: 4 featured first-party integrations (Claude Code, OpenClaw, Hermes, Codex CLI) as big cards with real logos, brand accent colors, and integration pitch. - Bottom row: CSS keyframe marquee of every other supported agent (Claude Desktop, Cursor, Gemini CLI, OpenCode, Cline, Roo, Kilo, Goose, Aider, Windsurf) with real logos + brand borders on hover. Pauses on hover. Edges fade into the page. Respects prefers-reduced-motion. Install · step 3 · MCP wiring - Dropped the 10-tab toggle and the Cursor-only gold hero button. - Left column: equal-weight agent chips in a 2x3 grid — Cursor, VS Code, Claude Code, Claude Desktop, Gemini CLI, Codex CLI. Click copies the right snippet (JSON / CLI command / TOML) or fires the one-click deeplink where one exists. - Right column: UNIVERSAL MCP JSON — paste-ready block that works for Claude Desktop, Cursor, Cline, Windsurf, Gemini CLI, OpenCode. - Expando reveals Hermes, OpenClaw, and Codex TOML shapes. Infrastructure - lib/github.ts server-only fetch for repo stats. - lib/format.ts (client-safe) formatCompact. - next.config.ts: turbopack.root pinned to silence workspace warning, images.remotePatterns for github.com / GH avatars / Cursor / Windsurf logos. - layout.tsx: icon metadata wired to /icon.svg. Build: next build clean, 3 routes prerendered static, 0 vulns.
231 lines
4.1 KiB
CSS
231 lines
4.1 KiB
CSS
.wrap {
|
|
padding: 112px 0 96px;
|
|
}
|
|
|
|
/* Featured row: 4 first-party cards */
|
|
.featuredRow {
|
|
max-width: 1440px;
|
|
margin: 0 auto 56px;
|
|
padding: 0 40px;
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 16px;
|
|
}
|
|
|
|
.featured {
|
|
position: relative;
|
|
background: var(--iron);
|
|
border: 1px solid var(--charcoal);
|
|
padding: 24px;
|
|
color: var(--white);
|
|
text-decoration: none;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 18px;
|
|
min-height: 200px;
|
|
transition:
|
|
background 200ms ease,
|
|
border-color 200ms ease,
|
|
transform 200ms ease;
|
|
overflow: hidden;
|
|
}
|
|
.featured::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0 0 auto 0;
|
|
height: 3px;
|
|
background: var(--agent-accent, var(--gold));
|
|
transform: scaleX(0.2);
|
|
transform-origin: left;
|
|
transition: transform 240ms ease;
|
|
}
|
|
.featured:hover {
|
|
background: var(--charcoal);
|
|
border-color: var(--agent-accent, var(--gold));
|
|
transform: translateY(-2px);
|
|
}
|
|
.featured:hover::before {
|
|
transform: scaleX(1);
|
|
}
|
|
|
|
.featuredHead {
|
|
display: flex;
|
|
gap: 14px;
|
|
align-items: center;
|
|
}
|
|
.featuredLogo {
|
|
width: 56px;
|
|
height: 56px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 10px;
|
|
overflow: hidden;
|
|
background: var(--abyss);
|
|
border: 1px solid var(--charcoal);
|
|
flex-shrink: 0;
|
|
}
|
|
.featuredLogo img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
.featuredMeta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
.featuredSub {
|
|
font-size: 10px;
|
|
letter-spacing: 0.96px;
|
|
color: var(--agent-accent, var(--gold));
|
|
text-transform: uppercase;
|
|
font-weight: 700;
|
|
}
|
|
.featuredName {
|
|
font-size: 20px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.01em;
|
|
color: var(--white);
|
|
}
|
|
.featuredFrom {
|
|
font-size: 10.5px;
|
|
letter-spacing: 0.96px;
|
|
color: var(--ash);
|
|
text-transform: uppercase;
|
|
}
|
|
.featuredPitch {
|
|
margin: 0;
|
|
font-size: 12.5px;
|
|
letter-spacing: 0.12px;
|
|
color: var(--steel);
|
|
text-transform: uppercase;
|
|
line-height: 1.55;
|
|
}
|
|
.featuredArrow {
|
|
position: absolute;
|
|
top: 16px;
|
|
right: 20px;
|
|
font-size: 18px;
|
|
color: var(--ash);
|
|
transition: color 180ms ease, transform 180ms ease;
|
|
}
|
|
.featured:hover .featuredArrow {
|
|
color: var(--agent-accent, var(--gold));
|
|
transform: translate(2px, -2px);
|
|
}
|
|
|
|
/* Marquee */
|
|
.marqueeWrap {
|
|
position: relative;
|
|
overflow: hidden;
|
|
padding: 4px 0;
|
|
max-width: 100vw;
|
|
margin: 0 auto;
|
|
}
|
|
.fadeLeft,
|
|
.fadeRight {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 120px;
|
|
pointer-events: none;
|
|
z-index: 2;
|
|
}
|
|
.fadeLeft {
|
|
left: 0;
|
|
background: linear-gradient(90deg, var(--abyss) 0%, rgba(0, 0, 0, 0) 100%);
|
|
}
|
|
.fadeRight {
|
|
right: 0;
|
|
background: linear-gradient(270deg, var(--abyss) 0%, rgba(0, 0, 0, 0) 100%);
|
|
}
|
|
.marquee {
|
|
display: flex;
|
|
gap: 16px;
|
|
width: max-content;
|
|
animation: scroll 48s linear infinite;
|
|
padding: 0 20px;
|
|
}
|
|
.marqueeWrap:hover .marquee {
|
|
animation-play-state: paused;
|
|
}
|
|
@keyframes scroll {
|
|
0% {
|
|
transform: translateX(0);
|
|
}
|
|
100% {
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
|
|
.tile {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 14px 18px;
|
|
background: var(--iron);
|
|
border: 1px solid var(--charcoal);
|
|
color: var(--white);
|
|
text-decoration: none;
|
|
flex-shrink: 0;
|
|
transition:
|
|
border-color 180ms ease,
|
|
background 180ms ease;
|
|
}
|
|
.tile:hover {
|
|
border-color: var(--agent-accent, var(--gold));
|
|
background: var(--charcoal);
|
|
}
|
|
.tileLogo {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
background: var(--abyss);
|
|
flex-shrink: 0;
|
|
object-fit: cover;
|
|
}
|
|
.tileMeta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
.tileName {
|
|
font-size: 13.5px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.01em;
|
|
color: var(--white);
|
|
text-transform: uppercase;
|
|
}
|
|
.tileFrom {
|
|
font-size: 10px;
|
|
letter-spacing: 0.96px;
|
|
color: var(--ash);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.featuredRow {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.featuredRow {
|
|
padding: 0 20px;
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.fadeLeft,
|
|
.fadeRight {
|
|
width: 60px;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.marquee {
|
|
animation: none;
|
|
}
|
|
}
|