Skip to content

refine: normalize and harden connect-your-tools mock (responsive, geometry, accessibility)#14

Merged
NguyenCuong1989 merged 2 commits into
mainfrom
codex/linear-mention-www-3-connect-your-tools-3-9lx5ja
May 17, 2026
Merged

refine: normalize and harden connect-your-tools mock (responsive, geometry, accessibility)#14
NguyenCuong1989 merged 2 commits into
mainfrom
codex/linear-mention-www-3-connect-your-tools-3-9lx5ja

Conversation

@NguyenCuong1989
Copy link
Copy Markdown
Collaborator

@NguyenCuong1989 NguyenCuong1989 commented Mar 29, 2026

Motivation

  • Normalize the visual mock across entry points and tighten layout/geometry to better match the Linear reference.
  • Replace hard-coded sizing and offsets with fluid, clamp-based values for stable responsive behavior.
  • Add containment and accessibility guardrails to reduce layout shifts and respect user motion preferences.

Description

  • Unified connect-your-tools.html and examples/connect-your-tools.html to a single implementation and shared CSS variables (e.g. --logo-size, --bg-start, --icon-accent).
  • Replaced fixed spacings/sizes with fluid values using clamp() for gap, vertical translateY, and logo sizing, and moved stripe geometry into a single pseudo-element (.logo.linear::before) using a linear-gradient to preserve stripe angle/spacing.
  • Reworked the plus glyph to use percentage-based dimensions (e.g. width: 46%, height: 10% / width: 10%, height: 46%) and centered it with top/left: 50% + transform: translate(-50%, -50%) for pixel-stable centering.
  • Added technical guardrails: overflow: hidden on body, contain: layout paint on .logos, prefers-reduced-motion media query, standardized font stack, and consolidated gradient stop tuning.

Testing

  • HTML syntax parsed successfully for both files using Python's HTMLParser (validation passed).
  • Local server smoke test returned HTTP/1.0 200 OK for http://127.0.0.1:4173/connect-your-tools.html (served successfully).
  • git diff --check style check completed without whitespace errors.
  • Playwright runs (Firefox) produced a screenshot artifact and viewport geometry checks at 320/375/768/1440 reported expected logo widths and gaps (examples: 320px: logo=108.00px gap=24.00px, 1440px: logo=158.40px gap=64.00px).

Codex Task

Tóm tắt bởi Sourcery

Thống nhất và tinh chỉnh phần đánh dấu (markup) và cách tạo kiểu (styling) cho minh họa “connect-your-tools” để có hành vi nhất quán, đáp ứng (responsive) và dễ tiếp cận (accessible) trên tất cả các điểm truy cập.

Tính năng mới:

  • Giới thiệu các thuộc tính tùy chỉnh CSS dùng chung cho kích thước logo, màu sắc và bố cục để điều khiển cả hai điểm truy cập “connect-your-tools”.

Cải tiến:

  • Căn chỉnh phần triển khai trong examples/connect-your-tools.html cho phù hợp với connect-your-tools.html chính, sử dụng cùng bố cục, hình học và xử lý hình ảnh.
  • Thay thế các kích thước, khoảng cách và độ lệch cố định theo pixel bằng các giá trị dựa trên clamp, tỉ lệ phần trăm để khả năng đáp ứng mượt hơn và căn giữa ổn định hơn.
  • Đơn giản hóa các sọc logo Linear thành một pseudo-element đơn dựa trên gradient để có hình học ổn định và dễ bảo trì hơn.
  • Thêm containment bố cục, xử lý chiều cao toàn phần và kiểm soát tràn (overflow) để giảm dịch chuyển bố cục và giữ minh họa được giới hạn trong vùng hiển thị (viewport).
  • Chuẩn hóa các thuộc tính liên quan đến khả năng truy cập và các media query, bao gồm xử lý prefers-reduced-motion và mô tả ARIA rõ ràng hơn.
Original summary in English

Summary by Sourcery

Unify and refine the connect-your-tools illustration markup and styling for consistent, responsive, and accessible behavior across entry points.

New Features:

  • Introduce shared CSS custom properties for logo sizing, colors, and layout to drive both connect-your-tools entry points.

