feat: add png export, neonteam details, relic slot manager, rich traces, e0s1 presets, and server-aware lineup persistence
This commit is contained in:
1 parent
025697ea52
commit
dd4bbc1877
4 files changed
+1623
-201
No files matched your search
+314
@@ -1929,3 +1929,317 @@ input:checked + .slider:before {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Neonteam & Punklorde Features: Character Switcher, Overview, Relics, Skills
|
||||
========================================================================== */
|
||||
|
||||
/* Character Switcher Strip */
|
||||
.modal-char-switcher-strip {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
overflow-x: auto;
|
||||
padding: 0.25rem 0.25rem 0.65rem 0.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.modal-char-switcher-item {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
min-width: 44px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
border: 2px solid var(--border-color);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
background: var(--bg-card);
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.modal-char-switcher-item:hover {
|
||||
transform: scale(1.1);
|
||||
border-color: var(--accent-cyan);
|
||||
}
|
||||
|
||||
.modal-char-switcher-item.active {
|
||||
border-color: var(--accent-gold);
|
||||
box-shadow: 0 0 12px rgba(251, 191, 36, 0.6);
|
||||
transform: scale(1.15);
|
||||
}
|
||||
|
||||
.modal-char-switcher-item img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Overview Layout (Neonteam Style) */
|
||||
.overview-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 280px 1fr;
|
||||
gap: 1.5rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
@media (max-width: 820px) {
|
||||
.overview-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.overview-portrait-box {
|
||||
position: relative;
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
min-height: 420px;
|
||||
background: radial-gradient(circle at 50% 25%, rgba(56, 189, 248, 0.15) 0%, rgba(10, 14, 23, 0.95) 100%);
|
||||
border: 1px solid var(--border-color);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.overview-portrait-img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
object-position: top center;
|
||||
transition: transform 0.4s ease;
|
||||
}
|
||||
|
||||
.overview-portrait-box:hover .overview-portrait-img {
|
||||
transform: scale(1.03);
|
||||
}
|
||||
|
||||
.overview-portrait-info {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 1.25rem 1rem;
|
||||
background: linear-gradient(to top, rgba(10, 14, 23, 0.98) 0%, rgba(10, 14, 23, 0.75) 60%, transparent 100%);
|
||||
}
|
||||
|
||||
.overview-stats-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||
gap: 0.65rem;
|
||||
}
|
||||
|
||||
.overview-stat-card {
|
||||
background: rgba(18, 24, 38, 0.65);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 0.65rem 0.85rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.overview-stat-label {
|
||||
font-size: 0.8rem;
|
||||
color: var(--text-muted);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
|
||||
.overview-stat-val {
|
||||
font-size: 0.925rem;
|
||||
font-weight: 800;
|
||||
font-family: monospace;
|
||||
color: var(--text-highlight);
|
||||
}
|
||||
|
||||
/* Relics 6 Slots Layout */
|
||||
.relics-slots-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||
gap: 0.85rem;
|
||||
}
|
||||
|
||||
.relic-slot-box {
|
||||
background: rgba(18, 24, 38, 0.65);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0.85rem;
|
||||
display: flex;
|
||||
gap: 0.85rem;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.relic-slot-box:hover {
|
||||
border-color: rgba(56, 189, 248, 0.5);
|
||||
background: rgba(18, 24, 38, 0.85);
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.relic-slot-icon-wrap {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
min-width: 52px;
|
||||
border-radius: var(--radius-sm);
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border-color);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.relic-slot-badge {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
font-size: 0.6rem;
|
||||
text-align: center;
|
||||
font-weight: 800;
|
||||
color: #cbd5e1;
|
||||
padding: 0.05rem 0;
|
||||
}
|
||||
|
||||
.relic-slot-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.relic-slot-title {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-highlight);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.relic-slot-main {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
color: var(--accent-gold);
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
|
||||
.relic-slot-subs {
|
||||
font-size: 0.7rem;
|
||||
color: var(--text-muted);
|
||||
margin-top: 0.2rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
.relic-slot-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.35rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* Rich Skills & Traces */
|
||||
.skill-row-icon {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
min-width: 38px;
|
||||
border-radius: 8px;
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
border: 1px solid var(--border-color);
|
||||
object-fit: contain;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.skill-type-tag {
|
||||
font-size: 0.7rem;
|
||||
font-weight: 700;
|
||||
background: rgba(56, 189, 248, 0.15);
|
||||
border: 1px solid rgba(56, 189, 248, 0.35);
|
||||
color: var(--accent-cyan);
|
||||
padding: 0.15rem 0.45rem;
|
||||
border-radius: 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.skill-desc-box {
|
||||
background: rgba(11, 15, 25, 0.65);
|
||||
border: 1px solid rgba(255, 255, 255, 0.06);
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 0.65rem 0.85rem;
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.5;
|
||||
color: #cbd5e1;
|
||||
}
|
||||
|
||||
.skill-desc-box .param-val {
|
||||
color: var(--accent-cyan);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.trace-card-item {
|
||||
background: rgba(18, 24, 38, 0.65);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 0.75rem 1rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.35rem;
|
||||
}
|
||||
|
||||
.trace-icon-small {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
min-width: 28px;
|
||||
border-radius: 6px;
|
||||
background: rgba(0, 0, 0, 0.35);
|
||||
border: 1px solid var(--border-color);
|
||||
object-fit: contain;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/* Outside Character Card Quick Buttons (E0S1 / E6S5) */
|
||||
.btn-card-e0s1 {
|
||||
background: rgba(56, 189, 248, 0.15) !important;
|
||||
border: 1px solid rgba(56, 189, 248, 0.5) !important;
|
||||
color: var(--accent-cyan) !important;
|
||||
font-weight: 800 !important;
|
||||
font-size: 0.725rem !important;
|
||||
padding: 0.25rem 0.55rem !important;
|
||||
}
|
||||
|
||||
.btn-card-e0s1:hover {
|
||||
background: rgba(56, 189, 248, 0.35) !important;
|
||||
border-color: var(--accent-cyan) !important;
|
||||
box-shadow: 0 0 10px rgba(56, 189, 248, 0.4) !important;
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.btn-card-e6s5 {
|
||||
background: rgba(251, 191, 36, 0.15) !important;
|
||||
border: 1px solid rgba(251, 191, 36, 0.5) !important;
|
||||
color: var(--accent-gold) !important;
|
||||
font-weight: 800 !important;
|
||||
font-size: 0.725rem !important;
|
||||
padding: 0.25rem 0.55rem !important;
|
||||
}
|
||||
|
||||
.btn-card-e6s5:hover {
|
||||
background: rgba(251, 191, 36, 0.35) !important;
|
||||
border-color: var(--accent-gold) !important;
|
||||
box-shadow: 0 0 10px rgba(251, 191, 36, 0.4) !important;
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
/* Locked Creative Mode Styling */
|
||||
.switch input:disabled + .slider {
|
||||
opacity: 0.45;
|
||||
cursor: not-allowed;
|
||||
filter: grayscale(0.8);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user