feat(theme): switch default instance theme from navy to blue and enhance theme handling
- Updated the default `instance.theme` to `blue`, making it the new out-of-the-box look. The previous default `navy` can still be used by explicitly setting `AGNES_INSTANCE_THEME`. - Pre-login pages now respect the configured `instance.theme`, eliminating the abrupt color change after sign-in for navy-configured instances. - Adjusted documentation and code comments to reflect the new theme settings and their implications for existing instances. - Version bump to 0.55.6 to reflect these changes.
This commit is contained in:
parent
be9549c266
commit
94af2581f6
7 changed files with 34 additions and 18 deletions
15
CHANGELOG.md
15
CHANGELOG.md
|
|
@ -10,6 +10,21 @@ CalVer image tags (`stable-YYYY.MM.N`, `dev-YYYY.MM.N`) are produced for every C
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
- Default `instance.theme` flipped from `navy` to `blue`. The brand-blue
|
||||
palette is now the out-of-the-box look; `navy` (dark hero + mint-green
|
||||
CTAs) is the opt-in via `AGNES_INSTANCE_THEME` / `instance.theme`
|
||||
/ admin server-config. Existing instances that explicitly set `navy`
|
||||
are unaffected; instances relying on the implicit default will switch
|
||||
to blue.
|
||||
|
||||
### Fixed
|
||||
- Pre-login pages (`/login`, magic-link screens, first-time `/setup`)
|
||||
now honour the configured `instance.theme` instead of always
|
||||
rendering with the default `:root` palette. Eliminates the
|
||||
jarring blue → navy flip after sign-in on navy-configured
|
||||
instances.
|
||||
|
||||
### Added
|
||||
- New `marketplace.curators_url` config item (editable via
|
||||
`/admin/server-config` → **Marketplace** section). Drives the
|
||||
|
|
|
|||
|
|
@ -298,13 +298,13 @@ _KNOWN_FIELDS: dict[str, dict[str, dict]] = {
|
|||
# `app/instance_config.py::get_instance_theme()`.
|
||||
"theme": {
|
||||
"kind": "select",
|
||||
"options": ["navy", "blue"],
|
||||
"default": "navy",
|
||||
"options": ["blue", "navy"],
|
||||
"default": "blue",
|
||||
"hint": (
|
||||
"Page-hero colour scheme. `navy` (default) uses the "
|
||||
"dark navy hero gradient + mint-green CTAs and "
|
||||
"eyebrow accents. `blue` reverts to the pre-redesign "
|
||||
"brand-blue hero + blue CTAs."
|
||||
"Page-hero colour scheme. `blue` (default) uses the "
|
||||
"brand-blue hero + blue CTAs. `navy` opts into the "
|
||||
"darker palette with the dark navy hero gradient + "
|
||||
"mint-green CTAs and eyebrow accents."
|
||||
),
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -234,24 +234,25 @@ def get_instance_theme() -> str:
|
|||
(`--ds-*`) flips between palettes without touching markup.
|
||||
|
||||
Values:
|
||||
- ``navy`` — current default. Dark navy hero gradient,
|
||||
mint-green CTAs + eyebrow accents.
|
||||
- ``blue`` — pre-redesign palette. Brand-blue hero gradient,
|
||||
- ``blue`` — current default. Brand-blue hero gradient,
|
||||
blue CTAs, translucent-white eyebrow.
|
||||
- ``navy`` — darker palette opted into via server config.
|
||||
Dark navy hero gradient, mint-green CTAs +
|
||||
eyebrow accents.
|
||||
|
||||
Resolution: ``AGNES_INSTANCE_THEME`` env var
|
||||
(Terraform-friendly) > ``instance.theme`` in instance.yaml >
|
||||
default ``"navy"``. Unrecognised values fall back to ``"navy"``
|
||||
default ``"blue"``. Unrecognised values fall back to ``"blue"``
|
||||
so a typo doesn't silently break every page.
|
||||
"""
|
||||
raw = os.environ.get("AGNES_INSTANCE_THEME")
|
||||
if raw is None:
|
||||
raw = get_value("instance", "theme", default="navy")
|
||||
raw = get_value("instance", "theme", default="blue")
|
||||
if not isinstance(raw, str):
|
||||
return "navy"
|
||||
return "blue"
|
||||
value = raw.strip().lower()
|
||||
if value not in ("navy", "blue"):
|
||||
return "navy"
|
||||
return "blue"
|
||||
return value
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -491,8 +491,8 @@ def _build_context(
|
|||
"workspace_dir": get_workspace_dir_name(),
|
||||
# Active palette — drives `<html data-theme="...">` in
|
||||
# base.html so `--ds-*` tokens flip via CSS without
|
||||
# touching markup. "navy" (default) = current design;
|
||||
# "blue" = pre-redesign brand. Admin toggles via
|
||||
# touching markup. "blue" (default) = brand-blue palette;
|
||||
# "navy" = darker opt-in palette. Admin toggles via
|
||||
# /admin/server-config.
|
||||
"instance_theme": get_instance_theme(),
|
||||
# Whether /home renders the "Step 3 — turn on auto-accept mode"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="{{ instance_theme | default('navy') }}">
|
||||
<html lang="en" data-theme="{{ instance_theme | default('blue') }}">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="en" data-theme="{{ instance_theme | default('blue') }}">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
|
|
|||
2
uv.lock
2
uv.lock
|
|
@ -24,7 +24,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "agnes-the-ai-analyst"
|
||||
version = "0.55.5"
|
||||
version = "0.55.6"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "a2wsgi" },
|
||||
|
|
|
|||
Loading…
Reference in a new issue