Ezmary commited on
Commit
4b4c39a
·
verified ·
1 Parent(s): 245e2b1

Update src/App.scss

Browse files
Files changed (1) hide show
  1. src/App.scss +75 -66
src/App.scss CHANGED
@@ -1,3 +1,4 @@
 
1
  // 1. Import Tailwind's base, components, and utilities
2
  @import 'tailwindcss/base';
3
  @import 'tailwindcss/components';
@@ -45,20 +46,17 @@
45
  }
46
  }
47
 
48
- // Wrapper for the main content, to ensure footer doesn't overlap if content is short
49
  .main-wrapper {
50
- min-height: 100vh; // Or 100dvh for dynamic viewport height
51
  display: flex;
52
  flex-direction: column;
53
  }
54
  .media-area {
55
- flex-grow: 1; // Allows this area to take up available space
56
  }
57
 
58
 
59
- // 4. Styles for components
60
-
61
- /* Notification Popover ... (بدون تغییر از نسخه قبل) ... */
62
  .notification-popover-wrapper {
63
  position: fixed;
64
  top: 1rem;
@@ -107,11 +105,9 @@
107
  color: oklch(0.95 0.01 230);
108
  }
109
 
110
-
111
- /* Header controls ... (بدون تغییر از نسخه قبل) ... */
112
  .header-controls {
113
  display: flex;
114
- padding: 0.75rem 0.5rem;
115
  justify-content: space-between;
116
  align-items: center;
117
  width: 100%;
@@ -125,28 +121,28 @@
125
  display: flex;
126
  align-items: center;
127
  justify-content: center;
128
- padding: 0.5rem;
129
- width: 40px;
130
- height: 40px;
131
- border-radius: var(--radius-lg, 0.625rem);
132
- background-color: #e5e7eb;
133
  cursor: pointer;
134
- transition: background-color 0.2s, transform 0.1s ease-out;
135
 
136
  svg {
137
  opacity: 0.7;
138
- stroke: #374151;
139
- width: 24px;
140
  height: 24px;
141
  }
142
 
143
  &:hover {
144
- background-color: #d1d5db;
145
  }
146
 
147
  &:active {
148
- background-color: #9ca3af;
149
- transform: scale(0.95);
150
  }
151
  }
152
 
@@ -156,7 +152,7 @@
156
  background-color: oklch(0.35 0 0);
157
  }
158
  &:active {
159
- background-color: oklch(0.40 0 0);
160
  transform: scale(0.95);
161
  }
162
  svg {
@@ -165,88 +161,101 @@
165
  }
166
  }
167
 
168
- /* Logo Animation Styling */
169
  .logo-animation-wrapper {
170
- position: relative; // Important for inner absolute positioning
171
  display: flex;
172
  align-items: center;
173
  justify-content: center;
174
- // &.for-footer will be handled by its container
 
 
 
 
175
  }
176
 
177
-
178
- /* Footer and Control Buttons - REVISED FOR FIXED POSITIONS */
179
- .footer-controls {
180
  width: 100%;
181
  display: flex;
182
- justify-content: space-between; /* Cam left, Mic right */
183
- align-items: center; /* Vertically align items if they have different heights */
 
 
184
  position: absolute;
185
  bottom: 0;
186
- left: 0; // Ensure it spans full width for absolute positioning of children
187
- padding: 0.75rem 0.5rem; // 12px top/bottom, 8px left/right - Keep this minimal
188
- z-index: 20; // Above video/logo but below modals
 
189
  }
190
 
191
- // Wrapper for individual control buttons to manage their specific positioning if needed
192
- .control-button-wrapper {
193
- position: relative; /* For switch camera button positioning */
194
  display: flex;
195
- justify-content: center;
196
- align-items: center;
197
  }
198
 
199
- /* Small logo specifically for the footer, positioned in the middle */
200
- .small-logo-footer {
 
 
 
 
201
  position: absolute;
202
  left: 50%;
203
- top: 50%; // Relative to footer's padding
204
  transform: translate(-50%, -50%);
205
- display: flex;
206
- align-items: center;
207
- justify-content: center;
208
- z-index: 1; // Below buttons if overlap is an issue, but should be fine
209
  }
210
 
211
 
212
  .control-button {
213
- height: 70px;
214
- width: 70px;
215
  border-radius: 9999px;
216
  padding: 0;
217
  display: flex;
218
  align-items: center;
219
  justify-content: center;
220
  border-width: 1px;
221
- border-color: var(--border);
222
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
223
  cursor: pointer;
224
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
225
  flex-shrink: 0;
226
- z-index: 2; // Ensure buttons are clickable above the small logo if it ever overlaps
227
 
228
  &:hover {
229
  transform: scale(1.05);
230
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
231
  }
 
 
 
 
 
 
 
232
  }
