Spaces:
Running
Running
Update src/App.scss
Browse files- src/App.scss +48 -14
src/App.scss
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
// src/App.scss (نسخه نهایی
|
2 |
|
3 |
// 1. Import Tailwind's base, components, and utilities
|
4 |
@import 'tailwindcss/base';
|
@@ -91,12 +91,16 @@
|
|
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 |
direction: rtl;
|
99 |
-
|
|
|
|
|
|
|
100 |
li {
|
101 |
display: flex; align-items: center; justify-content: space-between;
|
102 |
padding: 10px 12px; border-radius: 8px; cursor: pointer; transition: background-color 150ms ease;
|
@@ -107,6 +111,45 @@
|
|
107 |
div { display: flex; align-items: center; gap: 12px; }
|
108 |
.material-symbols-outlined { font-size: 22px; &.tick { color: #34c759; } }
|
109 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
}
|
111 |
}
|
112 |
|
@@ -137,20 +180,11 @@
|
|
137 |
.cam-button-color { background-color: #E0ECFF; }
|
138 |
.dark .mic-button-color { background-color: #5C2129; }
|
139 |
.dark .cam-button-color { background-color: #223355; }
|
140 |
-
|
141 |
-
// ✅ تغییر اصلی اینجاست
|
142 |
-
.control-button-wrapper {
|
143 |
-
position: relative; // این مهم است تا دکمه تعویض دوربین نسبت به آن موقعیتیابی شود
|
144 |
-
display: flex;
|
145 |
-
justify-content: center;
|
146 |
-
}
|
147 |
-
|
148 |
.switch-camera-button-container {
|
149 |
-
position: absolute;
|
150 |
-
bottom: calc(100% + 0.65rem);
|
151 |
-
// این دو خط، دکمه را دقیقاً در مرکز افقی والدش (یعنی .control-button-wrapper) قرار میدهد
|
152 |
left: 50%;
|
153 |
-
transform: translateX(-50%) translateY(15px) scale(0.7);
|
154 |
z-index: 5;
|
155 |
opacity: 0; pointer-events: none; transition: opacity 0.35s, transform 0.35s;
|
156 |
transform-origin: center bottom;
|
|
|
1 |
+
// src/App.scss (نسخه نهایی و کامل با همه اصلاحات)
|
2 |
|
3 |
// 1. Import Tailwind's base, components, and utilities
|
4 |
@import 'tailwindcss/base';
|
|
|
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 |
+
|
95 |
.popover-content {
|
96 |
background: theme('colors.custom-popover'); backdrop-filter: blur(10px);
|
97 |
border-radius: 12px; padding: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
|
98 |
border: 1px solid theme('colors.custom-border');
|
99 |
direction: rtl;
|
100 |
+
max-height: 70vh;
|
101 |
+
overflow-y: auto;
|
102 |
+
|
103 |
+
ul { list-style: none; padding: 0; margin: 0; width: 240px; }
|
104 |
li {
|
105 |
display: flex; align-items: center; justify-content: space-between;
|
106 |
padding: 10px 12px; border-radius: 8px; cursor: pointer; transition: background-color 150ms ease;
|
|
|
111 |
div { display: flex; align-items: center; gap: 12px; }
|
112 |
.material-symbols-outlined { font-size: 22px; &.tick { color: #34c759; } }
|
113 |
}
|
114 |
+
|
115 |
+
.menu-divider {
|
116 |
+
border: none; height: 1px; background-color: theme('colors.custom-border');
|
117 |
+
margin: 8px 4px;
|
118 |
+
}
|
119 |
+
.menu-subtitle {
|
120 |
+
font-size: 0.75rem; font-weight: 600; text-transform: uppercase;
|
121 |
+
color: theme('colors.custom-foreground'); opacity: 0.5;
|
122 |
+
padding: 8px 12px;
|
123 |
+
}
|
124 |
+
.voice-grid {
|
125 |
+
display: grid;
|
126 |
+
grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
|
127 |
+
gap: 12px;
|
128 |
+
padding: 4px 8px 8px;
|
129 |
+
}
|
130 |
+
.voice-card {
|
131 |
+
cursor: pointer; text-align: center;
|
132 |
+
img {
|
133 |
+
width: 56px; height: 56px; border-radius: 50%;
|
134 |
+
object-fit: cover;
|
135 |
+
border: 3px solid transparent;
|
136 |
+
transition: border-color 0.2s, transform 0.2s;
|
137 |
+
&:hover { transform: scale(1.05); }
|
138 |
+
}
|
139 |
+
&.active img {
|
140 |
+
border-color: #0a84ff;
|
141 |
+
transform: scale(1.05);
|
142 |
+
}
|
143 |
+
.voice-name {
|
144 |
+
font-size: 0.75rem;
|
145 |
+
margin-top: 4px;
|
146 |
+
color: theme('colors.custom-foreground');
|
147 |
+
opacity: 0.8;
|
148 |
+
white-space: nowrap;
|
149 |
+
overflow: hidden;
|
150 |
+
text-overflow: ellipsis;
|
151 |
+
}
|
152 |
+
}
|
153 |
}
|
154 |
}
|
155 |
|
|
|
180 |
.cam-button-color { background-color: #E0ECFF; }
|
181 |
.dark .mic-button-color { background-color: #5C2129; }
|
182 |
.dark .cam-button-color { background-color: #223355; }
|
183 |
+
.control-button-wrapper { position: relative; display: flex; justify-content: center; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
.switch-camera-button-container {
|
185 |
+
position: absolute; bottom: calc(100% + 0.65rem);
|
|
|
|
|
186 |
left: 50%;
|
187 |
+
transform: translateX(-50%) translateY(15px) scale(0.7);
|
188 |
z-index: 5;
|
189 |
opacity: 0; pointer-events: none; transition: opacity 0.35s, transform 0.35s;
|
190 |
transform-origin: center bottom;
|