Image
Image (이미지)
Image 컴포넌트는 최소한의 스타일로 img를 감싼 컴포넌트예요. 폴리모픽 컴포넌트이며 선택적으로 fallback 이미지를 지정할 수 있어요.
출처: 문서
본문
Image는 img를 최소한의 스타일로 감싼 wrapper예요. 기본적으로 이미지는 부모 너비의 100%를 차지해요. 이미지 크기는 w와 h style props로 제어할 수 있어요.
import { Image } from '@mantine/core';
function Demo() {
return (
<Image
radius="md"
src="https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-7.png"
/>
);
}
이미지 높이 (Image height)
대부분의 경우 이미지가 로딩될 때 레이아웃이 튀지 않도록 이미지 높이를 설정해야 해요. h style props로 설정할 수 있어요.
import { Image } from '@mantine/core';
function Demo() {
return (
<Image
radius="md"
h={200}
src="https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-10.png"
/>
);
}
이미지 맞춤 (Image fit)
기본적으로 이미지는 object-fit: cover 스타일을 가져요. 부모 요소를 덮도록 크기가 조정돼요. 이 동작을 바꾸려면 w="auto"와 fit="contain" prop을 설정해요.
import { Image } from '@mantine/core';
function Demo() {
return (
<Image
radius="md"
h={200}
w="auto"
fit="contain"
src="https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-9.png"
/>
);
}
Fallback 이미지
이미지 로딩에 실패했을 때 대체 이미지를 표시하려면 fallbackSrc prop을 설정해요.
import { Image } from '@mantine/core';
function Demo() {
return (
<Image
radius="md"
src={null}
h={200}
fallbackSrc="https://placehold.co/600x400?text=Placeholder"
/>
);
}
Next.js Image와 함께 사용하기
Image 컴포넌트는 폴리모픽 컴포넌트라서 component prop으로 루트 요소를 바꿀 수 있어요. next/image 등 유사한 컴포넌트와 함께 사용할 수 있어요.
import NextImage from 'next/image';
import { Image } from '@mantine/core';
import myImage from './my-image.jpg';
function Demo() {
return <Image component={NextImage} src={myImage} alt="My image" />;
}
더 알아보기 (Learn more)
- Card — 이미지를 섹션으로 사용하는 카드 컴포넌트
- style props — 크기 제어 관련 스타일 prop 문서