/* ============================================ 主题配置插件 - 现代化 UI 设计 设计理念:清晰、高效、美观 ============================================ */ /* 全局容器 */ .template { max-width: 1400px; margin: 0 auto; } /* 卡片优化 - 增加层次感和呼吸感 */ .theme-card { margin-bottom: 24px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); transition: all 0.3s ease; overflow: hidden; } .theme-card:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); } /* 表单网格 - 优化间距和布局 */ .form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; padding: 4px 0; } /* 表单项优化 */ .form-item { display: flex; flex-direction: column; min-height: 70px; } .form-item--full { grid-column: 1 / -1; } /* 标签样式优化 - 更清晰的视觉层次 */ .form-item label { font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 8px; display: flex; align-items: center; line-height: 1.5; } .form-item label::before { content: ''; width: 3px; height: 14px; background: linear-gradient(180deg, #3b82f6 0%, #8b5cf6 100%); border-radius: 2px; margin-right: 8px; opacity: 0.6; } /* Switch 开关优化 - 解决"新窗口打开"文字过长问题 */ .form-item--switch { flex-direction: row; align-items: center; justify-content: space-between; min-height: 48px; padding: 12px 16px; background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); border-radius: 8px; border: 1px solid #e2e8f0; transition: all 0.3s ease; } .form-item--switch:hover { background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%); border-color: #cbd5e1; } .form-item--switch label { margin-bottom: 0; font-size: 13px; flex: 1; } .form-item--switch label::before { display: none; } /* Switch 标签图标优化 */ .switch-label { display: flex; align-items: center; gap: 6px; color: #64748b; font-size: 13px; font-weight: 500; } .switch-label-icon { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #60a5fa 0%, #a78bfa 100%); border-radius: 4px; color: white; font-size: 10px; font-weight: 600; } /* 提示文本优化 */ .theme-tip { margin: 0 0 16px; padding: 12px 16px; background: linear-gradient(135deg, #eff6ff 0%, #f5f3ff 100%); border-left: 3px solid #3b82f6; border-radius: 6px; color: #475569; font-size: 13px; line-height: 1.6; } .theme-tip code { padding: 2px 6px; background: rgba(59, 130, 246, 0.1); border-radius: 3px; color: #3b82f6; font-family: 'JetBrains Mono', Consolas, monospace; font-size: 12px; } /* JSON 编辑器优化 */ .theme-textarea textarea { font-family: 'JetBrains Mono', Consolas, Monaco, monospace; font-size: 13px; line-height: 1.6; background: #1e293b; color: #e2e8f0; border-radius: 8px; padding: 16px !important; } /* 轮播/配置项卡片优化 - 更有层次感 */ .banner-item, .config-item { border: 1px solid #e2e8f0; border-radius: 10px; padding: 20px; margin-bottom: 20px; background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; position: relative; overflow: hidden; } .banner-item::before, .config-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #3b82f6 0%, #8b5cf6 50%, #ec4899 100%); opacity: 0; transition: opacity 0.3s ease; } .banner-item:hover, .config-item:hover { border-color: #cbd5e1; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); transform: translateY(-2px); } .banner-item:hover::before, .config-item:hover::before { opacity: 1; } /* 配置项头部优化 */ .banner-item__header, .config-item__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #f1f5f9; } .banner-item__header h4, .config-item__header h4 { margin: 0; font-size: 16px; font-weight: 600; color: #1e293b; display: flex; align-items: center; gap: 8px; } .banner-item__header h4::before, .config-item__header h4::before { content: '●'; color: #3b82f6; font-size: 12px; } /* 子标题优化 */ .sub-title { margin: 24px 0 12px; padding-left: 12px; font-size: 15px; font-weight: 600; color: #475569; border-left: 3px solid #3b82f6; display: flex; align-items: center; } /* 空状态优化 - 更友好的视觉引导 */ .empty-tip { padding: 32px 24px; border: 2px dashed #cbd5e1; border-radius: 10px; color: #64748b; margin-bottom: 20px; background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); text-align: center; font-size: 14px; line-height: 1.8; position: relative; transition: all 0.3s ease; } .empty-tip::before { content: '📋'; display: block; font-size: 32px; margin-bottom: 12px; opacity: 0.6; } .empty-tip:hover { border-color: #94a3b8; background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%); } /* 上传行优化 - 更紧凑的布局 */ .upload-row { display: flex; align-items: center; gap: 8px; } .upload-row .t-input { flex: 1; } .upload-row .t-button { flex-shrink: 0; min-width: 80px; } /* 底部操作栏优化 */ .action-bar { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 32px; padding: 20px 24px; background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%); border-radius: 12px; border: 1px solid #e2e8f0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); position: sticky; bottom: 20px; z-index: 100; } /* 按钮增强 */ .action-bar .t-button { min-width: 120px; font-weight: 500; transition: all 0.3s ease; } .action-bar .t-button--primary { background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); } .action-bar .t-button--primary:hover { box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4); transform: translateY(-2px); } /* 间距工具类优化 */ .mt-10 { margin-top: 16px; } .ml-10 { margin-left: 12px; } .mb-10 { margin-bottom: 16px; } /* Tab 标签页优化 */ .t-tabs__nav { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border-radius: 10px 10px 0 0; padding: 8px; } .t-tab { font-weight: 500; transition: all 0.3s ease; } .t-tab.t-is-active { background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); color: white !important; border-radius: 6px; } /* 响应式优化 */ @media (max-width: 768px) { .form-grid { grid-template-columns: 1fr; gap: 16px; } .banner-item, .config-item { padding: 16px; } .action-bar { flex-direction: column; gap: 8px; } .action-bar .t-button { width: 100%; } .form-item--switch { flex-direction: column; align-items: flex-start; gap: 12px; } } /* 滚动条美化 */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #3b82f6 0%, #8b5cf6 100%); border-radius: 4px; transition: background 0.3s ease; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #2563eb 0%, #7c3aed 100%); } /* 输入框聚焦优化 */ .t-input:focus-within, .t-textarea:focus-within { box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); border-color: #3b82f6; } /* 加载状态优化 */ .t-button--loading { opacity: 0.7; cursor: not-allowed; } /* 删除按钮优化 */ .t-button--danger { transition: all 0.3s ease; } .t-button--danger:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3); } /* 成功状态提示 */ .success-indicator { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; border-radius: 16px; font-size: 12px; font-weight: 500; } /* 表单验证提示 */ .form-error { color: #ef4444; font-size: 12px; margin-top: 4px; display: flex; align-items: center; gap: 4px; } .form-error::before { content: '⚠'; font-size: 14px; }