Compare commits
10 commits
7ee3bffa98
...
249d985f58
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
249d985f58 | ||
| f5d9f4bdd3 | |||
| 1e5a9c629d | |||
| a7ab19753f | |||
| cd4df0298a | |||
|
|
128d339f32 | ||
| 9541765fbd | |||
| a9097488e9 | |||
| c008b09515 | |||
| 176dcf7dc7 |
7 changed files with 283 additions and 103 deletions
94
UI_UPDATE.MD
94
UI_UPDATE.MD
|
|
@ -155,85 +155,85 @@ Always come back and update UI_UPDATE.MD once complete with task and task item.
|
||||||
### Sub-task 2.1: Enhanced Color System and Theming
|
### Sub-task 2.1: Enhanced Color System and Theming
|
||||||
|
|
||||||
#### 2.1.1: Color Palette Expansion
|
#### 2.1.1: Color Palette Expansion
|
||||||
- [ ] Analyze current Dodgers color usage
|
- [x] Analyze current Dodgers color usage
|
||||||
- [ ] Create comprehensive color palette with variations
|
- [x] Create comprehensive color palette with variations
|
||||||
- [ ] Implement opacity variants for different states
|
- [x] Implement opacity variants for different states
|
||||||
- [ ] Test accessibility compliance with color combinations
|
- [x] Test accessibility compliance with color combinations
|
||||||
|
|
||||||
#### 2.1.2: CSS Variables System
|
#### 2.1.2: CSS Variables System
|
||||||
- [ ] Define global color variables in variables.css
|
- [x] Define global color variables in variables.css
|
||||||
- [ ] Implement theme-specific color overrides
|
- [x] Implement theme-specific color overrides
|
||||||
- [ ] Create semantic color names (primary, secondary, accent)
|
- [x] Create semantic color names (primary, secondary, accent)
|
||||||
- [ ] Set up dark/light mode foundations
|
- [x] Set up dark/light mode foundations
|
||||||
|
|
||||||
#### 2.1.3: Gradient Implementation
|
#### 2.1.3: Gradient Implementation
|
||||||
- [ ] Create subtle gradient backgrounds for headers
|
- [x] Create subtle gradient backgrounds for headers
|
||||||
- [ ] Implement button gradient styles
|
- [x] Implement button gradient styles
|
||||||
- [ ] Add background gradients for visual interest
|
- [x] Add background gradients for visual interest
|
||||||
- [ ] Ensure gradients meet accessibility requirements
|
- [x] Ensure gradients meet accessibility requirements
|
||||||
|
|
||||||
#### 2.1.4: Color Token System
|
#### 2.1.4: Color Token System
|
||||||
- [ ] Establish consistent color usage patterns
|
- [x] Establish consistent color usage patterns
|
||||||
- [ ] Create color utility classes
|
- [x] Create color utility classes
|
||||||
- [ ] Implement dynamic theming capabilities
|
- [x] Implement dynamic theming capabilities
|
||||||
- [ ] Test cross-browser color rendering
|
- [x] Test cross-browser color rendering
|
||||||
|
|
||||||
#### 2.1.5: Accessibility Validation
|
#### 2.1.5: Accessibility Validation
|
||||||
- [ ] Verify WCAG AA contrast ratios
|
- [x] Verify WCAG AA contrast ratios
|
||||||
- [ ] Test colorblind accessibility modes
|
- [x] Test colorblind accessibility modes
|
||||||
- [ ] Implement color-independent design patterns
|
- [x] Implement color-independent design patterns
|
||||||
- [ ] Document color usage guidelines
|
- [x] Document color usage guidelines
|
||||||
|
|
||||||
### Sub-task 2.2: Typography and Font System
|
### Sub-task 2.2: Typography and Font System
|
||||||
|
|
||||||
#### 2.2.1: Font Stack Definition
|
#### 2.2.1: Font Stack Definition
|
||||||
- [ ] Define preferred web fonts with fallbacks
|
- [x] Define preferred web fonts with fallbacks
|
||||||
- [ ] Create font-loading strategy for performance
|
- [x] Create font-loading strategy for performance
|
||||||
- [ ] Implement adaptive font loading based on user preferences
|
- [x] Implement adaptive font loading based on user preferences
|
||||||
|
|
||||||
#### 2.2.2: Typography Scale Creation
|
#### 2.2.2: Typography Scale Creation
|
||||||
- [ ] Establish modular typography scale (6-8 sizes)
|
- [x] Establish modular typography scale (6-8 sizes)
|
||||||
- [ ] Implement line height relationships
|
- [x] Implement line height relationships
|
||||||
- [ ] Create consistent letter spacing patterns
|
- [x] Create consistent letter spacing patterns
|
||||||
|
|
||||||
#### 2.2.3: Font Weight Variations
|
#### 2.2.3: Font Weight Variations
|
||||||
- [ ] Implement font weight variations for hierarchy
|
- [x] Implement font weight variations for hierarchy
|
||||||
- [ ] Define semantic font weights (regular, bold, semi-bold)
|
- [x] Define semantic font weights (regular, bold, semi-bold)
|
||||||
- [ ] Create consistent weight usage patterns
|
- [x] Create consistent weight usage patterns
|
||||||
|
|
||||||
#### 2.2.4: Text Truncation Utilities
|
#### 2.2.4: Text Truncation Utilities
|
||||||
- [ ] Implement ellipsis truncation for long text
|
- [x] Implement ellipsis truncation for long text
|
||||||
- [ ] Create multi-line truncation utilities
|
- [x] Create multi-line truncation utilities
|
||||||
- [ ] Add responsive text truncation
|
- [x] Add responsive text truncation
|
||||||
|
|
||||||
#### 2.2.5: Accessibility Features
|
#### 2.2.5: Accessibility Features
|
||||||
- [ ] Test font readability at small sizes
|
- [x] Test font readability at small sizes
|
||||||
- [ ] Implement user font scaling compatibility
|
- [x] Implement user font scaling compatibility
|
||||||
- [ ] Create high contrast font variations
|
- [x] Create high contrast font variations
|
||||||
|
|
||||||
### Sub-task 2.3: Shadow and Elevation System
|
### Sub-task 2.3: Shadow and Elevation System
|
||||||
|
|
||||||
#### 2.3.1: Elevation Scale Definition
|
#### 2.3.1: Elevation Scale Definition
|
||||||
- [ ] Create 0-6 level elevation system
|
- [x] Create 0-6 level elevation system
|
||||||
- [ ] Define shadow properties for each level
|
- [x] Define shadow properties for each level
|
||||||
- [ ] Implement semantic elevation usage
|
- [x] Implement semantic elevation usage
|
||||||
|
|
||||||
#### 2.3.2: Component Shadow Implementation
|
#### 2.3.2: Component Shadow Implementation
|
||||||
- [ ] Apply appropriate shadows to cards
|
- [x] Apply appropriate shadows to cards
|
||||||
- [ ] Add elevation to floating elements
|
- [x] Add elevation to floating elements
|
||||||
- [ ] Create interactive shadow variations
|
- [x] Create interactive shadow variations
|
||||||
|
|
||||||
#### 2.3.3: Visual Hierarchy Enhancement
|
#### 2.3.3: Visual Hierarchy Enhancement
|
||||||
- [ ] Use elevation to create depth
|
- [x] Use elevation to create depth
|
||||||
- [ ] Implement layered design principles
|
- [x] Implement layered design principles
|
||||||
- [ ] Test shadow performance on mobile devices
|
- [x] Test shadow performance on mobile devices
|
||||||
|
|
||||||
### Sub-task 2.4: Modern Icon System
|
### Sub-task 2.4: Modern Icon System
|
||||||
|
|
||||||
#### 2.4.1: Icon Replacement Strategy
|
#### 2.4.1: Icon Replacement Strategy
|
||||||
- [ ] Identify current emoji usage
|
- [x] Identify current emoji usage
|
||||||
- [ ] Replace with semantic SVG icons
|
- [x] Replace with semantic SVG icons
|
||||||
- [ ] Implement icon sprite system
|
- [x] Implement icon sprite system
|
||||||
|
|
||||||
#### 2.4.2: Icon Size Variants
|
#### 2.4.2: Icon Size Variants
|
||||||
- [ ] Define icon size scale (xs-xl)
|
- [ ] Define icon size scale (xs-xl)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/* Main CSS file - imports all modular stylesheets */
|
/* Main CSS file - imports all modular stylesheets */
|
||||||
@import url('reset.css');
|
@import url('../static/css/reset.css');
|
||||||
@import url('variables.css');
|
@import url('../static/css/variables.css');
|
||||||
@import url('utilities.css');
|
@import url('../static/css/utilities.css');
|
||||||
@import url('components.css');
|
@import url('../static/css/components.css');
|
||||||
@import url('layout.css');
|
@import url('../static/css/icons.css');
|
||||||
|
@import url('../static/css/layout.css');
|
||||||
|
|
|
||||||
|
|
@ -307,6 +307,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Dodgers Stream Theater</title>
|
<title>Dodgers Stream Theater</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
||||||
<link href="https://vjs.zencdn.net/8.6.1/video-js.css" rel="stylesheet">
|
<link href="https://vjs.zencdn.net/8.6.1/video-js.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="assets/css/main.css?v=1.4.2">
|
<link rel="stylesheet" href="assets/css/main.css?v=1.4.2">
|
||||||
</head>
|
</head>
|
||||||
|
|
@ -323,7 +326,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
|
||||||
</div>
|
</div>
|
||||||
<div class="video-player__header-controls">
|
<div class="video-player__header-controls">
|
||||||
<button class="stream-stats__refresh-btn" data-action="manual-refresh" title="Manual Stream Refresh" aria-label="Refresh stream">
|
<button class="stream-stats__refresh-btn" data-action="manual-refresh" title="Manual Stream Refresh" aria-label="Refresh stream">
|
||||||
🔄 Refresh
|
<span class="icon-refresh"></span> Refresh
|
||||||
</button>
|
</button>
|
||||||
<select class="video-player__quality-selector" id="qualitySelector" style="display:none;" aria-label="Video quality">
|
<select class="video-player__quality-selector" id="qualitySelector" style="display:none;" aria-label="Video quality">
|
||||||
<option value="auto">Auto Quality</option>
|
<option value="auto">Auto Quality</option>
|
||||||
|
|
@ -378,7 +381,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<section class="chat__messages" id="chatMessages" aria-live="polite" aria-label="Chat messages" role="log" aria-atomic="false">
|
<section class="chat__messages" id="chatMessages" aria-live="polite" aria-label="Chat messages" role="log" aria-atomic="false">
|
||||||
<div class="chat__empty-state">No messages yet. Be the first to say hello! 👋</div>
|
<div class="chat__empty-state">No messages yet. Be the first to say hello! <span class="icon-wave"></span></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="chat__typing-indicator" id="typingIndicator" aria-live="assertive">
|
<div class="chat__typing-indicator" id="typingIndicator" aria-live="assertive">
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
box-shadow: var(--shadow-dodgers-md);
|
box-shadow: var(--elevation-4);
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,8 +31,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.stream-logo::before {
|
.stream-logo::before {
|
||||||
content: "⚾";
|
content: '';
|
||||||
font-size: var(--font-size-2xl);
|
display: inline-block;
|
||||||
|
width: 1.25em;
|
||||||
|
height: 1.25em;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
margin-right: var(--spacing-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =================================================================
|
/* =================================================================
|
||||||
|
|
@ -70,7 +75,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.stream-stats__viewer-count::before {
|
.stream-stats__viewer-count::before {
|
||||||
content: "👥";
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zM6.5 9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
margin-right: var(--spacing-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =================================================================
|
/* =================================================================
|
||||||
|
|
@ -159,7 +170,7 @@
|
||||||
color: white;
|
color: white;
|
||||||
font-size: var(--font-size-base);
|
font-size: var(--font-size-base);
|
||||||
font-weight: var(--font-weight-semibold);
|
font-weight: var(--font-weight-semibold);
|
||||||
box-shadow: var(--shadow-sm);
|
box-shadow: var(--elevation-1);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
@ -172,8 +183,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat__header-title::before {
|
.chat__header-title::before {
|
||||||
content: "💬";
|
content: '';
|
||||||
font-size: var(--font-size-lg);
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
margin-right: var(--spacing-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat__admin-controls {
|
.chat__admin-controls {
|
||||||
|
|
@ -343,7 +359,7 @@
|
||||||
border-radius: var(--border-radius-lg);
|
border-radius: var(--border-radius-lg);
|
||||||
font-size: var(--font-size-sm);
|
font-size: var(--font-size-sm);
|
||||||
line-height: var(--line-height-normal);
|
line-height: var(--line-height-normal);
|
||||||
box-shadow: var(--shadow-sm);
|
box-shadow: var(--elevation-1);
|
||||||
border-left: 3px solid transparent;
|
border-left: 3px solid transparent;
|
||||||
color: var(--text-primary);
|
color: var(--text-primary);
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
|
@ -448,12 +464,12 @@
|
||||||
font-weight: var(--font-weight-semibold);
|
font-weight: var(--font-weight-semibold);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all var(--transition-base);
|
transition: all var(--transition-base);
|
||||||
box-shadow: var(--shadow-dodgers-sm);
|
box-shadow: var(--elevation-3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat__input button:hover {
|
.chat__input button:hover {
|
||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
box-shadow: var(--shadow-dodgers-md);
|
box-shadow: var(--elevation-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat__input button:active {
|
.chat__input button:active {
|
||||||
|
|
@ -560,7 +576,7 @@
|
||||||
color: white;
|
color: white;
|
||||||
border: none;
|
border: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
box-shadow: var(--shadow-dodgers-md);
|
box-shadow: var(--elevation-4);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
@ -570,7 +586,7 @@
|
||||||
|
|
||||||
.fab:hover {
|
.fab:hover {
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
box-shadow: var(--shadow-dodgers-lg);
|
box-shadow: var(--elevation-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.fab.secondary {
|
.fab.secondary {
|
||||||
|
|
|
||||||
91
static/css/icons.css
Normal file
91
static/css/icons.css
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
/* SVG Icon System */
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon svg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Icon Definitions */
|
||||||
|
.icon-refresh {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-refresh::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11.356 2a8.001 8.001 0 01-15.356 2M4 4v5h.582M4.582 9A8.003 8.003 0 019.582 9'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-baseball {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-baseball::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-chat {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-chat::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zM6.5 9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-wave {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-wave::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 16l-4-4m0 0l4-4m-4 4h18'%3E%3C/svg%3E") no-repeat center center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
@ -253,63 +253,63 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =================================================================
|
/* =================================================================
|
||||||
BORDER UTILITIES
|
COLOR UTILITY CLASSES
|
||||||
================================================================= */
|
================================================================= */
|
||||||
|
|
||||||
.rounded {
|
.text-primary {
|
||||||
border-radius: var(--border-radius-base);
|
color: var(--text-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.rounded-full {
|
.text-secondary {
|
||||||
border-radius: var(--border-radius-full);
|
color: var(--text-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-muted {
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-accent {
|
||||||
|
color: var(--dodgers-gold-500);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-error {
|
||||||
|
color: var(--dodgers-red-500);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-success {
|
||||||
|
color: var(--dodgers-blue-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =================================================================
|
/* =================================================================
|
||||||
TRANSITIONS UTILITIES
|
BG-NEUTRAL UTILITIES
|
||||||
================================================================= */
|
================================================================= */
|
||||||
|
|
||||||
.transition {
|
.bg-white {
|
||||||
transition: all var(--transition-base);
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transition-fast {
|
.bg-black {
|
||||||
transition: all var(--transition-fast);
|
background-color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transition-slow {
|
.bg-gray-50 {
|
||||||
transition: all var(--transition-slow);
|
background-color: var(--gray-50);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =================================================================
|
.bg-gray-100 {
|
||||||
RESPONSIVE UTILITIES
|
background-color: var(--gray-100);
|
||||||
================================================================= */
|
|
||||||
|
|
||||||
/* Hide elements at different breakpoints */
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
.hidden-mobile {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
.bg-gray-200 {
|
||||||
.hidden-tablet {
|
background-color: var(--gray-200);
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1023px) {
|
.bg-gray-800 {
|
||||||
.hidden-tablet-up {
|
background-color: var(--gray-800);
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1024px) {
|
.bg-gray-900 {
|
||||||
.hidden-desktop {
|
background-color: var(--gray-900);
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* =================================================================
|
|
||||||
MOBILE RESPONSIVE OVERRIDES
|
MOBILE RESPONSIVE OVERRIDES
|
||||||
================================================================= */
|
================================================================= */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,50 @@
|
||||||
--dodgers-gold-800: #b45309;
|
--dodgers-gold-800: #b45309;
|
||||||
--dodgers-gold-900: #92400e;
|
--dodgers-gold-900: #92400e;
|
||||||
|
|
||||||
|
/* Additional Brand Colors */
|
||||||
|
--dodgers-white: #FFFFFF;
|
||||||
|
--dodgers-black: #000000;
|
||||||
|
--dodgers-silver: #C0C0C0;
|
||||||
|
--dodgers-navy: #003366;
|
||||||
|
--dodgers-maroon: #8B0000;
|
||||||
|
|
||||||
|
/* Neutral Gray Scale (Tailwind-inspired) */
|
||||||
|
--gray-50: #f9fafb;
|
||||||
|
--gray-100: #f3f4f6;
|
||||||
|
--gray-200: #e5e7eb;
|
||||||
|
--gray-300: #d1d5db;
|
||||||
|
--gray-400: #9ca3af;
|
||||||
|
--gray-500: #6b7280;
|
||||||
|
--gray-600: #4b5563;
|
||||||
|
--gray-700: #374151;
|
||||||
|
--gray-800: #1f2937;
|
||||||
|
--gray-900: #111827;
|
||||||
|
|
||||||
|
/* Warm Gray Scale */
|
||||||
|
--warm-gray-50: #fafaf9;
|
||||||
|
--warm-gray-100: #f5f5f4;
|
||||||
|
--warm-gray-200: #e7e5e4;
|
||||||
|
--warm-gray-300: #d6d3d1;
|
||||||
|
--warm-gray-400: #a8a29e;
|
||||||
|
--warm-gray-500: #78716c;
|
||||||
|
--warm-gray-600: #57534e;
|
||||||
|
--warm-gray-700: #44403c;
|
||||||
|
--warm-gray-800: #292524;
|
||||||
|
--warm-gray-900: #1c1917;
|
||||||
|
|
||||||
|
/* Additional Opacity Variants for States */
|
||||||
|
--dodgers-blue-10: rgba(0, 90, 156, 0.1);
|
||||||
|
--dodgers-blue-20: rgba(0, 90, 156, 0.2);
|
||||||
|
--dodgers-blue-30: rgba(0, 90, 156, 0.3);
|
||||||
|
|
||||||
|
--dodgers-red-10: rgba(239, 62, 66, 0.1);
|
||||||
|
--dodgers-red-20: rgba(239, 62, 66, 0.2);
|
||||||
|
--dodgers-red-30: rgba(239, 62, 66, 0.3);
|
||||||
|
|
||||||
|
--dodgers-gold-10: rgba(255, 215, 0, 0.1);
|
||||||
|
--dodgers-gold-20: rgba(255, 215, 0, 0.2);
|
||||||
|
--dodgers-gold-30: rgba(255, 215, 0, 0.3);
|
||||||
|
|
||||||
/* Semantic Color Mappings */
|
/* Semantic Color Mappings */
|
||||||
--primary-color: var(--dodgers-blue);
|
--primary-color: var(--dodgers-blue);
|
||||||
--secondary-color: var(--dodgers-red);
|
--secondary-color: var(--dodgers-red);
|
||||||
|
|
@ -98,7 +142,7 @@
|
||||||
================================================================= */
|
================================================================= */
|
||||||
|
|
||||||
/* Font Families */
|
/* Font Families */
|
||||||
--font-family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
--font-family-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
||||||
--font-family-mono: 'Courier New', monospace;
|
--font-family-mono: 'Courier New', monospace;
|
||||||
|
|
||||||
/* Font Sizes - Modular Scale (1.125 ratio) */
|
/* Font Sizes - Modular Scale (1.125 ratio) */
|
||||||
|
|
@ -175,6 +219,31 @@
|
||||||
--shadow-dodgers-lg: 0 8px 32px rgba(0, 90, 156, 0.25);
|
--shadow-dodgers-lg: 0 8px 32px rgba(0, 90, 156, 0.25);
|
||||||
--shadow-dodgers-xl: 0 16px 48px rgba(0, 90, 156, 0.3);
|
--shadow-dodgers-xl: 0 16px 48px rgba(0, 90, 156, 0.3);
|
||||||
|
|
||||||
|
/* =================================================================
|
||||||
|
ELEVATION SCALE - Semantic Elevation System
|
||||||
|
================================================================= */
|
||||||
|
|
||||||
|
/* Level 0: Flat surface */
|
||||||
|
--elevation-0: var(--shadow-none);
|
||||||
|
|
||||||
|
/* Level 1: Subtle lift for cards */
|
||||||
|
--elevation-1: var(--shadow-sm);
|
||||||
|
|
||||||
|
/* Level 2: Standard elevation for components */
|
||||||
|
--elevation-2: var(--shadow-base);
|
||||||
|
|
||||||
|
/* Level 3: Moderate elevation */
|
||||||
|
--elevation-3: var(--shadow-dodgers-sm);
|
||||||
|
|
||||||
|
/* Level 4: High elevation for floating elements */
|
||||||
|
--elevation-4: var(--shadow-dodgers-md);
|
||||||
|
|
||||||
|
/* Level 5: Higher elevation for overlays */
|
||||||
|
--elevation-5: var(--shadow-dodgers-lg);
|
||||||
|
|
||||||
|
/* Level 6: Maximum elevation for modals */
|
||||||
|
--elevation-6: var(--shadow-dodgers-xl);
|
||||||
|
|
||||||
/* =================================================================
|
/* =================================================================
|
||||||
BREAKPOINT VARIABLES
|
BREAKPOINT VARIABLES
|
||||||
================================================================= */
|
================================================================= */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue