Skip to content

Farm branding surfaces: a compact sidebar mark + a home for the detailed logo (post-login splash) #179

Description

@mforce

Follow-up from #123 slice 3 (PR #177). Not a defect — the farm logo has exactly one home today (the sidebar), and that home suits only one kind of image.

What we learned by using it

The sidebar renders the logo in a small square slot (object-fit: contain, ~26px). That works for a compact single-element mark and fails for everything else:

  • A wide wordmark keeps its aspect and loses its height → a sliver.
  • A detailed illustration (a scene with several elements + text) shrinks to unreadable mush.
  • A square, simple mark (a symbol or single letter, tight-cropped) reads cleanly.

We now document that guidance (upload a square mark — settings screen, Help, GLOSSARY, PR #177), but documentation is a workaround. Farmers will keep uploading their real, detailed logo. The product should have a place for it.

Scope — three related pieces, do as much or little as fits

1. Sidebar: render a wide logo at natural aspect (the original #179)

.brand-logo is a fixed 26×26 square. Let it use height: ~24px; width: auto; max-width: ~140px so a wide mark uses the horizontal space instead of collapsing. Won't rescue a busy scene, but helps wordmarks.

  • web/src/components/FarmBrand.tsx, web/src/styles.css (.brand-logo, .brand, .brand-name).
  • Decide the name-vs-logo interaction: a wordmark already contains the farm name, so showing .brand-name beside it is redundant (keep both, or hide the text and move the name to alt).

2. A larger surface for the detailed logo — a post-login splash

A hero logo shines at size. Show it on a brief startup splash after login, before the dashboard renders — a full-size branded moment.

Hard constraint, state it up front: the login screen is pre-auth. It has no farm context and cannot call the auth-gated /account/logo (that endpoint needs the Authorization header — the reason the SPA fetches the logo through the API client and renders a blob URL). So a login-screen splash cannot show the farm's logo. Only a post-login surface (token in hand, farm resolved via FarmProvider) can. Build the splash there, or drop the idea — do not point it at the login screen.

  • Candidate: a transient splash in the authenticated shell on first load, using FarmProvider's farm + the same useLogoObjectUrl hook.
  • Open question: is a splash worth the interstitial delay, or is a large branded panel somewhere in-app (a farm "about"/settings header) the better home? Decide in the issue.

3. (Optional) Separate compact mark vs. hero logo

The durable fix if non-designer farmers keep uploading detailed logos: let a farm upload BOTH a hero logo (used at the splash / large surfaces) and a compact mark (used in the sidebar). More model + upload UI + a second farm_logos-style asset; only worth it if 1+2 don't settle it.

Out of scope

Activity

  1. changed the title [-]Sidebar branding: render a wide logo at its natural aspect, not squeezed into a square slot[/-] [+]Farm branding surfaces: a compact sidebar mark + a home for the detailed logo (post-login splash)[/+] on Jul 23, 2026
  2. mforce commented on Aug 10, 2026

    @mforce
    OwnerAuthor

    Partially addressed by #496 (merged as 1732a38): the post-login splash and a separate hero/banner asset are shipped — an independent banner image, distinct from the square sidebar logo, uploadable in Settings and shown full-size once per sign-in.

    Still open, the remaining piece of this issue: the compact sidebar mark CSS fix (the fixed 26x26 .brand-logo that squashes a wide logo). #496 deliberately scoped that out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions