Ezmary commited on
Commit
4d9ef16
·
verified ·
1 Parent(s): 526a21a

Update src/App.scss

Browse files
Files changed (1) hide show
  1. src/App.scss +82 -77
src/App.scss CHANGED
@@ -29,42 +29,58 @@
29
  outline-color: var(--foreground);
30
  box-sizing: border-box;
31
  }
32
- body {
33
  @apply bg-background text-foreground;
34
- overflow-x: hidden;
 
35
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
36
  -webkit-font-smoothing: antialiased;
37
  -moz-osx-font-smoothing: grayscale;
38
  margin: 0;
39
  padding: 0;
 
 
40
  }
41
- html {
42
- margin: 0;
43
- padding: 0;
44
- overflow-x: hidden;
45
- }
 
 
 
 
 
46
  }
47
 
48
  .main-wrapper {
49
- min-height: 100vh;
50
  display: flex;
51
  flex-direction: column;
 
 
 
52
  }
 
53
  .media-area {
54
  flex-grow: 1;
55
  position: relative;
 
 
 
 
56
  }
57
 
58
  #large-logo-container {
59
- display: flex;
60
- align-items: center;
61
- justify-content: center;
62
- width: 100%;
63
- height: 100%;
64
- position: absolute;
65
- top: 0;
66
- left: 0;
67
- pointer-events: none; // از کلیک شدن روی لوگو جلوگیری می‌کند
68
  }
69
 
70
  /* Notification Popover & Header controls (بدون تغییر) */
@@ -88,6 +104,7 @@
88
  .header-controls {
89
  display: flex; padding: 0.75rem 0.5rem; justify-content: space-between; align-items: center;
90
  width: 100%; position: absolute; top: 0; left: 0; z-index: 10;
 
91
  }
92
  .header-button {
93
  display: flex; align-items: center; justify-content: center; padding: 0.5rem;
@@ -106,47 +123,42 @@
106
 
107
  /* Logo Animation Styling */
108
  .logo-animation-wrapper {
109
- position: relative; // مهم برای حلقه‌های داخلی
110
  display: flex;
111
  align-items: center;
112
  justify-content: center;
113
- // اطمینان از اینکه SVG داخل لوگو تمام کانتینر آیکون را پر می‌کند
114
- & > .z-10 > svg { // هدف‌گیری دقیق‌تر SVG داخل کانتینر آیکون
115
  width: 100%;
116
  height: 100%;
117
  }
118
  }
119
- // .logo-animation-wrapper.for-footer { } // اگر استایل خاصی برای لوگوی فوتر لازم باشد
120
 
121
- /* Footer styles to mimic HTML example - با padding کمتر برای بالاتر آمدن */
122
  .footer-controls-html-like {
123
  width: 100%;
124
  display: flex;
125
  align-items: center;
126
- position: absolute;
127
- bottom: 0; /* چسبیده به پایین */
128
- // *** MODIFIED: کاهش padding-bottom برای بالاتر آمدن دکمه‌ها ***
129
- // مقدار padding در HTML مرجع شما 2rem 3rem بود (32px بالا/پایین، 48px چپ/راست)
130
- // برای بالاتر آمدن، padding-bottom را کمتر می‌کنیم یا از bottom با مقدار مثبت استفاده می‌کنیم.
131
- // امتحان کنید:
132
- padding: 1.5rem 2rem; // 24px بالا/پایین، 32px چپ/راست. یا حتی کمتر برای padding-bottom.
133
- // یا
134
- // padding: 2rem 3rem;
135
- // bottom: 1rem; // امتحان کنید دکمه‌ها را 1rem از پایین صفحه فاصله دهید
136
-
137
  box-sizing: border-box;
138
  z-index: 20;
139
- justify-content: space-between; // میکروفون چپ، دوربین راست
 
140
  }
141
 
142
  .small-logo-footer-html-like {
143
- // این به صورت خودکار بین دو دکمه با justify-content: space-between قرار نمی‌گیرد.
144
- // باید به صورت absolute در وسط قرار گیرد.
145
  position: absolute;
146
  left: 50%;
147
- top: 50%; // نسبت به کادر padding فوتر
148
  transform: translate(-50%, -50%);
149
- z-index: 1; // پشت دکمه‌ها اگر همپوشانی داشته باشند (که نباید داشته باشند)
150
  display: flex;
151
  align-items: center;
152
  justify-content: center;
@@ -162,7 +174,7 @@
162
  height: 80px;
163
  width: 80px;
164
  border-radius: 9999px;
165
- padding: 0;
166
  display: flex;
167
  align-items: center;
168
  justify-content: center;
@@ -173,56 +185,49 @@
173
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
174
  flex-shrink: 0;
175
  z-index: 2;
 
 
176
  &:hover {
177
  transform: scale(1.05);
178
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
179
  }
180
- // اطمینان از اندازه مناسب SVG های داخل دکمه ها
 
181
  svg {
182
- // width: 50%; // یا هر درصدی که مناسب به نظر می رسد
183
- // height: 50%;
184
- // یا اگر SVG ها transform دارند، آن را حفظ کنید
185
- // transform: scale(0.55); // اگر این چیزی است که در HTML اصلی کار می کند
 
 
 
 
 
 
186
  }
187
  }
188
 
189
- // رنگ‌ها بر اساس HTML مرجع (میکروفون چپ، دوربین راست)
190
- .mic-button-color { background-color: #fecdd3; } // قرمز برای میکروفون (چپ)
191
- .cam-button-color { background-color: #E0ECFF; } // آبی برای دوربین (راست)
 
 
 
 
 
 
 
 
192
 
193
  .dark .mic-button-color { background-color: #5C2129; }
194
  .dark .cam-button-color { background-color: #223355; }
195
 
196
 
197
  /* Switch Camera Button (بدون تغییر) */
198
- .switch-camera-button-container {
199
- position: absolute; bottom: calc(100% + 0.65rem); left: 50%;
200
- transform: translateX(-50%) translateY(15px) scale(0.7); z-index: 5;
201
- opacity: 0; pointer-events: none;
202
- 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);
203
- transform-origin: center bottom;
204
- &.visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); pointer-events: auto; }
205
- }
206
- .switch-camera-button-content {
207
- width: 48px; height: 48px; background-color: var(--background); border: 1px solid var(--border);
208
- border-radius: 9999px; display: flex; align-items: center; justify-content: center;
209
- box-shadow: 0 5px 10px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.08); cursor: pointer;
210
- transform-origin: center; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
211
- &:hover { transform: scale(1.12) rotate(-6deg); box-shadow: 0 7px 15px rgba(0,0,0,0.18), 0 3px 6px rgba(0,0,0,0.12); }
212
- &:active { transform: scale(1.03) rotate(0deg); }
213
- svg { width: 22px; height: 22px; stroke: var(--foreground); transition: transform 0.3s ease-in-out; }
214
- &:hover svg { transform: rotate(360deg); }
215
- }
216
-
217
  /* Keyframes for popover (بدون تغییر) */
218
- @keyframes popover-drop-in {
219
- 0% { opacity: 0; transform: translateY(-100%) scale(0.9); }
220
- 70% { opacity: 1; transform: translateY(5px) scale(1.02); }
221
- 100% { opacity: 1; transform: translateY(0) scale(1); }
222
- }
223
- @keyframes popover-lift-out {
224
- 0% { opacity: 1; transform: translateY(0) scale(1); }
225
- 100% { opacity: 0; transform: translateY(-100%) scale(0.9); }
226
- }
227
- .animate-popover-open-top-center { animation: popover-drop-in 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards; }
228
- .animate-popover-close-top-center { animation: popover-lift-out 0.3s ease-in forwards; }
 
29
  outline-color: var(--foreground);
30
  box-sizing: border-box;
31
  }
