Skip to content
sysout.dev

treeger - Visual Design Philosophy

The approved visual direction for Treeger's foundations, identities, typography, iconography, layout, states, and motion.

Status: approved direction; initial production token and component-role migration completed in July 2026. Device review and typography refinement remain open.

North Star

Quiet structure, vivid landmarks.

treeger should feel calm enough to browse for a long time and distinctive enough to be recognisable without its logo. Files and folders are the visual subject; the interface supplies structure, orientation, and safe actions.

The palette supplies personality. It should not have to supply every background, icon, heading, and state. Large reading surfaces use quiet neutral foundations; brand colors appear at meaningful landmarks such as selection, focus, a primary action, the app identity, or a small section accent.

This is closer to a well-organised desk than a painted room: the working surface recedes, while labels and tools are easy to find.

Current Visual Diagnosis

The present implementation proved the palette and brand, but it also reveals the next design problems:

  • Cream fills nearly the entire light-mode viewport. Its warmth is attractive in a swatch but becomes a persistent yellow cast at screen scale.

  • Ochre colors section headings and nearly every file/folder icon, giving items of different importance the same emphasis.

  • Background and surface use the same token, so rows, navigation, and overlays have little structural separation except spacing and shadow.

  • Serif type gives treeger character, but using it for long filenames, metadata, controls, and menus adds visual texture where fast scanning matters.

  • Filled folder/file icons become repeated blocks of accent color. This makes a long list visually louder than its actions and selection state.

  • Theme accent colors currently double as error containers. Error, warning, success, and destructive actions need stable meanings across every palette.

  • Pinned and Quick access use different icon containers even though both are folder destinations. That variation is not yet communicating a clear meaning.

These are role-assignment problems, not reasons to discard the chosen colors.

System Principles

Content Leads

Filenames, thumbnails, paths, and selection state must be easier to identify than the surrounding chrome. Decoration never competes with content.

Color Is A Landmark

Color marks a small number of meaningful things: active destination, selection, focus, progress, a primary action, or brand identity. Repetition should reduce emphasis, not multiply it.

As a working target, strong palette colors should occupy much less than ten percent of a typical browsing screen.

Structure Comes From Space And Tone

Hierarchy should first use spacing, type scale, alignment, and subtle tonal surface changes. Borders and shadows are secondary. Color is not required to separate every section.

Familiar At Rest, Distinctive In Detail

Core file operations should follow Android expectations. treeger’s personality comes through its wordmark, typography contrast, careful geometry, transitions, empty states, and customisable Home—not unfamiliar basic controls.

Progressive Emphasis

At rest, the interface is quiet. Selection mode, an active operation, an error, or a focused preview may raise visual emphasis temporarily. When the state ends, the UI returns to calm.

Accessible Without A Special Theme

Normal themes should meet contrast, touch-target, text-scaling, reduced-motion, and color-independence requirements. Accessibility is not delegated to a later "high contrast" option.

Color Architecture

Separate Foundation, Identity, And Semantics

Use three independent color layers:

Layer Purpose Examples

Foundation

Comfortable surfaces and readable text

Canvas, surface, raised surface, primary ink, secondary ink, divider

Identity

treeger personality and wayfinding

Canopy navy/ochre, Ember amber, Bloom berry; selection and primary emphasis

Semantic

Meaning that stays stable across palettes

Error red, warning amber, success green, information blue

Changing from Canopy to Ember or Bloom should primarily change the identity layer. It should not turn the whole workspace into a different-colored room.

The exact values require device testing; these are starting points, not approved tokens.

Role Light direction Dark direction

Canvas

Near-neutral warm gray, approximately #F8F7F3

Charcoal with a restrained navy bias, approximately #10161C

Surface

Neutral white/off-white, approximately #FCFCFA

Slightly lighter than canvas, approximately #172029

Raised surface

Soft neutral gray, approximately #F0F0EC

Approximately #202A33

Primary ink

Near-black with a subtle cool bias, approximately #182129

Soft off-white, approximately #F2F1EC

Secondary ink

Opaque medium gray; do not rely only on alpha

Opaque light gray

Divider / outline

Low-contrast neutral gray

Low-contrast cool gray

Pure white and pure black are unnecessary for large areas. The neutral foundation may carry a very small palette tint, but should appear neutral before it appears cream, pink, brown, or blue.

Reassign Existing Palette Roles

  • Canopy: Navy becomes the principal identity color. Ochre is a warmer secondary accent for a small highlight or special action. Cream becomes a brand tint for illustrations, selected containers, or marketing—not the full app canvas. Sage is a quiet supporting tint, not low-contrast body text.

  • Ember: Amber/Amber Deep supplies active emphasis. Bark and parchment may tint brand moments, but neutral foundation tokens still carry long reading sessions.

  • Bloom: Berry supplies active emphasis. Rose and peach are supporting tints. Bloom Cream should not fill every light-mode screen.

This preserves the work invested in the palettes while making them easier to live with. The theme chooser becomes closer to an identity/accent choice than a full surface recoloring system.