Enhancements:

  • Align the examples/connect-your-tools.html implementation with the main connect-your-tools.html, using the same layout, geometry, and visual treatment.
  • Replace fixed pixel-based sizes, gaps, and offsets with clamp-based, percentage-driven values for smoother responsiveness and more stable centering.
  • Simplify the Linear logo stripes into a single gradient-based pseudo-element for more robust and maintainable geometry.
  • Add layout containment, full-height handling, and overflow control to reduce layout shifts and keep the illustration constrained within the viewport.
  • Standardize accessibility-related attributes and media queries, including prefers-reduced-motion handling and more descriptive ARIA labelling.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Mar 29, 2026

Hướng dẫn dành cho người review

Tái cấu trúc mock “connect-your-tools” để sử dụng một implementation thống nhất, linh hoạt và dễ tiếp cận hơn trên cả hai điểm vào HTML, tập trung hoá phần hình học thông qua các biến CSS, kích thước responsive dựa trên clamp, và một logo sọc dạng gradient duy nhất, đồng thời bổ sung containment layout và các rào chắn về chuyển động/tính dễ tiếp cận.

Lưu đồ cho việc render logo responsive và dễ tiếp cận

flowchart TD
  Browser["Browser loads connect-your-tools page"] --> CSS["Parse shared CSS variables and rules"]

  CSS --> Layout["Apply body grid layout\n+ overflow hidden"]
  CSS --> Logos["Render .logos flex container\nwith clamp-based gap and translateY"]
  CSS --> Logo["Render .logo circles\nusing --logo-size"]

  Logo --> Linear["For .logo.linear\napply ::before gradient stripes"]
  Logo --> Plus["For .logo.plus\napply ::before / ::after plus glyph\nwith percentage dimensions"]

  CSS --> MotionQuery{"prefers-reduced-motion?"}
  MotionQuery -->|Yes| ReduceMotion["Disable animations and transitions"]
  MotionQuery -->|No| NormalMotion["Allow default animations and transitions"]
Loading

Thay đổi ở cấp độ file

Thay đổi Chi tiết Files
Thống nhất implementation hiển thị và chủ đề (theming) giữa trang connect-your-tools gốc và trang ví dụ.
  • Căn chỉnh các token màu ở :root và giới thiệu các biến dùng chung như --bg-start, --bg-mid, --bg-end, --icon-bg và --icon-accent
  • Chuẩn hoá layout cơ bản bằng cách sử dụng body dạng grid căn giữa với nền gradient nhất quán và font stack thống nhất trên cả hai file HTML
  • Đổi tên container icon từ .icons thành .logos và các phần tử tròn từ .circle thành .logo cho nhất quán
examples/connect-your-tools.html
connect-your-tools.html
Khiến kích thước, khoảng cách và vị trí logo trở nên linh hoạt và dựa trên hình học thay vì giá trị cố định.
  • Thay thế các giá trị pixel cố định cho gap, chiều rộng logo và độ lệch dọc bằng các giá trị dựa trên clamp() cho gap, translateY và một biến dùng lại là --logo-size
  • Loại bỏ nhiều phần tử span sọc và mask hình học, thay vào đó dùng một pseudo-element .logo.linear::before duy nhất với linear-gradient để mã hoá góc và khoảng cách giữa các sọc
  • Thêm contain: layout paint trên .logos và overflow: hidden trên body để giới hạn việc render và tránh scrollbar thừa hoặc layout shift
examples/connect-your-tools.html
connect-your-tools.html
Làm lại glyph dấu cộng và semantics về accessibility để canh giữa tốt hơn, khả năng scale tốt hơn và tôn trọng tuỳ chọn chuyển động.
  • Thay dấu cộng từ các thanh pixel cố định sang kích thước dựa trên phần trăm (46%/10%) với top/left 50% và translate(-50%, -50%) để canh giữa ổn định theo pixel trên nhiều kích thước
  • Điều chỉnh thanh dọc của dấu cộng bằng cách chỉnh kích thước .logo.plus::after thay vì dựa vào transform xoay, giúp kiểm soát hình học tốt hơn
  • Cập nhật ARIA labelling trên các phần tử main/logo để dùng nhãn mô tả thay vì aria-hidden, và thêm media query prefers-reduced-motion để tắt animations và transitions khi người dùng yêu cầu
examples/connect-your-tools.html
connect-your-tools.html

Mẹo và câu lệnh

