透過SwiftUI Material 實現Glassmorphism

更新於 發佈於 閱讀時間約 8 分鐘

Glassmorphism設計風格,是從2020就開始流行的UI設計趨勢,概念是Glass(玻璃)和 Skeuomorphism(擬物化)的結合,中文稱為毛玻璃效果。


Table of contents

  • Glassmorphism
  • SwiftUI Material
  • Glassmorphism with SwiftUI Material
  • Conclusion


Glassmorphism

Glassmorphism 讓元素看起來像是透明玻璃一樣,同時保留了一些模糊的背景效果,在介面中創造了一種立體感,可以讓介面元素更加引人注目並增加互動性。Glassmorphism特別強調4個特徵:

  • 透明感/Transparency(背景模糊的磨砂效果)
  • 物件於空間漂浮的多層次感 / Multi-layered approach with objects floating in space
  • 強調模糊透明度的鮮明顏色 / Vivid colors to highlight the blurred transparency
  • 於半透明物件上的細微且光亮的邊框 / A subtle, light border on the translucent objects


利用Glassmorphism可以為UI創造了以下兩種體驗效果:

  1. Focal point:添加這些元素將有助於營造深度感視覺體驗。 這將有助於設計師定義空間並創建焦點。
  2. More visible:透明的佈局幫助APP感覺輕量級,並APP的內容更加可見和有吸引力的。


SwiftUI Material

SwiftUI在iOS 15提供了Material的背景模糊造型效果,可以讓我們簡單達到Glassmorphism的視覺效果。適合應用於背景圖片上的文字說明,疊加背景模糊的色塊以突顯文字。

raw-image

上圖的效果使用ultraThinMaterial最輕微模糊的選項,可惜透明度已經是極限,如果可以更通透會更好。Material提供了5個模糊程度參數,由弱到強為:

  • ultraThinMaterial
  • thinMaterial
  • regularMaterial
  • thickMaterial
  • ultraThickMaterial


Glassmorphism with SwiftUI Material

透過Material的API可以實現Glassmorphism的UI效果,以下是透過SwiftUI實踐的基本步驟:

  1. 建立圓角矩形
  2. 前景使用漸層呈現透明度的漸變
  3. 背景使用Material.ultraThin呈現背景模糊效果
  4. 疊加漸層的外框線,呈現玻璃邊緣反射的效果
  5. 建立陰影呈現漂浮感
let gradientSurface = LinearGradient(colors: [.white.opacity(0.1), .clear], startPoint: .topLeading, endPoint: .bottomTrailing)

RoundedRectangle(cornerRadius: 15, style: .continuous)
    .foregroundStyle(gradientSurface)
    .background(.ultraThinMaterial)
    .overlay(
        RoundedRectangle(cornerRadius: 15, style: .circular)
            .stroke(lineWidth: 1.5)
            .foregroundStyle(gradientBorder)
            .opacity(0.8)
    )
    .shadow(color: .black.opacity(0.25), radius: 5, x: 0, y: 8)


下面示範了五種強度在黑色與白色的效果,可以明顯看出到thickMaterial以上程度的背景過於模糊以至於難以看到背景色塊。

黑色背景中的五種模糊等級

黑色背景中的五種模糊等級

白色背景中的五種模糊等級

白色背景中的五種模糊等級


Glassmorphism UI

接下就透過Material來實作Glassmorphism UI卡片,並在背景加上圓形動畫凸顯毛玻璃的效果。

struct CardView: View {

    let gradientSurface = LinearGradient(colors: [.white.opacity(0.1), .clear], startPoint: .topLeading, endPoint: .bottomTrailing)
    let gradientBorder = LinearGradient(colors: [.white.opacity(0.5), .white.opacity(0.0), .white.opacity(0.0), .green.opacity(0.0), .green.opacity(0.5)], startPoint: .topLeading, endPoint: .bottomTrailing)
    