Theme Strategy And Maintenance Cost

Multiple themes are not a goal by themselves. Every production identity pack multiplies contrast checks, semantic-state combinations, screenshots, component QA, and future design decisions. A theme should stay only when it expresses a meaningfully different product character that users value.

Current recommendation:

  • Ship one visual system: a shared neutral foundation with Canopy and Bloom identity choices. Canopy remains the default because it is the strongest match for the treeger name, navy logo, and established brand assets.

  • Remove Ember from the planned production system. Once its bark/parchment surfaces become neutral, its warm amber/brown emphasis overlaps Canopy’s ochre character and does not justify a parallel QA surface.

  • Keep Bloom in production because its berry/rose character is genuinely distinct. Both packs share the exact same foundation and semantic tokens; only the short, documented identity-token list changes.

Semantic Color Rules

  • Error and destructive actions use a consistent red family in every theme.

  • Warning uses a distinct amber family and is never interchangeable with Canopy’s general accent.

  • Success uses green; information uses blue when a separate informational color is necessary.

  • Never rely on color alone. Pair semantics with an icon, label, placement, or shape change.

  • Destructive red is reserved. Routine remove-from-Home or dismiss actions should not look like permanent file deletion unless that is what they do.

Typography

Use typography contrast to combine character with utility.

Role Direction Reason

Wordmark

Merriweather Bold

Ownable brand expression

Large screen title / important empty-state title

Merriweather, restrained use

Connects product UI to the wordmark

Section label, filename, menu, button, settings text

Bundled IBM Plex Sans

Fast scanning, better long-name rhythm, familiar controls

Metadata

Sans-serif with tabular numerals where available

Dates and sizes align without adding another type personality

Path, checksum, technical identifier

Monospace only when the content benefits from it

Signals machine-readable detail

Avoid bold as the default way to establish every level. A hierarchy of size, weight, tone, and spacing is quieter. Filenames should normally be medium or regular weight; selection should not cause text to jump in width.

IBM Plex Sans is bundled because it remains legible in dense utility interfaces while retaining more character than the default Android sans. Merriweather should remain the wordmark and occasional display voice; it does not need to prove the brand on every filename and control.

Text should survive 200% font scaling, long filenames, mixed scripts, and Android font substitution without losing actions or overlapping icons.

Iconography And File Representation

Base Icon Style

  • Use one optical family with consistent 24 dp geometry and stroke weight.

  • Outline icons are the resting state for chrome and generic items.

  • Filled icons indicate selection, an active destination, or a strongly typed object—not every row.

  • Do not place every icon in a colored circle. A container must communicate a state such as pinning, selection, or file type.

  • Keep icon color near secondary ink by default. Identity color is earned by active or important states.

Files, Folders, And Thumbnails

Use a progressive representation:

  1. A real thumbnail when it helps recognition and can be produced cheaply.

  2. A format-specific glyph or extension tile when a preview is unavailable.

  3. A generic file glyph only when the type is unknown.

Folders can use a restrained outline or low-chroma fill. Pinned status should be shown by placement and an optional small pin marker, not a wholly different folder illustration.

For Peek and a future Spatial View, every file needs a visual tile. Use the real thumbnail when available; otherwise build a typographic thumbnail from a short, legible filename and extension. The absence of a preview should not exclude a file from the visual system.

Brand Mark

The t remains the app icon and wordmark companion. Do not repeat it as generic decoration throughout the app. It can reappear subtly in launch, About, first-run, or rare truly empty states where product identity is appropriate.

Shape Language

The logo combines a sturdy vertical stem, a rightward branch, and a soft terminal curve. Translate that balance—not the literal t—into components:

  • Mostly rectilinear alignment and clear vertical structure.

  • Soft but controlled corners: approximately 8 dp for small controls, 12-16 dp for cards/sheets, and larger radii only for large modal surfaces.

  • Pills only for chips, filters, or short binary states. Avoid pill-shaped rows, dialogs, and unrelated controls.

  • Use the same corner family across menus, dialogs, selection containers, and thumbnail tiles.

Cards should be used for contained concepts, not as wrappers around every row. Ordinary file lists remain flat and use spacing or subtle dividers.

Layout, Density, And Layering

Spacing

Use a 4 dp base rhythm with a small named scale. Prefer consistent section and row spacing to one-off padding. Home may be generous; folder lists should remain efficient enough for scanning.

Surface Levels

  • Level 0: app canvas.

  • Level 1: drawers and contained Home modules when containment is needed.

  • Level 2: temporary overlays such as menus, sheets, dialogs, and operation UI.

Permanent title bars, breadcrumbs, section headings, and ordinary list rows stay on Level 0 and use the same canvas. A section label and its content form one visual field rather than stacked color bands.

Separate levels primarily with tone. Reserve visible shadow for temporary things that truly float above content. The current sort menu is an appropriate elevation case; ordinary file rows are not.

Section Grammar

