2025-08-31 13:10:45 +02:00
# Glass Morphism Implementation Guide
## Overview
This document details the glass morphism design patterns implemented in the MonacoUSA Portal, following the design philosophy outlined in design-system.md.
## Implementation Date
December 2024
2025-08-31 15:38:19 +02:00
## Latest Update
January 2025 - Enhanced Sidebar Design with Fixed Width
2025-08-31 13:10:45 +02:00
## Key Changes
### 1. Global SCSS Architecture
Created `assets/scss/main.scss` with comprehensive design system implementation:
- Monaco red color spectrum variables
- Glass morphism mixins
- Animation utilities
- Component classes
- Responsive breakpoints
### 2. Layout Transformations
2025-08-31 15:38:19 +02:00
#### Enhanced Sidebar Design (All Layouts)
- **Fixed Width**: 280px permanent sidebar (non-collapsible)
- **Enhanced Glass Effects**: 30px blur with improved opacity
- **No Hamburger Menu**: Removed collapse/expand functionality entirely
- **Vertical Profile Card**: Small avatar stacked above user info
- **Animated Navigation**: Hover effects with smooth transitions
- **Glass Badges**: Consistent styling across all access levels
- **Shimmer Animation**: Logo with subtle shimmer effect
2025-08-31 13:10:45 +02:00
#### Admin Layout (`layouts/admin.vue`)
2025-08-31 15:38:19 +02:00
- **Enhanced Glass Navigation**: Fixed 280px width with enhanced blur
2025-08-31 13:10:45 +02:00
- **Gradient App Bar**: Dark gradient from monaco-red-600 to monaco-red-900
- **Glass Icon Buttons**: Semi-transparent with hover effects
2025-08-31 15:38:19 +02:00
- **Profile Card**: Vertical layout with admin-specific menu options
2025-08-31 13:10:45 +02:00
#### Board Layout (`layouts/board.vue`)
2025-08-31 15:38:19 +02:00
- **Enhanced Glass Navigation**: Consistent 280px fixed width
2025-08-31 13:10:45 +02:00
- **Gradient App Bar**: Softer gradient from monaco-red to brown tones
- **Glass Search Dialog**: Search overlay with glass card styling
2025-08-31 15:38:19 +02:00
- **Profile Card**: Board member profile with vertical layout
2025-08-31 13:10:45 +02:00
#### Member Layout (`layouts/member.vue`)
2025-08-31 15:38:19 +02:00
- **Enhanced Glass Navigation**: Same 280px fixed width design
2025-08-31 13:10:45 +02:00
- **Gradient App Bar**: Lightest gradient for member access level
- **Streamlined Navigation**: Fewer menu items with clear hierarchy
2025-08-31 15:38:19 +02:00
- **Profile Card**: Member profile with consistent vertical layout
2025-08-31 13:10:45 +02:00
## Glass Morphism Patterns
### Core Mixins
```scss
2025-08-31 15:38:19 +02:00
// Enhanced glass effect with stronger blur
@mixin enhanced-glass($opacity: 0.9, $blur: 30px) {
background: linear-gradient(
135deg,
rgba(255, 255, 255, $opacity * 0.95),
rgba(255, 255, 255, $opacity * 0.85),
rgba(255, 255, 255, $opacity * 0.75)
);
backdrop-filter: blur($blur) saturate(180%);
-webkit-backdrop-filter: blur($blur) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.25);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.37),
inset 0 1px 2px rgba(255, 255, 255, 0.6),
inset 0 -1px 2px rgba(0, 0, 0, 0.05);
2025-08-31 13:10:45 +02:00
}
```
### Component Classes
#### Glass Cards
- `.glass-card` : Base glass effect card
- `.glass-card--dark` : Dark variant for dark backgrounds
- `.glass-card--colored` : Monaco red tinted glass
#### Navigation Items
- `.glass-nav-item` : Main navigation items with hover effects
- `.glass-nav-item-sub` : Sub-navigation items with reduced opacity
- Active states include gradient backgrounds and left border accent
#### Buttons
- `.glass-icon-btn` : Icon buttons with glass effect
- `.monaco-btn--primary` : Primary buttons with Monaco gradient
- `.monaco-btn--glass` : Glass variant buttons
## Visual Hierarchy
### Access Level Differentiation
1. **Admin** : Darkest gradients (monaco-red-900 range)
2. **Board** : Medium gradients (monaco-red-700 range)
3. **Member** : Lightest gradients (monaco-red-500 range)
### Depth & Layering
2025-08-31 15:38:19 +02:00
- Navigation drawer: Fixed 280px width, 90% opacity, 30px blur
- Profile card: Vertical layout with small avatar
2025-08-31 13:10:45 +02:00
- Dropdowns: 95% opacity, 20px blur
- Cards: 80% opacity, 15px blur
- Buttons: 10-20% opacity, 10px blur
2025-08-31 15:38:19 +02:00
- No collapsible functionality - permanent fixed sidebar
2025-08-31 13:10:45 +02:00
## Animation Patterns
### Float Animation
```scss
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
```
Applied to logo for subtle movement.
### Hover Effects
- Navigation items: translateX(2px) on hover
- Buttons: translateY(-1px) with shadow enhancement
- Cards: translateY(-2px) with increased shadow
## Color Usage
### Primary Monaco Red Spectrum
- `#dc2626` - Primary brand color
- `#b91c1c` - Dark accent
- `#ef4444` - Light accent
- `#991b1b` - Deep red for admin
- `#7f1d1d` - Darkest tone
### Gradients
- **Monaco Gradient**: `linear-gradient(135deg, #dc2626 0%, #b91c1c 100%)`
- **Admin Gradient**: Darker tones for authority
- **Board Gradient**: Balanced mid-tones
- **Member Gradient**: Lighter, welcoming tones
## Responsive Considerations
### Breakpoints
- Mobile: < 640px
- Tablet: 640px - 1024px
- Desktop: > 1024px
### Mobile Optimizations
- Reduced blur effects for performance
- Simplified gradients
- Adjusted spacing and margins
- Auto-closing navigation drawer
## Performance Optimizations
### CSS Optimizations
- Hardware acceleration with `transform: translateZ(0)`
- Will-change property for animated elements
- Reduced motion preferences respected
### Blur Performance
- Limited blur radius to maximum 30px
- Selective application on key elements
- Fallback styles for non-supporting browsers
## Browser Compatibility
### Supported Browsers
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
### Fallbacks
- Solid backgrounds for browsers without backdrop-filter
- Standard box-shadows without blur
- Graceful degradation for older browsers
## Implementation Checklist
### Completed
- [x] Global SCSS architecture
- [x] Admin layout glass morphism
- [x] Board layout glass morphism
- [x] Member layout glass morphism
- [x] Monaco color system integration
- [x] Animation patterns
- [x] Responsive design
- [x] Browser compatibility
### Future Enhancements
- [ ] Component library with glass variants
- [ ] Dark mode glass effects
- [ ] Advanced animation sequences
- [ ] Performance monitoring
- [ ] A/B testing for user preference
## Usage Guidelines
### When to Use Glass Effects
1. **Primary UI Elements** : Navigation, headers, cards
2. **Overlays** : Modals, dialogs, dropdowns
3. **Interactive Elements** : Buttons, form fields
4. **Status Indicators** : Badges, chips, alerts
### When to Avoid
1. **Body Text Areas** : Maintain readability
2. **High-Frequency Updates** : Performance consideration
3. **Critical Actions** : Ensure clarity over aesthetics
4. **Accessibility Concerns** : Provide alternatives
## Maintenance Notes
### File Locations
- **SCSS**: `assets/scss/main.scss`
- **Layouts**: `layouts/admin.vue` , `layouts/board.vue` , `layouts/member.vue`
- **Config**: `nuxt.config.ts` (theme configuration)
### Update Process
1. Modify SCSS variables in main.scss
2. Test across all layouts
3. Verify responsive behavior
4. Check browser compatibility
5. Update this documentation
## Related Documentation
- [Design System ](./design-system.md )
- [Implementation Guide ](./README.md )
- [Component Architecture ](../components/README.md )
---
*Last Updated: December 2024*
*Implementation Version: 1.0.0*