Runok - Web Agency HTML5 Template
Темний майже-чорний шаблон агенції з кобальтовим акцентом, GSAP ScrollSmoother, сплітом тексту, кастомним курсором, 19 home-демо та вбудованим перемикачем світла/темряви.

Враження
Runok — впевнений, темний за замовчуванням шаблон веб-агенції: майже-чорне тло #02050A, кобальтово-синій акцент #3F5AF3 і вторинний жовтий #FFC226, скрізь Plus Jakarta Sans. Сторінки відкриваються високим фотографічним героєм, де три заголовки розпадаються на окремі літери через GSAP-реєвал поверх трійки зміщених квадратних зображень. Далі — секція робочого процесу зі стрічкою іконок, фото з mask-reveal в about-блоці, чотириколонковий сервісний грід із hover-оверлеями, Bootstrap 5 акордеон проєктів, два бігові тікер-рядки в протилежних напрямках, Swiper-каруселя відгуків, рядок логотипів партнерів і темний чотириколонковий футер із підпискою на розсилку. Зверху всього — ScrollSmoother, тож скрол відчувається плавним і "масляним", а не різким.
Шаблон зроблений для digital-, дизайн- чи дев-агенцій, яким потрібен кінематографічний, motion-first вигляд без брутального ухилу. Дев'ятнадцять демо-домашніх — від "Web Design" і "IT Service" до "Personal Portfolio" — плюс one-page та RTL варіанти означають, що студія може обрати вайб (Creative Studio, Consulting Agency, Design Studio…) і одразу запускатися. Вбудований перемикач light/dark (зберігається в localStorage, працює через data-theme та парні dark-img/light-img ассети) тримає шаблон корисним для клієнтів, які вимагають світлішої палітри. Є також кастомний крапковий курсор, що розширюється на посиланнях, конічний орб прогресу прокрутки, який одночасно є кнопкою scroll-to-top, та Isotope-фільтри на сторінках проєктів.
Виробничі застереження: шаблон важкий — jQuery 3.6, Bootstrap 5 bundle, Swiper, GSAP + ScrollTrigger + ScrollSmoother (останній вимагає платної комерційної ліцензії GSAP), SplitType, Isotope, Venobox, Odometer, carouselTicker, MeanMenu та власний magic-cursor завантажуються на кожній сторінці. На старті очікуйте ~16 vendor JS-файлів і ~12 CSS до main.css. Він не пасує мінімалістичним content-сайтам, блог-першочерговим проєктам або там, де вага сторінки чи доступність — головні KPI. Курсор mt-cursor і посимвольні SplitType-реєвали припускають десктопний вказівник; на мобілці є коректний фолбек, але значна частина motion-ідентичності втрачається.
Палітра
Типографіка
Бібліотеки
Сторінки
- Home v1 — Web Design
index.html - Home v2 — Creative Studio
index-2.html - Home v3 — Web Development
index-3.html - Home v4 — Modern Agency
index-4.html - Home v5 — IT Solution
index-5.html - Home v6 — Digital Agency
index-6.html - Home v7 — Corporate Agency
index-7.html - Home v8 — Web Agency
index-8.html - Home v9 — Creative Agency
index-9.html - Home v10 — Digital Studio
index-10.html - Home v11 — Startup Agency
index-11.html - Home v12 — IT Studio
index-12.html - Home v13 — Consulting Agency
index-13.html - Home v14 — IT Service
index-14.html - Home v15 — Creative Studio
index-15.html - Home v16 — Digital Marketing
index-16.html - Home v17 — Design Studio
index-17.html - Home v18 — Personal Portfolio
index-18.html - Home v19 — Video Agency
index-19.html - About
about.html - Services
service.html - Service Details
service-details.html - Projects
project.html - Project Details
project-details.html - Team
team.html - Team Details
team-details.html - Pricing
pricing.html - FAQ
faq.html - Blog Grid
blog-grid.html - Blog List
blog-grid-2.html - Blog Details
blog-details.html - Shop
shop.html - Shop Details
shop-details.html - Cart
cart.html - Wishlist
wishlist.html - Checkout
checkout.html - Contact
contact.html - 404
error.html
Ключові фішки
Per-character split-text reveal on stacked hero headlines
- Де знайти
- index.html section.hero-section .hero-content .anim-text, assets/js/main.js (window.load → SplitType + gsap.fromTo on .anim-text chars)
- Чому цікаво
- Three sibling headlines (h4 sub-title, h2 title, h3 bottom-title) all carry the .anim-text class. On window load, each is split into chars via SplitType, then GSAP staggers the chars from y:100% to y:0% with a 0.03 s gap. Result is a three-line cascade that feels like a kinetic poster opening rather than a generic fade — and works on plain heading markup, no per-letter spans authored by hand.
- Коли використовувати
- Tall image-led heroes that need a confident, cinematic intro on big-typography titles; agency/portfolio sites where the headline is the centerpiece.
- Техніка
- SplitType 0.3, GSAP fromTo, jQuery .each
Mask-reveal image effect with counter-translating zoom
- Де знайти
- index.html section.about-section .reveal, index.html section.faq-section .faq-img.reveal, assets/js/main.js (revealContainers forEach with gsap timeline)
- Чому цікаво
- Each .reveal block runs a two-step GSAP timeline tied to ScrollTrigger: the container slides in with xPercent:-100 while its inner <img> simultaneously translates xPercent:100 with scale 1.3 (delay -1.5 to overlap). The visual is a curtain wiping right while the image inside settles back to scale 1 from the opposite side — a much richer feel than a static fade-in.
- Коли використовувати
- Editorial about/services blocks where photos should feel 'unveiled' rather than dropped in; works equally well for portfolio thumbnails.
- Техніка
- GSAP timeline, ScrollTrigger toggleActions, opposing xPercent transforms
Bootstrap 5 accordion repurposed as a numbered project showcase
- Де знайти
- index.html section.project-section .project-accordion, assets/scss/layout/_project.scss .project-item / .accordion-button
- Чому цікаво
- Instead of a traditional grid, projects are stacked rows in a Bootstrap accordion. Closed rows show only number-circle + category + title; the active row paints the number circle in cobalt and opens a body that lays out a left description column and a right project thumbnail. Adds copy + visual context to a list view without doubling row height for inactive items.
- Коли використовувати
- Agencies or studios with deep case studies — too many to grid 2x2, but too important to hide behind a simple link list.
- Техніка
- Bootstrap 5 collapse, CSS grid (65px+1fr), state-driven background-color on .number
Bidirectional infinite carouselTicker word marquees
- Де знайти
- index.html .running-text.testi (above testimonials), index.html .running-text.running-1 (between project and blog), assets/js/vendor/jquery.carouselTicker.js
- Чому цікаво
- Two parallel ticker bars use the same plugin but opposite directions (data-classes carouselTicker-nav vs carouselTicker-start), creating a counter-rotating word band you scroll between. The list items are styled italic in Plus Jakarta, separated by trailing dots, so the marquees double as section dividers.
- Коли використовувати
- Section breaks where a page wants visual rhythm without an image, especially on long single-page agency demos.
- Техніка
- jQuery carouselTicker plugin, two opposing data-direction targets
ScrollSmoother + per-element fade-top stagger orchestrated together
- Де знайти
- assets/js/main.js (ScrollSmoother.create + .fade-wrapper .fade-top loop), index.html .fade-wrapper .fade-top instances on every section
- Чому цікаво
- GSAP ScrollSmoother is initialised at smooth:2 with effects disabled below 1025 px, then every .fade-wrapper looks up its .fade-top children and creates an individual ScrollTrigger per child with delay = index * 0.10. Pairing global smoothing with section-local sequential reveals lets each band of cards 'land' as it enters view without writing per-section code.
- Коли використовувати
- Long agency landing pages that want a buttery scroll feel plus a consistent reveal motif across many sections.
- Техніка
- GSAP ScrollSmoother (premium), ScrollTrigger, indexed timeline delays
Conic-gradient scroll percentage orb that doubles as back-to-top
- Де знайти
- index.html #scroll-percentage, assets/js/main.js scrollTopPercentage()
- Чому цікаво
- On scroll, the script writes a conic-gradient(var(--rr-color-theme-primary) ${value}%, white ${value}%) directly onto the orb's background each frame, creating a ring fill effect with no SVG. When scrollValue passes 96 it swaps the percentage text for an up-arrow icon and uses the same element as a smooth scroll-to-top trigger.
- Коли використовувати
- Long single-page sites where readers need feedback on how far they've scrolled and a quick way back to the top, without adding a third UI element.
- Техніка
- CSS conic-gradient, JS scroll handler, smoothscroll behavior:'smooth'
Persisted prefers-color-scheme theme switcher with no FOUC
- Де знайти
- index.html #theme-toogle, assets/js/main.js (storageKey/theme/reflectPreference), assets/scss/layout/_light-mode.scss [data-theme="light"] selectors
- Чому цікаво
- The script reads localStorage first, then falls back to window.matchMedia('(prefers-color-scheme: dark)') for the initial paint, sets data-theme on <html> before window load (so CSS doesn't flash), and the entire light theme is shipped as a [data-theme="light"] override sheet rather than swapping classes. Pair of dark-img/light-img <img> tags lets each visual asset have a paired counterpart without JS swapping src.
- Коли використовувати
- Any template that ships both palettes; ideal pattern for a 'no flicker' theme toggle without a framework.
- Техніка
- localStorage, matchMedia, [data-theme] attribute, paired dark-img/light-img markup
Компоненти
Minimal sticky header with the wordmark on the left and a single 9-dot grid icon on the right that opens a full off-canvas sidebar with the entire menu, contact block, and socials.
Tall dark hero with three stacked headlines (Transforming / Visions into / Digital Reality) animated character-by-character via SplitType + GSAP, three offset square photos and an arrow CTA.
Centered work-process band with four icon-circle steps in a row, an oversized greyscale 'PROCESS' watermark behind, and a fade-up reveal driven by ScrollTrigger.
Two-column about block where the right column houses two stacked photographs that animate in via a horizontal mask reveal (container slides left, image counter-translates and zooms out).
Four-column service grid where each card is a tall photo with a hover overlay; corner SVG icon, slash-prefixed service title, and a Read More pill at the bottom.
Vertical project accordion: each row is a numbered circle, category, and title; the active row reveals a description on the left and a project thumbnail on the right inside the accordion body.
Two stacked infinite-scroll text tickers (one running left-to-right, the other right-to-left) using carouselTicker.js, with a Plus Jakarta italic word list separated by dot bullets.
Centered testimonial Swiper carousel with circular author avatars, name + role line, and a quote underneath — paginated with bullet dots and grab-cursor enabled.
Two-column FAQ section: left column carries a Bootstrap 5 accordion with three questions, right column carries a hero illustration that mask-reveals into view on scroll.
Three-column 'Latest News' grid with a square thumbnail on top, post-meta line (clock + author icons), title link, and a Read More arrow pill — fade-top staggered on scroll.
Single-row brand block on dark surface: an oversized 'WORKED WITH GLOBAL LARGEST BRANDS' headline takes the first slot and four monochrome partner logos sit beside it.
Four-column dark footer (brand intro + opening hours, useful links, contact list, newsletter form) over a faint grid shape, with copyright bar and circular social pills.
Custom dot-style cursor (.mt-cursor) appended at runtime; follows the mouse via translate, expands on links/buttons/.cursor-effect elements, and hides on touch devices.
Fixed bottom-right circular scroll-progress indicator that uses a conic-gradient mask to fill cobalt around its rim and switches to an up-arrow icon at >96% scroll, doubling as scroll-to-top.
Floating pill toggle (#theme-toogle) that flips the document data-theme attribute between light and dark, persisting the choice in localStorage and respecting prefers-color-scheme on first load.
Full-screen dark preloader with a centered 'Runok' word that fades out 1000 ms after window load via $('#preloader').fadeOut(500).