729 lines
16 KiB
CSS
729 lines
16 KiB
CSS
/* 公共信息面板 */
|
|
.jx3-template :where(
|
|
.header,
|
|
.page-header,
|
|
.top-info,
|
|
.info-bar,
|
|
.summary,
|
|
.main-card,
|
|
.card,
|
|
.panel,
|
|
.section,
|
|
.achievement-card,
|
|
.material-card,
|
|
.boss-item,
|
|
.cell,
|
|
.stat-item,
|
|
.stat-box,
|
|
.empty-card,
|
|
.empty-state
|
|
) {
|
|
color: var(--jx3-text);
|
|
border: 1px solid var(--jx3-border-soft);
|
|
background: linear-gradient(180deg, var(--jx3-surface), var(--jx3-surface-strong));
|
|
border-radius: var(--jx3-radius-md);
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template :where(
|
|
.item,
|
|
.summary-panel,
|
|
.summary-item,
|
|
.price-box,
|
|
.price-item,
|
|
.material-price-item,
|
|
.store-price-item,
|
|
.subtotal-row,
|
|
.material-total,
|
|
.achievement-info,
|
|
.detail-item,
|
|
.boss-card,
|
|
.server-card,
|
|
.recruit-card
|
|
) {
|
|
color: var(--jx3-text-secondary);
|
|
border-color: var(--jx3-border-faint);
|
|
background: var(--jx3-surface-soft);
|
|
}
|
|
|
|
.jx3-template :where(.header, .page-header, .top-info, .info-bar) {
|
|
padding: var(--jx3-space-5) var(--jx3-space-6);
|
|
border-color: var(--jx3-border);
|
|
}
|
|
|
|
.jx3-template :where(.meta, .meta-row, .page-subtitle, .top-summary, .top-desc, .desc, .description, .time) {
|
|
color: var(--jx3-text-muted);
|
|
}
|
|
|
|
.jx3-template .role {
|
|
color: var(--jx3-text-secondary);
|
|
}
|
|
|
|
.jx3-template :where(.section-title, .section-header, .table-title, .summary-title, .card-header) {
|
|
color: var(--jx3-gold-bright);
|
|
border-color: var(--jx3-border-soft);
|
|
}
|
|
|
|
.jx3-template .section-title::before {
|
|
background: var(--jx3-gold);
|
|
}
|
|
|
|
/* 状态与重点数据 */
|
|
.jx3-template :where(.rank-1, .price-col, .summary-percent, .item-percent, .point-value, .money-gold) {
|
|
color: var(--jx3-gold-bright);
|
|
}
|
|
|
|
.jx3-template .rank-2 {
|
|
color: #506578;
|
|
}
|
|
|
|
.jx3-template .rank-3 {
|
|
color: #9a542e;
|
|
}
|
|
|
|
.jx3-template :where(.winrate, .success, .unfinished, .status-unfinished) {
|
|
color: var(--jx3-green);
|
|
}
|
|
|
|
.jx3-template :where(.danger, .finished, .status-finished, .boss-final, .boss) {
|
|
color: var(--jx3-red);
|
|
}
|
|
|
|
.jx3-template :where(.empty, .empty-row, .empty-data, .empty-state) {
|
|
color: var(--jx3-text-muted);
|
|
}
|
|
|
|
.jx3-template :where(.progress, .map-progress) {
|
|
overflow: hidden;
|
|
background: #dce4e9;
|
|
border: 1px solid rgba(39, 57, 73, 0.13);
|
|
}
|
|
|
|
.jx3-template :where(.progress-fill, .map-progress > span) {
|
|
background: linear-gradient(90deg, var(--jx3-gold-muted), var(--jx3-gold-bright));
|
|
}
|
|
|
|
.jx3-template :where(.avatar, .force-icon, .school-icon, .item-icon, .material-icon, .main-icon) {
|
|
border: 1px solid var(--jx3-border-soft);
|
|
background: var(--jx3-surface-muted);
|
|
}
|
|
|
|
.jx3-template :where(.tag, .category-tag, .channel-tag, .status-badge, .quality-badge, .material-tag) {
|
|
border: 1px solid var(--jx3-border-soft);
|
|
background: #fff4dc;
|
|
color: var(--jx3-gold-bright);
|
|
}
|
|
|
|
.jx3-template :where(.footer, .card-footer, .summary-footer) {
|
|
color: var(--jx3-text-muted);
|
|
border-color: var(--jx3-border-soft);
|
|
}
|
|
|
|
/* 页面级色彩收敛 */
|
|
.jx3-template :where(.page-title, .main-name, .role-name, .item-name, .material-name, .achievement-name, .stat-value) {
|
|
color: var(--jx3-text);
|
|
}
|
|
|
|
.jx3-template :where(
|
|
.title,
|
|
.summary-name,
|
|
.feature-name,
|
|
.event-name,
|
|
.quantity-value,
|
|
.price-box-value,
|
|
.material-price-value,
|
|
.store-price-value,
|
|
.subtotal-value,
|
|
.material-total-value
|
|
) {
|
|
color: var(--jx3-text);
|
|
}
|
|
|
|
.jx3-template :where(
|
|
.sub-info,
|
|
.section-desc,
|
|
.summary-count,
|
|
.score,
|
|
.tip-list li,
|
|
.material-meta,
|
|
.material-footer,
|
|
.raw-price,
|
|
.quantity-label,
|
|
.subtotal-label,
|
|
.material-total-label
|
|
) {
|
|
color: var(--jx3-text-muted);
|
|
}
|
|
|
|
.jx3-template :where(.command, .feature, .material-card-header, .summary-section) {
|
|
border-color: var(--jx3-border-faint);
|
|
}
|
|
|
|
.jx3-template .summary-section {
|
|
background: var(--jx3-border-faint);
|
|
}
|
|
|
|
.jx3-template .tip-list li::before {
|
|
background: var(--jx3-gold);
|
|
}
|
|
|
|
.jx3-template .command {
|
|
color: var(--jx3-text-secondary);
|
|
background: #eaf3fa;
|
|
}
|
|
|
|
.jx3-template .command:hover {
|
|
color: var(--jx3-gold-bright);
|
|
border-color: var(--jx3-border-soft);
|
|
background: #fff4dc;
|
|
}
|
|
|
|
.jx3-template :where(.stat-label, .price-box-label, .material-price-label, .store-price-label, .point-label) {
|
|
color: var(--jx3-text-muted);
|
|
}
|
|
|
|
.jx3-template :where(.stat-value, .price-box-value, .material-price-value, .store-price-value, .point-number) {
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.jx3-template .data-page__meta {
|
|
margin-bottom: var(--jx3-space-6);
|
|
color: var(--jx3-text-muted);
|
|
font-size: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* @component data-table */
|
|
/* 标准数据页:列数和内容由 HTML 决定,视觉规则由所有查询页共用 */
|
|
.jx3-template :where(.table-wrapper, .table-scroll) {
|
|
overflow: hidden;
|
|
border: 1px solid var(--jx3-border-soft);
|
|
border-radius: var(--jx3-radius-md);
|
|
background: var(--jx3-surface);
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template table {
|
|
width: 100%;
|
|
table-layout: auto;
|
|
overflow: hidden;
|
|
border-collapse: collapse;
|
|
border-radius: var(--jx3-radius-md);
|
|
color: var(--jx3-text-secondary);
|
|
background: var(--jx3-surface);
|
|
border-color: var(--jx3-border-soft);
|
|
text-align: center;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.jx3-template thead {
|
|
color: var(--jx3-gold-bright);
|
|
background: var(--jx3-surface-muted);
|
|
border-top: 1px solid var(--jx3-border-strong);
|
|
border-bottom: 1px solid var(--jx3-border-strong);
|
|
}
|
|
|
|
.jx3-template :where(th, td) {
|
|
padding: 13px 14px;
|
|
color: inherit;
|
|
border-color: var(--jx3-border-faint);
|
|
font-size: 19px;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.jx3-template th {
|
|
color: var(--jx3-gold-bright);
|
|
font-weight: 700;
|
|
letter-spacing: 0.03em;
|
|
}
|
|
|
|
.jx3-template td {
|
|
border-bottom: 1px solid var(--jx3-border-faint);
|
|
}
|
|
|
|
.jx3-template tbody tr:nth-child(odd) {
|
|
background: transparent;
|
|
}
|
|
|
|
.jx3-template tbody tr:nth-child(even) {
|
|
background: #f3f6f8;
|
|
}
|
|
|
|
.jx3-template tbody tr:hover {
|
|
background: #fff4df;
|
|
}
|
|
|
|
.jx3-template tbody tr:last-child td {
|
|
border-bottom-color: transparent;
|
|
}
|
|
|
|
.jx3-template .data-table--spaced {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.jx3-template .data-table--nowrap :where(th, td),
|
|
.jx3-template .data-cell--nowrap {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.jx3-template .data-cell--wrap {
|
|
word-break: break-word;
|
|
}
|
|
|
|
.jx3-template .data-cell--copy {
|
|
color: var(--jx3-text-secondary);
|
|
font-weight: 600;
|
|
line-height: 1.5;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.jx3-template .data-cell--strong,
|
|
.jx3-template .data-cell--name {
|
|
color: var(--jx3-text);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.jx3-template .data-cell--muted {
|
|
color: var(--jx3-text-muted);
|
|
}
|
|
|
|
.jx3-template .data-cell--numeric {
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.jx3-template .data-cell--rank {
|
|
color: var(--jx3-gold-bright);
|
|
font-weight: 800;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.jx3-template .data-cell--score {
|
|
white-space: nowrap;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.jx3-template .data-cell--time {
|
|
color: var(--jx3-text-muted);
|
|
white-space: nowrap;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.jx3-template .data-cell--accent,
|
|
.jx3-template .data-cell--score {
|
|
color: var(--jx3-gold-bright);
|
|
font-weight: 800;
|
|
}
|
|
|
|
.jx3-template .data-avatar {
|
|
display: block;
|
|
width: 40px;
|
|
height: 40px;
|
|
margin: 0 auto;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.jx3-template .data-cell--rank.rank-2 {
|
|
color: #506578;
|
|
}
|
|
|
|
.jx3-template .data-cell--rank.rank-3 {
|
|
color: #9a542e;
|
|
}
|
|
|
|
.jx3-template .icon-label {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
color: var(--jx3-text);
|
|
font-weight: 700;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.jx3-template .icon-label__icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
border: 1px solid var(--jx3-border-soft);
|
|
border-radius: 50%;
|
|
object-fit: contain;
|
|
flex: 0 0 auto;
|
|
background: var(--jx3-surface-muted);
|
|
}
|
|
|
|
.jx3-template .data-table tr.camp-haoqi {
|
|
color: var(--jx3-blue);
|
|
}
|
|
|
|
.jx3-template .data-table tr.camp-eren {
|
|
color: var(--jx3-red);
|
|
}
|
|
|
|
.jx3-template .data-table--camp-tinted tr.camp-haoqi {
|
|
background: #eaf3fa;
|
|
}
|
|
|
|
.jx3-template .data-table--camp-tinted tr.camp-eren {
|
|
background: #fcedeb;
|
|
}
|
|
|
|
.jx3-template .data-table--camp-tinted tr.camp-haoqi .data-cell--name,
|
|
.jx3-template .data-table tr.camp-haoqi .data-cell--camp {
|
|
color: var(--jx3-blue);
|
|
}
|
|
|
|
.jx3-template .data-table--camp-tinted tr.camp-eren .data-cell--name,
|
|
.jx3-template .data-table tr.camp-eren .data-cell--camp {
|
|
color: var(--jx3-red);
|
|
}
|
|
/* @endcomponent */
|
|
|
|
/* @component data-layout */
|
|
/* 通用分区、统计卡片与可配置列数的卡片网格 */
|
|
.jx3-template .data-section,
|
|
.jx3-template .collection-section {
|
|
margin-bottom: var(--jx3-space-6);
|
|
}
|
|
|
|
.jx3-template .data-section__title,
|
|
.jx3-template .collection-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin: 0 0 var(--jx3-space-3);
|
|
color: var(--jx3-gold-bright);
|
|
font-size: 28px;
|
|
line-height: 1.3;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.jx3-template .data-section__title::before,
|
|
.jx3-template .collection-heading::before {
|
|
width: 5px;
|
|
height: 30px;
|
|
border-radius: 3px;
|
|
background: var(--jx3-gold);
|
|
content: "";
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.jx3-template .card-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr));
|
|
gap: var(--grid-gap, 16px);
|
|
}
|
|
|
|
.jx3-template .stat-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr));
|
|
gap: 14px;
|
|
margin-bottom: 22px;
|
|
}
|
|
|
|
.jx3-template .stat-card {
|
|
padding: 18px 14px;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-md);
|
|
background: var(--jx3-surface);
|
|
text-align: center;
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template .stat-card__label {
|
|
margin-bottom: var(--jx3-space-2);
|
|
color: var(--jx3-text-muted);
|
|
font-size: 20px;
|
|
}
|
|
|
|
.jx3-template .stat-card__value {
|
|
color: var(--jx3-gold-bright);
|
|
font-size: 34px;
|
|
line-height: 1;
|
|
font-weight: 800;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
/* @endcomponent */
|
|
|
|
/* @component ability-card */
|
|
/* 技能与奇穴共用同一套能力卡片 */
|
|
.jx3-template .ability-card {
|
|
display: grid;
|
|
grid-template-columns: 54px minmax(0, 1fr);
|
|
gap: 12px;
|
|
padding: 14px;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-md);
|
|
background: var(--jx3-surface);
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template .ability-card__icon {
|
|
width: 48px;
|
|
height: 48px;
|
|
border: 1px solid var(--jx3-border-soft);
|
|
border-radius: 8px;
|
|
object-fit: cover;
|
|
background: var(--jx3-surface-muted);
|
|
}
|
|
|
|
.jx3-template .ability-card__head {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.jx3-template .ability-card__name {
|
|
color: var(--jx3-text);
|
|
font-size: 21px;
|
|
line-height: 1.25;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.jx3-template .ability-card__tag {
|
|
padding: 2px 8px;
|
|
border: 1px solid var(--jx3-border-soft);
|
|
border-radius: 999px;
|
|
color: var(--jx3-gold-bright);
|
|
background: #fff4dc;
|
|
font-size: 18px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.jx3-template .ability-card__tag--accent {
|
|
color: var(--jx3-bg-deep);
|
|
background: var(--jx3-gold);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.jx3-template .ability-card__desc {
|
|
color: var(--jx3-text-secondary);
|
|
font-size: 19px;
|
|
line-height: 1.55;
|
|
word-break: break-word;
|
|
}
|
|
/* @endcomponent */
|
|
|
|
/* @component collection-card */
|
|
/* 奇遇与区服状态共用卡片网格 */
|
|
.jx3-template .collection-section {
|
|
margin-bottom: var(--jx3-space-8);
|
|
}
|
|
|
|
.jx3-template .collection-heading {
|
|
margin-bottom: var(--jx3-space-4);
|
|
font-size: 36px;
|
|
}
|
|
|
|
.jx3-template .collection-card {
|
|
display: flex;
|
|
min-height: 90px;
|
|
padding: 16px 12px;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-md);
|
|
background: var(--jx3-surface);
|
|
text-align: center;
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template .collection-card__image {
|
|
width: 100%;
|
|
max-width: 180px;
|
|
height: auto;
|
|
margin-bottom: 6px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.jx3-template .collection-card__name {
|
|
margin-bottom: 4px;
|
|
color: var(--jx3-text);
|
|
font-size: 24px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.jx3-template .collection-card__meta {
|
|
color: var(--jx3-text-muted);
|
|
font-size: 22px;
|
|
}
|
|
|
|
.jx3-template .collection-empty {
|
|
padding: 18px;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-md);
|
|
color: var(--jx3-text-muted);
|
|
background: var(--jx3-surface);
|
|
}
|
|
|
|
.jx3-template .data-header {
|
|
margin-bottom: var(--jx3-space-6);
|
|
}
|
|
|
|
.jx3-template .data-header__title {
|
|
margin-bottom: var(--jx3-space-2);
|
|
color: var(--jx3-text);
|
|
font-size: 38px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.jx3-template .data-header__meta {
|
|
color: var(--jx3-text-muted);
|
|
font-size: 22px;
|
|
}
|
|
|
|
.jx3-template .server-status-card {
|
|
padding: 30px 12px;
|
|
border-radius: var(--jx3-radius-md);
|
|
color: #fff;
|
|
font-size: 30px;
|
|
font-weight: 600;
|
|
text-align: center;
|
|
}
|
|
|
|
.jx3-template .server-status-card.爆满 {
|
|
background: #b94f4b;
|
|
}
|
|
|
|
.jx3-template .server-status-card.拥挤 {
|
|
color: #2c2106;
|
|
background: #d4a64e;
|
|
}
|
|
|
|
.jx3-template .server-status-card:is(.正常, .顺畅) {
|
|
background: #438d65;
|
|
}
|
|
|
|
.jx3-template .server-status-card.维护 {
|
|
color: #253443;
|
|
background: #9eaebb;
|
|
}
|
|
/* @endcomponent */
|
|
|
|
/* @component object-card */
|
|
/* 器物与家园装饰共用详情卡片 */
|
|
.jx3-template .object-card {
|
|
display: flex;
|
|
margin-bottom: var(--jx3-space-6);
|
|
overflow: hidden;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-lg);
|
|
background: var(--jx3-surface);
|
|
box-shadow: var(--jx3-shadow-sm);
|
|
}
|
|
|
|
.jx3-template .object-card__image {
|
|
width: 220px;
|
|
height: 220px;
|
|
padding: 16px;
|
|
object-fit: contain;
|
|
background: var(--jx3-surface-muted);
|
|
}
|
|
|
|
.jx3-template .object-card__content {
|
|
min-width: 0;
|
|
padding: 20px 24px;
|
|
flex: 1;
|
|
}
|
|
|
|
.jx3-template .object-card__title {
|
|
margin-bottom: 6px;
|
|
font-size: 30px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.jx3-template :where(.quality-1) { color: var(--jx3-text-muted); }
|
|
.jx3-template :where(.quality-2) { color: var(--jx3-green); }
|
|
.jx3-template :where(.quality-3) { color: var(--jx3-blue); }
|
|
.jx3-template :where(.quality-4) { color: var(--jx3-purple); }
|
|
.jx3-template :where(.quality-5) { color: #e6a25f; }
|
|
|
|
.jx3-template .object-card__meta {
|
|
margin-bottom: 14px;
|
|
color: var(--jx3-text-muted);
|
|
font-size: 19px;
|
|
}
|
|
|
|
.jx3-template .object-card__meta span {
|
|
margin-right: 18px;
|
|
}
|
|
|
|
.jx3-template .object-card__tip {
|
|
margin-bottom: 16px;
|
|
padding: 10px 14px;
|
|
border-left: 4px solid var(--jx3-gold);
|
|
color: var(--jx3-text-secondary);
|
|
background: #edf5fa;
|
|
font-size: 18px;
|
|
}
|
|
|
|
.jx3-template .object-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(var(--grid-columns, 5), minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.jx3-template .object-stat {
|
|
padding: 10px;
|
|
border: 1px solid var(--jx3-border-faint);
|
|
border-radius: var(--jx3-radius-md);
|
|
background: var(--jx3-surface-soft);
|
|
text-align: center;
|
|
}
|
|
|
|
.jx3-template .object-stat__label {
|
|
margin-bottom: 6px;
|
|
color: var(--jx3-text-muted);
|
|
font-size: 18px;
|
|
}
|
|
|
|
.jx3-template .object-stat__value {
|
|
color: var(--jx3-text);
|
|
font-size: 20px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.jx3-template .object-card__footer {
|
|
margin-top: 12px;
|
|
color: var(--jx3-text-muted);
|
|
font-size: 18px;
|
|
}
|
|
/* @endcomponent */
|
|
|
|
/* @component data-extras */
|
|
.jx3-template .data-subtitle {
|
|
margin: 40px 0 12px;
|
|
color: var(--jx3-gold-bright);
|
|
font-size: 30px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.jx3-template .data-subtitle + .data-table {
|
|
margin-bottom: var(--jx3-space-5);
|
|
}
|
|
|
|
.jx3-template .data-note {
|
|
color: var(--jx3-text-secondary);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.jx3-template .data-price {
|
|
color: var(--jx3-gold-bright);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.jx3-template .text-purple {
|
|
color: var(--jx3-purple);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.jx3-template .text-blue {
|
|
color: var(--jx3-blue);
|
|
font-weight: 600;
|
|
}
|
|
/* @endcomponent */
|