UiPool v0.2.0

Deprecation Workflow

Gracefully phase out patterns and guide teams through design system migrations.

Overview #

Deprecating patterns is a natural part of design system evolution. UiPool helps you track deprecated pattern usage, notify teams, and ensure smooth migrations to new patterns.

Marking a Pattern as Deprecated #

To deprecate a pattern in UiPool:

  1. 1Navigate to the pattern you want to deprecate
  2. 2Click the menu and select Edit pattern
  3. 3Enable the Deprecated toggle
  4. 4Add migration guidance in the documentation field
Deprecated patterns show a red "Deprecated" badge throughout the UI.

Deprecation in Code Annotations #

You can also indicate deprecation directly in your code comments:

OldModal.tsx
// uipool-pattern: old-modal @deprecated
// Use dialog-modal instead
export function OldModal({ children }) {
  // Legacy implementation
  return <div className="old-modal">{children}</div>;
}

The scanner will flag this pattern as deprecated in the report, even if it hasn't been marked in the dashboard yet.

Tracking Deprecated Pattern Usage #

Once a pattern is deprecated, UiPool helps you track where it's still being used:

  • Pattern detail page — Shows which projects are still using the deprecated pattern
  • Scan reports — Deprecated patterns are highlighted with warnings
  • CI/CD reports — PR comments include deprecated pattern warnings

Providing Migration Guidance #

Help teams migrate away from deprecated patterns by providing clear guidance:

## Migration Guide: old-modal → dialog-modal

This pattern is deprecated as of v2.0. Please migrate to dialog-modal.

### Why?
- Better accessibility (focus trapping, ARIA)
- Consistent animation API
- Smaller bundle size

### Migration Steps
1. Replace OldModal with DialogModal
2. Update the 'onClose' prop to 'onDismiss'
3. Wrap content in DialogContent component

### Before
<OldModal onClose={handleClose}>...</OldModal>

### After  
<DialogModal onDismiss={handleClose}>
  <DialogContent>...</DialogContent>
</DialogModal>

Best practices for migration documentation:

  • Link to the replacement pattern
  • Explain why the pattern was deprecated
  • Provide before/after code examples
  • Set a target date for complete migration

Deprecation Timeline #

A typical deprecation workflow follows these phases:

Phase 1Soft Deprecation

Mark pattern as deprecated, add documentation. New usage is discouraged but existing usage continues to work.

Phase 2Active Migration

Teams actively migrate to the replacement pattern. Track progress via scan reports.

Phase 3Hard Deprecation

CI fails on deprecated pattern usage. This enforces complete migration.

Phase 4Removal

Pattern is deleted from the system after all usage is removed.

Deleting Deprecated Patterns #

Once all usage has been migrated, you can safely delete the pattern:

Deleting a pattern is permanent and cannot be undone. Make sure all references have been removed from your codebase first.
  1. 1. Verify the pattern shows 0 projects in Usage Analytics
  2. 2. Click the menu and select Delete pattern
  3. 3. Type the pattern slug to confirm deletion