Spaces:
Running
Running
File size: 8,477 Bytes
6ee0e44 6ef0e61 6ee0e44 db1de23 6ee0e44 db1de23 a75b5e9 6ee0e44 1860caa 6ee0e44 d495ba5 6ee0e44 fa51019 6ee0e44 db1de23 6ef0e61 d11eeb2 db1de23 6ee0e44 db1de23 6ee0e44 db1de23 9b8e548 db1de23 d495ba5 db1de23 1860caa ae193f8 ba3efb2 1860caa 2d9a144 ba3efb2 db1de23 26b53fd ac71390 6ef0e61 ba3efb2 2d9a144 05ad47d ba3efb2 d495ba5 1860caa ac71390 4d9ef16 1860caa 5dc105c 6ee0e44 db1de23 5dc105c 6ee0e44 5dc105c ae193f8 7f2a14a d11eeb2 db1de23 5dc105c d11eeb2 db1de23 7f2a14a ade0f62 6ee0e44 67a1642 ade0f62 6ee0e44 db1de23 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
// ... (بخشهای اولیه CSS، متغیرها، base styles، header، popover بدون تغییر) ...
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
:root { --radius: 0.625rem; --radius-md: 0.5rem; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --border: oklch(0.922 0 0); }
.dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); --border: oklch(1 0 0 / 10%); }
@layer base { * { border-color: var(--border); outline-color: var(--foreground); box-sizing: border-box; } body { @apply bg-background text-foreground; overflow-x: hidden; 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"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin: 0; padding: 0; } html { margin: 0; padding: 0; overflow-x: hidden; } }
.main-wrapper { min-height: 100vh; display: flex; flex-direction: column; }
.media-area { flex-grow: 1; position: relative; }
/* MODIFIED: استایل برای کانتینر لوگوی بزرگ */
.large-logo-container-style { /* این کلاس جدید در App.tsx استفاده شده */
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
pointer-events: none;
}
.notification-popover-wrapper { position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 100; width: calc(100% - 1rem); max-width: 28rem; display: flex; justify-content: center; pointer-events: none; }
.popover-content { width: 100%; border-radius: var(--radius-md, 0.5rem); border-width: 1px; border-color: var(--border); background-color: var(--popover); color: var(--popover-foreground); box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); outline: none; transition: opacity 0.3s ease-out, transform 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55); opacity: 0; transform: translateY(-100%) scale(0.9); pointer-events: none; &.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } }
.notification-popover-text-content { background-color: #eff6ff; font-size: 0.875rem; line-height: 1.5rem; direction: rtl; padding: 1rem; border-radius: var(--radius-md, 0.5rem); color: oklch(0.145 0 0); }
.dark .notification-popover-text-content { background-color: oklch(0.25 0.05 230); color: oklch(0.95 0.01 230); }
.header-controls { display: flex; padding: 0.75rem 0.5rem; justify-content: space-between; align-items: center; width: 100%; position: absolute; top: 0; left: 0; z-index: 10; }
.header-button { display: flex; align-items: center; justify-content: center; padding: 0.5rem; width: 40px; height: 40px; border-radius: var(--radius-lg, 0.625rem); background-color: #e5e7eb; cursor: pointer; transition: background-color 0.2s, transform 0.1s ease-out; svg { opacity: 0.7; stroke: #374151; width: 24px; height: 24px; } &:hover { background-color: #d1d5db; } &:active { background-color: #9ca3af; transform: scale(0.95); } }
.dark .header-button { background-color: oklch(0.28 0 0); &:hover { background-color: oklch(0.35 0 0); } &:active { background-color: oklch(0.40 0 0); transform: scale(0.95); } svg { opacity: 0.8; stroke: oklch(0.85 0 0); } }
/* Logo Animation Styling - اطمینان از position: relative برای کانتینر اصلی لوگو */
.logo-animation-wrapper {
position: relative; // این مهم است تا inset های absolute داخلی درست کار کنند
display: flex;
align-items: center;
justify-content: center;
// اطمینان از اینکه SVG آیکون داخلی به درستی اندازه میگیرد
& > .z-10 { // کانتینر مستقیم SVG آیکون
display: flex;
align-items: center;
justify-content: center;
// width و height این div توسط style inline در createLogoFunction تنظیم میشود
& > svg { // خود SVG
width: 100%;
height: 100%;
}
}
}
/* Footer styles - تنظیم دقیقتر bottom */
.footer-controls-html-like {
width: 100%;
display: flex;
align-items: center;
position: absolute;
// *** MODIFIED: تنظیم bottom برای بالاتر آوردن فوتر ***
bottom: 2rem; // امتحان کنید با 2rem شروع کنید و در صورت نیاز کم یا زیاد کنید (مثلاً 1.5rem, 2.5rem)
padding-left: 3rem;
padding-right: 3rem;
padding-top: 0.5rem; // پدینگ عمودی کمتر چون bottom را تنظیم کردیم
padding-bottom: 0.5rem;
box-sizing: border-box;
z-index: 20;
justify-content: space-between;
}
.small-logo-footer-html-like {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
}
.control-button-wrapper {
position: relative;
display: flex;
justify-content: center;
}
.control-button {
height: 80px;
width: 80px;
border-radius: 9999px;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
border-width: 1px;
border-color: var(--border);
box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
cursor: pointer;
transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
flex-shrink: 0;
z-index: 2;
overflow: hidden;
&:hover {
transform: scale(1.05);
box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
}
svg {
&.reference-mic-svg { // کلاس داده شده به SvgReferenceMicrophoneIcon در App.tsx
width: 70%; // یا هر درصدی که میخواهید، مثلا 75%
height: 70%;
}
// SVG های دیگر داخل دکمهها، اگر نیاز به تنظیم اندازه دارند
// مثال برای آیکون Pause:
// اگر SvgPauseIcon هم نیاز به تنظیم دارد، به آن هم کلاس بدهید یا مستقیم انتخابش کنید
}
}
.mic-button-color { background-color: #fecdd3; }
.cam-button-color { background-color: #E0ECFF; }
.dark .mic-button-color { background-color: #5C2129; }
.dark .cam-button-color { background-color: #223355; }
/* Switch Camera Button (بدون تغییر) */
.switch-camera-button-container { position: absolute; bottom: calc(100% + 0.65rem); left: 50%; transform: translateX(-50%) translateY(15px) scale(0.7); z-index: 5; opacity: 0; pointer-events: none; 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); transform-origin: center bottom; &.visible { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); pointer-events: auto; } }
.switch-camera-button-content { width: 48px; height: 48px; background-color: var(--background); border: 1px solid var(--border); border-radius: 9999px; display: flex; align-items: center; justify-content: center; box-shadow: 0 5px 10px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.08); cursor: pointer; transform-origin: center; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out; &: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); } &:active { transform: scale(1.03) rotate(0deg); } svg { width: 22px; height: 22px; stroke: var(--foreground); transition: transform 0.3s ease-in-out; } &:hover svg { transform: rotate(360deg); } }
/* Keyframes for popover (بدون تغییر) */
@keyframes popover-drop-in { 0% { opacity: 0; transform: translateY(-100%) scale(0.9); } 70% { opacity: 1; transform: translateY(5px) scale(1.02); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes popover-lift-out { 0% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-100%) scale(0.9); } }
.animate-popover-open-top-center { animation: popover-drop-in 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards; }
.animate-popover-close-top-center { animation: popover-lift-out 0.3s ease-in forwards; } |