perch-design / css /memory.css
hongcoding's picture
feat: Warm Paper 设计系统开源(48 CSS + 令牌 + 实时预览)
f402bb3 verified
Raw History Blame Contribute Delete
4 kB
/* 记忆板块(契约 7A):Warm Paper 全令牌配色,规则来自 docs/design-system.md。
覆盖组件:MemoryCenter——卡片墙 + 行内表单;语义色只用于 kind 徽章语境。 */
.memory-center {
flex: 1;
min-width: 0;
overflow-y: auto;
padding: 36px 48px 48px;
display: flex;
flex-direction: column;
gap: 18px;
}
.memory-actions {
margin-bottom: 4px;
}
/* ---------- 行内表单(新增/编辑)---------- */
.memory-form {
display: flex;
flex-direction: column;
gap: 14px;
padding: 18px 20px;
border: 1px solid var(--border);
border-radius: var(--radius-card);
background: var(--bg-elevated);
}
.memory-form-title {
margin: 0;
font-family: var(--font-serif);
font-size: 17px;
font-weight: 600;
color: var(--text);
}
.memory-form-row {
display: grid;
grid-template-columns: 140px 1fr;
gap: 12px;
}
.memory-content-input {
resize: vertical;
min-height: 84px;
}
.memory-form-actions {
display: flex;
align-items: center;
gap: 8px;
}
/* ---------- 卡片墙 ---------- */
.memory-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 16px;
margin: 0;
padding: 0;
list-style: none;
}
.memory-card {
display: flex;
flex-direction: column;
gap: 6px;
padding: 16px 18px;
border: 1px solid var(--border);
border-radius: var(--radius-card);
background: var(--bg-elevated);
}
.memory-card-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
/* kind 徽章:语义色只出现在类型语境;底色统一 sunken,深浅色主题都稳 */
.memory-badge {
padding: 2px 10px;
border-radius: 999px;
background: var(--bg-sunken);
font-size: 12px;
font-weight: 500;
}
.memory-badge.is-preference {
color: var(--accent);
}
.memory-badge.is-project {
color: var(--success);
}
.memory-badge.is-device {
color: var(--warning);
}
.memory-badge.is-custom {
color: var(--text-secondary);
}
.memory-pin {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border: 1px solid transparent;
border-radius: var(--radius-chip);
background: transparent;
color: var(--text-tertiary);
cursor: pointer;
transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.memory-pin:hover {
color: var(--text-secondary);
border-color: var(--border);
}
.memory-pin.is-active {
color: var(--accent);
}
.memory-card-title {
margin: 0;
font-family: var(--font-serif);
font-size: 16.5px;
font-weight: 600;
color: var(--text);
overflow-wrap: anywhere;
}
.memory-card-content {
margin: 0;
font-size: 13px;
line-height: 1.7;
color: var(--text-secondary);
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-clamp: 2;
overflow-wrap: anywhere;
}
.memory-card-actions {
display: flex;
align-items: center;
gap: 4px;
flex-wrap: wrap;
margin-top: 4px;
}
/* 删除两段确认(与专家板块同款交互) */
.memory-confirm {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 12.5px;
color: var(--text-secondary);
}
/* ---------- 空态引导 ---------- */
.memory-empty {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
padding: 32px 24px;
border: 1px dashed var(--border);
border-radius: var(--radius-card);
background: var(--bg-elevated);
}
.memory-empty-title {
margin: 0;
font-family: var(--font-serif);
font-size: 19px;
font-weight: 600;
color: var(--text);
}
.memory-empty-hint {
margin: 0 0 6px;
max-width: 56ch;
font-size: 13px;
line-height: 1.7;
color: var(--text-secondary);
}
.memory-foot {
margin: 0;
font-size: 12.5px;
line-height: 1.7;
color: var(--text-tertiary);
}
@media (max-width: 720px) {
.memory-center {
padding: 24px 20px 32px;
}
.memory-form-row {
grid-template-columns: 1fr;
}
}