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>
91 lines
3.2 KiB
Markdown
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.
|