Object Style
Object Style

Object Style

Object Style

Object Style 是組成各種 components 的不同零件樣式,部分樣式使用 semantic color 在 core tokens 的定義,例如 Border、Separator。

Rounding

圓角

Rounding 會被應用於方形或是矩形當中,其中圓角方形多呈現音樂/Podcast 內容;圓角矩形則用在影片/文章類型的介面。

Rounding Item / Device
Large Rounding
Medium Rounding (Default)
Small Rounding
Mini Rounding
Full Rounding
Mobile App iOS
16px
8px
4px
2px
100px
Mobile App Android
16px
8px
4px
2px
100px
Universal
-
15px
4px
-
物件高度的一半

Mobile App

Mobile App 有詳細定義三種層級的 Rounding,依據不同 Components 應用。

image

(1)Large Rounding

應用範圍:

Dialog

Action Sheet

image

(2)Medium Rounding(Default)

應用範圍:

通知大/中/小卡(上至下排列)

歌單小卡

List Item - 大圖

image

(3)Small Rounding

應用範圍:

Tag

List Item - 小圖

image

(4)Mini Rounding

Mini Rounding 2px 屬於特殊應用,使用於非元件當中。

應用範圍:

部分 icon 的 rounding style,例如:Hi-Fi / Hi-Res 無損音質、其他音質、分級制度

💡
目前實作為提供圖片渲染。
image

(5)Full Rounding

應用範圍:

Button,例如:Pill 全圓角膠囊案件、Block 全撐滿按鍵

💡
因應按鈕使用 Dynamic Text Style,會將高度撐高,圓角參數也會浮動改變,在 figma 檔案中以 100px 參數作為固定極大值,保持全圓角的設定。
🛠
Full Rounding 實作規範
  • iOS :理論上,半圓圓角是按鈕高度的一半,每次需看按鈕本身的高度決定參數。
  • Android :對齊 Figma 規格,設定 Corner radius,但可以針對四個角的半徑個別設定。
image
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:state_pressed="true">
		<shape android:shape="rectangle">
			<stroke android:width="1dp" android:color="@color/kkbox_stdblue_hc_80"/>
			<solid android:color="@color/login_button_background"/>
			<corners android:radius="180dp"/>
		</shape>
	</item>
	<item>
		<shape android:shape="rectangle">
			<stroke android:width="1dp" android:color="@color/kkbox_stdblue_hc_60"/>
			<solid android:color="@color/login_button_background"/>
			<corners android:radius="180dp"/>
		</shape>
	</item>
</selector>
Android xml 套用於元件,參考corners 行

Universal

Universal 圓角應用於元件及物件,其中卡片圓角目前為 15px(5 的倍數),未來會逐步調整 4 的倍數。

(1)Full Rounding

應用範圍:Button、Input Field、輸入框:Search Bar、Action Bar、Download Queue。

(2)4 倍數的 Rounding

應用範圍:Dialog、Toast、Tooltip。

(3)5 倍數的 Rounding

目前多用於 Cards 以及部分物件當中,因應用廣泛,將不顯示所有圖示舉例,僅以一張分類代表圖,更多應用詳情可參考連結。

應用範圍:

MIH:Jumbo、Runway、Playlist / Podcast、文章、影音內容、排行榜、Listen with 速爆音樂台

Listen With:一起聽節目、名人台長 / 熱門台長、個人頁一起聽

參考 [規範] Universal Components / Cards
image

Website

Rounding 以 4 的倍數為主,由於 Website 涵蓋桌機到手機的裝置尺寸,為確保大 / 小螢幕看得出 Rounding 效果,數值範圍通常較大,其中常用數值為 12px、8px。

(1)4 倍數 Rounding

應用範圍 1:

官方功能等宣傳頁面使用的卡片,例如:首頁特色卡片、付費中心方案卡片、支援服務裝置卡片等。

  • 8px,例如:FAQ。
  • 12px,例如:首頁特色卡片、支援服務裝置卡片。
  • 16px,例如:付費方案卡片。
