Geteiltes Token/Theme-System für die mana-Android-Flotte (Kotlin) — Apache-2.0, Spiegel des Vereins mana.
Welle 1 aus platform/mana/docs/QUELLOEFFNUNG.md. Ein Repo ohne LICENSE ist beim Veroeffentlichen kein Open Source, sondern "alle Rechte vorbehalten" — damit faellt genau der Zweck aus, dass andere den Baustein als Grundlage nutzen duerfen. Apache-2.0 wegen der Patentklausel und weil sie bei oeffentlichen Auftraggebern Standard ist. LICENSE traegt den kanonischen Volltext (ein Link auf apache.org genuegt Paragraf 4(a) nicht); der Copyright-Vermerk steht nach Apache-Konvention in NOTICE, damit der Lizenztext pruefbar identisch bleibt. Halter ist die natuerliche Person, nicht "mana" — der Verein ist nicht gegruendet und kann keine Rechte halten. Der Uebergang steht in NOTICE. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| devlog | ||
| gradle | ||
| src/main/kotlin/ev/mana/tokens | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| settings.gradle.kts | ||
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.