Nahorniak Templates
База референсів шаблонів і компонентів
Назад до списку
t17

Webfolio - Creative Agency & Portfolio Next.js Template

Кінематографічний темний Next.js портфоліо-шаблон з кастомним курсором, SVG-прелоадером, GSAP scroll-smoother та п'ятьма варіантами головної.

Next.jsБагатоЗа замовчуваннямResponsive
АгенціяПортфоліоКреативнийПерсональнийТемнийСучаснийВидавничий
Webfolio - Creative Agency & Portfolio Next.js Template

Враження

Webfolio — це Next.js-версія (App Router) HTML-набору Webfolio від UiCamp: насичено темний, кінематографічний шаблон креативного агентства / портфоліо з п'ятьма варіантами головної (Main, Modern Studio, Creative Agency, Digital Agency, Personal/Freelancer). Настрій — поєднання редакційного й техно-естетики: майже чорне полотно (#0f0f0f) з єдиним помаранчевим акцентом (#fd5b38) та неоново-лаймовим вторинним (#caff33), кінетичні марки, кастомний курсор, GSAP ScrollSmoother на кожній сторінці та SVG-прелоадер «завіса», що морфить криву в пряму лінію при вході. Заголовки й основний текст — Plus Jakarta Sans; Poppins завантажений, але фактично не використовується в body.

Шаблон підходить діджитал-агенціям, дизайн-студіям, фрілансерам та персональним портфоліо, яким потрібен виставковий настрій з виразною ієрархією й місцем під повноекранну графіку. Він не підійде продуктам зі світлою темою, щільними таблицями даних, ecommerce чи довгими лонгрідами — тут немає магазину, немає перемикача теми, а масштаб заголовка (h1: 70–105px) розрахований на героїв з фотографіями, що його витримають.

Продакшн-нюанси: побудований на Next 14.1 з output: 'export', тож публікується як повністю статичний сайт без SSR / server actions. Вендорний JS (GSAP, ScrollTrigger, ScrollSmoother, splitting.min.js, charming.min.js, isotope, imagesloaded) підвантажується як beforeInteractive Script-теги з /public/assets/js/, тому гідратація залежить від цих файлів — їх не можна виносити з /public чи тришейкінгом викидати. Розмітка навбару використовує Bootstrap 5, видалення Bootstrap CSS зламає меню. Ліцензія ThemeForest — дистрибуція лише для власних розгортань.

Палітра

near-black#0f0f0fbackground
raised-charcoal#121212surface
paper-white#fffffftext
ash-grey#c6c8c9muted
blaze-orange#fd5b38accent
neon-lime#caff33accent-2

Типографіка

Заголовки
Plus Jakarta Sans
200300400500600700
Основний текст
Plus Jakarta Sans
200300400500600700

Бібліотеки

gsapscrolltriggerswiperisotopesplittext

Сторінки

  • Home — Mainapp/home-main/page.js
  • Landing (Demo Index)app/page.js
  • Home — Modern Studioapp/home-modern-studio/page.js
  • Home — Creative Agencyapp/home-creative-agency/page.js
  • Home — Digital Agencyapp/home-digital-agency/page.js
  • Home — Personal / Freelancerapp/home-personal/page.js
  • Aboutapp/page-about/page.js
  • Servicesapp/page-services/page.js
  • Service Detailsapp/page-services-details/page.js
  • Teamapp/page-team/page.js
  • Team Detailsapp/page-team-details/page.js
  • Contactapp/page-contact/page.js
  • FAQapp/page-FAQ/page.js
  • 404app/page-404/page.js
  • Portfolio Galleryapp/portfolio-gallery/page.js
  • Portfolio Creativeapp/portfolio-creative/page.js
  • Portfolio Creative Carouselapp/portfolio-creative-carousel/page.js
  • Portfolio Gridapp/portfolio-grid/page.js
  • Portfolio Masonryapp/portfolio-masonry/page.js
  • Project Detailsapp/project-details/page.js
  • Blog — Classicapp/blog-classic/page.js
  • Blog — Grid + Sidebarapp/blog-grid-sidebar/page.js
  • Blog — 3-Column Gridapp/blog-grid-3column/page.js
  • Blog Detailsapp/blog-details/page.js