32
+ body, html { // Apply to both for good measure
33
  @apply bg-background text-foreground;
34
+ overflow-x: hidden; // Prevent horizontal scroll
35
+ overflow-y: hidden; // *** ADDED: Prevent vertical scroll on body/html ***
36
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
37
  -webkit-font-smoothing: antialiased;
38
  -moz-osx-font-smoothing: grayscale;
39
  margin: 0;
40
  padding: 0;
41
+ height: 100%; // *** ADDED: Ensure html and body take full height ***
42
+ width: 100%; // *** ADDED: Ensure html and body take full width ***
43
  }
44
+ }
45
+
46
+ // Main application container to manage height and prevent scrolling
47
+ .app-container {
48
+ height: 100vh; // Use viewport height to fill the screen
49
+ // For iOS Safari, dvh might be better if address bar causes issues
50
+ // height: 100dvh;
51
+ display: flex;
52
+ flex-direction: column;
53
+ overflow: hidden; // Prevent scrolling on the main app container itself
54
  }
55
 
56
  .main-wrapper {
57
+ // min-height: 100vh; // Already handled by .app-container
58
  display: flex;
59
  flex-direction: column;
60
+ flex-grow: 1; // Allow main-wrapper to fill .app-container
61
+ overflow: hidden; // Prevent internal scrolling if content still overflows
62
+ position: relative; // For absolute positioning of children like header/footer
63
  }
64
+
65
  .media-area {
66
  flex-grow: 1;
67
  position: relative;
68
+ display: flex; // For centering large logo
69
+ align-items: center;
70
+ justify-content: center;
71
+ overflow: hidden; // Ensure video/logo doesn't cause scroll
72
  }
73
 
74
  #large-logo-container {
75
+ // display: flex; // Handled by media-area
76
+ // align-items: center;
77
+ // justify-content: center;
78
+ // width: 100%;
79
+ // height: 100%;
80
+ // position: absolute; // Handled by media-area's relative and this absolute
81
+ // top: 0;
82
+ // left: 0;
83
+ pointer-events: none;
84
  }
85
 
86
  /* Notification Popover & Header controls (بدون تغییر) */
 
