Files
pixelheros/put/web/src/style.css
pan 4e0ef5bccc refactor(web): 重构英雄管理页面布局与交互
1. 将原侧边栏选择改为卡片列表首页视图,新增顶部计数和新建按钮
2. 重新设计英雄列表项,展示基础信息、属性、技能和触发效果
3. 重构编辑弹窗布局,适配移动端并优化交互流程
4. 新增多项数据展示辅助函数,优化页面信息展示
2026-09-04 11:01:18 +08:00

236 lines
5.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root {
--brand: #4a90e2;
--brand-light: #7fb3f0;
--bg: #f5f9ff;
--panel: #ffffff;
--border: #e3ecf7;
--text: #2c3e50;
--text-light: #7a8ba0;
}
* { box-sizing: border-box; }
html, body, #app { height: 100%; margin: 0; }
body {
font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif;
background: var(--bg);
color: var(--text);
/* 编辑页全局缩小字号,同屏容纳更多字段 */
font-size: 12px;
}
/* Element Plus 表单控件整体缩小一档(默认 14px → 12px) */
.hero-app .el-input__wrapper,
.hero-app .el-select__wrapper,
.hero-app .el-textarea__inner,
.hero-app .el-form-item__label {
font-size: 12px;
}
/* 行间距压缩:表单项下边距 + 行高收紧 */
.hero-app .el-form-item { margin-bottom: 8px; line-height: 1.2; }
.hero-app .el-form-item__label { line-height: 1.2; padding-bottom: 2px; }
.hero-app .el-button { font-size: 12px; height: 26px; padding: 8px 10px; }
.hero-app .el-button--small { height: 22px; padding: 5px 8px; }
.hero-app .el-input__inner { --el-input-height: 26px; }
.hero-app .el-tabs__item { font-size: 12px; height: 30px; }
.hero-app .el-tabs__header { margin-bottom: 8px; }
.hero-app .el-tabs__nav-wrap::after { height: 1px; }
.hero-app {
height: 100%;
display: flex;
flex-direction: column;
}
.hero-header {
background: linear-gradient(135deg, #6fb1ff 0%, #4a90e2 100%);
color: #fff;
padding: 12px 20px;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 0 2px 8px rgba(74, 144, 226, 0.25);
}
.hero-header h1 { font-size: 15px; margin: 0; font-weight: 600; }
.hero-header .actions { display: flex; gap: 8px; }
.hero-main {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
}
/* 首页工具栏:计数 + 新建入口 */
.home-toolbar {
display: flex;
gap: 8px;
align-items: center;
justify-content: space-between;
padding: 10px 14px;
background: var(--panel);
border-bottom: 1px solid var(--border);
flex-shrink: 0;
}
/* 首页:一行一个英雄的列表布局 */
.hero-rows {
flex: 1;
overflow-y: auto;
padding: 12px 16px 40px;
display: flex;
flex-direction: column;
gap: 8px;
}
.hero-row {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 8px;
padding: 8px 12px;
cursor: pointer;
transition: box-shadow 0.15s;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px 14px;
font-size: 12px;
}
.hero-row:hover { box-shadow: 0 3px 12px rgba(46, 91, 160, 0.15); }
/* 行首:uuid + 名称 + 星级 */
.row-main { display: flex; align-items: center; gap: 8px; min-width: 130px; }
.row-uuid { font-family: Menlo, Consolas, monospace; color: var(--text-light); }
.row-name { font-size: 13px; font-weight: 600; }
.card-rarity { color: #f5a623; font-size: 11px; }
/* 三维徽章 */
.row-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; }
.stat {
background: #f0f7ef;
color: #4a7c3f;
border-radius: 4px;
padding: 0 6px;
font-size: 11px;
line-height: 18px;
}
/* 技能段:普攻/大招两行 */
.row-skills { display: flex; flex-direction: column; gap: 2px; min-width: 200px; }
.skill-detail { color: var(--text-light); font-size: 11px; margin-left: 4px; }
/* 触发/光环/加成:chip 流式排布 */
.row-triggers { display: flex; flex-wrap: wrap; gap: 4px 6px; flex: 1; min-width: 160px; }
.trigger-chip {
background: #eef4fc;
color: var(--brand);
border-radius: 4px;
padding: 0 6px;
font-size: 11px;
line-height: 18px;
}
.trigger-chip.aura { background: #f4f0fa; color: #7c5cbf; }
.row-comment {
width: 100%;
color: var(--text-light);
font-size: 11px;
border-top: 1px dashed var(--border);
padding-top: 4px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.tag {
display: inline-block;
background: #eef4fc;
color: var(--brand);
border-radius: 4px;
padding: 0 5px;
margin-right: 6px;
font-size: 11px;
line-height: 18px;
}
/* 行尾操作按钮 */
.row-actions { display: flex; gap: 6px; margin-left: auto; }
/* 编辑弹窗:内容区内部滚动 */
.editor-dialog .el-dialog__body { max-height: 78vh; overflow-y: auto; padding: 8px 16px; }
.hero-editor {
padding: 4px 0 16px;
}
.panel {
background: var(--panel);
border-radius: 8px;
padding: 10px 12px;
margin-bottom: 10px;
border: 1px solid var(--border);
box-shadow: 0 1px 3px rgba(46, 91, 160, 0.05);
}
.panel h3 {
margin: 0 0 8px;
font-size: 13px;
color: var(--brand);
border-left: 3px solid var(--brand);
padding-left: 8px;
}
.form-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 4px 14px;
}
.muted { color: var(--text-light); font-size: 12px; }
.skill-block {
border: 1px dashed var(--border);
border-radius: 6px;
padding: 10px;
margin-bottom: 10px;
background: #fbfdff;
}
.skill-block .head {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
font-weight: 600;
}
.override-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: 8px 12px;
}
.empty {
text-align: center;
color: var(--text-light);
padding: 60px 0;
}
/* 手机竖屏适配:头部按钮换行、行内信息自动折行、弹窗全宽 */
@media (max-width: 600px) {
.hero-header {
flex-wrap: wrap;
gap: 8px;
padding: 10px 12px;
}
.hero-header .actions { flex-wrap: wrap; }
.hero-editor { padding: 4px 0 16px; }
.home-toolbar { padding: 8px 10px; }
.home-toolbar .el-button { margin-left: 0; }
.hero-rows { padding: 8px 10px 40px; }
.hero-row { gap: 4px 10px; }
.row-main { min-width: 0; }
.row-skills { min-width: 100%; }
.row-actions { margin-left: 0; }
.editor-dialog { width: 98% !important; }
.editor-dialog .el-dialog__body { max-height: 76vh; padding: 6px 10px; }
.form-grid { grid-template-columns: 1fr; }
.override-grid { grid-template-columns: 1fr; }
}