Ключові фішки

  • GSAP ScrollSmoother smooth-scroll wrapper around the entire page

    Де знайти
    app/home-main/page.js, div#smooth-wrapper > div#smooth-content
    Чому цікаво
    Most templates wire ScrollSmoother on a separate container; here every page in the App Router wraps `<main>` and `<footer>` in `#smooth-wrapper > #smooth-content`, so smoothing is global and ScrollTrigger pinning composes cleanly with it.
    Коли використовувати
    You want frame-locked smooth scrolling without Lenis and need triggers that respect the smoothed scroll position.
    Техніка
    gsap + ScrollSmoother + ScrollTrigger loaded as Next.js `beforeInteractive` Script tags
  • SVG curtain preloader that morphs a curved-bottom shape to a flat line

    Де знайти
    components/common/loader.jsx, div.loader-wrap path#svg
    Чому цікаво
    Two-step `tl.to(svg, { attr: { d: curve } })` then to `flat` produces a peeling-canvas reveal that's smoother than scaleY tricks; the path-data tween is a non-obvious GSAP feature.
    Коли використовувати
    You want an entrance flourish that feels physical and hands off to a hero translate-up with negative timeline overlap.
    Техніка
    gsap timeline + SVG path attr animation; charming.js wraps each Loading letter for staggered text reveal
  • Magnetic cursor with two-stage hover behaviour

    Де знайти
    components/common/cusor.jsx, div.cursor
    Чому цікаво
    Cursor element follows mousemove globally, while every `.hover-this` target translates its inner `.hover-anim` proportionally to pointer offset (clamped to ±25px). Combining a global cursor with per-element magnet effects in 30 lines is unusually tight.
    Коли використовувати
    Portfolio / agency sites that want a cursor flourish without a heavyweight library.
    Техніка
    vanilla DOM events: mousemove + mouseleave; CSS transforms
  • Rolling-text per-letter hover that splits on the fly

    Де знайти
    common/rolling.js, components/common/Navbar.jsx span.rolling-text
    Чому цікаво
    Splits each nav label into spans at mount, duplicates the block, and CSS-transforms the second copy in on hover — gives every link the perpetual-motion vibe popular on award-show sites without SplitText.
    Коли використовувати
    Menus where every link should feel kinetic; reusable as a `<RollingText text=... />` component.
    Техніка
    vanilla DOM + CSS transforms; no external libs
  • Notched-corner sub-bg captions on portfolio cards

    Де знайти
    components/home-main/Portfolio.jsx span.shap-left-top svg
    Чому цікаво
    Each project caption uses four absolutely-positioned 11x11 SVG quarter-circle shapes coloured to match the background, faking inner-rounded notches around the dark caption pill. Cheap to render, very distinctive look.
    Коли використовувати
    When you want your card captions to feel like postage stamps or speech bubbles without complex masks.
    Техніка
    raw inline SVG paths; no JS
  • Twin-direction stroked + filled marquee bands

    Де знайти
    components/home-main/Marq.jsx section.opacity-7, public/assets/scss/utility/animation.scss
    Чому цікаво
    Two `.main-marq` rails stack: one with `text-stroke: 1px` (`strok` class) running left, the other solid running right. The CSS-only horizontal infinite scroll is keyframed and never relies on JS measurement.
    Коли використовувати
    Hero or section divider that needs visual interest while the eye rests; works under `o-hidden` containers without overflow tricks.
    Техніка
    CSS @keyframes; .slide-har with .st1/.st2 directions and .strok modifier
  • Mega-menu populated with thumbnail tiles for every demo

    Де знайти
    components/common/Navbar.jsx li.nav-item.dropdown div.mega-menu
    Чому цікаво
    The Demos dropdown isn't a text list — it renders five image+label cards that mirror the home variants the buyer just chose between, doubling as in-product cross-sells. Hover state is JS-driven so it works on touchpad-hover Macs.
    Коли використовувати
    Multi-template products where the menu itself should sell adjacent demos.
    Техніка
    Bootstrap 5 dropdown markup with manual show/hide via mousemove/leave handlers

Компоненти

c239site-navbar-mega-menu
Навігація

Blurred fixed navbar with hover-driven mega-menu showing image previews of all five home demos.

c240svg-curtain-preloader
Лоадер

Full-screen GSAP preloader morphs an SVG curve to flat then slides up to reveal the page; spells out LOADING with charming.js.

c241magnetic-cursor
Курсор

Custom hover cursor that magnetically attracts itself to .hover-this targets and grows on every link.

c242scroll-progress-ring
Декор

Fixed-bottom circular SVG ring that fills as the page scrolls and acts as a back-to-top button.

c243main-hero-headline
Hero

Full-bleed dark hero with overlaid headline split between two lines, pull quote, project counter and big down-arrow icon.

c244intro-stats-block
Статистика

Two-column intro that pairs an arrow illustration and a fw-300 mission line with two thin-bordered KPI tiles.

c245rolling-skills-marquee
Бігучий рядок

Two stacked horizontal marquees (filled + stroked) of services separated by star glyphs, infinitely looping in opposite directions.

c246services-swiper-carousel
Картка послуги

Three-up Swiper of service cards with custom prev/next arrows and per-card icon, headline, blurb and Read More link.

c247portfolio-fade-swiper
Картка проєкту

Auto-paced Swiper of selected works with progressbar pagination, sub-bg captions with notched corners and a 'Our Portfolio' edge marquee.

c248feat-services-trio
Можливості

Three stacked image-plus-copy feature cards next to a copy column with magnetic CTA, blurred orange glow in the corner.

c249team-portrait-grid
Команда

Three-column team grid where each portrait has a sliding info caption and round social-icon column on hover.

c250minimal-testimonials-slider
Відгуки

Photo + quote testimonial Swiper with tall portrait, oversized fz-30 quote, dotted pagination and SVG quotation glyph.

c251clients-logo-carousel
Лого клієнтів

Five-up looping Swiper of brand SVGs with a centered headline above and a thin trust-bar pill below.

c252cta-double-marquee
Бігучий рядок

Stacked Get-In-Touch / Contact-Us double marquee with full-width clickable overlay link to the contact page.

c253newsletter-footer
Футер

Four-column footer with logo, contact, useful links and an inline newsletter input plus four social icons.