Tương tác với Sourcery

  • Gọi một lượt review mới: Comment @sourcery-ai review trên pull request.
  • Tiếp tục thảo luận: Trả lời trực tiếp vào các comment review của Sourcery.
  • Tạo GitHub issue từ một review comment: Yêu cầu Sourcery tạo
    issue từ một review comment bằng cách trả lời vào comment đó. Bạn cũng có thể trả lời
    một review comment với @sourcery-ai issue để tạo issue từ comment đó.
  • Tạo tiêu đề pull request: Viết @sourcery-ai ở bất kỳ đâu trong
    tiêu đề pull request để tạo tiêu đề bất cứ lúc nào. Bạn cũng có thể comment
    @sourcery-ai title trên pull request để (tái) tạo tiêu đề bất cứ lúc nào.
  • Tạo tóm tắt pull request: Viết @sourcery-ai summary ở bất kỳ đâu trong
    phần body của pull request để tạo tóm tắt PR ngay tại vị trí bạn muốn bất cứ lúc nào. Bạn cũng có thể comment @sourcery-ai summary trên pull request để
    (tái) tạo tóm tắt bất cứ lúc nào.
  • Tạo reviewer's guide: Comment @sourcery-ai guide trên pull
    request để (tái) tạo reviewer's guide bất cứ lúc nào.
  • Resolve tất cả comment của Sourcery: Comment @sourcery-ai resolve trên
    pull request để resolve tất cả comment của Sourcery. Hữu ích khi bạn đã xử lý
    hết các comment và không muốn thấy chúng nữa.
  • Dismiss tất cả review của Sourcery: Comment @sourcery-ai dismiss trên
    pull request để dismiss tất cả review hiện có của Sourcery. Đặc biệt hữu ích nếu bạn
    muốn bắt đầu lại với một lượt review mới – đừng quên comment
    @sourcery-ai review để gọi lượt review mới!

Tuỳ chỉnh trải nghiệm của bạn

Truy cập dashboard để:

  • Bật hoặc tắt các tính năng review như tóm tắt pull request do Sourcery tạo,
    reviewer's guide, và các tính năng khác.
  • Thay đổi ngôn ngữ review.
  • Thêm, xoá hoặc chỉnh sửa hướng dẫn review tuỳ chỉnh.
  • Điều chỉnh các thiết lập review khác.

Nhận hỗ trợ

Original review guide in English

Reviewer's Guide

Refactors the connect-your-tools mock to use a unified, fluid, and more accessible implementation across both HTML entry points, centralizing geometry via CSS variables, clamp-based responsive sizing, and a single gradient-based stripe logo while adding layout containment and motion/accessibility guardrails.

Flow diagram for responsive and accessible logo rendering

flowchart TD
  Browser["Browser loads connect-your-tools page"] --> CSS["Parse shared CSS variables and rules"]

  CSS --> Layout["Apply body grid layout\n+ overflow hidden"]
  CSS --> Logos["Render .logos flex container\nwith clamp-based gap and translateY"]
  CSS --> Logo["Render .logo circles\nusing --logo-size"]

  Logo --> Linear["For .logo.linear\napply ::before gradient stripes"]
  Logo --> Plus["For .logo.plus\napply ::before / ::after plus glyph\nwith percentage dimensions"]

  CSS --> MotionQuery{"prefers-reduced-motion?"}
  MotionQuery -->|Yes| ReduceMotion["Disable animations and transitions"]
  MotionQuery -->|No| NormalMotion["Allow default animations and transitions"]
Loading

File-Level Changes

Change Details Files
Unify the visual implementation and theming between the root and examples connect-your-tools pages.
  • Align :root color tokens and introduce shared variables such as --bg-start, --bg-mid, --bg-end, --icon-bg, and --icon-accent
  • Normalize base layout by using a centered grid body with a consistent gradient background and font stack across both HTML files
  • Rename the icon container from .icons to .logos and the circular items from .circle to .logo for consistency
examples/connect-your-tools.html
connect-your-tools.html
Make logo sizing, spacing, and positioning fluid and geometry-driven instead of hard-coded.
  • Replace fixed pixel gaps, logo widths, and vertical offsets with clamp()-based values for gap, translateY, and a reusable --logo-size variable
  • Remove multiple stripe span elements and mask geometry in favor of a single .logo.linear::before pseudo-element using a linear-gradient to encode stripe angle and spacing
  • Add contain: layout paint on .logos and overflow: hidden on body to constrain rendering and avoid stray scrollbars or layout shifts