233
 
234
- // Cam button is on the left as per HTML example
235
- .cam-button-color { background-color: #E0ECFF; } // Blueish
236
- // Mic button is on the right
237
  .mic-button-color { background-color: #fecdd3; } // Reddish
 
 
238
 
239
- .dark .cam-button-color { background-color: #223355; }
240
  .dark .mic-button-color { background-color: #5C2129; }
 
241
 
242
 
243
- /* Switch Camera Button - positioned relative to cam-button-wrapper */
244
  .switch-camera-button-container {
245
  position: absolute;
246
- bottom: calc(100% + 0.5rem); // Above the cam button
247
- left: 50%; // Centered horizontally relative to its wrapper
248
- transform: translateX(-50%) translateY(15px) scale(0.7); // Initial state for animation
249
- z-index: 5; // Above the cam button
250
  opacity: 0;
251
  pointer-events: none;
252
  transition: opacity 0.35s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform 0.35s cubic-bezier(0.68, -0.55, 0.27, 1.55);
@@ -254,14 +263,14 @@
254
 
255
  &.visible {
256
  opacity: 1;
257
- transform: translateX(-50%) translateY(0) scale(1); // Final state
258
  pointer-events: auto;
259
  }
260
  }
261
 
262
  .switch-camera-button-content {
263
- width: 44px;
264
- height: 44px;
265
  background-color: var(--background);
266
  border: 1px solid var(--border);
267
  border-radius: 9999px;
@@ -274,25 +283,25 @@
274
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
275
 
276
  &:hover {
277
- transform: scale(1.12) rotate(-6deg);
278
  box-shadow: 0 7px 15px rgba(0,0,0,0.18), 0 3px 6px rgba(0,0,0,0.12);
279
  }
280
  &:active {
281
- transform: scale(1.03) rotate(0deg);
282
  }
283
 
284
  svg {
285
- width: 20px;
286
- height: 20px;
287
  stroke: var(--foreground);
288
  transition: transform 0.3s ease-in-out;
289
  }
290
  &:hover svg {
291
- transform: rotate(360deg);
292
  }
293
  }
294
 
295
- /* Keyframes for popover ... (بدون تغییر از نسخه قبل) ... */
296
  @keyframes popover-drop-in {
297
  0% {
298
  opacity: 0;
 
1
+ // ... (بالای فایل App.scss بدون تغییر) ...
2
  // 1. Import Tailwind's base, components, and utilities
3
  @import 'tailwindcss/base';
4
  @import 'tailwindcss/components';
 
46
  }
47
  }
48
 
 
49
  .main-wrapper {
50
+ min-height: 100vh;
51
  display: flex;
52
  flex-direction: column;
53
  }
54
  .media-area {
55
+ flex-grow: 1;
56
  }
57
 
58
 
59
+ /* Notification Popover & Header controls ... (بدون تغییر از نسخه قبل) ... */
 
 
60
  .notification-popover-wrapper {
61
  position: fixed;
62
  top: 1rem;
 
105
  color: oklch(0.95 0.01 230);
106
  }
107
 
 
 
108
  .header-controls {
109
  display: flex;
110
+ padding: 0.75rem 0.5rem;
111
  justify-content: space-between;
112
  align-items: center;
113
  width: 100%;
 
121
  display: flex;
122
  align-items: center;
123
  justify-content: center;
124
+ padding: 0.5rem;
125
+ width: 40px;
126
+ height: 40px;
127
+ border-radius: var(--radius-lg, 0.625rem);
128
+ background-color: #e5e7eb;
129
  cursor: pointer;
130
+ transition: background-color 0.2s, transform 0.1s ease-out;
131
 
132
  svg {
133
  opacity: 0.7;
134
+ stroke: #374151;
135
+ width: 24px;
136
  height: 24px;
137
  }
138
 
139
  &:hover {
140
+ background-color: #d1d5db;
141
  }
142
 
143
  &:active {
144
+ background-color: #9ca3af;
145
+ transform: scale(0.95);
146
  }
147
  }
148
 
 
152
  background-color: oklch(0.35 0 0);
153
  }
154
  &:active {
155
+ background-color: oklch(0.40 0 0);
156
  transform: scale(0.95);
157
  }
158
  svg {
 
161
  }
162
  }
163
 
164
+
165
  .logo-animation-wrapper {
166
+ position: relative;
167
  display: flex;
168
  align-items: center;
169
  justify-content: center;
170
+ // svg inside the logo should fill its container
171
+ & > div > svg {
172
+ width: 100%;
173
+ height: 100%;
174
+ }
175
  }
176
 
177
+ /* Footer styles to mimic HTML example */
178
+ .footer-controls-html-like {
 
179
  width: 100%;
180
  display: flex;
181
+ /* Default for HTML was space-between if no logo, space-around with logo.
182
+ Let's try space-between and position logo absolutely for now. */
183
+ justify-content: space-between; // Mic left, Cam right as per your HTML example
184
+ align-items: center;
185
  position: absolute;
186
  bottom: 0;
187
+ // Padding from your HTML example
188
+ padding: 2rem 3rem; // 32px top/bottom, 48px left/right
189
+ box-sizing: border-box;
190
+ z-index: 20;
191
  }
192
 
193
+ // Wrapper for the camera button and its switch button, to align with HTML
194
+ .cam-wrapper-html-like {
195
+ position: relative; // For absolute positioning of switch-camera-button
196
  display: flex;
197
+ justify-content: center; // Center the button itself if wrapper is wider
 
198
  }
199
 
200
+ .small-logo-footer-html-like {
201
+ // This will be positioned between the two main buttons if footer uses space-around
202
+ // If footer uses space-between, we might need to position it absolutely in the center
203
+ // For now, let's assume it just takes its space if visible.
204
+ // We need to ensure the parent .footer-controls-html-like can accommodate it.
205
+ // To place it in the absolute center of the footer:
206
  position: absolute;
207
  left: 50%;
208
+ top: 50%; // Relative to footer's padding box
209
  transform: translate(-50%, -50%);
210
+ z-index: 1; // Behind buttons if they overlap
 
 
 
211
  }
212
 
213
 
214
  .control-button {
215
+ height: 80px; // From your HTML
216
+ width: 80px; // From your HTML
217
  border-radius: 9999px;
218
  padding: 0;
219
  display: flex;
220
  align-items: center;
221
  justify-content: center;
222
  border-width: 1px;
223
+ border-color: var(--border); // Uses your theme's border color
224
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
225
  cursor: pointer;
226
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
227
  flex-shrink: 0;
228
+ z-index: 2; // Ensure buttons are above the small logo
229
 
230
  &:hover {
231
  transform: scale(1.05);
232
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
233
  }
234
+
235
+ // Ensure SVGs inside control buttons scale appropriately
236
+ svg {
237
+ // transform: scale(0.55); // If SVGs are too large by default
238
+ // Or set explicit width/height if SVGs don't have inherent good sizes
239
+ // width: 38px; height: 38px; // Example, adjust based on your SVGs
240
+ }
241
  }
242
 
243
+ // Mic button is on the left in HTML example
 
 
244
  .mic-button-color { background-color: #fecdd3; } // Reddish
245
+ // Cam button is on the right in HTML example
246
+ .cam-button-color { background-color: #E0ECFF; } // Blueish
247
 
 
248
  .dark .mic-button-color { background-color: #5C2129; }
249
+ .dark .cam-button-color { background-color: #223355; }
250
 
251
 
252
+ /* Switch Camera Button - positioning relative to its wrapper */
253
  .switch-camera-button-container {
254
  position: absolute;
255
+ bottom: calc(100% + 0.65rem); // As in your HTML
256
+ left: 50%;
257
+ transform: translateX(-50%) translateY(15px) scale(0.7);
258
+ z-index: 5;
259
  opacity: 0;
260
  pointer-events: none;
261
  transition: opacity 0.35s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform 0.35s cubic-bezier(0.68, -0.55, 0.27, 1.55);
 
263
 
264
  &.visible {
265
  opacity: 1;
266
+ transform: translateX(-50%) translateY(0) scale(1);
267
  pointer-events: auto;
268
  }
269
  }
270
 
271
  .switch-camera-button-content {
272
+ width: 48px; // As in your HTML
273
+ height: 48px; // As in your HTML
274
  background-color: var(--background);
275
  border: 1px solid var(--border);
276
  border-radius: 9999px;
 
283
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
284
 
285
  &:hover {
286
+ transform: scale(1.12) rotate(-6deg); // As in your HTML
287
  box-shadow: 0 7px 15px rgba(0,0,0,0.18), 0 3px 6px rgba(0,0,0,0.12);
288
  }
289
  &:active {
290
+ transform: scale(1.03) rotate(0deg); // As in your HTML
291
  }
292
 
293
  svg {
294
+ width: 22px; // As in your HTML
295
+ height: 22px; // As in your HTML
296
  stroke: var(--foreground);
297
  transition: transform 0.3s ease-in-out;
298
  }
299
  &:hover svg {
300
+ transform: rotate(360deg); // As in your HTML
301
  }
302
  }
303
 
304
+ /* Keyframes for popover ... (بدون تغییر) ... */
305
  @keyframes popover-drop-in {
306
  0% {
307
  opacity: 0;