Appearance
Safe Area 여백 값 구하기
모바일 브라우저에서는 상태바나 홈 인디케이터 같은 시스템 UI 때문에 콘텐츠가 가려질 때가 있어요. getSafeAreaInsets
함수는 시스템 UI가 콘텐츠를 가리지 않도록 화면의 안전 영역(Safe Area) 여백 값을 픽셀 단위로 계산해줘요.
특히 iPhone X 이상의 기기나 일부 Android 기기에서는 전체 화면을 사용하는 웹 앱에서 시스템 UI가 콘텐츠를 가리는 문제가 자주 발생해요. 다음과 같이 getSafeAreaInsets
를 사용하면 콘텐츠가 안전하게 보이도록 여백을 조절할 수 있어요.
ts
import { getSafeAreaInsets } from "@apps-in-toss/web-framework";
const insets = getSafeAreaInsets();
// 예시 반환값: { top: 44, bottom: 34 }
반환되는 객체는 다음 속성을 포함해요.
top
: 상단 상태바에 가리지 않도록 확보해야 하는 여백이에요.bottom
: 하단 홈 인디케이터에 가리지 않도록 확보해야 하는 여백이에요.
이 값은 모바일 웹 앱에서 전체 화면(viewport
)에 맞춰 UI를 만들 때 자주 사용돼요. 예를 들어, 하단 고정 버튼에 여백을 주거나 상단 헤더가 상태바에 겹치지 않도록 만들 수 있어요.
하단 여백 적용 예시
하단 고정 버튼이 홈 인디케이터에 겹치지 않도록 여백을 주는 예시예요.
tsx
import { getSafeAreaInsets } from "@apps-in-toss/web-framework";
const insets = getSafeAreaInsets();
const Button = () => {
return (
<div style={{ paddingBottom: `${insets.bottom}px` }}>
<button>확인</button>
</div>
);
};
상단 여백 적용 예시
상단 고정 헤더가 상태바에 겹치지 않도록 여백을 주는 예시예요.
tsx
import { getSafeAreaInsets } from "@apps-in-toss/web-framework";
const insets = getSafeAreaInsets();
const Header = () => {
return (
<div style={{ paddingTop: `${insets.top}px` }}>
<h1>제목</h1>
</div>
);
};