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>
3.2 KiB
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 (ManaTokens) und dem
@mana/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-ColorSchemeund stellt die rohen Tokens überMana.colorsbereit (fürsurfaceHover,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):
dependencyResolutionManagement {
repositories {
google(); mavenCentral(); mavenLocal()
maven("https://git.mana.how/api/packages/mana/maven") {
content { includeGroup("ev.mana") }
}
}
}
app/build.gradle.kts:
implementation("ev.mana:mana-kotlin-tokens:0.1.0")
App-Theme:
@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
./gradlew publish -PforgejoToken="$FORGEJO_TOKEN"
SOT der Flotte: mana/docs/playbooks/ANDROID_FLEET.md.
Bauen
Kotlin/Gradle. Die mana-Bibliotheken finden sich gegenseitig über
mavenLocal() — in dieser Reihenfolge veröffentlichen:
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.
Für Mitlesende
Dieses Repo gehört zum Ökosystem von mana 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.