Kreska: the logo, the agent icon with expressions, and agent colours in the Agents section
Maintainers usually reply within 1 day
@Zamojski5 is already working on this.
Since Oct 9, 2026.
Assessment
This issue has not been assessed yet.
Description
Part of #336 (F-026, founder direction 2026-10-07). Design guide: docs/design/final (§3 kreska logo agent icon and mascot · agent colours agents section only; until #337 merges, read the pinned copy). Interactive boards (light/dark toggle, notes): design canvas, page "Prostota".
Outcome
Kreska is the Flux logo and every agent's icon. An agent is always recognisable and never mistaken for a person. Agent colours appear only in the Agents section.
Final design

Acceptance criteria
- AC-1. One Kreska component draws the agent icon at 16 / 20 / 24 / 32 / 48 px with the line weights in guide §3. It draws all 16 expressions as static frames, animated only when reduced motion is off.
- AC-2. Every agent everywhere is Kreska plus an "Agent" tag and "for ": messages, mentions, Inbox, search, hand-off, Agents and the map cursor. People are grey circles with initials; an agent never gets a circle avatar, and a person never gets Kreska. Earlier agent glyphs, orbs and corner status dots are removed.
- AC-3. The expression follows real state from existing run, claim and presence data (idle, working, thinking, reading, writing, waiting for you, asking, asleep). Flux never shows activity that is not happening.
- AC-4. Each agent gets a stable colour from the seven muted OKLCH colours (L 0.55 light, 0.80 dark). It is used only in the agent list, an agent's details, the hand-off picker and Settings → Agents and AI; everywhere else agents are monochrome.
- AC-5. The logo tile (solid
--invwith the face knocked out, nothing past the tile) replaces the old mark in the sidebar, phone Home, sign-in and splash, in the PWA manifest icons (including maskable), the favicon and the apple-touch-icon.
What changes in the code today
From a read of main at 3c553b79; the owner confirms before starting. Paths are under app/apps/web/src, public/ is app/apps/web/public, root scripts/ and tests/ are the repository's, and UI tests are in app/tests/ui.
Change
ui/Avatar.tsx: people only, grey circle with initials, 32 px in conversations and 20 px for owners in task rows.- Agent names: replace the text suffix (
AGENT_SUFFIXinagents/ProjectAgents.tsx) and "(agent)" (work/ProjectTasks.tsx,work/WorkDetails.tsx) with Kreska + "Agent" tag + "for ". app/apps/web/scripts/generate-icons.ts,public/icons/*(indigo tile with "F"),public/manifest.webmanifestcolours,index.htmlicons: regenerate from the Kreska tile.
Remove
- The robot
agentglyph (ui/Icon.tsx, used on board owners inwork/TaskBoard.tsx). - The ✦ spark assistant avatar and its breathe animation (
assistant/ConversationParts.tsx,assistant/assistant.css), and the spark as the project icon (app/Sidebar.tsx,app/AppLayout.tsx). - Connection status dots and corner dots (
agents/agents.css,side__dot,inbox__dot). FluxMark(two slanted strokes) and the "flux." wordmark inui/Icon.tsx,app/Sidebar.tsx,auth/pages.tsx.
New
- A
Kreskacomponent (sizes, line weights, 16 expressions, static frames) and a mapping from run/claim/presence state to expression. - A stable per-agent colour from the 7-colour palette, applied only in the Agents section.
- The logo tile + wordmark component.
Tests to rewrite
test_personal_assistant.py(spark avatar),test_agents_view.py(per-connection dots),record_demo.pyandadaptive_fixture.py(brand).
Depends on
#338 (tokens and shared components first; independent parts can start earlier).
Related: #20 (MOB-1): the regenerated install icons, maskable icon and apple-touch-icon must still meet the documented install rules. The map cursor in AC-2 needs live map presence, which comes with live co-editing (#228/#231, PR #239; F-021, now required in v0.1 by founder direction, 2026-10-07). Preserve actual authorized presence and independently verified behavior; restoring release scope does not mean it is implemented.
How to test
./scripts/check_ui.sh # browser suite; add the new or changed tests
./scripts/check_application.sh # when API or data paths change
python3 scripts/check_agent_setup.py && git diff --check
Compare with the renders above at 1440 × 900 and 390 × 844 CSS px, in light and dark, on ./flux demo data, then get an independent visual review with a neutral brief (guide §9). Screenshots do not prove interaction or accessibility, so also test keyboard, touch (Chromium and WebKit emulation), reduced motion and contrast in the running app.
Owner: whoever claims it (assign yourself and comment once). Evaluator: the other agent. The design is a founder direction: implement it as drawn; raise a conflict with a functional contract on #336 instead of changing the design.
Updated 2026-10-07: cross-links to #20 and #228 added.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 13h 27m
- Merged PRs (30d)
- 224
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ColdPhase/flux
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
WebKit: cancelled API requests surface as uncaught 'access control checks' page errorsPossibly taken @Zamojski5 claimed this today. Open
ColdPhase/flux#471 · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
submodule-pointer-regression
Difficulty 1/5 Under an hour Newbie friendliness 72/100
smith-horn/skillsmith#3061 ·
Maintainers usually reply within 1 day
-
area: ops type: test
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
accensa/x402-facilitator-stellar#559 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
cosimochellini/one-piece-zero-spoiler#551 ·
Maintainers usually reply within 1 day
-
getWatched() omits __proto__ directories when cwd is setPossibly taken @maxazure claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
-
area:web enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day