• 검색어를 입력해 주세요.
  • 검색어를 입력해 주세요.
디자인키트 0
블로그 전체목록
화살표

보고계신 기능이 적용된
템플릿이에요!

HTML소스를 구매하시면
전체 소스를 활용하실 수 있어요!

  • 템플릿을 찾지 못했어요!

400여개 디자인

더 많은 템플릿 보기

글래스모피즘(Glassmorphism)이란? CSS로 투명한 유리 효과 구현하기

CSS 26.11.06 조회 40

글래스모피즘(Glassmorphism)이란? CSS로 투명한 유리 효과 구현하기

최근 웹 디자인에서는 투명한 소재와 빛의 반사, 흐릿한 배경을 활용한 인터페이스를 자주 볼 수 있습니다.

이러한 디자인 스타일을 글래스모피즘(Glassmorphism)이라고 합니다.


글래스모피즘은 유리처럼 투명하면서도 반투명한 표면과 블러 효과를 활용해 깊이감과 입체감을 표현하는 디자인 기법입니다.

이번 글에서는 글래스모피즘의 개념과 최근 다시 주목받는 이유를 살펴보고, Figma의 Glass Effect 시안을 CSS로 구현한 실제 사례를 소개하겠습니다.


➰➰➰


✅ 글래스모피즘(Glassmorphism)이란?

글래스모피즘(Glassmorphism)은 Glass(유리)와 Morphism(형태)의 합성어로, 유리의 투명하고 반투명한 질감을 UI 디자인에 적용한 스타일입니다.

✔ 반투명한 배경: 배경의 색상과 이미지가 은은하게 비춰 보이는 효과
✔ 배경 블러: 요소 뒤쪽의 콘텐츠를 흐릿하게 처리하는 효과
✔ 얇고 밝은 테두리: 유리 표면에 빛이 반사되는 듯한 표현
✔ 부드러운 그림자: 배경과 요소 사이에 깊이감을 부여하는 효과
✔ 빛의 그라데이션: 모서리나 테두리에 밝기를 다르게 적용해 입체감 표현
이러한 요소가 결합되면 평면적인 UI에서도 마치 유리 소재가 화면 위에 떠 있는 듯한 느낌을 줄 수 있습니다.


 

✅ 글래스모피즘이 다시 주목받는 이유는?

글래스모피즘은 완전히 새로운 디자인 기법은 아닙니다. 과거부터 운영체제와 웹 인터페이스에서 반투명한 소재와 블러 효과가 활용되어 왔습니다.
하지만 2025년 Apple이 iOS 26, macOS Tahoe 26 등에 새로운 디자인 언어인 Liquid Glass(리퀴드 글래스)를 도입하면서 투명 소재와 빛의 굴절을 활용한 디자인이 다시 주목받기 시작했습니다.

Liquid Glass는 단순히 배경을 흐리게 만드는 것에서 나아가 주변 콘텐츠를 반사하고 굴절시키며, 빛의 움직임과 레이어의 깊이감을 표현합니다.
이러한 변화는 버튼, 탭 바, 사이드바와 같은 인터페이스 요소에도 적용되어 콘텐츠와 UI 사이의 시각적인 위계를 만들어 줍니다.

Figma 역시 Glass Effect 기능을 통해 빛의 방향, 굴절, 깊이, 분산, 서리 효과 등을 세밀하게 조절할 수 있도록 지원하고 있습니다.
즉, 글래스모피즘이 다시 주목받는 이유는 단순한 시각적 유행을 넘어 UI를 구성하는 소재와 레이어 표현이 더욱 정교해지고 있기 때문입니다.

✅ Figma Glass Effect는 어떻게 설정할까?

이번 작업에서는 Figma 시안에 적용된 Glass Effect를 참고해 CSS로 버튼을 구현했습니다.
각 설정값은 유리의 물리적인 특성을 시각적으로 표현하기 위한 값입니다.

설정 항목

적용값 

의미 

Light 

-45° / 80%

빛이 들어오는 방향과 강도

Refraction

80

빛의 굴절 정도

Depth

20

유리 표면의 깊이감

Dispersion

50

빛의 색상 분산 정도

Frost

4

배경이 흐려지는 정도


다만 Figma의 Glass Effect와 CSS는 렌더링 방식이 다르기 때문에 설정값을 그대로 CSS 속성에 대입할 수는 없습니다.

따라서 CSS에서는 배경 투명도, 블러, 그림자, 그라데이션 등을 조합해 유사한 시각적 효과를 구현할 수 있습니다.




✅ CSS로 글래스모피즘 구현하기

CSS에서 글래스모피즘을 구현할 때 핵심적으로 사용하는 속성은 다음과 같습니다.


✨ backdrop-filter

: backdrop-filter는 요소 뒤에 있는 영역에 블러나 색상 필터를 적용하는 CSS 속성입니다.

1
2
3
4
5
.glass {
    background-color: rgba(255, 255, 255, 0.5); /* 배경이 은은하게 비치도록 합니다. */
    backdrop-filter: blur(4px) saturate(120%); /* 배경의 흐림 처리와 채도 조절을 통해 선명하게 보이도록 합니다. */
    -webkit-backdrop-filter: blur(4px) saturate(120%); 
}
cs


