Skip to content

Card 카드 ​

정보를 집약하는 컨테이너로, 표지, 헤더, 본문, 하단과 로딩 자리 표시를 지원합니다.

기본 사용법 ​

vue
<template>
  <lh-card title="수묵">
    <view>카드 내용</view>
  </lh-card>
</template>

표지와 하단 ​

vue
<template>
  <lh-card title="산수 화첩">
    <template #cover>
      <image class="cover" src="https://placeholder.invalid/cover.png" mode="aspectFill" />
    </template>
    <view>카드 내용</view>
    <template #footer>
      <view>하단 작업</view>
    </template>
  </lh-card>
</template>

표지 내 자식 요소는 너비를 직접 설정해야 함

share의 "표지 자식 요소가 너비를 꽉 채움" 규칙(.lh-card__cover > *)은 WXSS가 지원하지 않는 와일드카드 선택자에 의존하며, 정제 파이프라인이 이를 버립니다. 미니프로그램 측에서는 표지 내의 <image> 등 자식 요소에 너비를 명시적으로 작성하십시오(예: width: 100%).

헤더 오른쪽 작업 영역 ​

extra 슬롯은 제목 오른쪽에 렌더링되며, title 또는 header 슬롯이 있을 때만 나타납니다.

vue
<template>
  <lh-card title="주문">
    <template #extra>
      <lh-button size="small" text>더 보기</lh-button>
    </template>
    <view>카드 내용</view>
  </lh-card>
</template>

그림자와 클릭 가능 ​

vue
<template>
  <lh-card shadow="hover" clickable @click="onClick">
    <view>마우스를 올리면 떠오르고, 클릭하면 이벤트가 트리거됩니다</view>
  </lh-card>
</template>

<script setup lang="ts">
const onClick = () => console.log('카드 클릭')
</script>

로딩 자리 표시 ​

vue
<template>
  <lh-card title="수묵" loading>
    <view>내용 로딩 중에는 렌더링되지 않습니다</view>
  </lh-card>
</template>

Props ​

속성설명타입기본값
title카드 제목(header 슬롯 사용도 가능)string—
shadow그림자 표시 시기'always' | 'hover' | 'never''always'
clickable카드 전체 클릭 가능(button 키보드 시맨틱 담당)booleanfalse
loading로딩 상태: 내용 영역을 스켈레톤 자리 표시로booleanfalse
themeVars컴포넌트 수준 테마 변수(키에 자동으로 --lh- 접두어 추가)Record<string, string>—
bgPattern문양 배경 URL(예: var(--lh-pattern-willow)), 전역 화이트리스트 제한을 받지 않음string—
customClass커스텀 클래스명string—
sx빠른 레이아웃 속성LhSxProps—

Events ​

이벤트설명콜백 매개변수
click카드 전체 클릭(clickable일 때만 트리거)(e: Event)

Slots ​

슬롯설명
cover표지
header헤더(title보다 우선)
extra헤더 오른쪽 작업 영역(헤더 존재에 의존)
default본문 내용
footer하단

키보드 활성화는 H5 전용

clickable한 카드는 H5에서 Enter / Space 키보드 활성화를 지원합니다(APG button 패턴에 정렬); 미니프로그램에는 키보드 이벤트가 없어 이 처리는 조건부 컴파일로 MP 측에서 제거됩니다.