examples/connect-your-tools.html
connect-your-tools.html
Rework the plus glyph and accessibility semantics for better centering, scalability, and motion preferences.
  • Change the plus mark from fixed pixel bars to percentage-based dimensions (46%/10%) with top/left 50% and translate(-50%, -50%) for pixel-stable centering across sizes
  • Adjust the vertical bar of the plus by sizing .logo.plus::after instead of relying on rotation transforms, improving geometry control
  • Update ARIA labelling on the main/logo elements to use descriptive labels instead of aria-hidden, and add a prefers-reduced-motion media query to disable animations and transitions when requested
examples/connect-your-tools.html
connect-your-tools.html

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Normalize and harden connect-your-tools layout and geometry

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Unified both HTML files into single implementation with shared CSS variables
• Replaced fixed sizing with fluid clamp() values for responsive geometry
• Refactored plus glyph to percentage-based dimensions for pixel-stable centering
• Added accessibility and containment guardrails (overflow: hidden, contain: layout paint,
  prefers-reduced-motion)
Diagram
flowchart LR
  A["Fixed sizing<br/>hard-coded values"] -->|"Replace with clamp()"| B["Fluid responsive<br/>geometry"]
  C["Multiple stripe<br/>pseudo-elements"] -->|"Consolidate to<br/>linear-gradient"| D["Single ::before<br/>pseudo-element"]
  E["Pixel-based plus<br/>dimensions"] -->|"Convert to<br/>percentage-based"| F["Centered with<br/>transform translate"]
  B --> G["Accessibility &<br/>containment rules"]
  D --> G
  F --> G
Loading

Grey Divider

File Changes

1. connect-your-tools.html ✨ Enhancement +32/-21

Fluid responsive layout with accessibility guardrails

• Added overflow: hidden to body and contain: layout paint to .logos for layout stability
• Introduced --logo-size CSS variable using clamp(108px, 11vw, 168px) for responsive sizing
• Refined gap from clamp(38px, 5vw, 84px) to clamp(24px, 5vw, 64px) and translateY to use
 clamp(10px, 5vh, 52px)
• Reformatted .logo.linear::before gradient for readability
• Converted plus glyph to percentage-based dimensions (width: 46%, height: 10% for horizontal
 bar; width: 10%, height: 46% for vertical bar)
• Added @media (prefers-reduced-motion: reduce) query to disable animations and transitions

connect-your-tools.html


2. examples/connect-your-tools.html ✨ Enhancement +62/-107

Consolidate to unified responsive implementation

• Unified with connect-your-tools.html implementation, removing duplicate and divergent code
• Renamed CSS variables for consistency (--bg-left--bg-start, --icon-white--icon-bg)
• Updated gradient angle from 120deg to 125deg and adjusted color stops to match reference
• Replaced .icons class with .logos and .circle with .logo for semantic consistency
• Consolidated stripe rendering from four separate .stripe elements into single
 .logo.linear::before pseudo-element with linear-gradient
• Converted plus icon from grid-based layout to percentage-based pseudo-element dimensions
• Replaced fixed gap: 54px and transform: translateY(12px) with fluid clamp() values
• Added @media (max-width: 700px) and @media (prefers-reduced-motion: reduce) queries
• Updated HTML markup to use unified .logo and .logos structure with improved ARIA labels

examples/connect-your-tools.html


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review Bot commented Mar 29, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. Confusing aria labeling 🐞 Bug ✓ Correctness
Description
The illustration is built from empty <div> elements with aria-labels, which can produce redundant or
confusing accessibility tree output (parent <main> label plus two labeled generic children). Either
expose a single meaningful accessible description for the illustration or add appropriate semantics
(e.g., role="img") and avoid duplicate labeling.
Code

examples/connect-your-tools.html[R106-108]

+    <main class="logos" aria-label="Connected tools illustration">
+      <div class="logo linear" aria-label="Linear logo"></div>
+      <div class="logo plus" aria-label="Add integration"></div>
Evidence
Both pages render the logos purely via CSS pseudo-elements, while the DOM nodes are empty; the
current markup labels the landmark container and also labels the two generic <div> nodes, which is
likely redundant/confusing for screen readers and may be inconsistently surfaced depending on AT/UA.

