docs: lower right-side TOC panel breakpoint to 1280px#104
Conversation
There was a problem hiding this comment.
Pull request overview
Updates EggMapper docs styling so the right-side “On this page” TOC panel becomes visible on standard 1280px-wide displays by lowering its display breakpoint.
Changes:
- Lowered
.toc-panelvisibility breakpoint frommin-width: 1380pxtomin-width: 1280px.
| .toc-panel::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; } | ||
|
|
||
| @media (min-width: 1380px) { .toc-panel { display: block; } } | ||
| @media (min-width: 1280px) { .toc-panel { display: block; } } |
There was a problem hiding this comment.
Lowering the TOC panel breakpoint to 1280px causes the fixed right-side panel (196px wide, right: 1.5rem) to overlap the main .content-wrapper at exactly 1280px. With --sidebar-w: 264px and .main-content padding of 3rem, the available right gutter is ~208px at 1280px, while the panel needs ~220px, so content can be covered. Consider either (a) using a slightly higher breakpoint (>=1292px), or (b) adding a media-query adjustment that reserves space when the panel is shown (e.g., increased .main-content right padding / .content-wrapper right margin) or reduces panel width/right offset for 1280–1379px.
| @media (min-width: 1280px) { .toc-panel { display: block; } } | |
| @media (min-width: 1292px) { .toc-panel { display: block; } } |
📊 Benchmark Results
🔵 Flat Mapping — 10-property object
🟡 Flattening — 2 nested objects → 8 flat properties
🟣 Deep Mapping — 2 nested address objects
🟢 Complex Mapping — nested object + collection
🟠 Collection — 100-item
|
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 1.731 μs | 0.7505 μs | 0.0411 μs | 1.692 μs | 1.727 μs | 1.774 μs | 1.00 | 0.03 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| EggMapper | 1.697 μs | 0.3386 μs | 0.0186 μs | 1.685 μs | 1.688 μs | 1.718 μs | 0.98 | 0.02 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| AutoMapper | 2.350 μs | 0.2667 μs | 0.0146 μs | 2.335 μs | 2.352 μs | 2.364 μs | 1.36 | 0.03 | 2 | 0.6065 | 0.0191 | 9.95 KB | 1.15 |
| Mapster | 1.745 μs | 0.8128 μs | 0.0446 μs | 1.697 μs | 1.753 μs | 1.785 μs | 1.01 | 0.03 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| MapperlyMap | 1.775 μs | 0.2638 μs | 0.0145 μs | 1.760 μs | 1.776 μs | 1.789 μs | 1.03 | 0.02 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| AgileMapper | 2.498 μs | 0.2243 μs | 0.0123 μs | 2.487 μs | 2.496 μs | 2.512 μs | 1.44 | 0.03 | 2 | 0.5417 | 0.0153 | 8.91 KB | 1.03 |
🟠 Collection — 100-item List<T>
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 5.269 μs | 0.2620 μs | 0.0144 μs | 5.253 μs | 5.273 μs | 5.281 μs | 1.00 | 0.00 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| EggMapper | 5.744 μs | 1.2339 μs | 0.0676 μs | 5.681 μs | 5.734 μs | 5.816 μs | 1.09 | 0.01 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| AutoMapper | 6.592 μs | 3.0475 μs | 0.1670 μs | 6.483 μs | 6.510 μs | 6.785 μs | 1.25 | 0.03 | 1 | 1.7548 | 0.1068 | 28.7 KB | 1.05 |
| Mapster | 5.859 μs | 1.2377 μs | 0.0678 μs | 5.793 μs | 5.856 μs | 5.929 μs | 1.11 | 0.01 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| MapperlyMap | 5.194 μs | 0.2816 μs | 0.0154 μs | 5.176 μs | 5.202 μs | 5.204 μs | 0.99 | 0.00 | 1 | 1.6785 | 0.0992 | 27.42 KB | 1.00 |
| AgileMapper | 5.198 μs | 0.4467 μs | 0.0245 μs | 5.172 μs | 5.203 μs | 5.220 μs | 0.99 | 0.00 | 1 | 1.0223 | 0.0610 | 16.72 KB | 0.61 |
🟠 Collection — 100-item List<T>
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 16.80 μs | 2.895 μs | 0.159 μs | 16.62 μs | 16.87 μs | 16.91 μs | 1.00 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| EggMapper | 16.96 μs | 1.434 μs | 0.079 μs | 16.88 μs | 16.96 μs | 17.04 μs | 1.01 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| AutoMapper | 20.74 μs | 1.049 μs | 0.058 μs | 20.69 μs | 20.74 μs | 20.80 μs | 1.23 | 1 | 5.7678 | 1.4343 | 94.34 KB | 1.10 |
| Mapster | 17.18 μs | 0.499 μs | 0.027 μs | 17.15 μs | 17.20 μs | 17.20 μs | 1.02 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| MapperlyMap | 18.55 μs | 1.544 μs | 0.085 μs | 18.46 μs | 18.59 μs | 18.62 μs | 1.10 | 1 | 5.2490 | 1.2817 | 86.02 KB | 1.00 |
| AgileMapper | 19.74 μs | 1.624 μs | 0.089 μs | 19.68 μs | 19.69 μs | 19.84 μs | 1.17 | 1 | 5.2795 | 1.3123 | 86.25 KB | 1.00 |
⚪ Startup / Configuration time
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EggMapperStartup | 1,367.350 μs | 1,424.1744 μs | 78.0638 μs | 1,299.689 μs | 1,349.601 μs | 1,452.760 μs | 1.002 | 0.07 | 3 | 5.8594 | 3.9063 | 95.84 KB | 1.00 |
| AutoMapperStartup | 412.228 μs | 1,041.1998 μs | 57.0717 μs | 352.246 μs | 418.580 μs | 465.858 μs | 0.302 | 0.04 | 2 | 5.8594 | - | 104.22 KB | 1.09 |
| MapsterStartup | 2.439 μs | 0.2426 μs | 0.0133 μs | 2.432 μs | 2.432 μs | 2.455 μs | 0.002 | 0.00 | 1 | 0.7019 | 0.0267 | 11.51 KB | 0.12 |
EggMapper.Benchmarks.ColdStartBenchmark-report-github
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EggMapper | 1.316 ms | 2.279 ms | 0.1249 ms | 1.172 ms | 1.380 ms | 1.397 ms | 1.01 | 0.12 | 1 | 5.8594 | 3.9063 | 96.06 KB | 1.00 |
| AutoMapper | 4.361 ms | 8.840 ms | 0.4846 ms | 3.813 ms | 4.534 ms | 4.735 ms | 3.33 | 0.43 | 2 | 15.6250 | 7.8125 | 310.24 KB | 3.23 |
| Mapster | 4.524 ms | 6.582 ms | 0.3608 ms | 4.130 ms | 4.603 ms | 4.838 ms | 3.46 | 0.38 | 2 | 39.0625 | 15.6250 | 757.64 KB | 7.89 |
📝 Notes
- Each benchmark class is decorated with
[MemoryDiagnoser]and[RankColumn]. - The global config (see
src/EggMapper.Benchmarks/Program.cs) addsMin,Median, andMaxcolumns. - Manual is the hand-written baseline (ratio = 1.00). A ratio < 1 means faster than manual.
- Benchmarks run on GitHub-hosted runners — absolute times may vary between runs; focus on Ratio for comparisons.
- To reproduce locally:
cd src/EggMapper.Benchmarks dotnet run --configuration Release -- --filter '*'
Summary
min-widthbreakpoint for the right-side "On this page" TOC panel from1380px→1280pxh2headings at runtime, no per-page HTML changes needed🤖 Generated with Claude Code