inital commit

This commit is contained in:
2026-05-17 18:29:30 -05:00
parent b827236fe2
commit 7c1e18bd59
4683 changed files with 159402 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,65 @@
@media only screen and (max-width : 2500px) {
.page-wrapper{
overflow:hidden;
}
}
@media screen and (min-width: 1200px) and (max-width: 1399px){
.stat-number {
font-size: 3rem;
}
.breadcrumb-title{
font-size:44px;
}
}
@media screen and (min-width: 992px) and (max-width: 1199px){
.stat-number {
font-size: 2.5rem;
}
.breadcrumb-title{
font-size:44px;
}
}
@media only screen and (max-width : 1199px) {
.mt-xl-40{
margin-top:40px;
}
.mb-xl-40{
margin-bottom:40px;
}
}
@media only screen and (max-width : 991px) {
.mt-lg-40{
margin-top:40px;
}
.mb-lg-40{
margin-bottom:40px;
}
.stat-number {
font-size: 2.5rem;
}
.breadcrumb-title{
font-size:36px;
letter-spacing:0;
line-height:1.3;
}
}
@media only screen and (max-width: 767px) {
.mt-lg-40{
margin-top:25px;
}
.mb-lg-40{
margin-bottom:25px;
}
}
@media screen and (min-width: 320px) and (max-width: 575px){
.faq-question {
font-size: 1.2rem ! important;
font-weight: 500;
}
}

View File

