25 Commits
Author SHA1 Message Date
Jinho Jang 3e36fc9790 Increase small text to 12px (#114)
* fix: increase small text to 12px

* fix: use initiative CTA label

* refactor: use Tailwind text-xs utility

* fix: make homepage banner dismissible

* fix: update Discord links and banner text

* fix: refresh Discord invite links
2026-07-23 20:58:59 +09:00
jinhojang6 47e059a5ce feat: show event card popup on map marker click
Clicking a marker now shows a popup with the soonest upcoming event for
that city (cover image, name, date/time, location) linked to the Luma
event page. Markers with no upcoming event fall back to a placeholder.

- Fetch all upcoming events at build time (EventsSection keeps its 3-item cap)
- Build a city+country lookup in CirclesWorldMap for O(1) event resolution
- Home-page map unaffected (upcomingEvents prop is optional)
2026-06-27 01:22:42 +09:00
jinhojang6 df025284b2 feat(web): add circles map attribution component and integrate into circles map section; update settings and tests 2026-06-19 17:34:59 +09:00
JulesFILIOT 29a171b9c5 feat(circles): redirect /circles to /movement, remove listing page
Replace the circles listing page with a redirect. Remove circles-page.tsx
and update index.ts to export only CircleDetailPageView. The /circles/[slug]
detail pages are kept for future use.
2026-06-04 13:53:11 +09:00
JulesFILIOT b1c2abdfc3 fix(web): require two fingers to pan map on touch
Single-finger drag previously panned the homepage map, trapping page
scroll on mobile. Touch devices now pan/zoom only with two fingers and
show a transient hint when a one-finger drag is attempted.
2026-06-03 21:12:51 +09:00
jinhojang6 65246cde48 feat(movement): unify Circles Resources with /circles (shared component + real resources)
The movement Circles Resources was a hardcoded placeholder. Extract the circles
resources section into a shared CircleResourcesSection and render it on both
pages with the same real resource data and copy.

- Add components/sections/shared/circle-resources-section.tsx (header + whole-row
  resource links) — circles resources-section.tsx now delegates to it (output
  unchanged)
- movement route fetches getCircleResources() and threads resources through
  MovementPageView to its resources section
- movement resources now uses circlesSettings.resourcesSection copy + real rows
  (drops placeholder rows / t(resources.*))

tsc + eslint + 61 tests clean.
2026-06-03 03:38:09 +09:00
jinhojang6 fe5a8dd157 feat(movement): unify Upcoming Events with /circles (shared component + live events)
The movement Upcoming Events was a hardcoded placeholder. Extract the circles
events section into a shared UpcomingEventsSection and render it on both pages
with the same live event data and copy.

- Add components/sections/shared/upcoming-events-section.tsx (date grouping,
  EventCard, header, empty state) — circles events-section.tsx now delegates to
  it (output unchanged)
- movement route fetches getUpcomingCircleEvents() and threads upcomingEvents +
  locale through MovementPageView to the events section
- movement events section now uses circlesSettings.eventsSection copy + real
  events (drops placeholder rows / t(events.*) and unused movementImages.event)

tsc + eslint + 61 tests clean.
2026-06-03 03:20:09 +09:00
jinhojang6 7b2cc12e2c refactor(circles): split page into one-section-per-file modules
520-line circles-page.tsx held every section. Extract each into its own file
under _sections/ (circles-hero, nearby-cta, events-section, initiatives-section,
resources-section) with shared atoms.tsx; circles-page.tsx is now a thin
orchestrator (keeps importing CirclesMap + _helpers). Pure move/extract, no
behavior change. tsc + 61 tests + eslint clean.
2026-06-03 02:40:29 +09:00
jinhojang6 30061bbff6 Refactor spacing and layout across various components for improved consistency and responsiveness
- Updated padding and margin values in multiple sections including About, Builder Portal, Circles CTA, and more to use consistent spacing units.
- Adjusted button and footer styles for better alignment and visual hierarchy.
- Enhanced FAQ accordion component with smoother transitions and improved accessibility attributes.
- Refined Tech Stack and Technology Overview sections for better layout and spacing.
- Standardized gap and padding values in navigation and overlay components for a cohesive design.
2026-06-02 22:21:40 +09:00
jinhojang6 26913b012f feat: add active circles snapshot and sync script; update footer with newsletter form
- Introduced a new JSON snapshot for active circles, including details about events and statistics.
- Added a script to sync the active circles snapshot from the live Logos API.
- Updated package.json to include a new build step for syncing active circles.
- Modified footer component to include an interactive newsletter signup form.
- Adjusted various links in content to point to updated resources and initiatives.
- Enhanced link validation to support same-page anchors.
2026-06-02 22:06:36 +09:00
jinhojang6 92d121d654 refactor: remove CirclesLeafletMap and related components 2026-06-02 21:01:09 +09:00
Jinho Jang ede23c2cc2 Refactor: centralize content width with ContentWidth component + align layouts to Figma (#24)
* 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
2026-05-31 04:06:32 +09:00
Jules 4218e62b6e fix(web): remove sitewide max-w centering causing edge gaps at >1440px
* fix(web): remove max-w centering from technology-stack sections

Sections using px-3 combined with an inner max-w-354 mx-auto container
produced extra centering margins at viewports wider than 1440px. At
1512px the content sat 48px from the edge instead of the intended 12px.

Removed the max-w-354 / mx-auto constraint from all four tech-overview
section inner containers. The -mx-3 negative-margin trick in
tech-overview-stack self-corrects since it expands relative to the now
full-width inner div.

* fix(web): remove max-w centering from home and active-circles sections

Same fix as the tech-stack commit. Also fixes the hardcoded
w-[1416px] left-1/2 -translate-x-1/2 card grid in feature-cards-section
-- replaced with left-3 right-3 so the grid always spans the full content
width. Sections with md:px-0 on the inner container had that removed so
px-3 applies at all breakpoints.

* fix(web): remove max-w centering from circles and app pages

Same fix applied to circles map containers, and to the get-started,
lambda-prize, broadcast-network, podcast, and press hero page sections.
The podcast section also had md:px-0 removed from the section element
since the inner max-w constraint was removed.
2026-05-27 19:22:09 +09:00
Jinho Jang 8151907129 UI updates based on the Figma design (#12)
* fix: update Discord URLs to point to the new logosnetwork link

* fix: update navigation links to point to external resources and improve backdrop click handling

* feat: implement Node Programme signup form and update related page content
2026-05-27 11:57:41 +09:00
jinhojang6 dbdca73925 fix: hide deferred about and circle detail surfaces 2026-05-20 23:48:26 +09:00
jinhojang6 6af1a9c9bc test: add static accessibility navigation smoke 2026-05-18 14:52:33 +09:00
jinhojang6 e319fdc696 feat: publish Logos packages to npm 2026-05-15 20:01:59 +09:00
jinhojang6 9437b0c049 feat: enhance ContentPrSaveButton with status panel dismissal and update lambda-prize page structure 2026-05-13 18:09:32 +09:00
jinhojang6 9ed8a74267 feat: add production sync panel and merge PR functionality
- Implemented a new ProductionSyncPanel component for managing production branch synchronization.
- Added API routes for merging pull requests and syncing production to staging.
- Created services for merging content pull requests and syncing production branches.
- Enhanced RecentPrBanner with merge functionality for pull requests.
- Refactored CirclesMap to use Leaflet for better map handling.
- Updated ESLint configuration to ignore next-env.d.ts.
- Added tests for branch sync decision logic.
2026-05-12 17:52:45 +09:00
jinhojang6 8c7b4e39cf Refactor code for improved readability and consistency
- Updated error messages for clarity in GitHub client and configuration files.
- Reformatted code for better alignment and readability in various files including mutations, loaders, and schemas.
- Enhanced error handling by including causes in error messages where applicable.
- Adjusted function signatures for consistency across loaders and schemas.
- Added missing dependencies in turbo.json for test command.
2026-05-07 12:54:29 +09:00
jinhojang6 3f17318eda feat: add site configuration, metadata generation, and theme initialization scripts 2026-05-07 09:35:58 +09:00
jinhojang6 5e6305a16b feat: refactor circles components by extracting shared helpers for SmartLink and ArrowIcon 2026-05-07 02:45:04 +09:00
jinhojang6 42e490e17e feat: add about page 2026-04-29 21:56:45 +09:00
jinhojang6 de553ac5b2 feat: implement CircleDetailPage and related components for enhanced circle information display 2026-04-28 22:24:54 +09:00
jinhojang6 14189c4743 feat: add Circles collection and related components for enhanced community engagement 2026-04-28 21:07:04 +09:00