✨ box-shadow

: 유리 표면은 빛을 반사하기 때문에 단순한 투명 배경만으로는 입체감이 부족할 수 있습니다.

: 이때 box-shadow를 활용하면 외부 그림자와 내부 하이라이트를 동시에 표현할 수 있습니다.

: inset을 사용하면 그림자가 요소 내부에 적용되므로 유리의 가장자리에서 빛이 반사되는 듯한 효과를 만들 수 있습니다.

1
2
3
4
5
6
.glass {
    box-shadow:
        0 2px 10px rgba(0, 0, 0, 0.08), /* 외부에 부드러운 그림자를 적용해 배경과 분리합니다. */
        inset 0 1px 2px rgba(255, 255, 255, 0.3), /* 상단 내부에 밝은 하이라이트를 추가합니다. */
        inset 0 -1px 2px rgba(255, 255, 255, 0.3); /* 하단에도 은은한 빛을 넣어 유리 표면의 입체감을 표현합니다. */
}
cs


✨ ::before와 radial-gradient로 테두리 구현하기

: 단순한 border 대신 ::before 가상 요소에 여러 개의 그라데이션을 겹쳐 적용해 유리 표면의 빛 반사 효과를 표현했습니다.
: 특히 radial-gradient()를 두 방향에 배치하여 특정 위치에 빛이 집중되도록 만들어 유리 표면 특유의 반사 효과를 표현할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
.glass::before {
    --glow: .9;
    --hd: 48px;
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.2px;
    pointer-events: none;
    background:
        radial-gradient( /* 좌측 상단과 우측 하단에 빛이 맺히는 듯한 하이라이트를 만듭니다. */
            circle calc(var(--hd) * .6)
            at calc(var(--hd) * .15) calc(var(--hd) * .15),
            rgba(255,255,255,var(--glow)) 0,
            rgba(255,255,255,calc(var(--glow) * .5)) 35%,
            rgba(255,255,255,0) 100%
        ),
        radial-gradient( /* 좌측 상단과 우측 하단에 빛이 맺히는 듯한 하이라이트를 만듭니다. */
            circle calc(var(--hd) * .6)
            at calc(100% - var(--hd) * .15)
            calc(100% - var(--hd) * .15),
            rgba(255,255,255,var(--glow)) 0,
            rgba(255,255,255,calc(var(--glow) * .5)) 35%,
            rgba(255,255,255,0) 100%
        ),
        linear-gradient( /* 전체 테두리에 은은한 흰색 광택을 더합니다. */
            rgba(255,255,255,calc(var(--glow) * .1)),
            rgba(255,255,255,calc(var(--glow) * .1))
        );
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    mask-composite: exclude; /* 내부 영역을 제외해 테두리 부분만 보이도록 처리합니다.*/
}
cs




⚠️ 글래스모피즘 구현 시 주의사항

글래스모피즘은 시각적으로 매력적인 효과지만 실제 웹사이트에 적용할 때는 몇 가지 고려할 사항이 있습니다.


1) 텍스트 가독성 확보

배경이 투명하기 때문에 뒤쪽 이미지나 색상에 따라 텍스트의 가독성이 달라질 수 있습니다.

배경 투명도와 텍스트 색상을 적절하게 조절하고, 다양한 배경에서 충분한 대비가 유지되는지 확인해야 합니다.


2) 배경 콘텐츠 확인

backdrop-filter는 뒤쪽 콘텐츠가 있어야 효과가 드러납니다.

단색 배경에서는 블러 효과가 눈에 띄지 않을 수 있으므로 이미지나 그라데이션이 있는 영역에서 테스트하는 것이 좋습니다.


3) 브라우저 호환성 확인

backdrop-filter는 최신 주요 브라우저에서 지원되지만 구형 브라우저나 일부 환경에서는 정상적으로 표시되지 않을 수 있습니다.

필요하다면 @supports를 활용해 지원 여부에 따른 대체 스타일을 제공하는 것이 좋습니다.


4) 과도한 사용 피하기
모든 버튼과 카드에 글래스 효과를 적용하면 오히려 화면이 복잡해질 수 있습니다.
CTA 버튼, 플로팅 메뉴, 내비게이션 등 강조가 필요한 영역에 선택적으로 적용하는 것이 좋습니다.

➰➰➰

글래스모피즘은 단순히 배경을 투명하게 만드는 디자인이 아닙니다.
반투명한 배경, 블러, 빛의 반사, 그림자와 그라데이션을 조합해 UI에 깊이감과 입체감을 부여하는 디자인 기법입니다.
이번 작업에서는 Figma의 Glass Effect 시안을 참고해 CSS의 backdrop-filter, box-shadow, radial-gradient()와 가상 요소를 조합하여 글래스모피즘 버튼을 구현해 보았습니다.
Figma에서 표현한 효과를 CSS로 그대로 옮길 수는 없지만, 각 효과의 원리를 이해하고 적절한 CSS 속성을 조합하면 웹에서도 충분히 유사한 유리 질감을 표현할 수 있습니다.
디자인 시안의 시각적인 완성도를 높이고 싶다면 글래스모피즘을 활용해 보세요!
 
블로그 전체목록
디자인키트 카카오상담