主题令牌(Theme)

主题令牌:Theme 是 IDL 定义的跨端 UI 组件,props / events / behaviors 在各平台语义一致。本页给出契约属性、事件、渲染行为、数据源与 Native (C ABI) 端绑定/示例。

契约属性(props)​

属性类型必填说明
mode'light'|'dark'是light / dark
colors{primary,background,surface,text,textSecondary,bubbleMine,bubbleOther,danger,mention}是主题颜色令牌集合:{ primary:, background:, surface:, text:, textSecondary:, bubbleMine:, bubbleOther:, danger:, mention: }

事件​

该组件未声明事件;交互通过属性和宿主回调完成。

渲染行为​

  • 默认跟随系统;宿主可覆盖令牌;暗色对比度满足可读性

数据源​

未在 IDL 声明 dataSource;由宿主从 IMLib 拉取(getConversationList / getHistoryMessages / MESSAGES / CONVERSATION 事件)。

依赖边界

组件不直连网络与数据库:会话/消息由宿主从 IMLib 拉取后传入,组件只做排序、角标、格式化与渲染。

平台绑定​

项值
公开符号 / 签名im_kit_theme_load(const char* json, im_kit_theme_t** out)
导出列表包含—
UI 框架view-model / 格式化 / 角标 / 状态计算层(不访问网络,不渲染 UI)

使用示例​

C(view-model 层)
im_kit_theme_t* theme = NULL;
im_kit_theme_load(
    "{\"mode\":\"dark\",\"colors\":{\"primary\":\"#818CF8\",\"bubbleMine\":\"#4F46E5\"}}",
    &theme);

uint32_t primary = im_kit_theme_color(theme, "primary"); /* 0xAARRGGBB */
char primary_hex[16];
im_kit_theme_get(theme, "primary", primary_hex, sizeof(primary_hex));
im_kit_theme_free(theme);

相关文档​