Kotlin-Libs liegen jetzt in der Verein-Package-Registry git.mana.how/api/packages/mana/maven (alle 10 Libs / 50 Versionen registry-zu-registry kopiert). Consumer- und Publisher-URLs nachgezogen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# mana-kotlin-tokens
|
|
|
|
Geteiltes Design-Token- und Theme-System für die nativen Android-Apps von
|
|
mana Das Kotlin-Pendant zu den Tokens aus
|
|
[`mana-swift-core`](../mana-swift-core) (`ManaTokens`) und dem
|
|
[`@mana/themes`](../mana/packages/themes)-Web-Paket — **eine Quelle, drei
|
|
Plattformen, pixelgleiche Farben** (gleiche HSL→sRGB-Konvertierung,
|
|
gleiche 21 Signatur-Variants, gleiche Slugs).
|
|
|
|
## Was drin ist
|
|
|
|
- **`ManaTheme`** — Enum der 21 Signatur-Variants (mana, paper, skylight,
|
|
bodensee, …) mit Slug, Anzeige-Name, Charakter, Signatur-App und
|
|
Theme-Pass-Freischalt-Logik.
|
|
- **`ManaColors` / `ManaPalette`** — die 12 Vereins-Tokens (Light + Dark).
|
|
- **`ManaAppTheme(theme, mode) { … }`** — der eine Theme-Wrapper für alle
|
|
Apps. Verdrahtet die Variante in ein Material-3-`ColorScheme` **und**
|
|
stellt die rohen Tokens über `Mana.colors` bereit (für `surfaceHover`,
|
|
`success`, `warning` — die Tokens ohne Material-Slot).
|
|
- **`Spacing` / `Radius` / `ManaTypography`** — Abstände, Radien, Typo-Skala.
|
|
|
|
## Nutzung
|
|
|
|
`settings.gradle.kts` (mavenLocal zuerst, dann Forgejo — kein Credential nötig):
|
|
|
|
```kotlin
|
|
dependencyResolutionManagement {
|
|
repositories {
|
|
google(); mavenCentral(); mavenLocal()
|
|
maven("https://git.mana.how/api/packages/mana/maven") {
|
|
content { includeGroup("ev.mana") }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
`app/build.gradle.kts`:
|
|
|
|
```kotlin
|
|
implementation("ev.mana:mana-kotlin-tokens:0.1.0")
|
|
```
|
|
|
|
App-Theme:
|
|
|
|
```kotlin
|
|
@Composable
|
|
fun WordeckTheme(mode: ManaThemeMode, content: @Composable () -> Unit) =
|
|
ManaAppTheme(ManaTheme.SKYLIGHT, mode, content = content) // Signatur-Variante
|
|
```
|
|
|
|
Im UI: Material-Slots über `MaterialTheme.colorScheme.*`, Extra-Tokens über
|
|
`Mana.colors.warning` / `.success` / `.surfaceHover`.
|
|
|
|
## Publish
|
|
|
|
```bash
|
|
./gradlew publish -PforgejoToken="$FORGEJO_TOKEN"
|
|
```
|
|
|
|
SOT der Flotte: [`mana/docs/playbooks/ANDROID_FLEET.md`](../mana/docs/playbooks/ANDROID_FLEET.md).
|