Regression / regression (push) Canceled after 0s
## 品牌标识(本次会话) 起因:品牌此前没有任何图形标识 —— 唯一 favicon 是内联 data-URI 里的字母「A」, 那是 v2.0.0「Aurora Admin → Kole UI」改名漏掉的一处(PC 顶栏也是「A」, 移动端站已是「K」;移动端文档站则完全没有 favicon)。 - 几何:24 网格三个互不接触的笔画(竖 + 两斜),圆头描边; 描边 2.25 → 16px 标签页尺寸下正好 1.5px = 规范原文「描边1.5px」 - 取色分两套(刻意):favicon 硬编码品牌蓝/白(渲染在浏览器标签栏,不继承 kole-dark); 顶栏标记走 currentColor(实测暗色下自动转 rgb(20,22,28)) - 新增 theme-color 双条(light #FFFFFF / dark #1C1F26,取 --kole-color-card-bg) - 修 site/app.js hero 标语 KOLE ADMIN → KOLE UI(改名变形残留) - 移动端 7 个模板补 favicon(此前计数 0) 验收:门禁 9 条全 OK(site-routing/site-routes/mobile-docs/mobile-site/isolation/ theme/nav/i18n/icons);PC 回归 1464/1464 · 移动端 807/807,各连跑 8 次一致; 两端 favicon 405 字节逐字节一致;PC 站控制台错误 1→0。 ## 并行会话成果(本次一并入库) - 图标系统:2576 图标(TDesign/Element Plus,MIT)+ 11 端注入 + 5 个构建门禁工具 + IconPreview 预览页 + ICON-SPEC.md 冻结规格 - 移动端平台:47 组件 × 6 端 + 文档站 53 页 + 隔离门禁 - PC 组件:103 个大后台组件 / 组件11 批次 - uni-app:PC 端试点 + 移动端端实现 + 真实编译验证 ## 工程 - .gitignore 补 .scratch/ 与 .zcode-preexisting-*.txt(会话中间产物,实测 9.1MB,不入库) - CHANGELOG 补品牌标识条目 - ROADMAP 登 S8-P4(品牌标识任务包 + og:image/apple-touch-icon 未做部分)
171 lines
6.2 KiB
HTML
171 lines
6.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>在线测试 · Kole UI</title>
|
|
<meta name="robots" content="noindex">
|
|
<meta name="color-scheme" content="light dark">
|
|
<script>
|
|
/* 主题在解析期定型,避免闪烁;与文档站同规则:kole-mode 默认 auto 跟随系统 */
|
|
(function () {
|
|
var mode = 'auto';
|
|
try { mode = localStorage.getItem('kole-mode') || 'auto'; } catch (e) { /* ignore */ }
|
|
if (mode !== 'light' && mode !== 'dark' && mode !== 'auto') mode = 'auto';
|
|
var dark = mode === 'dark'
|
|
|| (mode === 'auto' && !!(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches));
|
|
if (dark) document.documentElement.className += ' kole-dark';
|
|
})();
|
|
</script>
|
|
<link rel="stylesheet" href="../.design_library/kole-ui/colors_and_type.css">
|
|
<link rel="stylesheet" href="style.css">
|
|
<style>
|
|
/* 在线测试为独立页,样式只作用在本页,不并入文档站 style.css */
|
|
.pg-body { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }
|
|
.pg-head {
|
|
flex: 0 0 auto;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--kole-space-12);
|
|
height: 56px;
|
|
padding: 0 var(--kole-space-16);
|
|
background: var(--kole-color-card-bg);
|
|
border-bottom: 1px solid var(--kole-color-border);
|
|
}
|
|
.pg-brand { display: flex; align-items: baseline; gap: 8px; font-size: 16px; font-weight: 600; color: var(--kole-color-text-title); white-space: nowrap; }
|
|
.pg-name { font-size: 12px; font-weight: 400; color: var(--kole-color-text-secondary); }
|
|
.pg-select {
|
|
height: 30px;
|
|
max-width: 240px;
|
|
padding: 0 8px;
|
|
border: 1px solid var(--kole-color-border);
|
|
border-radius: var(--kole-radius-base);
|
|
background: var(--kole-color-card-bg);
|
|
color: var(--kole-color-text-body);
|
|
font-family: inherit;
|
|
font-size: 13px;
|
|
}
|
|
.pg-spacer { flex: 1 1 auto; }
|
|
.pg-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
height: 30px;
|
|
padding: 0 var(--kole-space-12);
|
|
border: 1px solid var(--kole-color-border);
|
|
border-radius: var(--kole-radius-base);
|
|
background: var(--kole-color-card-bg);
|
|
color: var(--kole-color-text-body);
|
|
font-family: inherit;
|
|
font-size: 13px;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
}
|
|
.pg-btn:hover { border-color: var(--kole-color-brand); color: var(--kole-color-brand); }
|
|
.pg-error {
|
|
margin: 0;
|
|
padding: 10px var(--kole-space-16);
|
|
font-size: 13px;
|
|
color: var(--kole-color-error);
|
|
border-bottom: 1px solid var(--kole-color-border);
|
|
background: var(--kole-color-card-bg);
|
|
}
|
|
/* 预览帧里的脚本报错 / 被沙箱拦下的请求:是提示不是致命错,与 .pg-error 区分开 */
|
|
.pg-note {
|
|
margin: 0;
|
|
padding: 8px var(--kole-space-16);
|
|
font-size: 12.5px;
|
|
color: var(--kole-color-text-body);
|
|
border-bottom: 1px solid var(--kole-color-border);
|
|
border-left: 3px solid var(--kole-color-warning);
|
|
background: var(--kole-color-card-bg);
|
|
}
|
|
.pg-main {
|
|
flex: 1 1 auto;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
min-height: 0;
|
|
}
|
|
.pg-pane { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
|
|
.pg-pane-view { border-left: 1px solid var(--kole-color-border); }
|
|
.pg-pane-head {
|
|
flex: 0 0 auto;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
height: 34px;
|
|
padding: 0 var(--kole-space-12);
|
|
font-size: 12px;
|
|
color: var(--kole-color-text-secondary);
|
|
background: var(--kole-color-table-header-bg);
|
|
border-bottom: 1px solid var(--kole-color-border);
|
|
}
|
|
.pg-status { font-family: var(--kole-font-family-num); color: var(--kole-color-text-tertiary); }
|
|
.pg-mini {
|
|
height: 22px;
|
|
padding: 0 8px;
|
|
border: 1px solid var(--kole-color-border);
|
|
border-radius: var(--kole-radius-small);
|
|
background: var(--kole-color-card-bg);
|
|
color: var(--kole-color-text-secondary);
|
|
font-family: inherit;
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
}
|
|
.pg-mini:hover { border-color: var(--kole-color-brand); color: var(--kole-color-brand); }
|
|
/* 代码面与文档站 .demo-code 同源:浅色用 tooltip-bg,暗色回落到页面底色 */
|
|
.pg-editor {
|
|
flex: 1 1 auto;
|
|
width: 100%;
|
|
padding: var(--kole-space-12);
|
|
border: 0;
|
|
outline: 0;
|
|
resize: none;
|
|
background: var(--kole-color-tooltip-bg);
|
|
color: #D6DEEB;
|
|
font-family: Consolas, "JetBrains Mono", Menlo, monospace;
|
|
font-size: 12.5px;
|
|
line-height: 20px;
|
|
tab-size: 2;
|
|
}
|
|
html.kole-dark .pg-editor { background: var(--kole-color-page-bg); }
|
|
.pg-frame { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
|
|
@media (max-width: 900px) {
|
|
.pg-main { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
|
|
.pg-pane-view { border-left: 0; border-top: 1px solid var(--kole-color-border); }
|
|
.pg-select { max-width: 140px; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="pg-body">
|
|
<header class="pg-head">
|
|
<span class="pg-brand">在线测试<span class="pg-name" id="pg-name">加载中…</span></span>
|
|
<select id="pg-select" class="pg-select" aria-label="切换组件"></select>
|
|
<span class="pg-spacer"></span>
|
|
<button type="button" class="pg-btn" id="pg-reset">复位</button>
|
|
<button type="button" class="pg-btn" id="pg-copy">复制源码</button>
|
|
<a class="pg-btn" id="pg-open" href="#" target="_blank" rel="noopener">↗ 演示原页</a>
|
|
<a class="pg-btn" id="pg-back" href="index.html">← 文档站</a>
|
|
</header>
|
|
<p class="pg-error hidden" id="pg-error"></p>
|
|
<p class="pg-note hidden" id="pg-note" role="status" aria-live="polite"></p>
|
|
<main class="pg-main">
|
|
<section class="pg-pane">
|
|
<div class="pg-pane-head">
|
|
<span>H5 源码(可编辑)</span>
|
|
<span class="pg-status" id="pg-status">…</span>
|
|
</div>
|
|
<textarea id="pg-editor" class="pg-editor" spellcheck="false" aria-label="H5 演示源码"></textarea>
|
|
</section>
|
|
<section class="pg-pane pg-pane-view">
|
|
<div class="pg-pane-head">
|
|
<span>实时预览<span class="pg-sandbox">沙箱隔离 · 无外联</span></span>
|
|
<button type="button" class="pg-mini" id="pg-reload">重载</button>
|
|
</div>
|
|
<iframe id="pg-frame" class="pg-frame" sandbox="allow-scripts" title="实时预览(沙箱隔离,预览代码无法访问本页与网络)"></iframe>
|
|
</section>
|
|
</main>
|
|
<script src="playground.js"></script>
|
|
</body>
|
|
</html>
|