Design SystemPatternsAssetAssetTrendingCard

AssetTrendingCard

Adopted在本 repo 設計、production 已採用。站上是設計端的版本,production 實作可能已再調整。

Production:src/components/AssetPrediction/source/AssetTrendingCard/AssetTrendingCard.tsx

Installation

import { AssetTrendingCard } from "@/components/product/asset-trending-card/asset-trending-card";

Overview

Asset Prediction 頂部的卡:一個我們在推的資產,它的價格、 內嵌的 AssetPriceTimeline、以及進 dashboard 的入口。 AssetRow 是同一個資產讀成列,這裡讀成標題——所以名稱在這裡是 20px 的 title, 在列裡低一階(16px)。

整張卡可點,進該資產的 dashboard。 做法是覆蓋整卡的絕對定位 anchor,不是把卡包進連結、也不是在容器掛 onClick: 卡裡有真的控制項(收藏星)和有自己 hover 與 popover 的圖表, 包進 <a> 是無效 HTML, 掛 onClick 則會吃掉它們的點擊、每層都得防禦性 stopPropagation。

靜態內容(身份、價格、計數)壓在 anchor 底下,所以它們就是「卡片本身」; 需要保有互動的東西只要 relative 就浮到 anchor 之上—— 星星與圖表就是這樣退出導航區的。

Interactive Demo

BTC

Bitcoin

Crypto

$65,223.95

−0.54% · 24H

34 active · $4.2M 24H

ETH

Ethereum

Crypto

$1,873.57

−2.35% · 24H

18 active · $1.1M 24H

卡片空白處點下去進該資產的 dashboard;星星切換收藏; 圖表的歷史半邊 hover 讀價、未來半邊的時間帶維持自己的互動,且兩張卡同時只有一個面板能開。

Static State Matrix

Default

BTC

Bitcoin

Crypto

$65,223.95

−0.54% · 24H

34 active · $4.2M 24H

Hover(邊框模擬 —— Card hoverEnabled 的 hover:border-brand-main)

BTC

Bitcoin

Crypto

$65,223.95

−0.54% · 24H

34 active · $4.2M 24H

Favorited

BTC

Bitcoin

Crypto

$65,223.95

−0.54% · 24H

34 active · $4.2M 24H

尚無定價市場 · 時間軸只有歷史線、沒有系列控制

DOGE

Dogecoin

Crypto

$0.1284

−1.12% · 24H

9 active · $88K 24H

Implementation Notes

原本這張卡是 AssetPredictionPage 裡的 inline markup。抽成組件的理由和 AssetRow 一樣:它是一個可點的 surface,hover 與點擊行為需要有地方驗證。

外殼直接用 @olab Card(hoverEnabled = hover 時邊框轉 brand),p-5 照收不覆蓋。卡內三段間距 12px(gap-3)。時間軸上方原本還有一列 Weekly / Monthly 控制項,2026-08-17 移除後圖表直接接在身份列下面,繪圖區上緣的留白由圖表自己的margin.top 給(12px),卡片這一層不另外加。

缺口

  • 每張卡都可點進 dashboard,但本 repo 只有 Bitcoin 那頁真的存在, 所以每張卡目前都連到同一頁。
  • 繪圖區上下各有圖表自己的內距(上 34px 給 spot 標籤、下 20px 給月份標籤), 所以視覺留白比 8 / 16px 的元素間距看起來寬。要更緊必須動圖表內距, 會壓到那兩組標籤。