tangem-app-android-audited/core/ui/token-gen
2026-07-21 09:42:01 +03:00
..
.gitignore
build-icons.mjs Updated on 2026-08-14 2026-05-04 13:50:48 +03:00
build-tokens.mjs Updated on 2026-08-14 2026-06-08 19:11:28 +03:00
package-lock.json
package.json Updated on 2026-08-14 2026-06-15 23:36:31 +03:00
README.md Updated on 2026-08-14 2026-07-21 09:42:01 +03:00

token-gen

Generates Kotlin (Jetpack Compose) source files from design tokens and icons defined in the ds-tokens git submodule.

Making sure submodule is at the pinned commit

For the most cases (a fresh checkout, or making sure the submodule is at the pinned commit), use:

git submodule update --init --recursive

Updating tokens

Note: You only need git submodule update --remote when you want to pull new design tokens from the remote ds-tokens repository. If you're just regenerating Kotlin from the tokens already checked out (e.g. changing the generation script), skip step 1 — don't run it without the need, as it moves the submodule pointer to the latest remote commit and pulls in unrelated token changes. This checks out the submodule at the commit already recorded in the repo, without pulling anything new.

  1. (Only if you need newer tokens) Update the ds-tokens submodule to the latest commit:
    git submodule update --remote core/ui/ds-tokens
    
  2. Re-run the build:
    cd core/ui/token-gen && npm run build
    
    npm run build generates both tokens and icons. To regenerate only one of them:
    npm run build:tokens   # node build-tokens.mjs
    npm run build:icons    # node build-icons.mjs
    
  3. Commit the generated files (and the submodule pointer too, only if you ran step 1).

How it works

The build runs two scripts:

  • build-tokens.mjs uses Style Dictionary v5 with @tokens-studio/sd-transforms to read JSON token files from core/ui/ds-tokens/tokens/ and generate Kotlin files into core/ui/src/main/java/com/tangem/core/ui/res/generated/.
  • build-icons.mjs generates Kotlin icon source files into core/ui/src/main/java/com/tangem/core/ui/res/generated/icons/.

All generated files are written to com.tangem.core.ui.res.generated and should not be edited manually.