@@ -37,25 +37,30 @@ export default function Breadcrumb({ items }: BreadcrumbProps) {
3737 } }
3838 >
3939 < ol
40+ className = "bc-trail"
4041 style = { {
4142 width : '100%' ,
4243 maxWidth : 'var(--pts-content-max)' ,
4344 margin : '0 auto' ,
4445 display : 'flex' ,
45- flexWrap : 'wrap ' ,
46+ flexWrap : 'nowrap ' ,
4647 alignItems : 'center' ,
4748 gap : '0 0.3rem' ,
4849 listStyle : 'none' ,
4950 fontSize : '0.8rem' ,
5051 color : 'var(--pts-text-subtle)' ,
52+ overflowX : 'auto' ,
53+ overflowY : 'hidden' ,
54+ WebkitOverflowScrolling : 'touch' ,
55+ scrollbarGutter : 'stable' ,
5156 } }
5257 >
5358 { items . map ( ( item , i ) => {
5459 const isLast = i === items . length - 1 ;
5560 return (
5661 < li
5762 key = { i }
58- style = { { display : 'flex' , alignItems : 'center' , gap : '0.3rem' } }
63+ style = { { display : 'flex' , alignItems : 'center' , gap : '0.3rem' , flexShrink : 0 } }
5964 >
6065 { i > 0 && (
6166 < span aria-hidden style = { { color : 'var(--pts-border-strong)' , userSelect : 'none' } } >
@@ -72,10 +77,15 @@ export default function Breadcrumb({ items }: BreadcrumbProps) {
7277 style = { {
7378 color : isLast ? 'var(--pts-text-muted)' : 'var(--pts-text-subtle)' ,
7479 fontWeight : isLast ? 500 : 400 ,
75- maxWidth : '22ch' ,
76- overflow : 'hidden' ,
77- textOverflow : 'ellipsis' ,
7880 whiteSpace : 'nowrap' ,
81+ ...( isLast
82+ ? {
83+ /* one line with trail; scroll parent .bc-trail if long */
84+ maxWidth : 'min(70vw, 40rem)' ,
85+ overflow : 'hidden' ,
86+ textOverflow : 'ellipsis' ,
87+ }
88+ : { } ) ,
7989 } }
8090 >
8191 { item . label }
0 commit comments