jointrashposs/content/tw/docs/2.for-users/3.features/theme.md
2023-11-23 23:29:32 +09:00

3.9 KiB
Raw Blame History

佈景主題

藉由設定佈景主題,可以更改 Misskey 客戶端的外觀。

佈景主題設定

設定 > 佈景主題

建立佈景主題

テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。

{
	id: '17587283-dd92-4a2c-a22c-be0637c9e22a',

	name: 'Danboard',
	author: 'syuilo',

	base: 'light',

	props: {
		accent: 'rgb(218, 141, 49)',
		bg: 'rgb(218, 212, 190)',
		fg: 'rgb(115, 108, 92)',
		panel: 'rgb(236, 232, 220)',
		renote: 'rgb(100, 152, 106)',
		link: 'rgb(100, 152, 106)',
		mention: '@accent',
		hashtag: 'rgb(100, 152, 106)',
		header: 'rgba(239, 227, 213, 0.75)',
		navBg: 'rgb(216, 206, 182)',
		inputBorder: 'rgba(0, 0, 0, 0.1)',
	},
}

  • id ... 佈景主題的唯一識別碼。建議使用 UUID。
  • name ... 佈景主題名稱
  • author ... 佈景主題作者
  • desc ... 佈景主題説明(可選)
  • base ... 採用淺色或深色的佈景主題
    • light 設定為淺色佈景主題,dark 設定為深色佈景主題。
    • 該佈景主題將繼承此處設定的基本佈景主題。
  • props ... 定義佈景主題的風格。這裡開始說明。

定義佈景主題的風格

props 下定義佈景主題的風格。 鍵為 CSS 的變數名稱,值指定內容。 請注意,這個 props 物件是由基本佈景主題繼承而來的。 如果佈景主題的 baselight,則基本佈景主題為 _light.json5,若為 dark 則為 _dark.json5。 換句話說,即使該主題中的 props 中沒有名為 panel 的鍵,也假定基本佈景主題中存在 panel

可與值一起使用的語法

  • 以 16 進位表示顏色
    • 例: #00ff00
  • rgb(r, g, b) 的形式表示顏色
    • 例: rgb(0, 255, 0)
  • rgb(r, g, b, a) 的形式表示包含透明度的顏色
    • 例: rgba(0, 255, 0, 0.5)
  • 引用其他鍵的值
    • @{鍵名} 指的是引用另一個鍵的值。將 {鍵名} 替換為您要引用的鍵的名稱。
    • 例: @panel
  • 引用常數(見下文)
    • ${常數名} 指的是引用常數的值。將 {常數名} 替換為您要引用的常數名稱。
    • 例: $main
  • 函數(見下文)
    • :{函數名}<{參數}<{顏色}

常數

「不想將某個值作為 CSS 變數輸出,但希望將其重新用作另一個 CSS 變數的值」時,常數就非常有用。 如果鍵名以 $ 開頭,則該鍵不會作為 CSS 變數輸出。

函數

想要使用與現有顏色略有不同的顏色的時候,例如「想要只有游標在按鈕上時會讓顏色變亮」時,使用函數非常有用。

:{函數名}<{參數}<{顏色和其他引用的鍵} 的形式使用。

props: {
	accent: '#86b300',
	accentDarken: ':darken<10<#86b300',
	accentLighten: ':lighten<10<@accent'
}
可以使用的函數
  • lighten ... 回傳從傳遞的顏色的明度0 ~ 100加上參數0 ~ 100所獲得的顏色。
  • darken ... 回傳從傳遞的顏色的明度0 ~ 100減去參數0 ~ 100所獲得的顏色。
  • alpha ... 回傳從傳遞的顏色的透明度參數0.0 ~ 1.0)所獲得的顏色。
    • 0.0 為完全透明1.0 為完全不透明。
  • hue ... 回傳從傳遞的顏色的色相(-360 ~ 360旋轉參數值-360 ~ 360所獲得的顏色。
  • saturate ... 回傳從傳遞的顏色的彩度0 ~ 100加上參數0 ~ 100所獲得的顏色。

分發佈景主題

從 v2023.11.0 開始,您可以直接從您的網站一鍵安裝佈景主題。

如果想提供佈景主題安裝功能的話,則需要在您的網站上實作 API。詳見這裡