Ezmary commited on
Commit
5daf5bd
·
verified ·
1 Parent(s): b06b89f

Update src/App.scss

Browse files
Files changed (1) hide show
  1. src/App.scss +218 -35
src/App.scss CHANGED
@@ -1,60 +1,243 @@
1
- // ... (بالای فایل App.scss شامل ایمپورت‌ها، متغیرهای CSS، base styles) ...
2
 
3
- /* Header controls - این بخش نباید با تغییرات tailwind.config.js تغییر کرده باشد */
4
- .header-controls {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  display: flex;
6
- padding: 0.75rem 0.5rem; // این مقادیر از قبل تنظیم شده بودند
7
- justify-content: space-between;
8
  align-items: center;
 
9
  width: 100%;
 
10
  position: absolute;
11
  top: 0;
12
  left: 0;
13
- z-index: 10;
14
  }
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  .header-button {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  display: flex;
18
  align-items: center;
19
  justify-content: center;
20
- padding: 0.5rem;
21
- width: 40px;
22
- height: 40px;
23
- border-radius: var(--radius-lg, 0.625rem);
24
- background-color: #e5e7eb; // رنگ خاکستری روشن برای حالت عادی
25
- cursor: pointer;
26
- transition: background-color 0.2s, transform 0.1s ease-out;
27
 
28
- svg {
29
- opacity: 0.7;
30
- stroke: #374151; // رنگ آیکون خاکستری تیره
31
- width: 24px;
32
- height: 24px;
33
  }
 
34
 
35
- &:hover {
36
- background-color: #d1d5db; // کمی تیره‌تر در هاور
37
- }
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
- &:active {
40
- background-color: #9ca3af; // باز هم تیره‌تر در کلیک
41
- transform: scale(0.95);
42
- }
 
 
 
 
 
43
  }
44
 
45
- .dark .header-button {
46
- background-color: oklch(0.28 0 0); // رنگ پس‌زمینه دکمه در حالت تاریک
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  &:hover {
48
- background-color: oklch(0.35 0 0);
49
- }
50
- &:active {
51
- background-color: oklch(0.40 0 0);
52
- transform: scale(0.95);
53
  }
 
54
  svg {
55
- opacity: 0.8;
56
- stroke: oklch(0.85 0 0); // رنگ آیکون در حالت تاریک
 
 
 
 
57
  }
58
  }
59
 
60
- // ... (بقیه فایل App.scss شامل .logo-animation-wrapper، .footer-controls-html-like، .control-button و غیره باید مانند آخرین نسخه موفق قبلی باشد) ...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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; /* 10px */
11
+ --radius-md: 0.5rem; /* 8px */
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
+
19
+ .dark {
20
+ --background: oklch(0.145 0 0); /* تقریبا مشکی در حالت تیره */
21
+ --foreground: oklch(0.985 0 0); /* سفید در حالت تیره */
22
+ --popover: oklch(0.205 0 0);
23
+ --popover-foreground: oklch(0.985 0 0);
24
+ --border: oklch(1 0 0 / 10%); /* خاکستری خیلی تیره با شفافیت */
25
+ }
26
+
27
+ // 3. Apply base styles
28
+ @layer base {
29
+ * {
30
+ /* استفاده از رنگ‌های تعریف شده در tailwind.config.js که به متغیرهای CSS ما اشاره دارند */
31
+ border-color: theme('colors.custom-border');
32
+ outline-color: theme('colors.custom-foreground');
33
+ box-sizing: border-box;
34
+ }
35
+ body {
36
+ @apply bg-custom-background text-custom-foreground; /* استفاده از کلاس‌های جدید */
37
+ overflow-x: hidden;
38
+ 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";
39
+ -webkit-font-smoothing: antialiased;
40
+ -moz-osx-font-smoothing: grayscale;
41
+ margin: 0;
42
+ padding: 0;
43
+ }
44
+ html {
45
+ margin: 0;
46
+ padding: 0;
47
+ overflow-x: hidden;
48
+ }
49
+ }
50
+
51
+ .main-wrapper {
52
+ min-height: 100vh;
53
+ display: flex;
54
+ flex-direction: column;
55
+ }
56
+ .media-area {
57
+ flex-grow: 1;
58
+ position: relative;
59
+ }
60
+
61
+ #large-logo-container {
62
  display: flex;
 
 
