Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d683dd1f4 | ||
|
|
4534ecfd0a | ||
|
|
c6b26a93d8 |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 510 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 76 KiB |
@@ -20,18 +20,27 @@ const body = Inter({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL('https://1nika.ru'),
|
||||
title: {
|
||||
default: 'Ника — галерея и аукцион',
|
||||
template: '%s · Ника',
|
||||
},
|
||||
description:
|
||||
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка на новые работы.',
|
||||
alternates: { canonical: '/' },
|
||||
openGraph: {
|
||||
title: 'Ника — галерея и аукцион',
|
||||
description:
|
||||
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка.',
|
||||
type: 'website',
|
||||
locale: 'ru_RU',
|
||||
url: 'https://1nika.ru',
|
||||
siteName: 'Ника',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Ника — галерея и аукцион',
|
||||
description: 'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка.',
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import Link from 'next/link';
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Страница не найдена',
|
||||
robots: { index: false, follow: true },
|
||||
};
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
import type { Config } from 'tailwindcss';
|
||||
|
||||
// NIKA ART — премиум design-system.
|
||||
// Палитра: bg #F7F7F5 / #FAFAFA · ink #111 · gold #C8A55A · graphite #444.
|
||||
// Токены paper/accent/muted оставлены (back-compat) — их используют текущие
|
||||
// компоненты; новые gold/bg/graphite аддитивны. Шрифты грузятся в layout.tsx
|
||||
// как next/font: --font-display = Cormorant Garamond, --font-body = Inter.
|
||||
const config: Config = {
|
||||
content: [
|
||||
'./app/**/*.{ts,tsx}',
|
||||
@@ -10,26 +15,60 @@ const config: Config = {
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
// подключается через next/font в layout.tsx как CSS-переменные
|
||||
serif: ['var(--font-display)', 'Georgia', 'serif'],
|
||||
sans: ['var(--font-body)', 'system-ui', 'sans-serif'],
|
||||
// Реально загруженные next/font-семейства (layout.tsx):
|
||||
// --font-display = Cormorant Garamond, --font-body = Inter.
|
||||
display: ['var(--font-display)', 'Cormorant Garamond', 'Georgia', 'serif'],
|
||||
serif: ['var(--font-display)', 'Cormorant Garamond', 'Georgia', 'serif'],
|
||||
sans: ['var(--font-body)', 'Inter', 'system-ui', 'sans-serif'],
|
||||
},
|
||||
colors: {
|
||||
// приглушённая галерейная палитра — тёплый бумажный фон, графитовый текст
|
||||
bg: '#F7F7F5',
|
||||
'bg-alt': '#FAFAFA',
|
||||
ink: '#111111',
|
||||
'ink-soft': '#1b1b1b',
|
||||
gold: '#C8A55A',
|
||||
'gold-deep': '#a9863d',
|
||||
graphite: '#444444',
|
||||
// back-compat: используются текущими компонентами (не ломаем вид).
|
||||
paper: '#f7f5f1',
|
||||
ink: '#1a1a1a',
|
||||
muted: '#6b6b6b',
|
||||
accent: '#8a6f52',
|
||||
muted: '#6b6b6b', // WCAG-AA на белом (≈4.5:1)
|
||||
line: '#e4e0d8',
|
||||
accent: '#8a6f52', // тёплая бронза для акцентов/цен
|
||||
'line-soft': 'rgba(17,17,17,0.06)',
|
||||
},
|
||||
letterSpacing: {
|
||||
tightest: '-0.03em',
|
||||
widener: '0.24em',
|
||||
},
|
||||
maxWidth: {
|
||||
content: '1280px',
|
||||
content: '1320px',
|
||||
},
|
||||
borderRadius: {
|
||||
's': '10px',
|
||||
'm': '18px',
|
||||
'l': '28px',
|
||||
},
|
||||
boxShadow: {
|
||||
's': '0 2px 10px rgba(17,17,17,.05)',
|
||||
'm': '0 18px 50px -20px rgba(17,17,17,.22)',
|
||||
'l': '0 40px 90px -30px rgba(17,17,17,.35)',
|
||||
gold: '0 14px 30px -14px rgba(169,134,61,.7)',
|
||||
},
|
||||
transitionTimingFunction: {
|
||||
gallery: 'cubic-bezier(0.22, 1, 0.36, 1)',
|
||||
gallery: 'cubic-bezier(0.16, 1, 0.3, 1)',
|
||||
},
|
||||
keyframes: {
|
||||
slide: { to: { transform: 'translateX(-50%)' } },
|
||||
cue: {
|
||||
'0%': { transform: 'scaleY(0)', transformOrigin: 'top' },
|
||||
'45%': { transform: 'scaleY(1)', transformOrigin: 'top' },
|
||||
'55%': { transform: 'scaleY(1)', transformOrigin: 'bottom' },
|
||||
'100%': { transform: 'scaleY(0)', transformOrigin: 'bottom' },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
marquee: 'slide 34s linear infinite',
|
||||
cue: 'cue 2.2s cubic-bezier(0.16,1,0.3,1) infinite',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||