Ezmary commited on
Commit
d7a267f
·
verified ·
1 Parent(s): a70e3bb

Update src/App.scss

Browse files
Files changed (1) hide show
  1. src/App.scss +50 -68
src/App.scss CHANGED
@@ -1,34 +1,26 @@
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);
15
- --popover-foreground: oklch(0.145 0 0);
16
  --border: oklch(0.922 0 0);
17
  }
18
  .dark {
19
- --background: oklch(0.145 0 0);
20
- --foreground: oklch(0.985 0 0);
21
- --popover: oklch(0.205 0 0);
22
- --popover-foreground: oklch(0.985 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;
@@ -36,7 +28,7 @@
36
  }
37
  }
38
 
39
- /* --- START: استایل‌های اصلی و جدید برای چیدمان و عناصر --- */
40
  .loading-screen {
41
  display: flex; align-items: center; justify-content: center;
42
  height: 100vh; font-size: 1.2rem;
@@ -60,30 +52,49 @@
60
  .header-icon-button {
61
  display: flex; align-items: center; justify-content: center; padding: 0.5rem;
62
  width: 44px; height: 44px; border-radius: 9999px;
63
- background-color: transparent;
64
- border: none;
65
- backdrop-filter: none;
66
  cursor: pointer; transition: all 0.2s ease-out;
67
- .material-symbols-outlined {
68
- opacity: 0.8;
69
- color: #374151;
70
- font-size: 28px;
71
- }
72
  .dark & .material-symbols-outlined { color: oklch(0.95 0 0); }
73
  &:hover { background-color: rgba(0, 0, 0, 0.05); }
74
  &:active { transform: scale(0.95); }
75
  }
76
 
77
- .notification-popover-wrapper, .personality-popover-wrapper {
78
- position: absolute; z-index: 100; opacity: 0; pointer-events: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  transform: translateY(-10px) scale(0.95); transition: all 150ms ease-in-out;
80
  &.open { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
81
  .popover-content {
82
- background: theme('colors.custom-popover');
83
- backdrop-filter: blur(10px);
84
  border-radius: 12px; padding: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
85
  border: 1px solid theme('colors.custom-border');
86
- color: theme('colors.custom-popover-foreground'); font-size: 14px;
87
  ul { list-style: none; padding: 0; margin: 0; width: 220px; }
88
  li {
89
  display: flex; align-items: center; justify-content: space-between;
@@ -97,28 +108,12 @@
97
  }
98
  }
99
  }
100
- .notification-popover-wrapper {
101
- top: calc(1rem + 44px + 8px); right: 1rem;
102
- .popover-content { padding: 12px 16px; width: 280px; }
103
- }
104
- .personality-popover-wrapper {
105
- top: calc(1rem + 44px + 8px); left: 1rem;
106
- }
107
 
108
- /* بخش‌های دیگر استایل که از کد شما حفظ شده‌اند */
109
  .media-area {
110
- position: absolute; top: 0; left: 0;
111
- width: 100%; height: 100%;
112
- z-index: 1;
113
- overflow: hidden; // برای جلوگیری از بیرون‌زدگی ویدیو
114
-
115
- // ✅ تغییر اصلی اینجاست
116
- // این کد به تگ ویدیو می‌گوید که کل فضای media-area را پر کند
117
- video#video-feed {
118
- width: 100%;
119
- height: 100%;
120
- object-fit: cover; // کلیدی‌ترین بخش: ویدیو را بدون تغییر نسبت، برای پر کردن فضا برش می‌دهد
121
- }
122
  }
123
  #large-logo-container {
124
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
@@ -128,11 +123,6 @@
128
  width: 100%; display: flex; align-items: center; position: absolute;
129
  bottom: 2rem; padding: 0.5rem 2.5rem; box-sizing: border-box; z-index: 20; justify-content: space-between;
130
  }
131
- .small-logo-footer-html-like {
132
- position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
133
- z-index: 1; display: flex; align-items: center; justify-content: center;
134
- }
135
- .control-button-wrapper { position: relative; display: flex; justify-content: center; }
136
  .control-button {
137
  height: 80px; width: 80px; border-radius: 9999px; padding: 0;
138
  display: flex; align-items: center; justify-content: center;
@@ -141,7 +131,6 @@
141
  cursor: pointer; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
142
  flex-shrink: 0; z-index: 2; overflow: hidden;
143
  &:hover { transform: scale(1.05); }
144
- svg.reference-mic-svg { width: 75%; height: 75%; }
145
  }
