230 lines
6.8 KiB
Markdown
230 lines
6.8 KiB
Markdown
# 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
|
|
|
|
## Latest Update
|
|
January 2025 - Enhanced Sidebar Design with Fixed Width
|
|
|
|
## 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
|
|
|
|
#### 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
|
|
|
|
#### Admin Layout (`layouts/admin.vue`)
|
|
- **Enhanced Glass Navigation**: Fixed 280px width with enhanced blur
|
|
- **Gradient App Bar**: Dark gradient from monaco-red-600 to monaco-red-900
|
|
- **Glass Icon Buttons**: Semi-transparent with hover effects
|
|
- **Profile Card**: Vertical layout with admin-specific menu options
|
|
|
|
#### Board Layout (`layouts/board.vue`)
|
|
- **Enhanced Glass Navigation**: Consistent 280px fixed width
|
|
- **Gradient App Bar**: Softer gradient from monaco-red to brown tones
|
|
- **Glass Search Dialog**: Search overlay with glass card styling
|
|
- **Profile Card**: Board member profile with vertical layout
|
|
|
|
#### Member Layout (`layouts/member.vue`)
|
|
- **Enhanced Glass Navigation**: Same 280px fixed width design
|
|
- **Gradient App Bar**: Lightest gradient for member access level
|
|
- **Streamlined Navigation**: Fewer menu items with clear hierarchy
|
|
- **Profile Card**: Member profile with consistent vertical layout
|
|
|
|
## Glass Morphism Patterns
|
|
|
|
### Core Mixins
|
|
|
|
```scss
|
|
// 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);
|
|
}
|
|
```
|
|
|
|
### 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
|
|
- Navigation drawer: Fixed 280px width, 90% opacity, 30px blur
|
|
- Profile card: Vertical layout with small avatar
|
|
- Dropdowns: 95% opacity, 20px blur
|
|
- Cards: 80% opacity, 15px blur
|
|
- Buttons: 10-20% opacity, 10px blur
|
|
- No collapsible functionality - permanent fixed sidebar
|
|
|
|
## 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* |