$env ・表示環境

$env は、現在の機器のサイズ、テーマ、表示モード、単位、言語を提供します。これは、同じコードを携帯電話や HUD などの表示シナリオに適合させるために使用されます。

サイズとレイアウト

width、height は、機器の現在利用可能な領域の幅と高さ (画面ポイント単位) であり、カードのサイズとディスプレイ環境によって異なります。これらは電話機全体の解像度でも、画像内のピクセル数でもありません。

サイズを調整する必要があるフォント、グラフィックの半径、エンドポイントの座標は、main() のこの幅と高さを使用して計算する必要があります。固定 120 ポイントの円は常に固定サイズを使用します。カードによって異なるようにするには、利用可能な幅と高さの小さい方の値を使用して直径を計算します。

テーマ・表示モード・単位

foreground は現在の背景に適したテキストの色、accent はアクセントカラー、dark は現在の暗い外観を表します。 mode の値は instruments または hud で、通常のメーターまたは HUD ディスプレイを示します。

speedUnit は現在の速度表示単位を表し、language はアプリ言語を表し、reduceMotion はシステム弱化ダイナミック効果設定を表します。 obdDevice は、現在接続されているデバイスの id および name を提供します。準備ができているデバイスがない場合は空です。単位ラベルは数値とともに使用する必要があります。ラベル自体を変更しても数値は変換されません。

例: 表示モードを調整する

次の例では、HUD モードで大きなフォント サイズを使用し、現在のテーマのテキストの色と速度の単位を使用します。

function main() {
  return (
    <Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
      {$env.speedUnit}
    </Text>
  );
}

環境アップデート

CapDrive は、ディメンション、テーマ、その他の状況が変化したときに新しい入力を提供します。 $env に依存する計算を main() 内に配置して、次の描画で新しい値が使用されるようにします。繰り返されるアニメーション効果は、ユーザーのシステム設定を無視しないように、reduceMotion に従って調整されます。

分野

widthnumber

幅

heightnumber

高さ

darkboolean

ダーク表示

foregroundstring

文字色

mode"instruments" | "hud"

表示モード

speedUnit"km/h" | "mph"

速度単位

languagestring

アプリの言語

reduceMotionboolean

視差効果を減らす

accentstring

アクセントカラー

obdDevice{ id: string; name: string } | null

OBD デバイス