mana-kotlin-tokens/README.md
Till JS 1566a9a021 README: Bau-Anleitung aus offenen Klonen und Erwartungssatz
Vorbereitung für die Spiegelung nach git.mana.how/offen (Prüfliste
QUELLOEFFNUNG.md §5): Sweep sauber, keine Privat-Marker, Apache-2.0 mit
NOTICE seit Welle 1, Schriften mit OFL-Texten.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 13:35:35 +02:00

91 lines
3.2 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).
## Bauen
Kotlin/Gradle. Die mana-Bibliotheken finden sich gegenseitig über
`mavenLocal()` — in dieser Reihenfolge veröffentlichen:
```bash
for r in mana-kotlin-core mana-kotlin-tokens mana-kotlin-event-sync \
mana-kotlin-widget mana-kotlin-event-sync-room mana-kotlin-ui; do
git clone https://git.mana.how/offen/$r.git && (cd $r && ./gradlew publishToMavenLocal)
done
```
Danach baut auch [Pageta für Android](https://git.mana.how/offen/pageta-android).
## Für Mitlesende
Dieses Repo gehört zum Ökosystem von [mana](https://mana.how) und liegt
offen, damit andere es lesen, einordnen und als Grundlage nutzen können —
das spart Arbeit, egal ob ein Mensch oder ein Modell davorsitzt.
**Was du erwarten darfst:** den Code so, wie er tatsächlich in Gebrauch ist,
unter Apache-2.0 (siehe `LICENSE` und `NOTICE`). Keine Attrappe, kein
zurechtgeschnittener Auszug — samt seiner Geschichte.
**Was du nicht erwarten darfst:** Support, Antwortzeiten, Zusagen zur
Abwärtskompatibilität oder die Übernahme von Änderungswünschen. Dieses Repo
folgt dem, was die eigenen Anwendungen brauchen. Fehlermeldungen sind
willkommen, eine Antwort ist nicht zugesagt.
**Fork ist ausdrücklich erlaubt** und oft der schnellere Weg als zu warten.