Category

메인 카테고리 탭 아래에서 콘텐츠를 더욱 세분화하여 구분하는 하위 네비게이션 요소입니다. 사용자가 대분류에서 소분류로 자연스럽게 탐색할 수 있도록 돕고, 정보 구조를 명확하게 전달하는 역할을 합니다.

WantedCategory

선택 가능한 Chip 목록을 표시하는 컴포넌트입니다. 문자열 리스트를 기반으로 Chip을 구성하며, 선택 상태를 관리할 수 있습니다.

var selectedList by remember { mutableStateOf(listOf("태그1")) }

WantedCategory(
    itemList = listOf("태그1", "태그2", "태그3"),
    selectedList = selectedList,
    onClick = { item, isSelected ->
        selectedList = if (isSelected) {
            selectedList + item
        } else {
            selectedList - item
        }
    }
)

Parameters

이름타입설명
itemListList<String>표시할 항목 문자열 리스트입니다.
selectedListList<String>선택된 항목 리스트입니다.
modifierModifier컴포넌트에 적용할 Modifier입니다.
disableItemListList<String>비활성화할 항목 리스트입니다.
stateLazyListStateLazyRow의 스크롤 상태를 관리하는 객체입니다.
sizeSize카테고리 항목의 크기입니다.
horizontalPaddingBoolean좌우 여백 적용 여부입니다.
isVerticalPaddingBoolean상하 여백 적용 여부입니다.
variantVariant선택 항목 스타일입니다. Normal 이면 채워진 배경으로, Alternative 면 primary 테두리·옅은 배경으로 표시합니다. 선택 항목 색상은 Normal 에서만 지정할 수 있습니다.
gradientColorColor좌우 그라디언트 배경 색상입니다.
rightIcon(@Composable (Dp) -> Unit)?우측에 표시할 아이콘 슬롯입니다.
onClick(String, Boolean) -> Unit항목 클릭 시 호출되는 콜백입니다. 선택된 항목과 선택 여부를 전달합니다.

Overload

사용자 정의 콘텐츠로 구성할 수 있는 Category 컴포넌트입니다. LazyListScope를 통해 항목을 직접 구성할 수 있으며, 그라디언트 효과와 우측 아이콘을 지원합니다.

WantedCategory {
    items(tagList) { tag ->
        WantedActionChip(
            text = tag,
            onClick = { /* 처리 */ }
        )
    }
}
Parameters
이름타입설명
modifierModifier컴포넌트에 적용할 Modifier입니다.
stateLazyListStateLazyRow의 스크롤 상태를 관리하는 객체입니다.
sizeSize액션칩의 크기 및 여백 설정입니다.
horizontalPaddingBoolean좌우 패딩 적용 여부입니다.
isVerticalPaddingBoolean상하 패딩 적용 여부입니다.
gradientColorColor좌우 그라디언트 색상입니다.
rightIcon(@Composable (Dp) -> Unit)?우측 아이콘 슬롯입니다.
contentLazyListScope.() -> Unit내부 아이템을 구성하는 블록입니다.

[WantedCategoryDefault] 로 표시 스펙(크기·여백·그라디언트 색상)을 지정하는 Category 컴포넌트입니다. LazyListScope를 통해 항목을 직접 구성할 수 있으며, 그라디언트 효과와 우측 아이콘을 지원합니다.

WantedCategory(
    categoryDefault = WantedCategoryDefaults.getDefault(
        size = WantedCategoryDefaults.Size.Large,
        gradientColor = DesignSystemTheme.colors.surfaceElevatedPrimary
    )
) {
    items(tagList) { tag ->
        WantedChip(
            text = tag,
            onClick = { /* 처리 */ }
        )
    }
}
Parameters
이름타입설명
categoryDefaultWantedCategoryDefault크기·여백·그라디언트 색상을 담는 표시 스펙입니다. [WantedCategoryDefaults.getDefault] 로 생성합니다.
modifierModifier컴포넌트에 적용할 Modifier입니다.
stateLazyListStateLazyRow의 스크롤 상태를 관리하는 객체입니다.
rightIcon(@Composable (Dp) -> Unit)?우측 아이콘 슬롯입니다.
contentLazyListScope.() -> Unit내부 아이템을 구성하는 블록입니다.

Advanced

WantedCategoryDefault

WantedCategory 의 표시 스펙을 지정하는 데이터 클래스입니다. 항목 크기·여백과 좌우 그라디언트 색상을 함께 담습니다. 기본값은 [WantedCategoryDefaults.getDefault] 로 생성합니다.

Properties
이름타입설명
sizeSize카테고리 항목의 크기 및 여백입니다.
horizontalPaddingBoolean좌우 여백 적용 여부입니다.
isVerticalPaddingBoolean상하 여백 적용 여부입니다.
gradientColorColor좌우 그라디언트 색상입니다.

WantedCategoryDefaults

카테고리 컴포넌트에서 사용하는 설정 값을 정의하는 객체입니다.

getDefault

WantedCategory 의 기본 표시 스펙을 생성합니다.

WantedCategory(
    categoryDefault = WantedCategoryDefaults.getDefault(
        size = WantedCategoryDefaults.Size.Large,
        gradientColor = DesignSystemTheme.colors.surfaceElevatedPrimary
    )
) {
    items(tagList) { tag -> WantedChip(text = tag) }
}
Parameters
이름타입설명
sizeSize카테고리 항목의 크기 및 여백입니다. 기본값은 Medium 입니다.
horizontalPaddingBoolean좌우 여백 적용 여부입니다. 기본값은 false 입니다.
isVerticalPaddingBoolean상하 여백 적용 여부입니다. 기본값은 false 입니다.
gradientColorColor좌우 그라디언트 색상입니다. 기본값은 backgroundNeutralPrimary 입니다.

Return
타입설명
WantedCategoryDefault표시 스펙 객체를 반환합니다.

Enum

Size

값설명
Small작은 크기의 카테고리 항목입니다.
Medium중간 크기의 카테고리 항목입니다.
Large큰 크기의 카테고리 항목입니다.
XLarge매우 큰 크기의 카테고리 항목입니다.

Sealed Class

Variant

카테고리에서 선택된 항목의 스타일을 정의하는 sealed 클래스입니다. (Figma Category/Resource/Chip Normal · Alternative)

  • Normal: 선택 항목을 채워진 배경으로 표시합니다. 선택 항목 색상을 커스텀할 수 있습니다.
  • Alternative: 선택 항목을 primary 테두리·옅은 배경으로 표시합니다. 색상 커스텀을 제공하지 않습니다.
값설명
Normal선택 항목을 채워진 배경으로 표시합니다. 테두리는 없습니다. 지정하지 않은 색상(Color.Unspecified)은 기본 토큰으로 표시합니다.
Alternative선택 항목을 surfaceBrandPrimary 5% 배경 + surfaceBrandPrimary 43% 테두리로 표시합니다.

getChipDefault

Category 항목 Chip 스타일을 생성합니다. 미선택 상태는 Outlined Chip 기본값과 같고, 선택 상태만 [Variant] 에 따라 칠합니다.

  • Normal 선택: [Variant.Normal] 의 배경·콘텐츠 색, 테두리 없음
  • Normal 선택 + 비활성: surfaceDisablePrimary 배경, 테두리 없음
  • Alternative 선택: surfaceBrandPrimary 5% 배경 + surfaceBrandPrimary 43% 테두리 (Outlined Chip 기본 테두리는 28%)
Return
타입설명
WantedChipDefaultCategory 항목 Chip 스타일을 반환합니다.

© 2026 Wanted Lab, Inc.