fix: admin sticky header, pricing rules textarea, hero 3D text shadow

- Admin mobile header: sticky top so it stays visible on scroll
- Pricing rules: auto-expanding textarea instead of single-line input
- Hero text: layered gold+shadow for 3D depth effect
This commit is contained in:
2026-04-02 15:35:48 +03:00
parent 2c6bee9eb1
commit 06f7dcf570
3 changed files with 11 additions and 6 deletions
+1 -1
View File
@@ -163,7 +163,7 @@ export default function AdminLayout({
{/* Main content */}
<div className="flex-1 flex flex-col min-w-0">
{/* Top bar (mobile) */}
<header className="flex items-center gap-3 border-b border-white/10 px-4 py-3 lg:hidden">
<header className="sticky top-0 z-30 flex items-center gap-3 border-b border-white/10 bg-neutral-950 px-4 py-3 lg:hidden">
<button
onClick={() => setSidebarOpen(true)}
aria-label="Открыть меню"
+9 -4
View File
@@ -200,11 +200,16 @@ function PricingContent({ data, update }: { data: PricingData; update: (d: Prici
onChange={(rules) => update({ ...data, rules })}
inline
renderItem={(rule, _i, updateItem) => (
<input
type="text"
<textarea
value={rule}
onChange={(e) => updateItem(e.target.value)}
className="w-full rounded-lg border border-white/10 bg-neutral-800 px-3 py-2 text-sm text-white placeholder-neutral-500 outline-none hover:border-gold/30 focus:border-gold transition-colors"
onChange={(e) => {
updateItem(e.target.value);
e.target.style.height = "auto";
e.target.style.height = e.target.scrollHeight + "px";
}}
ref={(el) => { if (el) { el.style.height = "auto"; el.style.height = el.scrollHeight + "px"; } }}
rows={1}
className="w-full rounded-lg border border-white/10 bg-neutral-800 px-3 py-2 text-sm text-white placeholder-neutral-500 outline-none hover:border-gold/30 focus:border-gold transition-colors resize-none overflow-hidden"
placeholder="Текст правила..."
/>
)}