Full Access Plugin Installer (Free)
/* --- Reset & Variables --- */ .pi-page *, .pi-page *::before, .pi-page *::after { margin: 0; padding: 0; box-sizing: border-box; } .pi-page { --pi-font: -apple-system, BlinkMacSy stemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif; --pi-t1: #1d1d1f; --pi-t2: #6e6e73; --pi-t3: #86868b; --pi-ease: cubic-bezier(0.25, 0.1, 0.25, 1); width: 100%; font-family: var(--pi-font); -webkit-font-smoothing: antialiased; background: #fff; color: var(--pi-t1); } /* --- Hero Section --- */ .pi-hero { text-align: center; padding: 80px 24px 64px; max-width: 900px; margin: 0 auto; } .pi-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pi-t3); margin-bottom: 24px; } .pi-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, #00b894, #0984e3); animation: pi-pulse 2s ease-in-out infinite; } @keyframes pi-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.85); } } .pi-hero h1 { font-size: clamp(42px, 7vw, 72px) !important; font-weight: 700 !important; line-height: 1.05 !important; letter-spacing: -0.03em !important; margin: 0 0 20px 0 !important; padding: 0 !important; background: linear-gradient( 135deg, #0984e3 0%, #6c5ce7 30%, #a855f7 60%, #e84393 100% ); background-size: 200% 200%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: pi-gradient 8s ease-in-out infinite alternate; } @keyframes pi-gradient { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } .pi-hero-sub { font-size: clamp(18px, 2.5vw, 22px); font-weight: 400; line-height: 1.5; color: var(--pi-t2); max-width: 600px; margin: 0 auto 36px; } .pi-cta-group { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-bottom: 48px; } .pi-cta { display: inline-flex; align-items: center; gap: 10px; padding: 16px 32px; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; text-decoration: none !important; border-radius: 12px; transition: all 0.3s var(--pi-ease); cursor: pointer; border: none; font-family: var(--pi-font); } .pi-cta-primary { background: linear-gradient(135deg, #0984e3, #6c5ce7); color: #fff !important; box-shadow: 0 4px 20px rgba(108, 92, 231, 0.3); } .pi-cta-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(108, 92, 231, 0.4); } .pi-cta-primary svg { width: 20px; height: 20px; fill: currentColor; } .pi-cta-secondary { background: rgba(0, 0, 0, 0.05); color: var(--pi-t1) !important; } .pi-cta-secondary:hover { background: rgba(0, 0, 0, 0.08); } .pi-hero-note { font-size: 13px; color: var(--pi-t3); } /* --- App Preview --- */ .pi-app-preview { max-width: 100%; margin: 0 auto 80px; padding: 0; overflow: hidden; position: relative; } /* Feathered edges */ .pi-app-preview::before, .pi-app-preview::after { content: ''; position: absolute; top: 0; bottom: 100px; width: 120px; z-index: 15; pointer-events: none; } .pi-app-preview::before { left: 0; background: linear-gradient(to right, #fff 0%, rgba(255,255,255,0) 100%); } .pi-app-preview::after { right: 0; background: linear-gradient(to left, #fff 0%, rgba(255,255,255,0) 100%); } /* --- Coverflow Carousel --- */ .pi-carousel { position: relative; padding: 20px 0; } .pi-carousel-viewport { overflow: visible; width: 50%; max-width: 550px; margin: 0 auto; } .pi-carousel-track { display: flex; transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1); } .pi-carousel-slide { flex: 0 0 100%; padding: 0 12px; transition: opacity 0.6s cubic-bezier(0.25, 0.1, 0.25, 1), transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1); opacity: 0.25; transform: scale(0.8); } .pi-carousel-slide.pi-slide--active { opacity: 1; transform: scale(1); z-index: 10; } .pi-carousel-slide.pi-slide--prev, .pi-carousel-slide.pi-slide--next { opacity: 0.45; transform: scale(0.88); z-index: 5; } .pi-carousel-slide.pi-slide--far { opacity: 0.15; transform: scale(0.75); z-index: 1; } .pi-carousel-slide img { width: 100%; height: auto; display: block; } .pi-slide-label { text-align: center; font-size: 15px; font-weight: 600; color: var(--pi-t2); margin-top: 28px; letter-spacing: -0.01em; transition: opacity 0.25s ease; } .pi-carousel-btn { position: absolute; top: 45%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: none; background: linear-gradient(135deg, #0984e3, #6c5ce7); box-shadow: 0 4px 16px rgba(108, 92, 231, 0.3); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.25s var(--pi-ease); z-index: 25; } .pi-carousel-btn:hover { background: linear-gradient(135deg, #0773c7, #5b4ccc); box-shadow: 0 6px 24px rgba(108, 92, 231, 0.4); transform: translateY(-50%) scale(1.08); } .pi-carousel-btn svg { width: 22px; height: 22px; stroke: #fff; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; } .pi-carousel-btn--prev { left: calc(50% - 340px); } .pi-carousel-btn--next { right: calc(50% - 340px); } .pi-carousel-dots { display: flex; justify-content: center; gap: 10px; margin-top: 20px; } .pi-carousel-dot { width: 10px; height: 10px; border-radius: 50%; border: none; background: rgba(0, 0, 0, 0.12); cursor: pointer; padding: 0; transition: all 0.25s var(--pi-ease); } .pi-carousel-dot:hover { background: rgba(0, 0, 0, 0.25); } .pi-carousel-dot--active { background: linear-gradient(135deg, #0984e3, #6c5ce7); transform: scale(1.2); } @media (max-width: 1000px) { .pi-carousel-viewport { width: 55%; } .pi-carousel-btn--prev { left: calc(50% - 300px); } .pi-carousel-btn--next { right: calc(50% - 300px); } .pi-app-preview::before, .pi-app-preview::after { width: 80px; } } @media (max-width: 800px) { .pi-carousel-viewport { width: 60%; max-width: 400px; } .pi-carousel-btn--prev { left: 16px; } .pi-carousel-btn--next { right: 16px; } .pi-app-preview::before, .pi-app-preview::after { width: 60px; } } @media (max-width: 600px) { .pi-carousel-viewport { width: 70%; max-width: 320px; } .pi-carousel-btn { width: 40px; height: 40px; } .pi-carousel-btn svg { width: 18px; height: 18px; } .pi-carousel-btn--prev { left: 8px; } .pi-carousel-btn--next { right: 8px; } .pi-slide-label { font-size: 13px; margin-top: 20px; } .pi-app-preview::before, .pi-app-preview::after { width: 40px; } } /* --- Problem/Solution Section --- */ .pi-section { padding: 80px 24px; max-width: 1000px; margin: 0 auto; } .pi-section--alt { background: #f5f5f7; } .pi-section-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #6c5ce7; text-align: center; margin-bottom: 12px; } .pi-section h2 { font-size: clamp(32px, 5vw, 48px) !important; font-weight: 700 !important; line-height: 1.1 !important; letter-spacing: -0.03em !important; text-align: center; margin: 0 0 20px 0 !important; padding: 0 !important; color: var(--pi-t1); } .pi-section-lead { font-size: 18px; line-height: 1.6; color: var(--pi-t2); text-align: center; max-width: 650px; margin: 0 auto 48px; } /* --- Before/After Comparison --- */ .pi-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px; } .pi-compare-card { padding: 32px; border-radius: 16px; background: #fff; } .pi-compare-card--before { border: 1px solid #e8e8ed; } .pi-compare-card--after { background: linear-gradient(145deg, #0984e3, #6c5ce7); color: #fff; } .pi-compare-label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; opacity: 0.6; } .pi-compare-card--after .pi-compare-label { opacity: 0.8; } .pi-compare-title { font-size: 20px; font-weight: 700; margin-bottom: 16px; } .pi-compare-list { list-style: none; font-size: 14px; line-height: 1.8; } .pi-compare-list li { display: flex; align-items: flex-start; gap: 10px; } .pi-compare-list li::before { content: '×'; color: #e74c3c; font-weight: 700; font-size: 16px; line-height: 1.5; } .pi-compare-card--after .pi-compare-list li::before { content: '✓'; color: #fff; } /* --- Features Grid --- */ .pi-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; } .pi-feature { padding: 32px 28px; border-radius: 16px; background: #fff; border: 1px solid #e8e8ed; transition: all 0.3s var(--pi-ease); } .pi-feature:hover { border-color: transparent; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); transform: translateY(-4px); } .pi-feature-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; background: linear-gradient(135deg, rgba(108, 92, 231, 0.1), rgba(9, 132, 227, 0.1)); } .pi-feature-icon svg { width: 24px; height: 24px; stroke: #6c5ce7; stroke-width: 1.5; fill: none; } .pi-feature h3 { font-size: 17px !important; font-weight: 700 !important; margin: 0 0 10px 0 !important; padding: 0 !important; color: var(--pi-t1); } .pi-feature p { font-size: 14px; line-height: 1.55; color: var(--pi-t2); margin: 0; } /* --- How It Works --- */ .pi-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 48px; } .pi-step { text-align: center; position: relative; } .pi-step::after { content: ''; position: absolute; top: 40px; right: -20px; width: 40px; height: 2px; background: linear-gradient(90deg, #e8e8ed, transparent); } .pi-step:last-child::after { display: none; } .pi-step-num { width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 50%; background: linear-gradient(135deg, #0984e3, #6c5ce7); color: #fff; font-size: 24px; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(108, 92, 231, 0.25); } .pi-step h3 { font-size: 18px !important; font-weight: 700 !important; margin: 0 0 10px 0 !important; padding: 0 !important; color: var(--pi-t1); } .pi-step p { font-size: 14px; line-height: 1.55; color: var(--pi-t2); margin: 0; } /* --- System Requirements --- */ .pi-requirements { display: flex; justify-content: center; gap: 48px; margin-top: 40px; flex-wrap: wrap; } .pi-req { text-align: center; } .pi-req-icon { width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 14px; background: rgba(0, 0, 0, 0.04); display: flex; align-items: center; justify-content: center; } .pi-req-icon svg { width: 28px; height: 28px; stroke: var(--pi-t2); stroke-width: 1.5; fill: none; } .pi-req-label { font-size: 13px; font-weight: 600; color: var(--pi-t1); margin-bottom: 2px; } .pi-req-value { font-size: 12px; color: var(--pi-t3); } /* --- Final CTA Section --- */ .pi-final-cta { text-align: center; padding: 80px 24px 100px; background: linear-gradient(180deg, #fff 0%, #f5f5f7 100%); } .pi-final-cta h2 { font-size: clamp(28px, 4vw, 40px) !important; font-weight: 700 !important; margin: 0 0 16px 0 !important; padding: 0 !important; color: var(--pi-t1); } .pi-final-cta p { font-size: 17px; color: var(--pi-t2); margin: 0 0 32px 0; } .pi-final-note { margin-top: 20px; font-size: 13px; color: var(--pi-t3); } /* --- Responsive --- */ @media (max-width: 800px) { .pi-features { grid-template-columns: repeat(2, 1fr); } .pi-steps { grid-template-columns: 1fr; gap: 32px; } .pi-step::after { display: none; } .pi-compare { grid-template-columns: 1fr; } } @media (max-width: 600px) { .pi-hero { padding: 60px 20px 48px; } .pi-section { padding: 60px 20px; } .pi-features { grid-template-columns: 1fr; } .pi-cta-group { flex-direction: column; align-items: center; } .pi-cta { width: 100%; max-width: 280px; justify-content: center; } .pi-requirements { gap: 32px; } } Free Download Install Final Cut Pro Plugins in Seconds A free Mac app that installs your Final Cut plugins and LUTs. No hidden folders. No confusion. Just drag, drop, and make movies. Download Free See How It Works macOS 11+ • Designed for FCPX Full Access customers Ultimate Bundle Installation The Problem Manual Installation is a Nightmare Installing Final Cut Pro plugins means navigating hidden Library folders, understanding complex folder structures, and praying you put files in the right place. Without the Installer Manual Installation Navigate hidden ~/Movies folders Create .localized directories manually Figure out which folder type goes where Risk breaking your Motion Templates Repeat for every single plugin With the Installer One Click. Done. Drag and drop your ZIP files Automatic folder detection Smart plugin type recognition Safe, verified installation Install everything at once Features Everything You Need Built specifically for FCPX Full Access plugins, with smart automation that handles the complexity for you. Ultimate Bundle Install Install all 5 plugin categories at once — Titles, Transitions, Effects, Generators, and LUTs with a single click. Individual Plugin Install Installing a single plugin pack? Just drag it in. The app detects the type automatically and installs it correctly. Folder Health Check Creates and verifies your Motion Templates folder structure, including the special .localized folders Final Cut Pro requires. Smart Detection Automatically identifies plugin types by scanning file extensions (.moti, .motn, .moef, .motr) and places them correctly. Safe Updates Replaces plugins with matching names automatically. Update your plugins without manually deleting old versions first. Built-in Uninstaller Need to remove Full Access plugins? The uninstaller makes it easy to clean up when needed. How It Works Three Simple Steps From download to editing in under a minute. No technical knowledge required. 1 Download the App Free download for Mac. No account required, no subscription, just the installer. 2 Drag Your Plugins Drop your ZIP files onto the app — individual plugins or the entire Ultimate Bundle. 3 Click Install One click and you're done. Open Final Cut Pro and start editing with your new plugins. Compatibility System Requirements macOS Big Sur 11.0+ Processor Apple Silicon & Intel Final Cut Pro 10.5 or later Price Free Forever Ready to Simplify Your Workflow? Download the free installer and start editing faster today. Download for Mac Designed exclusively for FCPX Full Access customers. Works with Ultimate Bundle and individual plugin purchases. (function() { var currentIndex = 0; var total = 4; var labels = [ 'Ultimate Bundle Installation', 'Individual Plugin Installer', 'Folder Setup & Health Check', 'Uninstall Plugins' ]; function updateCarousel() { var track = document.querySelector('.pi-carousel-track'); var slides = document.querySelectorAll('.pi-carousel-slide'); var dots = document.querySelectorAll('.pi-carousel-dot'); var label = document.querySelector('.pi-slide-label'); if (!track || !slides.length) return; /* Shift track */ track.style.transform = 'translateX(' + (-currentIndex * 100) + '%)'; /* Update slide classes */ for (var i = 0; i < slides.length; i++) { slides[i].className = 'pi-carousel-slide'; if (dots[i]) dots[i].className = 'pi-carousel-dot'; var diff = i - currentIndex; if (diff === 0) { slides[i].className += ' pi-slide--active'; if (dots[i]) dots[i].className += ' pi-carousel-dot--active'; } else if (diff === -1) { slides[i].className += ' pi-slide--prev'; } else if (diff === 1) { slides[i].className += ' pi-slide--next'; } else { slides[i].className += ' pi-slide--far'; } } /* Update label */ if (label) { label.textContent = labels[currentIndex]; } } function goToSlide(index) { if (index < 0) index = 0; if (index >= total) index = total - 1; currentIndex = index; updateCarousel(); } /* Event delegation - attach to document */ document.addEventListener('click', function(e) { var target = e.target; /* Check for prev button */ var prevBtn = target.closest ? target.closest('.pi-carousel-btn--prev') : null; if (!prevBtn) { var el = target; while (el && el !== document) { if (el.classList && el.classList.contains('pi-carousel-btn--prev')) { prevBtn = el; break; } el = el.parentElement; } } if (prevBtn) { e.preventDefault(); goToSlide(currentIndex - 1); return; } /* Check for next button */ var nextBtn = target.closest ? target.closest('.pi-carousel-btn--next') : null; if (!nextBtn) { var el2 = target; while (el2 && el2 !== document) { if (el2.classList && el2.classList.contains('pi-carousel-btn--next')) { nextBtn = el2; break; } el2 = el2.parentElement; } } if (nextBtn) { e.preventDefault(); goToSlide(currentIndex + 1); return; } /* Check for dot buttons */ var dotBtn = null; var el3 = target; while (el3 && el3 !== document) { if (el3.classList && el3.classList.contains('pi-carousel-dot')) { dotBtn = el3; break; } el3 = el3.parentElement; } if (dotBtn) { e.preventDefault(); var allDots = document.querySelectorAll('.pi-carousel-dot'); for (var i = 0; i < allDots.length; i++) { if (allDots[i] === dotBtn) { goToSlide(i); break; } } return; } }, true); /* Touch/swipe support */ var touchStartX = 0; document.addEventListener('touchstart', function(e) { var carousel = e.target.closest ? e.target.closest('.pi-carousel') : null; if (!carousel) { var el = e.target; while (el && el !== document) { if (el.classList && el.classList.contains('pi-carousel')) { carousel = el; break; } el = el.parentElement; } } if (carousel) { touchStartX = e.changedTouches[0].screenX; } }, { passive: true }); document.addEventListener('touchend', function(e) { var carousel = e.target.closest ? e.target.closest('.pi-carousel') : null; if (!carousel) { var el = e.target; while (el && el !== document) { if (el.classList && el.classList.contains('pi-carousel')) { carousel = el; break; } el = el.parentElement; } } if (carousel && touchStartX) { var touchEndX = e.changedTouches[0].screenX; var diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { if (diff > 0) { goToSlide(currentIndex + 1); } else { goToSlide(currentIndex - 1); } } touchStartX = 0; } }, { passive: true }); /* Initialize on load and also try immediately */ updateCarousel(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', updateCarousel); } window.addEventListener('load', updateCarousel); })();