@@ -164,6 +164,33 @@
--motion-scale : 0 ;
}
/* infinite 装饰动画在 reduced-motion / no-motion 下降级(对应 #99 三级降级)*/
@ media ( prefers-reduced-motion : reduce ) {
. canvas-connection-flow ,
. canvas-connection-draft ,
. canvas-generation-border-flow ,
. canvas-task-progress-shimmer ,
. ai-title-aurora ,
. creation-intro-mark ,
. creation-intro-word ,
. creation-intro-signal ,
. creation-intro-emphasis {
animation-duration : 0.01 ms ;
animation-iteration-count : 1 ;
}
}
. no-motion . canvas-connection-flow ,
. no-motion . canvas-connection-draft ,
. no-motion . canvas-generation-border-flow ,
. no-motion . canvas-task-progress-shimmer ,
. no-motion . ai-title-aurora ,
. no-motion . creation-intro-mark ,
. no-motion . creation-intro-word ,
. no-motion . creation-intro-signal ,
. no-motion . creation-intro-emphasis {
animation : none ;
}
/* 动效计算函数(实际 duration = base * motion-scale) */
: root {
--motion-dur-instant-calc : calc ( var ( - - motion - dur - instant ) * var ( - - motion - scale ) ) ;
@@ -174,6 +201,11 @@
}
@ theme inline {
/* 响应式断点(对应 #99 四断点体系: mobile/tablet/desktop/wide) */
--breakpoint-tablet : 768px ;
--breakpoint-desktop : 1024px ;
--breakpoint-wide : 1440px ;
--color-background : var ( --background ) ;
--color-foreground : var ( --foreground ) ;
--color-border : var ( --border ) ;
@@ -259,7 +291,7 @@
--motion-instant : 120 ms ;
--motion-state : 180 ms ;
--motion-panel : 240 ms ;
--ease-aceternity : cubic-bezier ( 0.2 , 0.85 , 0.18 , 1 ) ;
--ease-aceternity : var ( - - motion - ease-out ) ;
--ease-product-enter : cubic-bezier ( 0.16 , 1 , 0.3 , 1 ) ;
--workspace-canvas : #ffffff ;
--workspace-surface : rgba ( 255 , 255 , 255 , 0.82 ) ;
@@ -1209,7 +1241,7 @@
. creation-empty-composer {
width : 100 % ;
animation : creation-workbench-enter 420 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-workbench-enter var ( - - motion - dur - slow - calc ) var ( - - motion - ease-out ) both ;
}
. creation-composer {
@@ -1275,7 +1307,7 @@
background : color-mix ( in srgb , var ( - - creation - surface - muted ) 80 % , transparent ) ;
color : var ( - - creation - muted ) ;
transform : rotate ( -7 deg ) ;
transition : border-color 160 ms ease , background-color 160 ms ease , color 160 ms ease , transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : border-color 160 ms ease , background-color 160 ms ease , color 160 ms ease , transform 160 ms var ( - - motion - ease-out ) ;
}
. creation-reference-tile : hover : not ( : disabled ) {
@@ -1521,7 +1553,7 @@
width : 13 px ;
height : 13 px ;
color : var ( - - creation - muted ) ;
transition : transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : transform 160 ms var ( - - motion - ease-out ) ;
}
. creation-chip > svg : last-child . is-open {
@@ -1634,7 +1666,7 @@
box-shadow : inset 0 1 px 0 color-mix ( in srgb , white 52 % , transparent ) ;
backdrop-filter : blur ( 18 px ) saturate ( 120 % ) ;
-webkit- backdrop-filter : blur ( 18 px ) saturate ( 120 % ) ;
transition : border-color 160 ms ease , background-color 160 ms ease , transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : border-color 160 ms ease , background-color 160 ms ease , transform 160 ms var ( - - motion - ease-out ) ;
}
. creation-inspiration-strip button : hover {
@@ -1680,7 +1712,7 @@
. creation-results {
width : 100 % ;
animation : creation-results-enter 280 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-results-enter var ( - - motion - dur - base - calc ) var ( - - motion - ease-out ) both ;
}
. creation-thread-composer {
@@ -1728,7 +1760,7 @@
padding : 0 !important ;
backdrop-filter : blur ( 28 px ) saturate ( 140 % ) ;
-webkit- backdrop-filter : blur ( 28 px ) saturate ( 140 % ) ;
animation : creation-popover-enter 180 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-popover-enter var ( - - motion - dur - fast - calc ) var ( - - motion - ease-out ) both ;
}
. dark . creation-control-popover-surface ,
@@ -2174,7 +2206,7 @@
border-radius : 26 px ;
background : var ( - - creation - surface ) ;
box-shadow : 0 28 px 70 px rgba ( 0 , 0 , 0 , .18 ) ;
animation : creation-workbench-enter 360 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-workbench-enter var ( - - motion - dur - slow - calc ) var ( - - motion - ease-out ) both ;
}
html : not ( . dark ) . creation-studio-composer {
@@ -2208,7 +2240,7 @@
background : #1c1f25 ;
color : #c8cdd5 ;
transform : rotate ( -7 deg ) ;
transition : transform 180 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , border-color 180 ms ease , background-color 180 ms ease ;
transition : transform 180 ms var ( - - motion - ease-out ) , border-color 180 ms ease , background-color 180 ms ease ;
}
html : not ( . dark ) . creation-studio-reference {
@@ -2316,7 +2348,7 @@
font-weight : 600 ;
white-space : nowrap ;
box-shadow : inset 0 1 px 0 rgba ( 255 , 255 , 255 , .055 ) ;
transition : transform 150 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , border-color 150 ms ease , background-color 150 ms ease ;
transition : transform 150 ms var ( - - motion - ease-out ) , border-color 150 ms ease , background-color 150 ms ease ;
}
html : not ( . dark ) . creation-studio-control ,
@@ -2344,7 +2376,7 @@
. creation-studio-control : active { transform : scale ( .98 ) ; }
. creation-studio-control . is-mode { border-color : rgba ( 6 , 182 , 212 , .36 ) !important ; background : rgba ( 4 , 73 , 89 , .28 ) !important ; color : #18c2e1 !important ; }
. creation-studio-control > svg { width : 19 px ; height : 19 px ; flex : 0 0 auto ; }
. creation-studio-control > svg : last-child { width : 17 px ; height : 17 px ; color : var ( - - creation - muted ) ; transition : transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ; }
. creation-studio-control > svg : last-child { width : 17 px ; height : 17 px ; color : var ( - - creation - muted ) ; transition : transform 160 ms var ( - - motion - ease-out ) ; }
. creation-studio-control > svg : last-child . is-open { transform : rotate ( 180 deg ) ; }
. creation-model-picker . canvas-composer-model-picker {
@@ -2365,7 +2397,7 @@
background : #383d47 ;
color : #e5e8ec ;
box-shadow : inset 0 1 px 0 rgba ( 255 , 255 , 255 , .13 ) ;
transition : transform 150 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , background-color 150 ms ease , color 150 ms ease ;
transition : transform 150 ms var ( - - motion - ease-out ) , background-color 150 ms ease , color 150 ms ease ;
}
. creation-studio-submit : hover : not ( : disabled ) { background : #f4f5f6 ; color : #111317 ; transform : translateY ( -1 px ) ; }
. creation-studio-submit : active : not ( : disabled ) { transform : scale ( .96 ) ; }
@@ -2396,7 +2428,7 @@
border-radius : 10 px ;
background : rgba ( 255 , 255 , 255 , .055 ) ;
color : var ( - - creation - accent ) ;
animation : creation-intro-mark 2.8 s cubic-bezier ( .16 , 1 , .3 , 1 ) infinite ;
animation : creation-intro-mark 2.8 s var ( - - motion - ease-out ) infinite ;
}
. creation-chat-intro-mark svg { width : 16 px ; height : 16 px ; }
. creation-chat-headline {
@@ -2407,7 +2439,7 @@
line-height : 1.25 ;
text-align : center ;
}
. creation-chat-headline span { display : inline-block ; margin-left : 4 px ; color : var ( - - creation - accent ) ; animation : creation-intro-word 2.8 s cubic-bezier ( .16 , 1 , .3 , 1 ) infinite ; }
. creation-chat-headline span { display : inline-block ; margin-left : 4 px ; color : var ( - - creation - accent ) ; animation : creation-intro-word 2.8 s var ( - - motion - ease-out ) infinite ; }
. creation-chat-intro p { margin : 8 px 0 0 ; color : var ( - - creation - muted ) ; font-size : 12 px ; }
. creation-chat-composer {
@@ -2444,7 +2476,7 @@
background : #242730 ;
color : #eef1f4 ;
box-shadow : none ;
transition : transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , background-color 140 ms ease , border-color 140 ms ease ;
transition : transform 140 ms var ( - - motion - ease-out ) , background-color 140 ms ease , border-color 140 ms ease ;
}
. creation-chat-reference : hover : not ( : disabled ) {
@@ -2527,7 +2559,7 @@
font-weight : 600 ;
white-space : nowrap ;
box-shadow : none ;
transition : border-color 140 ms ease , background-color 140 ms ease , transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : border-color 140 ms ease , background-color 140 ms ease , transform 140 ms var ( - - motion - ease-out ) ;
}
. creation-chat-control : hover ,
. creation-chat-control [ aria-expanded = "true" ] ,
@@ -2536,7 +2568,7 @@
. creation-chat-control : active { transform : scale ( .98 ) ; }
. creation-chat-control . is-mode { border-color : rgba ( 6 , 182 , 212 , .36 ) !important ; background : rgba ( 5 , 80 , 98 , .24 ) !important ; color : #17c4e2 !important ; }
. creation-chat-control > svg { width : 15 px ; height : 15 px ; flex : 0 0 auto ; }
. creation-chat-control > svg : last-child { width : 14 px ; height : 14 px ; color : var ( - - creation - muted ) ; transition : transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ; }
. creation-chat-control > svg : last-child { width : 14 px ; height : 14 px ; color : var ( - - creation - muted ) ; transition : transform 160 ms var ( - - motion - ease-out ) ; }
. creation-chat-control > svg : last-child . is-open { transform : rotate ( 180 deg ) ; }
. creation-chat-composer . creation-model-picker . canvas-composer-model-picker { width : min ( 196 px , 26 vw ) !important ; justify-content : flex-start ; }
. creation-chat-composer . creation-model-picker . canvas-model-picker-trigger-icon { width : 19 px ; height : 19 px ; border-radius : 5 px ; }
@@ -2556,7 +2588,7 @@
border-radius : 50 % ;
background : #303540 ;
color : #f1f3f5 ;
transition : background-color 140 ms ease , color 140 ms ease , transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : background-color 140 ms ease , color 140 ms ease , transform 140 ms var ( - - motion - ease-out ) ;
}
. creation-chat-submit : hover : not ( : disabled ) { background : #f3f4f6 ; color : #121417 ; transform : translateY ( -1 px ) ; }
. creation-chat-submit : active : not ( : disabled ) { transform : scale ( .96 ) ; }
@@ -3590,7 +3622,7 @@
-webkit- background-clip : text ;
background-clip : text ;
color : transparent ;
animation : ai-title-aurora 7 s ease-in-out infinite ;
animation : ai-title-aurora 7 s var ( - - motion - ease-in-out ) infinite ;
}
. dark . ai-title-aurora {
@@ -4219,7 +4251,7 @@
. canvas-floating-dock ,
. canvas-floating-panel ,
. canvas-node-toolbar {
animation : canvas-panel-in 180 ms cubic-bezier ( 0.2 , 0.85 , 0.18 , 1 ) both ;
animation : canvas-panel-in var ( - - motion - dur - fast - calc ) var ( - - motion - ease-out ) both ;
}
/* 覆盖工具栏与节点之间的视觉留白,避免鼠标途中被相邻节点抢走悬浮状态。 */
@@ -4271,7 +4303,7 @@
color 140 ms ease ,
opacity 140 ms ease ,
box-shadow 140 ms ease ,
transform 160 ms cubic-bezier ( 0.2 , 0.85 , 0.18 , 1 ) ;
transform 160 ms var ( - - motion - ease-out ) ;
}
. canvas-connection-handle {
@@ -4307,7 +4339,7 @@
. canvas-menu-item-icon ,
. canvas-node-tool-icon {
transition : transform 160 ms cubic-bezier ( 0.2 , 0.85 , 0.18 , 1 ) ;
transition : transform 160 ms var ( - - motion - ease-out ) ;
}
. canvas-node-shell {
@@ -4389,7 +4421,7 @@
content : "" ;
filter : drop-shadow ( 0 0 3 px rgba ( 96 , 165 , 250 , 0.2 ) ) ;
pointer-events : none ;
animation : canvas-generation-border-flow 2.4 s linear infinite ;
animation : canvas-generation-border-flow 2.4 s var ( - - motion - ease - linear ) infinite ;
-webkit- mask :
linear-gradient ( #000 0 0 ) content-box ,
linear-gradient ( #000 0 0 ) ;
@@ -4402,11 +4434,11 @@
}
. canvas-connection-flow {
animation : canvas-connection-flow 1.25 s linear infinite ;
animation : canvas-connection-flow 1.25 s var ( - - motion - ease - linear ) infinite ;
}
. canvas-connection-draft {
animation : canvas-connection-flow 0.9 s linear infinite ;
animation : canvas-connection-flow 0.9 s var ( - - motion - ease - linear ) infinite ;
}
@ keyframes canvas-panel-in {
@@ -4635,7 +4667,7 @@ html:not(.dark) .creation-home {
. creation-empty-composer {
width : 100 % ;
margin : 0 ;
animation : creation-composer-arrive 360 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-composer-arrive var ( - - motion - dur - slow - calc ) var ( - - motion - ease-out ) both ;
}
. creation-chat-composer {
@@ -4675,7 +4707,7 @@ html:not(.dark) .creation-chat-composer {
color : var ( - - creation - muted ) ;
box-shadow : none ;
transform : none ;
transition : color 140 ms ease , background-color 140 ms ease , transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : color 140 ms ease , background-color 140 ms ease , transform 140 ms var ( - - motion - ease-out ) ;
}
. creation-chat-reference svg ,
@@ -4751,7 +4783,7 @@ html:not(.dark) .creation-chat-reference:hover:not(:disabled) { background: rgba
font-size : 11 px ;
font-weight : 500 ;
box-shadow : none !important ;
transition : color 140 ms ease , background-color 140 ms ease , transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : color 140 ms ease , background-color 140 ms ease , transform 140 ms var ( - - motion - ease-out ) ;
}
. creation-chat-control : hover ,
@@ -4790,7 +4822,7 @@ html:not(.dark) .creation-chat-composer .creation-model-picker.canvas-composer-m
border-radius : 9 px ;
background : #f3f4f5 ;
color : #1b1d21 ;
transition : transform 140 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , background-color 140 ms ease ;
transition : transform 140 ms var ( - - motion - ease-out ) , background-color 140 ms ease ;
}
. creation-chat-submit : hover : not ( : disabled ) { background : #fff ; transform : translateY ( -1 px ) ; }
@@ -4950,7 +4982,7 @@ html:not(.dark) .app-workspace-shell.is-creation-workspace .app-workspace-stage
align-items : center ;
margin : 0 0 24 px ;
text-align : center ;
animation : creation-intro-arrive 420 ms cubic-bezier ( .16 , 1 , .3 , 1 ) both ;
animation : creation-intro-arrive var ( - - motion - dur - slow - calc ) var ( - - motion - ease-out ) both ;
}
. creation-chat-intro p {
@@ -4977,7 +5009,7 @@ html:not(.dark) .app-workspace-shell.is-creation-workspace .app-workspace-stage
width : 16 px ;
height : 1 px ;
background : linear-gradient ( 90 deg , transparent , rgba ( 227 , 231 , 235 , .88 ) , transparent ) ;
animation : creation-intro-signal 2.8 s cubic-bezier ( .16 , 1 , .3 , 1 ) infinite ;
animation : creation-intro-signal 2.8 s var ( - - motion - ease-out ) infinite ;
}
. creation-chat-reference . is-paper {
@@ -5121,7 +5153,7 @@ html:not(.dark) .creation-home .creation-chat-composer .creation-model-picker.ca
font-size : 1.25 em ;
font-weight : 760 ;
text-shadow : 0 0 24 px rgba ( 89 , 202 , 232 , .24 ) ;
animation : creation-intro-emphasis 2.6 s cubic-bezier ( .16 , 1 , .3 , 1 ) infinite ;
animation : creation-intro-emphasis 2.6 s var ( - - motion - ease-out ) infinite ;
}
. creation-thread-stage ,
@@ -5187,7 +5219,7 @@ html:not(.dark) .creation-user-message-reference { background: rgba(28, 32, 37,
. creation-media-result { max-width : 860 px ; padding : 14 px 0 0 34 px ; }
. creation-image-result-grid { display : grid ; grid-template-columns : repeat ( 3 , minmax ( 0 , 1 fr ) ) ; gap : 8 px ; }
. creation-image-result { position : relative ; aspect-ratio : 1 ; overflow : hidden ; border : 0 ; border-radius : 9 px ; background : #181a1e ; }
. creation-image-result img { width : 100 % ; height : 100 % ; object-fit : cover ; transition : transform 220 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ; }
. creation-image-result img { width : 100 % ; height : 100 % ; object-fit : cover ; transition : transform 220 ms var ( - - motion - ease-out ) ; }
. creation-image-result span , . creation-video-result > span { position : absolute ; right : 8 px ; bottom : 8 px ; display : grid ; width : 27 px ; height : 27 px ; place-items : center ; border-radius : 7 px ; background : rgba ( 13 , 14 , 16 , .62 ) ; color : #fff ; opacity : 0 ; transition : opacity 160 ms ease ; backdrop-filter : blur ( 8 px ) ; }
. creation-image-result span svg , . creation-video-result span svg { width : 14 px ; height : 14 px ; }
. creation-image-result : hover img { transform : scale ( 1.025 ) ; }
@@ -5450,7 +5482,7 @@ html:not(.dark) .creation-message-content code { background: rgba(28, 32, 37, .0
color : var ( - - creation - muted ) !important ;
font-size : 11 px !important ;
font-weight : 500 ;
transition : background-color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , transform 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) !important ;
transition : background-color 160 ms var ( - - motion - ease-out ) , color 160 ms var ( - - motion - ease-out ) , transform 160 ms var ( - - motion - ease-out ) !important ;
}
. creation-choice-grid button : hover {
@@ -5490,7 +5522,7 @@ html:not(.dark) .creation-message-content code { background: rgba(28, 32, 37, .0
padding : 0 2 px !important ;
color : var ( - - creation - muted ) !important ;
font-size : 10 px !important ;
transition : color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , background-color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) !important ;
transition : color 160 ms var ( - - motion - ease-out ) , background-color 160 ms var ( - - motion - ease-out ) !important ;
}
. creation-custom-trigger svg { width : 12 px ; height : 12 px ; }
@@ -5566,7 +5598,7 @@ html:not(.dark) .creation-message-content code { background: rgba(28, 32, 37, .0
color : var ( - - creation - muted ) !important ;
font-size : 11 px !important ;
font-weight : 500 ;
transition : background-color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) , color 160 ms cubic-bezier ( .16 , 1 , .3 , 1 ) !important ;
transition : background-color 160 ms var ( - - motion - ease-out ) , color 160 ms var ( - - motion - ease-out ) !important ;
}
. creation-duration-choices button : hover { background : rgba ( 255 , 255 , 255 , .055 ) !important ; color : var ( - - creation - text ) !important ; }
@@ -5600,7 +5632,7 @@ html:not(.dark) .creation-custom-value { background: rgba(28, 32, 37, .055) !imp
border-radius : 8 px ;
background : rgba ( 255 , 255 , 255 , .06 ) ;
color : var ( - - creation - muted ) ;
transition : background-color 150 ms ease , color 150 ms ease , transform 150 ms cubic-bezier ( .16 , 1 , .3 , 1 ) ;
transition : background-color 150 ms ease , color 150 ms ease , transform 150 ms var ( - - motion - ease-out ) ;
}
. creation-top-action svg { width : 16 px ; height : 16 px ; }