    var body: some View {
        RoundedRectangle(cornerRadius: 15, style: .continuous)
            .foregroundStyle(gradientSurface)
            .background(.ultraThinMaterial)
            .mask( RoundedRectangle(cornerRadius: 15, style: .circular).foregroundColor(.black) )
            .overlay(
                RoundedRectangle(cornerRadius: 15, style: .circular)
                    .stroke(lineWidth: 1.5)
                    .foregroundStyle(gradientBorder)
                    .opacity(0.8)
            )
            .frame(width: 300, height: 180)
            .shadow(color: .black.opacity(0.25), radius: 5, x: 0, y: 8)
    }
}
  1. 創建RoundedRectangle,作為卡片的主要形狀
  2. 使用foregroundStyle套用gradientSurface的漸層,藉以控制模糊效果的層次變化
  3. 使用background增加ultraThinMaterial的背景模糊效果
  4. 由於ultraThinMaterial會超出RoundedRectangle的圓角邊界,使用mask製作遮罩
  5. 使用overlay套上漸層的邊框,實現Highlight效果
Glassmorphism Card UI

Glassmorphism Card UI

善加利用背景的透明度與模糊效果,將可以創造出視覺的層次感和深度,使介面更具現代感和視覺吸引力。


Design Case

oThings提供色彩主題的設定,在Color theme的選單背景,使用Material.ultraThinMaterial作為填滿效果,通透的效果讓使用者可以即時感受顏色主題的設定結果,然而模糊的背景又不會影響介面資訊的閱讀。

oThings Card UI

oThings Card UI



oThings是Kyle獨立設計與開發的APP, 是一款專為您的生活記憶而設的記憶保存應用程式,讓您專注於記錄珍愛的事物。以SwiftUI介面框架開發,結合設計的創意與程式的創新所創造的混合體驗設計,呈現高質感的動畫轉場與絲滑的互動效果,打造具品牌辨識度的使用體驗。歡迎有興趣的您下載體驗。


Conclusion

在實務設計上應用Glassmorphism,並不代表要整體APP都是毛玻璃的風格,是可以作為局部或者是個別介面元件的簡化應用,讓整體介面呈現一種通透感但資訊又不會背景干擾。透過SwiftUI的Material,讓滿足此介面設計目的之實踐變得相當容易。



