自訂樣式
 
  您可以自訂這些 Places UI Kit 元件和非 UI Kit 功能的顏色、字體、間距、邊框和圓角:
Places UI Kit 採用設計系統方法,以 Material Design 為基礎 (並進行一些 Google 地圖專屬的修改),提供視覺自訂功能。請參閱 Material Design 的顏色和字體排版參考資料。樣式預設會採用 Google 地圖的視覺設計語言。
 
元件的外觀和風格是透過 placesMaterialColor、placesMaterialFont、placesMaterialShape 和 placesMaterialTheme 結構體自訂。
你可以自訂下列樣式:
| 主題屬性 | 用量 | 
|---|---|
| 顏色 | |
| theme.color.surface | 容器和對話方塊背景 | 
| theme.color.outlineDecorative | 容器邊框 | 
| theme.color.primary | 連結、載入指標、總覽圖示 | 
| theme.color.onSurface | 標題、對話內容 | 
| theme.color.onSurfaceVariant | 地點資訊 | 
| theme.color.secondaryContainer | 按鈕背景 | 
| theme.color.onSecondaryContainer | 按鈕文字和圖示 | 
| theme.color.neutralContainer | 查看日期徽章、載入預留位置形狀 | 
| theme.color.onNeutralContainer | 審查日期、載入錯誤 | 
| theme.color.positiveContainer | 電動車充電器徽章 | 
| theme.color.onPositiveContainer | 電動車充電器徽章內容 | 
| theme.color.positive | 放置「營業中」標籤 | 
| theme.color.negative | 地點現在標示為「已關閉」 | 
| theme.color.info | 無障礙入口圖示 | 
| theme.measurement.borderWidthButton | 「在地圖中開啟」和「確定」按鈕 | 
| Typography | |
| theme.font.bodySmall | 地點資訊 | 
| theme.font.bodyMedium | 地點資訊、對話內容 | 
| theme.font.labelMedium | 徽章內容 | 
| theme.font.labelLarge | 按鈕內容 | 
| theme.font.headlineMedium | 對話方塊標題 | 
| theme.font.displaySmall | 地點名稱 | 
| theme.font.titleSmall | 地點名稱 | 
| 間距 | |
| theme.measurement.spacingExtraSmall | |
| theme.measurement.spacingSmall | |
| theme.measurement.spacingMedium | |
| theme.measurement.spacinglarge | |
| theme.measurement.spacingExtraLarge | |
| theme.measurement.spacingTwoExtraLarge | |
| 成效評估 | |
| borderWidth | 容器 | 
| theme.measurement.borderWidthButton | |
| 形狀 | |
| theme.shape.cornerRadius | 容器 | 
| theme.shape.cornerRadiusButton | 「在 Google 地圖中開啟」和「確定」按鈕 (圓形圖示按鈕除外) | 
| theme.shape.cornerRadiusThumbnail | 放置縮圖圖片 | 
| theme.shape.cornerRadiusCollageOuter | 媒體美術拼貼 | 
| theme.shape.cornerRadiusCard | 地點資訊卡、使用者評論資訊卡 | 
| theme.shape.cornerRadiusDialog | Google 地圖揭露事項對話方塊 | 
| Google 地圖品牌出處資訊 | |
| attribution.lightModeColor | 淺色主題 Google 地圖出處和揭露資訊按鈕 (白色、灰色和黑色列舉) | 
| attribution.darkModeColor | Google 地圖深色主題的姓名標示和揭露資訊按鈕 (白色、灰色和黑色列舉) | 
歸因顏色
 
  根據 Google 地圖服務條款,您必須使用三種品牌顏色之一,標示 Google 地圖出處。進行自訂變更後,必須顯示並提供存取這個出處資訊的管道。
我們提供 3 種品牌顏色供您選擇,淺色和深色主題可分別設定:
- 淺色主題:attributionColorLight,其中包含白色、灰色和黑色的列舉。
- 深色主題:attributionColorDark,其中包含白色、灰色和黑色的列舉。
範例
這個函式會建立主題,覆寫預設樣式屬性。未覆寫的主題屬性會使用預設樣式。Swift
// Same for compact and full func makeTemplateTheme(colorScheme: ColorScheme) -> PlacesMaterialTheme { var theme = PlacesMaterialTheme() var color = PlacesMaterialColor() color.surface = (colorScheme == .dark ? .blue : .gray) color.buttonBorder = (colorScheme == .dark ? .pink : .orange) color.outlineDecorative = (colorScheme == .dark ? .white : .black) color.onSurface = (colorScheme == .dark ? .yellow : .red) color.onSurfaceVariant = (colorScheme == .dark ? .white : .blue) color.onSecondaryContainer = (colorScheme == .dark ? .white : .red) color.secondaryContainer = (colorScheme == .dark ? .green : .purple) color.positive = (colorScheme == .dark ? .yellow : .red) color.primary = (colorScheme == .dark ? .yellow : .purple) color.info = (colorScheme == .dark ? .yellow : .purple) var shape = PlacesMaterialShape() shape.cornerRadius = 10 var font = PlacesMaterialFont() font.labelLarge = .system(size: UIFontMetrics.default.scaledValue(for: 18)) font.headlineMedium = .system(size: UIFontMetrics.default.scaledValue(for: 15)) font.bodyLarge = .system(size: UIFontMetrics.default.scaledValue(for: 15)) font.bodyMedium = .system(size: UIFontMetrics.default.scaledValue(for: 12)) font.bodySmall = .system(size: UIFontMetrics.default.scaledValue(for: 11)) var attribution = PlacesMaterialAttribution() attribution.lightModeColor = .black attribution.darkModeColor = .white theme.measurement.borderWidthButton = 1 theme.color = color theme.shape = shape theme.font = font theme.attribution = attribution return theme }