40 Commits
Author SHA1 Message Date
jinhojang6 2771e99d32 refactor: promote reusable home sections into sections/shared
Move the hero and choose-your-path card sections out of sections/home so
pages other than the homepage can compose them, extract the two-line
statement heading, and lift CenterCtaSection out of the Movement page's
private atoms module.

The hero now takes an optional `background` node, defaulting to the same
Logos background video the homepage has always rendered.

Rendered output is unchanged: the homepage's hero, social proof, and
choose-your-path markup and the Movement page body are byte-identical to
develop, and the generated stylesheet loses no rules.
2026-08-10 20:38:46 +09:00
JulesFILIOT 3f730452c5 chore(web): remove get help link on movement page 2026-07-29 13:37:03 +02:00
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 1f8da80d29 fix: route builder ctas to get started 2026-07-09 20:29:25 +09:00
JulesFILIOT fedd8153e3 fix: swap impact building and coalition cards on movement page 2026-07-07 14:38:05 +02:00
Jinho Jang 96be50d8d0 refactor: make @repo/content the single source for home, get-started & movement page copy (#62)
* docs: add page-copy single-source spec and implementation plan

* feat(content): add typed home section schemas and migrate home copy into content

Add 7 bespoke home* section schemas (+ techStack ctas) to the page section
union and populate content/pages/en/home.json with home copy moved verbatim
from messages.

* refactor(web): source home page copy from @repo/content; drop home namespace from messages

Feed every home section from content via findSection/data props (replacing
next-intl getTranslations), remove the home namespace from messages/en.json,
and add a regression guard plus content-based tests. Render output unchanged.

* docs: add get-started/movement page-copy dedup spec and plan

* feat(content): add get-started & movement section schemas and content docs

Move get-started/movement page copy verbatim into content/pages so it is
single-sourced in @repo/content.

* refactor(web): source get-started/movement copy from content; drop those namespaces from messages

Feed both pages from content via findSection/data props (replacing next-intl),
switch them to content-based metadata, delete pages.getStarted/movement from
messages, and add content-based tests + ownership guard. Render unchanged.

* docs: add navbar-pages CMS copy spec and plan

* feat(content): add navbar page section schemas + Pages docs (book, brand-kit, research, node-programme, lambda-prize, manifesto, media, podcast, broadcast, tech-stack explorer)

* refactor(web): source navbar pages copy from content; drop those namespaces from messages

Migrate book, brand-kit, research (incl. rich-text via a tagged-text renderer),
node-programme, lambda-prize, manifesto, media, podcast, logos-broadcast-network,
and the tech-stack explorer to read copy from content via findSection/data props
and content-based metadata; remove the migrated pages.* namespaces from messages;
update guards + contracts. Render output unchanged.

* feat(web): source activist/coalition pages copy from content (CMS title/description)

Migrate activistBuilder, activistLeaderSteward, and coalitionPartner page
metadata from next-intl messages.pages.* into @repo/content PageCopy JSON,
following the established bookCopy pattern.

- Add activistBuilderCopySectionSchema, activistLeaderStewardCopySectionSchema,
  coalitionPartnerCopySectionSchema to packages/content/src/schemas/pages.ts
  and wire them into the pageSectionSchema discriminated union
- Create content/pages/en/activist-builder.json,
  activist-leader-steward.json, coalition-partner.json with verbatim
  title/description/heading values from the old messages namespace
- Switch all three route pages from createTranslatedPageMetadata to
  createPageMetadata(ROUTE), removing the NAMESPACE constant
- Remove activistBuilder, activistLeaderSteward, coalitionPartner from
  apps/web/messages/en.json pages object
- Add schema parse tests, renderToStaticMarkup page tests, messages ownership
  guards, and content-route contract entries for all three pages

* chore(web): remove dead faq (pages.faq + unused FaqSection components)

* fix: remove stale faq links

* fix: pass payload env through turbo build

* fix: preserve lambda prize support labels

* fix: preserve live copy after master rebase

* fix: address page copy review feedback

* refactor: move design guide copy to content

* feat: add schemas for home and page copy sections

- Introduced home section schemas including homeSocialProof, homeChoosePath, homeDecide, homeStartBuilding, homeAbout, homeUseCases, and homeBuilderPortal.
- Added page copy section schemas such as getStartedCopy, movementCopy, bookCopy, designGuideCopy, activistBuilderCopy, activistLeaderStewardCopy, coalitionPartnerCopy, researchCopy, nodeProgrammeCopy, lambdaPrizeCopy, mediaCopy, podcastCopy, broadcastCopy, and manifestoCopy.
- Created shared schema for section keys to maintain consistency across sections.

* chore(web): remove dead pages.faq from messages

* fix: resolve page copy migration conflicts

* fix: source connect form page copy from content

* fix: remove duplicated afform page copy exports

* fix: stop generating afform page copy exports

* fix(cms): require only server actions key

* fix(cms): load env files before build validation

* fix(cms): make env loader available during build

* fix(cms): load next env via require

* test(cms): isolate missing env validation

* feat: add homepage testnet highlight

* fix: restore lambda prize support links
2026-07-06 19:09:02 +09:00
jinhojang6 b60b7159b7 refactor(web): refine movement hero and intro copy/layout
- Drop the hero 'Join a circle'/'Start a new circle' CTAs and the
  'Local action' kicker; the CTAs are already covered by the blocks below.
- Use the single merged hero paragraph and tighten desktop spacing to
  70px (title to body) and 108px (body to the next-section divider).
- Render the intro description at its 456px max-width by widening its grid
  column (cn-merged descriptionClassName) so the line breaks match the design.
- Drop the now-unused movement.hero primaryCta/secondaryCta/kicker keys.
2026-06-27 01:22:42 +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 2b0f817999 fix: adjust padding and spacing in various sections for improved layout 2026-06-22 16:35:44 +09:00
jinhojang6 c40819e8b9 fix: streamline activism section title and remove mobile-specific titles from JSON 2026-06-19 02:25:44 +09:00
jinhojang6 77c46f6009 fix: remove unnecessary padding from sections for improved layout 2026-06-17 01:22:04 +09:00
Jinho Jang a9d3dcdd8a Rebrand blog to Logos Media, refresh copy, and polish stack/hero UI (#43)
* fix(content): update description for storage overview section

* fix(content): update references from "The Logos Blog" to "Logos Media" across multiple files

* feat: Refactor blog section to media section

- Created new components for articles and podcasts under the media section.
- Updated routing constants to replace blog with media.
- Adjusted all references in the codebase from blog to media, including links, buttons, and navigation.
- Implemented new layout and design for articles and podcasts to enhance user experience.
- Updated translations and content references to align with the new media section.

* feat(about): replace h1 with AnimatedHeading component in AboutHero section

* fix: update import paths for PodcastsSection and adjust LambdaBadge properties in multiple components

* fix: adjust hover translation values for desktop stack items
2026-06-11 18:56:03 +09:00
Jinho Jang 707a364fc7 fix(content): update winnable issues and initiative details for movement page (#41) 2026-06-11 00:03:40 +09:00
jinhojang6 af019854c5 fix(movement): make activism cards horizontally scrollable
The fixed-width 440px activism cards sat in an overflow-hidden row, so
between the md breakpoint and ~1360px the third card was clipped with no
way to reach it. Switch the container to overflow-x-auto and add scroll
snapping so the cards scroll into view instead of being hidden.
2026-06-06 14:40:17 +09:00
JulesFILIOT 530d2ced2f fix(movement): update CTA routes in builder and coalition sections
Builder primary CTA -> activist-builder, feature card -> Porto winnable
issue URL. Coalition CTA -> coalition-partner page.
2026-06-04 13:25:58 +09:00
JulesFILIOT d21c0a0079 fix(movement): show map after title on mobile 2026-06-04 13:25:44 +09:00
JulesFILIOT 101dc4af68 feat(movement): add view issue button to activism cards 2026-06-04 13:25:33 +09:00
JulesFILIOT 5573c109c2 feat(movement): make CenterCtaSection cta prop optional 2026-06-04 12:43:02 +09:00
JulesFILIOT a7e813c12c feat(movement): remove CTAs and reduce map section gap
Remove "Submit an issue" from Activism in Action and "Find a circle"
button from the map section; tighten bottom padding above the map.
2026-06-04 12:42:32 +09:00
JulesFILIOT 2133e4537d feat(movement): update campaign section CTA links
"Join an upcoming circle" scrolls to the circles map; "Propose a circle"
links to the activist-leader-steward page.
2026-06-04 12:36:24 +09:00
JulesFILIOT 68f7f28d7a feat(movement): anchor action cards to in-page sections
Activism -> Join an Activist Circle, Coalition -> Join the Coalition,
Impact Building -> Become an Activist Builder.
2026-06-04 12:32:14 +09:00
JulesFILIOT 2dbf491757 feat(movement): anchor hero CTAs to in-page sections
"Join a circle" scrolls to the circles map, "Start a new circle" scrolls
to the Join an Activist Circle section.
2026-06-04 12:19:47 +09:00
jinhojang6 dee44f4131 fix(movement): point "Submit an issue" CTA to the forum meetups category
The Activism in Action "Submit an issue" CTA routed to /circles; link it to
EXTERNAL_URLS.forumMeetups (https://forum.logos.co/c/meetups/6, new tab).
2026-06-03 03:38:58 +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 1e713d6dcd feat(movement): populate Activism in Action cards from circles initiatives
The movement "Activism in Action" cards used i18n placeholders (4 cards, generic
body, not clickable). Drive them from the same circle initiatives as /circles.

- movement route fetches getCircleInitiatives() and threads initiatives through
  MovementPageView to ActivismSection
- ActivismSection renders the 3 featured initiatives (LA / Benin / Lisbon) in the
  existing card design: location, title, and real description (line-clamped to
  fit); each card links to initiative.href (same GitHub winnable-issues anchor as
  /circles, opens in a new tab)
- card background uses the initiative image; removed now-unused movement issue
  images (issueLondon/issuePorto)

tsc + eslint + 61 tests clean.
2026-06-03 03:32:46 +09:00
jinhojang6 55eb3dbf12 fix(movement): correct Propose CTA link and render map once
- "Propose a new circle" now links to the forum meetups category
  (EXTERNAL_URLS.forumMeetups = https://forum.logos.co/c/meetups/6) instead of
  routing to /circles
- The Find-a-Circle map was rendered twice (mobile + desktop variants), which
  left the visible Leaflet instance stuck on "Loading map…". Render a single
  CirclesMap and swap the find-CTA/map order responsively via flex order, so it
  matches the working home/circles map.
2026-06-03 03:26:56 +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 0b8a6a8f15 refactor(movement): split page into one-section-per-file modules
719-line movement-page.tsx held every section. Extract each section into its
own file under _sections/ (hero, action-cards, campaign, activism, events,
get-involved, builder, resources) with shared types.ts + atoms.tsx;
movement-page.tsx is now a thin orchestrator. Pure move/extract, no behavior
change. tsc + 61 tests + eslint clean.
2026-06-03 02:21:50 +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
jinhojang6 5e9d2ca24f refactor: refactor responsive styles across multiple components to improve layout and readability
- Updated hero-section, mountain-section, and parallel-society-section to use min-[1025px] for responsive design.
- Adjusted press-section and social-proof-section for better mobile and desktop handling.
- Enhanced start-building-section and tech-stack-section with new responsive classes.
- Modified use-cases-section to improve scrolling behavior based on breakpoints.
- Refined tech-overview-use-cases and footer components for consistent styling.
2026-06-02 00:19:15 +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
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 d59d4689ec fix: update Logos forum links 2026-05-15 20:38:47 +09:00
jinhojang6 e319fdc696 feat: publish Logos packages to npm 2026-05-15 20:01:59 +09:00
jinhojang6 a96eb1e06d feat: Implement site content management with new collections for site settings, navigation, and footer
- Added new collections for site settings, navigation, and footer with pull request hooks for saving changes.
- Introduced media collection for managing uploaded assets.
- Updated page management to include route validation and JSON schema compliance.
- Refactored existing code to accommodate new site content structure and ensure proper data handling.
- Enhanced link policy tests to prevent shipping of placeholder or broken links.
2026-05-14 20:48:12 +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 d3c59ba948 feat: enhance MovementPage and MovementPageView components with circles data handling and rendering 2026-05-12 17:16:34 +09:00
jinhojang6 25481b219f Refactor code structure for improved readability and maintainability 2026-05-12 16:39:54 +09:00