Current decision
Use ordinary Unicode emoji for now, not Material custom emoji. The Material @vorobevdesigned emoji set was successfully displayed in a bot message, but its icons looked larger and more crowded than ordinary emoji. A Gromozeka-owned set is a follow-up, not a blocker for the Telegram channel.
Goal
Bring the Google Material Symbols used by the Gromozeka UI to Telegram as a custom emoji set. Also explore making our own icons based on those symbols, including colored variants and the composed tool/action badges already used in the UI. Coloring and redesign are options to evaluate, not a requirement to recolor every icon.
Scope
- Start with the tool/action icons used in Telegram activity messages, then extend coverage as useful. There is no need to port the entire Google catalog initially.
- Reuse the repository's vector sources and semantic tool-to-icon mapping. Keep Telegram labels consistent with the normal UI.
- Create a reproducible export process and a manifest mapping semantic icon names to Telegram custom emoji IDs. Document pack ownership and updates.
- Preserve transparent backgrounds. Compare adaptive monochrome icons with deliberately colored variants; check readability in light/dark themes and at actual inline emoji size, especially for composed badges.
- Match ordinary inline emoji size, optical padding, baseline, and spacing to the adjacent text. Investigate both the artwork bounds and the Telegram client's reserved line box: shrinking the artwork alone may not fix line spacing.
- Keep regular Telegram message typography and expandable tool details. This task must not require switching normal answers to Rich Messages.
- Preserve the applicable Apache 2.0 license and notices, document modifications, and identify the set as a Gromozeka adaptation rather than an official Google publication.
Code pointers
presentation/src/commonMain/composeResources/drawable/msr_*.xml
presentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/icons/Icons.kt
presentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolSemanticIcon.kt
presentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolActivityGroupItem.kt
presentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolDisplayName.kt
THIRD_PARTY_NOTICES.md
Acceptance criteria
- A Gromozeka-owned Telegram custom emoji set covers the agreed initial tool/action subset and is reproducibly generated from versioned sources.
- Tool icons are identifiable at normal message size; the monochrome/colored design decision is recorded with visual examples.
- Icon size and spacing must look ordinary: no inflated line height, shifted baselines, or disrupted row alignment compared with the same message using standard emoji. Compare side by side at the same text size in Telegram Web and at least one native client. Keep ordinary emoji if the custom set cannot meet this layout requirement.
- Actual bot messages display the chosen icons in Telegram Web and at least one native client, with readable text when custom emoji are unavailable.
- License/attribution, pack ownership, and icon ID mapping are documented. No bot credentials are stored in source control.
References: Google Material Symbols, Apache 2.0, Telegram custom emoji.
Current decision
Use ordinary Unicode emoji for now, not Material custom emoji. The Material @vorobevdesigned emoji set was successfully displayed in a bot message, but its icons looked larger and more crowded than ordinary emoji. A Gromozeka-owned set is a follow-up, not a blocker for the Telegram channel.
Goal
Bring the Google Material Symbols used by the Gromozeka UI to Telegram as a custom emoji set. Also explore making our own icons based on those symbols, including colored variants and the composed tool/action badges already used in the UI. Coloring and redesign are options to evaluate, not a requirement to recolor every icon.
Scope
Code pointers
presentation/src/commonMain/composeResources/drawable/msr_*.xmlpresentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/icons/Icons.ktpresentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolSemanticIcon.ktpresentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolActivityGroupItem.ktpresentation/src/commonMain/kotlin/com/gromozeka/presentation/ui/session/ToolDisplayName.ktTHIRD_PARTY_NOTICES.mdAcceptance criteria
References: Google Material Symbols, Apache 2.0, Telegram custom emoji.