This commit is contained in:
make
2025-12-31 00:49:32 +08:00
parent ae57b68f99
commit eb8c097777
709 changed files with 39727 additions and 1041 deletions

View File

@@ -0,0 +1,212 @@
下面给你 **Aitem_01~05「继承母型 CSS 协议」(终版规则)**
目标是:以后你再加 item_06/07… 或做子变体,只需要“挂 class + 少量覆写”,不再复制粘贴一堆 CSS、也不会互相污染。
---
# 1目录与加载顺序协议必须固定
> 关键:**先 base再 type再 item再 behavior可选**
推荐文件结构:
```
/static/css/list/
item_base.css (所有 item 的共用基础,必须)
item_poster.css poster 母型item_01 / item_04
item_media.css media 母型item_02
item_rank.css rank/text 母型item_03 / item_05
item_01.css (可选:仅做微差异)
item_02.css (可选)
item_03.css (可选)
item_04.css (可选)
item_05.css (可选)
behavior.css (可选:通用行为兜底)
```
CSS 合并时顺序建议:
1. `item_base.css`
2. `item_poster.css / item_media.css / item_rank.css`
3. `item_01~05.css`(若存在)
4. `behavior.css`(若你还需要通用兜底)
---
# 2Class 命名协议(决定“继承关系”)
每个 item 根节点必须同时包含:
* **通用根类**`{$TpStyle.dom_prefix}-item`
* **母型类(必须)**`poster` / `media` / `rank`
* **编号类(可选但推荐)**`item01` / `item02`
* **行为类(来自 cfg.class**`compact loose emphasis top collapsed grouped`
示例poster 强化):
```html
<article class="{$TpStyle.dom_prefix}-item poster item04 {$cfg.class}">
```
示例(榜单 Top 强化):
```html
<article class="{$TpStyle.dom_prefix}-item rank item05 {$cfg.class}">
```
---
# 3CSS 分层协议(禁止越界)
## 3.1 item_base.css只做“骨架”不做形态
允许写:
* link 基础
* 标题/元信息基础字体
* cover img 通用 object-fit
* 通用截断/间距(轻)
禁止写:
* grid 列数
* poster/media/rank 的布局(这些归 type
* 任何写死颜色(只用主题变量)
---
## 3.2 type CSS母型决定“形态”
### item_poster.css封面型
只负责:
* `.poster` 的 cover 比例
* poster 信息区排布
* poster 的角标位置规范
### item_media.css横向信息流
只负责:
* `.media` 使用 flex row
* media cover 宽度/比例
* info 区垂直居中
### item_rank.css榜单型
只负责:
* `.rank` 的序号/标题/meta 横向布局
* Top 强化钩子(`top`
---
## 3.3 item_0X.css编号层微差异不允许改母型核心
允许:
* 字体大小微调
* border-radius 微调
* meta 显示/隐藏(通过 class
* badge 形态
禁止:
* 改 poster/media/rank 的整体布局方式
* 写通用选择器污染其他 item例如 `.poster .__PFX__-item-cover{}` 这种应该在 type
---
## 3.4 behavior.css行为兜底层可选
如果你已经在 type 里适配了 `compact/loose/emphasis/top`,这里可以很薄。
允许:
* `.collapsed` 隐藏第 N 条后内容
* `.emphasis` 容器弱装饰兜底
* `.grouped` 兜底边框背景
禁止:
* 具体 item 的细节样式(那属于 item_0X 或 type
---
# 4选择器范围协议避免串样
必须遵守“前缀+组件域”:
*`.__PFX__-item ...`
*`.__PFX__-item.poster ...`
*`.__PFX__-item.media ...`
*`.__PFX__-item.rank ...`
禁止:
*`.poster .__PFX__-item-cover`(范围太大,可能影响别的模块)
*`img{}` / `a{}` / `.title{}` 这类全局污染
---
# 5主题色协议v1.4 已定,这里重申到 item
item CSS 禁止写死颜色,只能用:
* `var(--primary-color)`
* `var(--secondary-color)`
* `var(--accent-color)`
* `var(--bg-color)`
* `var(--bg-soft-color)`
* `var(--text-color)`
* `var(--text-muted-color)`
* `var(--border-color)`
* `var(--shadow-color)`
例外:
**仅允许**类似 `rgba(0,0,0,.65)` 这种“遮罩透明度”,但不允许固定纯色背景块。
---
# 6推荐你现在的“继承落地模板”最终写法
## posteritem_01 / item_04
```html
<article class="{$TpStyle.dom_prefix}-item poster item04 {$cfg.class}">
```
## mediaitem_02
```html
<article class="{$TpStyle.dom_prefix}-item media item02 {$cfg.class}">
```
## rankitem_03 / item_05
```html
<article class="{$TpStyle.dom_prefix}-item rank item05 {$cfg.class}">
```
> 你会发现:**item_type 变量可以弱化**
> 直接用母型类 `poster/media/rank` 做继承入口最稳。
---
# 7你接下来要做的两件事落地清单
1. 把现有 `item_01~05.css` 中“母型布局”部分迁移到:
* item_poster.css
* item_media.css
* item_rank.css
2. `item_01~05.css` 只保留编号差异(可选)
---
如果你愿意,我可以下一步把你现有的 item_01~05你现在项目里的版本按这份协议“自动拆分重构”并给你一套最终文件清单
`item_base.css + item_poster.css + item_media.css + item_rank.css + item_01~05.css`(只保留微差异)。
你把当前 01~05 的 CSS或压缩包路径贴一下即可。