Skip to content

feat: Migrate UI from glass effect to Carbon Design System#74

Merged
GlenConway merged 1 commit into
devfrom
feature/carbon-design-system
Feb 19, 2026
Merged

feat: Migrate UI from glass effect to Carbon Design System#74
GlenConway merged 1 commit into
devfrom
feature/carbon-design-system

Conversation

@GlenConway

Copy link
Copy Markdown
Owner

Summary

Replaces the "Liquid Glass" UI styling with IBM Carbon Design System styling for a cleaner, more professional appearance.

Changes

New Files

  • carbon-theme.css - Complete Carbon Design System tokens including:

    • Gray scale (Gray 10-100)
    • Blue scale for primary actions (Blue 60 #0f62fe)
    • Support colors (red, green, yellow, purple, teal)
    • Semantic tokens for layers, borders, text, and interactions
    • IBM Plex Sans typography with productive type scale
    • Carbon spacing scale (2px - 48px)
    • Light/dark theme support via prefers-color-scheme
    • All Radzen component overrides
  • carbon-utils.css - Utility classes for layout, spacing, and styling

  • accessibility.css - Cleaned up accessibility overrides using Carbon tokens

Removed Files

  • custom-theme.css - Replaced by carbon-theme.css
  • liquid-glass-force.css - No longer needed (glass overrides)
  • liquid-glass-utils.css - Replaced by carbon-utils.css
  • liquid-glass-accessibility.css - Replaced by accessibility.css
  • js/liquid-glass.js - Mouse tracking and animation effects removed

Modified Files

  • App.razor - Updated CSS imports and font to IBM Plex Sans
  • MainLayout.razor - Removed glass-header/glass-sidebar classes
  • MainLayout.razor.css - Updated to use Carbon tokens
  • NavMenu.razor.css - Updated to use Carbon styling

Radzen Component Support

All critical Radzen component overrides have been preserved and migrated to Carbon styling:

Component Styling
Calendar/DatePicker Solid backgrounds, proper selection states
Dropdown/AutoComplete Selection highlighting, panel backgrounds
Badges/Alerts WCAG-compliant text contrast on colored backgrounds
Buttons Primary (Blue 60), secondary (bordered), danger, success variants
DataTable Header styling, row hover states
Dialog Solid panels with Carbon overlay
Focus States Carbon focus ring pattern for accessibility

Visual Changes

  • Background: Solid #f4f4f4 (Gray 10) page background instead of mesh gradients
  • Cards: Solid white with subtle gray borders instead of translucent glass
  • Header/Sidebar: Solid backgrounds with border separators
  • Typography: IBM Plex Sans instead of Inter
  • Animations: Removed mouse-tracking lighting effects and tilt animations
  • Border Radius: Reduced to 0 (Carbon default)

Testing

Please test the following:

  • Navigation hover and active states
  • Form inputs and dropdowns
  • Calendar date picker
  • Data grid interactions
  • Dialog/modal appearance
  • Light/dark mode switching
  • High contrast mode
  • Reduced motion preference

This PR was generated with Warp.

- Replace liquid glass styling with IBM Carbon Design System tokens
- Add carbon-theme.css with full Carbon color palette, typography, and spacing
- Add carbon-utils.css with Carbon-compatible utility classes
- Update accessibility.css with Carbon token references
- Remove glass-specific CSS files and JavaScript
- Update MainLayout and NavMenu to use Carbon styling
- Switch font from Inter to IBM Plex Sans
- Maintain all critical Radzen component overrides for:
  - Calendar/DatePicker with proper backgrounds
  - Dropdown/AutoComplete with selection states
  - Badges/Alerts with WCAG-compliant contrast
  - Buttons with Carbon variants
  - DataTable with proper header styling
  - Dialog with Carbon overlay
  - Focus states for accessibility

Co-Authored-By: Warp <agent@warp.dev>
Copilot AI review requested due to automatic review settings February 19, 2026 12:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request replaces the "Liquid Glass" UI styling with IBM Carbon Design System for a cleaner, more professional appearance. The migration removes all glassmorphism effects, mouse-tracking animations, and visual complexity in favor of Carbon's solid, accessible design language.

Changes:

  • Removed 4 CSS/JS files related to Liquid Glass styling and animations
  • Added 2 new CSS files implementing Carbon Design System tokens and utilities
  • Updated accessibility.css to use Carbon tokens
  • Migrated all Radzen component overrides to Carbon styling
  • Changed typography from Inter to IBM Plex Sans
  • Updated layout components to remove glass effect classes

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
liquid-glass-utils.css Deleted - utility classes replaced by carbon-utils.css
liquid-glass-force.css Deleted - glass effect overrides no longer needed
liquid-glass-accessibility.css Replaced by updated accessibility.css
custom-theme.css Deleted - replaced by carbon-theme.css
js/liquid-glass.js Deleted - mouse tracking and animation effects removed
carbon-theme.css New - Complete Carbon Design System token definitions and component overrides
carbon-utils.css New - Carbon-based utility classes for layout and styling
accessibility.css Updated to use Carbon tokens for WCAG compliance
App.razor Updated CSS imports and font to IBM Plex Sans
MainLayout.razor Removed glass-header and glass-sidebar classes
MainLayout.razor.css Updated to use Carbon design tokens
NavMenu.razor.css Updated to use Carbon design tokens and styling

Comment on lines +443 to +462
.rz-button-danger:hover,
button.rz-button-danger:hover,
.rz-button.rz-danger:hover {
background-color: #b81921;
}

/* Success Button */
.rz-button-success,
button.rz-button-success,
.rz-button.rz-success {
background-color: var(--cds-green-60);
color: var(--cds-text-on-color);
border: none;
}

.rz-button-success:hover,
button.rz-button-success:hover,
.rz-button.rz-success:hover {
background-color: #136e2d;
}

Copilot AI Feb 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hover states for danger and success buttons use hardcoded color values instead of CSS variables. Consider defining CSS variables for these hover states (e.g., --cds-red-70, --cds-green-70) to maintain consistency with the design system and improve maintainability. This would also make theme customization easier.

Copilot uses AI. Check for mistakes.
Comment on lines +705 to +731
.rz-alert-warning,
.rz-alert.rz-warning {
background-color: #fdf6dd;
border-left-color: var(--cds-yellow-30);
color: var(--cds-gray-100);
}

.rz-alert-info,
.rz-alert.rz-info {
background-color: var(--cds-blue-10);
border-left-color: var(--cds-support-info);
color: var(--cds-text-primary);
}

.rz-alert-success,
.rz-alert.rz-success {
background-color: #defbe6;
border-left-color: var(--cds-green-60);
color: var(--cds-text-primary);
}

.rz-alert-danger,
.rz-alert.rz-danger {
background-color: #fff1f1;
border-left-color: var(--cds-red-60);
color: var(--cds-text-primary);
}

Copilot AI Feb 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alert background colors use hardcoded hex values instead of CSS variables. Consider defining CSS variables for these background colors (e.g., --cds-alert-warning-bg, --cds-alert-success-bg, --cds-alert-danger-bg) to maintain consistency and improve maintainability. This would also ensure proper theming support for dark mode.

Copilot uses AI. Check for mistakes.
@GlenConway GlenConway merged commit eab788d into dev Feb 19, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants