Zum Hauptinhalt springen
VelinStyle v1.4.0
⌂ Home

Tailwind → VelinStyle migrate 1.4.0

Automatisierte, ehrliche Migration für Tailwind-v3/v4-Projekte. Standard: Dry-run. Unresolved Tokens werden nie still überschrieben. Kein Fake-1:1-Anspruch. English: Tailwind migrate

Architektur: Core (@birdapi/velinstyle) → optionale Compatibility (@birdapi/velinstyle-tailwind) → optionale Heuristik (--heuristic palette-roles). Compatibility ist kein zweites Design System.

Voraussetzungen

Drei CLI-Modi

# Nur Core (Standard: Dry-run)
velinstyle migrate tailwind ./my-project

# Core + Compatibility-Catalog
velinstyle migrate tailwind ./my-project --compat tailwind

# Core + Compat + opt-in Palette→Rollen-Heuristik
velinstyle migrate tailwind ./my-project --compat tailwind --heuristic palette-roles

# Nur Mapped Rewrites anwenden
velinstyle migrate tailwind ./my-project --write
velinstyle migrate rollback ./my-project
ModusCatalogHinweise
Nur Corenur CoreCompat-Klassen bleiben unresolved / suggested
--compat tailwindCore ∪ Compatlädt @birdapi/velinstyle-tailwind
--heuristic palette-rolesCore ∪ Compat + map-only Rollensemantische Näherung — kein visuelles 1:1

Dry-run (Standard)

Apply (--write / --apply)

  1. Snapshot unter .velin/migration/snapshots/<id>/
  2. schreibt nur Mapped Tokens um
  3. Unresolved / Warning bleiben unberührt
  4. Tailwind-Dependencies werden nie automatisch entfernt

Klassenbeispiele (mit Compat)

TailwindVelinStyle Compat
px-4velin-px-4
w-4velin-w-4
grid-cols-3velin-grid-cols-3
flex-1velin-flex-1
rounded-mdvelin-rounded-md
space-y-4velin-space-y-4
bg-emerald-500/10velin-bg-emerald-500-10 (Slash-Opacity)

Slash-Opacity

Responsive Compat

Unterstützte Wrapper: sm, md, lg, xlvelin-{bp}-*, wenn die Basisklasse im Catalog ist.

2xl wird nicht unterstützt und bleibt unresolved. Keine volle Tailwind-Breakpoint-Parität.

Palette-Rollen-Heuristik

Nur opt-in: --heuristic palette-roles. Mappt Palette-Solids auf vorhandene Core-Rollen, wenn ein sicheres Ziel existiert:

Heuristik ≠ 1:1-Farbkonversion. Palette ohne Core-Ziel bleibt unresolved.

Reports

Dry-run-JSON enthält unter anderem:

Pilotmessung (velisch.info-Kopie)

Keine Tailwind-Kompatibilitätsgarantie. Zahlen eines Pilotprojekts (velisch.info-Kopie), nicht „VelinStyle unterstützt X % von Tailwind“.
MetrikWert
Detected806
Mapped (Compat + Heuristik)559
CoverageMapped%69.4%
Warnings74
Unresolved173
DynamicAttrsSkipped351 (eigene KPI)
Compat Catalog2736
Core Catalog1427
Tests (Intelligence + migrate)94
Tests (+ release-sync)102
Historische Core-only-Baseline162 / 806 = 20.1% (historisch)

Ein ≥80 %-Gate wurde nicht erreicht — und darf nicht behauptet werden. Realistische statische Obergrenze ohne neue Engines: etwa 70–71 %. Bewusste Architekturentscheidung in 1.4.x.

Migration Intelligence

Nach der Migrate-Analyse werden Residuals als 23 User Actions und 6 Strategy Blocks strukturiert. Acceptance, Rewrite Manifest, Preflight, Dry-Run und Apply-Gate sind verfügbar — Residual-Rewrites brauchen aber ein explizites Mapping.

SAFE_REWRITE = 0: keine freigegebenen Residual-source→target-Mappings im aktuellen Pilot. Intelligence erfindet keine Ziele. Details: Migration Intelligence.

P1 --write schreibt weiterhin nur Catalog-Mapped Tokens. Dieser Pfad ist getrennt vom Intelligence-Residual-Apply.

Verwandt