mana-kotlin-tokens/README.md
Till JS 627eed4e4c build: Maven-Registry till/maven -> mana/maven (Namespace-Vereinheitlichung)
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>
2026-06-17 18:05:27 +02:00

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).