Overview
This guide covers breaking changes and migration steps between major versions of Luminescent UI. Always read the full changelog before upgrading.
Version 6.x to Latest
6.4.21 - Alpha Variable Removal
The --lum-default-alpha variable has been removed. Alpha values are now set directly in color variables.
What Changed:
Removed --lum-default-alpha CSS variable
Alpha values now use Tailwind’s --alpha() helper directly
Migration Steps:
Update CSS variables
Remove any references to --lum-default-alpha: @theme {
--lum-default-alpha: 80;
}
/* No longer needed - remove this variable */
Use alpha in color utilities
Apply alpha directly using the / syntax: { /* Alpha is now part of the color utility */ }
< div className = "lum-bg-gray-800/80" >
Semi-transparent background
</ div >
6.1.0 - Depth System Introduction
What’s New:
Added --lum-depth variable for depth-based styling
lum-bg-* classes now support depth-aware borders and shadows
Enhanced lum-toggle-bg utility with depth effects
Migration:
No breaking changes, but you can now enable depth effects:
@theme {
--lum-depth: 0; /* Default - no depth effects */
}
/* Or enable depth */
@theme {
--lum-depth: 1; /* Depth effects enabled */
}
Depth effects include:
Borders that fade out based on depth value
Inset shadows for depth perception
Drop shadows for elevation
Version 5.x to 6.x
5.2.0 - Toggle Component Label Change
The Toggle component’s label prop has been removed. Labels are now passed as children.
Migration Steps:
Before (v5.1.x)
After (v5.2.0+)
< Toggle id = "toggle-input" label = "Enable notifications" />
Why This Change?
More flexible content in labels (icons, badges, etc.)
Consistent with other component APIs
Better TypeScript type inference
Version 4.x to 5.x
5.0.0 - Text Color Variables
What Changed:
Updated text color variables to use semantic naming
New variables: --color-lum-text and --color-lum-text-secondary
Migration Steps:
Update theme variables
@theme {
--color-text-primary: var(--color-gray-50);
--color-text-muted: var(--color-gray-400);
}
@theme {
--color-lum-text: var(--color-gray-50);
--color-lum-text-secondary: var(--color-gray-400);
}
Update utility classes
Replace old text color classes: < p className = "text-gray-50" > Primary text </ p >
< p className = "text-gray-400" > Secondary text </ p >
< p className = "text-lum-text" > Primary text </ p >
< p className = "text-lum-text-secondary" > Secondary text </ p >
5.0.0 - Additional Color Variables
New Variables Added:
@theme {
--color-lum-card-bg: var(--color-gray-900);
--color-lum-input-bg: var(--color-gray-800);
--color-lum-input-hover-bg: var(--color-gray-700);
--color-lum-accent: var(--color-blue-500);
}
Benefits:
Easier theme customization
Consistent color usage across components
Better dark/light mode support
Version 3.x to 4.x
The SelectMenu component now takes full width of its parent by default.
What Changed:
SelectMenu is now width: 100% by default
Added align prop: 'left', 'center', or 'right'
Added theme colors to formatting
Migration Steps:
Update width if needed
If you want the old behavior (auto width): < SelectMenu options = { options } />
< SelectMenu className = "w-auto" options = { options } />
Use align prop for positioning
< SelectMenu
options = { options }
align = "right" { /* or 'left', 'center' */ }
/>
4.0.0 - lum-bg Import Change
Major change: lum-bg plugin no longer requires separate import.
What Changed:
lum-bg utilities are now included in the main CSS file
Simplified import structure
Toggle component rewritten to use new lum-bg classes
Migration Steps:
Update CSS imports
@import '@luminescent/ui/css' ;
@plugin '@luminescent/ui/lum-bg';
@import '@luminescent/ui/css' ;
Update Toggle components
The Toggle component now uses utility classes for styling: < Toggle
id = "toggle-input"
label = "Toggle"
onColor = "green"
offColor = "slate"
/>
< Toggle
id = "toggle-input"
className = "lum-toggle-bg-slate-600 peer-checked:lum-toggle-bg-green-600"
>
Toggle
</ Toggle >
Configure theme variables
New customization options available: @theme {
--lum-btn-p-x: 2;
--lum-input-p-x: 1.5;
--lum-border-radius: var(--radius-md);
--lum-border-mix: 20%;
--color-lum-border: var(--color-gray-400);
}
New Features in 4.0.0:
Apply the default border radius to any element: < div className = "rounded-lum" >
Uses theme border radius
</ div >
{ /* Nested elements */ }
< div className = "rounded-lum p-2" >
< div className = "rounded-lum-2" >
Adjusted for padding
</ div >
</ div >
Create gradient borders: < div className = "border-gradient-1 before:from-blue-500 before:to-purple-500" >
Gradient border
</ div >
< div className = "border-gradient-2 before:bg-gradient-to-r before:from-blue-500 before:to-purple-500" >
Directional gradient
</ div >
Hoverable Cards (Qwik Only)
Mouse-tracking effect for interactive cards: import { Hoverable } from '@luminescent/ui-qwik' ;
< div
className = "lum-card lum-hoverable"
onMouseMove$ = { ( e , el ) => Hoverable . onMouseMove$ ( e , el ) }
onMouseLeave$ = { ( e , el ) => Hoverable . onMouseLeave$ ( e , el ) }
>
Follows mouse cursor
</ div >
Pop-out effect on hover: < div className = "lum-card lum-hoverable" >
Scales up on hover
</ div >
Version 2.x to 3.x
3.0.1 - Import Restructuring
What Changed:
Renamed imports for clarity
New formatting import for default element styling
Icon size property renamed from width to size
Dropdown renamed to SelectMenu
Migration Steps:
Update CSS imports
@import '@luminescent/ui/css' ;
@plugin '@luminescent/ui';
@import '@luminescent/ui' ;
@plugin '@luminescent/ui/lum-bg';
Add formatting (optional)
For default element styling: @import '@luminescent/ui/formatting' ;
Update icon components
< LogoLuminescent width = { 20 } />
< LogoLuminescent size = { 20 } />
Migrate Dropdown to SelectMenu
< Dropdown display = { < p > Dropdown uwu </ p > } >
Dropdown
< button q : slot = "extra-buttons" className = "lum-btn lum-bg-transparent" >
Option 4
</ button >
</ Dropdown >
< SelectMenu customDropdown >
Select Menu
< p q : slot = "dropdown" >
Select Menu uwu
</ p >
< button q : slot = "extra-buttons" className = "lum-btn lum-bg-transparent" >
Option 4
</ button >
</ SelectMenu >
Update to Lucide icons
Icons now use Lucide. Update any custom icon usage accordingly.
Version 1.x to 2.x
The Header component has been removed. Use semantic HTML with utility classes instead.
Migration Steps:
2.0.0 - Tailwind CSS v4 Migration
This is a major breaking change requiring Tailwind CSS v4.
What Changed:
Updated to Tailwind CSS v4
Replaced lum-pad classes with numeric values
New padding utility naming convention
Migration Steps:
Upgrade Tailwind CSS
npm install tailwindcss@next @tailwindcss/postcss@next
Update padding utilities
Replace old lum-pad classes: Before After Suggested lum-pad-xspx-2.5 py-1.5lum-btn-p-1lum-pad-smpx-3 py-2lum-btn-p-2lum-pad-md- lum-btn-p-2lum-pad-lgpx-7 py-4lum-btn-p-3lum-pad-xl- lum-btn-p-4lum-pad-2xl- lum-btn-p-5lum-pad-3xl- lum-btn-p-6lum-pad-4xl- lum-btn-p-7lum-pad-5xl- lum-btn-p-8
Update equal padding classes
Before After lum-pad-equal-xsp-1.5lum-pad-equal-smp-2lum-pad-equal-mdp-2lum-pad-equal-lgp-4lum-pad-equal-xlp-4lum-pad-equal-2xlp-5lum-pad-equal-3xlp-6lum-pad-equal-4xlp-7lum-pad-equal-5xlp-8
General Migration Tips
Test Incrementally Don’t migrate everything at once. Update components one at a time and test thoroughly.
Use Search & Replace Many migrations can be automated with find-and-replace across your codebase: # Example: Update Toggle labels
find . -name "*.tsx" -exec sed -i 's/label="\([^"]*\)"/>{\1}</g' {} +
Check the Changelog Always review the full changelog at the GitHub repository for additional context and minor changes.
Update Dependencies After migrating, ensure all related packages are up to date: npm update @luminescent/ui @luminescent/ui-qwik
Need Help?
If you encounter issues during migration:
Check the GitHub Issues
Review component-specific documentation
Join the community discussions
Create a new issue with your migration problem
Related Resources