Skip to content

[SF-28] Adopt Leopard brand in Android Compose app - #26

Merged
alexanderbrunker-star merged 3 commits into
mainfrom
feature/SF-28-android-leopard-look
Apr 19, 2026
Merged

[SF-28] Adopt Leopard brand in Android Compose app#26
alexanderbrunker-star merged 3 commits into
mainfrom
feature/SF-28-android-leopard-look

Conversation

@alexanderbrunker-star

Copy link
Copy Markdown
Member

https://linear.app/captain-leopard-ai-engineering/issue/SF-28/apply-leopard-brand-to-android-compose-app

Verification:

  • cd sonicflow_app/android-app && ./gradlew assembleDebug

- Copy brand/BrandTokens.kt into app module (com.sonicflow.app.brand)
- Rewire Theme / FlowModeUi / MainScreen / ModeCard to BrandTokens.*
- Add LeopardBackground composable (deterministic Canvas + Modifier.blur)
- Layered shadow glow (24 inner / 64 outer) on selected mode card
- Preserve Color.fromHex contract; add Color.toHexString helper so
  FlowMode.accentColor: String stays hex-literal-free
@linear

linear Bot commented Apr 19, 2026

Copy link
Copy Markdown
SF-28 Apply Leopard brand to Android Compose app

Scope

Apply the Leopard brand to the Android Compose app.

Deliverables

  • Copy brand/generated/BrandTokens.kt into the :app module (or wire as a generated source set).
  • ui/theme/Theme.kt consumes BrandTokens.Neutral.*, BrandTokens.Mode.* — no Color.fromHex("#…") literals outside BrandTokens.
  • MainScreen.kt + ModeCard.kt — leopard background behind blurred panel, glow on active card.
  • Update app icon + launcher icon to SF-29 set (placeholder acceptable until SF-29 lands).

Acceptance

  • :app:assembleDebug passes.
  • Unit tests pass.
  • No hex literals outside BrandTokens.kt.

Branch

feature/SF-28-android-leopard-look.

Depends on

SF-23.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 41c44b74b8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

lines.push(` val ${camel(key)} = Color.fromHex("${v.hex}")`);
}
}
lines.push(" val panel = Color(0f, 0f, 0f, 0.78f)");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Derive native panel color from tokens.json instead of black

brand/tokens.json sets palette.neutral.panel to rgba(18, 18, 22, 0.78), but the native generator hardcodes Color(0f, 0f, 0f, 0.78f) (and the Swift path similarly uses Color.black.opacity(0.78)). That means Android/iOS token outputs already diverge from the canonical source and any future neutral.panel updates in tokens.json will not propagate to native apps, producing inconsistent theming across platforms.

Useful? React with 👍 / 👎.

@alexanderbrunker-star
alexanderbrunker-star merged commit af4e7a3 into main Apr 19, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant