The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding survived the sweeps in CSS classes, the SVG sprite prefix, a persisted widget field ID, JS events, admin Vue class names, test infrastructure and docblocks. Renames: - zib-widget / zib-widget-wrap / zib-slider → jio-widget-box / jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern widget shell, jio-box-* by the card primitives) - zib-partners-scroll + zps-* → jio-partners-scroll + jps-* - zib-combo-info-card + zci-* → jio-combo-info-card + jci-* - zibsvg- → jiosvg-, including the exported picker helpers and the fa-zibsvg- family-prefix guard - zibpay_type → pay_type; the dual-read fallback in PostQuery collapses to a single key - [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success → jio_ajax.success - aks-* admin Vue classes → jio-* - zib_palette() → palette() User-facing vendor traces are gone: the floating "more" button default no longer ships a zibll.com link or 子比主题 marketing copy, the notice widget ships no preset promo entries, and the four 官网教程 links are removed from the post-list admin schema. Test infrastructure renamed to neutral names (docker-compose.reference.yml, Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with their DB/volume/env/slug identifiers following. Kept intentionally, documented in tests/fixtures/README.md: the golden fixture reference fingerprint (a SHA-256 record of an external directory, read by validate-widget-golden / generate-widget-golden-fixture / audit-widget-system), the doesNotMatch guards that prove the old tokens are gone, and the reference theme's own meta key in the visual fixtures. No backward-compat or data migration: saved widget configs holding old icon keys or the old field ID silently lose them, per the project's rewrite-over-compatibility rule. Verified: 132/132 node contract tests, php tests/widget-system/run.php (146 assertions), audit-admin-contracts, audit-psr4-paths and validate-widget-golden all green; tracked bundles regenerated and in sync. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
592 lines
15 KiB
CSS
592 lines
15 KiB
CSS
/**
|
||
* User Center — shell / sidebar / content base / drawer
|
||
*/
|
||
|
||
/**
|
||
* Jio User Center — 本人中心专属样式
|
||
*
|
||
* 原主题风格两栏布局:左侧边栏 + 右侧内容区
|
||
* 仅在本人中心页面加载(body.jio-user-center)
|
||
*/
|
||
|
||
/* ==================== 用户中心容器 ==================== */
|
||
/* 主内容宽度由 frontend/layout.css 的 profile shell 合同统一管理。 */
|
||
.jio-profile.content-shell {
|
||
display: block;
|
||
width: 100%;
|
||
max-width: none;
|
||
padding: 0 0 40px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* main 仍带 legacy .user-center 类;旧规则会把整页误设为 flex,并以
|
||
* gap:20px 挤窄第一个 flex 子项(顶部资料卡所在的 content-wrap)。 */
|
||
.jio-profile.user-center {
|
||
display: block;
|
||
gap: 0;
|
||
}
|
||
|
||
/* 顶部资料卡位于双栏布局之前,必须与用户中心外壳同宽,不能继续继承
|
||
* legacy .content-wrap / .container 的收窄规则。 */
|
||
.jio-profile.content-shell > .content-wrap,
|
||
.jio-profile.content-shell > .content-wrap > .uc-header,
|
||
.jio-profile.content-shell .uc-header {
|
||
width: 100%;
|
||
max-width: none;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* VIP, level and worn-medal marks share the global identity baseline. */
|
||
.uc-header__name > .img-icon,
|
||
h1.uc-header__name > .img-icon,
|
||
.uc-header__name .medal-icon.img-icon,
|
||
.uc-header__name .jio-identity-medal,
|
||
h1.uc-header__name .medal-icon.img-icon,
|
||
h1.uc-header__name .jio-identity-medal {
|
||
width: auto;
|
||
height: 1.1em;
|
||
max-width: 6em;
|
||
object-fit: contain;
|
||
vertical-align: -.15em;
|
||
margin-left: 4px;
|
||
display: inline-block;
|
||
border: none;
|
||
outline: none;
|
||
box-shadow: none;
|
||
background: transparent;
|
||
}
|
||
|
||
/* ==================== 页面自有双栏(对齐 legacy .user-center flex,不走全站 float 壳) ==================== */
|
||
/* DOM: sidebar first + content second(与 legacy user-center-sidebar / user-center-content 一致)。
|
||
* 选择器同时覆盖 body.jio-user-center 与 main.user-center / .jio-profile,避免 body class 漏打时失效。 */
|
||
body.jio-user-center .content-wrap,
|
||
.jio-profile .content-wrap,
|
||
.user-center .content-wrap {
|
||
float: none;
|
||
width: 100%;
|
||
min-width: 0;
|
||
}
|
||
|
||
/* 对齐 legacy: .user-center { display:flex; gap:20px; } */
|
||
body.jio-user-center .user-center-body,
|
||
body.jio-user-center .jio-profile__layout,
|
||
.jio-profile .user-center-body,
|
||
.jio-profile .jio-profile__layout,
|
||
.user-center .user-center-body {
|
||
display: flex;
|
||
flex-direction: row;
|
||
flex-wrap: nowrap;
|
||
align-items: flex-start;
|
||
gap: 20px;
|
||
width: 100%;
|
||
margin-left: 0;
|
||
margin-right: 0;
|
||
min-width: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 中和 site-layout-2/3 对 content-layout 的 margin 挖空(兼容旧 class) */
|
||
body.jio-user-center.site-layout-1 .jio-profile__layout,
|
||
body.jio-user-center.site-layout-2 .jio-profile__layout,
|
||
body.jio-user-center.site-layout-3 .jio-profile__layout,
|
||
body.jio-user-center.site-layout-1 .user-center-body,
|
||
body.jio-user-center.site-layout-2 .user-center-body,
|
||
body.jio-user-center.site-layout-3 .user-center-body {
|
||
margin-left: 0;
|
||
margin-right: 0;
|
||
}
|
||
|
||
/* 对齐 legacy: .user-center .user-center-sidebar { width:320px; flex-shrink:0; } */
|
||
body.jio-user-center .user-center-sidebar,
|
||
body.jio-user-center .uc-sidebar,
|
||
body.jio-user-center .jio-profile__aside,
|
||
.jio-profile .user-center-sidebar,
|
||
.jio-profile .uc-sidebar,
|
||
.jio-profile .jio-profile__aside,
|
||
.user-center .user-center-sidebar {
|
||
float: none;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0;
|
||
flex: 0 0 320px;
|
||
width: 320px;
|
||
max-width: 320px;
|
||
margin-left: 0;
|
||
margin-right: 0;
|
||
box-sizing: border-box;
|
||
min-width: 0;
|
||
position: sticky;
|
||
top: calc(var(--nav-height, 60px) + 20px);
|
||
align-self: flex-start;
|
||
}
|
||
|
||
/* 对齐 legacy: .user-center .user-center-content { width: calc(100% - 320px); } */
|
||
body.jio-user-center .user-center-content,
|
||
body.jio-user-center .uc-content,
|
||
.jio-profile .user-center-content,
|
||
.jio-profile .uc-content,
|
||
.user-center .user-center-content {
|
||
flex: 1 1 auto;
|
||
width: calc(100% - 340px);
|
||
min-width: 0;
|
||
max-width: none;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.uc-header__actions {
|
||
position: relative;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
}
|
||
|
||
.uc-header__signin-btn.is-done {
|
||
color: var(--color-success, #10b981);
|
||
}
|
||
|
||
.uc-header__message-btn {
|
||
position: relative;
|
||
}
|
||
|
||
.uc-header__action-badge {
|
||
position: absolute;
|
||
top: -5px;
|
||
right: -5px;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-width: 16px;
|
||
height: 16px;
|
||
margin: 0;
|
||
padding: 0 4px;
|
||
border-radius: 999px;
|
||
background: var(--color-error, #ef4444);
|
||
color: #fff;
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
line-height: 1;
|
||
}
|
||
/* ==================== 左侧边栏 chrome ==================== */
|
||
/* sticky / 宽度由 .user-center-sidebar 负责;此处只定 section/btn 视觉 */
|
||
.uc-sidebar {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0;
|
||
}
|
||
|
||
/* 侧栏卡片间距:1:1 参考主题。参考侧栏是普通块流,每张卡片自带 mb20
|
||
(jio-widget-box 默认也是 20px),≤640px 由 mb10-sm 收到 10px。
|
||
本站侧栏不用 gap,间距全部由卡片自己的 margin-bottom 承担。 */
|
||
.uc-sidebar > .uc-sidebar-statistics,
|
||
.uc-sidebar > .uc-sidebar-vip,
|
||
.uc-sidebar > .uc-sidebar__pair,
|
||
.uc-sidebar-centers > .jio-widget-box,
|
||
.uc-sidebar > .uc-sidebar-iconbox {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
@media (max-width: 640px) {
|
||
.uc-sidebar > .uc-sidebar-statistics,
|
||
.uc-sidebar > .uc-sidebar-vip,
|
||
.uc-sidebar > .uc-sidebar__pair,
|
||
.uc-sidebar-centers > .jio-widget-box,
|
||
.uc-sidebar > .uc-sidebar-iconbox {
|
||
margin-bottom: 10px;
|
||
}
|
||
}
|
||
|
||
.uc-sidebar__section {
|
||
background: var(--surface-1);
|
||
border-radius: var(--main-radius, var(--radius, 8px));
|
||
padding: 16px;
|
||
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
|
||
border: 1px solid var(--color-line-soft, transparent);
|
||
}
|
||
|
||
.uc-sidebar__title {
|
||
font-size: 12px;
|
||
font-weight: 600;
|
||
color: var(--color-ink-4);
|
||
margin-bottom: 12px;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
padding-bottom: 8px;
|
||
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
|
||
}
|
||
|
||
/* 侧栏按钮组 */
|
||
.uc-sidebar__buttons {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 2px;
|
||
}
|
||
|
||
.uc-sidebar__btn {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
width: 100%;
|
||
padding: 10px 12px;
|
||
border: none;
|
||
border-radius: 8px;
|
||
background: transparent;
|
||
color: var(--color-ink-2);
|
||
text-decoration: none;
|
||
font-size: 14px;
|
||
font-weight: 500;
|
||
cursor: pointer;
|
||
transition: background-color 0.15s, color 0.15s, box-shadow 0.15s;
|
||
text-align: left;
|
||
position: relative;
|
||
}
|
||
|
||
.uc-sidebar__btn::before {
|
||
content: '';
|
||
position: absolute;
|
||
left: 0;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
width: 3px;
|
||
height: 0;
|
||
background: var(--color-primary);
|
||
border-radius: 0 3px 3px 0;
|
||
transition: height 0.2s ease;
|
||
}
|
||
|
||
.uc-sidebar__btn:hover {
|
||
background: var(--surface-2);
|
||
color: var(--color-ink);
|
||
}
|
||
|
||
.uc-sidebar__btn.is-active {
|
||
background: var(--color-primary-soft);
|
||
color: var(--color-primary);
|
||
font-weight: 600;
|
||
}
|
||
|
||
.uc-sidebar__btn.is-active::before {
|
||
height: 20px;
|
||
}
|
||
|
||
.uc-sidebar__btn i {
|
||
width: 18px;
|
||
text-align: center;
|
||
font-size: 14px;
|
||
flex-shrink: 0;
|
||
opacity: 0.8;
|
||
}
|
||
|
||
.uc-sidebar__btn.is-active i {
|
||
opacity: 1;
|
||
}
|
||
|
||
.uc-sidebar__badge {
|
||
margin-left: auto;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-width: 18px;
|
||
height: 18px;
|
||
padding: 0 5px;
|
||
border-radius: 100px;
|
||
background: var(--color-error);
|
||
color: #fff;
|
||
font-size: 11px;
|
||
font-weight: 600;
|
||
line-height: 1;
|
||
animation: badge-pulse 2s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes badge-pulse {
|
||
0%, 100% { transform: scale(1); }
|
||
50% { transform: scale(1.1); }
|
||
}
|
||
|
||
/* 移动端抽屉触发器 */
|
||
.uc-sidebar__drawer-trigger {
|
||
display: none;
|
||
position: fixed;
|
||
bottom: calc(80px + env(safe-area-inset-bottom, 0px));
|
||
right: calc(20px + env(safe-area-inset-right, 0px));
|
||
width: 50px;
|
||
height: 50px;
|
||
border-radius: 50%;
|
||
border: none;
|
||
background: var(--color-primary);
|
||
color: #fff;
|
||
font-size: 20px;
|
||
cursor: pointer;
|
||
box-shadow: 0 4px 16px rgba(0,0,0,0.25);
|
||
z-index: 100;
|
||
align-items: center;
|
||
justify-content: center;
|
||
transition: transform 0.2s, box-shadow 0.2s;
|
||
}
|
||
|
||
.uc-sidebar__drawer-trigger:hover {
|
||
transform: scale(1.02);
|
||
box-shadow: 0 6px 20px rgba(0,0,0,0.3);
|
||
}
|
||
|
||
.uc-sidebar__drawer-trigger:active {
|
||
transform: scale(0.92);
|
||
}
|
||
|
||
/* 抽屉遮罩 */
|
||
.uc-drawer-overlay {
|
||
display: none;
|
||
position: fixed;
|
||
inset: 0;
|
||
background: rgba(0,0,0,0.45);
|
||
backdrop-filter: blur(2px);
|
||
-webkit-backdrop-filter: blur(2px);
|
||
z-index: 200;
|
||
opacity: 0;
|
||
transition: opacity 0.3s;
|
||
}
|
||
|
||
.uc-drawer-overlay.is-visible {
|
||
display: block;
|
||
opacity: 1;
|
||
}
|
||
|
||
/* ==================== 右侧内容区 ==================== */
|
||
/* 宽度由 .user-center-content / flex 行负责;此处只定内容区 min-width */
|
||
.uc-content {
|
||
min-width: 0;
|
||
}
|
||
|
||
.uc-content .dashboard-panel {
|
||
background: var(--surface-1);
|
||
border-radius: var(--main-radius, var(--radius, 8px));
|
||
padding: 24px;
|
||
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
|
||
border: 1px solid var(--color-line-soft, transparent);
|
||
animation: panel-fade-in 0.25s ease;
|
||
}
|
||
|
||
@keyframes panel-fade-in {
|
||
from { opacity: 0; transform: translateY(6px); }
|
||
to { opacity: 1; transform: translateY(0); }
|
||
}
|
||
|
||
.uc-content .dashboard-panel.is-active {
|
||
display: block;
|
||
}
|
||
|
||
/* 面板内 widget-card 增强 */
|
||
.uc-content .widget-card {
|
||
border: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
|
||
border-radius: 10px;
|
||
padding: 20px;
|
||
margin-bottom: 16px;
|
||
background: var(--surface-1);
|
||
transition: box-shadow 0.2s;
|
||
}
|
||
|
||
.uc-content .widget-card:hover {
|
||
box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
|
||
}
|
||
|
||
.uc-content .dashboard-panel:not(#panel-settings) > .widget-card,
|
||
.uc-content #panel-profile .profile-form > .widget-card {
|
||
background: transparent;
|
||
border: 0;
|
||
border-radius: 0;
|
||
box-shadow: none;
|
||
margin-bottom: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
.uc-content .dashboard-panel:not(#panel-settings) > .widget-card:hover,
|
||
.uc-content #panel-profile .profile-form > .widget-card:hover {
|
||
box-shadow: none;
|
||
}
|
||
|
||
.uc-content #panel-profile .profile-form > .widget-card + .widget-card {
|
||
margin-top: 18px;
|
||
padding-top: 18px;
|
||
border-top: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
|
||
}
|
||
|
||
|
||
/* 文章 / 评论 / 收藏 / 粉丝:1:1 同构 sidebar statistics。
|
||
侧栏统计项没有专门样式,外观全部来自 jio-widget-box padding-10
|
||
与 em14 / em09 opacity5 mt6;链接交互来自全局 a / a:hover 与 a[href] 过渡:
|
||
常态正文色,悬停/聚焦切到 --focus-color,color 0.2s 过渡,无下划线、无 outline。 */
|
||
.uc-sidebar-statistics.jio-widget-box {
|
||
clear: both;
|
||
line-height: 1.42857143;
|
||
background-color: var(--main-bg-color);
|
||
box-shadow: 0 0 10px var(--main-shadow);
|
||
border-radius: var(--main-radius);
|
||
color: var(--main-color);
|
||
}
|
||
|
||
.uc-sidebar-statistics > .user-statistics-item {
|
||
color: var(--main-color);
|
||
text-decoration: none;
|
||
transition: color 0.2s, background 0.3s, opacity 0.3s, box-shadow 0.3s, transform 0.3s;
|
||
}
|
||
|
||
.uc-sidebar-statistics > .user-statistics-item:hover,
|
||
.uc-sidebar-statistics > .user-statistics-item:focus {
|
||
color: var(--focus-color, #f04494);
|
||
outline: 0;
|
||
text-decoration: none;
|
||
}
|
||
|
||
@media (max-width: 991.98px) {
|
||
.uc-sidebar > .uc-sidebar-statistics {
|
||
margin-right: 12px;
|
||
margin-left: 12px;
|
||
}
|
||
}
|
||
|
||
/* VIP 入口:1:1 同构 sidebar vip,外观全部来自
|
||
payvip-icon / badg / btn-block / abs-right。这里只补 <a> 与侧栏 gap 带来的差异。 */
|
||
.uc-sidebar .uc-sidebar-vip,
|
||
.uc-sidebar .uc-sidebar-vip:hover,
|
||
.uc-sidebar .uc-sidebar-vip:focus {
|
||
color: #ece0e0;
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* legacy-utilities 把 .abs-right 改成 top:0/right:0,恢复垂直居中几何。 */
|
||
.uc-sidebar-vip > .abs-right {
|
||
top: 50%;
|
||
right: 0.7em;
|
||
transform: translateY(-50%);
|
||
}
|
||
|
||
.uc-sidebar-vip .img-icon {
|
||
height: 1em;
|
||
width: auto;
|
||
vertical-align: -0.1em;
|
||
}
|
||
|
||
/* 创作中心 / 推广中心:1:1 同构 sidebar income/rebate 入口。
|
||
.jio-widget-box 在本站不是全局类,在侧栏内按同名原值落地。 */
|
||
.uc-sidebar-centers > .jio-widget-box {
|
||
clear: both;
|
||
background-color: var(--main-bg-color);
|
||
padding: 10px;
|
||
box-shadow: 0 0 10px var(--main-shadow);
|
||
border-radius: var(--main-radius);
|
||
color: var(--main-color);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.uc-sidebar-centers > .jio-widget-box:hover,
|
||
.uc-sidebar-centers > .jio-widget-box:focus {
|
||
color: var(--main-color);
|
||
}
|
||
|
||
@media (max-width: 991.98px) {
|
||
.uc-sidebar > .uc-sidebar-vip,
|
||
.uc-sidebar > .uc-sidebar__pair,
|
||
.uc-sidebar > .uc-sidebar-centers {
|
||
margin-right: 12px;
|
||
margin-left: 12px;
|
||
}
|
||
}
|
||
|
||
.uc-sidebar__pair {
|
||
display: grid;
|
||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||
/* 参考主题余额 / 积分并排用 col-ml6,横向间距 6px。 */
|
||
gap: 6px;
|
||
}
|
||
|
||
.uc-summary-card {
|
||
min-width: 0;
|
||
border: 1px solid var(--color-line-soft, rgba(15, 23, 42, 0.06));
|
||
border-radius: var(--main-radius, var(--radius, 8px));
|
||
background: var(--surface-1);
|
||
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
|
||
color: var(--color-ink-2);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.uc-summary-card {
|
||
padding: 14px;
|
||
}
|
||
|
||
.uc-summary-card__head,
|
||
.uc-summary-card__body {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 8px;
|
||
}
|
||
|
||
.uc-summary-card__head {
|
||
margin-bottom: 10px;
|
||
color: var(--color-ink-4);
|
||
font-size: 12px;
|
||
}
|
||
|
||
.uc-summary-card__body strong {
|
||
overflow: hidden;
|
||
font-size: 18px;
|
||
font-variant-numeric: tabular-nums;
|
||
letter-spacing: -0.02em;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.uc-summary-card__body > i,
|
||
.uc-summary-card__body > svg {
|
||
font-size: 18px;
|
||
}
|
||
|
||
.uc-summary-card--wallet .uc-summary-card__body { color: #3978d6; }
|
||
.uc-summary-card--points .uc-summary-card__body { color: #ba7a0a; }
|
||
|
||
/* 我的服务 / 功能设置:1:1 同构 sidebar button 1/2。
|
||
外壳为 jio-widget-box padding-6,标题为普通字重的 padding-6 ml3;
|
||
网格项只继承正文色,无 hover / 选中变色。
|
||
正文行高是 bootstrap 的 1.42857143,本站 body 为 1.6,
|
||
标题、图标、文字三行会各自被撑高,这里恢复参考行高。 */
|
||
/* widgets/frontend.css 在 main.min.css 之后加载,其 .jio-widget-box{padding:15px} 会盖掉 .padding-6,这里按参考值锁回 6px。 */
|
||
.uc-sidebar-iconbox.jio-widget-box {
|
||
clear: both;
|
||
padding: 6px;
|
||
line-height: 1.42857143;
|
||
background-color: var(--main-bg-color);
|
||
box-shadow: 0 0 10px var(--main-shadow);
|
||
border-radius: var(--main-radius);
|
||
color: var(--main-color);
|
||
}
|
||
|
||
.user-icon-but-box > a {
|
||
width: calc(25% - 10px);
|
||
margin: 5px;
|
||
min-width: 50px;
|
||
max-width: 100px;
|
||
cursor: pointer;
|
||
color: inherit;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.user-icon-but-box > a:hover,
|
||
.user-icon-but-box > a:focus {
|
||
color: inherit;
|
||
}
|
||
|
||
@media (max-width: 991.98px) {
|
||
.uc-sidebar > .uc-sidebar-iconbox {
|
||
margin-right: 12px;
|
||
margin-left: 12px;
|
||
}
|
||
}
|
||
|
||
.uc-follow-management__list { display: grid; gap: 10px; margin-top: 16px; }
|
||
.uc-follow-management__item { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--border-color, rgba(15, 23, 42, .08)); border-radius: 12px; }
|
||
.uc-follow-management__avatar img { display: block; width: 48px; height: 48px; border-radius: 50%; }
|
||
.uc-follow-management__identity { display: grid; gap: 4px; min-width: 0; }
|
||
.uc-follow-management__identity a { color: var(--color-ink-1); font-weight: 600; }
|
||
.uc-follow-management__identity span { color: var(--color-ink-4); font-size: 12px; }
|
||
.uc-follow-management__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
|
||
@media (max-width: 560px) { .uc-follow-management__item { align-items: flex-start; flex-wrap: wrap; } .uc-follow-management__actions { width: 100%; margin-left: 60px; } }
|
||
|