Improve share card scan order for faster link decisions

Constraint: Keep the change scoped to shares card internals without altering logs/projects card structures
Rejected: Showing project_repo as a separate row | duplicated ownership context and hurt visual hierarchy
Confidence: high
Scope-risk: narrow
Directive: Keep shares card metadata compact and action-oriented; prefer tags left and time/action right
Tested: npm run build
Not-tested: Manual cross-device visual QA in browser after commit
This commit is contained in:
SepComet 2026-05-10 10:43:05 +08:00
parent 28358164c5
commit 7a091a9b44
2 changed files with 102 additions and 19 deletions

View File

@ -36,26 +36,35 @@ const sourceLabels = {
itemCount={shares.length} itemCount={shares.length}
/> />
<div class="card-grid" style="grid-template-columns: 1fr;"> <div class="shares-list">
{shares.map((share) => ( {shares.map((share) => (
<article class="card"> <article class="card share-card">
<p class="log-meta"> <div class="share-card__content">
<span class="mono">{formatDateTime(share.updated_at || share.time) || '未标注时间'}</span> <h2 class="share-card__title">{share.name}</h2>
{share.project ? <span class="tag">{share.project}</span> : null} {share.description ? <p class="share-card__summary">{share.description}</p> : null}
{share.type ? <span class="tag tag--tech">{share.type}</span> : null} </div>
{share.source ? <span class="tag">{sourceLabels[share.source]}</span> : null}
</p> <div class="share-card__meta-row">
<h2 class="project-title">{share.name}</h2> <p class="share-card__tags">
{share.description ? <p>{share.description}</p> : null} {share.project ? <span class="tag">{share.project}</span> : null}
{share.project_repo ? <p class="activity-copy mono">{share.project_repo}</p> : null} {share.type ? <span class="tag tag--tech">{share.type}</span> : null}
<div class="project-links" style="margin-top: 1rem;"> {share.source ? <span class="tag">{sourceLabels[share.source]}</span> : null}
{share.url ? ( </p>
<a class="section-link" href={share.url} target="_blank" rel="noreferrer">
打开链接 <div class="share-card__right">
</a> <span class="share-card__time mono">
) : ( {formatDateTime(share.updated_at || share.time) || '未标注时间'}
<span class="tag">链接待补充</span> </span>
)} <div class="share-card__action project-links">
{share.url ? (
<a class="section-link" href={share.url} target="_blank" rel="noreferrer">
打开链接
</a>
) : (
<span class="tag">链接待补充</span>
)}
</div>
</div>
</div> </div>
</article> </article>
))} ))}

View File

@ -551,6 +551,67 @@ main {
text-align: right; text-align: right;
} }
.shares-list {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 1rem;
}
.share-card {
display: grid;
gap: 1rem;
}
.share-card__content {
display: grid;
gap: 0.5rem;
}
.share-card__title {
margin: 0;
font-family: 'Archivo', sans-serif;
font-size: 1.28rem;
line-height: 1.3;
}
.share-card__summary {
margin: 0;
color: var(--muted-strong);
line-height: 1.8;
}
.share-card__meta-row {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.9rem 1rem;
}
.share-card__tags {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0.55rem 0.8rem;
margin: 0;
}
.share-card__right {
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: wrap;
gap: 0.6rem 0.8rem;
}
.share-card__time {
color: var(--muted);
font-size: 0.84rem;
}
.share-card__action {
margin-left: auto;
}
.card:hover, .card:hover,
.card:focus-within { .card:focus-within {
transform: translateY(-2px); transform: translateY(-2px);
@ -889,6 +950,19 @@ main {
text-align: left; text-align: left;
} }
.share-card__meta-row {
flex-direction: column;
align-items: stretch;
}
.share-card__right {
justify-content: flex-start;
}
.share-card__action {
margin-left: 0;
}
.section-heading, .section-heading,
.footer-card { .footer-card {
align-items: flex-start; align-items: flex-start;