diff --git a/examples/apps/img/icons/adforge.png b/examples/apps/img/icons/adforge.png new file mode 100644 index 0000000..0bba50e Binary files /dev/null and b/examples/apps/img/icons/adforge.png differ diff --git a/examples/apps/img/icons/adgen.png b/examples/apps/img/icons/adgen.png new file mode 100644 index 0000000..b65b999 Binary files /dev/null and b/examples/apps/img/icons/adgen.png differ diff --git a/examples/apps/img/icons/adpulse.png b/examples/apps/img/icons/adpulse.png new file mode 100644 index 0000000..9f26af7 Binary files /dev/null and b/examples/apps/img/icons/adpulse.png differ diff --git a/examples/apps/img/icons/aplus.png b/examples/apps/img/icons/aplus.png new file mode 100644 index 0000000..2a43342 Binary files /dev/null and b/examples/apps/img/icons/aplus.png differ diff --git a/examples/apps/img/icons/arcana.png b/examples/apps/img/icons/arcana.png new file mode 100644 index 0000000..707e97a Binary files /dev/null and b/examples/apps/img/icons/arcana.png differ diff --git a/examples/apps/img/icons/bank.png b/examples/apps/img/icons/bank.png new file mode 100644 index 0000000..18b02d0 Binary files /dev/null and b/examples/apps/img/icons/bank.png differ diff --git a/examples/apps/img/icons/batch.png b/examples/apps/img/icons/batch.png new file mode 100644 index 0000000..40a7aca Binary files /dev/null and b/examples/apps/img/icons/batch.png differ diff --git a/examples/apps/img/icons/brandbrain.png b/examples/apps/img/icons/brandbrain.png new file mode 100644 index 0000000..87b1201 Binary files /dev/null and b/examples/apps/img/icons/brandbrain.png differ diff --git a/examples/apps/img/icons/capp.png b/examples/apps/img/icons/capp.png new file mode 100644 index 0000000..f6fba0f Binary files /dev/null and b/examples/apps/img/icons/capp.png differ diff --git a/examples/apps/img/icons/cartridge.png b/examples/apps/img/icons/cartridge.png new file mode 100644 index 0000000..4322e50 Binary files /dev/null and b/examples/apps/img/icons/cartridge.png differ diff --git a/examples/apps/img/icons/cast.png b/examples/apps/img/icons/cast.png new file mode 100644 index 0000000..9619394 Binary files /dev/null and b/examples/apps/img/icons/cast.png differ diff --git a/examples/apps/img/icons/feature.png b/examples/apps/img/icons/feature.png new file mode 100644 index 0000000..353aa61 Binary files /dev/null and b/examples/apps/img/icons/feature.png differ diff --git a/examples/apps/img/icons/hardware.png b/examples/apps/img/icons/hardware.png new file mode 100644 index 0000000..1506832 Binary files /dev/null and b/examples/apps/img/icons/hardware.png differ diff --git a/examples/apps/img/icons/huddle.png b/examples/apps/img/icons/huddle.png new file mode 100644 index 0000000..8f2b8c8 Binary files /dev/null and b/examples/apps/img/icons/huddle.png differ diff --git a/examples/apps/img/icons/ideabrain.png b/examples/apps/img/icons/ideabrain.png new file mode 100644 index 0000000..f9bf530 Binary files /dev/null and b/examples/apps/img/icons/ideabrain.png differ diff --git a/examples/apps/img/icons/identity.png b/examples/apps/img/icons/identity.png new file mode 100644 index 0000000..14042a2 Binary files /dev/null and b/examples/apps/img/icons/identity.png differ diff --git a/examples/apps/img/icons/marquee.png b/examples/apps/img/icons/marquee.png new file mode 100644 index 0000000..8cedd99 Binary files /dev/null and b/examples/apps/img/icons/marquee.png differ diff --git a/examples/apps/img/icons/mkt.png b/examples/apps/img/icons/mkt.png new file mode 100644 index 0000000..d2c55dc Binary files /dev/null and b/examples/apps/img/icons/mkt.png differ diff --git a/examples/apps/img/icons/natal.png b/examples/apps/img/icons/natal.png new file mode 100644 index 0000000..67f81bf Binary files /dev/null and b/examples/apps/img/icons/natal.png differ diff --git a/examples/apps/img/icons/prism.png b/examples/apps/img/icons/prism.png new file mode 100644 index 0000000..89e0410 Binary files /dev/null and b/examples/apps/img/icons/prism.png differ diff --git a/examples/apps/img/icons/redline.png b/examples/apps/img/icons/redline.png new file mode 100644 index 0000000..be02167 Binary files /dev/null and b/examples/apps/img/icons/redline.png differ diff --git a/examples/apps/img/icons/reel.png b/examples/apps/img/icons/reel.png new file mode 100644 index 0000000..acc263d Binary files /dev/null and b/examples/apps/img/icons/reel.png differ diff --git a/examples/apps/img/icons/retail.png b/examples/apps/img/icons/retail.png new file mode 100644 index 0000000..12c0ce1 Binary files /dev/null and b/examples/apps/img/icons/retail.png differ diff --git a/examples/apps/img/icons/saas.png b/examples/apps/img/icons/saas.png new file mode 100644 index 0000000..6cba8f8 Binary files /dev/null and b/examples/apps/img/icons/saas.png differ diff --git a/examples/apps/img/icons/shelf.png b/examples/apps/img/icons/shelf.png new file mode 100644 index 0000000..a9eaee3 Binary files /dev/null and b/examples/apps/img/icons/shelf.png differ diff --git a/examples/apps/img/icons/studio.png b/examples/apps/img/icons/studio.png new file mode 100644 index 0000000..280737b Binary files /dev/null and b/examples/apps/img/icons/studio.png differ diff --git a/examples/apps/img/icons/take.png b/examples/apps/img/icons/take.png new file mode 100644 index 0000000..1d78004 Binary files /dev/null and b/examples/apps/img/icons/take.png differ diff --git a/examples/apps/index.html b/examples/apps/index.html index 236dfce..bc88b61 100644 --- a/examples/apps/index.html +++ b/examples/apps/index.html @@ -340,8 +340,11 @@ .hero-h .hl{color:var(--ink-2)} .hero-sub{color:var(--ink-2);max-width:64ch;margin:18px 0 24px;font-size:15px;line-height:1.62} .hero-sub b{color:var(--ink);font-weight:600} + .hero-ctas{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:4px} .hero-cta{display:inline-flex;align-items:center;gap:9px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-pill);padding:13px 20px;font:600 14px/1 var(--font-sans);cursor:pointer} .hero-cta:hover{background:var(--accent-hover)} + .hero-cta.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)} + .hero-cta.ghost:hover{background:var(--card);box-shadow:inset 0 0 0 1px var(--faint)} .way{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 4px} .step{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px;cursor:pointer;transition:transform .12s,border-color .12s} @@ -390,8 +393,27 @@ background:radial-gradient(130% 120% at 50% -10%, color-mix(in srgb, var(--fam,#2E8B6A) 26%, transparent), transparent 60%)} .thumb::after{content:"";position:absolute;inset:0;box-shadow:0 1px 0 rgba(255,255,255,.03) inset;pointer-events:none;border-radius:inherit;z-index:2} - /* ============================ RECENTLY ADDED (icons list) ============================ */ - #recent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px} + /* ============================ NEW ADDITIONS (compact directory strip) ============================ */ + .na-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:40px 0 22px} + .na-title{margin:0;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.025em} + .na-nav{display:flex;gap:8px} + .na-btn{width:33px;height:33px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--ink-2); + cursor:pointer;display:grid;place-items:center;font-size:17px;line-height:1;transition:border-color .12s,color .12s,background .12s} + .na-btn:hover{border-color:var(--line-2);color:var(--ink)} + .na-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 40px} + .na-item{display:flex;align-items:center;gap:14px;min-width:0;padding:4px 2px;border-radius:12px;transition:transform .12s} + .na-item:hover{transform:translateY(-1px)} + .na-item .ic{flex:none} + .na-tx{min-width:0} + .na-n{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink)} + .na-n .verify{width:12px;height:12px} + .na-item:hover .na-n{color:var(--accent-hover)} + .na-c{display:block;font-size:13px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} + @media(max-width:1100px){ .na-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px} } + @media(max-width:560px){ .na-grid{grid-template-columns:minmax(0,1fr)} } + + /* ============================ RECENTLY ADDED (legacy icons list) ============================ */ + #recent-list.legacy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px} .recent-row{display:flex;align-items:center;gap:12px;padding:11px 6px;border-bottom:1px solid var(--line);min-width:0} .recent-row:hover{background:var(--card)} .recent-row .ic{width:34px;height:34px;border-radius:var(--r-sm);flex:none} @@ -419,6 +441,9 @@ .cat-tag{display:inline-block;font:600 9px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:4px 7px} .pro-pill{font:600 8.5px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--sim);background:var(--sim-bg);border:1px solid rgba(200,162,75,.28);border-radius:5px;padding:4px 7px} .ic{display:grid;place-items:center} + /* real generated icon PNGs — trimmed to the tile, so object-fit fills the rounded box */ + .ic-img{overflow:hidden;background:transparent;box-shadow:0 2px 7px -3px rgba(0,0,0,.6)} + .ic-img img{width:100%;height:100%;object-fit:cover;display:block} .cost{display:block;margin-top:8px;font:500 9.5px/1 var(--font-mono);color:var(--faint);font-variant-numeric:tabular-nums; white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%} @@ -609,20 +634,44 @@ .hero-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:46px;align-items:center} .hero-copy{min-width:0} .hero-art{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0} - .hero-art a{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r); + .hero-art:not(.spotlight) a{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r); overflow:hidden;box-shadow:var(--shadow);transition:transform .14s,border-color .14s} - .hero-art a:hover{transform:translateY(-3px);border-color:var(--line-2)} - .hero-art .thumb{border-radius:0} - .hero-art .cap{display:flex;align-items:center;gap:8px;padding:9px 11px} - .hero-art .cap .ic{width:22px;height:22px;border-radius:7px;flex:none} - .hero-art .cap .ic svg{width:56%;height:56%} - .hero-art .cap .nm{font-family:var(--font-display);font-size:12.5px;font-weight:600;letter-spacing:-.01em; + .hero-art:not(.spotlight) a:hover{transform:translateY(-3px);border-color:var(--line-2)} + .hero-art:not(.spotlight) .thumb{border-radius:0} + .hero-art:not(.spotlight) .cap{display:flex;align-items:center;gap:8px;padding:9px 11px} + .hero-art:not(.spotlight) .cap .ic{width:22px;height:22px;border-radius:7px;flex:none} + .hero-art:not(.spotlight) .cap .ic svg{width:56%;height:56%} + .hero-art:not(.spotlight) .cap .nm{font-family:var(--font-display);font-size:12.5px;font-weight:600;letter-spacing:-.01em; overflow:hidden;text-overflow:ellipsis;white-space:nowrap} @media(max-width:1180px){ .hero-row{grid-template-columns:minmax(0,1fr);gap:34px} .hero-art{grid-template-columns:repeat(4,1fr)} } @media(max-width:640px){ .hero-art{grid-template-columns:1fr 1fr} } + /* hero SPOTLIGHT — one big brandbrain preview is the clearest "start here" on the page */ + .hero-art.spotlight{display:block} + @media(max-width:1180px){ .hero-art.spotlight{max-width:560px} } + .hero-art.spotlight a.hero-star{position:relative;display:block;background:var(--card);border:1px solid var(--line); + border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .14s,border-color .14s,box-shadow .14s} + .hero-art.spotlight a.hero-star:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:var(--shadow-pop)} + .hero-art.spotlight .hero-star .thumb{border-radius:0;aspect-ratio:16/10} + .hs-badge{position:absolute;top:12px;left:12px;z-index:3;font:600 9.5px/1 var(--font-sans);letter-spacing:.13em; + text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:var(--r-pill);padding:6px 11px} + .hs-cap{display:flex;align-items:center;gap:12px;padding:13px 15px} + .hs-cap .ic{flex:none} + .hs-t{min-width:0;flex:1} + .hs-n{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-.01em} + .hs-d{display:block;font-size:12.5px;color:var(--ink-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} + .hs-go{flex:none;font:600 12.5px/1 var(--font-sans);color:var(--ink);background:var(--card-2);border:1px solid var(--line-2); + border-radius:var(--r-pill);padding:8px 13px;transition:background .14s,color .14s,border-color .14s} + .hero-star:hover .hs-go{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)} + .hero-next{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap} + .hn-chip{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line); + border-radius:var(--r-pill);padding:6px 13px 6px 6px;transition:border-color .14s,transform .14s} + .hn-chip:hover{border-color:var(--line-2);transform:translateY(-2px)} + .hn-chip .ic{flex:none} + .hn-n{font:600 12px/1 var(--font-sans);color:var(--ink-2)} + .hn-chip:hover .hn-n{color:var(--ink)} /* the why cards reuse .card/.grid; only the old/new contrast pair is new */ .why-grid{grid-template-columns:repeat(3,minmax(0,1fr))} .card.why{cursor:default} @@ -836,8 +885,11 @@
Open source · runs on the Claude you already pay for
Every AI app asks you to start over — a new account, a new subscription, a new copy of everything you've already explained. Switchboard sits in between: you connect your own Claude once, and all 27 apps here run on that one connection. Nothing you type reaches a server of ours.
- -Free. No account. Takes about two minutes.
+Free · runs on the Claude you already pay for · no account. brandbrain is the one to start with.
- -Everywhere else: every app is another signup, another password, another company holding a login.
-Here: no account with us, and none with any app. You bring the Claude account you already have.
-Everywhere else: their model, their key, their markup — a second bill stacked on the AI you already pay for.
-Here: your Claude is already paid for and sitting idle. Apps spend that quota, and we never touch the transaction.
-Everywhere else: each app learns your business from scratch, so you explain it again for the third time.
-Here: your context lives in a folder on your machine. You lend it to an app for one job, and it hands it back.
-To be exact: each tile is the app's real landing page loading live in this page. It is a live preview of a real app, not the app doing your work — that starts when you open one.
-Every wrapp on the board today is built by us. Third-party wrapps will run inside an isolated runner that cannot phone home — that runner is designed and not yet built, which is exactly why the board is first-party today.
- - -Six of these are ideabrain opened to one kind of idea, not six separate apps. They get their own tile because they are their own front door, and we say it here because you would work it out in three clicks anyway.
- -The first three cords
-Consumer brands, built on receipts — white space, every decision locked, launch. On your Claude.
- - -Not a company yet? Research, a playbook for your kind of idea, a deck, and who to reach out to.
- - -Notes, tasks and [[links]] in plain .md you own — a second brain you can actually ask.
- + +Newest on the board
- - - +Everywhere else: every app is another signup, another password, another company holding a login.
+Here: no account with us, and none with any app. You bring the Claude account you already have.
+Everywhere else: their model, their key, their markup — a second bill stacked on the AI you already pay for.
+Here: your Claude is already paid for and sitting idle. Apps spend that quota, and we never touch the transaction.
+Everywhere else: each app learns your business from scratch, so you explain it again for the third time.
+Here: your context lives in a folder on your machine. You lend it to an app for one job, and it hands it back.
+