Filter button

콘텐츠 필터링을 위한 컴팩트한 선택 컨트롤로, Icon과 Label을 포함하며, 선택 상태에 따라 배경색과 테두리가 변경되어 사용자에게 명확한 시각적 피드백을 제공합니다.

@MainActor struct FilterButton

Overview

이 컴포넌트는 사용자가 항목을 필터링하는 데 사용할 수 있는 탭 가능한 UI 요소입니다. 다양한 크기와 스타일을 지원하며, 활성/비활성 상태를 표시할 수 있습니다.

FilterButton(
    variant: .solid,
    size: .medium,
    text: "카테고리"
)
.expanded(isExpanded)
.backgroundColor(.semantic(.surfaceBrandPrimary))
.fontColor(.semantic(.staticWhite))
.active(true, label: "최신순")

// 비활성화
FilterButton(text: "카테고리")
    .disabled(true)

Note

비활성화는 SwiftUI 표준 disabled(_:)를 사용합니다. 상위 컨테이너에 한 번 걸면 하위 컴포넌트까지 함께 비활성 스타일로 표시됩니다.

Topics

Initializers

init(variant: Variant, size: Size, text: String, handler: (() -> Void)?)

필터 버튼을 초기화합니다.

  • Parameters

    ParameterDescription
    variant버튼의 외관 스타일, 생략하면 기본값으로 .solid 적용
    size버튼의 크기, 생략하면 기본값으로 .medium 적용
    text버튼에 표시할 텍스트
    handler버튼 클릭 시 실행할 핸들러, 생략하면 기본값으로 nil 적용

Instance Properties

var body: some View

뷰의 내용과 동작을 정의합니다.

Instance Methods

func active(Bool, label: String?) -> FilterButton

버튼의 활성화 상태와 레이블을 설정합니다.

  • Parameters

    ParameterDescription
    active활성화 여부
    label활성화 상태일 때 표시할 레이블, 생략하면 기본값으로 nil 적용
  • Return Value

    수정된 버튼 인스턴스

func activeColor(SwiftUI.Color) -> FilterButton

버튼의 활성화 상태 색상을 설정합니다.

  • Parameters

    ParameterDescription
    color활성화 상태일 때의 색상
  • Return Value

    수정된 버튼 인스턴스

func backgroundColor(SwiftUI.Color) -> FilterButton

버튼의 배경색을 설정합니다.

  • Parameters

    ParameterDescription
    color적용할 배경색
  • Return Value

    수정된 버튼 인스턴스

func expanded(Bool) -> FilterButton

드롭다운이 펼쳐진 상태를 설정합니다.

  • Parameters

    ParameterDescription
    expanded펼침 여부, 생략하면 기본값으로 true 적용
  • Return Value

    수정된 버튼 인스턴스

  • Discussion

    펼쳐진 상태에서는 화살표 아이콘이 위쪽을 향합니다.

func fontColor(SwiftUI.Color) -> FilterButton

버튼의 텍스트 색상을 설정합니다.

  • Parameters

    ParameterDescription
    color적용할 텍스트 색상
  • Return Value

    수정된 버튼 인스턴스

func iconColor(SwiftUI.Color) -> FilterButton

아이콘의 색상을 설정합니다.

  • Parameters

    ParameterDescription
    color아이콘에 적용할 색상
  • Return Value

    수정된 버튼 인스턴스

Enumerations

enum Size

버튼의 크기를 정의합니다.

Enumeration Cases

case large

큰 크기

case medium

중간 크기

case small

작은 크기

case xsmall

가장 작은 크기

Initializers

init?(rawValue: String)
enum Variant

버튼의 외관을 결정하는 열거형입니다.

Enumeration Cases

case outlined

테두리만 있는 아웃라인 스타일

case solid

배경색이 있는 실선 스타일

Relationships

Conforms To

Swift.Sendable

SwiftUICore.View

© 2026 Wanted Lab, Inc.