146
  .mic-button-color { background-color: #fecdd3; }
147
  .cam-button-color { background-color: #E0ECFF; }
@@ -165,7 +154,7 @@
165
  svg { width: 22px; height: 22px; stroke: theme('colors.custom-foreground'); }
166
  }
167
 
168
- /* استایل‌های مودال (بدون تغییر) */
169
  .modal-overlay {
170
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
171
  background-color: rgba(0, 0, 0, 0.7);
@@ -173,18 +162,13 @@
173
  z-index: 1000; backdrop-filter: blur(5px);
174
  }
175
  .modal-content {
176
- background: #fff;
177
- color: #111;
178
  padding: 24px; border-radius: 16px;
179
  width: 90%; max-width: 500px;
180
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
181
  border: 1px solid #e5e5e5;
182
  animation: modal-fade-in 0.3s ease-out;
183
- .dark & {
184
- background: #2c2c2e;
185
- color: #fff;
186
- border-color: rgba(255, 255, 255, 0.15);
187
- }
188
  .modal-header {
189
  display: flex; justify-content: space-between; align-items: center;
190
  margin-bottom: 20px; border-bottom: 1px solid #e5e5e5; padding-bottom: 16px;
@@ -204,9 +188,7 @@
204
  width: 100%; padding: 12px; border-radius: 8px;
205
  border: 1px solid #ccc; background-color: #f8f8f8;
206
  color: #111; font-size: 15px;
207
- .dark & {
208
- border-color: #555; background-color: #3a3a3c; color: #fff;
209
- }
210
  &:focus {
211
  outline: none; border-color: #0a84ff;
212
  box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);
 
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; --radius-md: 0.5rem;
11
+ --background: oklch(1 0 0); --foreground: oklch(0.145 0 0);
12
+ --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0);
 
 
 
13
  --border: oklch(0.922 0 0);
14
  }
15
  .dark {
16
+ --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0);
17
+ --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0);
 
 
18
  --border: oklch(1 0 0 / 10%);
19
  }
20
 
21
+ // 3. Apply base styles
22
  @layer base {
23
+ * { border-color: theme('colors.custom-border'); box-sizing: border-box; }
 
 
 
24
  body {
25
  @apply bg-custom-background text-custom-foreground;
26
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
 
28
  }
29
  }
30
 
