🎨 Layout: Глобальные стили, favicon, корневой layout
This commit is contained in:
BIN
app/favicon.ico
Normal file
BIN
app/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
44
app/globals.css
Normal file
44
app/globals.css
Normal file
@@ -0,0 +1,44 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
:root {
|
||||
/* Hiddify Colors */
|
||||
--primary: #2fbea5;
|
||||
--primary-dark: #005048;
|
||||
--primary-light: #7df8dd;
|
||||
|
||||
--bg-app: #191f23;
|
||||
--bg-card: #263238;
|
||||
--bg-elevated: #37474f;
|
||||
|
||||
--text-primary: #e1e2e6;
|
||||
--text-white: #ffffff;
|
||||
|
||||
--border: #37474f;
|
||||
--outline: #4caf50;
|
||||
|
||||
--success: #44a334;
|
||||
--idle: #4a4d8b;
|
||||
--error: #f44336;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--bg-app);
|
||||
color: var(--text-primary);
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
}
|
||||
|
||||
/* Бегущая строка */
|
||||
@keyframes marquee {
|
||||
0% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
100% {
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-marquee {
|
||||
animation: marquee 20s linear infinite;
|
||||
}
|
||||
52
app/layout.tsx
Normal file
52
app/layout.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
import './globals.css';
|
||||
import type { Metadata } from 'next';
|
||||
import { Inter } from 'next/font/google';
|
||||
|
||||
const inter = Inter({ subsets: ['latin'] });
|
||||
|
||||
export const viewport = {
|
||||
width: 'device-width',
|
||||
initialScale: 1,
|
||||
maximumScale: 1,
|
||||
userScalable: false, // Отключаем зум для mini app
|
||||
themeColor: '#191f23', // Цвет темы Umbrix
|
||||
};
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Umbrix VPN',
|
||||
description: 'Быстрый и безопасный VPN сервис',
|
||||
openGraph: {
|
||||
title: 'Umbrix VPN',
|
||||
description: 'Быстрый и безопасный VPN сервис',
|
||||
images: [
|
||||
{
|
||||
url: 'https://bolt.new/static/og_default.png',
|
||||
},
|
||||
],
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Umbrix VPN',
|
||||
description: 'Быстрый и безопасный VPN сервис',
|
||||
images: [
|
||||
{
|
||||
url: 'https://bolt.new/static/og_default.png',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script src="https://telegram.org/js/telegram-web-app.js" async></script>
|
||||
</head>
|
||||
<body className={inter.className}>{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user