| ## Legacy Token Defaults Generator | |
| > [!WARNING] | |
| > This legacy tool is deprecated. It only targets the frozen SDK Material library | |
| > under `packages/flutter/lib/src/material`, and should not be used for new | |
| > Material defaults work. | |
| Active Material defaults generation has moved to the standalone `material_ui` | |
| package in the `flutter/packages` repository. Use | |
| [`packages/material_ui/tool/gen_defaults`](https://github.com/flutter/packages/tree/main/packages/material_ui/tool/gen_defaults) | |
| there instead. | |
| ## Legacy Usage | |
| Run this program from the root of the git repository: | |
| ```sh | |
| dart dev/tools/gen_defaults/bin/gen_defaults.dart [-v] | |
| ``` | |
| This updates `generated/used_tokens.csv` and the frozen SDK Material component | |
| theme files. | |
| ## Templates | |
| There is a template file for every component that needs defaults from | |
| the token database. These templates are implemented as subclasses of | |
| `TokenTemplate`. This base class provides some utilities and a structure | |
| for adding a new block of generated code to the bottom of a given file. | |
| Templates need to override the `generate` method to provide the generated | |
| code block as a string. | |
| See `lib/fab_template.dart` for an example that generates defaults for the | |
| Floating Action Button. | |
| ## Tokens | |
| Tokens are stored in JSON files in `data/`, and are sourced from | |
| an internal Google database. | |
| `template.dart` should provide nearly all useful token resolvers | |
| (e.g. `color`, `shape`, etc.). For special cases in which one shouldn't | |
| be defined, use `getToken` to get the raw token value. The script, through | |
| the various revolvers and `getToken`, validates tokens, keeps track of | |
| which tokens are used, and generates `generated/used_tokens.csv`. |