umanggarg Claude Sonnet 4.6 commited on
Commit
7c63a5e
Β·
1 Parent(s): 749a27f

fix: unclip Cartographer brand descender, slow suggestion box stagger

Browse files

- sidebar-brand-name: line-height 1.1β†’1.2 + padding-bottom 0.08em
fixes 'g' descender clipping caused by background-clip gradient mask
- suggestionIn: duration 560ms→800ms, stagger 80+90i→150+180i ms
makes the 3 landing boxes cascade visibly instead of all at once

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (2) hide show
  1. ui/src/App.jsx +1 -1
  2. ui/src/index.css +7 -6
ui/src/App.jsx CHANGED
@@ -807,7 +807,7 @@ export default function App() {
807
  { icon: "explore", title: "Explore the structure", body: "Concept map of key components and how they connect." },
808
  ].map(({ icon, title, body }, i) => (
809
  <div key={title} className="suggestion-btn"
810
- style={{ animationDelay: `${80 + i * 90}ms`, cursor: "default" }}>
811
  <span className="suggestion-icon">{ICONS[icon]}</span>
812
  <span className="suggestion-content">
813
  <span className="suggestion-title">{title}</span>
 
807
  { icon: "explore", title: "Explore the structure", body: "Concept map of key components and how they connect." },
808
  ].map(({ icon, title, body }, i) => (
809
  <div key={title} className="suggestion-btn"
810
+ style={{ animationDelay: `${150 + i * 180}ms`, cursor: "default" }}>
811
  <span className="suggestion-icon">{ICONS[icon]}</span>
812
  <span className="suggestion-content">
813
  <span className="suggestion-title">{title}</span>
ui/src/index.css CHANGED
@@ -296,7 +296,8 @@ textarea:focus-visible {
296
  background-clip: text;
297
  color: #FFFFFF;
298
  letter-spacing: -0.02em;
299
- line-height: 1.1;
 
300
  }
301
 
302
  /* ── Sidebar sections β€” gradient dividers instead of harsh solid lines ─────── */
@@ -1358,9 +1359,9 @@ textarea:focus-visible {
1358
  animation: onboardIn 580ms cubic-bezier(0.16, 1, 0.3, 1) both;
1359
  animation-delay: 0ms;
1360
  }
1361
- .onboarding-steps .onboarding-step:nth-child(2) { animation: onboardIn 800ms cubic-bezier(0.16, 1, 0.3, 1) 180ms both; }
1362
- .onboarding-steps .onboarding-step:nth-child(3) { animation: onboardIn 800ms cubic-bezier(0.16, 1, 0.3, 1) 320ms both; }
1363
- .onboarding-steps .onboarding-step:nth-child(4) { animation: onboardIn 800ms cubic-bezier(0.16, 1, 0.3, 1) 460ms both; }
1364
 
1365
  /* Header for onboarding section */
1366
  .onboarding-header {
@@ -1560,7 +1561,7 @@ textarea:focus-visible {
1560
  /* Staggered entrance β€” delay set inline via animationDelay style prop in App.jsx
1561
  so index-based order is always guaranteed correct */
1562
  @keyframes suggestionIn {
1563
- from { opacity: 0; transform: translateY(10px); }
1564
  to { opacity: 1; transform: translateY(0); }
1565
  }
1566
 
@@ -1578,7 +1579,7 @@ textarea:focus-visible {
1578
  padding: 13px 14px 13px 14px;
1579
  text-align: left;
1580
  transition: border-color var(--transition), background var(--transition), transform var(--transition), box-shadow var(--transition);
1581
- animation: suggestionIn 560ms cubic-bezier(0.16, 1, 0.3, 1) both;
1582
  box-shadow: 0 1px 3px rgba(0,0,0,0.25), 0 4px 16px rgba(0,0,0,0.15);
1583
  }
1584
 
 
296
  background-clip: text;
297
  color: #FFFFFF;
298
  letter-spacing: -0.02em;
299
+ line-height: 1.2;
300
+ padding-bottom: 0.08em; /* gradient clip mask cuts descenders β€” padding restores them */
301
  }
302
 
303
  /* ── Sidebar sections β€” gradient dividers instead of harsh solid lines ─────── */
 
1359
  animation: onboardIn 580ms cubic-bezier(0.16, 1, 0.3, 1) both;
1360
  animation-delay: 0ms;
1361
  }
1362
+ .onboarding-steps .onboarding-step:nth-child(2) { animation: onboardIn 560ms cubic-bezier(0.16, 1, 0.3, 1) 120ms both; }
1363
+ .onboarding-steps .onboarding-step:nth-child(3) { animation: onboardIn 560ms cubic-bezier(0.16, 1, 0.3, 1) 210ms both; }
1364
+ .onboarding-steps .onboarding-step:nth-child(4) { animation: onboardIn 560ms cubic-bezier(0.16, 1, 0.3, 1) 300ms both; }
1365
 
1366
  /* Header for onboarding section */
1367
  .onboarding-header {
 
1561
  /* Staggered entrance β€” delay set inline via animationDelay style prop in App.jsx
1562
  so index-based order is always guaranteed correct */
1563
  @keyframes suggestionIn {
1564
+ from { opacity: 0; transform: translateY(16px); }
1565
  to { opacity: 1; transform: translateY(0); }
1566
  }
1567
 
 
1579
  padding: 13px 14px 13px 14px;
1580
  text-align: left;
1581
  transition: border-color var(--transition), background var(--transition), transform var(--transition), box-shadow var(--transition);
1582
+ animation: suggestionIn 800ms cubic-bezier(0.16, 1, 0.3, 1) both;
1583
  box-shadow: 0 1px 3px rgba(0,0,0,0.25), 0 4px 16px rgba(0,0,0,0.15);
1584
  }
1585