Skip to content

docs: brand and theme refresh#168

Open
recoupableorg wants to merge 2 commits intomainfrom
feat/docs-brand
Open

docs: brand and theme refresh#168
recoupableorg wants to merge 2 commits intomainfrom
feat/docs-brand

Conversation

@recoupableorg
Copy link
Copy Markdown
Contributor

@recoupableorg recoupableorg commented Apr 27, 2026

Summary

Pure visual refresh of the docs site — no content or navigation changes. This is the first of a 7-PR stack splitting the original combined design overhaul (#145) into focused, reviewable units.

Changes

  • Theme: mintsequoia
  • Colors: green palette → achromatic (primary: #0a0a0a, light: #ededed)
  • Background: light #f3f3f3 / dark #171717 (matches Mintlify's gray-50 / gray-900 chrome so the page background blends with the tab bar)
  • Fonts: Geist (body), Geist Pixel Square (headings); also includes Geist Mono, Instrument Serif, and Plus Jakarta Sans for use within MDX
  • Logo: new wordmark SVGs (wordmark-lightmode.svg, wordmark-darkmode.svg) plus icon-only variants; removes the old dark.png and light.svg
  • Appearance: default to system theme (respects OS preference)
  • Misc: breadcrumbs eyebrows, dark codeblocks, lucide icons

What this PR does NOT change

navigation, navbar, contextual, footer, and metatags are byte-identical to main. Confirmed via:

```bash
diff <(jq .navigation docs.json) <(git show origin/main:docs.json | jq .navigation)

(no output — identical)

```

Content reorganization, Skills tab, agent-onboarding overhaul, and CLI/MCP page rewrites all land in subsequent stack PRs.

Reviewability

  • ~21 file additions/deletions in fonts/ and logo/ (binary assets)
  • 1 file modified (docs.json) — pure brand fields
  • 0 changes to content semantics

Should be reviewable by screenshot — either you like the new look or you don't.

Stack

This is PR 1 of 7. Replaces #145 (combined). Other PRs in the stack:

  • PR 2: CLI accuracy
  • PR 3: MCP tool catalog
  • PR 4: Content & OpenAPI cleanup
  • PR 5: Agent-first onboarding
  • PR 6: Skills system
  • PR 7: Navigation restructure

Each is independent and reviewable on its own.

Test plan

  • Local Mintlify dev renders without errors
  • Light/dark mode both look right
  • Fonts load (no FOUC, no fallback)
  • Logo renders in both modes
  • Navigation looks unchanged from main (since this PR doesn't touch nav)

Made with Cursor

Summary by CodeRabbit

  • New Features

    • Added system appearance detection for automatic light/dark mode switching
    • Integrated Lucide icon library
    • Introduced Instrument Serif font
  • Style

    • Updated design theme with new color palette (near-black and light neutrals)
    • Refreshed logo with light and dark mode variants
    • Enhanced styling for breadcrumbs and code blocks

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Warning

Rate limit exceeded

@recoupableorg has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 49 minutes and 12 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d007dd21-0c6f-4d05-8d0b-5994525cb469

📥 Commits

Reviewing files that changed from the base of the PR and between c79b78a and 0d67a84.

⛔ Files ignored due to path filters (20)
  • favicon.ico is excluded by !**/*.ico
  • fonts/Geist/Geist-Variable.woff2 is excluded by !**/*.woff2
  • fonts/Geist/Geist-VariableItalic.woff2 is excluded by !**/*.woff2
  • fonts/GeistMono/GeistMono-Variable.woff2 is excluded by !**/*.woff2
  • fonts/GeistMono/GeistMono-VariableItalic.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Circle.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Grid.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Line.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Square.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Triangle.woff2 is excluded by !**/*.woff2
  • fonts/InstrumentSerif/InstrumentSerif-Italic.ttf is excluded by !**/*.ttf
  • fonts/InstrumentSerif/InstrumentSerif-Regular.ttf is excluded by !**/*.ttf
  • fonts/PlusJakartaSans/PlusJakartaSans-Variable.ttf is excluded by !**/*.ttf
  • fonts/PlusJakartaSans/PlusJakartaSans-VariableItalic.ttf is excluded by !**/*.ttf
  • logo/dark.png is excluded by !**/*.png
  • logo/icon-darkmode.svg is excluded by !**/*.svg
  • logo/icon-lightmode.svg is excluded by !**/*.svg
  • logo/light.svg is excluded by !**/*.svg
  • logo/wordmark-darkmode.svg is excluded by !**/*.svg
  • logo/wordmark-lightmode.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • docs.json
  • fonts/InstrumentSerif/OFL.txt
📝 Walkthrough

Walkthrough

The documentation site configuration is updated to use the "sequoia" theme with a revised color palette, new typography settings with custom font loading, and explicit light/dark mode styling. Additionally, a SIL Open Font License is added for the Instrument Serif font asset.

Changes

Cohort / File(s) Summary
Documentation Configuration
docs.json
Theme switched from "mint" to "sequoia"; colors palette updated (primary/light/dark now set to near-black and light neutrals); UI configuration added including appearance mode, custom font loading (woff2), background colors, breadcrumb styling, dark code block styling, icon library set to lucide, and logo pointing to new wordmark assets with href to recoupable.com.
Font Licensing
fonts/InstrumentSerif/OFL.txt
New SIL Open Font License (v1.1) file added covering permissions, conditions, termination, and warranty/disclaimer terms for Instrument Serif font.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Sequoia whispers, theme so new,
With fonts that dance in darkest hue,
A license penned, serif so fair,
Our docs now glow beyond compare!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: brand and theme refresh' accurately captures the main changes: a theme switch from mint to sequoia, color palette updates, and new branding assets including fonts and logos.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/docs-brand

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs.json (1)

3-9: Brand palette aligns with the achromatic design system — LGTM.

theme: sequoia plus primary #0a0a0a / light #ededed / dark #0a0a0a matches the documented Recoup brand direction. Note: the repo coding guidelines still mention #345A5D from Recoup-Chat's tailwind config; consider updating AGENTS.md/coding guidelines in a follow-up so the guideline reflects the current achromatic palette and stops contradicting docs.json.

Based on learnings: "The primary brand color is #0a0a0a (achromatic design system), NOT #345A5D. … The theme is 'sequoia'."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs.json` around lines 3 - 9, Update the repository documentation to reflect
the new achromatic brand palette declared in docs.json (theme: "sequoia",
colors.primary: "#0a0a0a", colors.light: "#ededed", colors.dark: "#0a0a0a") by
removing or replacing references to the old Recoup-Chat color "#345A5D" in the
coding guidelines; specifically edit AGENTS.md and any coding-guidelines or
style-guide docs to state the primary brand color is `#0a0a0a` and the theme is
"sequoia" so the docs no longer contradict docs.json.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs.json`:
- Around line 3-9: Update the repository documentation to reflect the new
achromatic brand palette declared in docs.json (theme: "sequoia",
colors.primary: "#0a0a0a", colors.light: "#ededed", colors.dark: "#0a0a0a") by
removing or replacing references to the old Recoup-Chat color "#345A5D" in the
coding guidelines; specifically edit AGENTS.md and any coding-guidelines or
style-guide docs to state the primary brand color is `#0a0a0a` and the theme is
"sequoia" so the docs no longer contradict docs.json.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4cc50152-0543-4bb8-b036-1635550ebe20

📥 Commits

Reviewing files that changed from the base of the PR and between 8c86eda and c79b78a.

⛔ Files ignored due to path filters (19)
  • fonts/Geist/Geist-Variable.woff2 is excluded by !**/*.woff2
  • fonts/Geist/Geist-VariableItalic.woff2 is excluded by !**/*.woff2
  • fonts/GeistMono/GeistMono-Variable.woff2 is excluded by !**/*.woff2
  • fonts/GeistMono/GeistMono-VariableItalic.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Circle.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Grid.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Line.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Square.woff2 is excluded by !**/*.woff2
  • fonts/GeistPixel/GeistPixel-Triangle.woff2 is excluded by !**/*.woff2
  • fonts/InstrumentSerif/InstrumentSerif-Italic.ttf is excluded by !**/*.ttf
  • fonts/InstrumentSerif/InstrumentSerif-Regular.ttf is excluded by !**/*.ttf
  • fonts/PlusJakartaSans/PlusJakartaSans-Variable.ttf is excluded by !**/*.ttf
  • fonts/PlusJakartaSans/PlusJakartaSans-VariableItalic.ttf is excluded by !**/*.ttf
  • logo/dark.png is excluded by !**/*.png
  • logo/icon-darkmode.svg is excluded by !**/*.svg
  • logo/icon-lightmode.svg is excluded by !**/*.svg
  • logo/light.svg is excluded by !**/*.svg
  • logo/wordmark-darkmode.svg is excluded by !**/*.svg
  • logo/wordmark-lightmode.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • docs.json
  • fonts/InstrumentSerif/OFL.txt

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 21 files

Pure visual update — no content or navigation changes.

- theme: mint → sequoia
- colors: green palette → achromatic (primary #0a0a0a, light #ededed)
- background: light #f3f3f3 / dark #171717 (matches Mintlify's
  gray-50 / gray-900 chrome so the page bg blends with the tab bar)
- fonts: Geist (body), Geist Pixel Square (headings); also adds
  GeistMono, Instrument Serif, Plus Jakarta Sans for use in MDX
- appearance: default system (respects OS dark/light pref)
- styling: eyebrows as breadcrumbs, codeblocks dark by default
- icons: lucide library
- logo: replace dark.png + light.svg with wordmark-lightmode.svg /
  wordmark-darkmode.svg (full wordmark) plus icon-only variants

Adds the woff2/ttf font files in fonts/ and the new SVG logos in
logo/. Removes the old PNG/SVG logos.

navigation, navbar, footer, and metatags are byte-identical to main —
this PR intentionally does not change content surface or info
architecture. Those land in subsequent stack PRs.

Made-with: Cursor
The favicon was still pointing at the legacy default favicon.ico
(15KB, dated April 18) — never updated when the rest of the brand
was. This PR's docs.json kept the same `favicon: "/favicon.ico"`
reference as main.

Three fixes:

1. Replace the bloated logo/icon-lightmode.svg (457KB — was a
   base64-embedded raster) with a clean 871-byte vector. The path
   data comes from icon-darkmode.svg with the fill swapped from
   white to #0a0a0a (the brand primary).

2. Switch docs.json to Mintlify's theme-aware favicon syntax so
   light-mode browsers use the dark-colored icon and dark-mode
   browsers use the white-on-transparent variant:

     "favicon": {
       "light": "/logo/icon-lightmode.svg",
       "dark":  "/logo/icon-darkmode.svg"
     }

3. Delete the now-unused root favicon.ico. Mintlify auto-generates
   /favicons/favicon-16x16.png, /favicon-32x32.png,
   /apple-touch-icon.png, and /favicon.ico from whatever's in the
   docs.json favicon config — keeping a stale .ico at the root just
   creates confusion.

Verified by curl-ing the dev server's auto-generated favicon
endpoints — sizes changed (15406 → 33310 bytes for favicon.ico),
confirming the new SVG is the source.

Made-with: Cursor
sidneyswift added a commit that referenced this pull request May 7, 2026
Triaged all 22 line-level comments (cubic-dev-ai + coderabbit). 7
implemented, 10 rejected with reason, 5 already-resolved by earlier
PR commits. Implemented:

#4 (skills/music-industry-research.mdx) — corrected `/research/*` to
`/api/research/*` so the path matches the rest of the docs.

#5 / #8 (api-reference/openapi/content.json:619) — POST
/api/content/create description said "Returns `{run_id}`" but the
202 response and schema return `runIds` (an array). Brought the
description into sync with the response shape so generated clients
and readers stop targeting the wrong field name.

#6 (authentication.mdx) — Bearer-token guidance was scoped to Privy
JWTs only, but MCP clients also pass an API key as a Bearer token
(per /mcp). Broadened the guidance and the comparison table row to
cover both cases.

#7 (agents.mdx Authenticate section) — auth steps walked through
the email-verification flow as if it applied universally, but the
documented throwaway agent+...@recoupable.com path returns the API
key immediately on signup with no code. Added an explicit note up
front and inline in step 1 that the agent+ path skips steps 2 and 3.

#9 (api-reference/openapi/content.json POST /api/content/video
description) — the description listed `prompt` as a mode for
"create a video from a text description", but the
ContentCreateVideoRequest schema requires `image_url` and explicitly
says "text-only prompt mode is not supported." Rewrote the
description to lead with the image_url requirement and updated each
mode's gloss to reflect what the model actually does (uses the image
as first frame / style ref / etc.).

#15 (quickstart.mdx) — `jq -r .api_key` silently returns "null" on
error responses (invalid code, expired code, rate limit) and
exports RECOUP_API_KEY=null, which fails confusingly downstream.
Switched to `jq -er '.api_key'` so the pipeline exits non-zero when
the field is missing or null.

#21 (credits.mdx Check your tier section) — documented
`GET /api/subscription/status` and an `isPro` field. Verified live:
endpoint returns 404 on api.recoupable.com AND on chat.recoupable.com,
and isPro doesn't appear in any OpenAPI spec. The handler exists in
chat/app/api/subscription/status/route.ts but isn't reachable as
documented. Replaced the curl block with guidance to check the
chat dashboard, with a note that a programmatic status endpoint is
on the roadmap.

Rejected with reason (10 comments):
- #1, #3 (mcp.mdx, agents.mdx > 100 lines): an arbitrary lint rule
  that doesn't apply to docs pages whose value is enumeration (tool
  catalogs, decision trees)
- #10 (releases.json profileUrls schema): real engineering question
  about whether to encode constraints in the schema; not a docs-only
  fix
- #11 (docs.json primary color #0a0a0a): intentional brand refresh
  per merged PR #168
- #13 (docs.json primary CTA /keys subpath): matches the "Get API
  Key" CTA copy, not a generic app entrypoint
- #16-#20 (kebab-case skill titles): explicit user choice; titles
  match URL slugs and the npx-skills `--skill <name>` install command

Already resolved by earlier PR commits (5 comments):
- #2, #12 (Instagram nav entries): removed in 318a555
- #14 (MCP host vs REST host): resolved in 1634ba6 — both on
  api.recoupable.com now
- #22 (credits.mdx host): resolved in 1634ba6 — bot's recommended
  direction would have been backwards
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants