fix(compare): swap LangChain logo, fix comparison-table horizontal scroll by waleedlatif1 · Pull Request #5409 · simstudioai/sim · GitHub
Skip to content

fix(compare): swap LangChain logo, fix comparison-table horizontal scroll#5409

Merged
waleedlatif1 merged 4 commits into
stagingfrom
worktree-langchain-icon-fix
Jul 4, 2026
Merged

fix(compare): swap LangChain logo, fix comparison-table horizontal scroll#5409
waleedlatif1 merged 4 commits into
stagingfrom
worktree-langchain-icon-fix

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Swaps LangChainIcon's path for the official brand mark (light-blue link icon) instead of the prior monochrome recreation.
  • Fixes a real bug: the comparison table's grid cells were missing min-w-0, so a grid item without it sizes to its content's max-content width instead of respecting its column's fr track, pushing the whole table wider than its container and forcing a horizontal scrollbar on every "Sim vs X" page.
  • Sizes the row-label column to minmax(140px, max-content) instead of a guessed fr ratio, so it's exactly as wide as its longest label ("Vetted first-party integrations") needs, no wider, leaving the Sim/competitor value columns their full share of the remaining width.

Type of Change

  • Bug fix

Testing

  • Verified locally against /comparison/langchain, /comparison/power-automate, and /comparison/microsoft-copilot (longest row label and longest header-subtitle text in the dataset, to confirm the column doesn't balloon on any page)
  • tsc --noEmit and biome check clean on both touched files

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

…roll

Replace LangChainIcon's path with the official brand mark (light-blue
link icon) instead of the prior monochrome recreation.

The comparison table's grid cells were missing min-w-0, so a grid item
without it sizes to its content's max-content width instead of
respecting its column's fr track, pushing the whole table wider than
its container and forcing a horizontal scrollbar. Add min-w-0 to every
grid cell/header, and size the row-label column to minmax(140px,
max-content) instead of a guessed fr ratio, so it's exactly as wide as
its longest label ("Vetted first-party integrations") needs and no
wider, leaving the Sim/competitor value columns their full share.
@vercel

vercel Bot commented Jul 4, 2026

Copy link
Copy Markdown

@cursor

cursor Bot commented Jul 4, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Landing-page UI and a static icon only; no auth, APIs, or data handling.

Overview
Fixes unwanted horizontal scrolling on Sim vs competitor pages by adding min-w-0 on grid cells and sizing the label column with minmax(140px, max-content) instead of a fixed fr ratio, so long labels don’t blow out the table width.

ComparisonTable is now responsive: at lg and up it keeps a 3-column grid with a sticky row-label column (CSS-only shadow) for horizontal scroll; below lg it stacks each fact as label → Sim value → competitor value, with inline name tags since column headers aren’t above the values. Headers and compare text use truncation where needed.

SourceLink links get block min-w-0 so sourced fact values can shrink/truncate inside the flex/grid layout.

LangChainIcon is updated to the official light-blue brand mark instead of the previous monochrome SVG.

Reviewed by Cursor Bugbot for commit 8dcad87. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes horizontal overflow on "Sim vs X" comparison pages by adding min-w-0 to all grid cells (so 1fr tracks size correctly), switching the label column to minmax(140px,max-content), and adds a responsive mobile-stacking layout with inline name tags. It also swaps the LangChain icon for the official light-blue brand mark.

  • Scroll fix: min-w-0 is added to all data row cells (row-header, Sim cell, competitor cell) and to ColumnHeader, and the label column track changes from 1.2fr to minmax(140px,max-content), removing the horizontal scrollbar.
  • Responsive layout: below lg, the grid collapses to single-column (stacked: label → Sim value → competitor value), each value cell carrying a small name-tag label so column context is preserved without column headers.
  • LangChain logo: SVG path replaced with the official LangChain link-chain mark and #7FC8FF fill.

Confidence Score: 5/5

Safe to merge — changes are scoped to CSS layout corrections and a visual icon swap with no behavioural side-effects.

All three files touch only presentation: adding min-w-0 to grid cells is a well-understood CSS fix, the grid-template rewrite is mechanical, the mobile stacking layout is isolated behind max-lg breakpoint utilities, and the LangChain SVG swap is a one-line path/fill change. No data paths, API calls, or state logic are modified.

No files require special attention.

Important Files Changed

Filename Overview
apps/sim/app/(landing)/comparison/components/comparison-table/comparison-table.tsx Core fix: adds min-w-0 to all grid cells, changes label column to minmax(140px,max-content), adds sticky label column on lg+, and introduces a mobile stacking layout with inline name tags. Logic and responsive breakpoints are correct.
apps/sim/app/(landing)/comparison/components/source-info/source-info.tsx Adds block min-w-0 to the anchor element so it participates in flex sizing and can shrink below content width, supporting the scroll fix in the parent grid cells.
apps/sim/components/icons.tsx Swaps LangChainIcon SVG path to the official brand mark with a hardcoded #7FC8FF fill; straightforward visual-only change.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[ComparisonTable] --> B{Viewport}
    B -->|"≥ lg (1024px)"| C["3-column grid\nminmax(140px,max-content) | 1fr | 1fr"]
    B -->|"< lg"| D["Single-column grid\n(stacked layout)"]

    C --> E["Label column: sticky left-0\n+ shadow affordance"]
    C --> F["Sim column: min-w-0 1fr"]
    C --> G["Competitor column: min-w-0 1fr"]

    D --> H["Label cell\n(MOBILE_STACK_LABEL)"]
    D --> I["Sim value + name tag\n(MOBILE_STACK_VALUE)"]
    D --> J["Competitor value + name tag\n(MOBILE_STACK_VALUE)"]

    E --> K["ColumnHeader + row-header cells\nall min-w-0"]
    F --> K
    G --> K
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[ComparisonTable] --> B{Viewport}
    B -->|"≥ lg (1024px)"| C["3-column grid\nminmax(140px,max-content) | 1fr | 1fr"]
    B -->|"< lg"| D["Single-column grid\n(stacked layout)"]

    C --> E["Label column: sticky left-0\n+ shadow affordance"]
    C --> F["Sim column: min-w-0 1fr"]
    C --> G["Competitor column: min-w-0 1fr"]

    D --> H["Label cell\n(MOBILE_STACK_LABEL)"]
    D --> I["Sim value + name tag\n(MOBILE_STACK_VALUE)"]
    D --> J["Competitor value + name tag\n(MOBILE_STACK_VALUE)"]

    E --> K["ColumnHeader + row-header cells\nall min-w-0"]
    F --> K
    G --> K
Loading

Reviews (2): Last reviewed commit: "fix(compare): add min-w-0 to ColumnHeade..." | Re-trigger Greptile

Below sm (640px) a 3-column table has no room to be legible even with
the sticky label column, so switch to the standard responsive-table
pattern instead: each fact stacks as label -> Sim's value -> the
competitor's value, each value tagged with its product name since the
column headers are no longer directly above. Pure CSS (max-sm:/sm:
variants), no JS, keeping this a zero-hydration server component.
…kpoint

Root cause of the persistent table-overflow/mobile-scroll issues: SourceLink
renders a plain <a> with no explicit display, so it defaults to
'display: inline'. min-width and truncate are no-ops on inline elements, so
any fact with a source (nearly all of them) ignored its flex/grid parent's
width constraint and could force the whole row (and thus the whole table)
wider than intended, regardless of any container-level min-w-0/max-content
fix. Give the anchor 'block min-w-0' so width constraints and truncation
actually cascade down to the wrapped value.

Also aligns the table's mobile-stack breakpoint from an ad hoc sm (640px) to
lg (1024px), matching this route group's own tablet-and-below convention
(.claude/rules for the (landing) group), and fixes the stacked mobile cells
to override the cell's base items-center with items-stretch so the name tag
and value get a real full-width box to truncate within instead of shrinking
to their own content size with no boundary.
ColumnHeader (the Sim/competitor logo header cells in the two fr columns)
still had default min-width: auto, so an unusually long competitor name
could size the header to its min-content width and push the grid wider
than its column allows, same root cause as the rows already fixed.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

Fixed the ColumnHeader min-w-0 gap you flagged (P2, comparison-table.tsx L22-33): added min-w-0 to the header container and w-full truncate to the name span, matching the treatment already applied to every other cell in these columns. Pushed in 8dcad87.

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 8dcad87. Configure here.

@waleedlatif1 waleedlatif1 merged commit 0249516 into staging Jul 4, 2026
18 checks passed
@waleedlatif1 waleedlatif1 deleted the worktree-langchain-icon-fix branch July 4, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant