Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7dc207ddc4 | |||
| 94634a0425 | |||
| 7c50af171e |
@@ -13,16 +13,35 @@ const ubuntu = Ubuntu({
|
||||
const inter = Inter({
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Strategic Media Buying Expert | Drive Advertising Results", description: "Professional media buying services that deliver measurable ROI. Expert strategies for brands and advertising professionals seeking impactful campaigns.", keywords: ["media buying", "advertising strategy", "digital marketing", "brand growth", "ROI optimization"]
|
||||
title: "Strategic Media Buying Expert | Drive Advertising Results",
|
||||
description: "Professional media buying services that deliver measurable ROI. Expert strategies for brands and advertising professionals seeking impactful campaigns.",
|
||||
keywords: ["media buying", "advertising strategy", "digital marketing", "brand growth", "ROI optimization"]
|
||||
};
|
||||
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
const [isPlaying, setIsPlaying] = useState(false);
|
||||
|
||||
const toggleMusic = () => {
|
||||
const audio = document.getElementById('lofi-music') as HTMLAudioElement;
|
||||
if (audio) {
|
||||
if (isPlaying) {
|
||||
audio.pause();
|
||||
} else {
|
||||
audio.play();
|
||||
}
|
||||
setIsPlaying(!isPlaying);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
@@ -31,7 +50,32 @@ export default function RootLayout({
|
||||
>
|
||||
<Tag />
|
||||
{children}
|
||||
<CursorTrail />
|
||||
|
||||
{/* Lofi Music Player */}
|
||||
<audio
|
||||
id="lofi-music"
|
||||
src="https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
|
||||
loop
|
||||
preload="metadata"
|
||||
/>
|
||||
|
||||
{/* Floating Music Toggle Button */}
|
||||
<button
|
||||
onClick={toggleMusic}
|
||||
className="fixed bottom-6 right-6 z-50 w-14 h-14 rounded-full bg-gradient-to-br from-purple-500 to-pink-500 hover:from-purple-600 hover:to-pink-600 text-white shadow-lg hover:shadow-xl transition-all duration-300 flex items-center justify-center hover:scale-110 active:scale-95"
|
||||
aria-label="Toggle lofi music"
|
||||
title={isPlaying ? "Pause music" : "Play lofi music"}
|
||||
>
|
||||
{isPlaying ? (
|
||||
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M6 4h4v16H6V4zm8 0h4v16h-4V4z" />
|
||||
</svg>
|
||||
) : (
|
||||
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M8 5v14l11-7z" />
|
||||
</svg>
|
||||
)}
|
||||
</button>
|
||||
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
@@ -42,91 +86,6 @@ export default function RootLayout({
|
||||
if (window.__webildEditorInitialized) return;
|
||||
window.__webildEditorInitialized = true;
|
||||
|
||||
// Custom cursor and click sound effects
|
||||
const clickSound = new Audio('data:audio/wav;base64,UklGRiYAAABXQVZFZm10IBAAAAABAAEAQB8AAAB9AAACABAAZGF0YQIAAAAAAA==');
|
||||
clickSound.volume = 0.3;
|
||||
|
||||
document.addEventListener('click', function() {
|
||||
try {
|
||||
clickSound.currentTime = 0;
|
||||
clickSound.play().catch(() => {});
|
||||
} catch(e) {}
|
||||
});
|
||||
|
||||
// Hide default cursor
|
||||
document.documentElement.style.cursor = 'none';
|
||||
document.body.style.cursor = 'none';
|
||||
=======
|
||||
REPLACE
|
||||
|
||||
<<<<<<< SEARCH
|
||||
'[contenteditable="true"].webild-selected {' +
|
||||
' outline: 2px solid #4d96ff !important;' +
|
||||
' background-color: #4d96ff05 !important;' +
|
||||
'}' +
|
||||
'img.webild-hover,' +
|
||||
'img.webild-selected,' +
|
||||
'video.webild-hover,' +
|
||||
'video.webild-selected {' +
|
||||
' outline-offset: 2px !important;' +
|
||||
'}' +
|
||||
'.webild-element-type-label {' +
|
||||
' position: fixed !important;' +
|
||||
' z-index: 999999 !important;' +
|
||||
' background: #4d96ff !important;' +
|
||||
' color: white !important;' +
|
||||
' padding: 4px 8px !important;' +
|
||||
' font-size: 11px !important;' +
|
||||
' font-weight: 600 !important;' +
|
||||
' font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;' +
|
||||
' pointer-events: none !important;' +
|
||||
=======
|
||||
'[contenteditable="true"].webild-selected {' +
|
||||
' outline: 2px solid #4d96ff !important;' +
|
||||
' background-color: #4d96ff05 !important;' +
|
||||
'}' +
|
||||
'img.webild-hover,' +
|
||||
'img.webild-selected,' +
|
||||
'video.webild-hover,' +
|
||||
'video.webild-selected {' +
|
||||
' outline-offset: 2px !important;' +
|
||||
'}' +
|
||||
'.custom-cursor {' +
|
||||
' position: fixed !important;' +
|
||||
' width: 20px !important;' +
|
||||
' height: 20px !important;' +
|
||||
' border: 2px solid #a78bfa !important;' +
|
||||
' border-radius: 50% !important;' +
|
||||
' pointer-events: none !important;' +
|
||||
' z-index: 999998 !important;' +
|
||||
' box-shadow: 0 0 10px rgba(167, 139, 250, 0.6) !important;' +
|
||||
' transition: all 0.1s ease-out !important;' +
|
||||
'}' +
|
||||
'.custom-cursor.active {' +
|
||||
' width: 28px !important;' +
|
||||
' height: 28px !important;' +
|
||||
' box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), inset 0 0 10px rgba(167, 139, 250, 0.4) !important;' +
|
||||
'}' +
|
||||
'.cursor-trail {' +
|
||||
' position: fixed !important;' +
|
||||
' width: 8px !important;' +
|
||||
' height: 8px !important;' +
|
||||
' background: radial-gradient(circle, rgba(167, 139, 250, 0.8), rgba(167, 139, 250, 0)) !important;' +
|
||||
' border-radius: 50% !important;' +
|
||||
' pointer-events: none !important;' +
|
||||
' z-index: 999997 !important;' +
|
||||
'}' +
|
||||
'.webild-element-type-label {' +
|
||||
' position: fixed !important;' +
|
||||
' z-index: 999999 !important;' +
|
||||
' background: #4d96ff !important;' +
|
||||
' color: white !important;' +
|
||||
' padding: 4px 8px !important;' +
|
||||
' font-size: 11px !important;' +
|
||||
' font-weight: 600 !important;' +
|
||||
' font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;' +
|
||||
' pointer-events: none !important;' +
|
||||
|
||||
let isActive = false;
|
||||
let hoveredElement = null;
|
||||
let selectedElement = null;
|
||||
@@ -141,50 +100,6 @@ REPLACE
|
||||
const hoverClass = 'webild-hover';
|
||||
const selectedClass = 'webild-selected';
|
||||
|
||||
// Cursor trail and animation system
|
||||
let mouseX = 0, mouseY = 0;
|
||||
let cursorX = 0, cursorY = 0;
|
||||
const customCursor = document.createElement('div');
|
||||
customCursor.className = 'custom-cursor';
|
||||
document.body.appendChild(customCursor);
|
||||
|
||||
document.addEventListener('mousemove', (e) => {
|
||||
mouseX = e.clientX;
|
||||
mouseY = e.clientY;
|
||||
|
||||
cursorX += (mouseX - cursorX) * 0.2;
|
||||
cursorY += (mouseY - cursorY) * 0.2;
|
||||
|
||||
customCursor.style.left = (cursorX - 10) + 'px';
|
||||
customCursor.style.top = (cursorY - 10) + 'px';
|
||||
|
||||
if (Math.random() > 0.7) {
|
||||
const trail = document.createElement('div');
|
||||
trail.className = 'cursor-trail';
|
||||
trail.style.left = (mouseX - 4) + 'px';
|
||||
trail.style.top = (mouseY - 4) + 'px';
|
||||
document.body.appendChild(trail);
|
||||
|
||||
setTimeout(() => trail.remove(), 600);
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('mousedown', () => {
|
||||
customCursor.classList.add('active');
|
||||
});
|
||||
|
||||
document.addEventListener('mouseup', () => {
|
||||
customCursor.classList.remove('active');
|
||||
});
|
||||
|
||||
document.addEventListener('mouseleave', () => {
|
||||
customCursor.style.opacity = '0';
|
||||
});
|
||||
|
||||
document.addEventListener('mouseenter', () => {
|
||||
customCursor.style.opacity = '1';
|
||||
});
|
||||
|
||||
const style = document.createElement('style');
|
||||
style.id = 'webild-inspector-styles';
|
||||
style.textContent = '' +
|
||||
@@ -223,6 +138,14 @@ REPLACE
|
||||
' font-weight: 600 !important;' +
|
||||
' font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;' +
|
||||
' pointer-events: none !important;' +
|
||||
'}';
|
||||
}}
|
||||
/>
|
||||
</body>
|
||||
</ServiceWrapper>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
' white-space: nowrap !important;' +
|
||||
' box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;' +
|
||||
' letter-spacing: 0.3px !important;' +
|
||||
|
||||
Reference in New Issue
Block a user