- CSS 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The stone-150 (#ECEAE3) panel tone was bright enough for body
content but too warm/dim under the GitHub-light chroma palette —
syntax tokens read as barely-tinted greys. Same surface tone made
dropdown popovers blend into the body, and ink-alpha-10 selected
state vanished against the muted bg.
- --color-code-bg + --color-markup-code-block → stone-50
Code panels lift off body; chroma palette regains its punch.
- .ui.dropdown .menu { background: stone-50 } direct override
Popovers lift; --color-menu untouched (navbar stays as-is).
- Selected/active item: ink-alpha-10/20 → 20/30
Highlight is visible against the brighter popover.
Dark theme unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
| .gitignore | ||
| deployment-patch.yaml | ||
| PROD_PLAN.md | ||
| README.md | ||
| theme-podesta-auto.css | ||
| theme-podesta-dark.css | ||
| theme-podesta-light.css | ||
Podesta — Forgejo theme
A Forgejo 15+ theme that applies the Podesta design system (stone / ink / oxblood, Source Serif 4 + Inter + JetBrains Mono, "float" surfaces with hairline shadow, no aggressive borders) to code.podesta.ai.
Files
| File | Purpose |
|---|---|
theme-podesta-light.css |
Light mode — stone-100 body, ink-500 primary, oxblood-500 accent. |
theme-podesta-dark.css |
Dark mode — ink-700 body, stone-100 primary, oxblood-300 accent. |
theme-podesta-auto.css |
Light by default, switches via prefers-color-scheme: dark. |
The three are independent — there is no shared sidecar. Edit values in theme-podesta-light.css and mirror to theme-podesta-auto.css (the :root { ... } block) if you change anchored tokens.
Install (local Forgejo, manual)
- Drop the three CSS files into
$GITEA_CUSTOM/public/assets/css/. On the prod pod that resolves to/data/gitea/public/assets/css/. - Add the theme names to the allowed list and (optionally) the default. In
app.ini:
…or via env (this is what the prod deployment uses):[ui] THEMES = forgejo-auto,forgejo-light,forgejo-dark,podesta-auto,podesta-light,podesta-dark DEFAULT_THEME = podesta-autoFORGEJO__ui__THEMES=forgejo-auto,forgejo-light,forgejo-dark,podesta-auto,podesta-light,podesta-dark FORGEJO__ui__DEFAULT_THEME=podesta-auto - Restart the Forgejo pod for the env-var change. The CSS files themselves are static assets and don't require a restart.
- Per-user pickup: each existing user keeps their old theme until they switch in Settings → Appearance.
Install (this cluster, GitOps via submodule)
This repo is consumed by PodestaAI/infra as a git submodule at apps/forgejo/themes/. ArgoCD watches infra; bumping the submodule pointer is the deploy mechanism. The full one-time setup, day-2 loop, rollback, and risk notes are in PROD_PLAN.md. Quick version:
infra/apps/forgejo/kustomization.yamldeclares aconfigMapGeneratorthat points atthemes/theme-podesta-{light,dark,auto}.cssand a strategic-merge patch atthemes/deployment-patch.yaml.themes/is the submodule pinned to a commit on this repo'smain.- Day-2 update: edit + commit + push here →
git pullthe submodule in infra → commit the new pointer → push infra → ArgoCD rolls Forgejo.
deployment-patch.yaml in this directory is the strategic-merge patch — three subPath volumeMounts plus the FORGEJO__ui__THEMES and FORGEJO__ui__DEFAULT_THEME env vars. It is consumed from inside the submodule, so this repo and the patch always travel together.
Design notes
The theme overrides Forgejo's primary palette (--color-primary-* was a terracotta #c2410c) with ink-500 (#1A2540), and remaps the entire --zinc-* ramp to a warm stone equivalent so all downstream semantic tokens (--color-button, --color-nav-bg, --color-card, etc.) inherit the warm surface. The terracotta-orange accent is retired on purpose — the brand calls for stone-grey + ink-blue + a single oxblood mark, not a third heat color.
Pills: still allowed on nav chips and status indicators (consistent with the May 2026 "more rounded" directive in colors_and_type.css). Cards and content blocks use --border-radius-medium: 12px rather than fully rounded.
The semantic signal palette (red / green / yellow / blue) was retuned: brighter Tailwind defaults give way to muted, AA-on-stone equivalents (#9C2A2A, #2F6F4E, #7A5A18, #2B4F8F). Diff colors are washed — closer to a redlined research paper than a SaaS pull-request UI.
Caveats
- Source Serif 4 / Inter / JetBrains Mono are loaded via the Google Fonts CDN. If you need a self-hosted setup, drop the WOFF2 files into
$GITEA_CUSTOM/public/assets/fonts/and replace the@importat the top of each theme file with local@font-facedeclarations. - Source Serif 4 is the open-source substitute for Tiempos Headline (named in the brief). If a Tiempos license is procured, only the
@importline and the serif fallback stack need to change. - The theme overrides the bare CSS surface; it does not patch Fomantic UI components beyond the seven highest-impact selectors (segments / cards, primary buttons, links, page chrome, repo-file rows, code blocks, inputs). Edge surfaces (project boards, complex dropdowns, the Markdown WYSIWYG toolbar) inherit from the variable remapping but were not hand-tuned. Stress-test these in product before declaring done.
- Dark-mode contrast was verified for the canonical surfaces; complex composed surfaces (e.g., diff hunks with both added and moved rows) should be re-checked under WCAG AA before being declared production-ready.
Reference
- Korda Design System bundle:
colors_and_type.css,ui_kits/marketing/index.html,preview/components-*.html. - Forgejo theme variable reference:
/var/lib/gitea/public/assets/css/theme-forgejo-light.cssinside the running container (extract viaforgejo embedded view).