image

應用範圍 2:

功能用途、需要展示多資訊頁面的卡片,例如 4more 的歌單、專輯、文章卡片。

  • 4px,使用於小型圖片,寬度 60px 以下,例如:4more(歌手/專輯/歌單/歌曲) List 。
  • 8px,使用於大型圖片,寬度 61px 以上,例如:4more(歌手/專輯/歌單/歌曲)的專輯/歌單圖。
image
image

(2)Full Rounding

應用範圍:Button。在 figma 檔案中以 100px 參數作為固定極大值,保持全圓角的設定。

Border

物件框線

預設的物件框線,使用於不需特別凸顯的物件,通常物件無填充色。

Object Border 物件框線

使用於 AD Banner,例如:品牌歌單頁的封面下方(行銷露出),但無論新、舊設計,目前較少使用線框設計。

image

Image Border 圖片框線

圖片內框線設計,為了避免於圖像為白 / 黑時,在 Light / Dark Mode 上分不出圖像範圍,通常使用於列表專輯、專輯 / 歌單、藝人、文章卡片。

Border
Width
Alpha
Mobile App (Small)
Inside/Inner
0.5
0.1
Mobile App (Large)
Inside/Inner
1
0.1
Universal
Inside/Inner
1
0.1
Website
Inside/Inner
1
0.1

Mobile App

image
參考 [規範] iOS/Android Components v2 🚧/Image Border 參考 border 的 semantic color 定義

Universal

應用範圍:List Item Image (Album、Podcast Cover)、Artist (ListenWith Card)

image
參考 [規範] Universal Components / Cards

Website

應用範圍:Artist 藝人頭像、Playlist Cards、Album Cards、Article Cards

image
參考 [規範] Official Web Components 🚧 / Cards

Button Border 按鈕框線

Border
Mobile App
1px
Universal
1px
Website
1px
image

Separator

分隔線

預設的物件分隔線,通常用於區隔列表或物件區塊。

General Offset
Input Field Offset
Mobile App
0.5 / 1 px
1 px
Universal
1 px
2 px
Website
-
-

Mobile App

General

應用範圍:Action Sheet、List(Large Screen)

image

Input Field 輸入框

應用範圍:情境懶人包、我都聽什麼

參考 [改版]資產/個人/藝人頁2022_APP
image

Universal

General

應用範圍:

迷你播放器

Action Bar

SideMenu

Dropdown Menu

image

Input Field 輸入框

應用範圍:資產 / 編輯個人檔案

image

Shadow

陰影

Shadow 屬於 effect 特殊效果的樣式之一。

Effect
Blur
Offset
rgba
Elevation(z-axis)
App iOS
Drop Shadow
6
0pt, 1pt
0.0, 0.0, 0.0, 0.1
-
App Android
Drop Shadow
-
-
-
4dp
Universal Card
Drop shadow 1/ Drop shadow 2
36/ 12
0pt, 12pt/ 0pt, 6pt
0.0, 0.0, 0.0, 0.12/ 0.0, 0.0, 0.0, 0.04
-
Website (比照 Universal Card)
Drop shadow 1/ Drop shadow 2
4dp
0pt, 12pt/ 0pt, 6pt
0.0, 0.0, 0.0, 0.12/ 0.0, 0.0, 0.0, 0.04
-

Card Shadow 卡片陰影

Mobile App

  • 大 / 小螢幕使用相同陰影效果。
  • 主要用於一般的包框卡片,例如:Podcast 單集。
  • iOS 和 Android 因系統渲染效果和寫法不同,所以實際呈現的效果不同。
參考 [規範] iOS/Android Components v2 🚧
image
⚠️
Android 僅能定義 Elevation( Z 軸位置),等同於物件距離螢幕的距離。距離越遠,則陰影範圍越大。 Y 軸會跟隨螢幕滑動上下偏移,所以無法自定義 Y 軸。

無法自訂陰影透明度或顏色。