63
  align-items: center;
64
+ justify-content: center;
65
  width: 100%;
66
+ height: 100%;
67
  position: absolute;
68
  top: 0;
69
  left: 0;
70
+ pointer-events: none;
71
  }
72
 
73
+ /* Notification Popover */
74
+ .notification-popover-wrapper {
75
+ position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 100;
76
+ width: calc(100% - 1rem); max-width: 28rem; display: flex; justify-content: center; pointer-events: none;
77
+ }
78
+ .popover-content {
79
+ width: 100%; border-radius: var(--radius-md, 0.5rem); border-width: 1px;
80
+ background-color: theme('colors.custom-popover'); /* استفاده از رنگ تعریف شده در Tailwind */
81
+ color: theme('colors.custom-popover-foreground'); /* استفاده از رنگ تعریف شده در Tailwind */
82
+ border-color: theme('colors.custom-border'); /* استفاده از رنگ تعریف شده در Tailwind */
83
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
84
+ outline: none; transition: opacity 0.3s ease-out, transform 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55);
85
+ opacity: 0; transform: translateY(-100%) scale(0.9); pointer-events: none;
86
+ &.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
87
+ }
88
+ .notification-popover-text-content { /* این بخش می‌تواند رنگ‌های ثابت خود را داشته باشد */
89
+ background-color: #eff6ff; /* bg-blue-50 */
90
+ font-size: 0.875rem; line-height: 1.5rem; direction: rtl;
91
+ padding: 1rem; border-radius: var(--radius-md, 0.5rem);
92
+ color: oklch(0.145 0 0); /* متن تیره روی پس‌زمینه آبی روشن */
93
+ }
94
+ .dark .notification-popover-text-content {
95
+ background-color: oklch(0.25 0.05 230); /* آبی تیره‌تر برای حالت تاریک */
96
+ color: oklch(0.95 0.01 230); /* متن روشن‌تر برای حالت تاریک */
97
+ }
98
+
99
+ /* Header controls - حفظ استایل‌های قبلی */
100
+ .header-controls {
101
+ display: flex; padding: 0.75rem 0.5rem; justify-content: space-between; align-items: center;
102
+ width: 100%; position: absolute; top: 0; left: 0; z-index: 10;
103
+ }
104
  .header-button {
105
+ display: flex; align-items: center; justify-content: center; padding: 0.5rem;
106
+ width: 40px; height: 40px; border-radius: var(--radius-lg, 0.625rem);
107
+ background-color: #e5e7eb; /* Tailwind gray-200 */
108
+ cursor: pointer; transition: background-color 0.2s, transform 0.1s ease-out;
109
+ svg {
110
+ opacity: 0.7;
111
+ stroke: #374151; /* Tailwind gray-700 - برای آیکون‌های ��در */
112
+ width: 24px; height: 24px;
113
+ }
114
+ &:hover { background-color: #d1d5db; /* Tailwind gray-300 */ }
115
+ &:active { background-color: #9ca3af; /* Tailwind gray-400 */ transform: scale(0.95); }
116
+ }
117
+ .dark .header-button {
118
+ background-color: oklch(0.28 0 0);
119
+ &:hover { background-color: oklch(0.35 0 0); }
120
+ &:active { background-color: oklch(0.40 0 0); transform: scale(0.95); }
121
+ svg {
122
+ opacity: 0.8;
123
+ stroke: oklch(0.85 0 0); /* رنگ آیکون هدر در حالت تاریک */
124
+ }
125
+ }
126
+
127
+ /* Logo Animation Styling */
128
+ .logo-animation-wrapper {
129
+ position: relative;
130
  display: flex;
131
  align-items: center;
132
  justify-content: center;
133
+ // *** NEW: تنظیم رنگ متن برای کانتینر لوگو تا آدمک سفید شود ***
134
+ // این روی SvgHumanIcon که از stroke="currentColor" استفاده می‌کند، تاثیر می‌گذارد.
135
+ // اگر حلقه‌های آبی پس‌زمینه به اندازه کافی تیره هستند، text-white خوب عمل می‌کند.
136
+ // در غیر این صورت، باید مستقیما stroke="#FFFFFF" را در SvgHumanIcon تنظیم کنید.
137
+ color: white; // یا var(--foreground) اگر می خواهید با تم تغییر کند و تم شما این را مدیریت می کند.
 
 
138
 
139
+ & > .z-10 > svg { // برای SvgHumanIcon
140
+ width: 100%;
141
+ height: 100%;
 
 
142
  }
143
+ }
144
 
145
+ /* Footer styles */
146
+ .footer-controls-html-like {
147
+ width: 100%;
148
+ display: flex;
149
+ align-items: center;
150
+ position: absolute;
151
+ bottom: 2rem; /* تنظیم ارتفاع فوتر از پایین */
152
+ padding-left: 2.5rem;
153
+ padding-right: 2.5rem;
154
+ padding-top: 0.5rem;
155
+ padding-bottom: 0.5rem;
156
+ box-sizing: border-box;
157
+ z-index: 20;
158
+ justify-content: space-between;
159
+ }
160
 
161
+ .small-logo-footer-html-like {
162
+ position: absolute;
163
+ left: 50%;
164
+ top: 50%;
165
+ transform: translate(-50%, -50%);
166
+ z-index: 1;
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: center;
170
  }
171
 
172
+ .control-button-wrapper {
173
+ position: relative;
174
+ display: flex;
175
+ justify-content: center;
176
+ }
177
+
178
+ .control-button {
179
+ height: 80px;
180
+ width: 80px;
181
+ border-radius: 9999px;
182
+ padding: 0;
183
+ display: flex;
184
+ align-items: center;
185
+ justify-content: center;
186
+ border-width: 1px;
187
+ border-color: theme('colors.custom-border');
188
+ box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
189
+ cursor: pointer;
190
+ transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
191
+ flex-shrink: 0;
192
+ z-index: 2;
193
+ overflow: hidden;
194
+
195
  &:hover {
196
+ transform: scale(1.05);
197
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
 
 
 
198
  }
199
+
200
  svg {
201
+ &.reference-mic-svg {
202
+ width: 75%;
203
+ height: 75%;
204
+ }
205
+ // SVGهای دیگر داخل دکمه‌ها (مثل دوربین، توقف و ...)
206
+ // می‌توانند اندازه پیش‌فرض خود را داشته باشند یا در صورت نیاز جداگانه استایل‌دهی شوند.
207
  }
208
  }
209
 
210
+ .mic-button-color { background-color: #fecdd3; }
211
+ .cam-button-color { background-color: #E0ECFF; }
212
+ .dark .mic-button-color { background-color: #5C2129; }
213
+ .dark .cam-button-color { background-color: #223355; }
214
+
215
+ /* Switch Camera Button */
216
+ .switch-camera-button-container {
217
+ position: absolute; bottom: calc(100% + 0.65rem); left: 50%;
218
+ transform: translateX(-50%) translateY(15px) scale(0.7); z-index: 5;
219
+ opacity: 0; pointer-events: none;
220
+ 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);
221
+ transform-origin: center bottom;
222
+ &.visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); pointer-events: auto; }
223
+ }
224
+ .switch-camera-button-content {
225
+ width: 48px; height: 48px;
226
+ background-color: theme('colors.custom-background');
227
+ border: 1px solid theme('colors.custom-border');
228
+ border-radius: 9999px; display: flex; align-items: center; justify-content: center;
229
+ box-shadow: 0 5px 10px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.08); cursor: pointer;
230
+ transform-origin: center; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
231
+ &: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); }
232
+ &:active { transform: scale(1.03) rotate(0deg); }
233
+ svg { width: 22px; height: 22px; stroke: theme('colors.custom-foreground'); transition: transform 0.3s ease-in-out; }
234
+ &:hover svg { transform: rotate(360deg); }
235
+ }
236
+
237
+ /* Keyframes for popover - استفاده از نام‌های تعریف شده در tailwind.config.js */
238
+ .animate-popover-open-top-center {
239
+ @apply animation-popover-open-top-center;
240
+ }
241
+ .animate-popover-close-top-center {
242
+ @apply animation-popover-close-top-center;
243
+ }