- oil-ui-pro 升到 0.22.2:references 13→28 份(新增 16、删 imagery.md)、assets 增 cards/(22 组)与 fonts/、SKILL.md 顶层五步结构未改名。 - 升级路径:官方 `npx github:oil-oil/oil-cli update` 稳定失败(error=replace、报「检查目录权限」)。 真身为 EXDEV —— 解压在 os.tmpdir()(C 盘)、技能目录在 E 盘,Windows 上 rename 不能跨盘; CLI 的 catch 把非 CliError 原生异常一律兜底成 replaceFailed,真错误一个字不吐。 做法=借其 prepare() 只做下载+校验,再 cp 到同盘 stage、rename 交换;官方命令复验 up_to_date。 - 回归:product-planning 按名引用的 visual-review.md/tools.md/design-direction.md/style-explorer.md 全部健在;命名闸门 2061|0|27。 - session-mechanism/references/pitfalls.md 新增 P0-98(含通则:更新器把原生错误兜底成指错方向的人话)。
17 lines
1.5 KiB
CSS
17 lines
1.5 KiB
CSS
.card.portrait-story {
|
|
--_card-finish-base:transparent; --_card-material-reflection:0;
|
|
position:relative; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(170px,1fr) auto;
|
|
padding:26px; aspect-ratio:4/5; min-height:auto; color:#fff; background:#171a20; border:0;
|
|
& .story-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 32%; filter:grayscale(1); transform:scale(1.025); transition:transform 1s cubic-bezier(.2,.7,.2,1); }
|
|
& .story-tint { position:absolute; inset:0; background:var(--card-accent); mix-blend-mode:multiply; opacity:.62; transition:opacity .8s; }
|
|
& .story-shade { position:absolute; inset:0; background:linear-gradient(180deg,#0003 0%,transparent 35%,#080a1052 55%,#080a10ed 100%); }
|
|
& .story-brand { position:relative; z-index:2; grid-row:1; margin:0; font-size:19px; line-height:1.2; font-weight:550; letter-spacing:-.06em; overflow-wrap:anywhere; }
|
|
& .story-copy { position:relative; z-index:2; grid-row:3; min-width:0; }
|
|
& > .card-finish { z-index:1; }
|
|
& blockquote { margin:0 0 22px; font-family:"Songti SC","Noto Serif CJK SC",Georgia,serif; font-size:clamp(23px,2.2vw,30px); line-height:1.45; letter-spacing:-.03em; }
|
|
& .story-copy p { display:flex; flex-wrap:wrap; gap:4px 12px; margin:0; font-size:11px; line-height:1.6; color:#ffffffb8; }
|
|
&:is(:hover,:focus-within) .story-photo { transform:scale(1); }
|
|
&:is(:hover,:focus-within) .story-tint { opacity:.32; }
|
|
}
|
|
@media(prefers-reduced-motion:reduce){.portrait-story *{transition:none!important;}}
|