mirror of
https://github.com/logos-co/logos-web.git
synced 2026-08-27 12:11:14 +00:00
* fix(builders-hub): align ideas page details to Figma Match exact Figma specs for the Builder Ideas page (desktop 121:11657, mobile 121:11581): - idea-row: desktop index weight Regular (was medium); mobile title width 179px; mobile Apply CTA square corners (drop rounded-[4px]) and left-aligned at x=298 (right-[22px]) - bottom CTA: heading H3 (36px desktop / 30px mobile) instead of H2 (56px); restore text-h3-serif line-height 1 / -0.03em; gap 24px * fix(builders-hub): align RFP page details to Figma Match exact Figma specs for the Builder RFPs page (desktop 121:11577, mobile 121:11489): - rfp-card: title letter-spacing -0.01em (H4 Sans) instead of tracking-tight (-0.025em) - rfp-list-row: apply the same Row-entry corrections as the ideas row — desktop index weight Regular (was medium), mobile title width 179px, Learn More CTA square corners (drop rounded-[4px]) and left-aligned at x=298 (right-[22px]) - listing grid (RFP branch only): desktop top margin 138px so the first card lands at Figma y=374 (was 160px -> 396px, 22px too low); ideas and list-view branches untouched Text copy verified against Figma (titles/taglines match, British spelling kept where Figma used American). Grid layout, card geometry (345x317 desktop / 369x317 mobile), colours, borders, 96px images and CTA positions confirmed matching. * fix(get-started): align spacing, colours, and copy with Figma - Correct 04 heading copy to "What you can build today" - Swap community row alternating backgrounds (row 0 = grey-01) - Restyle community row labels to 14px (sans-medium number + serif name) - Underline community row "Learn more" CTA (border-b) - Build card body: Public Sans 14px instead of mono 10px - Fix install/docs section top padding (install pt-24, docs pt-40 on desktop) - Add 6px gap between install card image and text panel * fix(basecamp): align spacing, padding, and text gaps with Figma design - Fixed HowItWorksSection: md:py-3 → md:py-10 (was reducing padding on desktop) - Fixed LocalFirstSection: py-3 → py-10 for proper vertical spacing - Increased gap spacing from 3 to 4 across card components and sections - Added uppercase styling to LocalFirstSection eyebrow - Added opacity-0 to footerLabel for layout consistency - Adjusted ModularSection vertical padding: py-10 → py-12 mobile, py-10 desktop - Added flex flex-col gap-4 to ModularSection body text - CapabilitiesSection: py-6 → py-10 mobile for consistent spacing - ResourcesSection: py-10 → py-12 mobile for alignment with other sections - Improved internal spacing in ResourceCard (gap-3 → gap-4, mt-3 → mt-4) All changes verified against Figma desktop design at node-id=146-15527 * refine(basecamp): fine-tune section spacing and padding alignment - HeroSection: pb-12 mobile, pb-10 desktop (better spacing at section break) - HowItWorks title gap: mb-6 → mb-8 (increased spacing to content) - ModularSection: removed inconsistent py-12, standardized to py-10 - CapabilitiesSection heading: mb-10 → mb-12 (better visual hierarchy) - ResourcesSection: removed inconsistent py-12, standardized to py-10 All sections now maintain consistent padding pattern: py-10 with device-specific overrides where needed * fix(lambda-prize): align spacing, padding, and gap with design - HowItWorks: gap-3 → gap-4 mobile, gap-6 desktop, added md:px-3 md:py-10 - HowItWorks titles: mb-6 → mb-8 for both sections - FeaturedPrizes: mt-6 → mt-10 mobile, mt-12 desktop, gap-3 → gap-4, moved px-3 to section level - AboutProgramme: gap-3 → gap-4 mobile, gap-6 desktop, added md:px-3 md:py-10 - Support: pt-10 → py-10 mobile, py-12 desktop, added px-3, removed redundant px-3 from grid All sections now have consistent spacing patterns aligned with Figma design specifications * fix(lambda-prize): precision spacing refinements - standardize padding and margins - DataRows: increase py-1.5 → py-3 for better vertical spacing - FeaturedPrizes: reduce excessive padding pt-[100px] → pt-10, md:pt-[200px] → md:pt-12 - Hero: standardize margins mb-[60px] → mb-12, mt-[60px] → mt-12 - Support: standardize margin-top mt-[35px] → mt-6, md:mt-[91px] → md:mt-8 * fix(research): align section heights with Figma design - Change hero section from min-h-[447px] to h-[447px] (fixed height) - Change overview section from min-h-[670px] to h-[670px] (desktop) - Change resource rows from min-h-[50px] to h-[50px] (fixed height) - Change contribute section from min-h-[262px] to h-[262px] (desktop) These fixed heights match the Figma design specifications for precise layout control across all breakpoints. * fix(research): revert to min-h for responsive design Responsive design requires minimum heights (min-h) instead of fixed heights (h) to accommodate content overflow on various screen sizes. Maintains Figma design intent while ensuring proper mobile/tablet layout behavior. * fix(press): align PressHero padding with Figma design Change PressHero section padding from pt-6 (24px) to pt-10 (40px) to match Figma design specifications where section starts at y=40. All other spacing, margins, colors, and image ratios already aligned with Figma design. Press page now 100% design-compliant. * fix(podcast): add wrapper padding for consistent page layout spacing * fix(podcast): align top padding with Figma design (pt-20/80px) * fix(broadcast-network): align padding with Figma design specs * fix(technology-stack): align hero padding with design specifications * fix(technology-stack): center hero section on desktop to fix left alignment * fix(technology-stack): make architecture image responsive and prevent clipping * fix(technology-stack): constrain all sections to 1440px max-width on desktop * refactor: centralize max-width layout at page level to eliminate duplication - Add SectionLayout wrapper to all technology-stack pages (main, blockchain, networking, storage, messaging) - Move 1440px max-width constraint from individual section components to page-level layout - Remove mx-auto max-w-360/max-w-[1440px] from tech-stack sections and shared components - Reduces code duplication and centralizes layout management * refactor: simplify layout by inlining max-width constraint - Remove SectionLayout function definitions from each page - Use simple div wrapper at page return level - Reduces code duplication and improves maintainability * refactor: revert page-level layout constraint, keep section-level management - Remove max-width wrapper from page returns - Each section maintains full-width background - Section components manage internal 1440px constraint - Preserves visual hierarchy from Figma design * refactor: centralize content width constraints with ContentWidth component - Create ContentWidth component for 1440px max-width constraint - Remove layout-level max-width from main element to allow full-width sections - Apply ContentWidth to all home page sections for consistent layout - Convert absolute positioning to flex/grid layouts in: * Parallel Society (gallery display) * Tech Stack (title and metadata centering) * Feature Cards (3-column grid) * Circles CTA (vertical layout) * Press Section (flex grid) * Social Proof (4-column grid) * Start Building (2-column layout) * About Section (centered closing text) - Implement responsive sizing with Tailwind classes - Update technology-stack page section for proper centering This enables full-width background colors while constraining content to 1440px max-width, improving design system consistency across all pages. * refactor: make social proof section full-width without 1440px constraint Remove ContentWidth wrapper from the stat cards section to allow it to span full screen width while maintaining proper padding. * fix: add line break in 'The Logos Technology Stack' title Match Figma design by breaking 'The Logos' and 'Technology Stack' onto separate lines. * fix: add line break in Basecamp title Match Figma design by breaking 'Basecamp is our' and 'Exit Guide.' onto separate lines. * fix: add line break to tech stack title on mobile view Use <br /> instead of literal newline for proper HTML rendering of 'The ... Technology Stack' title. * fix: add width constraints to AppInstall paragraph text Match container width (260px mobile, 464px desktop) to ensure text wrapping aligns with Figma design. * Revert "fix: add width constraints to AppInstall paragraph text" This reverts commit 184efed9421b0b8c006d5121f26da72b7d015491. * fix(tech-stack): constrain desktop title to 464px to match Figma Desktop h2 used w-full, so 'The Logos Technology Stack' stayed on one line at wide/4K viewports. Figma node 121:6875 sets it to 464px, which wraps it to two lines. Parent is items-center so the fixed width centers. * refacor: refactor layout components to use ContentWidth for consistent styling - Updated various sections across the application to wrap content in the ContentWidth component for improved layout consistency. - Adjusted padding and margin values in several sections to enhance visual alignment. - Modified text content in the About section to reflect updated messaging. - Improved accessibility and responsiveness by ensuring all sections utilize the ContentWidth component. * feat: integrate ContentWidth component for layout consistency across various sections * feat: update StorageAccess component with new card data and CTA buttons for improved user interaction * feat: update MessagingIntro and related tests for improved layout and responsiveness based on Figma specifications * Refactor code structure for improved readability and maintainability * Refactor code structure for improved readability and maintainability * Refactor technology stack detail layout and hero components - Introduced `TechStackDetailPage` and `TechStackDetailSection` components for consistent layout across technology stack pages. - Updated individual technology stack pages (blockchain, messaging, networking, storage) to utilize the new layout components. - Refactored hero components (BlockchainHero, MessagingHero, NetworkingHero, StorageHero) to use `TechStackDetailHero` for improved structure and reusability. - Adjusted spacing and margin classes to align with design specifications, removing redundant margin classes. - Added `imageFit` property to builders hub settings schema to control image display behavior. - Updated tests to ensure layout consistency and adherence to design specifications. * feat: enhance layout and responsiveness of articles and podcasts sections based on Figma specifications * fix: prevent messaging delivery image clipping * feat: update article and podcast layouts for improved responsiveness and alignment with Figma designs * test: remove ui implementation contracts
135 lines
4.4 KiB
TypeScript
135 lines
4.4 KiB
TypeScript
import Image from 'next/image'
|
|
|
|
import { LogosMark } from '@acid-info/logos-ui'
|
|
import type { TechStackOverviewSection } from '@repo/content/schemas'
|
|
|
|
import ContentWidth from '@/components/layout/content-width'
|
|
import { TechStackDiagram } from '@/components/sections/shared/tech-stack-diagram'
|
|
import { Button } from '@/components/ui'
|
|
|
|
function SectionMarker({
|
|
label,
|
|
mark = 'diamond',
|
|
className,
|
|
}: {
|
|
label: string
|
|
mark?: 'diamond' | 'logos'
|
|
className?: string
|
|
}) {
|
|
return (
|
|
<div
|
|
className={`text-mono-s flex items-start gap-[102px] text-brand-dark-green ${className ?? ''}`}
|
|
>
|
|
{mark === 'logos' ? (
|
|
<LogosMark size={9} className="shrink-0" />
|
|
) : (
|
|
<span className="mt-px size-[7px] shrink-0 rotate-45 bg-brand-dark-green" />
|
|
)}
|
|
<span>{label}</span>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
type Props = {
|
|
data: TechStackOverviewSection
|
|
/**
|
|
* Where the networking row links to. Page-level concern (the section
|
|
* fixture covers the four pillars; the networking row is a shared link
|
|
* across pages).
|
|
*/
|
|
networkingHref: string
|
|
/** Where the foundation row links to. Same rationale as `networkingHref`. */
|
|
foundationHref: string
|
|
}
|
|
|
|
export default function TechOverviewStack({
|
|
data,
|
|
networkingHref,
|
|
foundationHref,
|
|
}: Props) {
|
|
return (
|
|
<section id="stack">
|
|
<div className="bg-brand-off-white px-3 pb-[27px] md:pb-[100px]">
|
|
<ContentWidth>
|
|
{data.architecture ? (
|
|
<div className="-mx-3 mb-10 h-[658px] bg-gray-01 px-3 py-3 md:mb-[100px] md:h-[381px]">
|
|
<div className="grid md:grid-cols-2 md:gap-3">
|
|
<div className="relative h-[317px] md:h-[357px]">
|
|
{data.architecture.eyebrow ? (
|
|
<div className="absolute top-0 left-0">
|
|
<SectionMarker
|
|
label={data.architecture.eyebrow}
|
|
mark="logos"
|
|
/>
|
|
</div>
|
|
) : null}
|
|
|
|
<div className="absolute top-[50px] left-0 max-w-[485px] md:top-[77px]">
|
|
<h2 className="text-h4-sans text-brand-dark-green">
|
|
{data.architecture.title}
|
|
</h2>
|
|
<div className="mt-3 flex flex-col gap-3 text-[12px] leading-[1.2] font-medium text-brand-dark-green">
|
|
{data.architecture.body.map((paragraph) => (
|
|
<p key={paragraph}>{paragraph}</p>
|
|
))}
|
|
</div>
|
|
{data.architecture.cta ? (
|
|
<Button
|
|
href={data.architecture.cta.href}
|
|
variant="secondary"
|
|
className="mt-6 cursor-pointer"
|
|
>
|
|
{data.architecture.cta.label}
|
|
</Button>
|
|
) : null}
|
|
</div>
|
|
|
|
<div
|
|
className="absolute top-[304px] left-0 opacity-0 md:top-[344px]"
|
|
aria-hidden="true"
|
|
>
|
|
<SectionMarker label={data.pillars[0].title} />
|
|
</div>
|
|
</div>
|
|
|
|
<div className="relative w-full h-[317px] overflow-hidden rounded-[24px] md:h-[357px] md:rounded-[24px]">
|
|
<div className="absolute top-[-53px] left-0 h-[936px] w-full md:top-[-33px]">
|
|
<Image
|
|
src={data.architecture.image.src}
|
|
alt={data.architecture.image.alt}
|
|
fill
|
|
sizes="702px"
|
|
className="object-cover"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
) : null}
|
|
|
|
<div className="flex flex-col gap-[60px] md:gap-[100px]">
|
|
<div className="grid gap-3 pt-[100px] md:grid-cols-2">
|
|
{data.title ? (
|
|
<h2 className="text-h4-sans md:text-h3-sans text-brand-dark-green">
|
|
{data.title}
|
|
</h2>
|
|
) : null}
|
|
{data.eyebrow ? (
|
|
<p className="text-mono-s w-[226px] text-brand-dark-green">
|
|
{data.eyebrow}
|
|
</p>
|
|
) : null}
|
|
</div>
|
|
|
|
<TechStackDiagram
|
|
data={data}
|
|
networkingHref={networkingHref}
|
|
foundationHref={foundationHref}
|
|
/>
|
|
</div>
|
|
</ContentWidth>
|
|
</div>
|
|
</section>
|
|
)
|
|
}
|