vibe-proxy/frontend/src/features/authFiles/components/OAuthConfigPanels.module.scss
2026-08-24 00:10:41 +02:00

168 lines
3.2 KiB
SCSS
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.

@use '../../../styles/mixins' as *;
/* ============================================================
* OAuth 配置双卡(排除模型 / 模型别名共用外衣panel 配方
* 16px 圆角 / 1px 边框 / 82% 透感纸面),列表行走 mono 遥测。
* ============================================================ */
.panel {
display: flex;
flex-direction: column;
gap: 14px;
padding: clamp(16px, 2vw, 20px);
border-radius: 16px;
border: 1px solid var(--border-color);
background: color-mix(in srgb, var(--bg-primary) 82%, transparent);
}
.panelHead {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
flex-wrap: wrap;
}
.panelTitle {
margin: 0;
font-size: 15px;
font-weight: 650;
letter-spacing: -0.01em;
color: var(--text-primary);
}
.panelExtra {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.panelBody {
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
}
/* ---------- 视图切换(列表/图谱) ---------- */
.viewModeSwitch {
display: inline-flex;
align-items: center;
gap: 2px;
padding: 2px;
border-radius: $radius-md;
border: 1px solid var(--border-color);
background: var(--bg-secondary);
}
/* ---------- provider 行 ---------- */
.list {
display: flex;
flex-direction: column;
gap: 6px;
}
.item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 9px 12px;
border-radius: 10px;
border: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
background: color-mix(in srgb, var(--bg-secondary) 45%, transparent);
transition:
background-color $transition-fast,
border-color $transition-fast;
}
@media (hover: hover) and (pointer: fine) {
.item:hover {
border-color: var(--border-hover);
background: color-mix(in srgb, var(--bg-secondary) 80%, transparent);
}
}
.itemInfo {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.itemProvider {
font-family: $font-mono;
font-size: 12.5px;
font-weight: 650;
color: var(--text-primary);
@include text-ellipsis;
}
.itemCount {
font-size: 11.5px;
color: var(--text-tertiary);
}
.itemActions {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
/* ---------- 别名图谱区 ---------- */
.aliasChartSection {
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
}
.aliasChartHeader {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.aliasChartTitle {
margin: 0;
font-family: $font-mono;
font-size: 10.5px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--text-tertiary);
}
.aliasChart {
min-width: 0;
}
/* ---------- 按压反馈 ---------- */
.panel :global(.btn) {
transition:
transform var(--dur-press, 160ms) var(--ease-out-strong, ease-out),
background-color $transition-fast,
border-color $transition-fast,
color $transition-fast;
}
.panel :global(.btn:active:not(:disabled)) {
transform: scale(0.96);
}
@media (prefers-reduced-motion: reduce) {
.panel :global(.btn) {
transition: none;
}
.panel :global(.btn:active:not(:disabled)) {
transform: none;
}
}