142142
143143 /* Shadows */
144144 --shadow-sm : 0 1px 3px 0 rgb (0 0 0 / 10% ), 0 1px 2px -1px rgb (0 0 0 / 10% );
145+ --shadow-md : 0 2px 8px rgb (0 0 0 / 10% );
145146 --shadow-lg : 0 10px 15px -3px rgb (0 0 0 / 10% ), 0 4px 6px -4px rgb (0 0 0 / 10% );
146147 --shadow-xl : 0 20px 25px -5px rgb (0 0 0 / 10% ), 0 8px 10px -6px rgb (0 0 0 / 10% );
147148
158159 /* Transitions */
159160 --transition-fast : 150ms ease-in-out;
160161 --transition-base : 200ms ease-in-out;
162+ --transition-slow : 350ms ease-in-out;
163+ --ease-out-smooth : cubic-bezier (0.4 , 0 , 0.2 , 1 );
164+
165+ /* Animation Durations */
166+ --duration-fast : 250ms ;
167+ --duration-base : 300ms ;
168+ --duration-medium : 350ms ;
161169
162170 /* Z-Index Scale */
163171 --z-fixed : 300 ;
202210 --color-accent-primary : var (--color-primary-500 );
203211 --color-accent-hover : var (--color-primary-400 );
204212 --color-accent-subtle : rgb (235 84 79 / 10% );
213+ --color-accent-subtle-hover : rgb (235 84 79 / 20% );
205214 --color-code-bg : var (--color-neutral-800 );
206215 --color-code-border : var (--color-neutral-700 );
207216 --color-nav-bg : var (--color-neutral-900 );
211220
212221 /* Dark theme shadows (slightly more subtle) */
213222 --shadow-sm : 0 1px 3px 0 rgb (0 0 0 / 40% ), 0 1px 2px -1px rgb (0 0 0 / 40% );
223+ --shadow-md : 0 2px 8px rgb (0 0 0 / 40% );
214224 --shadow-lg : 0 10px 15px -3px rgb (0 0 0 / 40% ), 0 4px 6px -4px rgb (0 0 0 / 40% );
215225 --shadow-xl : 0 20px 25px -5px rgb (0 0 0 / 40% ), 0 8px 10px -6px rgb (0 0 0 / 40% );
216226
@@ -291,7 +301,12 @@ pre {
291301 border-radius : var (--radius-sm );
292302 cursor : pointer;
293303 opacity : 0.6 ;
294- transition : opacity var (--transition-fast ), background var (--transition-fast ), border-color var (--transition-fast ), transform var (--transition-fast );
304+ transition :
305+ opacity var (--transition-fast ),
306+ background var (--transition-fast ),
307+ border-color var (--transition-fast ),
308+ transform var (--transition-fast ),
309+ box-shadow var (--transition-fast );
295310 display : flex;
296311 align-items : center;
297312 justify-content : center;
@@ -305,10 +320,18 @@ pre {
305320 opacity : 1 ;
306321 background : var (--color-background-tertiary );
307322 border-color : var (--color-border-emphasis );
323+ transform : translateY (-1px );
324+ box-shadow : var (--shadow-md );
325+ }
326+
327+ .copy-code-button : focus {
328+ outline : none;
329+ box-shadow : 0 0 0 3px var (--color-accent-subtle );
308330}
309331
310332.copy-code-button : active {
311- transform : scale (0.95 );
333+ transform : scale (0.92 );
334+ box-shadow : none;
312335}
313336
314337.copy-code-button svg {
@@ -320,7 +343,7 @@ pre {
320343 stroke-linecap : round;
321344 stroke-linejoin : round;
322345 color : var (--color-text-secondary );
323- transition : color var (--transition-fast );
346+ transition : color var (--transition-fast ), transform var ( --transition-base ) ;
324347}
325348
326349.copy-code-button : hover svg {
@@ -457,7 +480,11 @@ header.top-navbar .navbar-search form {
457480 border-radius : var (--radius-md );
458481 color : var (--color-text-primary );
459482 cursor : pointer;
460- transition : background var (--transition-fast ), border-color var (--transition-fast ), color var (--transition-fast );
483+ transition :
484+ background var (--transition-fast ),
485+ border-color var (--transition-fast ),
486+ color var (--transition-fast ),
487+ transform var (--transition-fast );
461488 font-size : var (--font-size-lg );
462489 line-height : 1 ;
463490 width : 2.5rem ;
@@ -468,6 +495,7 @@ header.top-navbar .navbar-search form {
468495 background : var (--color-background-secondary );
469496 border-color : var (--color-accent-primary );
470497 color : var (--color-accent-primary );
498+ transform : scale (1.05 );
471499}
472500
473501.theme-toggle : focus {
@@ -476,13 +504,17 @@ header.top-navbar .navbar-search form {
476504 box-shadow : 0 0 0 3px var (--color-accent-subtle );
477505}
478506
507+ .theme-toggle : active {
508+ transform : scale (0.95 );
509+ }
510+
479511.theme-toggle-icon {
480512 display : inline-block;
481- transition : transform var (--transition -base );
513+ transition : transform var (--duration -base ) var ( --ease-out-smooth );
482514}
483515
484516.theme-toggle : hover .theme-toggle-icon {
485- transform : rotate (20 deg );
517+ transform : rotate (15 deg ) scale ( 1.1 );
486518}
487519
488520/* Mobile navbar */
@@ -537,11 +569,33 @@ nav {
537569 background : var (--color-nav-bg );
538570 color : var (--color-nav-text );
539571 overflow : hidden auto;
572+ overscroll-behavior : contain;
540573 display : flex;
541574 flex-direction : column;
542575 position : sticky;
543576 top : var (--layout-header-height );
544577 height : calc (100vh - var (--layout-header-height ));
578+ scrollbar-width : thin;
579+ scrollbar-color : var (--color-border-default ) transparent;
580+ }
581+
582+ /* Custom scrollbar for WebKit browsers */
583+ nav ::-webkit-scrollbar {
584+ width : 6px ;
585+ }
586+
587+ nav ::-webkit-scrollbar-track {
588+ background : transparent;
589+ }
590+
591+ nav ::-webkit-scrollbar-thumb {
592+ background : var (--color-border-default );
593+ border-radius : var (--radius-sm );
594+ transition : background var (--transition-fast );
595+ }
596+
597+ nav ::-webkit-scrollbar-thumb : hover {
598+ background : var (--color-border-emphasis );
545599}
546600
547601/* Mobile navigation */
@@ -615,6 +669,18 @@ nav ul li {
615669 line-height : var (--line-height-relaxed );
616670}
617671
672+ nav ul li a {
673+ padding : var (--space-1 ) 0 ;
674+ transition :
675+ color var (--transition-fast ),
676+ transform var (--transition-fast ),
677+ padding var (--transition-fast );
678+ }
679+
680+ nav ul li a : hover {
681+ padding-left : var (--space-1 );
682+ }
683+
618684nav ul ul {
619685 padding-left : var (--space-5 );
620686 margin-top : var (--space-2 );
@@ -632,6 +698,17 @@ nav a {
632698 text-decoration : none;
633699}
634700
701+ /* Truncation for direct nav links (not links inside code tags) */
702+ nav .nav-list > li > a ,
703+ nav .nav-section > ul > li > a ,
704+ nav .nav-section > dl > dd > a {
705+ display : block;
706+ max-width : 100% ;
707+ overflow : hidden;
708+ text-overflow : ellipsis;
709+ white-space : nowrap;
710+ }
711+
635712nav footer {
636713 padding : var (--space-4 );
637714 border-top : 1px solid var (--color-border-default );
@@ -735,6 +812,11 @@ nav .nav-section-title {
735812 font-size : var (--font-size-base );
736813 font-weight : var (--font-weight-semibold );
737814 color : inherit;
815+ flex : 1 ;
816+ min-width : 0 ;
817+ overflow : hidden;
818+ text-overflow : ellipsis;
819+ white-space : nowrap;
738820}
739821
740822nav .nav-section-chevron {
@@ -1113,19 +1195,54 @@ main .anchor-link:target {
11131195main .method-source-code {
11141196 visibility : hidden;
11151197 max-height : 0 ;
1116- overflow : auto;
1117- transition : max-height var (--transition-base ), visibility var (--transition-base );
1198+ overflow : hidden;
1199+ opacity : 0 ;
1200+ transform : translateY (-8px );
1201+ transition :
1202+ max-height var (--duration-medium ) var (--ease-out-smooth ),
1203+ visibility var (--duration-medium ),
1204+ opacity var (--duration-fast ) ease-out,
1205+ transform var (--duration-fast ) ease-out;
11181206}
11191207
11201208main .method-source-code pre {
11211209 border-color : var (--color-accent-hover );
1210+ border-left : 3px solid var (--color-accent-primary );
11221211 width : 100% ;
11231212 box-sizing : border-box;
1213+ transition : border-color var (--transition-fast );
1214+ scrollbar-width : thin;
1215+ scrollbar-color : var (--color-border-default ) transparent;
1216+ }
1217+
1218+ main .method-source-code pre ::-webkit-scrollbar {
1219+ width : 6px ;
1220+ height : 6px ;
1221+ }
1222+
1223+ main .method-source-code pre ::-webkit-scrollbar-track {
1224+ background : transparent;
1225+ }
1226+
1227+ main .method-source-code pre ::-webkit-scrollbar-thumb {
1228+ background : var (--color-border-default );
1229+ border-radius : var (--radius-sm );
1230+ }
1231+
1232+ main .method-source-code pre ::-webkit-scrollbar-thumb : hover {
1233+ background : var (--color-border-emphasis );
1234+ }
1235+
1236+ main .method-source-code pre ::-webkit-scrollbar-corner {
1237+ background : transparent;
11241238}
11251239
11261240main .method-source-code .active-menu {
11271241 visibility : visible;
11281242 max-height : 100vh ;
1243+ overflow : auto;
1244+ opacity : 1 ;
1245+ transform : translateY (0 );
11291246}
11301247
11311248main .method-description .method-calls-super {
@@ -1165,10 +1282,47 @@ main .method-heading .method-args {
11651282}
11661283
11671284main .method-controls {
1168- line-height : 20px ;
11691285 float : right;
1170- color : var (--color-accent-hover );
1286+ }
1287+
1288+ main .method-controls summary {
1289+ display : inline-block;
1290+ line-height : 20px ;
1291+ color : var (--color-accent-primary );
11711292 cursor : pointer;
1293+ padding : var (--space-1 ) var (--space-3 );
1294+ border-radius : var (--radius-sm );
1295+ font-size : var (--font-size-sm );
1296+ font-weight : var (--font-weight-medium );
1297+ background : var (--color-accent-subtle );
1298+ border : 1px solid transparent;
1299+ transition :
1300+ color var (--transition-fast ),
1301+ background var (--transition-fast ),
1302+ border-color var (--transition-fast ),
1303+ transform var (--transition-fast );
1304+ user-select : none;
1305+ -webkit-user-select : none;
1306+ list-style : none;
1307+ }
1308+
1309+ main .method-controls summary ::-webkit-details-marker {
1310+ display : none;
1311+ }
1312+
1313+ main .method-controls summary : hover {
1314+ background : var (--color-primary-100 );
1315+ border-color : var (--color-primary-300 );
1316+ transform : translateY (-1px );
1317+ }
1318+
1319+ main .method-controls summary : active {
1320+ transform : scale (0.96 );
1321+ }
1322+
1323+ [data-theme = "dark" ] main .method-controls summary : hover {
1324+ background : var (--color-accent-subtle-hover );
1325+ border-color : var (--color-primary-500 );
11721326}
11731327
11741328main .method-description ,
0 commit comments