104
  .header-controls {
105
  display: flex; padding: 0.75rem 0.5rem; justify-content: space-between; align-items: center;
106
  width: 100%; position: absolute; top: 0; left: 0; z-index: 10;
107
+ flex-shrink: 0; // Prevent header from shrinking
108
  }
109
  .header-button {
110
  display: flex; align-items: center; justify-content: center; padding: 0.5rem;
 
123
 
124
  /* Logo Animation Styling */
125
  .logo-animation-wrapper {
126
+ position: relative;
127
  display: flex;
128
  align-items: center;
129
  justify-content: center;
130
+ & > .z-10 > svg {
 
131
  width: 100%;
132
  height: 100%;
133
  }
134
  }
 
135
 
136
+ /* Footer styles */
137
  .footer-controls-html-like {
138
  width: 100%;
139
  display: flex;
140
  align-items: center;
141
+ position: absolute; // نسبت به main-wrapper
142
+ bottom: 0;
143
+ // *** MODIFIED: تنظیم padding برای بالا بردن فوتر، مشابه HTML مرجع ***
144
+ // مقادیر padding از HTML شما: padding: 2rem 3rem; (32px top/bottom, 48px left/right)
145
+ // اگر می خواهید بالاتر بیاید، می توانید bottom را با یک مقدار مثبت تنظیم کنید
146
+ // یا padding-bottom را کمتر کنید.
147
+ // با توجه به اینکه گفتید دقیقا مثل HTML، padding را حفظ می کنیم.
148
+ // اگر هنوز پایین است، ممکن است ارتفاع کلی main-wrapper یا media-area مشکل داشته باشد.
149
+ padding: 2rem 3rem;
 
 
150
  box-sizing: border-box;
151
  z-index: 20;
152
+ justify-content: space-between;
153
+ flex-shrink: 0; // Prevent footer from shrinking
154
  }
155
 
156
  .small-logo-footer-html-like {
 
 
157
  position: absolute;
158
  left: 50%;
159
+ top: 50%;
160
  transform: translate(-50%, -50%);
161
+ z-index: 1;
162
  display: flex;
163
  align-items: center;
164
  justify-content: center;
 
174
  height: 80px;
175
  width: 80px;
176
  border-radius: 9999px;
177
+ padding: 0; // SVG باید با اندازه خودش بیاید یا با CSS داخلی SVG تنظیم شود
178
  display: flex;
179
  align-items: center;
180
  justify-content: center;
 
185
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
186
  flex-shrink: 0;
187
  z-index: 2;
188
+ overflow: hidden; // برای اینکه SVG بزرگتر از دکمه بیرون نزند
189
+
190
  &:hover {
191
  transform: scale(1.05);
192
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
193
  }
194
+
195
+ // *** MODIFIED: تنظیم اندازه SVG داخل دکمه میکروفون و دوربین ***
196
  svg {
197
+ // هدف این است که آیکون میکروفون بزرگتر به نظر برسد
198
+ // و آیکون دوربین هم اندازه مناسبی داشته باشد.
199
+ // این مقادیر را می توانید تنظیم کنید.
200
+ // برای SvgReferenceMicrophoneIcon که transform scale(0.55) داشت،
201
+ // اگر آن transform را برداریم، اینجا باید scale را مدیریت کنیم یا width/height بدهیم.
202
+ // فرض کنیم transform را از SVG برداشتیم:
203
+ width: 60%; // یا یک مقدار ثابت px مانند 40px
204
+ height: 60%; // یا یک مقدار ثابت px مانند 40px
205
+ // اگر SVG دارای transform scale(0.55) است، این مقادیر را بزرگتر کنید:
206
+ // width: 100%; height: 100%; // و اجازه دهید scale داخلی SVG کار کند
207
  }
208
  }
209
 
210
+ // برای دکمه میکروفون، اگر آیکونش نیاز به استایل خاصی برای بزرگتر دیده شدن دارد
211
+ .mic-button-color svg {
212
+ // width: 70% !important; // مثال برای بزرگتر کردن فقط آیکون میکروفون
213
+ // height: 70% !important;
214
+ // یا اگر scale در SVG اصلی بود و حذفش کردیم:
215
+ // transform: scale(1); // برای اینکه به اندازه اصلی viewBox اش باشد
216
+ }
217
+
218
+
219
+ .mic-button-color { background-color: #fecdd3; }
220
+ .cam-button-color { background-color: #E0ECFF; }
221
 
222
  .dark .mic-button-color { background-color: #5C2129; }
223
  .dark .cam-button-color { background-color: #223355; }
224
 
225
 
226
  /* Switch Camera Button (بدون تغییر) */
227
+ .switch-camera-button-container { /* ... */ }
228
+ .switch-camera-button-content { /* ... */ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  /* Keyframes for popover (بدون تغییر) */
230
+ @keyframes popover-drop-in { /* ... */ }
231
+ @keyframes popover-lift-out { /* ... */ }
232
+ .animate-popover-open-top-center { /* ... */ }
233
+ .animate-popover-close-top-center { /* ... */ }