Build the Wolfskin Home feed

This commit is contained in:
justinzeus 2026-11-05 16:15:40 +01:00
parent 9be55c570a
commit 0fd0ec035d
683 changed files with 2561 additions and 18 deletions

View file

@ -30,7 +30,7 @@ val cacheRobolectricSdk by tasks.registering(Copy::class) {
}
val checkTokenDrift by tasks.registering {
inputs.files(fileTree(projectDir) { include("tokens.json", "shell-tokens.json", "generate_tokens.py", "tokens.css", "tokens.sha256", "src/main/java/**/WolfskinTokens.kt") })
inputs.files(fileTree(projectDir) { include("tokens.json", "shell-tokens.json", "home-tokens.json", "generate_tokens.py", "tokens.css", "tokens.sha256", "src/main/java/**/WolfskinTokens.kt") })
doLast {
file("tokens.sha256").readLines().forEach { line ->
val (expected, name) = line.split(" ", limit = 2)

View file

@ -100,9 +100,10 @@ def main() -> None:
arguments = parser.parse_args()
tokens = json.loads((ROOT / "tokens.json").read_text())
tokens.update(json.loads((ROOT / "shell-tokens.json").read_text()))
tokens.update(json.loads((ROOT / "home-tokens.json").read_text()))
kotlin, css = render_tokens(tokens)
outputs = {str(KOTLIN): kotlin, "tokens.css": css}
inputs = ["tokens.json", "shell-tokens.json", "generate_tokens.py"]
inputs = ["tokens.json", "shell-tokens.json", "home-tokens.json", "generate_tokens.py"]
checksums = {name: hashlib.sha256((ROOT / name).read_bytes()).hexdigest() for name in inputs}
checksums.update({name: hashlib.sha256(content.encode()).hexdigest() for name, content in outputs.items()})
outputs["tokens.sha256"] = "".join(f"{checksum} {name}\n" for name, checksum in sorted(checksums.items()))

View file

@ -0,0 +1,322 @@
{
"home": {
"kickerGap": {
"$type": "dimension",
"px": 12,
"dp": 6.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"kickerBottom": {
"$type": "dimension",
"px": 10,
"dp": 5.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"titleBottom": {
"$type": "dimension",
"px": 16,
"dp": 8.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"factsHeight": {
"$type": "dimension",
"px": 38,
"dp": 19.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"factsBottom": {
"$type": "dimension",
"px": 14,
"dp": 7.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"factsGap": {
"$type": "dimension",
"px": 22,
"dp": 11.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"overviewBottom": {
"$type": "dimension",
"px": 30,
"dp": 15.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardPadding": {
"$type": "dimension",
"px": 22,
"dp": 11.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardOverlayTop": {
"$type": "dimension",
"px": 54,
"dp": 27.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardOverlayBottom": {
"$type": "dimension",
"px": 18,
"dp": 9.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"sectionTop": {
"$type": "dimension",
"px": 40,
"dp": 20.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"sectionAvatar": {
"$type": "dimension",
"px": 56,
"dp": 28.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"sectionGap": {
"$type": "dimension",
"px": 22,
"dp": 11.0,
"source": "locked index.html:180"
},
"stateTextBottom": {
"$type": "dimension",
"px": 24,
"dp": 12.0,
"source": "locked index.html:198"
},
"stateTop": {
"$type": "dimension",
"px": 20,
"dp": 10.0,
"source": "locked index.html:194"
},
"statePaddingX": {
"$type": "dimension",
"px": 40,
"dp": 20.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"statePaddingY": {
"$type": "dimension",
"px": 34,
"dp": 17.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"stateGap": {
"$type": "dimension",
"px": 8,
"dp": 4.0,
"source": "locked index.html:195"
},
"stateIcon": {
"$type": "dimension",
"px": 36,
"dp": 18.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"captionWidth": {
"$type": "dimension",
"px": 640,
"dp": 320.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"plateTop": {
"$type": "dimension",
"px": 14,
"dp": 7.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"plateSide": {
"$type": "dimension",
"px": 16,
"dp": 8.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"plateFade": {
"$type": "dimension",
"px": 46,
"dp": 23.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"ratingGap": {
"$type": "dimension",
"px": 20,
"dp": 10.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"ratingMarkGap": {
"$type": "dimension",
"px": 8,
"dp": 4.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonWidth": {
"$type": "dimension",
"px": 640,
"dp": 320.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonHeight": {
"$type": "dimension",
"px": 84,
"dp": 42.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonFactsWidth": {
"$type": "dimension",
"px": 460,
"dp": 230.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonFactsHeight": {
"$type": "dimension",
"px": 34,
"dp": 17.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonButtonWidth": {
"$type": "dimension",
"px": 260,
"dp": 130.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonGap": {
"$type": "dimension",
"px": 22,
"dp": 11.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSkeletonButtonGap": {
"$type": "dimension",
"px": 40,
"dp": 20.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"artGlyph": {
"$type": "dimension",
"px": 44,
"dp": 22.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardSheetLeft": {
"$type": "dimension",
"px": 22,
"dp": 11.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardSheetTop": {
"$type": "dimension",
"px": 18,
"dp": 9.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardSheetInset": {
"$type": "dimension",
"px": 36,
"dp": 18.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSheetRight": {
"$type": "dimension",
"px": 180,
"dp": 90.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroSheetTop": {
"$type": "dimension",
"px": 150,
"dp": 75.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardBlur": {
"$type": "dimension",
"px": 26,
"dp": 13.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"heroBlur": {
"$type": "dimension",
"px": 60,
"dp": 30.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"progressInset": {
"$type": "dimension",
"px": 18,
"dp": 9.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"progressBottom": {
"$type": "dimension",
"px": 10,
"dp": 5.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"endTop": {
"$type": "dimension",
"px": 40,
"dp": 20.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"frameBottom": {
"$type": "dimension",
"px": 80,
"dp": 40.0,
"source": "locked index.html:1042"
},
"seeAllGap": {
"$type": "dimension",
"px": 8,
"dp": 4.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"seeAllIcon": {
"$type": "dimension",
"px": 48,
"dp": 24.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"toastPadding": {
"$type": "dimension",
"px": 28,
"dp": 14.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"toastTop": {
"$type": "dimension",
"px": 150,
"dp": 75.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"toastWidth": {
"$type": "dimension",
"px": 760,
"dp": 380.0,
"source": "locked index.html:94-165,180-198,1014-1029,1276-1289"
},
"cardWashInset": {
"$type": "dimension",
"px": 30,
"dp": 15.0,
"source": "locked index.html:129"
},
"heroWashInset": {
"$type": "dimension",
"px": 80,
"dp": 40.0,
"source": "locked index.html:96"
},
"noteTop": {
"$type": "dimension",
"px": 14,
"dp": 7.0,
"source": "locked index.html:191"
},
"noteGap": {
"$type": "dimension",
"px": 16,
"dp": 8.0,
"source": "locked index.html:191"
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Some files were not shown because too many files have changed in this diff Show more