feat(ui): Roboto font, GooSeek logo, remove custom fonts

- Replace Open Sans with Roboto (YouTube-style typography)
- Add GooSeek wordmark in Google colors above 'Research begins here'
- Remove PP Editorial, Instrument Serif from globals.css and components
- Unify font across frontend and auth-mcs

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
home
2026-02-20 17:52:13 +03:00
parent ed4c11e553
commit 0989eed206
8 changed files with 35 additions and 28 deletions

View File

@@ -1,4 +1,12 @@
import type { Metadata } from 'next'; import type { Metadata } from 'next';
import { Roboto } from 'next/font/google';
const roboto = Roboto({
weight: ['300', '400', '500', '700'],
subsets: ['latin'],
display: 'swap',
fallback: ['Arial', 'sans-serif'],
});
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Auth Service — Identity Provider', title: 'Auth Service — Identity Provider',
@@ -12,7 +20,7 @@ export default function RootLayout({
}) { }) {
return ( return (
<html lang="ru"> <html lang="ru">
<body style={{ margin: 0, fontFamily: 'system-ui, sans-serif' }}>{children}</body> <body className={roboto.className} style={{ margin: 0 }}>{children}</body>
</html> </html>
); );
} }

View File

@@ -146,10 +146,7 @@ const Page = () => {
<div className="flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4"> <div className="flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4">
<div className="flex items-center justify-center"> <div className="flex items-center justify-center">
<Globe2Icon size={45} className="mb-2.5" /> <Globe2Icon size={45} className="mb-2.5" />
<h1 <h1 className="text-5xl font-normal p-2">
className="text-5xl font-normal p-2"
style={{ fontFamily: 'PP Editorial, serif' }}
>
Discover Discover
</h1> </h1>
</div> </div>

View File

@@ -2,14 +2,6 @@
@tailwind components; @tailwind components;
@tailwind utilities; @tailwind utilities;
@font-face {
font-family: 'PP Editorial';
src: url('/fonts/pp-ed-ul.otf') format('opentype');
font-weight: 300;
font-style: normal;
font-display: swap;
}
@layer base { @layer base {
.overflow-hidden-scrollable { .overflow-hidden-scrollable {
-ms-overflow-style: none; -ms-overflow-style: none;

View File

@@ -1,7 +1,7 @@
export const dynamic = 'force-dynamic'; export const dynamic = 'force-dynamic';
import type { Metadata } from 'next'; import type { Metadata } from 'next';
import { Montserrat } from 'next/font/google'; import { Roboto } from 'next/font/google';
import './globals.css'; import './globals.css';
import { cn } from '@/lib/utils'; import { cn } from '@/lib/utils';
import Sidebar from '@/components/Sidebar'; import Sidebar from '@/components/Sidebar';
@@ -11,7 +11,7 @@ import configManager from '@/lib/config';
import SetupWizard from '@/components/Setup/SetupWizard'; import SetupWizard from '@/components/Setup/SetupWizard';
import { ChatProvider } from '@/lib/hooks/useChat'; import { ChatProvider } from '@/lib/hooks/useChat';
const montserrat = Montserrat({ const roboto = Roboto({
weight: ['300', '400', '500', '700'], weight: ['300', '400', '500', '700'],
subsets: ['latin'], subsets: ['latin'],
display: 'swap', display: 'swap',
@@ -34,7 +34,7 @@ export default function RootLayout({
return ( return (
<html className="h-full" lang="en" suppressHydrationWarning> <html className="h-full" lang="en" suppressHydrationWarning>
<body className={cn('h-full antialiased', montserrat.className)}> <body className={cn('h-full antialiased', roboto.className)}>
<ThemeProvider> <ThemeProvider>
{setupComplete ? ( {setupComplete ? (
<ChatProvider> <ChatProvider>

View File

@@ -45,10 +45,7 @@ const Page = () => {
<div className="flex items-center justify-center"> <div className="flex items-center justify-center">
<BookOpenText size={45} className="mb-2.5" /> <BookOpenText size={45} className="mb-2.5" />
<div className="flex flex-col"> <div className="flex flex-col">
<h1 <h1 className="text-5xl font-normal p-2 pb-0">
className="text-5xl font-normal p-2 pb-0"
style={{ fontFamily: 'PP Editorial, serif' }}
>
Library Library
</h1> </h1>
<div className="px-2 text-sm text-black/60 dark:text-white/60 text-center lg:text-left"> <div className="px-2 text-sm text-black/60 dark:text-white/60 text-center lg:text-left">

View File

@@ -29,7 +29,6 @@ const MajorNewsCard = ({
<div className="flex flex-col justify-center flex-1 py-4"> <div className="flex flex-col justify-center flex-1 py-4">
<h2 <h2
className="text-3xl font-light mb-3 leading-tight line-clamp-3 group-hover:text-cyan-500 dark:group-hover:text-cyan-300 transition duration-200" className="text-3xl font-light mb-3 leading-tight line-clamp-3 group-hover:text-cyan-500 dark:group-hover:text-cyan-300 transition duration-200"
style={{ fontFamily: 'PP Editorial, serif' }}
> >
{item.title} {item.title}
</h2> </h2>
@@ -43,7 +42,6 @@ const MajorNewsCard = ({
<div className="flex flex-col justify-center flex-1 py-4"> <div className="flex flex-col justify-center flex-1 py-4">
<h2 <h2
className="text-3xl font-light mb-3 leading-tight line-clamp-3 group-hover:text-cyan-500 dark:group-hover:text-cyan-300 transition duration-200" className="text-3xl font-light mb-3 leading-tight line-clamp-3 group-hover:text-cyan-500 dark:group-hover:text-cyan-300 transition duration-200"
style={{ fontFamily: 'PP Editorial, serif' }}
> >
{item.title} {item.title}
</h2> </h2>

View File

@@ -48,7 +48,22 @@ const EmptyChat = () => {
</div> </div>
<div className="flex flex-col items-center justify-center min-h-screen max-w-screen-sm mx-auto p-2 space-y-4"> <div className="flex flex-col items-center justify-center min-h-screen max-w-screen-sm mx-auto p-2 space-y-4">
<div className="flex flex-col items-center justify-center w-full space-y-8"> <div className="flex flex-col items-center justify-center w-full space-y-8">
<h2 className="text-black/70 dark:text-white/70 text-3xl font-medium -mt-8"> <div className="flex flex-row items-center justify-center -mt-8 mb-2">
<span className="text-4xl sm:text-5xl font-semibold tracking-tight select-none">
{['G', 'o', 'o', 'S', 'e', 'e', 'k'].map((letter, i) => (
<span
key={i}
className="inline-block"
style={{
color: ['#4285F4', '#EA4335', '#FBBC05', '#4285F4', '#34A853', '#EA4335', '#4285F4'][i],
}}
>
{letter}
</span>
))}
</span>
</div>
<h2 className="text-black/70 dark:text-white/70 text-3xl font-medium">
Research begins here. Research begins here.
</h2> </h2>
<EmptyChatMessageInput /> <EmptyChatMessageInput />

View File

@@ -44,10 +44,10 @@ const SetupWizard = ({
transition={{ duration: 0.6 }} transition={{ duration: 0.6 }}
initial={{ opacity: 0, translateY: '30px' }} initial={{ opacity: 0, translateY: '30px' }}
animate={{ opacity: 1, translateY: '0px' }} animate={{ opacity: 1, translateY: '0px' }}
className="text-4xl md:text-6xl xl:text-8xl font-normal font-['Instrument_Serif'] tracking-tight" className="text-4xl md:text-6xl xl:text-8xl font-normal tracking-tight"
> >
Welcome to{' '} Welcome to{' '}
<span className="text-[#24A0ED] italic font-['PP_Editorial']"> <span className="text-[#24A0ED] italic">
GooSeek GooSeek
</span> </span>
</motion.h2> </motion.h2>
@@ -58,7 +58,7 @@ const SetupWizard = ({
className="text-black/70 dark:text-white/70 text-sm md:text-lg xl:text-2xl mt-2" className="text-black/70 dark:text-white/70 text-sm md:text-lg xl:text-2xl mt-2"
> >
<span className="font-light">Web search,</span>{' '} <span className="font-light">Web search,</span>{' '}
<span className="font-light font-['PP_Editorial'] italic"> <span className="font-light italic">
reimagined reimagined
</span> </span>
</motion.p> </motion.p>
@@ -89,10 +89,10 @@ const SetupWizard = ({
translateY: '-30px', translateY: '-30px',
transition: { duration: 0.6 }, transition: { duration: 0.6 },
}} }}
className="text-2xl md:text-4xl xl:text-6xl font-normal font-['Instrument_Serif'] tracking-tight" className="text-2xl md:text-4xl xl:text-6xl font-normal tracking-tight"
> >
Let us get{' '} Let us get{' '}
<span className="text-[#24A0ED] italic font-['PP_Editorial']"> <span className="text-[#24A0ED] italic">
GooSeek GooSeek
</span>{' '} </span>{' '}
set up for you set up for you