← каталог
Landing Studio
Готовый лендинг креативной студии из семи секций каталога. Сама страница ничего не рисует — задаёт только тон акцента и вертикальный ритм, всё остальное приезжает из дизайн-системы.
cssloadhoverrevealbasic~8 КБreduced-motion ✓
↕ демо длиннее кадра — прокрутите его
Установка
npx shadcn@latest add https://motiva.pages.dev/r/landing-studio.jsonЧто нужно в проекте до установки
components.jsonв корне — с алиасами в форме"components": "@/components". Нет файла — CLI не поймёт, куда класть.- Алиас
@объявлен дважды:"paths": {"@/*": ["./src/*"]}в корневомtsconfig.json(в Vite он часто содержит толькоreferences— тогда CLI создаёт папку@) иresolve.aliasв конфиге сборщика. - Токены подключены один раз на приложение:
import "@/styles/motiva-tokens.css"— они приезжают вместе с записью. Без них секция потеряет цвета, ритм и тему. - Своя типографика не должна спорить: если у вас на обёртке
text-align: center, он протечёт внутрь блоков. - Проект без TypeScript? Всё равно нужен минимальный
tsconfig.jsonсpathsи"tsx": trueвcomponents.json: CLI грузит tsconfig безусловно, а с"tsx": falseидёт заjsconfig.jsonи падает так же. Приехавший рядом.tsxможно не трогать — вам нужен.vanilla.js.
Экспорт
Код
import { NavSticky } from "@/components/nav-sticky";
import { HeroSplit } from "@/components/hero-split";
import { LogosStrip } from "@/components/logos-strip";
import { FeaturesBento } from "@/components/features-bento";
import { ShowcaseMasonry } from "@/components/showcase-masonry";
import { CtaGlow } from "@/components/cta-glow";
import { FooterMinimal } from "@/components/footer-minimal";
/**
* Лендинг креативной студии — быстрый старт, а не ещё один эффект.
*
* Страница НИЧЕГО не рисует сама: она только расставляет секции и задаёт две вещи —
* вертикальный ритм (`--ds-section-y`) и тон акцента (`--ds-accent-h`). Всё остальное
* приезжает из дизайн-системы, поэтому ре-брендинг — это одно число, а не проход по файлам.
*
* Именно так и задумано разделение: эффект — кирпич, секция — стена, страница — дом.
* Каждая секция объявлена в `registryDependencies`, поэтому
* `npx shadcn add .../r/landing-studio.json` ставит и страницу, и все секции, и эффекты,
* из которых они собраны.
*
* Контент здесь — дефолты секций. Чтобы сделать страницу своей, передай пропсы: у каждой
* секции весь текст и картинки вынесены в типизированный интерфейс, ничего не «зашито».
*/
export function LandingStudio() {
return (
<div
className="lst ds-scope"
style={{
textAlign: "start",
// ds-scope + одно число: внутри контейнера пересчитывается весь набор акцента
["--ds-accent-h" as string]: "300",
// вертикальный ритм страницы — секции сами отступов себе не назначают
["--ds-section-y" as string]: "clamp(48px, 7vw, 96px)",
background: "var(--ds-bg, oklch(0.14 0.02 275))",
}}
>
<NavSticky brand="studio⁄" links={["Работы", "Услуги", "Студия", "Контакты"]} cta="Обсудить" />
<HeroSplit
eyebrow="креативная студия"
lines={["Делаем бренды,"]}
accentLine="которые движутся"
sub="Айдентика, сайты и моушен. Собираем не картинки, а систему, в которой каждая деталь знает, как себя вести."
primary="Обсудить проект"
secondary="Смотреть работы"
/>
<LogosStrip caption="нам доверяют" />
<FeaturesBento />
<ShowcaseMasonry />
<CtaGlow />
<FooterMinimal />
</div>
);
}
Похожие эффекты
лицензия: MITавтор: Motivaисточник: оригинал (Motiva)v1.0.0