# Automated Tailwind Color Migration Scripts This directory contains scripts to automatically migrate Tailwind default colors to the Kodo design system. ## Scripts ### 1. `auto_migrate_tailwind_colors.py` Single-file migration script with verification. **Usage:** ```bash # Dry run (test without modifying files) python3 scripts/auto_migrate_tailwind_colors.py --dry-run # Migrate all files python3 scripts/auto_migrate_tailwind_colors.py # Migrate first 10 files only python3 scripts/auto_migrate_tailwind_colors.py --limit 10 # Verify files only (check for remaining instances) python3 scripts/auto_migrate_tailwind_colors.py --verify ``` ### 2. `auto_migrate_tailwind_colors_batch.py` ⭐ **RECOMMENDED** Batch migration script that processes files in batches and commits after each batch. **Usage:** ```bash # Dry run with batches of 10 files python3 scripts/auto_migrate_tailwind_colors_batch.py --dry-run --batch-size 10 # Migrate all files in batches of 10 (auto-commits each batch) python3 scripts/auto_migrate_tailwind_colors_batch.py --batch-size 10 # Migrate with smaller batches (more commits, safer) python3 scripts/auto_migrate_tailwind_colors_batch.py --batch-size 5 ``` ### 3. `generate_tailwind_list.py` Regenerates the full instance list from the codebase. **Usage:** ```bash python3 scripts/generate_tailwind_list.py ``` ## Recommended Workflow 1. **Test with dry-run first:** ```bash python3 scripts/auto_migrate_tailwind_colors_batch.py --dry-run --batch-size 10 ``` 2. **Run migration in small batches:** ```bash # Start with 5 files per batch for safety python3 scripts/auto_migrate_tailwind_colors_batch.py --batch-size 5 ``` 3. **Verify after migration:** ```bash python3 scripts/auto_migrate_tailwind_colors.py --verify ``` 4. **If issues found, regenerate list:** ```bash python3 scripts/generate_tailwind_list.py ``` ## What the Scripts Do 1. **Read** `apps/web/docs/TAILWIND_INSTANCES_FULL_LIST.md` to find all instances 2. **Parse** each file and find Tailwind default color classes 3. **Replace** with Kodo design system colors based on mapping: - `text-gray-400` → `text-kodo-content-dim` - `bg-gray-700` → `bg-kodo-steel` - `border-gray-600` → `border-kodo-steel` - `text-blue-600` → `text-kodo-cyan` - etc. 4. **Verify** each file has no remaining Tailwind default colors 5. **Commit** changes in batches (batch script only) ## Color Mappings The scripts use the following mappings (see `TAILWIND_COLORS_AUDIT.md` for full details): - **Gray text**: `text-gray-400/500/600` → `text-kodo-content-dim` - **Gray text (dark)**: `text-gray-300/700/800/900` → `text-kodo-text-main` - **Gray backgrounds**: `bg-gray-*` → `bg-kodo-void/ink/graphite/slate/steel` - **Gray borders**: `border-gray-*` → `border-kodo-steel` - **Blue colors**: `text-blue-*` → `text-kodo-cyan` - **Red colors**: `text-red-*` → `text-kodo-red` - **Green colors**: `text-green-*` → `text-kodo-lime` ## Safety Features - ✅ Dry-run mode to preview changes - ✅ Verification after each file - ✅ Batch processing with commits - ✅ Detailed logging of all changes - ✅ Error handling for file I/O issues ## Troubleshooting **Script finds instances but doesn't migrate them:** - Check if the color class is in the `COLOR_MAPPINGS` dictionary - Some edge cases (conditional classes, template strings) may need manual review **Verification fails after migration:** - Some instances might be in comments or strings (not actual classes) - Check the file manually and fix any remaining issues **Git commit fails:** - Ensure you're in the repository root - Check git status for uncommitted changes - The script will continue even if commit fails (you can commit manually) ## Notes - The scripts exclude test files (`*.test.tsx`, `*.test.ts`) and backup files (`ui.backup/`) - Dark mode classes (e.g., `dark:bg-gray-900`) are handled automatically - The batch script commits with format: `consistency: auto-migrate Tailwind default colors (Batch N, X instances)`