fix: emcn component library design engineering polish#3672
fix: emcn component library design engineering polish#3672adithyaakrishna wants to merge 6 commits intosimstudioai:stagingfrom
Conversation
PR SummaryLow Risk Overview Improves auth form UX by adding show/hide password toggles, animating validation and reset status messages via collapsible containers with Refines landing page interactions and visuals, including pausable enterprise feature marquee hover behavior and numerous small layout/hover-state adjustments in the navbar, templates/features previews, and footer. Written by Cursor Bugbot for commit 2f83f87. This will update automatically on new commits. Configure here. |
|
@adithyaakrishna is attempting to deploy a commit to the Sim Team on Vercel. A member of the Team first needs to authorize it. |
74c6b77 to
437f7fd
Compare
437f7fd to
ccbc8d8
Compare
| id='features' | ||
| aria-labelledby='features-heading' | ||
| className='relative overflow-hidden bg-[#F6F6F6]' | ||
| className='relative overflow-hidden bg-[var(--text-primary)]' |
There was a problem hiding this comment.
Text-primary token misused as background makes text invisible
High Severity
The light-section background bg-[#F6F6F6] has been replaced with bg-[var(--text-primary)], but --text-primary is defined as #1a1a1a (light mode) or #e6e6e6 (dark mode) — it's a text color token, not a background token. In these same sections, heading text also uses text-[var(--text-primary)], meaning the background and text resolve to the same color, making headings completely invisible. This affects the Features, Pricing, and Enterprise sections of the landing page.
Additional Locations (2)
| aria-selected={index === activeTab} | ||
| onClick={() => setActiveTab(index)} | ||
| className={`relative h-full flex-1 items-center justify-center whitespace-nowrap px-[12px] font-medium font-season text-[#212121] text-[12px] uppercase lg:px-0 lg:text-[14px]${tab.hideOnMobile ? ' hidden lg:flex' : ' flex'}${index > 0 ? ' border-[#E9E9E9] border-l' : ''}`} | ||
| className={`relative h-full flex-1 items-center justify-center whitespace-nowrap px-3 font-medium font-season text-[var(--surface-1)] text-caption uppercase lg:px-0 lg:text-sm${tab.hideOnMobile ? ' hidden lg:flex' : ' flex'}${index > 0 ? ' border-[var(--divider)] border-l' : ''}`} |
There was a problem hiding this comment.
Feature tab text uses surface token instead of text token
Medium Severity
The feature tab button text color changed from text-[#212121] (dark text) to text-[var(--surface-1)]. The --surface-1 token is a background/surface color (used elsewhere as bg-[var(--surface-1)]), not a text color. Depending on its value, tab labels may be invisible or extremely low contrast against the tab background.
| return ( | ||
| <div className={cn('fixed inset-0 overflow-hidden', className)}> | ||
| <div className='-z-50 pointer-events-none absolute inset-0 bg-[#1C1C1C]' /> | ||
| <div className='-z-50 pointer-events-none absolute inset-0 bg-[var(--text-primary)]' /> |
There was a problem hiding this comment.
Auth dark backgrounds become light using text-primary token
High Severity
Auth pages explicitly set the .dark class, where --text-primary resolves to #e6e6e6 (light). Replacing bg-[#1C1C1C] (near-black) with bg-[var(--text-primary)] turns dark backgrounds light — the auth background, header, and "Or continue with" divider span all become light gray instead of near-black, breaking the dark auth page design entirely.
Additional Locations (2)
| Build AI Agents | ||
| </h1> | ||
| <p className='font-[430] font-season text-[#F6F6F6]/60 text-[15px] leading-[125%] tracking-[0.02em] lg:text-[18px]'> | ||
| <p className='font-[430] font-season text-[var(--text-primary)]/60 text-base leading-[125%] tracking-[0.02em] lg:text-lg'> |
There was a problem hiding this comment.
Text opacity on dark sections uses wrong variable
Medium Severity
text-[var(--text-primary)]/60 replaces text-[#F6F6F6]/60 in dark-background sections (hero subtitle, enterprise text). In light mode, --text-primary is #1a1a1a, producing dark text at 60% opacity on a dark background — nearly invisible. The original #F6F6F6 was light text; a semantic variable for light/foreground text is needed instead.
Additional Locations (1)
c6eefee to
2f83f87
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
There are 6 total unresolved issues (including 4 from previous reviews).
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| <h2 | ||
| id='enterprise-heading' | ||
| className='max-w-[600px] font-[430] font-season text-[#1C1C1C] text-[32px] leading-[100%] tracking-[-0.02em] sm:text-[36px] md:text-[40px]' | ||
| className='max-w-[600px] font-[430] font-season text-[var(--text-primary)] text-[32px] leading-[100%] tracking-[-0.02em] sm:text-[36px] md:text-[40px]' |
There was a problem hiding this comment.
Heading text invisible against same-token background
High Severity
Section headings use text-[var(--text-primary)] (was text-[#1C1C1C]) while their parent sections also use bg-[var(--text-primary)] (was bg-[#F6F6F6]). The old code had dark text on light backgrounds — two different colors. Now both foreground and background resolve to the same var(--text-primary) value, rendering heading text completely invisible.
Additional Locations (2)
| </div> | ||
| <div className='relative flex justify-center text-sm'> | ||
| <span className='bg-[#1C1C1C] px-4 font-[340] text-[#999]'>Or continue with</span> | ||
| <span className='bg-[var(--text-primary)] px-4 font-[340] text-[var(--text-subtle)]'>Or continue with</span> |
There was a problem hiding this comment.
Divider span background matches surrounding section background
Medium Severity
The "Or continue with" divider text uses bg-[var(--text-primary)] to create a background that masks the divider line behind it. Previously this was bg-[#1C1C1C], matching the page's dark background. If --text-primary doesn't match the actual page background, the masking effect breaks and the divider line shows through the text, creating a visually broken separator.


Summary
Comprehensive polish of the emcn compos library along with addressing a11y issues and design token consistency
Type of Change
Testing
Checklist