Recently Used, Pinned, and Quick access should share one visual grammar:

  • same header baseline and type role;

  • same outer margins;

  • same action placement;

  • same empty-state alignment;

  • content-specific row/tile layouts inside that structure.

This common grammar creates the foundation for a future Edit Home mode without making each section look like a separate mini-application.

States And Feedback

State Visual treatment Content rule

Empty

Small low-chroma line illustration or object icon; generous space; no large card

Say what belongs here and offer one useful action when one exists

Loading

Delay transient indicators briefly; use a layout-matched skeleton for longer loads

Keep the destination title and navigation stable

No result

Search/filter symbol in secondary tone

Name the active scope and offer Clear filters or a broader scope

Recoverable error

Compact semantic error icon and message near the failed content

Explain what happened in plain language and provide Retry or another next step

Invalid input

Inline field outline, icon, and helper text; preserve entered content

Say how to correct the value, not merely that it is invalid

Unavailable file/folder

Muted item or calm dialog; no alarming full-screen red

Explain moved/deleted/disconnected possibilities and offer Remove, Locate, or Retry

Permission required

Neutral explanatory panel with a small shield/folder icon

Explain why access is needed, its scope, and what remains possible without it

Selection

Low-chroma identity tint, check marker, contextual top bar

Always show selection count and available actions

Destructive confirmation

Semantic red only on the destructive action

Name the exact consequence and distinguish Trash from permanent deletion

Operation in progress

Compact persistent progress surface; determinate where possible

Show operation, source/destination summary, progress, cancel, and conflicts

Success

Brief Snackbar or inline completion; avoid celebratory interruption

State the result and offer Undo when meaningful

Tone should be direct and human: This folder is no longer available is better than Invalid URI; Try again is better than exposing an exception. Technical details may be available behind a disclosure when they help troubleshooting.

Motion And Interaction

  • Motion explains continuity: a selected row enters the operation shelf, a Home module moves to its new position, or a thumbnail expands into Peek.

  • Routine transitions should generally finish in roughly 150-250 ms and remain interruptible.

  • Avoid ambient animation, bouncing empty states, and motion used only to attract attention.

  • Respect Android reduced-motion settings. Spatial View requires a low-motion navigation alternative before it can ship.

  • Touch targets remain at least 48 dp even when visual icons are smaller.

Applying The Philosophy To Key Screens

Home

Use a neutral canvas and a common section grammar. Recently Used may become a thumbnail-forward strip later; Pinned and Quick access remain clear destinations. Section labels should not all be large accent-colored serif headlines. One active or primary action may use identity color; repeated content icons should recede.

Folder Listing

Favor information rhythm: icon/thumbnail, filename, then metadata. Sans-serif filenames and quieter icons should make a long list easier to scan. Selection and file type then have enough visual room to become meaningful.

Peek / Spatial View

Peek may use a darker neutral stage for visual content while keeping controls consistent with the rest of the app. Spatial View can be more expressive, but its navigation, focus, selection, and fallback tiles must still follow the same token, type, and state system.

Settings And Dialogs

These should feel close to Android conventions. Brand character appears through title type, selected controls, and geometry rather than colored full-screen backgrounds or custom versions of every standard component.

Decisions To Make Before Implementation

  1. Confirm Quiet structure, vivid landmarks as the overall direction.

  2. Compare at least three foundation prototypes on real devices:

    1. warm-neutral canvas with white/off-white surfaces (recommended starting point);

    2. cooler pearl-gray canvas;

    3. very lightly palette-tinted canvas, capped at a subtle tint.

  3. Use Canopy as the default production identity, retain Bloom as the alternate, and exclude Ember.

  4. Test Merriweather-only against Merriweather-display / IBM-Plex-Sans-utility using long filenames, Settings, menus, and 200% font scaling.

  5. Approve one icon treatment using a dense mixed-file folder, not an isolated icon sheet.

  6. Prototype Home, Folder Listing, an empty state, an error, selection mode, and a dialog in both light and dark mode before changing production tokens.

  7. Validate contrast and appearance at low brightness, outdoor brightness, OLED dark mode, and with common color-vision deficiencies.

Visual Comparison Artifact

docs/mocks/treeger-visual-direction-study.html holds the first controlled comparison. It keeps screen structure and content substantially the same while showing three columns:

  1. current full-surface Canopy;

  2. neutral foundation with Canopy identity;

  3. the same neutral foundation with Bloom identity.

Tabs compare Home, a dense Folder listing, and representative empty/error/ selection states. Ember is excluded intentionally. This study is for deciding whether the neutral foundation and typography split improve the current design; it is not a proposed production layout or finished icon set.

The HTML study names IBM Plex Sans first and can fall back to the local system sans when Plex is not installed. The Android app itself bundles Regular, Medium, and SemiBold weights, so the in-app Visual Lab is the typography reference.

Non-goals

  • Literal tree, leaf, bark, or branch decoration across normal screens.

  • A different component language for every palette.

  • Cards around every item.

  • Color as the only status indicator.

  • Novel controls for standard actions merely to look different.

  • Making the default file list visually resemble the experimental Spatial View.