31
+ /* --- استایل‌های چیدمان و عناصر --- */
32
  .loading-screen {
33
  display: flex; align-items: center; justify-content: center;
34
  height: 100vh; font-size: 1.2rem;
 
52
  .header-icon-button {
53
  display: flex; align-items: center; justify-content: center; padding: 0.5rem;
54
  width: 44px; height: 44px; border-radius: 9999px;
55
+ background-color: transparent; border: none; backdrop-filter: none;
 
 
56
  cursor: pointer; transition: all 0.2s ease-out;
57
+ .material-symbols-outlined { opacity: 0.8; color: #374151; font-size: 28px; }
 
 
 
 
58
  .dark & .material-symbols-outlined { color: oklch(0.95 0 0); }
59
  &:hover { background-color: rgba(0, 0, 0, 0.05); }
60
  &:active { transform: scale(0.95); }
61
  }
62
 
63
+ /* استایل نوتیفیکیشن زیبا و مرکزی */
64
+ .notification-popover-wrapper {
65
+ position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 100;
66
+ width: calc(100% - 2rem); max-width: 28rem; display: flex; justify-content: center; pointer-events: none;
67
+ }
68
+ #notification-popover.popover-content {
69
+ width: 100%; border-radius: var(--radius-md, 0.5rem); border-width: 1px;
70
+ background-color: theme('colors.custom-popover'); color: theme('colors.custom-popover-foreground');
71
+ border-color: theme('colors.custom-border'); box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
72
+ outline: none; transition: opacity 0.3s ease-out, transform 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55);
73
+ opacity: 0; transform: translateY(-120%) scale(0.9); pointer-events: none;
74
+ &.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
75
+ }
76
+ .notification-popover-text-content {
77
+ background-color: #eff6ff; font-size: 0.875rem; line-height: 1.5rem; direction: rtl;
78
+ padding: 1rem; border-radius: var(--radius-md, 0.5rem); color: oklch(0.145 0 0);
79
+ }
80
+ .dark .notification-popover-text-content {
81
+ background-color: oklch(0.25 0.05 230); color: oklch(0.95 0.01 230);
82
+ }
83
+ .animate-popover-open-top-center { animation: popover-drop-in 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards; }
84
+ .animate-popover-close-top-center { animation: popover-lift-out 0.3s ease-in forwards; }
85
+ @keyframes popover-drop-in { from { opacity: 0; transform: translateY(-100%) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } }
86
+ @keyframes popover-lift-out { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-100%) scale(0.9); } }
87
+
88
+ /* استایل منوی شخصیت */
89
+ .personality-popover-wrapper {
90
+ position: absolute; z-index: 100; top: calc(1rem + 44px + 8px); left: 1rem;
91
+ opacity: 0; pointer-events: none;
92
  transform: translateY(-10px) scale(0.95); transition: all 150ms ease-in-out;
93
  &.open { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
94
  .popover-content {
95
+ background: theme('colors.custom-popover'); backdrop-filter: blur(10px);
 
96
  border-radius: 12px; padding: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
97
  border: 1px solid theme('colors.custom-border');
 
98
  ul { list-style: none; padding: 0; margin: 0; width: 220px; }
99
  li {
100
  display: flex; align-items: center; justify-content: space-between;
 
108
  }
109
  }
110
  }
 
 
 
 
 
 
 
111
 
112
+ /* استایل ویدیو و کنترل‌ها */
113
  .media-area {
114
+ position: absolute; top: 0; left: 0; width: 100%; height: 100%;
115
+ z-index: 1; overflow: hidden;
116
+ video#video-feed { width: 100%; height: 100%; object-fit: cover; }
 
 
 
 
 
 
 
 
 
117
  }
118
  #large-logo-container {
119
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
 
123
  width: 100%; display: flex; align-items: center; position: absolute;
124
  bottom: 2rem; padding: 0.5rem 2.5rem; box-sizing: border-box; z-index: 20; justify-content: space-between;
125
  }
 
 
 
 
 
126
  .control-button {
127
  height: 80px; width: 80px; border-radius: 9999px; padding: 0;
128
  display: flex; align-items: center; justify-content: center;
 
131
  cursor: pointer; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
132
  flex-shrink: 0; z-index: 2; overflow: hidden;
133
  &:hover { transform: scale(1.05); }
 
134
  }
135
  .mic-button-color { background-color: #fecdd3; }
136
  .cam-button-color { background-color: #E0ECFF; }
 
154
  svg { width: 22px; height: 22px; stroke: theme('colors.custom-foreground'); }
155
  }
156
 
157
+ /* استایل‌های مودال */
158
  .modal-overlay {
159
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
160
  background-color: rgba(0, 0, 0, 0.7);
 
162
  z-index: 1000; backdrop-filter: blur(5px);
163
  }
164
  .modal-content {
165
+ background: #fff; color: #111;
 
166
  padding: 24px; border-radius: 16px;
167
  width: 90%; max-width: 500px;
168
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
169
  border: 1px solid #e5e5e5;
170
  animation: modal-fade-in 0.3s ease-out;
171
+ .dark & { background: #2c2c2e; color: #fff; border-color: rgba(255, 255, 255, 0.15); }
 
 
 
 
172
  .modal-header {
173
  display: flex; justify-content: space-between; align-items: center;
174
  margin-bottom: 20px; border-bottom: 1px solid #e5e5e5; padding-bottom: 16px;
 
188
  width: 100%; padding: 12px; border-radius: 8px;
189
  border: 1px solid #ccc; background-color: #f8f8f8;
190
  color: #111; font-size: 15px;
191
+ .dark & { border-color: #555; background-color: #3a3a3c; color: #fff; }
 
 
192
  &:focus {
193
  outline: none; border-color: #0a84ff;
194
  box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);