留言
avatar-img
留言分享你的想法!
avatar-img
Kyle Lei
3會員
8內容數
在這瞬息萬變的世界中,讓設計師們以混合成長思維的視角思考自身的職涯規劃,以混合體驗設計的觀點思考使用者體驗設計。
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
視覺層級並不侷限於平面設計,在用戶體驗及介面上更是一個重要的核心之一。視覺層級除了讓畫面的視覺編排更加精緻好看,更重要的功能是能讓畫面有效地被組織,讓觀者更容易理解。
Thumbnail
視覺層級並不侷限於平面設計,在用戶體驗及介面上更是一個重要的核心之一。視覺層級除了讓畫面的視覺編排更加精緻好看,更重要的功能是能讓畫面有效地被組織,讓觀者更容易理解。
Thumbnail
本文探討2024年UI/UX設計趨勢,包括深色模式和色彩適應性、微互動和動畫、3D元素與虛擬現實整合,以及以用戶為中心的數據驅動設計、無障礙設計和情感設計的新方法。
Thumbnail
本文探討2024年UI/UX設計趨勢,包括深色模式和色彩適應性、微互動和動畫、3D元素與虛擬現實整合,以及以用戶為中心的數據驅動設計、無障礙設計和情感設計的新方法。
Thumbnail
隨著科技的發展,數位設計領域也日益進步,其中「透明度平面化」成為了設計師在處理完稿檔案時必須面對的一大挑戰。在這篇文章中,我們將一探究竟,揭開透明度平面化的神秘面紗,並探討它在當代設計中的重要性,以及如何巧妙應對可能遇到的問題。 透明度平面化 在數位設計的豐富世界裡,透明效果提供了無限的創意
Thumbnail
隨著科技的發展,數位設計領域也日益進步,其中「透明度平面化」成為了設計師在處理完稿檔案時必須面對的一大挑戰。在這篇文章中,我們將一探究竟,揭開透明度平面化的神秘面紗,並探討它在當代設計中的重要性,以及如何巧妙應對可能遇到的問題。 透明度平面化 在數位設計的豐富世界裡,透明效果提供了無限的創意
Thumbnail
▪︎咒語描述: 建立包含具有各種紋理(例如啞光、玻璃和半透明表面)的物件集合的圖像。 包括光滑的啞光綠色拱門、有光澤的黃色圓柱體、具有光折射效果的透明棱鏡,並將這些物體放置在柔焦背景下的啞光紫色彎曲支架上,以模擬所提供圖像中存在的紋理。 ▪︎工具:Copilot 啞光=霧面=matte 玻
Thumbnail
▪︎咒語描述: 建立包含具有各種紋理(例如啞光、玻璃和半透明表面)的物件集合的圖像。 包括光滑的啞光綠色拱門、有光澤的黃色圓柱體、具有光折射效果的透明棱鏡,並將這些物體放置在柔焦背景下的啞光紫色彎曲支架上,以模擬所提供圖像中存在的紋理。 ▪︎工具:Copilot 啞光=霧面=matte 玻
Thumbnail
其他特殊材質調整 Particles Q:大家有沒有發現剛剛葉子是一面有顏色一面透明? A:Unity的渲染只有單面,超奇怪ㄉ啦,他軟體預設就是單面,要改成雙面也行,但會造成電腦負擔,所以只需在想要雙面渲染的物體上賦予即可,不用整個專案都給它。 單面渲染的情形 材質球著色器定義 Sh
Thumbnail
其他特殊材質調整 Particles Q:大家有沒有發現剛剛葉子是一面有顏色一面透明? A:Unity的渲染只有單面,超奇怪ㄉ啦,他軟體預設就是單面,要改成雙面也行,但會造成電腦負擔,所以只需在想要雙面渲染的物體上賦予即可,不用整個專案都給它。 單面渲染的情形 材質球著色器定義 Sh
Thumbnail
材質和貼圖在遊戲開發中扮演著極為重要的角色,其決定了遊戲物件的外觀和表現。 材質(Material)在Unity中定義物體外觀和視覺特性的屬性集合。 包含了物體的顏色、光澤度、透明度、反射率等信息,可以透過調整這些屬性來改變物體在遊戲中的表現形式。舉例來說,可以創建金屬、塑料、木材等不同材質類型
Thumbnail
材質和貼圖在遊戲開發中扮演著極為重要的角色,其決定了遊戲物件的外觀和表現。 材質(Material)在Unity中定義物體外觀和視覺特性的屬性集合。 包含了物體的顏色、光澤度、透明度、反射率等信息,可以透過調整這些屬性來改變物體在遊戲中的表現形式。舉例來說,可以創建金屬、塑料、木材等不同材質類型
Thumbnail
UI設計是一個令人著迷的過程,它將設計概念轉化為最終的產品界面。本文將帶您深入瞭解UI設計的六個階段,包括Sketching、Wireframing、Component Design、使用者流程、模型設計和原型製作,以幫助您更好地理解每個階段的作用和重要性。
Thumbnail
UI設計是一個令人著迷的過程,它將設計概念轉化為最終的產品界面。本文將帶您深入瞭解UI設計的六個階段,包括Sketching、Wireframing、Component Design、使用者流程、模型設計和原型製作,以幫助您更好地理解每個階段的作用和重要性。
Thumbnail
這篇要搭建製作透明背景素材的工作流。
Thumbnail
這篇要搭建製作透明背景素材的工作流。
Thumbnail
Figma - 探討UI設計中的細節工作 最近時間空了出來,也能投入時間來練習UI的質感,發現在細微的地方下功夫,能夠讓整個畫面更加精緻,就拿我這次練習之一的微玻璃設計風格來說吧。
Thumbnail
Figma - 探討UI設計中的細節工作 最近時間空了出來,也能投入時間來練習UI的質感,發現在細微的地方下功夫,能夠讓整個畫面更加精緻,就拿我這次練習之一的微玻璃設計風格來說吧。
Thumbnail
前言 在第二篇文章中,我們更明確的瞭解空間性設計的眼、手操作搭配,接下來本文章進入到UI介面的設計解析,本篇將詳細介紹空間性設計中的使用者介面核心原則。 Design spatial user interfaces 本篇將首先討論如何設計清晰易讀的App icon,以及設計時要考慮的UI基礎和設計原
Thumbnail
前言 在第二篇文章中,我們更明確的瞭解空間性設計的眼、手操作搭配,接下來本文章進入到UI介面的設計解析,本篇將詳細介紹空間性設計中的使用者介面核心原則。 Design spatial user interfaces 本篇將首先討論如何設計清晰易讀的App icon,以及設計時要考慮的UI基礎和設計原
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News