開發者文件 Android Developers, Material
⚠️
開發實作時,物件寬度會自動包含陰影範圍,請注意需扣除陰影範圍計算間距

Universal

自定義 Universal Card Shadow

應用於 Action Bar、卡片,例如:MIH、Podcast,以及彈窗、Dropdown menu。

image
參考 [規範] Universal Components / Shadow
⚠️
程式端目前使用 shadow-card: 0 3px 12px 3px rgba(0,0,0,.1); 之設定

Background Blur

背景模糊

背景模糊(Background Blur)僅使用於物件的背景,而不是物件本身。使用背景模糊效果可以達到三種用途:(1)突顯前景物件成為焦點,集中使用者的注意力、(2)覆蓋在模糊背景上的文本,可增加易讀性、(3)作為裝飾性效果。參考

Mobile App

主要用於 Now Playing、Now Playing Bar、歌單頁、藝人頁。

BgColor
BgColor
Blur
App iOS
-
-
分作 2 種實作方式
App Android
-
-
分作 3 種實作方式
Universal
image
-
blur(30px)
Website - NowPlayingBar/ Header
Gray90
0.95
10px
🔖
開發歷史背景補充:Sketch 與 Figma 皆沒有 UI Spec 或完整 mockup 可參考。Sketch 開發時期,blur 數值無法直接和雙平台程式對應,同時雙平台的 blur 算法也不同,因此 RD 實作後,設計師再比對設計稿,詢問 RD 如何下數值,再確認是否微調效果。

iOS 實作

方法與排序
名稱
實作描述
應用於
1. 舊原生元件
UIVisualEffectView
・無需使用原圖,直接在圖的上面加一層模糊的效果層 ・套用官方定義的 Additional style darkStyle總表 ) ・不與 figma 參數對齊(?)
・藝人頁 ・Podcast Now Playing Page ・Action Sheet
2. 客製
手刻
・將原圖客製 blur 後,再放到背景 ・各頁面參數不同,參考下方 客製 Blur 參數 表格
・音樂 Now Playing Page ・Now Playing Bar ・歌單頁背景
3. 新原生元件
SwiftUI 與 部分手刻調整
・SwiftUI blur,僅可調整 radius 一個數值 ・直接將 blur 色塊加在圖片或動畫上 ・如有透明度效果需在 blur 上方加一層顏色濾鏡
・快速聆聽頁 - 隨機專屬推薦 / 動畫背景 ・搜尋框
image

客製 Blur 參數

客製 Blur 參數
BlurWithRadius
tintColor
alpha
saturationDeltaFactor
blurredAlbumImageBackgroundLayer.opacity
Now Playing Page
24.0
black
0.8
1.3
-
Now Playing Bar
24.0
black
0.8
1.3
0.5
image
image

Android 實作

單純的 blur 效果,可以現有的 blur function 直接帶數值,或提供 radius 數值(需大於 1),即可做出相對應效果。

Blur 參數
BlurWithRadius
補充
Now Playing Page (Music & Podcast)
8
Now Playing bar 為套用 NowPlaying 背景最上方
藝人頁、歌單頁. 背景
30
1. header 以圖片做調色盤,取三種顏色,做左上到右下漸層當作背景 2. 套用 Radius
⚠️
(1)因應各個頁面會有不同細節調整方式,開發時建議先與 RD 再次確認實作方法。 (2)Action Sheet 在 Android 直接使用黑底 background。
image
image

Universal

劇場模式

背景實作方法為將桌集封面圖各邊放大 15px,並加上 30px blur filter。

image

Website

Now Playing Bar

image

Header

image

Changelog

Date
Version
Notes
Chapters
Person
January 17, 2023
1.2

・Layout - 響應式斷點說明更新 ・Icons - 新增缺口風格設計說明

All
Jaco Huang
November 25, 2022

・所有筆記彙整

All
Mark Liang
November 22, 2022
1.1

・Changelog 測試 ・範本介紹

All
Mark Liang
November 1, 2022
1.0

・XD Playbook Foundation 正式上線

All
pei-tzu Lin