feat(chart): 星盘改用行星符号与颜色,度数进行星表
北印星盘(星盘页 / 校正右栏 / 我的报告共用 VedicChartSvg)宫内不再画 「水 19°」「罗逆 29°」这类显示文本——一宫三颗星就叠三行、字号压到 8。 改成九个彩色符号横排,每行最多 3 个;逆行是符号下方一道同色横线, 第 1 宫加 As 小标,盘下方两行图例。度数、星宿、顺逆下沉到星盘页的 行星表,列从四列扩到八列,首行是上升,度数精确到分。 - 符号字体:vendored 的 9 字形 Noto Sans Symbols 子集(OFL,1.5 KB), 经 next/font/local 挂成 --font-planet-glyphs;♀ ♂ 带 U+FE0E 防 iOS 画成表情。构建镜像不能联网,所以必须自带,与 Inter 同一条理由。 - 颜色:--color-planet-* 九个 token,:root 与两个深色块各一份。只用于 认星不表吉凶,罗计共用中性灰。挂 is-* 修饰类而非行内 style——报告 文档的标记合同禁止渲染结果出现 style=,星盘不做例外。 - 数据来源:toNorthIndianChart() 加结构化 occupantGlyphs(星盘页与 markdown fence 走这条);校正与报告两条路线的模型只有引擎 / golden 显示文本,按首字解析,解析由测试锁住。 - 星宿沿用引擎返回名:仓库无中文宿名表,印度 27 宿与中国二十八宿不是 同一套,不自造对照。 tsc 0 错,lint 0 error,npm test 3471→3484 条、36 红与基线逐条相同, / 仍 Static,首屏 JS gzip +0.29%。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
84b293fb47
commit
5a1dcbd2a1
+38
-1
@@ -712,6 +712,26 @@ Admin 的 antd `<Spin>` 是独立设计系统,不在此表。
|
||||
|
||||
**本命宫位改北印星盘。** 用 `VedicChartSvg` 渲染代表分钟的 `house_table`。宫位表退到星盘下方的 `<details>`(读屏与复制仍可用)。换分钟时只高亮变化的宫(`changedHouses` / `lagnaChanged`),不做动画。星盘组件在校正面 `dynamic()` 分包里,不进首页首屏。
|
||||
|
||||
**盘里只放彩色行星符号(2026-09-18)。** 此前宫内画的是「水 19°」「罗逆 29°」这类显示文本,一宫三颗星就叠成三行、字号被压到 8。现在宫内只画符号,度数 / 星宿 / 逆行下沉到星盘页的行星表(§15)。星盘页、校正右栏、我的报告三处共用同一个 `VedicChartSvg`,所以三处同时生效;行星表只在星盘页。
|
||||
|
||||
| 元素 | 画法 |
|
||||
| --- | --- |
|
||||
| 行星 | ☉ 日 · ☽ 月 · ☿ 水 · ♀ 金 · ♂ 火 · ♃ 木 · ♄ 土 · ☊ 罗 · ☋ 计,每颗一个颜色 |
|
||||
| 排布 | 一宫内横排,每行最多 3 个,第 4 颗起第二行;`MAX_RENDERED_OCCUPANTS` 仍是 6,第 7 颗起收成 `+N` |
|
||||
| 逆行 | 符号正下方一道同色短横线,不再写「逆」字 |
|
||||
| 上升 | 第 1 宫加一个上升色粗体小标 `As`。北印度盘第 1 宫恒为上升宫,这个标记来自几何不来自数据,也不占 `+N` 名额 |
|
||||
| 图例 | 盘下方两行:九个符号各跟一个汉字,末尾「横线=逆行」。只在盘里有星时出现,出现时 viewBox 高度从 400 变 452 |
|
||||
|
||||
颜色 token 在 `globals.css` 的 `:root` 与两个深色块各定义一份,**只用于认星,不表示吉凶**——罗计共用一个中性灰正是这个意思:
|
||||
|
||||
`--color-planet-sun` / `-moon` / `-mars` / `-mercury` / `-jupiter` / `-venus` / `-saturn` / `-node` / `-ascendant`。
|
||||
|
||||
颜色挂在 `is-sun`…`is-node` / `is-ascendant` 修饰类上,不用行内 `style`——报告文档的标记合同禁止渲染结果里出现 `style=`,星盘不做例外。
|
||||
|
||||
符号字体是 vendored 的 9 字形 Noto Sans Symbols 子集(OFL,1.5 KB,`src/app/fonts/NotoSansSymbols-planets.woff2`,来源写在 `SOURCE.txt`),经 `next/font/local` 挂成 `--font-planet-glyphs`;字体栈是 `var(--font-planet-glyphs), "Apple Symbols", "Segoe UI Symbol", "Noto Sans Symbols", serif`。构建镜像不能联网,所以必须自带,和 Inter 同一条理由。♀ ♂ 后面跟 U+FE0E,否则 iOS 会画成表情。
|
||||
|
||||
`aria-label` 与宫位 `<details>` 表仍读 `occupants` 显示字符串,读屏拿到的还是「水 19°」这种完整信息;符号只改看的那一层。
|
||||
|
||||
**折叠块只有两段(D10,2026-09-16)。** 此前盘面从上到下并排五个 `<details className="technique-audit">`,一屏扫下去全是折叠头,看不出哪个该点。现在收敛成两段,星盘本身不折叠:
|
||||
|
||||
| 段 | 装什么 |
|
||||
@@ -769,7 +789,24 @@ Admin 的 antd `<Spin>` 是独立设计系统,不在此表。
|
||||
|
||||
### 行星表
|
||||
|
||||
三张 `.chart-page-planet-table`(印度盘宿度、西洋相位、七政十一曜)**每一张**都包在 `.chart-page-planet-table-wrap` 里:`min-width: 0` + `overflow-x: auto`,表本身 `min-width: 26rem`。375px 下表格在自己的盒子里横滚,页面不横滚。`min-width: 0` 和 overflow 一样是必需的——grid item 默认按内容定宽,少了它表格会把页面撑宽而不是滚动。
|
||||
三张 `.chart-page-planet-table`(印度盘宿度、西洋相位、七政十一曜)**每一张**都包在 `.chart-page-planet-table-wrap` 里:`min-width: 0` + `overflow-x: auto`。375px 下表格在自己的盒子里横滚,页面不横滚。`min-width: 0` 和 overflow 一样是必需的——grid item 默认按内容定宽,少了它表格会把页面撑宽而不是滚动。印度盘那张从四列扩到八列后 `min-width` 由 `26rem` 提到 `34rem`。
|
||||
|
||||
**印度盘行星表的八列(2026-09-18)。** 盘里不再写的东西全部落在这里:
|
||||
|
||||
| 列 | 内容 |
|
||||
| --- | --- |
|
||||
| 行星 | 上色符号 + 中文名 + 灰色缩写(Su/Mo/Ma/Me/Ju/Ve/Sa/Ra/Ke,上升 As) |
|
||||
| 黄道经度 | 星座 + 度°分′。不四舍五入到整度——29°59′ 与 0°01′ 差一个星座 |
|
||||
| 速度 | 顺 / 逆 |
|
||||
| 宫位 | N 宫 |
|
||||
| 星宿 | 引擎返回的星宿名。**没有中文宿名表就不造一个**:印度 27 宿与中国二十八宿不是同一套,硬对上去是编事实 |
|
||||
| 宿主 | 星宿主的上色符号,居中 |
|
||||
| pada | 1–4,居中 |
|
||||
| 状态 | 尊贵 / 庙旺等,原样保留,只是挪到最后一列 |
|
||||
|
||||
第一行是上升。上升是盘点不是星体,引擎不返回它的星宿 / pada / 宿主,这三格写「—」而不是填一个看起来合理的值。数字列 `tabular-nums`,符号列与宿主列居中。
|
||||
|
||||
本轮不新增第二层页签:星盘页已有五个 Tab,参照里「宫位 / 大运 / 星力 / 瑜伽」等页签的内容后续另立单。
|
||||
|
||||
### 三套坐标系
|
||||
|
||||
|
||||
Reference in New Issue
Block a user