Liko - Creative Agency & Portfolio Next.js Template
Редакційний шаблон креативної агенції з велетенськими серифами, GSAP-скролом, магнітним курсором, тікер-стрічкою команди й кінематографічним hero-відео.

Враження
Атмосфера — Liko Creative Agency Next.js
Liko виглядає як власне портфоліо сучасної бутикової дизайн-студії: великі сериф-заголовки шрифтом «gallery_modernregular», що вилазять за межі полотна, щедрий молочно-білий паперовий фон, майже-чорна типографіка та один акцент — то жариста помаранч, то електричний синій — приберігається для дрібних форм і станів курсора. Композиція редакційна, монохромна, навмисно асиметрична: плитки портфоліо мають різну висоту та зміщені відступи, hero-заголовок огортає маленький інлайн-кадр з картинкою, а розділювачі секцій — це скрол-скраб marquee зі змішаних серифних і контурних гліфів. Усе тримає GSAP: SplitText для посимвольної анімації заголовків, fade-bottom на абзацах, кастомний двошаровий «магічний» курсор, що збільшується над портфоліо-плитками й показує надпис «View Demo», прикріплений (pin) банер, який працює завісою між галереєю і відгуками, та горизонтальний marquee на стрічці команди поверх Swiper-петлі. ScrollSmoother (платний плагін GSAP) увімкнений у всьому сайті.
Аудиторія — креативні агенції, дизайн-студії, motion-хауси, фриланс-арт-директори й персональні портфоліо, яким потрібна вхідна сторінка у стилі «ми знаємо, як виглядає Awwwards». 12 варіантів головної та повний набір внутрішніх сторінок (about, service, portfolio grid/details, team, blog, shop, pricing, FAQ, account, contact) дають змогу задеплоїти повноцінний сайт агенції, а не одну посадкову. Він не підійде для продуктивних маркетингових лендингів, e-commerce-орієнтованих магазинів чи контент-важких видань: стек SplitText/ScrollSmoother/three.js разом із jQuery суттєво навантажує перший рендер, а гучна типографіка конкурує з довгими статтями. ScrollSmoother і SplitText — це преміум-плагіни GreenSock, тож для продакшну потрібна ліцензія Club GreenSock. Сайт поєднує сітку Bootstrap 5 із SCSS-модулями, jQuery для hover-обробників і Swiper для слайдерів — у разі модернізації варто прибрати jQuery/Bootstrap, але візуальна ідентичність (типографіка, палітра, скрол-пін трюки, курсор) — те, що варто перенести.
Палітра
Типографіка
Бібліотеки
Сторінки
- Home (default)
src/app/page.tsx - Home 1 - Creative Studio
src/app/(homes)/home-1/page.tsx - Home 2
src/app/(homes)/home-2/page.tsx - Home 3
src/app/(homes)/home-3/page.tsx - Home 4
src/app/(homes)/home-4/page.tsx - Home 5
src/app/(homes)/home-5/page.tsx - Home 6
src/app/(homes)/home-6/page.tsx - Home 7
src/app/(homes)/home-7/page.tsx - Home 8
src/app/(homes)/home-8/page.tsx - Home 9
src/app/(homes)/home-9/page.tsx - Home 10
src/app/(homes)/home-10/page.tsx - Home 11
src/app/(homes)/home-11/page.tsx - Home 12
src/app/(homes)/home-12/page.tsx - About
src/app/(about)/about-us/page.tsx - Services
src/app/(service)/service/page.tsx - Portfolio Grid
src/app/(portfolio)/portfolio-grid-col-3/page.tsx - Portfolio Details
src/app/(portfolio-details)/portfolio-details-1/page.tsx - Team
src/app/(team)/team/page.tsx - Blog
src/app/(blog)/blog-modern/page.tsx - Contact
src/app/(contact)/contact/page.tsx - Pricing
src/app/pricing/page.tsx - FAQ
src/app/faq/page.tsx
Ключові фішки
Magnetic dual-layer cursor with element-aware label swap
- Де знайти
- src/plugins/tp-cursor.js, src/pages/homes/home-1.tsx body class 'tp-magic-cursor', src/components/project/project-one.tsx [data-cursor='View<br>Demo']
- Чому цікаво
- A second 'ball' follower lerps behind the main dot and grows, fades or labels itself based on data-cursor attributes on hovered elements, achieving a Cargo/Awwwards-style cursor without an external lib.
- Коли використовувати
- Portfolio sites where you want hovered tiles to trigger an inline pointer label and a soft lag follower instead of generic cursor styling.
- Техніка
- Vanilla pointer events with rAF lerp, jQuery offset helpers and CSS classes toggled per data-cursor target.
Scroll-pinned full-bleed banner under an asymmetric gallery
- Де знайти
- src/pages/homes/home-1.tsx tp-project-full-img-wrap timeline, src/components/project/project-one.tsx .tp-project-full-img
- Чому цікаво
- ScrollTrigger pins a single hero-strip image with pinSpacing:false so the testimonial section slides over it like a curtain reveal — a pattern that needs only ~12 lines of GSAP and zero extra markup.
- Коли використовувати
- When you want one trophy image to act as a transition between two scroll sections without parallax math or a third-party scroller.
- Техніка
- GSAP ScrollTrigger pin + pinSpacing:false on a fixed-height section with a CSS background-image.
Horizontal scrub marquee on serif/outline mixed text
- Де знайти
- src/components/project/project-text-line.tsx, src/utils/scroll-marque.ts
- Чому цікаво
- A long row of repeated 'Co(shape)lest Project' tokens (alternating filled and outlined glyphs with an inline shape image) is translated -80% via scrub:true, producing a reading-pace marquee that doubles as a section divider.
- Коли використовувати
- As a kinetic divider between portfolio rows when you want typography itself to be the decoration.
- Техніка
- GSAP timeline + ScrollTrigger scrub on a wide flex container of mixed-glyph spans.
Awards list with sticky hover-swapped thumbnails
- Де знайти
- src/components/award/award-one.tsx setActiveThumb, public/assets/scss/layout/pages/_award.scss
- Чому цікаво
- Each row's onMouseEnter sets activeThumb state which toggles the visible image in a left-column stack; combines a media-table interaction with React state instead of CSS-only sibling tricks, surviving SSR and accessible focus.
- Коли використовувати
- Press/awards or recognition sections where you want a stacked image preview that mirrors which row the visitor is reading.
- Техніка
- React useState + conditional CSS class on the image stack; no GSAP needed for the swap itself.
Marquee team rail combining Swiper + scroll-driven X shift
- Де знайти
- src/components/team/team-one.tsx, src/utils/scroll-marque.ts teamMarqueAnim
- Чому цікаво
- Swiper handles the 6-up loop while a separate ScrollTrigger nudges .tp-team-item.marque from x:25% to x:-100% on scrub — a cheap way to layer continuous slider motion with parallax-on-scroll, plus a per-card mousemove parallax via tp-hover-btn-wrapper.
- Коли використовувати
- Team or roster strips that should feel alive even when the user is not actively dragging the slider.
- Техніка
- swiper/react Autoplay+FreeMode modules, GSAP ScrollTrigger scrub, hover parallax via mousemove + GSAP.
Char-level reveal driven by GSAP SplitText with perspective
- Де знайти
- src/utils/title-animation.ts charAnimation, src/components/service/service-one.tsx .tp-char-animation
- Чому цікаво
- Section titles are split into chars with perspective:300 and animated x:100, autoAlpha:0 stagger:0.05 — produces a 3D-tilt sweep that reads cleaner than typical fade-up titles and reuses GSAP's premium SplitText plugin bundled in /src/plugins.
- Коли використовувати
- Editorial section headers where you want titles to feel like they tilt into place rather than fade.
- Техніка
- GSAP SplitText (paid plugin, vendored) + ScrollTrigger toggleActions:'play none none none'.
Floating sticky contact-shape with rotating PNG layers
- Де знайти
- src/pages/homes/home-1.tsx tp-footer-shape-wrap, public/assets/img/home-01/footer/footer-circle-shape-*.png
- Чому цікаво
- A bottom-right circular badge linking to /contact stays z-index-5 'smooth' through the smooth-scroll wrapper and stacks two PNG shapes that rotate at different speeds via CSS keyframes — small thing, but it makes the whole site feel inhabited.
- Коли використовувати
- When you need a persistent CTA call-out (Hire me / Contact) that is tactile but won't conflict with a fixed header.
- Техніка
- CSS rotation keyframes + position:fixed inside ScrollSmoother content.
Компоненти
Transparent fixed header that gains a sticky background, swaps logo color and toggles a full-screen mobile offcanvas.
Centered display hero where a four-line serif headline wraps a small rotating shape and an inline image tile with a fade-bottom GSAP entrance.
Full-bleed autoplay loop video that sits directly under the hero and uses a clip-path reveal driven by ScrollTrigger.
Horizontal Swiper-driven brand strip with a label column and continuously sliding client logos separated by hairline rules.
Two-column thoughtful-process layout: animated section title plus border button on the left, four icon+text service rows fading in on scroll on the right.
Asymmetric two-column portfolio gallery with offset heights, parallax data-speed scroll on each tile and a magnetic 'View Demo' cursor on hover.
Full-width project banner image that pins under the gallery using ScrollTrigger pin so the next section slides over it.
Oversized scroll-driven 'Co(shape)lest Project' text marquee that translates horizontally on scrub, mixing serif outlines with filled glyphs.
Awards list where hovering each row swaps the active thumbnail in the adjacent sticky image column, with date and count metadata.
Six-up Swiper team rail with scroll-driven horizontal marquee shift and per-card mousemove parallax that opens a member modal on click.
Centered single-quote testimonial Swiper with custom prev/next arrow buttons and an autoplay 1s loop transition.
Black footer with a hover-active link list, oversized 'Let's Contact!' wordmark, contact and social columns plus a year-stamped copyright row.
Custom dual-element cursor (#magic-cursor + #ball) that grows over portfolio tiles, shows 'View Demo' label and hides the native pointer.
Sticky bottom-right rotating circular badge linking to the contact page with two layered PNG shapes spinning at different speeds.