feat(tradein): rebrand default product "Trade-In" → "Мера" + new mark
All checks were successful
CI / changes (pull_request) Successful in 5s
CI / changes (push) Successful in 6s
CI / backend-tests (push) Has been skipped
CI / backend-tests (pull_request) Has been skipped

- Topbar: MeraMark SVG (буква М над размерной линией = «мера»/измерение),
  заменяет TI-бейдж в обоих местах (white-label fallback + дефолт)
- Topbar: дефолтный wordmark Trade-In → Мера
- trade-in.css: .brand-mark-svg sizing (22×22 в 28×28 бейдже),
  theme-aware через currentColor (работает в .brand-active)
- page.tsx: хлебная крошка + футер Trade-In → Мера
- layout.tsx: <title> + meta description → Мера

White-label бренды клиентов (praktika и пр.) не тронуты.
Сервисный термин «трейд-ин» в прозе OfferCard/HeroTransparency оставлен
как описание механики сделки, а не имя бренда.
This commit is contained in:
bot-backend 2026-06-06 21:04:34 +03:00
parent 38d948f078
commit f185e56df0
4 changed files with 21 additions and 7 deletions

View file

@ -6,8 +6,8 @@ import "./globals.css";
import { Providers } from "./providers"; import { Providers } from "./providers";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Trade-In MVP — Оценка вторичного жилья", title: "Мераоценка вторичного жилья",
description: "Локальная MVP-копия Trade-In Estimator (форк gendesign)", description: "Мера — оценка стоимости вторичного жилья по рыночным данным",
}; };
export default function RootLayout({ export default function RootLayout({

View file

@ -175,7 +175,7 @@ export default function TradeInPage() {
<main className="page"> <main className="page">
<div className="crumbs"> <div className="crumbs">
<em>Главная</em> <span></span> <em>Trade-In</em> <span></span> Новая оценка <em>Главная</em> <span></span> <em>Мера</em> <span></span> Новая оценка
</div> </div>
<div className="page-title"> <div className="page-title">
@ -335,7 +335,7 @@ export default function TradeInPage() {
<footer className="page-foot"> <footer className="page-foot">
<div> <div>
Trade-In · MVP ·{" "} Мера · MVP ·{" "}
<span className="mono">data: Avito + Cian + Yandex + Росреестр</span> <span className="mono">data: Avito + Cian + Yandex + Росреестр</span>
</div> </div>
<div style={{ display: "flex", gap: 18 }}> <div style={{ display: "flex", gap: 18 }}>

View file

@ -9,6 +9,19 @@ import { safeUrl } from "@/lib/safeUrl";
import { useBrand } from "@/lib/useBrand"; import { useBrand } from "@/lib/useBrand";
import { useMe } from "@/lib/useMe"; import { useMe } from "@/lib/useMe";
/** «Мера» mark буква М над размерной линией («мера» = измерение).
Глиф в currentColor; тёмный фон даёт CSS-бейдж .brand-mark. */
function MeraMark() {
return (
<svg viewBox="0 0 28 28" className="brand-mark-svg" aria-hidden="true" focusable="false">
{/* буква М */}
<path d="M8 16V6l6 7 6-7v10" fill="none" stroke="currentColor" strokeWidth="2" strokeLinejoin="round" strokeLinecap="round" />
{/* размерная линия под М — «мера» = измерение */}
<path d="M7 21h14M7 19.2v3.6M21 19.2v3.6" fill="none" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" />
</svg>
);
}
export type ActiveTab = export type ActiveTab =
| "estimate" | "estimate"
| "history" | "history"
@ -115,14 +128,14 @@ export function Topbar({ active }: TopbarProps) {
/> />
) : ( ) : (
<> <>
<span className="brand-mark">TI</span> <span className="brand-mark"><MeraMark /></span>
<span className="brand-product">{brand.name}</span> <span className="brand-product">{brand.name}</span>
</> </>
) )
) : ( ) : (
<> <>
<span className="brand-mark">TI</span> <span className="brand-mark"><MeraMark /></span>
<span className="brand-product">Trade-In</span> <span className="brand-product">Мера</span>
</> </>
)} )}
</div> </div>

View file

@ -105,6 +105,7 @@
font-size: 13px; font-size: 13px;
font-weight: 600; font-weight: 600;
} }
.brand-mark-svg { width: 22px; height: 22px; display: block; }
.brand-name { letter-spacing: 0.22em; } .brand-name { letter-spacing: 0.22em; }
.brand-sep { width: 1px; height: 18px; background: var(--border); margin: 0 2px; } .brand-sep { width: 1px; height: 18px; background: var(--border); margin: 0 2px; }
.brand-product { .brand-product {