SuperAPI AI 工具集

ui-styling

设计与创作

查看项目

更新于 10-16 06:47

技能介绍

用途:为 Semantic Link Labs 中所有交互式 UI 工具(HTML 部件与 anywidget 部件)规定统一的视觉风格、结构、共享构建模块与架构模式,保证各工具外观一致。适用于新增交互式 UI 函数、修改已有 UI(如 vertipaq_analyzer、delta_analyzer、perspective_editor),或决定采用静态 HTML 还是 anywidget 部件。

两种 UI 模式:静态 HTML 部件(Vertipaq 风格)适合渲染前已由 Python 算好数据、后续交互全在浏览器端 JavaScript 完成、display(HTML(...)) 后不再执行 Python 的场景;anywidget 部件(Perspective Editor 风格)适合用户操作后需回调 Python(写回语义模型、刷新数据、调用 REST API、长任务)的场景,状态通过 traitlets 在 JS 前端与 Python 后端间同步。

共享构建模块:src/sempy_labs/_ui_components.py 是所有视觉元素唯一来源,两种模式都须从此导入。包含 ICONS(单色 SVG 图标)、LIGHT_THEME_VARS、DARK_THEME_VARS(Apple 风格明暗配色)、SYNTAX_HIGHLIGHT_VARS(DAX/代码高亮令牌)、HEADER_CSS 与 scoped_header_css、render_header_html、theme_toggle_script、fullscreen_css、fullscreen_toggle_script、fullscreen_setup_js、display_html_widget、归因相关函数,以及标准可搜索单选控件 SEARCH_SELECT_CSS/SEARCH_SELECT_JS(createSearchSelect,支持 setOptions、setEmptyLabel、setDisabled)。多个工具共用的视觉元素应提升到该模块,不要复制 CSS 或 SVG。

标准表头控件:明暗模式、全屏、切换模型/工作区、重新加载四种,分别使用 sl-theme-btn、sl-change-btn、sl-reload-btn 类与共享图标,由测试 test_ui_header_controls.py 约束,工具不得自行重设样式;加载中给重新加载按钮加 sl-spinning。工作区/语义模型选择器须先用 resolve_workspace_name_and_id(workspace) 解析并预选。

设计令牌:统一字体栈与抗锯齿;标题 22px、副标题约 12.5px 由 render_header_html 生成;数字使用 tabular-nums。颜色一律通过 --ui-* 令牌(背景、悬停、边框、文本、强调色、on-accent、danger、阴影等),不得硬编码 #fff 或红色等字面量;代码高亮用 --ui-syntax-*。圆角 12px/8px,过渡 0.25s cubic-bezier(0.4,0,0.2,1) 等。

部件结构:带唯一 uid 的根容器与可选暗色修饰类,依次为表头、摘要卡片、标签栏、工具栏、主内容、底部归因。静态模式需为每个类、id、全局函数名加 uid 后缀,CSS 作用域限定在根选择器内,交互逻辑写在标签页脚本中。anywidget 模式须对 anywidget 可选依赖做保护,相关资料到此截止,其余细节暂未提供。

限制:资料未给出安装命令、收费与定价、支持的平台或具体效果数据,暂未提供。