diff --git a/static/src/styles/components/sidebar/_conversation.scss b/static/src/styles/components/sidebar/_conversation.scss index ccf6e8c6..90143b8f 100644 --- a/static/src/styles/components/sidebar/_conversation.scss +++ b/static/src/styles/components/sidebar/_conversation.scss @@ -117,6 +117,7 @@ .sidebar-nav-label, .conversation-search, .conversation-list, +.conversation-type-switch, .personal-label { opacity: 1; transition: opacity 220ms ease; @@ -126,11 +127,27 @@ .conversation-sidebar.collapsed .sidebar-nav-label, .conversation-sidebar.collapsed .conversation-search, .conversation-sidebar.collapsed .conversation-list, +.conversation-sidebar.collapsed .conversation-type-switch, .conversation-sidebar.collapsed .personal-label { opacity: 0; transition-delay: 0ms; } +/* 收起时隐藏的可交互容器必须同时脱离指针事件与聚焦序列: + 它们只是透明,落在 44px 图标栏宽度内的部分仍占据布局, + 不禁止的话点击不可见区域仍会触发切换对话/聚焦输入 */ +.conversation-sidebar.collapsed .conversation-search, +.conversation-sidebar.collapsed .conversation-list, +.conversation-sidebar.collapsed .conversation-type-switch { + pointer-events: none; + visibility: hidden; + /* visibility 延迟到淡出结束后再切换,避免收起时内容瞬间消失; + 展开时本规则不再匹配,visibility 不在基础 transition 列表中,立即恢复 visible */ + transition: + opacity 220ms ease, + visibility 0s linear 220ms; +} + .sidebar-nav-label { min-width: 0; padding-left: 6px;