Ezmary commited on
Commit
1b0a6d9
·
verified ·
1 Parent(s): 2599641

Update src/App.scss

Browse files
Files changed (1) hide show
  1. src/App.scss +175 -41
src/App.scss CHANGED
@@ -1,12 +1,14 @@
1
- // src/App.scss (نسخه نهایی با اصلاحات ظاهری)
2
 
3
- // 1. Import Tailwind
4
  @import 'tailwindcss/base';
5
  @import 'tailwindcss/components';
6
  @import 'tailwindcss/utilities';
7
 
8
- // 2. Define CSS Variables
9
  :root {
 
 
10
  --background: oklch(1 0 0);
11
  --foreground: oklch(0.145 0 0);
12
  --popover: oklch(1 0 0);
@@ -21,65 +23,115 @@
21
  --border: oklch(1 0 0 / 10%);
22
  }
23
 
24
- // 3. Apply base styles
25
  @layer base {
26
- * { box-sizing: border-box; }
 
 
 
27
  body {
28
  @apply bg-custom-background text-custom-foreground;
29
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
30
- margin: 0; padding: 0;
 
 
 
 
 
 
 
31
  }
32
  }
33
 
34
- /* استایل‌های اصلی برنامه */
 
35
  .loading-screen {
36
- display: flex; align-items: center; justify-content: center; height: 100vh;
37
- font-size: 1.2rem; color: theme('colors.custom-foreground');
 
 
 
 
38
  }
39
 
40
  .main-wrapper {
41
  min-height: 100vh;
 
42
  display: flex;
43
  flex-direction: column;
44
  position: relative;
 
45
  }
46
 
47
  .header-controls {
48
- display: flex; padding: 0.75rem 1rem; justify-content: space-between;
49
- width: 100%; position: absolute; top: 0; left: 0; z-index: 50;
 
 
 
 
 
 
50
  pointer-events: none;
51
- > button { pointer-events: auto; }
 
 
52
  }
53
 
54
- /* ✅ تغییر اصلی: دکمه‌های شفاف بدون پس‌زمینه */
55
  .header-icon-button {
56
- display: flex; align-items: center; justify-content: center;
57
- width: 44px; height: 44px; border-radius: 9999px;
58
- background-color: transparent;
 
 
 
 
59
  border: none;
60
- cursor: pointer; transition: all 0.2s ease-out;
 
 
61
  .material-symbols-outlined {
62
  opacity: 0.7;
63
- color: oklch(0.95 0 0);
64
  font-size: 28px;
65
- filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5)); /* سایه برای خوانایی روی ویدیو */
 
66
  }
 
67
  &:hover .material-symbols-outlined {
68
  opacity: 1;
69
  }
70
- &:active { transform: scale(0.9); }
 
 
71
  }
72
 
73
  .notification-popover-wrapper, .personality-popover-wrapper {
74
- position: absolute; z-index: 100; opacity: 0; pointer-events: none;
75
- transform: translateY(-10px) scale(0.95); transition: all 150ms ease-in-out;
76
- &.open { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
 
 
 
 
 
 
 
 
 
 
77
  .popover-content {
78
- background: rgba(28, 28, 30, 0.85); /* کمی تیره‌تر و با شفافیت برای زیبایی */
79
- backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
80
- border-radius: 12px; padding: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
81
- border: 1px solid rgba(255, 255, 255, 0.1); color: #f5f5f5; font-size: 14px;
82
-
 
 
 
 
 
83
  ul { list-style: none; padding: 0; margin: 0; width: 220px; }
84
  li {
85
  display: flex; align-items: center; justify-content: space-between;
@@ -91,43 +143,125 @@
91
  }
92
  }
93
  }
 
94
  .notification-popover-wrapper {
95
- top: calc(1rem + 44px + 8px); right: 1rem;
 
96
  .popover-content { padding: 12px 16px; width: 280px; }
97
  }
 
98
  .personality-popover-wrapper {
99
- top: calc(1rem + 44px + 8px); left: 1rem;
 
100
  }
101
 
102
- /* بخش‌های دیگر استایل (بدون تغییر) */
103
  .media-area {
104
- flex-grow: 1; position: relative; width: 100%; height: 100%;
105
- background-color: black; /* پس‌زمینه سیاه وقتی ویدیو نیست */
 
 
 
 
106
  }
 
107
  #large-logo-container {
108
- display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
109
- position: absolute; top: 0; left: 0; pointer-events: none;
110
  }
 
