Files
YschcmsService/src/main/resources/templates/themes/agri-forest
chenxing 82d6ff4602
build / build-push (push) Successful in 51s
feat(theme): 新增三套高校官网风皮肤 poly-blue/agri-forest/jade-normal
以 default 为基座(文件最全:含事项库 service/guide 两模板),设计语言与配色取自
真实高校官网 CSS(浙理工 #0558A5+橙、信阳农林 #1C6E19+麦穗金、信阳师大 #008D3F+暖橙)。
三包均自带九段 home-blocks、:root 契约变量别名、中文防塌列三件套、真实实拍截图
(1920 无头截图缩样)。

- UniversitySkinContractTest(7 用例):九段 fragment/homeStyle 分发/防塌列/变量别名/
  层序/自有截图/主色色域(蓝或绿通道主导,粉紫禁入)
- ThemeRegistryTest +哨兵:三包注册成功且主色与 default/scholar-blue 及彼此互异
- jade-normal 修复:news_grid 全宽封面变体把正文列压成 0 宽致 390px 溢出 47px,
  增 .jn-feat-a--stack 纵向变体,复测 overflowX=0
- 门禁:ThemeContractIT 14 主题×7 路由全绿;全量 mvn test 393/393 绿
2026-09-20 02:31:53 +08:00
..

agri-forest · 农林绿

云海 CMS 皮肤包。fork 自 default(数据契约、模板 th:* 绑定与 default 完全一致),视觉层按农林院校门户语言全部重写,设计语言参考信阳农林学院官网(仅学语言,不复制实现)。

风格定位

  • 气质词:庄重、质朴、农林学府。
  • 配色:墨绿 #1C6E19 主导(通栏导航/日期方块/页脚主底),加深端 #14510F(页脚/标题条),提亮端 #3FA43A(当前导航项/hover),麦穗金 #C8A45C 只做装饰线与角标(栏目标题下划线、导航当前项下杠、日期方块 hover 金线、置顶角标)。
  • 结构:白色页头(左校徽+校名,右工具行:今日日期 + 校园直通车下拉 + 站内搜索)→ 墨绿通栏主导航(白字,当前栏目提亮绿底+金下杠,导航下方与 banner 无缝)→ 通栏轮播(左下墨绿标题条带金边)→ 首页区块 → 墨绿多列页脚(更深底条)。
  • 工艺:小圆角 4px;间距刻度 4/8/12/16/24/32/48;字号阶梯 12/13/14/15/16/18/20/24/28/32;hover 过渡 0.2s ease;正文行高 1.75;无渐变堆砌、无粉紫、无玻璃拟态;图标一律内联 SVG。

参数取值建议(theme.json,13 项)

key cssVar 默认 建议
primary --af-primary #1C6E19 主色。换季校庆可微调为 #1F7A1B,勿低于 #14510F 明度(导航白字对比)
primaryDark --af-primary-dark #14510F 页脚主底/轮播标题条。与 primary 保持同色相 1~2 档差
primaryLight --af-primary-light #3FA43A 当前导航项/hover。需要更醒目可用 #4DB548,过亮会刺眼
accent --af-accent #C8A45C 麦穗金装饰线/角标。庄重场合可降饱和为 #B8934A
navBg --af-nav-bg #1C6E19 主导航底色。默认与 primary 一致;要"导航深一档"配 #14510F
footerBg --af-footer-bg #14510F 页脚主底;底条固定更深一档(--af-primary-deep,非参数)
text / textLight --af-text / --af-text-light #2A3327 / #6C7A67 正文/次要文字,偏绿灰
bg --af-bg #F5F8F3 页面底色,带一点绿调的暖白
cardBg --af-card-bg #FFFFFF 卡片底,建议保持纯白
border --af-border #DDE8DA 边框/分隔线,绿灰调
linkGreen --af-link #277428 正文链接绿,介于主色深浅之间
listLayout —(select) date 列表页形态:date=46px 日期方块行(农林官网典型);plain=通栏行式(日期右置),信息密度更高

微调优先级:站点 theme_params(本表参数)→ 站点 custom_css → 本包 main.css(契约 §6)。

首页九段形态表(fragments/home-blocks.html)

站点配 home_layout 时首页正文由本包 fragment 渲染(换肤必须连正文一起换):

fragment 触发 形态
news_grid article_list + homeStyle=news_grid 三图焦点(横排 3 封面卡)+ 双列要闻行式列表;支持站点背景带(news_bg_image,画在卡片之下)
media_focus article_list + homeStyle=media_focus 学术动态:双列密行 + 墨绿来源徽标
compact article_list + homeStyle=compact 通知公告:46px 墨绿日期方块(日大号+年月小号),行 hover 出金线
image_wall article_list + homeStyle=image_wall 四列图片墙(仅有封面条目),悬浮标题
card article_list 其他/未设 默认卡:头条图文(有封面则图文)+ 行式列表
ticker type=ticker 要闻速递横条:墨绿底、金色分隔、单行不塌列
gallery type=gallery 校园映像:居中标题+副题+四列图墙+悬浮标题
links type=links 专题网站:4 列缩略卡(绿标题条+金下杠+圆徽),分组拉平
empty 各形态 items 为空 空态「栏目暂无内容」(守卫包在外层 th:block,th:replace 优先级 100 先于 th:if 300)

未知类型回落 themes/common 通用骨架;:root 已把 --af-* 别名到契约变量(--primary/--text/--card-bg/--border/--bg/--radius),兜底骨架与 themeVarsCss 换色可穿透。

纪律要点

  • URL 一律 url.* 生成,无硬编码绝对地址;非转义输出仅契约七处白名单。
  • 中文防塌列:.af-ticker-list{min-width:0;white-space:nowrap}、.af-ticker-item{flex:none;text-overflow:ellipsis}、.af-block-item-title{min-width:0;overflow:hidden;text-overflow:ellipsis}。
  • 网格一律 minmax(0,1fr);≤768px 单列、导航横滚、子菜单静态平铺。
  • 背景带层序:.af-sec-bg z-index:0,其后 .af-block z-index:1。

截图说明

assets/screenshot.png 为按本皮肤设计语言绘制的门户结构示意图(非浏览器实拍)。管理端选择器如需实拍图,起服后截首页替换即可(记入遗留项)。