examples/connect-your-tools.html[106-109]
connect-your-tools.html[106-109]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The illustration uses empty `<div>`s with `aria-label` and also labels the parent `<main>`, which can result in redundant/confusing announcements.

### Issue Context
The visible content is entirely CSS-driven (`::before`/`::after`) and the DOM nodes are empty.

### Fix Focus Areas
- examples/connect-your-tools.html[106-108]
- connect-your-tools.html[106-108]

### Suggested fix
Choose one approach:
1) **Single label for the whole illustration:** keep the container label (or move to a `<figure>`), and set the two logo `<div>`s to `aria-hidden="true"`.
2) **Individual labeled images:** add `role="img"` to each `.logo` and remove the container `aria-label` to avoid duplication.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Overflow hidden disables scroll 🐞 Bug ⛯ Reliability
Description
Setting overflow: hidden on body (combined with html, body { height: 100%; }) prevents
scrolling, so if the translated logo row ever overflows the viewport (e.g., short viewport, zoom,
embedded contexts) it can be clipped with no way to reach it. Prefer allowing vertical overflow or
limiting overflow hiding to the axis/element that actually needs it.
Code

examples/connect-your-tools.html[R20-31]

+      html,
+      body {
+        height: 100%;
+      }
+
      body {
        margin: 0;
-        min-height: 100vh;
        display: grid;
        place-items: center;
-        background: linear-gradient(120deg, var(--bg-left) 10%, var(--bg-mid) 52%, var(--bg-right) 95%);
-        font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
+        overflow: hidden;
+        background: linear-gradient(125deg, var(--bg-start) 2%, var(--bg-mid) 51%, var(--bg-end) 98%);
+        font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
Evidence
The page explicitly fixes the root to 100% height and hides overflow on the body, while also
applying a positive Y-translation to the logo row; this combination removes the browser’s fallback
(scrolling) if content doesn’t fit.

examples/connect-your-tools.html[20-31]
examples/connect-your-tools.html[34-41]
connect-your-tools.html[20-31]
connect-your-tools.html[34-41]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`body { overflow: hidden; }` prevents scrolling, which can clip the illustration if it overflows due to viewport constraints or zoom.

### Issue Context
The layout also uses `transform: translateY(...)` on `.logos`, increasing the chance of clipping in constrained heights.

### Fix Focus Areas
- examples/connect-your-tools.html[20-41]
- connect-your-tools.html[20-41]

### Suggested fix
Use a safer combination, for example:
- Replace `height: 100%` with `min-height: 100vh` (or keep current heights but…)
- Replace `overflow: hidden` with `overflow-x: hidden; overflow-y: auto;` (or remove overflow hiding entirely)
- If the goal is only to clip logo internals, apply overflow control to `.logos`/`.logo` rather than the full `body`.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Chào bạn – mình đã để lại một số góp ý tổng quan:

  • Việc lồng nhiều aria-label (<main aria-label=...> cùng với các thuộc tính aria-label riêng trên hai logo) có thể tạo ra thông báo dư thừa hoặc gây nhầm lẫn cho trình đọc màn hình; hãy cân nhắc giữ nhãn mô tả trên phần tử bao ngoài và đánh dấu các logo riêng lẻ là aria-hidden="true" nếu chúng chỉ mang tính minh họa.
  • Thêm overflow: hidden vào body có thể khiến người dùng không thể cuộn trang khi phóng to hoặc tăng cỡ chữ, điều này có thể gây bất lợi cho khả năng truy cập trên các màn hình nhỏ; hãy cân nhắc giới hạn việc cắt tràn (overflow clipping) vào một wrapper chuyên biệt bao quanh phần minh họa thay vì áp dụng cho toàn bộ body của tài liệu.
Đoạn nhắc (prompt) cho các tác nhân AI
Hãy xử lý các nhận xét từ buổi code review này:

## Nhận xét tổng quan
- Việc lồng nhiều `aria-label` (`<main aria-label=...>` cùng với các thuộc tính `aria-label` riêng trên hai logo) có thể tạo ra thông báo dư thừa hoặc gây nhầm lẫn cho trình đọc màn hình; hãy cân nhắc giữ nhãn mô tả trên phần tử bao ngoài và đánh dấu các logo riêng lẻ là `aria-hidden="true"` nếu chúng chỉ mang tính minh họa.
- Thêm `overflow: hidden` vào `body` có thể khiến người dùng không thể cuộn trang khi phóng to hoặc tăng cỡ chữ, điều này có thể gây bất lợi cho khả năng truy cập trên các màn hình nhỏ; hãy cân nhắc giới hạn việc cắt tràn (overflow clipping) vào một wrapper chuyên biệt bao quanh phần minh họa thay vì áp dụng cho toàn bộ `body` của tài liệu.

Sourcery miễn phí cho mã nguồn mở - nếu bạn thích các review của bọn mình, hãy cân nhắc chia sẻ chúng ✨
Hãy giúp mình hữu ích hơn! Vui lòng bấm 👍 hoặc 👎 trên từng nhận xét và mình sẽ dùng phản hồi đó để cải thiện các review dành cho bạn.
Original comment in English

Hey - I've left some high level feedback:

  • The nested aria-label usage (<main aria-label=...> plus individual aria-label attributes on the two logos) may create redundant or confusing announcements for screen readers; consider keeping the descriptive label on the container and marking the individual logos aria-hidden="true" if they’re purely illustrative.
  • Adding overflow: hidden to the body can prevent scrolling when users zoom or increase font size, which may hurt accessibility on smaller viewports; consider scoping overflow clipping to a dedicated wrapper around the illustration instead of the entire document body.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The nested `aria-label` usage (`<main aria-label=...>` plus individual `aria-label` attributes on the two logos) may create redundant or confusing announcements for screen readers; consider keeping the descriptive label on the container and marking the individual logos `aria-hidden="true"` if they’re purely illustrative.
- Adding `overflow: hidden` to the `body` can prevent scrolling when users zoom or increase font size, which may hurt accessibility on smaller viewports; consider scoping overflow clipping to a dedicated wrapper around the illustration instead of the entire document body.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copilot AI review requested due to automatic review settings May 17, 2026 16:05
@NguyenCuong1989 NguyenCuong1989 merged commit 70972c1 into main May 17, 2026
2 checks passed
@NguyenCuong1989 NguyenCuong1989 deleted the codex/linear-mention-www-3-connect-your-tools-3-9lx5ja branch May 17, 2026 16:06
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Unifies and refines the “connect-your-tools” static mock to behave consistently across entry points, with more stable responsive geometry and added accessibility guardrails.

Changes:

  • Introduces shared CSS custom properties and clamp-based responsive sizing for logo cluster layout.
  • Refactors Linear stripes and the plus glyph geometry for more stable alignment.
  • Adds motion-reduction styling and other layout guardrails (e.g., overflow handling).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
examples/connect-your-tools.html Aligns example mock styles with the main implementation using shared variables and responsive geometry.
connect-your-tools.html Applies the same responsive sizing, geometry tweaks, and reduced-motion handling to the main entry point.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +9 to 16
--bg-start: #6544dc;
--bg-mid: #9a54b5;
--bg-end: #ec6d74;
--icon-bg: #eeeeef;
--icon-accent: #b3579f;
--bg-start: #6746db;
--bg-mid: #9d56b1;
--bg-end: #ee6e6a;
Comment on lines +35 to 41
display: grid;
place-items: center;
overflow: hidden;
background: linear-gradient(125deg, var(--bg-start) 2%, var(--bg-mid) 51%, var(--bg-end) 98%);
min-height: 100vh;
overflow: hidden;
display: grid;
Comment on lines +48 to 54
--logo-size: clamp(108px, 11vw, 168px);
display: flex;
align-items: center;
gap: clamp(24px, 5vw, 64px);
transform: translateY(clamp(10px, 5vh, 52px));
display: flex;
align-items: center;
Comment thread connect-your-tools.html
Comment on lines 47 to 48
gap: var(--icon-gap);
transform: translateY(var(--cluster-shift-y));
Comment thread connect-your-tools.html

@media (max-width: 700px) {
.logos {
transform: translateY(clamp(4px, 3vh, 20px));
Comment thread connect-your-tools.html
Comment on lines 124 to 130
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
* {
animation: none !important;
transition: none !important;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants