핵심 CSS 패턴
글래스모피즘은 본질적으로 4-5개의 CSS 속성으로 구성됩니다:
.glass {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(20px) saturate(1.5);
-webkit-backdrop-filter: blur(20px) saturate(1.5);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 1rem;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
실시간 데모
이 카드는 위의 정확한 CSS를 사용합니다. 그라디언트 배경 위에 떠있는 듯 보입니다.
각 속성 해부
1. 반투명 배경
rgba(255, 255, 255, 0.1) — 10% 불투명도의 흰색. 0.05~0.15 사이가 일반적입니다. 너무 불투명하면 투명도 효과가 사라지고, 너무 투명하면 카드가 거의 보이지 않습니다.
2. backdrop-filter: blur()
핵심 마법 — 카드 뒤의 모든 것을 흐리게 만듭니다. 배경에 패턴이나 그라디언트가 없으면 효과가 보이지 않습니다. 블러 반경 12-30px가 가장 적합합니다.
3. -webkit-backdrop-filter
iOS Safari를 위한 접두사. Apple은 표준화 전에 이 기능을 구현했습니다. 두 속성을 모두 포함하지 않으면 iPhone 사용자가 효과를 보지 못합니다.
4. 미묘한 보더
1px solid rgba(255, 255, 255, 0.2) — 흰색 보더가 글래스 가장자리를 정의합니다. iOS의 글래스 모피즘 핵심 단서. 생략하면 카드가 떠다니지 않고 떠있는 듯한 느낌이 사라집니다.
5. 박스 그림자
선택사항이지만 깊이감을 더합니다. 부드러운 그림자(0 8px 32px rgba(0, 0, 0, 0.1))가 카드를 표면에서 들어올립니다.
일반적인 실수와 해결책
실수 1: 단색 배경 위에서 사용
글래스모피즘은 흥미로운 배경 위에서만 작동합니다. 단색 회색 배경 위에서는 거의 보이지 않습니다. 그라디언트, 패턴, 또는 사진 위에서 사용하세요.
실수 2: 블러 너무 강함
40-50px 블러는 배경을 너무 많이 흐리게 만들어 효과의 매력을 잃게 합니다. 12-25px가 가장 좋습니다.
실수 3: 텍스트 가독성 무시
반투명 배경은 텍스트 대비를 줄입니다. WCAG 4.5:1을 충족하기 위해 그림자나 더 진한 텍스트 색상이 필요할 수 있습니다.
실수 4: 모바일에서 너무 많은 글래스
backdrop-filter는 GPU 비용이 많이 듭니다. 한 화면에 5-10개 이상의 글래스 요소가 있으면 모바일에서 프레임 드롭이 발생합니다.
다크 모드 변형
다크 모드에서는 색상을 반전시킵니다 — 어두운 반투명 배경 + 부드러운 흰색 보더:
.glass-dark {
background: rgba(0, 0, 0, 0.3);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 1rem;
}
중첩된 글래스 (글래스 위에 글래스)
중첩된 글래스 효과는 모달이나 드롭다운에 잘 작동합니다. 외부 글래스보다 내부 글래스의 불투명도를 약간 높이세요:
.glass-outer {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(15px);
}
.glass-outer .glass-inner {
background: rgba(255, 255, 255, 0.1);
/* 추가 backdrop-filter는 필요 없음 — 외부에서 상속 */
}
성능 최적화
- 요소 수 제한 — 한 페이지에 5-10개의 글래스 요소가 모바일 한계입니다.
- 큰 영역 피하기 — 전체 화면 글래스는 GPU에 엄청난 비용이 듭니다. 카드 크기로 유지.
- 블러 반경을 적정하게 유지 — 12-25px가 좋고, 50px+는 비용이 더 들지만 시각적 이득은 적음.
- 프로덕션에서 will-change 추가 —
will-change: backdrop-filter;로 GPU 합성을 힌트하세요. - 스크롤 시 비활성화 — 매우 길거나 복잡한 페이지에서 스크롤 중에 글래스를 비활성화하면 성능이 향상됩니다.
브라우저 지원
- Chrome, Edge, Safari, Firefox (2022+): 완전 지원
- iOS Safari (12+):
-webkit-backdrop-filter만 - 매우 오래된 브라우저:
backdrop-filter폴백 — 단단한 반투명 배경으로 우아하게 저하
자주 묻는 질문
- 글래스모피즘이 모든 디자인에 어울리나요?
- 아닙니다 — 매우 트렌디한 효과입니다. 진지한 비즈니스 사이트, 의료 앱, 정부 서비스에는 적합하지 않을 수 있습니다. 미디어, 음악, 라이프스타일, 게임 사이트에 더 잘 어울립니다.
- backdrop-filter가 작동하지 않는 이유는?
- 세 가지 일반적인 원인: (1) 부모가
overflow: hidden이고 둥근 모서리가 백드롭 영역을 자르고 있음, (2)-webkit-backdrop-filter접두사를 잊음, 또는 (3) 배경이 완전히 불투명해서 백드롭이 보이지 않음. - 글래스모피즘 vs 뉴모피즘?
- 둘 다 2021년경 트렌드. 글래스모피즘은 그라디언트나 사진 위의 반투명 카드. 뉴모피즘은 그림자가 있는 부드러운 음각/양각 표면이 같은 색의 배경에서 떠오릅니다. 글래스모피즘이 더 일반적으로 작동하며 접근성이 더 좋습니다.
- CSS 그라디언트와 함께 작동하나요?
- 완벽하게 — 그라디언트 배경 위에서 글래스모피즘이 가장 잘 보입니다. 우리의 그라디언트 생성기로 그라디언트를 만들고 그 위에 글래스 카드를 만드세요.
- React/Vue 컴포넌트로 만들 수 있나요?
- 물론 — CSS만 사용하기 때문에 모든 컴포넌트 라이브러리에서 작동합니다. styled-components, Emotion, Tailwind 모두에서 동일한 CSS 패턴을 사용하세요.