媒体卡

2/3 封面(此处用色块代替图片);hover 上浮 6px + accent 辉光,底部信息条滑出(延迟 80ms)。

星野之下
视觉小说 · 全年龄
雨停之前
悬疑短篇 · 连载中
<div class="demo-row">  <div class="media-card" style="width:148px">    <div class="media-card-cover" style="background:linear-gradient(160deg,var(--token-accent),var(--token-accent-deep))"></div>    <div class="media-card-overlay">      <div style="font-size:12px;font-weight:600">星野之下</div>      <div style="font-size:10px;opacity:.85">视觉小说 · 全年龄</div>    </div>  </div>  <div class="media-card" style="width:148px">    <div class="media-card-cover" style="background:linear-gradient(160deg,var(--token-accent-cold),var(--token-info))"></div>    <div class="media-card-overlay">      <div style="font-size:12px;font-weight:600">雨停之前</div>      <div style="font-size:10px;opacity:.85">悬疑短篇 · 连载中</div>    </div>  </div></div>

安装

bun add @icen.ai/ui

一行引入该组件(CSS 与 behavior 自动带上,无需关心内部 CSS 文件名):

import '@icen.ai/ui/kit/media-card';

也可以用脚手架直接打印引入行:

bunx --bun @icen.ai/ui add media-card

Astro 项目注意:kit 入口里的 CSS import 在页面 <script> 里会被 Astro 的 client bundle 摇掉——请改在布局 frontmatter 里引 CSS(import '@icen.ai/ui/components/media.css';),JS 行为仍可走 kit。Vite SPA / webpack 项目无此问题。

用法

<div class="media-card" style="width:148px">  <div class="media-card-cover" style="background:…"></div>  <div class="media-card-overlay">    <div>标题</div>    <div>副标题</div>  </div></div>