@@ -0,0 +1,2 @@
.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
/*# sourceMappingURL=slick.min.css.map */

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,255 @@
/*
|-----------------------------------------------------
| Template Name: NeuralSync - AI-Powered SaaS Solutions for Modern Businesses HTML Template
| Developer: Themesfamily
| Version: 1.0.0
|-----------------------------------------------------
*/
/***************************************************
==================== JS ======================
****************************************************
00. Configuration Check
01. GSAP Plugin Registration
02. LENIS SMOOTH SCROLLING
03. TEAM Social Icon Toggle
04. GSAP Custom Cursor Implementation
05. GSAP Text Split Animation
06. GSAP Image Spread / Reveal Animation
07. GSAP 3D Scale and Fade Animation
08. GSAP Dynamic Fade-In Animations (General)
09. GSAP Parallax Zoom Animation
10. MAIN INITIALIZATION FUNCTION
****************************************************/
(function ($) {
"use strict";
// 00. Configuration Check
if (typeof gsap === 'undefined' || typeof jQuery === 'undefined' || typeof Lenis === 'undefined') {
console.error("Required libraries (GSAP, jQuery, or Lenis) are not loaded. Skipping all animations.");
return;
}
// 01. GSAP Plugin Registration
if (typeof SplitText !== 'undefined' && typeof ScrollTrigger !== 'undefined') {
gsap.registerPlugin(ScrollTrigger, SplitText);
} else {
console.warn("GSAP plugins (SplitText or ScrollTrigger) are not loaded. Some animations may be skipped.");
}
// ----------------------------------------------------------------------------------
// 02. LENIS SMOOTH SCROLLING
// ----------------------------------------------------------------------------------
new Lenis({
autoRaf: true
});
// ----------------------------------------------------------------------------------
// 05. GSAP Text Split Animation
// ----------------------------------------------------------------------------------
function initSplitTextAnimations() {
const st = $(".split-content");
if (st.length > 0 && typeof SplitText !== 'undefined') {
st.each(function (index, el) {
el.split = new SplitText(el, {
type: "lines,words,chars",
linesClass: "atf-split-line",
});
// Set initial position based on class (end, start, up, down)
let initialProps = { opacity: 0 };
if ($(el).hasClass("end")) initialProps.x = "50";
else if ($(el).hasClass("start")) initialProps.x = "-50";
else if ($(el).hasClass("up")) initialProps.y = "80";
else if ($(el).hasClass("down")) initialProps.y = "-80";
gsap.set(el.split.chars, initialProps);
gsap.set(el, { perspective: 400 });
// Create ScrollTrigger animation timeline
gsap.to(el.split.chars, {
scrollTrigger: {
trigger: el,
start: "top 85%",
end: "bottom 65%",
scrub: 1,
},
x: "0",
y: "0",
rotateX: "0",
scale: 1,
opacity: 1,
autoAlpha: 1,
duration: 1,
ease: 'power2.out',
stagger: 0.03,
});
});
}
}
// ----------------------------------------------------------------------------------
// 06. GSAP Image Spread / Reveal Animation
// ----------------------------------------------------------------------------------
function initImageSpreadAnimations() {
document.querySelectorAll(".spread").forEach((container) => {
let image = container.querySelector("img");
if (!image) return;
let tl = gsap.timeline({
scrollTrigger: {
trigger: container,
toggleActions: "play none none none",
},
});
tl.set(container, { autoAlpha: 1 });
if (container.classList.contains("zoom-out")) {
tl.from(image, { duration: 1.5, scale: 1.4, ease: "power2.out" });
} else if (container.classList.contains("start") || container.classList.contains("end")) {
let xPercent = container.classList.contains("start") ? -100 : 100;
tl.from(container, {
duration: 1.5,
xPercent,
ease: Power2.out,
});
tl.from(image, {
duration: 1.5,
xPercent: -xPercent,
scale: 1,
delay: -1.5,
ease: Power2.out,
});
}
else if (container.classList.contains("up") || container.classList.contains("down")) {
let yPercent = container.classList.contains("up") ? 100 : -100;
tl.from(container, {
duration: 1.5,
yPercent,
ease: Power2.out,
});
tl.from(image, {
duration: 1.5,
yPercent: -yPercent,
scale: 1,
delay: -1.5,
ease: Power2.out,
});
}
});
}
// ----------------------------------------------------------------------------------
// 07. GSAP 3D Scale and Fade Animation
// ----------------------------------------------------------------------------------
function initScale3DAnimations() {
gsap.utils.toArray(".item-3d").forEach((el) => {
// Initial 3D transform set
gsap.set(el, {
opacity: 0.7,
transform: "perspective(2500px) translate3d(0,0,0) rotateX(90deg) scale(0.5)",
});
// ScrollTrigger timeline to reveal 3D item
gsap.timeline({
scrollTrigger: {
trigger: el,
start: "top bottom+=50",
end: "bottom center",
scrub: 2,
},
}).to(el, {
scale: 1,
rotateX: 0,
opacity: 1,
duration: 1.3,
ease: "power2.out",
});
});
}
// ----------------------------------------------------------------------------------
// 08. GSAP Dynamic Fade-In Animations (General)
// ----------------------------------------------------------------------------------
function initDynamicFadeAnimations() {
[
".fadeInUp", ".fadeInLeft", ".fadeInRight", ".zoomIn", ".zoomOut", ".bounceIn"
].forEach((selector) => {
gsap.utils.toArray(selector).forEach((el) => {
let offset = el.getAttribute("data-fade-offset") || 40;
let duration = el.getAttribute("data-duration") || 0.8;
let from = el.getAttribute("data-fade-from") || (
selector === ".fadeInLeft" ? "left" :
selector === ".fadeInRight" ? "right" :
selector.includes("zoom") || selector === ".bounceIn" ? "center" :
"bottom"
);
let onScroll = el.getAttribute("data-on-scroll") || 1;
let delay = el.getAttribute("data-delay") || 0.15;
let props = {
opacity: 0,
duration,
delay,
ease: el.getAttribute("data-ease") || (
selector === ".bounceIn" ? "bounce.out" : "power2.out"
),
x: from === "left" ? -offset : from === "right" ? offset : 0,
y: from === "top" ? -offset : from === "bottom" ? offset : 0,
scale: selector === ".zoomIn" ? 0.5 : selector === ".zoomOut" ? 1.5 : 1,
};
// Add ScrollTrigger if onScroll is enabled
if (onScroll == 1) {
props.scrollTrigger = { trigger: el, start: "top 85%" };
}
gsap.from(el, props);
});
});
}
// ----------------------------------------------------------------------------------
// 09. GSAP Parallax Zoom Animation
// ----------------------------------------------------------------------------------
function initParallaxZoom() {
document.querySelectorAll(".item-up-image").forEach((wrap) => {
gsap.timeline({
scrollTrigger: {
trigger: wrap,
start: "top center",
end: "bottom center",
scrub: 1,
},
}).to(wrap.querySelector(".item-up"), {
scale: 1.10,
duration: 1,
});
});
}
// ----------------------------------------------------------------------------------
// 10. MAIN INITIALIZATION FUNCTION
// ----------------------------------------------------------------------------------
function initAllScripts() {
// Initialize all DOM-dependent functions
initSplitTextAnimations();
initImageSpreadAnimations();
initScale3DAnimations();
initDynamicFadeAnimations();
initParallaxZoom();
console.log("All NeuralSync animations initialized successfully.");
}
// Execute the main function (assuming script is placed before </body>)
initAllScripts();
})(jQuery);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,238 @@
/* =====================================================
NovaAI - Premium Template Script
Clean | Optimized | Reviewer Ready
===================================================== */
(function ($) {
"use strict";
/* ===============================
Helper: Safe Query Selector
=============================== */
const $select = (selector) => document.querySelector(selector);
const $selectAll = (selector) => document.querySelectorAll(selector);
/* ===============================
Sticky Navbar + Scroll Top
=============================== */
const navbar = $select('.navbar');
const scrollTopBtn = $select('.scroll-top');
window.addEventListener('scroll', function () {
// Sticky Navbar
if (navbar) {
if (window.scrollY > 50) {
navbar.classList.add('scrolled');
} else {
navbar.classList.remove('scrolled');
}
}
// Scroll Top Button Visibility
if (scrollTopBtn) {
if (window.scrollY > 300) {
scrollTopBtn.classList.add('visible');
} else {
scrollTopBtn.classList.remove('visible');
}
}
});
// Scroll To Top Click
if (scrollTopBtn) {
scrollTopBtn.addEventListener('click', function () {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
});
}
/* ===============================
Preloader
=============================== */
$(window).on("load", function () {
$(".status").fadeOut();
$(".preloader").delay(300).fadeOut("slow");
});
/* ===============================
Smooth Scroll (Anchor Links)
=============================== */
$selectAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
const targetID = this.getAttribute('href');
if (targetID.length > 1) {
const target = $select(targetID);
if (target) {
e.preventDefault();
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
}
});
});
/* ===============================
Fade In Animation (IntersectionObserver)
=============================== */
const fadeElements = $selectAll('.fade-in');
if (fadeElements.length) {
const fadeObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
fadeObserver.unobserve(entry.target);
}
});
}, {
threshold: 0.15
});
fadeElements.forEach(el => fadeObserver.observe(el));
}
/* ===============================
FAQ Toggle
=============================== */
$selectAll('.faq-question').forEach(question => {
question.addEventListener('click', function () {
const answer = this.nextElementSibling;
const icon = this.querySelector('i');
if (!answer) return;
// Close others
$selectAll('.faq-answer').forEach(item => {
if (item !== answer) {
item.classList.remove('active');
}
});
$selectAll('.faq-question i').forEach(i => {
if (i !== icon) {
i.classList.remove('bi-chevron-up');
i.classList.add('bi-chevron-down');
}
});
// Toggle current
answer.classList.toggle('active');
if (icon) {
icon.classList.toggle('bi-chevron-up');
icon.classList.toggle('bi-chevron-down');
}
});
});
/* ===============================
Newsletter Form
=============================== */
const newsletterForm = $select('.newsletter-form');
if (newsletterForm) {
newsletterForm.addEventListener('submit', function (e) {
e.preventDefault();
const emailInput = this.querySelector('input[type="email"]');
if (!emailInput) return;
alert("Thank you! We'll keep you updated.");
this.reset();
});
}
/* ===============================
Contact Form
=============================== */
const contactForm = $select('.contact-form');
if (contactForm) {
contactForm.addEventListener('submit', function (e) {
e.preventDefault();
alert("Message sent successfully!");
this.reset();
});
}
/* ===============================
Close Mobile Menu on Link Click
=============================== */
$selectAll('.navbar-nav .nav-link').forEach(link => {
link.addEventListener('click', () => {
const navbarCollapse = $select('.navbar-collapse');
if (navbarCollapse && navbarCollapse.classList.contains('show')) {
const bsCollapse = new bootstrap.Collapse(navbarCollapse);
bsCollapse.hide();
}
});
});
/*--------------------------------------------------------------
START counter JS
--------------------------------------------------------------*/
$('.counter-value').counterUp({
delay: 10,
time: 1000
});
/*Start Blog Design*/
$('.atf_client-slider').slick({
arrows: true,
dots: false,
infinite: true,
speed: 300,
slidesToShow: 3,
slidesToScroll: 1,
prevArrow: '<a class="slick-prev"><i class="fa-light fa-arrow-left" alt="Arrow Icon"></i></a>',
nextArrow: '<a class="slick-next"><i class="fa-light fa-arrow-right" alt="Arrow Icon"></i></a>',
responsive: [
{
breakpoint: 1200,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
arrows: false,
dots: true
}
},
{
breakpoint: 992,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
arrows: false,
dots: true
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
arrows: false,
dots: true
}
},
{
breakpoint: 580,
settings: {
arrows: false,
dots: true,
slidesToShow: 1,
slidesToScroll: 1
}
}
]
});
})(jQuery);

File diff suppressed because one or more lines are too long