rebrand: PostCast identity + indigo color scheme

This commit is contained in:
Nik (Claude)
2026-06-15 23:25:48 +03:00
parent 344ef7bae5
commit abf6a0b121
13 changed files with 25 additions and 25 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ import { engine } from '@/lib/engine';
import Header from '@/components/Header';
import CalendarView from '@/components/CalendarView';
export const metadata = { title: 'Календарь публикаций — ZeroPost' };
export const metadata = { title: 'Календарь публикаций — PostCast' };
export default async function CalendarPage() {
const user = await requireUser();
+1 -1
View File
@@ -138,7 +138,7 @@ export default function NewChannelPage() {
<div className="card p-6 space-y-5">
<div>
<label className="label">Название канала <span className="text-red-400">*</span></label>
<input className="input" value={name} onChange={e => setName(e.target.value)} placeholder="Например: ZeroPost AI" />
<input className="input" value={name} onChange={e => setName(e.target.value)} placeholder="Например: PostCast AI" />
</div>
<div>
<label className="label">Ниша / тематика</label>
+4 -4
View File
@@ -11,8 +11,8 @@
--text: 23 23 23; /* neutral-900 */
--text-soft: 82 82 91; /* zinc-600 */
--text-mute: 161 161 170; /* zinc-400 */
--accent: 16 185 129; /* emerald-500 */
--accent2: 5 150 105; /* emerald-600 */
--accent: 99 102 241; /* indigo-500 */
--accent2: 79 70 229; /* indigo-600 */
--accent-text: 255 255 255; /* белый текст на акценте */
}
@@ -25,8 +25,8 @@
--text: 243 244 246; /* gray-100 */
--text-soft: 209 213 219; /* gray-300 */
--text-mute: 107 114 128; /* gray-500 */
--accent: 16 185 129;
--accent2: 52 211 153;
--accent: 129 140 248;
--accent2: 165 180 252;
--accent-text: 0 0 0;
}
+7 -7
View File
@@ -29,7 +29,7 @@ const PLANS = [
{
name: 'Business', price: 3990, credits: -1, channels: -1,
features: ['Безлимит каналов', 'Безлимит кредитов', 'Приоритетная поддержка', 'API доступ'],
cta: 'Связаться', ctaHref: 'mailto:hello@zeropost.ru', accent: false,
cta: 'Связаться', ctaHref: 'mailto:hello@postcast.ru', accent: false,
},
];
@@ -40,7 +40,7 @@ export default function LandingPage() {
<nav className="border-b border-border sticky top-0 bg-background/90 backdrop-blur z-50">
<div className="max-w-6xl mx-auto px-4 sm:px-6 h-14 flex items-center justify-between">
<Link href="/" className="flex items-center gap-2 font-bold text-lg">
<Sparkles className="w-5 h-5 text-accent" /> ZeroPost
<Sparkles className="w-5 h-5 text-accent" /> PostCast
</Link>
<div className="flex items-center gap-3">
<Link href="/login" className="btn-ghost text-sm px-4 py-2">Войти</Link>
@@ -59,7 +59,7 @@ export default function LandingPage() {
<span className="text-accent">AI пишет, ты одобряешь.</span>
</h1>
<p className="text-gray-400 text-lg max-w-2xl mx-auto mb-8">
ZeroPost генерирует посты для Telegram и VK, планирует публикации и отвечает на комментарии.
PostCast генерирует посты для Telegram и VK, планирует публикации и отвечает на комментарии.
Тратьте 10 минут в день вместо 2 часов.
</p>
<div className="flex flex-wrap items-center justify-center gap-3">
@@ -76,7 +76,7 @@ export default function LandingPage() {
{/* Features */}
<section className="max-w-6xl mx-auto px-4 sm:px-6 pb-20">
<h2 className="text-2xl font-bold text-center mb-10">Что умеет ZeroPost</h2>
<h2 className="text-2xl font-bold text-center mb-10">Что умеет PostCast</h2>
<div className="grid gap-5 sm:grid-cols-2 lg:grid-cols-3">
{FEATURES.map(f => (
<div key={f.title} className="card p-5">
@@ -129,7 +129,7 @@ export default function LandingPage() {
<ul className="space-y-2 flex-1 mb-5">
{plan.features.map(f => (
<li key={f} className="text-sm text-gray-300 flex items-center gap-2">
<Check className="w-3.5 h-3.5 text-green-400 shrink-0" /> {f}
<Check className="w-3.5 h-3.5 text-accent shrink-0" /> {f}
</li>
))}
</ul>
@@ -158,13 +158,13 @@ export default function LandingPage() {
<div className="max-w-6xl mx-auto px-4 sm:px-6 flex flex-wrap items-center justify-between gap-4 text-sm text-gray-500">
<div className="flex items-center gap-2">
<Sparkles className="w-4 h-4 text-accent" />
<span className="font-medium text-gray-300">ZeroPost</span>
<span className="font-medium text-gray-300">PostCast</span>
<span>· AI-автоматизация контента</span>
</div>
<div className="flex gap-4">
<Link href="/login" className="hover:text-gray-300">Войти</Link>
<Link href="/register" className="hover:text-gray-300">Регистрация</Link>
<a href="mailto:hello@zeropost.ru" className="hover:text-gray-300">Контакты</a>
<a href="mailto:hello@postcast.ru" className="hover:text-gray-300">Контакты</a>
</div>
</div>
</footer>
+2 -2
View File
@@ -1,8 +1,8 @@
import './globals.css';
export const metadata = {
title: 'ZeroPost — ИИ-генерация постов для Telegram',
description: 'Инструмент для ведения Telegram-каналов с помощью ИИ',
title: 'PostCast — ИИ-ассистент для Telegram-каналов',
description: 'Управляйте Telegram-каналами с помощью искусственного интеллекта',
};
// Inline-скрипт чтобы установить тему ДО рендера и избежать вспышки
+1 -1
View File
@@ -39,7 +39,7 @@ export default function LoginPage() {
<div className="w-full max-w-md">
<div className="flex items-center gap-2 mb-8 justify-center">
<Sparkles className="w-7 h-7 text-accent" />
<span className="text-2xl font-bold">ZeroPost</span>
<span className="text-2xl font-bold">PostCast</span>
</div>
<div className="card p-8">
+1 -1
View File
@@ -75,7 +75,7 @@ export default function NotesPage() {
<div className="flex items-center gap-2">
<MessageCircle className="w-5 h-5 text-accent" />
<h1 className="text-xl font-bold">Заметки редактора</h1>
<a href="https://zeropost.ru/notes" target="_blank" rel="noreferrer" className="text-gray-500 hover:text-accent">
<a href="https://postcast.ru/notes" target="_blank" rel="noreferrer" className="text-gray-500 hover:text-accent">
<ExternalLink className="w-4 h-4" />
</a>
</div>
+1 -1
View File
@@ -42,7 +42,7 @@ export default function RegisterPage() {
<div className="text-center mb-8">
<Link href="/" className="inline-flex items-center gap-2 text-2xl font-bold">
<Sparkles className="w-7 h-7 text-accent" />
ZeroPost
PostCast
</Link>
<p className="text-gray-400 text-sm mt-2">Создайте аккаунт это бесплатно</p>
</div>
+2 -2
View File
@@ -24,7 +24,7 @@ const SECTIONS = [
{ id: 'logs', label: 'Логи ошибок', icon: AlertTriangle, desc: 'Последние сбои и проблемы' },
{ id: 'autogen', label: 'Автогенерация', icon: BookOpen, desc: 'Расписание статей блога' },
{ id: 'content', label: 'Контент-дефолты', icon: Sliders, desc: 'Настройки для новых каналов' },
{ id: 'topicbank', label: 'Банк тем блога', icon: BookOpen, desc: 'Темы для zeropost.ru' },
{ id: 'topicbank', label: 'Банк тем блога', icon: BookOpen, desc: 'Темы для postcast.ru' },
{ id: 'smtp', label: 'Email / SMTP', icon: Mail, desc: 'Уведомления пользователям' },
{ id: 'plans', label: 'Тарифы', icon: BarChart3, desc: 'Планы, кредиты, операции' },
{ id: 'promos', label: 'Промокоды', icon: Tag, desc: 'Коды для кредитов и скидок' },
@@ -105,7 +105,7 @@ const CATEGORY_META = {
},
payments: {
title: 'ЮKassa',
hint: 'Shop ID и Secret Key из личного кабинета. Webhook: https://engine.zeropost.ru/api/billing/webhook',
hint: 'Shop ID и Secret Key из личного кабинета. Webhook: https://engine.postcast.ru/api/billing/webhook',
},
};
+2 -2
View File
@@ -27,7 +27,7 @@ export default function Header({ user }) {
<div className="max-w-6xl mx-auto px-4 py-3 flex items-center justify-between">
<Link href="/" className="flex items-center gap-2 hover:opacity-80">
<Sparkles className="w-5 h-5 text-accent" />
<span className="font-bold">ZeroPost</span>
<span className="font-bold">PostCast</span>
</Link>
<nav className="hidden sm:flex items-center gap-1">
<Link href="/calendar" className="btn-ghost px-3 py-1.5 text-sm flex items-center gap-1.5">
@@ -71,7 +71,7 @@ export function PublicHeader() {
<div className="max-w-6xl mx-auto px-4 sm:px-6 h-14 flex items-center justify-between">
<Link href="/landing" className="flex items-center gap-2 font-bold">
<Sparkles className="w-5 h-5 text-accent" />
<span>ZeroPost</span>
<span>PostCast</span>
</Link>
<div className="flex items-center gap-2">
<Link href="/login" className="btn-ghost text-sm px-3 py-1.5">Войти</Link>
+1 -1
View File
@@ -12,7 +12,7 @@ const CATEGORIES = [
{ slug: 'ai_providers', title: 'AI провайдеры',
hint: 'Ключи, URL и модели для текстовой и картиночной генерации. Меняются на лету — рестарт engine не нужен.' },
{ slug: 'payments', title: 'ЮKassa',
hint: 'Shop ID и Secret Key из личного кабинета ЮKassa. Webhook URL для настройки: https://engine.zeropost.ru/api/billing/webhook' },
hint: 'Shop ID и Secret Key из личного кабинета ЮKassa. Webhook URL для настройки: https://engine.postcast.ru/api/billing/webhook' },
{ slug: 'photo_search', title: 'Поиск фото',
hint: 'Yandex Search API: provider, ключ, folder, лимиты.' },
];
+1 -1
View File
@@ -122,7 +122,7 @@ export default function AdminAutogen() {
<div className="flex items-center justify-between">
<div>
<h2 className="font-semibold">Автогенерация блога</h2>
<p className="text-xs text-gray-400 mt-0.5">Статьи для zeropost.ru генерируются автоматически по расписанию</p>
<p className="text-xs text-gray-400 mt-0.5">Статьи для postcast.ru генерируются автоматически по расписанию</p>
</div>
<div className="flex items-center gap-2">
{msg && <span className="text-sm text-green-400">{msg}</span>}
+1 -1
View File
@@ -81,7 +81,7 @@ export default function AdminTopicBank() {
<div className="flex items-center justify-between">
<div>
<h2 className="font-semibold">Банк тем блога</h2>
<p className="text-xs text-gray-400 mt-0.5">Темы для автогенерации статей на zeropost.ru</p>
<p className="text-xs text-gray-400 mt-0.5">Темы для автогенерации статей на postcast.ru</p>
</div>
<div className="flex items-center gap-2">
{msg && <span className="text-sm text-green-400">{msg}</span>}