현록

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

안녕하세요. 오늘은 CSS로 글래스모피즘 디자인을 구현하는 법을 알아보겠습니다.

개인적으로 애플의 디자인 스타일을 좋아해서

좋은 레퍼런스 소재로 구경을 하는데,
오늘 문득 궁금해진 것이 CSS로 어떻게 글래스모피즘을 구현했느냐였습니다.

ex_screenshot

개발자 도구를 열어 몇 개 DOM을 지우고 스타일을 구경해보니, 생각보다 쉬워서 놀랐습니다.

한번 예제를 통해 직접 구현해봅시다.

1. 직접해보기

콘텐츠가 있는 웹 페이지에서 상단 네비게이션 바를 만들고 (positionfixed)

아래 처럼 스타일을 부여해줍니다.

.glass {
  position: fixed;
  top: 0;
  left: 0;

  width: 100%;
  height: 20vh;

  background-color: rgba($color: #ffffff, $alpha: 0.72);
  backdrop-filter: blur(20px);

  border-bottom: 1px solid #999;
}

스타일을 부여해줬다면, 적용된 페이지에서 확인해봅시다.

ex_screenshot

그럼, 위처럼 적용된 모습을 볼 수 있습니다.

이번에 구현을 하면서 backdrop-filter라는 새로운 CSS property를 알게 되었는데요.
궁금해서 MDN을 찾아보니 FireFox나 IE를 제외하고는 최신 버전 브라우저에서 모두 지원된다고 합니다.

글래스모피즘을 좋아하는 저는 앞으로 자주 사용하게 될 것 같습니다.

관련 포스트
CSS 가상 클래스와 가상 요소 차이 thumbnail
CSS 가상 클래스와 가상 요소 차이
CSS 가상 클래스와 가상 요소의 선택 대상, 콜론 문법, 상태와 생성 콘텐츠 예제, 접근성 주의점을 정리합니다.
CSS px em rem 차이 thumbnail
CSS px em rem 차이
CSS px, em, rem의 기준값과 중첩 계산 방식, 글꼴 크기와 컴포넌트 간격에 단위를 선택하는 기준을 정리합니다.
CSS display none과 visibility hidden 차이 thumbnail
CSS display none과 visibility hidden 차이
CSS display none과 visibility hidden의 차이를 레이아웃 공간, 포커스, 접근성, 자식 요소, opacity와의 차이로 정리합니다.
CSS position sticky와 fixed 차이 thumbnail
CSS position sticky와 fixed 차이
CSS position sticky와 fixed의 차이를 스크롤 기준, 문서 흐름, 부모 영역, top과 overflow, 고정 헤더 구현 기준으로 정리합니다.
CSS box-sizing content-box와 border-box 차이 thumbnail
CSS box-sizing content-box와 border-box 차이
CSS box-sizing의 content-box와 border-box 차이를 width 계산식, padding과 border, width 100% overflow, 전역 설정 방법으로 정리합니다.
CSS flex justify-content와 align-items 차이 thumbnail
CSS flex justify-content와 align-items 차이
CSS flex의 justify-content와 align-items 차이를 주축과 교차축, flex-direction, 가운데 정렬, 적용되지 않는 원인을 중심으로 정리합니다.
CSS margin과 padding 차이 thumbnail
CSS margin과 padding 차이
CSS margin과 padding의 차이를 박스 모델, 배경색과 클릭 영역, 전체 크기, margin collapsing, 축약형 작성 순서로 정리합니다.
CSS display block inline inline-block 차이 thumbnail
CSS display block inline inline-block 차이
CSS display의 block, inline, inline-block 차이를 줄바꿈, width와 height, margin 동작, 버튼과 태그 UI 선택 기준으로 정리합니다.
CSS position relative와 absolute 차이 thumbnail
CSS position relative와 absolute 차이
CSS position의 기본값, relative와 absolute의 배치 기준, normal flow 유지 여부, containing block, 부모에 position relative를 주는 이유를 초보자 기준으로 정리합니다.
CSS Flexbox와 Grid 차이 thumbnail
CSS Flexbox와 Grid 차이
CSS Flexbox와 Grid의 차이를 1차원과 2차원이라는 기준으로 정리합니다. 줄 바꿈된 Flexbox가 여전히 1차원인 이유와 목록, 카드, 혼합 레이아웃의 선택 기준도 함께 살펴봅니다.