@@ -191,6 +191,10 @@
--btn-solid-hover-bg : #303030 ;
--btn-solid-active-bg : #404040 ;
--btn-solid-fg : #ffffff ;
--btn-outline-border : color-mix ( in srgb , var ( - - foreground ) 16 % , transparent ) ;
--btn-outline-hover-border : color-mix ( in srgb , var ( - - foreground ) 28 % , transparent ) ;
--btn-outline-hover-bg : color-mix ( in srgb , var ( - - foreground ) 6 % , transparent ) ;
--btn-outline-active-bg : color-mix ( in srgb , var ( - - foreground ) 9 % , transparent ) ;
--control-selected-bg : rgba ( 17 , 17 , 17 , 0.09 ) ;
--control-selected-hover-bg : rgba ( 17 , 17 , 17 , 0.13 ) ;
--control-selected-fg : #171717 ;
@@ -952,6 +956,8 @@
--dock-precision-width : var ( - - space -12 ) ;
--dock-z-popover : 30 ; /* dock 子面板在 toolbar 根 stacking context 内的层级(见 ADR-001) */
--dock-switch-track : #000000 ; /* 抓手/框选胶囊轨道:纯黑,和工具栏表面分开 */
--dock-switch-thumb : #ffffff ;
--dock-switch-thumb-text : #000000 ; /* 选中图标落在白圆上,用纯黑描边避免发灰 */
/* 页面顶部栏( PageHeader / 工作台头部)*/
--page-topbar-h : 64 px ;
@@ -2258,6 +2264,46 @@
color : var ( - - control - selected - fg ) !important ;
}
/* 用户端主按钮与弹窗确认:统一描边,不再用实心填充。后台和管理登录 CTA 不受影响。 */
. app-user-workspace . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) ,
. app-user-overlays . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) ,
. library-primary-action {
border : 1 px solid var ( - - btn - outline - border ) !important ;
background : transparent !important ;
color : var ( - - foreground ) !important ;
box-shadow : none !important ;
}
. app-user-workspace . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : hover ,
. app-user-overlays . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : hover ,
. library-primary-action : not ( : disabled ) : hover {
border-color : var ( - - btn - outline - hover - border ) !important ;
background : var ( - - btn - outline - hover - bg ) !important ;
color : var ( - - foreground ) !important ;
}
. app-user-workspace . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : active ,
. app-user-overlays . ant-btn-primary : not ( . ant-btn-dangerous ) : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : active ,
. library-primary-action : not ( : disabled ) : active {
background : var ( - - btn - outline - active - bg ) !important ;
color : var ( - - foreground ) !important ;
}
. app-user-workspace . ant-btn-primary . ant-btn-dangerous : not ( [ aria-pressed = "true" ] ) ,
. app-user-overlays . ant-btn-primary . ant-btn-dangerous : not ( [ aria-pressed = "true" ] ) {
border : 1 px solid color-mix ( in srgb , var ( - - status - error ) 42 % , transparent ) !important ;
background : transparent !important ;
color : var ( - - status - error ) !important ;
box-shadow : none !important ;
}
. app-user-workspace . ant-btn-primary . ant-btn-dangerous : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : hover ,
. app-user-overlays . ant-btn-primary . ant-btn-dangerous : not ( [ aria-pressed = "true" ] ) : not ( : disabled ) : hover {
border-color : color-mix ( in srgb , var ( - - status - error ) 58 % , transparent ) !important ;
background : color-mix ( in srgb , var ( - - status - error ) 8 % , transparent ) !important ;
color : var ( - - status - error ) !important ;
}
/* AntD Switch 只有一个 handleBg token, 无法分别表达开/关滑块颜色。
这里是全应用唯一的状态配对层,确保任何容器和 Portal 中都保持对比。 */
: where ( . ant-switch . ant-switch-checked ) {
@@ -4838,21 +4884,22 @@
}
. workflow-test-toolbar-actions . ant-btn-primary {
border : 0 ;
background : var ( - - btn - solid - bg ) !important ;
color : var ( - - btn - solid - fg ) !important ;
border : 1 px solid var ( - - btn - outline - border ) !important ;
background : transparent !important ;
color : var ( - - foreground ) !important ;
box-shadow : none !important ;
font-weight : 62 0 ;
font-weight : 5 60;
}
. workflow-test-toolbar-actions . ant-btn-primary : not ( : disabled ) : hover {
background : var ( - - btn - solid - hover - bg ) !important ;
color : var ( - - btn - solid - f g) !important ;
border-color : var ( - - btn - outline - hover - border ) !important ;
background : var ( - - btn - outline - hover - b g) !important ;
color : var ( - - foreground ) !important ;
}
. workflow-test-toolbar-actions . ant-btn-primary : not ( : disabled ) : active {
background : var ( - - btn - solid - active - bg ) !important ;
color : var ( - - btn - solid - fg ) !important ;
background : var ( - - btn - outline - active - bg ) !important ;
color : var ( - - foreground ) !important ;
}
. workflow-test-toolbar-actions . ant-btn-primary > span ,
@@ -5260,21 +5307,21 @@
/* 页面头部按钮优化 - 去除重边框 */
html : not ( . dark ) . library-page . app-page-header . ant-btn ,
html : not ( . dark ) . canvas-library-page . app-page-header . ant-btn {
border : 1 px solid rgba ( 17 , 17 , 17 , 0.08 ) !important ;
background : #ffffff !important ;
color : #171717 !important ;
box-shadow : 0 1 px 2 px rgba ( 0 , 0 , 0 , 0.04 ) !important ;
border : 1 px solid var ( - - btn - outline - border ) !important ;
background : transparent !important ;
color : var ( - - foreground ) !important ;
box-shadow : none !important ;
transition : all 180 ms ease-out !important ;
}
html : not ( . dark ) . library-page . app-page-header . ant-btn : hover ,
html : not ( . dark ) . canvas-library-page . app-page-header . ant-btn : hover {
border-color : rgba ( 17 , 17 , 17 , 0.12 ) !important ;
background : #ffffff !important ;
color : #171717 !important ;
box-shadow : 0 2 px 6 px rgba ( 0 , 0 , 0 , 0.08 ) !important ;
border-color : var ( - - btn - outline - hover - border ) !important ;
background : var ( - - btn - outline - hover - bg ) !important ;
color : var ( - - foreground ) !important ;
box-shadow : none !important ;
transform : translateY ( -1 px ) ;
}
. library-primary-action { border : 0 !important ; border-radius : var ( - - r - md ) !important ; background : var ( - - btn - solid - bg ) !important ; color : var ( - - btn - solid - fg ) !important ; box-shadow : none !important ; font-weight : 62 0 ; }
. library-primary-action { border : 1 px solid var ( - - btn - outline - border ) !important ; border-radius : var ( - - r - md ) !important ; background : transparent !important ; color : var ( - - foreground ) !important ; box-shadow : none !important ; font-weight : 5 60; }
/* 画布库页头操作:沿用现有配色,只统一几何比例与触感反馈。 */
. canvas-library-header-actions {
@@ -5700,7 +5747,7 @@
. project-standard-flow-head span { color : var ( - - workspace - accent ) ; font-size : var ( - - fs - micro ) ; font-weight : 650 ; }
. project-standard-flow-head h2 { margin-top : 4 px ; font-size : 20 px ; font-weight : 680 ; }
. project-standard-flow-head p { max-width : 720 px ; margin-top : 5 px ; color : color-mix ( in srgb , var ( - - foreground ) 48 % , transparent ) ; font-size : var ( - - fs - caption ) ; line-height : 1.6 ; }
. project-standard-flow-head > a { display : inline-flex ; height : 32 px ; flex : 0 0 auto ; align-items : center ; gap : 6 px ; padding : 0 11 px ; border-radius : var ( - - r - md ) ; background : var ( - - btn - solid - bg ) ; color : var ( - - btn - solid - fg ) ; font-size : var ( - - fs - label ) ; font-weight : 60 0 ; }
. project-standard-flow-head > a { display : inline-flex ; height : 32 px ; flex : 0 0 auto ; align-items : center ; gap : 6 px ; padding : 0 11 px ; border : 1 px solid var ( - - btn - outline - border ) ; border-radius : var ( - - r - md ) ; background : transparent ; color : var ( - - foreground ) ; font-size : var ( - - fs - label ) ; font-weight : 5 60; }
. project-standard-flow-head > a svg { width : 14 px ; height : 14 px ; }
. project-standard-flow-track { display : grid ; grid-template-columns : repeat ( 6 , minmax ( 0 , 1 fr ) ) ; gap : 10 px ; border-top : 1 px solid var ( - - library - border ) ; border-bottom : 1 px solid var ( - - library - border ) ; padding : 14 px 16 px 16 px ; background : color-mix ( in srgb , var ( - - foreground ) 2 % , var ( - - library - surface ) ) ; }
. project-standard-flow-track > a { position : relative ; display : grid ; min-width : 0 ; min-height : 176 px ; grid-template-rows : 24 px auto auto 1 fr auto ; align-content : start ; padding : 16 px ; border : 1 px solid var ( - - library - border ) ; border-radius : var ( - - r - lg ) ; background : color-mix ( in srgb , var ( - - library - surface ) 96 % , var ( - - foreground ) 4 % ) ; color : var ( - - foreground ) ; box-shadow : 0 8 px 24 px color-mix ( in srgb , var ( - - foreground ) 4 % , transparent ) , inset 0 1 px 0 color-mix ( in srgb , white 4 % , transparent ) ; transition : border-color var ( - - motion - instant ) , background-color var ( - - motion - instant ) , box-shadow var ( - - motion - instant ) ; }
@@ -5747,8 +5794,8 @@
. project-overview-title { max-width : 22 ch ; margin-top : 14 px ; color : var ( - - foreground ) ; font-size : 30 px ; font-weight : 640 ; line-height : 1.24 ; letter-spacing : 0 ; text-wrap : balance ; }
. project-overview-description { max-width : 62 ch ; margin-top : 10 px ; color : color-mix ( in srgb , var ( - - foreground ) 50 % , transparent ) ; font-size : var ( - - fs - body ) ; line-height : 1.65 ; text-wrap : pretty ; }
. project-overview-cta { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 8 px ; margin-top : 26 px ; }
. project-overview-cta-primary { display : inline-flex ; max-width : 100 % ; height : 40 px ; align-items : center ; gap : 8 px ; border-radius : var ( - - r - md ) ; background : var ( - - btn - solid - bg ) ; padding-inline : 18 px ; color : var ( - - btn - solid - fg ) ; font-size : var ( - - fs - body ) ; font-weight : 560 ; transition : opacity 160 ms ease-out ; }
. project-overview-cta-primary : hover { background : var ( - - btn - solid - hover - bg ) ; color : var ( - - btn - solid - fg ) ; }
. project-overview-cta-primary { display : inline-flex ; max-width : 100 % ; height : 40 px ; align-items : center ; gap : 8 px ; border : 1 px solid var ( - - btn - outline - border ) ; border-radius : var ( - - r - md ) ; background : transparent ; padding-inline : 18 px ; color : var ( - - foreground ) ; font-size : var ( - - fs - body ) ; font-weight : 560 ; transition : background-color 160 ms ease-out , border-color 160 ms ease-out ; }
. project-overview-cta-primary : hover { border-color : var ( - - btn - outline - hover - border ) ; background : var ( - - btn - outline - hover - bg ) ; color : var ( - - foreground ) ; }
. project-overview-cta-primary : focus-visible { outline : 2 px solid var ( - - ring ) ; outline-offset : 2 px ; }
. project-overview-cta-secondary { display : inline-flex ; height : 40 px ; align-items : center ; gap : 6 px ; border-radius : var ( - - r - md ) ; padding-inline : 12 px ; color : color-mix ( in srgb , var ( - - foreground ) 50 % , transparent ) ; font-size : var ( - - fs - caption ) ; font-weight : 500 ; transition : background-color 160 ms ease-out , color 160 ms ease-out ; }
. project-overview-cta-secondary : hover { background : color-mix ( in srgb , var ( - - foreground ) 5 % , transparent ) ; color : var ( - - foreground ) ; }
@@ -6764,14 +6811,22 @@
}
. aceternity-dock-switch-option [ aria-checked = "true" ] {
color : var ( - - dock - switch - thumb - text , var ( - - background ) ) ;
color : var ( - - dock - switch - thumb - text , #000000 ) ;
opacity : 1 ;
}
. aceternity-dock-switch-option > span svg {
width : 100 % ;
height : 100 % ;
stroke-width : 1.9 ;
fill : none ;
stroke : currentColor ;
stroke-width : 2 px ;
}
. aceternity-dock-switch-option [ aria-checked = "true" ] > span svg {
color : var ( - - dock - switch - thumb - text , #000000 ) ;
stroke : currentColor ;
stroke-width : 2.6 px ;
}
. aceternity-dock-switch-option : focus-visible {
@@ -8705,11 +8760,11 @@
height : 30 px ;
flex : 0 0 30 px ;
place-items : center ;
border : 0 ;
border : 1 px solid var ( - - btn - outline - border ) ;
border-radius : var ( - - r - full ) ;
background : var ( - - btn - solid - bg ) ;
color : var ( - - btn - solid - fg ) !important ;
transition : opacity var ( - - motion - dur - fast ) var ( - - motion - ease-out ) , transform var ( - - motion - dur - fast ) var ( - - motion - ease-out ) ;
background : transparent ;
color : var ( - - foreground ) !important ;
transition : opacity var ( - - motion - dur - fast ) var ( - - motion - ease-out ) , transform var ( - - motion - dur - fast ) var ( - - motion - ease-out ) , background-color var ( - - motion - dur - fast ) var ( - - motion - ease-out ) , border-color var ( - - motion - dur - fast ) var ( - - motion - ease-out ) ;
}
. canvas-prompt-optimizer-send > svg {
@@ -13838,10 +13893,10 @@ html:not(.dark) .creation-history-drawer-root {
. library-modal : where ( . ant-input : hover , . ant-input-affix-wrapper : hover , . ant-select-selector : hover ) { border-color : color-mix ( in srgb , var ( - - foreground ) 26 % , transparent ) !important ; }
/* 聚焦态:--workspace-accent 暗色下是 #f5f5f5, 直接描边会形成刺眼白圈, 降到半透明。 */
. library-modal : where ( . ant-input : focus , . ant-input-affix-wrapper-focused , . ant-select-focused . ant-select-selector ) { border-color : var ( - - control - focus - ring ) !important ; box-shadow : none !important ; }
. library-modal . ant-btn-primary { border : 0 ; border-radius : var ( - - r - md ) ; background : var ( - - btn - solid - bg ) ; color : var ( - - btn - solid - fg ) ; box-shadow : none ; font-weight : 62 0 ; }
. library-modal . ant-btn-primary : not ( : disabled ) : hover { background : var ( - - btn - solid - hover - bg ) ; color : var ( - - btn - solid - fg ) ; }
. library-modal . ant-btn-primary : not ( : disabled ) : active { background : var ( - - btn - solid - active - bg ) ; color : var ( - - btn - solid - fg ) ; }
. library-modal . ant-btn-default { border-color : color-mix ( in srgb , var ( - - foreground ) 15 % , transparent ) ; border-radius : var ( - - r - md ) ; background : color-mix ( in srgb , var ( - - foreground ) 4 % , transparent ) ; }
. library-modal . ant-btn-primary { border : 1 px solid var ( - - btn - outline - border ) ; border-radius : var ( - - r - md ) ; background : transparent ; color : var ( - - foreground ) ; box-shadow : none ; font-weight : 5 60; }
. library-modal . ant-btn-primary : not ( : disabled ) : hover { border-color : var ( - - btn - outline - hover - border ) ; background : var ( - - btn - outline - hover - bg ) ; color : var ( - - foreground ) ; }
. library-modal . ant-btn-primary : not ( : disabled ) : active { background : var ( - - btn - outline - active - bg ) ; color : var ( - - foreground ) ; }
. library-modal . ant-btn-default { border-color : var ( - - btn - outline - border ) ; border-radius : var ( - - r - md ) ; background : transparent ; }
/* 短剧创作: AI 创建入口面板与创建弹窗来源/画风选择 */
. app-story-create-panel {
@@ -13905,24 +13960,25 @@ html:not(.dark) .creation-history-drawer-root {
height : 34 px ;
align-items : center ;
gap : 7 px ;
border : 0 ;
border : 1 px solid var ( - - btn - outline - border ) ;
border-radius : var ( - - r - md ) ;
background : color-mix ( in srgb , var ( - - foreground ) 3 % , transparent ) ;
background : transparent ;
padding : 0 12 px ;
color : color-mix ( in srgb , var ( - - foreground ) 6 2% , transparent ) ;
color : color-mix ( in srgb , var ( - - foreground ) 7 2% , transparent ) ;
font-size : var ( - - fs - caption ) ;
font-weight : 520 ;
transition : background-color 180 ms ease-out , color 180 ms ease-out ;
transition : background-color 180 ms ease-out , color 180 ms ease-out , border-color 180 ms ease-out ;
}
. app-story-create-shortcut : hover {
background : color-mix ( in srgb , var ( - - foreground ) 6 % , transparent ) ;
border-color : var ( - - btn - outline - hover - border ) ;
background : var ( - - btn - outline - hover - bg ) ;
color : var ( - - foreground ) ;
}
. app-story-create-actions . ant-btn-default {
border : 0 ;
background : color-mix ( in srgb , var ( - - foreground ) 4 % , transparent ) ;
border : 1 px solid var ( - - btn - outline - border ) ;
background : transparent ;
box-shadow : none ;
}
@@ -14470,7 +14526,8 @@ html:not(.dark) .creation-history-drawer-root {
. library-drawer . ant-drawer-close { width : 34 px ; height : 34 px ; margin-inline-end : 6 px ; border-radius : var ( - - r - full ) ; color : color-mix ( in srgb , var ( - - foreground ) 42 % , transparent ) ; }
. library-drawer . ant-drawer-close : hover { background : color-mix ( in srgb , var ( - - foreground ) 8 % , transparent ) ; color : var ( - - foreground ) ; }
. library-drawer . ant-drawer-body { padding : 22 px 28 px 30 px ; }
. library-drawer . ant-drawer-extra . ant-btn { border : 0 ; border-radius : var ( - - r - md ) ; background : var ( - - btn - solid - bg ) ; color : var ( - - btn - solid - fg ) ; font-weight : 620 ; }
. library-drawer . ant-drawer-extra . ant-btn { border : 1 px solid var ( - - btn - outline - border ) ; border-radius : var ( - - r - md ) ; background : transparent ; color : var ( - - foreground ) ; font-weight : 560 ; box-shadow : none ; }
. library-drawer . ant-drawer-extra . ant-btn : not ( : disabled ) : hover { border-color : var ( - - btn - outline - hover - border ) ; background : var ( - - btn - outline - hover - bg ) ; color : var ( - - foreground ) ; }
. library-drawer . ant-form-item-label > label { color : color-mix ( in srgb , var ( - - foreground ) 68 % , transparent ) ; font-size : var ( - - fs - caption ) ; font-weight : 560 ; }
. library-drawer : where ( . ant-input , . ant-input-affix-wrapper , . ant-select-selector ) { border-color : color-mix ( in srgb , var ( - - foreground ) 15 % , transparent ) !important ; border-radius : var ( - - r - md ) !important ; background : color-mix ( in srgb , var ( - - foreground ) 3 % , transparent ) !important ; box-shadow : none !important ; }
. library-drawer : where ( . ant-input : hover , . ant-input-affix-wrapper : hover , . ant-select-selector : hover ) { border-color : color-mix ( in srgb , var ( - - foreground ) 26 % , transparent ) !important ; }
@@ -15037,19 +15094,29 @@ html:not(.dark) .creation-history-drawer-root {
. assets-storage-usage { width : 100 % ; }
. assets-storage-usage-track { min-width : 32 px ; }
}
/* 页头主按钮: 压过 light 主题下 app-page-header 按钮的白色背景 覆盖。 */
. assets-library-page . canvas-library-page . app-page-header . library-primary-actio n {
border : 0 !important ;
background : var ( - - btn - solid - bg ) !important ;
color : var ( - - btn - solid - fg ) !important ;
/* 页头操作:明暗都用描边, 压过 light 主题下 app-page-header 的白底实心 覆盖。 */
html . assets-library-page . app-page-header . assets-header-action-buttons . ant-bt n {
height : 32 px ;
border : 1 px solid color-mix ( in srgb , var ( - - foreground ) 16 % , transparent ) !important ;
background : transparent !important ;
color : var ( - - foreground ) !important ;
box-shadow : none !important ;
font-weight : 560 ;
}
. assets-library-page . canvas-library-page . app-page-header . library-primary-actio n: not ( : disabled ) : hover {
border-color : transparent !important ;
background : var ( - - btn - solid - hover - bg ) !important ;
color : var ( - - btn - solid - fg ) !important ;
html . assets-library-page . app-page-header . assets-header-action-buttons . ant-bt n: not ( : disabled ) : hover {
border-color : color-mix ( in srgb , var ( - - foreground ) 28 % , transparent ) !important ;
background : color-mix ( in srgb , var ( - - foreground ) 6 % , transparent ) !important ;
color : var ( - - foreground ) !important ;
transform : translateY ( -1 px ) ;
}
html . assets-library-page . app-page-header . assets-header-action-buttons . ant-btn-icon-only {
width : 32 px ;
padding-inline : 0 ;
}
html . assets-library-page . app-page-header . assets-header-action-buttons . ant-btn-dangerous {
border-color : color-mix ( in srgb , var ( - - status - error ) 42 % , transparent ) !important ;
color : var ( - - status - error ) !important ;
}
/* 筛选胶囊:激活态 accent 反白 + 计数徽章反白 */
. assets-filter-item {
@@ -15318,9 +15385,9 @@ html:not(.dark) .creation-history-drawer-root {
. asset-archive-section-title { display : block ; margin-bottom : 8 px ; color : color-mix ( in srgb , var ( - - foreground ) 40 % , transparent ) ; font-size : var ( - - fs - tiny ) ; font-weight : 560 ; letter-spacing : .05 em ; }
. asset-archive-section-body { margin : 0 ; color : color-mix ( in srgb , var ( - - foreground ) 74 % , transparent ) ; font-size : var ( - - fs - label ) ; line-height : 1.7 ; white-space : pre-wrap ; }
. asset-archive-actions { display : flex ; gap : 8 px ; flex-wrap : wrap ; }
. library-drawer . ant-btn-primary { border : 0 ; background : var ( - - btn - solid - bg ) ; color : var ( - - btn - solid - fg ) ; box-shadow : none ; font-weight : 62 0 ; }
. library-drawer . ant-btn-primary : not ( : disabled ) : hover { background : var ( - - btn - solid - hover - bg ) ; color : var ( - - btn - solid - fg ) ; }
. library-drawer . ant-btn-primary : not ( : disabled ) : active { background : var ( - - btn - solid - active - bg ) ; color : var ( - - btn - solid - fg ) ; }
. library-drawer . ant-btn-primary { border : 1 px solid var ( - - btn - outline - border ) ; background : transparent ; color : var ( - - foreground ) ; box-shadow : none ; font-weight : 5 60; }
. library-drawer . ant-btn-primary : not ( : disabled ) : hover { border-color : var ( - - btn - outline - hover - border ) ; background : var ( - - btn - outline - hover - bg ) ; color : var ( - - foreground ) ; }
. library-drawer . ant-btn-primary : not ( : disabled ) : active { background : var ( - - btn - outline - active - bg ) ; color : var ( - - foreground ) ; }
@ media ( max-width : 680px ) {
. assets-empty-cards { grid-template-columns : 1 fr ; }