Shadow

enum Shadow

Topics

Enumerations

enum Level

그림자의 강도를 정의하는 열거형입니다.

  • Overview

    각 레벨은 키 그림자와 앰비언트 그림자의 조합으로 구성되어 있으며, 레벨이 높을수록 더 강하고 넓은 그림자가 적용됩니다.

Enumeration Cases

case large

큰 그림자

case medium

중간 크기 그림자

case none

그림자 없음

case small

작은 그림자

case xlarge

매우 큰 그림자

case xsmall

매우 작은 그림자

Associated Extensions

extension ShapeStyle
func shadow(Shadow.Level) -> some ShapeStyle

디자인 시스템 그림자(앰비언트 + 키)를 analytic drop 그림자로 적용한 ShapeStyle을 반환합니다.

  • Parameters

    ParameterDescription
    level적용할 그림자 레벨
  • Return Value

    그림자가 적용된 ShapeStyle

  • Discussion

    Shape의 fill에 사용하면 그림자가 Shape 지오메트리로부터 직접 그려져 오프스크린 렌더링 패스가 발생하지 않습니다. 그림자를 그릴 표면의 모양을 알 수 있는 경우(카드·버튼·둥근 컨테이너 등)에는 임의 콘텐츠에 적용하는 View.shadow(_:) 대신 이쪽을 사용해 GPU 합성 비용을 줄이세요.

    RoundedRectangle(cornerRadius: 12)
        .fill(SwiftUI.Color.semantic(.surfaceElevatedPrimary).shadow(.medium))
    
extension View
func shadow(Shadow.Level) -> some View

현재 뷰에 그림자를 적용합니다.

  • Parameters

    ParameterDescription
    level적용할 그림자 레벨
  • Return Value

    그림자가 적용된 뷰

  • Discussion

    지정된 레벨의 그림자를 뷰에 적용하여 깊이감을 줍니다. 키 그림자와 앰비언트 그림자가 조합되어 자연스러운 그림자 효과를 만듭니다.

    Important

    이 API는 임의의 콘텐츠에 그림자를 적용하므로, 시스템이 콘텐츠의 실루엣을 알기 위해 오프스크린 렌더링 패스를 발생시킵니다(특히 clipShape/머티리얼과 함께 쓰일 때). 그림자를 그릴 표면의 모양을 알 수 있다면 Shape의 fill에 적용하는 ShapeStyle.shadow(_:) 를 사용해 오프스크린을 피하세요.

    // 권장: Shape fill에 analytic 그림자 (오프스크린 없음)
    RoundedRectangle(cornerRadius: 12)
        .fill(SwiftUI.Color.semantic(.surfaceElevatedPrimary).shadow(.medium))
    
    // 모양을 알 수 없는 임의 콘텐츠에만 사용 (오프스크린 비용 주의)
    someContent
        .shadow(.small)
    

© 2026 Wanted Lab, Inc.