111
  .footer-controls-html-like {
112
  width: 100%; display: flex; align-items: center; position: absolute;
113
  bottom: 2rem; padding: 0.5rem 2.5rem; box-sizing: border-box; z-index: 20; justify-content: space-between;
114
  }
 
115
  .control-button {
116
  height: 80px; width: 80px; border-radius: 9999px; padding: 0;
117
  display: flex; align-items: center; justify-content: center;
118
- border: none;
119
- box-shadow: 0 4px 15px rgba(0,0,0,0.2);
120
  cursor: pointer; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
121
  flex-shrink: 0; z-index: 2; overflow: hidden;
122
  &:hover { transform: scale(1.05); }
123
  }
 
124
  .mic-button-color { background-color: #fecdd3; }
125
  .cam-button-color { background-color: #E0ECFF; }
126
  .dark .mic-button-color { background-color: #5C2129; }
127
  .dark .cam-button-color { background-color: #223355; }
128
- .switch-camera-button-container, .small-logo-footer-html-like { /* سایر استایل‌های شما */ }
129
 
130
- /* استایل‌های مودال (بدون تغییر) */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  .modal-overlay {
132
- /* ... همان استایل‌های قبلی ... */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  }
 
1
+ // src/App.scss (نسخه نهایی و یکپارچه برای رفع تمام مشکلات ظاهری)
2
 
3
+ // 1. Import Tailwind's base, components, and utilities
4
  @import 'tailwindcss/base';
5
  @import 'tailwindcss/components';
6
  @import 'tailwindcss/utilities';
7
 
8
+ // 2. Define CSS Variables (از کد اصلی شما)
9
  :root {
10
+ --radius: 0.625rem;
11
+ --radius-md: 0.5rem;
12
  --background: oklch(1 0 0);
13
  --foreground: oklch(0.145 0 0);
14
  --popover: oklch(1 0 0);
 
23
  --border: oklch(1 0 0 / 10%);
24
  }
25
 
26
+ // 3. Apply base styles (از کد اصلی شما)
27
  @layer base {
28
+ * {
29
+ border-color: theme('colors.custom-border');
30
+ box-sizing: border-box;
31
+ }
32
  body {
33
  @apply bg-custom-background text-custom-foreground;
34
+ 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";
35
+ margin: 0;
36
+ padding: 0;
37
+ overflow: hidden; // جلوگیری از اسکرول شدن صفحه
38
+ }
39
+ html {
40
+ margin: 0;
41
+ padding: 0;
42
+ overflow: hidden;
43
  }
44
  }
45
 
46
+ /* --- START: استایل‌های اصلی و جدید برای چیدمان و عناصر --- */
47
+
48
  .loading-screen {
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ height: 100vh;
53
+ font-size: 1.2rem;
54
+ color: theme('colors.custom-foreground');
55
  }
56
 
57
  .main-wrapper {
58
  min-height: 100vh;
59
+ width: 100vw;
60
  display: flex;
61
  flex-direction: column;
62
  position: relative;
63
+ background-color: black; // پس‌زمینه سیاه برای حالت بدون ویدیو
64
  }
65
 
66
  .header-controls {
67
+ display: flex;
68
+ padding: 0.75rem 1rem;
69
+ justify-content: space-between;
70
+ width: 100%;
71
+ position: absolute;
72
+ top: 0;
73
+ left: 0;
74
+ z-index: 50;
75
  pointer-events: none;
76
+ > button {
77
+ pointer-events: auto;
78
+ }
79
  }
80
 
81
+ /* ✅ رفع مشکل: دکمه‌های شفاف بدون پس‌زمینه */
82
  .header-icon-button {
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ width: 44px;
87
+ height: 44px;
88
+ border-radius: 9999px;
89
+ background-color: transparent; // شفاف
90
  border: none;
91
+ cursor: pointer;
92
+ transition: all 0.2s ease-out;
93
+
94
  .material-symbols-outlined {
95
  opacity: 0.7;
96
+ color: white; // رنگ سفید برای خوانایی
97
  font-size: 28px;
98
+ // سایه برای خوانایی بهتر روی ویدیو
99
+ filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6));
100
  }
101
+
102
  &:hover .material-symbols-outlined {
103
  opacity: 1;
104
  }
105
+ &:active {
106
+ transform: scale(0.9);
107
+ }
108
  }
109
 
110
  .notification-popover-wrapper, .personality-popover-wrapper {
111
+ position: absolute;
112
+ z-index: 100;
113
+ opacity: 0;
114
+ pointer-events: none;
115
+ transform: translateY(-10px) scale(0.95);
116
+ transition: all 150ms ease-in-out;
117
+
118
+ &.open {
119
+ opacity: 1;
120
+ pointer-events: auto;
121
+ transform: translateY(0) scale(1);
122
+ }
123
+
124
  .popover-content {
125
+ background: rgba(28, 28, 30, 0.85);
126
+ backdrop-filter: blur(12px);
127
+ -webkit-backdrop-filter: blur(12px);
128
+ border-radius: 12px;
129
+ padding: 8px;
130
+ box-shadow: 0 4px 20px rgba(0,0,0,0.5);
131
+ border: 1px solid rgba(255, 255, 255, 0.15);
132
+ color: #f5f5f5;
133
+ font-size: 14px;
134
+
135
  ul { list-style: none; padding: 0; margin: 0; width: 220px; }
136
  li {
137
  display: flex; align-items: center; justify-content: space-between;
 
143
  }
144
  }
145
  }
146
+
147
  .notification-popover-wrapper {
148
+ top: calc(1rem + 44px + 8px);
149
+ right: 1rem;
150
  .popover-content { padding: 12px 16px; width: 280px; }
151
  }
152
+
153
  .personality-popover-wrapper {
154
+ top: calc(1rem + 44px + 8px);
155
+ left: 1rem;
156
  }
157
 
158
+ /* رفع مشکل: ناحیه مدیا برای پوشش کامل صفحه */
159
  .media-area {
160
+ position: absolute;
161
+ top: 0;
162
+ left: 0;
163
+ width: 100%;
164
+ height: 100%;
165
+ z-index: 1; // زیر همه کنترل‌ها
166
  }
167
+
168
  #large-logo-container {
169
+ display: flex; align-items: center; justify-content: center;
170
+ width: 100%; height: 100%; position: absolute; top: 0; left: 0; pointer-events: none;
171
  }
172
+
173
  .footer-controls-html-like {
174
  width: 100%; display: flex; align-items: center; position: absolute;
175
  bottom: 2rem; padding: 0.5rem 2.5rem; box-sizing: border-box; z-index: 20; justify-content: space-between;
176
  }
177
+
178
  .control-button {
179
  height: 80px; width: 80px; border-radius: 9999px; padding: 0;
180
  display: flex; align-items: center; justify-content: center;
181
+ border: none; box-shadow: 0 4px 15px rgba(0,0,0,0.2);
 
182
  cursor: pointer; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
183
  flex-shrink: 0; z-index: 2; overflow: hidden;
184
  &:hover { transform: scale(1.05); }
185
  }
186
+
187
  .mic-button-color { background-color: #fecdd3; }
188
  .cam-button-color { background-color: #E0ECFF; }
189
  .dark .mic-button-color { background-color: #5C2129; }
190
  .dark .cam-button-color { background-color: #223355; }
 
191
 
192
+ .switch-camera-button-container {
193
+ position: absolute; bottom: calc(100% + 0.65rem); left: 50%;
194
+ transform: translateX(-50%) translateY(15px) scale(0.7); z-index: 5;
195
+ opacity: 0; pointer-events: none; transition: opacity 0.35s, transform 0.35s;
196
+ transform-origin: center bottom;
197
+ &.visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); pointer-events: auto; }
198
+ }
199
+
200
+ .switch-camera-button-content {
201
+ width: 48px; height: 48px; background-color: theme('colors.custom-background');
202
+ border: 1px solid theme('colors.custom-border'); border-radius: 9999px;
203
+ display: flex; align-items: center; justify-content: center;
204
+ box-shadow: 0 5px 10px rgba(0,0,0,0.12); cursor: pointer; transition: transform 0.2s ease-out;
205
+ &:hover { transform: scale(1.12); }
206
+ &:active { transform: scale(1.03); }
207
+ svg { width: 22px; height: 22px; stroke: theme('colors.custom-foreground'); }
208
+ }
209
+
210
+ .small-logo-footer-html-like {
211
+ position: absolute; left: 50%; top: 50%;
212
+ transform: translate(-50%, -50%);
213
+ z-index: 1; display: flex; align-items: center; justify-content: center;
214
+ }
215
+
216
+ /* استایل‌های مودال شخصیت سفارشی */
217
  .modal-overlay {
218
+ position: fixed; top: 0; left: 0; right: 0; bottom: 0;
219
+ background-color: rgba(0, 0, 0, 0.7);
220
+ display: flex; align-items: center; justify-content: center;
221
+ z-index: 1000; backdrop-filter: blur(5px);
222
+ }
223
+ .modal-content {
224
+ background: #2c2c2e; padding: 24px; border-radius: 16px;
225
+ width: 90%; max-width: 500px;
226
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
227
+ border: 1px solid rgba(255, 255, 255, 0.15);
228
+ animation: modal-fade-in 0.3s ease-out;
229
+ .modal-header {
230
+ display: flex; justify-content: space-between; align-items: center;
231
+ margin-bottom: 20px; border-bottom: 1px solid #444; padding-bottom: 16px;
232
+ h3 { margin: 0; font-size: 20px; color: #fff; }
233
+ .close-button {
234
+ background: none; border: none; color: #aaa; font-size: 28px;
235
+ cursor: pointer; line-height: 1; padding: 0;
236
+ &:hover { color: #fff; }
237
+ }
238
+ }
239
+ .modal-body .form-group {
240
+ margin-bottom: 20px;
241
+ label { display: block; margin-bottom: 8px; font-weight: 500; color: #e0e0e0; }
242
+ input, textarea {
243
+ width: 100%; padding: 12px; border-radius: 8px;
244
+ border: 1px solid #555; background-color: #3a3a3c;
245
+ color: #fff; font-size: 15px;
246
+ &:focus {
247
+ outline: none; border-color: #0a84ff;
248
+ box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);
249
+ }
250
+ }
251
+ textarea { resize: vertical; min-height: 100px; }
252
+ small { display: block; margin-top: 8px; color: #999; font-size: 12px; }
253
+ }
254
+ .modal-footer {
255
+ display: flex; justify-content: flex-end; margin-top: 24px;
256
+ .save-button {
257
+ background-color: #0a84ff; color: #fff; border: none;
258
+ padding: 12px 24px; border-radius: 8px; font-size: 16px;
259
+ font-weight: 600; cursor: pointer; transition: background-color 0.2s;
260
+ &:hover { background-color: #3499ff; }
261
+ }
262
+ }
263
+ }
264
+ @keyframes modal-fade-in {
265
+ from { opacity: 0; transform: scale(0.9); }
266
+ to { opacity: 1; transform: scale(1); }
267
  }