- 使用 Teleport 将 Select 下拉菜单渲染到 body,避免 driver.js 遮罩层阻挡 - 添加 pointer-events 和 @click.stop 确保下拉选项可点击 - 移除 useOnboardingTour 中无效的 Select 组件处理代码 - 清理未使用的 CSS 样式和 console 调试语句 - 简化 Select 组件在引导期间的交互逻辑
229 lines
7.5 KiB
CSS
229 lines
7.5 KiB
CSS
/* Sub2API Interactive Tour Styles - DOM Restructured Version */
|
||
|
||
/* 1. Overlay & Highlight */
|
||
.driver-overlay {
|
||
position: fixed !important;
|
||
inset: 0 !important;
|
||
z-index: 99999998 !important;
|
||
background-color: transparent !important;
|
||
/*
|
||
* 关键修复:让 overlay 不拦截点击事件
|
||
* 因为已设置 allowClose: false,用户不能通过点击遮罩关闭引导
|
||
* 这样 Select 下拉菜单等脱离高亮区域的元素才能正常交互
|
||
* 视觉遮罩效果保持不变(SVG 仍然渲染,pointer-events 只影响交互不影响渲染)
|
||
*/
|
||
pointer-events: none !important;
|
||
}
|
||
|
||
.driver-overlay svg {
|
||
pointer-events: none !important;
|
||
}
|
||
|
||
.driver-active-element {
|
||
position: relative !important;
|
||
z-index: 99999999 !important;
|
||
outline: 4px solid rgba(20, 184, 166, 0.2) !important;
|
||
border-radius: 4px !important;
|
||
}
|
||
|
||
/* 2. Popover Container */
|
||
.driver-popover.theme-tour-popover {
|
||
position: fixed !important;
|
||
z-index: 100000000 !important;
|
||
background-color: #ffffff !important;
|
||
border: 1px solid #e5e7eb !important;
|
||
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
|
||
border-radius: 12px !important;
|
||
padding: 0 !important;
|
||
max-width: min(440px, 90vw) !important; /* Responsive on small screens */
|
||
color: #1f2937 !important;
|
||
font-family: ui-sans-serif, system-ui, sans-serif !important;
|
||
overflow: hidden !important;
|
||
}
|
||
|
||
.dark .driver-popover.theme-tour-popover {
|
||
background-color: #1e293b !important;
|
||
border-color: #334155 !important;
|
||
color: #f3f4f6 !important;
|
||
}
|
||
|
||
/* 3. Header Area */
|
||
.theme-tour-popover .driver-popover-title {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
padding: 20px 24px 12px 24px !important;
|
||
margin: 0 !important;
|
||
background-color: transparent !important;
|
||
position: relative !important;
|
||
}
|
||
|
||
.driver-popover-title-text {
|
||
font-size: 18px !important;
|
||
font-weight: 700 !important;
|
||
color: #111827 !important;
|
||
line-height: 1.3 !important;
|
||
padding-right: 100px !important; /* Ensure title doesn't overlap Skip/Close */
|
||
}
|
||
.dark .driver-popover-title-text { color: #ffffff !important; }
|
||
|
||
/* Close Button */
|
||
.theme-tour-popover .driver-popover-close-btn {
|
||
position: absolute !important;
|
||
top: 18px !important;
|
||
right: 20px !important;
|
||
width: 28px !important;
|
||
height: 28px !important;
|
||
padding: 0 !important;
|
||
color: #9ca3af !important;
|
||
background-color: transparent !important;
|
||
border: none !important;
|
||
z-index: 20 !important;
|
||
border-radius: 4px !important;
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
justify-content: center !important;
|
||
}
|
||
.theme-tour-popover .driver-popover-close-btn:hover { background-color: #f3f4f6 !important; color: #4b5563 !important; }
|
||
.dark .theme-tour-popover .driver-popover-close-btn:hover { background-color: #334155 !important; }
|
||
|
||
/* 4. Body Content */
|
||
.theme-tour-popover .driver-popover-description {
|
||
display: block !important;
|
||
font-size: 14px !important;
|
||
font-weight: 400 !important;
|
||
color: #4b5563 !important;
|
||
padding: 0 24px 24px 24px !important;
|
||
margin: 0 !important;
|
||
line-height: 1.6 !important;
|
||
background-color: transparent !important;
|
||
}
|
||
.dark .theme-tour-popover .driver-popover-description { color: #cbd5e1 !important; }
|
||
|
||
/* 5. Footer Area - Flex Row with Left/Right Containers */
|
||
.theme-tour-popover .driver-popover-footer {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
justify-content: space-between !important; /* Push Left and Right apart */
|
||
padding: 16px 24px !important;
|
||
background-color: #f9fafb !important;
|
||
border-top: 1px solid #f3f4f6 !important;
|
||
margin: 0 !important;
|
||
}
|
||
.dark .theme-tour-popover .driver-popover-footer {
|
||
background-color: #0f172a !important;
|
||
border-top-color: #1e293b !important;
|
||
}
|
||
|
||
/* Left Container: Progress + Shortcuts */
|
||
.footer-left {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
gap: 16px !important;
|
||
}
|
||
|
||
/* Right Container: Buttons */
|
||
.footer-right {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
gap: 8px !important;
|
||
}
|
||
|
||
/* Progress */
|
||
.theme-tour-popover .driver-popover-progress-text {
|
||
font-size: 13px !important;
|
||
color: #6b7280 !important;
|
||
margin: 0 !important;
|
||
font-weight: 500 !important;
|
||
white-space: nowrap !important;
|
||
}
|
||
.dark .theme-tour-popover .driver-popover-progress-text { color: #9ca3af !important; }
|
||
|
||
/* Shortcuts (Divider + Keys) */
|
||
.footer-shortcuts {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
gap: 12px !important;
|
||
padding-left: 16px !important;
|
||
border-left: 1px solid #e5e7eb !important;
|
||
height: 20px !important;
|
||
}
|
||
.dark .footer-shortcuts { border-left-color: #334155 !important; }
|
||
|
||
.shortcut-item {
|
||
display: flex !important;
|
||
align-items: center !important;
|
||
gap: 4px !important;
|
||
font-size: 12px !important;
|
||
color: #6b7280 !important;
|
||
white-space: nowrap !important;
|
||
}
|
||
.dark .shortcut-item { color: #94a3b8 !important; }
|
||
|
||
.shortcut-item kbd {
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace !important;
|
||
background-color: #ffffff !important;
|
||
border: 1px solid #e5e7eb !important;
|
||
border-radius: 4px !important;
|
||
padding: 1px 6px !important;
|
||
font-size: 11px !important;
|
||
font-weight: 600 !important;
|
||
color: #4b5563 !important;
|
||
box-shadow: 0 1px 0 rgba(0,0,0,0.05) !important;
|
||
min-width: 20px !important;
|
||
text-align: center !important;
|
||
display: inline-block !important;
|
||
}
|
||
.dark .shortcut-item kbd {
|
||
background-color: #1e293b !important;
|
||
border-color: #475569 !important;
|
||
color: #cbd5e1 !important;
|
||
}
|
||
|
||
/* Nav Buttons */
|
||
.theme-tour-popover button {
|
||
display: inline-flex !important;
|
||
align-items: center !important;
|
||
justify-content: center !important;
|
||
padding: 8px 16px !important;
|
||
font-size: 13px !important;
|
||
font-weight: 500 !important;
|
||
border-radius: 6px !important;
|
||
cursor: pointer !important;
|
||
transition: all 0.2s !important;
|
||
border: 1px solid transparent !important;
|
||
line-height: 1.2 !important;
|
||
white-space: nowrap !important; /* Force no wrap */
|
||
}
|
||
|
||
.theme-tour-popover .driver-popover-next-btn {
|
||
background-color: #14b8a6 !important;
|
||
color: #ffffff !important;
|
||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
|
||
}
|
||
.theme-tour-popover .driver-popover-next-btn:hover { background-color: #0d9488 !important; }
|
||
|
||
.theme-tour-popover .driver-popover-prev-btn {
|
||
background-color: white !important;
|
||
color: #6b7280 !important;
|
||
border: 1px solid #e5e7eb !important;
|
||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
|
||
}
|
||
.theme-tour-popover .driver-popover-prev-btn:hover { background-color: #f9fafb !important; color: #374151 !important; }
|
||
.dark .theme-tour-popover .driver-popover-prev-btn {
|
||
background-color: #1e293b !important;
|
||
border-color: #475569 !important;
|
||
color: #9ca3af !important;
|
||
}
|
||
|
||
/* Arrows */
|
||
.driver-popover-arrow { z-index: 100000001 !important; }
|
||
.driver-popover-arrow-side-left.driver-popover-arrow { border-left-color: #ffffff !important; }
|
||
.driver-popover-arrow-side-right.driver-popover-arrow { border-right-color: #ffffff !important; }
|
||
.driver-popover-arrow-side-top.driver-popover-arrow { border-top-color: #ffffff !important; }
|
||
.driver-popover-arrow-side-bottom.driver-popover-arrow { border-bottom-color: #ffffff !important; }
|
||
|
||
.dark .driver-popover-arrow-side-left.driver-popover-arrow { border-left-color: #1e293b !important; }
|
||
.dark .driver-popover-arrow-side-right.driver-popover-arrow { border-right-color: #1e293b !important; }
|
||
.dark .driver-popover-arrow-side-top.driver-popover-arrow { border-top-color: #1e293b !important; }
|
||
.dark .driver-popover-arrow-side-bottom.driver-popover-arrow { border-bottom-color: #1e293b !important; }
|