New Vibia Catalogue

Sign up to receive the Vibia catalog and explore a selection of products and lighting effects that will inspire you to create unique projects.

Register

Explore the latest trends and lighting effects that will make your projects truly extraordinary in our new digital catalog.

Be the first to create unique spaces with our new collections

Sign up

Are you not yet part of our Professional Area?

Join us and gain access to all our tools, product technical materials, exclusive content, and personalized experiences tailored for design professionals.

Downloads

Everything you need: HR photos, 2D and 3D libraries, BIM files, product data sheets, photometry and assembly instructions.

Quotes

Get a personalised quotation for your projects.

Installation and maintenance

Contact our technical service to help you with any queries you may have.

Direct contact

Communication with the person in charge of Vibia in your area to advise you on what you need.

New Vibia Catalogue

Sign up to receive the Vibia catalog and explore a selection of products and lighting effects that will inspire you to create unique projects.

Register

Vibia

Follow us

Vibia is a global lighting company based in Barcelona

Light is at the foundation of space design. Alongside architects, interior designers, lighting designers, engineers and dealers, we aim to improve the world through a single aspiration: creating better spaces to live.

// Function to handle intersection function handleIntersect(entries, observer) { entries.forEach(entry => { if (entry.isIntersecting) { // Add class to make the section visible entry.target.classList.add('visible'); // Optionally stop observing the current target if only need animation once observer.unobserve(entry.target); } }); } // Options for the observer (we can adjust the threshold if needed) const options = { threshold: 0.1 // Trigger when 10% of the element is visible }; // Create the intersection observer const observer = new IntersectionObserver(handleIntersect, options); // Observe each section with the class 'hidden-section' document.querySelectorAll('.hidden-section').forEach(section => { observer.observe(section); }); // Add CSS for the hidden and visible states const style = document.createElement('style'); style.innerHTML = ` .hidden-section { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; } .hidden-section.visible { opacity: 1; transform: translateY(0); } `; document.head.appendChild(style);