Cream page background end-to-end: Dockerfile PWA colors, README, verify block
Follow-up to the custom.css/custom2.js change: the Dockerfile seds the web
manifest theme_color/background_color and the index.html light meta to
#eaf3ea, and the README's verify block asserted the green wash as correct
("an earlier version of this block asserted cream ... would have led you to
fix a correct deploy"). Both are the same regression: the wash was rejected
earlier, restored by accident, and then documented as intended.
- Dockerfile: manifest + index meta -> #faf8f5 (cream), with an explicit
"keep these three in sync" note (this sed, custom.css html:not(.dark),
custom2.js COOP_BG.light).
- README verify block: asserts cream again, plus a new step for the
install-time colors no DOM check covers (manifest + light meta).
- README palette section: hover is #f0ede6 not the wash; --presentation is
cream; source of truth is the DEPLOYED CSS of dashboard/portal/panel, with
the read command; records the shared 4.32:1 / 3.93:1 accessibility caveat;
notes that cloudron exec silently swallows multi-line sh -c.
This commit is contained in:
1 parent
3d03a80651
commit
d099d31f6a
2 files changed
+50
-28
No files matched your search
@@ -147,14 +147,19 @@ md5sum assets/custom.css
|
||||
# 3. Served HTML carries the injection
|
||||
curl -s https://chat.inference.coop/login | grep -Eo 'assets/custom2?\.js|assets/custom\.css'
|
||||
# 4. Rendered DOM shows it (browser devtools or a browser tool). The DEPLOYED
|
||||
# palette is the GREEN WASH with white text areas — an earlier version of this
|
||||
# block asserted cream (rgb(250,248,245)), which would have led you to "fix"
|
||||
# a correct deploy:
|
||||
# computed background of div.bg-surface-primary == rgb(234, 243, 234);
|
||||
# chat text areas / composer == rgb(255, 255, 255);
|
||||
# palette is CREAM with white text areas — the dashboard's own look. (An
|
||||
# intermediate version shipped the full green wash #eaf3ea as the page
|
||||
# background and read as "too green" — cream is the intended value, so this
|
||||
# block asserts cream; do not "fix" a cream deploy back to the wash):
|
||||
# computed background of div.bg-surface-primary == rgb(250, 248, 245);
|
||||
# chat text areas == rgb(255, 255, 255); composer band == cream;
|
||||
# dark scheme == rgb(34, 39, 31);
|
||||
# the "Don't have an account?" <p> computes display: none.
|
||||
# 5. The scheduler task's script exists in THIS image — a manifest repoint
|
||||
# 5. INSTALL-TIME colors, which no DOM check covers — the web manifest and the
|
||||
# index.html light meta must be #faf8f5, not the wash:
|
||||
curl -s https://chat.inference.coop/manifest.webmanifest | grep -o '"theme_color":"[^"]*"'
|
||||
curl -s https://chat.inference.coop/ | grep -o 'media="(prefers-color-scheme: light)" content="[^"]*"'
|
||||
# 6. The scheduler task's script exists in THIS image — a manifest repoint
|
||||
# deployed before its image lands leaves the key seed broken on schedule:
|
||||
cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" exec --app $APP \
|
||||
-- test -f /app/data/sync-keys.js && echo "seed path present"
|
||||
@@ -226,15 +231,17 @@ Set via `cloudron env set` (process env):
|
||||
Injected into the built SPA by the Dockerfile (`<link>` + `<script>` after
|
||||
the `<title>` sed). What it does:
|
||||
|
||||
**Palette (final)**: light `--surface-primary` is `250 248 245` (#faf8f5
|
||||
cream) — the dashboard's true page background (the green wash #eaf3ea was
|
||||
tried as the full background and rejected as too dark; on the dashboard the
|
||||
green is accent-only). Sidebar/composer box = white cards, tertiary = #f4f2ec
|
||||
(dashboard chips), hover = #eaf3ea green wash, border = #e4e0d8, chat text
|
||||
areas (`--surface-chat`, `--presentation`) = white. Green (#5b8c5a family)
|
||||
stays on accents: buttons, links, focus rings. Loading flash = cream.
|
||||
Dark mode: deep pine + green-light accents. Homepage variables remain the
|
||||
reference for other surfaces.
|
||||
**Palette (final, restored 2026-10-27)**: light `--surface-primary` is
|
||||
`250 248 245` (#faf8f5 cream) — the dashboard's true page background. Sibling
|
||||
surfaces: sidebar/composer box = white cards, tertiary = #f4f2ec (dashboard
|
||||
chips), hover = #f0ede6 (warm), border = #e4e0d8, `--surface-chat` = white,
|
||||
`--presentation` = cream (the composer band matches the page). Green
|
||||
(#5b8c5a family) stays on ACCENTS only: buttons, links (#4e7a4d), focus rings.
|
||||
Loading flash = cream. Dark mode: deep pine + green-light accents, unchanged.
|
||||
The green wash #eaf3ea is NOT a surface value anywhere — on the dashboard it
|
||||
appears only as badges/table headers. Applying it to `--surface-primary` is
|
||||
the regression that reads as "too green"; it was tried, rejected, restored by
|
||||
mistake in the Oct 21 rebuild, and removed again on Oct 27.
|
||||
|
||||
**Fonts**: Figtree (the homepage's OFL font) is self-hosted from the design
|
||||
kit (`assets/fonts/figtree-*.woff2` + OFL.txt, served at `/assets/fonts/`)
|
||||
@@ -253,13 +260,25 @@ footer tagline ("Every AI for Everyone.") with the co-op footer
|
||||
deleting stale `.gz`/`.br` siblings of edited files. Add new string
|
||||
replacements to the `REPLACEMENTS` list.
|
||||
|
||||
**Palette source of truth**: the co-op homepage's own CSS variables —
|
||||
`--cream #faf8f5` (surfaces), `--wash #eef4ea` (panels/hover),
|
||||
`--green-deep #5b8c5a` (primary/submit), `--green-mid #6ba86b` (hover),
|
||||
`--green-light #7ab87a` (dark-mode accent), `--ink #2d3327` (text),
|
||||
`--muted #6b7a62` (secondary text), `--border #e8e2d8`. The `html.light` /
|
||||
`html.dark` blocks in `custom.css` map these onto LibreChat's Tailwind
|
||||
variables; keep them in sync when the homepage palette changes.
|
||||
**Palette source of truth**: the DEPLOYED CSS of the co-op's own interfaces —
|
||||
dashboard, portal, panel — read from the running apps. All three are identical
|
||||
because they share one design system: `--cream #faf8f5` (page background),
|
||||
`#ffffff` (cards), `#f4f2ec`/`#f0ede6` (chips/hover), `--green-deep #5b8c5a`
|
||||
(primary/submit), `--green-mid #6ba86b` (hover), `--green-light #7ab87a`
|
||||
(dark-mode accent), `--ink #2d3327` (text), `--muted #6b7a62`, `--border
|
||||
#e4e0d8`, `--danger #b3543a`. Read them from the apps rather than trusting
|
||||
either this file or the homepage (which carries an older `--wash #eef4ea`):
|
||||
|
||||
cloudron exec --app <dashboard-id> -- sh -c \
|
||||
"grep -rhoE -- '--[a-z0-9-]+: *[^;]+' /app/code | sort -u"
|
||||
|
||||
The `html.light` / `html.dark` blocks in `custom.css` map these onto
|
||||
LibreChat's Tailwind variables; keep them in sync when the design system
|
||||
changes. `cloudron exec` swallows a multi-line `sh -c` silently — base64 the
|
||||
script or keep it one line. Shared accessibility caveat, all four interfaces
|
||||
(not chat-specific): `--muted` on cream is 4.32:1, just under AA for body
|
||||
text, and white-on-`green-deep` buttons are 3.93:1 — fix everywhere or
|
||||
nowhere, so the interfaces stay consistent.
|
||||
|
||||
**Logo & icons**: `assets/logo.svg` is the GREEN pine-dots vector (extracted
|
||||
from the homepage's inline SVG — keep the `xmlns` attribute, a standalone
|
||||
|
||||
Reference in new issue
Block a user