Android 生成物
パス:dist/android/top/lhgb/ui/tokens/LhTokens.kt と LhDarkTokens.kt
パッケージ名:top.lhgb.ui.tokens(リバースドメイン規範、マスタープラン D20)
トークンはパスの階層に沿ってネストした object として組織され、メンバーは val です:
package top.lhgb.ui.tokens
import androidx.compose.ui.graphics.Color as ComposeColorimport androidx.compose.ui.unit.dpimport androidx.compose.ui.unit.spimport androidx.compose.ui.graphics.Shadowimport androidx.compose.ui.geometry.Offsetimport androidx.compose.animation.core.CubicBezierEasing
object LhTokens { object Button { val borderRadius = 2.dp // ボタンの角丸はグローバルの角丸に追随 val borderWidth = 1.dp object FontSize { val large = 16.sp val medium = 14.sp } object Height { val medium = 40.dp // 中サイズのボタンの高さ(デフォルト) val small = 32.dp // 小サイズのボタンの高さ } } object Color { val focus = ComposeColor(0xFF2B4C7C) }}命名マッピング
Section titled “命名マッピング”| トークンパス | Kotlin メンバー |
|---|---|
button.height.medium |
LhTokens.Button.Height.medium |
color.primary.default |
LhTokens.Color.Primary.default |
zIndex.modal |
LhTokens.ZIndex.modal |
グループ名は pascalCase(先頭の文字だけ大文字)を通し、メンバー名は元のまま保ちます。
単位とリテラル
Section titled “単位とリテラル”| トークン型 | Kotlin リテラル |
|---|---|
| 色 | ComposeColor(0xFF2B4C7C)(ARGB Int) |
| 寸法 | 40.dp。フォントサイズ系のトークン(パスに fontsize を含む)は .sp、それ以外は .dp |
| 百分率 | 0.50f // 50%(分数。コンテナサイズから換算) |
| 時間 | 200 // 200ms(ミリ秒)(Int) |
| ベジェ | CubicBezierEasing(0.4f, 0f, 0.2f, 1f) |
| 投影 | Shadow(color = ..., offset = Offset(0f, 2f), blurRadius = 8f) |
| 数値 / 文字列 | そのまま / JSON.stringify |
dp / sp の判定は format.ts の usesSp()(/fontsize/i)を参照してください。
import は必要に応じて生成
Section titled “import は必要に応じて生成”import 一覧は実際に使われるランタイム型で決まり(importsFor(features))、使われない型は import しません:
| 機能 | import |
|---|---|
| 色 | androidx.compose.ui.graphics.Color as ComposeColor |
| 寸法 | androidx.compose.ui.unit.dp + .sp |
| 投影 | androidx.compose.ui.graphics.Shadow + androidx.compose.ui.geometry.Offset |
| ベジェ | androidx.compose.animation.core.CubicBezierEasing |
独立した object LhDarkTokens で、名前空間の構造はライトと同じです:
object LhDarkTokens { object Color { val focus = ComposeColor(0xFF7FA6D9) // キーボードフォーカスリングの色。デフォルトで主色に追随 val selected = ComposeColor(0xFFB1C1D8) // 選択状態の文字色。主色の押下バリアントに追随 object Background { ... } }}ダークが含むのはオーバーライドされたキーだけ(現在は color.* のみ)で、オーバーライドされていないキーはダークでも LhTokens の値を引き継ぎます。
Android リポジトリは dist/android/ ディレクトリを Gradle のソースセットまたはローカル maven 依存として取り込み、import top.lhgb.ui.tokens.LhTokens ですぐ使えます。ローカル連携は ローカル連携 を参照してください。
Copyright © 2024-2026 FengMo WenXue