Mobile responsive fixes, filter schema row & fix broken A2A link#23
Open
Chesars wants to merge 2 commits intofastrepl:mainfrom
Open
Mobile responsive fixes, filter schema row & fix broken A2A link#23Chesars wants to merge 2 commits intofastrepl:mainfrom
Chesars wants to merge 2 commits intofastrepl:mainfrom
Conversation
- Filter the upstream `sample_spec` pseudo-entry: it documents the JSON schema (each field holds a description string, not data) and was rendering as a real model with garbage values that overflowed cells and the column header. - Override the A2A provider docs URL: upstream JSON ships `docs/providers/a2a` which 404s; the working page is `docs/a2a`. - Drop the sticky `<thead>` — its `top: 63px` overlapped the first row when the table scrolled, especially on mobile after expanding a sample-spec panel. - Mobile breakpoint pass: shrink detail-panel headings, pricing card values, info-rows (now stack label/value), and code snippets; wrap long lines (`pre-wrap` + `word-break`) so model names like `bedrock/...nova-canvas-v1:0` no longer make the block visually huge. - Tablet breakpoint for code snippets between desktop and phone. - Lock model-row height (52px desktop / 48px mobile) so Bedrock and the first entries don't render taller than others. - Unify trust-logo hover: image and text logos now share the same `grayscale → color + opacity` treatment with one transition rule, so Netflix/Twilio/etc. fade in and out of color the same way as Stripe /Adobe/etc. `transform: translateZ(0)` on text logos prevents the inline-SVG + text combos (Zurich, Weather Co) from jittering on the filter transition. - Defensive validation in `formatCost` / `formatContext` and an `isKnownMode` guard so future malformed entries can't leak schema strings into numeric/badge cells. - `vite.config.ts`: `server.host: true` so `npm run dev` exposes the app on the LAN for phone testing without flags.
Per review feedback: - Revert `server.host: true` in vite.config.ts. Exposing the dev server to the LAN by default is not the right default for upstream; contributors who want LAN access can run `npm run dev -- --host`. - Revert defensive type checks in `formatCost` / `formatContext` and the `isKnownMode` helper. With `sample_spec` filtered at load, no malformed entry reaches these formatters — the extra guards were speculative validation for scenarios that can't currently happen.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A pass over the mobile experience plus two correctness fixes for upstream data the page consumes.
Bugs fixed
sample_specwas rendering as a real model. The upstreammodel_prices_and_context_window.jsonships asample_specpseudo-entry where each field's value is a description string for that field (e.g.mode: \"one of: chat, embedding, ...\",max_input_tokens: \"max input tokens, if the provider specifies it...\",litellm_provider: \"one of https://docs.litellm.ai/docs/providers\"). It was being treated as a real row, breaking the layout: the mode-badge ballooned to fit the schema string, the Context column literally printed\"max input tokens, if the provider...\", and the row pushed the table wider than the viewport so theModelcolumn header appeared to overlap the data. Filter it out at load time.https://docs.litellm.ai/docs/providers/a2a(404) but the actual page lives athttps://docs.litellm.ai/docs/a2a. Added a small per-provider URL override map inProviders.svelte.Mobile responsive pass
position: stickyfrom<thead>— itstop: 63pxwas causing rows to scroll behind the column headers, which read as overlap (especially after expanding a sample-spec panel on a phone).Pricing,Model Info,Features) sized down a tier, pricing card labels/values reduced for hierarchy, info-rows now stack label-over-value so long values like1,000,000 tokenscan't collide with their label.pre-wrap+word-break: break-wordso long model names likebedrock/.../nova-canvas-v1:0wrap instead of forcing a visually huge horizontally-scrolling block. Tablet breakpoint added for an intermediate size between desktop and phone.Trust-logo hover unification
Image logos used
grayscale → color, text logos usedmuted-gray → brand-color. Same transition timing but visibly different effects. Now both groups use the samegrayscale(100%) + opacity 0.55→grayscale(0%) + opacity 0.9treatment with shared transition properties. Brand colors (Netflix red, Twilio red, Zurich blue, etc.) sit on the base element and the filter desaturates them by default, mirroring how the image-logos behave.transform: translateZ(0)on.trust-logo-textto keep inline-SVG + text combos (Zurich, Weather Co, Twilio) from jittering on the filter transition.Desktop
Fixed:

Mobile
Fixed:

Test plan
Pricing/Model Info/Featuresheadings, pricing-card labels and values, info-row stacking, and Python-SDK / Proxy code-snippet sizes all read cleanly without horizontal scroll.docs/litellm.ai/docs/a2a(200), not the 404.sample_specno longer appears in the model count or list.