Skip to content

テーマ ​

概要 ​

RinUI は軽量なテーママネージャーを提供します。

QML で import RinUI をするだけで、すぐにグローバルなテーマサポートが得られます。 テーマモジュールはシングルトン pragma Singleton として存在し、アプリケーション全体のスタイル切り替えを一貫して管理します。

このように Theme マネージャーを使用できます:

qml
import RinUI

Component {
    Component.onCompleted: {
        Theme.function()
    }
}

## テーマモード

### `setTheme(mode: Theme.mode)`
`setTheme` 関数は、すべての RinUI コンポーネントのライトテーマとダークテーマを切り替えるために使用されます。この関数は以下の値を受け付けます:

- `Theme.mode.Light`: ライトテーマに切り替え
- `Theme.mode.Dark`: ダークテーマに切り替え
- `Theme.mode.Auto`: テーマを自動切り替え。現在のシステムテーマモードに基づいてライトテーマまたはダークテーマに切り替えるかどうかを決定します。

### `toggleMode()`
`toggleMode` は現在の実際の外観に基づき、`Theme.mode.Light` と `Theme.mode.Dark` を切り替えます。ダーク表示ならライトへ、ライト表示ならダークへ切り替わります:

```qml
Theme.toggleMode()

`Light`、`Dark`、`Auto` の設定モードを順番に切り替える関数ではありません。自動モードへ入る、または自動モードから抜ける場合は `setTheme()` を直接呼び出してください。

### `getTheme() -> str`
`getTheme` 関数は、保存されているテーマ設定モードを返します:

- `"Light"`: 現在のテーマはライトです
- `"Dark"`: 現在のテーマはダークです
- `"Auto"`: 現在のテーマは自動モードです

`Auto` モードでも `getTheme()` は `"Auto"` を返し、実際に適用されているライト/ダークへ解決しません。実際の外観は別途取得します:

```qml
let darkNow = Theme.currentTheme.isDark

`Theme.isDark()` を呼び出すこともできます。これは `currentTheme.isDark` を返します。

### `setThemeColor(color)`
`setThemeColor` は RinUI のアクセントカラーを設定します。16 進数の文字列または QML の `color` 値を受け付けます(例:`"#FF0000"` は赤)。

### `getThemeColor() -> color`
`getThemeColor` は現在のアクセントカラーを QML の `color` 値として返します。テーママネージャーが初期化されていない場合は `"transparent"` を返します。

## 背景エフェクト

> [!NOTE]
> 背景エフェクトの設定は Windows でのみ有効であり、一部のエフェクトは Windows 11 以降のバージョンが必要です。
>
> | エフェクト   | サポートされるシステムバージョン |
> |----------|-------------------|
> | Mica     | > Windows 11      |
> | Acrylic  | >= Windows 10     |
> | Tabbed   | > Windows 11      |

### `setBackdropEffect(effect: Theme.effect)`
`setBackdropEffect` 関数は、RinUI コンポーネントの背景エフェクトを設定するために使用されます。この関数は以下の値を受け付けます:

- `Theme.effect.Mica`: Mica 背景エフェクト
- `Theme.effect.Acrylic`: Acrylic 背景エフェクト
- `Theme.effect.Tabbed`: Tabbed 背景 (Mica Alt) エフェクト
- `Theme.effect.None`: 背景エフェクトなし

### `getBackdropEffect() -> str`
`getBackdropEffect` 関数は、コンポーネントの現在の背景エフェクトを取得するために使用されます。関数は以下の値を返します:

- `"mica"`: Mica 背景エフェクト
- `"acrylic"`: Acrylic 背景エフェクト
- `"tabbed"`: Tabbed 背景 (Mica Alt) エフェクト
- `"none"`: 背景エフェクトなし