테마 재구성의 두 번째 이터레이션을 출시했습니다. 첫 번째 업데이트는 이전 Meta Branded 테마 위에 구축된 시각적 리프레시였다면, 이번 버전은 본질적으로 처음부터 다시 구축된 새로운 테마입니다. 새로운 브랜드 언어는 이전 릴리스에서 이미 도입되었기 때문에, 그 부분에서는 눈에 띄는 변화가 많지 않습니다. 이번 업데이트에서 크게 달라진 것은 테마 구현 자체이며, 이는 Discourse 커스터마이징의 더 넓은 방향성에 대해 우리가 어디로 향하고 있는지를 보여줍니다.
작은 항목부터 시작하여 몇 가지 구현 세부 사항을 살펴보겠습니다:
Lucide 아이콘
Lucide는 오픈소스 모던 스트로크 아이콘 세트로, 우리는 여러 커스터마이징 프로젝트에서 이를 도입하고 있습니다. 이번 이터레이션에서는 Meta Branded 테마에도 이를 포함시켰습니다. Discourse 코어에서 Font Awesome을 대체할 계획은 없지만, Font Awesome의 무료 티어는 스트로크 스타일 아이콘의 선택지가 제한적이라 일관된 스트로크 아이콘 시스템을 형성하기에 충분하지 않습니다. 테마 컴포넌트는 Discourse Lucide Icons에서 사용할 수 있습니다.
색상 팔레트를 제한하는 테마 수정자
특정 테마에서 어떤 색상 팔레트가 사용 가능한지를 제한하는 새로운 only_theme_color_schemes 테마 수정자를 추가했습니다. 이는 관리자뿐 아니라 사용자의 인터페이스 설정에서도 적용됩니다. Meta에는 Meta Branded 테마의 시각적 아이덴티티와 충돌할 수 있는 여러 사용자 선택형 팔레트가 있습니다. 이 수정자를 사용하면 테마에 번들로 포함된 팔레트만 옵션으로 제공됩니다.
PR: FEATURE: add modifier to restrict theme color schemes
전체 너비 레이아웃
페이지의 메인 콘텐츠를 더 잘 중앙 정렬하기 위해 Discourse Full-width 컴포넌트에 대한 몇 가지 조정도 시도하고 있습니다. 헤더에는 설정을 복잡하게 만드는 동적 요소가 많아, 현재까지는 실험 단계이며 컴포넌트의 브랜치에서만 사용할 수 있습니다.
Welcome Banner 표시를 제어하는 값 변환기
새로운 welcome-banner-display-for-route 값 변환기를 사용하여 코어 Welcome Banner가 어떤 라우트에서 표시되는지를 프로그래매틱하게 제어했습니다. 이를 통해 배너가 사용자의 개인 랜딩 페이지로 설정된 페이지가 아닌 기본 커스텀 홈 페이지에서만 표시되도록 보장합니다.
PR: DEV: Add welcome-banner-display-for-route value transformer
이로써 두 가지 더 큰 변경 사항으로 넘어가겠습니다:
테마 수정자를 통한 커스텀 홈 페이지
custom_homepage 테마 수정자는 거의 2년 동안 사용 가능했지만, Meta 자체에서 홈 페이지 경험을 형성하기 위해 이를 사용하는 것은 이번이 처음입니다. 우리는 피처드 컴포넌트로 채워진 커스텀 랜딩 페이지를 도입하고 있습니다. 초기 출시에는 하이라이트된 피처드 카테고리 및 최신 토론 주제 미리보기가 포함됩니다.
이러한 피처드 컴포넌트는 우리의 새로운 실험적 Blocks API를 사용하여 구축했으며, 이는 가장 큰 변경 사항으로 이어집니다:
Blocks API: 첫 번째 프로덕션 사용
Blocks API는 Discourse에서 모듈형이고 구성 가능한 레이아웃을 구축하기 위한 새로운 프레임워크입니다. 테마 개발자가 정의된 레이아웃 영역에 배치할 수 있는 자체 포함, 재사용 가능한 컴포넌트로 페이지를 조립할 수 있게 해줍니다. Meta 테마는 그 첫 번째 프로덕션 배포입니다.
이 프레임워크는 풍부한 개발자 도구를 갖추고 있습니다: 개발자 도구를 활성화하면 내장 오버레이를 사용하여 모든 활성 레이아웃 영역과 그 컴포넌트를 시각화하며, 모든 페이지의 블록 구조를 검사할 수 있습니다.
홈 페이지 외에도, 우리는 각 카테고리의 하위 카테고리를 표시하는 커스텀 카테고리 배너를 렌더링하기 위해 블록을 사용하고 있습니다:
이것은 아직 프로덕션 환경에서의 시스템 초기 프리뷰입니다. 우리는 곧 문서와 더 많은 예시를 게시할 계획입니다.
PR: DEV: Add Block API for declarative, validated UI extension points

















