Files
wordpress-theme-aksrt/assets/css/routes/profile/lists.css
T

661 lines
14 KiB
CSS

/* ==================== 文章 / 收藏 列表(无图) ==================== */
.profile-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 14px;
}
.profile-list-item {
position: relative;
padding: 16px 18px;
border: 1px solid var(--color-line);
border-radius: var(--radius-lg);
background: var(--surface-1);
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
transition: background-color var(--dur-fast) var(--ease),
border-color var(--dur-fast) var(--ease),
box-shadow var(--dur-fast) var(--ease),
opacity var(--dur) var(--ease);
}
.profile-list-item:hover {
background: var(--surface-1);
border-color: var(--color-line-strong, var(--color-line));
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}
.profile-list-item.is-removing {
opacity: 0;
transform: translateX(-12px);
}
.profile-list[data-list="favorites"] .profile-list-item {
background: var(--surface-1);
border-color: var(--color-line);
}
.profile-list[data-list="favorites"] .profile-list-item:hover {
background: var(--surface-1);
border-color: var(--color-line-strong, var(--color-line));
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}
.profile-list-item__main {
display: flex;
flex-direction: column;
gap: 8px;
}
.profile-list-item__head {
display: flex;
align-items: baseline;
gap: 12px;
min-width: 0;
}
.profile-list-item__title {
flex: 1;
margin: 0;
font-family: var(--font-display);
font-size: var(--text-md, 1.125rem);
font-weight: 700;
line-height: 1.4;
color: var(--color-ink);
letter-spacing: -0.01em;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.profile-list-item__title a {
color: inherit;
text-decoration: none;
transition: color var(--dur-fast) var(--ease);
}
.profile-list-item:hover .profile-list-item__title a {
color: var(--color-ink);
}
.profile-list-item__status-badge {
display: inline-flex;
align-items: center;
margin-left: 6px;
padding: 2px 8px;
font-size: 11px;
font-weight: 600;
line-height: 1.4;
letter-spacing: 0.02em;
color: var(--color-warning);
background: rgba(245, 158, 11, 0.10);
border-radius: var(--radius-pill);
vertical-align: middle;
}
.profile-list-item__date {
flex-shrink: 0;
font-size: 12px;
color: var(--color-ink-4);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.profile-list-item__excerpt {
margin: 0;
font-family: var(--font-body);
font-size: var(--text-sm, 0.875rem);
line-height: 1.65;
color: var(--color-ink-3);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.profile-list-item__meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
font-size: 12px;
color: var(--color-ink-4);
}
.profile-list-item__meta-spacer {
flex: 1 0 auto;
}
.profile-list-item__chip {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 8px;
font-size: 11px;
font-weight: 500;
line-height: 1.4;
border: 1px solid var(--color-line);
border-radius: 999px;
text-decoration: none;
letter-spacing: 0.02em;
background: var(--surface-1);
color: var(--color-ink-4);
transition: color var(--dur-fast) var(--ease),
background-color var(--dur-fast) var(--ease),
border-color var(--dur-fast) var(--ease);
}
.profile-list-item__chip--category {
color: var(--color-ink-3);
background: var(--surface-1);
border-color: var(--color-line);
}
.profile-list-item__chip--category:hover {
color: var(--color-ink-2);
background: var(--surface-2);
border-color: var(--color-line-strong, var(--color-line));
}
.profile-list-item__chip--category i {
font-size: 10px;
line-height: 1;
color: inherit;
}
.profile-list-item__chip--tag {
color: var(--color-ink-4);
background: var(--surface-1);
border-color: var(--color-line);
}
.profile-list-item__chip--tag:hover {
color: var(--color-ink-3);
border-color: var(--color-line-strong, var(--color-line));
background: var(--surface-2);
}
.profile-list-item__meta-item {
display: inline-flex;
align-items: center;
gap: 4px;
white-space: nowrap;
}
.profile-list-item__meta-item svg {
width: 13px;
height: 13px;
opacity: 0.85;
}
.profile-list-item__action {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 10px;
margin-left: 4px;
font-size: 12px;
font-weight: 500;
line-height: 1.4;
color: var(--color-ink-4);
background: var(--surface-1);
border: 1px solid var(--color-line);
border-radius: var(--radius-pill);
cursor: pointer;
text-decoration: none;
transition: color var(--dur-fast) var(--ease),
background-color var(--dur-fast) var(--ease),
border-color var(--dur-fast) var(--ease),
opacity var(--dur-fast) var(--ease);
}
.profile-list-item__action:hover {
color: var(--color-ink-2);
border-color: var(--color-line-strong, var(--color-line));
background: var(--surface-2);
}
.profile-list-item__action--unfavorite {
color: var(--color-ink-4);
border-color: var(--color-line);
}
.profile-list-item__action--unfavorite:hover {
color: var(--color-error);
border-color: var(--color-error);
background: rgba(239, 68, 68, 0.04);
}
.profile-list-item__action--unfavorite svg {
fill: currentColor;
}
.profile-list-item__action.is-loading {
opacity: 0.5;
pointer-events: none;
}
.profile-list-item__action-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 13px;
height: 13px;
}
.profile-list-item__action-icon svg {
width: 13px;
height: 13px;
}
/* ==================== 评论列表 ==================== */
.profile-comment-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 14px;
}
.profile-comment-item {
position: relative;
padding: 16px 18px;
border: 1px solid var(--color-line);
border-radius: var(--radius-lg);
background: var(--surface-1);
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
transition: background-color var(--dur-fast) var(--ease),
border-color var(--dur-fast) var(--ease),
box-shadow var(--dur-fast) var(--ease);
}
.profile-comment-item::before {
content: none;
}
.profile-comment-item:hover {
background: var(--surface-1);
border-color: var(--color-line-strong, var(--color-line));
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}
.profile-comment-item__quote-link {
display: flex;
align-items: flex-start;
gap: 6px;
text-decoration: none;
color: var(--color-ink-2);
margin-bottom: 8px;
}
.profile-comment-item__quote-link:hover .profile-comment-item__quote-text {
color: var(--color-ink-2);
}
.profile-comment-item__quote-mark {
flex-shrink: 0;
font-family: var(--font-display);
font-size: 18px;
line-height: 1;
color: var(--color-ink-4);
opacity: 0.45;
margin-top: 2px;
}
.profile-comment-item__quote-text {
flex: 1;
font-family: var(--font-body);
font-size: var(--text-sm, 0.875rem);
line-height: 1.65;
color: var(--color-ink-2);
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
transition: color var(--dur-fast) var(--ease);
}
.profile-comment-item__meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin-left: 0;
font-size: 12px;
color: var(--color-ink-4);
}
.profile-comment-item__meta-item {
display: inline-flex;
align-items: center;
gap: 4px;
}
.profile-comment-item__meta-item i {
font-size: 11px;
opacity: 0.75;
}
.profile-comment-item__meta-sep {
opacity: 0.5;
}
.profile-comment-item__post-link {
color: var(--color-ink-2);
font-weight: 500;
text-decoration: none;
transition: color var(--dur-fast) var(--ease);
}
.profile-comment-item__post-link:hover {
color: var(--color-ink);
}
/* ==================== 分页 ==================== */
.profile-pagination {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 4px;
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid var(--color-line-soft);
}
.profile-pagination .page-numbers {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 32px;
height: 32px;
padding: 0 10px;
font-size: 13px;
font-weight: 500;
color: var(--color-ink-3);
background: var(--surface-1);
border: 1px solid var(--color-line);
border-radius: 8px;
text-decoration: none;
transition: color var(--dur-fast) var(--ease),
background-color var(--dur-fast) var(--ease),
border-color var(--dur-fast) var(--ease);
}
.profile-pagination a.page-numbers:hover {
color: var(--color-primary);
border-color: var(--color-primary);
background: var(--color-primary-soft);
}
.profile-pagination .page-numbers.current {
color: var(--color-on-primary, #fff);
background: var(--color-primary);
border-color: var(--color-primary);
}
.profile-pagination .page-numbers.dots {
border-color: transparent;
background: transparent;
}
/* ==================== 空状态 ==================== */
.profile-empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 56px 20px;
text-align: center;
}
.profile-empty__icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
margin-bottom: 16px;
border-radius: var(--radius-pill);
background: var(--color-primary-soft);
color: var(--color-primary);
}
.profile-empty__icon svg {
width: 30px;
height: 30px;
}
.profile-empty__title {
margin: 0 0 6px;
font-family: var(--font-display);
font-size: var(--text-md, 1.125rem);
font-weight: 700;
color: var(--color-ink);
}
.profile-empty__desc {
margin: 0 0 16px;
font-family: var(--font-body);
font-size: var(--text-sm, 0.875rem);
color: var(--color-ink-3);
max-width: 360px;
line-height: 1.65;
}
.profile-empty__cta {
text-decoration: none;
}
/* ---- 联系方式行 ---- */
.contact-row {
display: flex;
gap: 8px;
align-items: center;
margin-bottom: 8px;
}
.contact-icon {
flex: 0 0 120px;
min-width: 0;
}
.contact-row .contact-url {
flex: 1;
min-width: 0;
}
.contact-remove {
flex-shrink: 0;
width: 40px;
height: 40px;
border: none;
border-radius: 6px;
background: transparent;
color: var(--color-ink-4);
font-size: 20px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.15s, color 0.15s;
}
.contact-remove:hover {
background: rgba(220, 38, 38, 0.1);
color: var(--color-error);
}
/* ---- 保存反馈 ---- */
#profile-save-msg.success { color: var(--color-success); }
#profile-save-msg.error { color: var(--color-error); }
/* ==================== 账号设置区 ==================== */
.settings-section {
margin-bottom: 20px;
}
.settings-section__header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 14px;
}
.settings-icon {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border-radius: 8px;
background: var(--color-primary);
color: var(--color-on-primary, #fff);
font-size: 16px;
flex-shrink: 0;
}
.settings-icon i,
.security-action-icon i,
.aksrt-modal__icon i,
.aksrt-modal__close i {
line-height: 1;
}
.settings-hint {
font-size: 13px;
color: var(--color-ink-4);
margin: 4px 0 12px;
}
.settings-hint--top {
margin-top: 0;
margin-bottom: 10px;
}
.settings-hint--bottom {
margin-top: 8px;
}
.settings-section__title {
margin: 0;
border: 0;
}
.settings-empty {
font-size: 13px;
color: var(--color-ink-4);
padding: 24px 0;
text-align: center;
}
/* ---- 第三方绑定列表 ---- */
.binding-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.binding-item {
display: flex;
align-items: center;
gap: 10px;
padding: 11px 14px;
background: var(--surface-1);
border: 1px solid var(--color-line);
border-radius: 8px;
transition: border-color 0.15s, background 0.15s;
}
.binding-item--linkable {
cursor: pointer;
text-decoration: none;
color: inherit;
}
.binding-item--linkable:hover {
border-color: var(--color-primary);
background: var(--color-primary-softer);
}
.binding-item__icon {
display: flex;
align-items: center;
width: 22px;
height: 22px;
color: var(--color-ink);
flex-shrink: 0;
}
.binding-item__icon svg {
width: 100%;
height: 100%;
}
.binding-item__meta {
display: flex;
flex: 1;
align-items: center;
gap: 8px;
min-width: 0;
}
.binding-status {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 12px;
font-weight: 600;
color: var(--color-success);
white-space: nowrap;
}
.binding-status--idle {
color: var(--color-ink-4);
}
.binding-item__name {
font-size: 14px;
font-weight: 600;
min-width: 0;
}
/* ---- 徽章 ---- */
.badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 10px;
border-radius: 100px;
font-size: 11px;
font-weight: 500;
line-height: 1.5;
white-space: nowrap;
}
.badge__icon {
line-height: 1;
}
.badge--bound {
background: #ecfdf5;
color: #059669;
}
.badge--bind {
background: #eff6ff;
color: var(--color-primary);
border: 1px solid var(--color-primary-soft);
}
/* ---- 解绑按钮 ---- */
.binding-unbind-btn {
background: none;
border: none;
color: var(--color-ink-4);
font-size: 12px;
cursor: pointer;
padding: 4px 10px;
border-radius: 6px;
transition: color 0.15s, background 0.15s;
}
.binding-unbind-btn:hover {
color: var(--color-error);
background: rgba(239, 68, 68, 0.08);
}
/* ---- 安全设置操作区 ---- */
.security-actions {
display: flex;
flex-direction: column;
gap: 12px;
}
.security-action-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 16px;
background: var(--surface-1);
border: 1px solid var(--color-line);
border-radius: 10px;
}
.security-action-info {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
min-width: 0;
}
.security-action-icon {
display: flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
border-radius: 10px;
background: var(--color-primary-soft);
color: var(--color-primary);
flex-shrink: 0;
font-size: 18px;
}
.security-action-text {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.security-action-title {
font-size: 14px;
font-weight: 600;
color: var(--color-ink);
}
.security-action-desc {
font-size: 12px;
color: var(--color-ink-4);
}