build / build-push (push) Successful in 51s
线上 10027 首页配了 home_layout 后走 themes/common 通用骨架,派生皮肤只换了页头页脚, 正文仍是骨架内置蓝灰卡(外加 cherry-bloom 的粉紫配色),用户判定"完全不能用"。 - 新增 academic-navy(学府藏蓝,an-)/campus-azure(青蓝校园,cz-):以 scholar-blue 为基座, 各自自带 fragments/home-blocks.html 与 home.html 分发,news_grid/media_focus/compact/ image_wall/card/ticker/gallery/links 八种区块形态全部由皮肤渲染,未知类型才回落通用骨架 - 两套皮肤 :root 把私有变量别名到 --primary/--text/--card-bg/--border/--radius 契约变量; 中文行锁 nowrap+min-width:0+ellipsis,grid 轨道用 minmax(0,1fr) 防窄视口压塌 - 新闻背景带 .an-sec-bg/.cz-sec-bg 压 z-index:0、卡片抬到 1:绝对定位层默认画在普通流之上, 不抬起会整张卡片泛成底图色(无头截图实测) - common 骨架空态守卫改包 th:block(th:replace 优先级 100 先于 th:if 300) - 删除 cherry-bloom/violet-iris;sql/upgrade_theme_academic_skins.sql 幂等改指存量站点 (站点缓存 CacheNames.SITE TTL 30 分钟,改库后需重启或在管理端重存站点) - 测试:AcademicSkinContractTest(区块自带/分发/CJK 行/变量别名/主色必须学术蓝/背景带层级/ 预览图不得沿用基座)、HomeBlocksCssContractTest、PortalHomeLayoutIT 端到端断言零 plb- 输出; 全量 383 项通过
2.5 KiB
2.5 KiB
campus-azure(青蓝校园)
高校官网风皮肤包:以 scholar-blue 为基座派生,配色与首页区块形态按师范/农林类院校官网(信阳师范学院、
信阳农林学院一类)重做。配了 home_layout 的站点,首页正文区块由本主题 fragments/home-blocks.html 渲染,
不落 themes/common 通用骨架(否则换肤只剩页头页脚)。
风格定位
- 主色青蓝
#0d6a9e+ 加深#084c73+ 点缀青绿#2b9c8f(列表圆点、标题线脚、速递标签走青绿)。 - 圆角放宽到 6/12px、页面底
#eef3f6,比 academic-navy 更松更「校园」;区块头统一走居中双线 + 右置「更多」。 - 全部 11 个颜色参数可在站点 theme_params 微调(
primary/primaryDark/primaryLight/accent/navBg/footerBg/text/textLight/bg/cardBg/border)。
首页区块形态(布局模式与回落模式同构)
| homeStyle | 呈现 | 类名 |
|---|---|---|
news_grid |
图文要闻:全宽封面头条(底部渐变遮罩标题 + 元信息)+ 双列圆点密行;区块背景可取站点 news_bg_image |
cz-hero* / cz-block-list--two |
compact |
圆点密行:青绿圆点 + 标题 + 右对齐完整日期 | cz-item-bullet / cz-item-date |
media_focus |
媒体聚焦:胶囊来源徽标 + 双列密行 | cz-src |
image_wall |
三列大格图墙:圆角卡 + 底部遮罩标题 | cz-wall |
| (空/未知) | 整宽区块卡:左 2 份图文头条 + 右 3 份圆点行 | cz-block--flow / cz-split |
ticker |
青蓝要闻速递横条,标签为青绿胶囊(单行不换行、超长省略,中文不塌列) | cz-ticker* |
gallery |
线上展厅:居中双语文区头 + 四列图墙 | cz-gallery |
links |
友情链接分组(胶囊标签行) | cz-links |
契约要点
- 结构类前缀
cz-,CSS 变量前缀--cz-;:root把--cz-*别名到皮肤契约变量(--primary/--text/--card-bg/--border…), 使themes/common兜底骨架也能跟随本皮肤着色。 - 空态文案「栏目暂无内容」只在
block.items为空时出现;守卫必须写在th:block外层——th:replace(优先级 100)先于th:if(300)求值,写在同一标签上等于没写。 - 回归防线:
AcademicSkinContractTest(自带区块 fragment + 中文不塌列 + 契约变量别名 + 主色必须学术蓝)、PortalHomeLayoutIT#campusAzure_fallbackAndAssets(回落分支 + 资产通道)、ThemeContractIT(7 条路由)。