Wir sind

Web design, development & online marketing agency

MA-NO WEB DESIGN AND DEVELOPMENT ist eine Agentur, die sich auf Webdesign und Webentwicklung in Palma de Mallorca, Grafikdesign, Anwendungsentwicklung und SEO-Optimierung spezialisiert hat. Wir haben ein leistungsfähiges multinationales und multidisziplinäres kreatives Team, das einen Qualitätsservice bietet, schnell und auf der Höhe Ihres Projekts.

89,526,124

Nutzer, die unsere Websites besucht haben

18,244,545

Von unseren Kunden verdiente Summe

DIE AGENTUR

MA-NO ist eine Agentur, die sich auf digitale Produkte spezialisiert hat, die Emotionen wecken, Persönlichkeit haben und zu Ergebnissen führen. Webagentur auf den Balearen mit 10 Jahren Erfahrung in der Gestaltung von Websites für große und kleine Unternehmen auf Mallorca und in ganz Spanien, zahlreiche Erfolgsgeschichten sprechen für uns. Diese Erfahrung bringen wir in jedes Projekt ein, um ein hohes Maß an Service und Qualität zu bieten.

Die agentur
 
 

DIENSTLEISTUNGEN

Wir bieten umfassende Projektentwicklungsdienste auf lokaler, regionaler, nationaler und internationaler Ebene mit messbaren Ergebnissen. Wir sind die Webdesign-Firma auf Mallorca, die das beste Design und die beste digitale Strategie bei der Gestaltung von Unternehmenswebsites und Online-Shops bietet.

Dienstleistungen

PORTFOLIO

Wir entwickeln digitale Projekte für wichtige Marken und das ist uns nicht zu Kopf gestiegen (obwohl wir sehr gut darin sind und das wissen wir).

Ma-No hört zu, passt sich an und arbeitet mit Ihnen zusammen, um Ihre Online-Präsenz von Meh zu WOW zu machen. Brauchen Sie einen kompletten Service? Wir können Ihnen mit Strategie, Kampagnen, Werbung, Branding, Video, Fotografie und mehr helfen.

Unsere projekte
 
 

KONTAKT

Wenn Sie eine Non-Profit-Organisation, ein Start-up, ein Familienunternehmen oder eine Gesellschaft haben, sind Sie hier, weil Sie wissen, welchen Einfluss ein digitales Produkt wie eine Website haben kann.

Unternehmen, denen wir mit unserer Arbeit geholfen haben


Erstellung der Fanautic Club-Website
Erstellung der Nit de l'Art 2020 of Palma-Website
Erstellung der Wellies-Website
Erstellung der Barceló, Hotel Group-Website
Erstellung der Cuixot de Porc Negre Mallorquín-Website
Erstellung der Hotel d'es Puig, Deià - Mallorca-Website
Erstellung der Desarrollo Negocio Dental-Website
Erstellung der AbruzzoWeb-Website
Erstellung der Meliá, hotels & resorts-Website
Erstellung der Sol by Meliá-Website
Erstellung der Pizzería Mamma Teresa Trattoria-Website
Erstellung der Tahini, sushi bar & restaurant-Website
Erstellung der Fanautic Club-Website
Erstellung der Bodegas Suau-Website
Erstellung der Dismatecsa-Website
Erstellung der Malift Ascensores-Website
Erstellung der Somoza Brands-Website
Creación página web Romance by Meliá-Website
Erstellung der Pelita, italian burguer e bar-Website
Erstellung der Hotel Sofia Alcudia Beach-Website
Erstellung der Fanautic Club-Website
Erstellung der 21boats-Website
Erstellung der lds-Website
Erstellung der Melicotó-Website
Erstellung der Bunkers Palma-Website
Erstellung der Grupo Cappuccino-Website
Erstellung der Tramuntana, A Taste of Spain-Website
Erstellung der Nautipaints-Website
Erstellung der Humiclima-Website
Erstellung der Mallorca Low Cost-Website
Erstellung der Aura-Website
Erstellung der Sur Yachts Europa-Website
Erstellung der Hotel Ca'n Abril con enlace al portfolio-Website
Erstellung der Cumber Construction-Website
Erstellung der Martinius Excellent Yacht Service-Website
Erstellung der Instituto DentalFacial Cosaga-Website
Erstellung der Jopyería Weyler-Website
Erstellung der A White Hot Wedding-Website
Erstellung der Alberto García excelencia dental-Website
Erstellung der Arianna Mazzetta-Website
Erstellung der Finca Gomera-Website
Erstellung der Brokernautic-Website
Erstellung der Cappuccino Grand Café-Website
Erstellung der Paradisus by Meliá-Website
Erstellung der Yacht Service-Website
Erstellung der Hotelopia-Website
Erstellung der IBRC zahnarzte-Website
Erstellung der Restaurant Casa Flor-Website
Creación página web de Lobster Club
Creación página web de Tiempo y Silencio Casa Sevilla
Creación página web del Defensor del paciente
Creación página web de Remex
Creación página web de Bapiporent

 

Wir sind digital - Architekten

 

MA-NO ist eine Agentur, die sich auf digitale Produkte spezialisiert hat, die Emotionen wecken, Persönlichkeit haben und zu Ergebnissen führen.

Wir werden Erfahrungen, Professionalität und etwas Humor miteinander teilen und mit Ihnen zusammenarbeiten, um Ihre komplexen Probleme zu lösen und Ihre Ziele zu erreichen.

· Unser Tag ist nicht langweilig und Ihrer sollte es auch nicht sein ·

 

  

Array
(
    [path] => Array
        (
            [0] => de
        )

    [path-first-chunk] => Array
        (
        )

    [path-last-chunk] => de
    [path-prelast-chunk] => Array
        (
            [0] => de
        )

    [file-name] => de
    [file-mime] => de
    [file-is-file] => 0
    [file-get-values] => Array
        (
        )

    [path-middle-chunks] => 
    [plugins] => Array
        (
            [item-nav-path] => 
            [nav-path] => /index.php
            [path-models] => /var/www/torpedobits.com/plugins//public/models/index.php
            [path-files] => /var/www/torpedobits.com/plugins//public/views/index.php
            [path-item-models] => /var/www/torpedobits.com/plugins//public/models//item.php
            [path-item-files] => /var/www/torpedobits.com/plugins//public/views//item.php
        )

    [PARAMS] => Array
        (
            [css_style] => .typewrite_container {font-size:24px;font-weight:bold;}

.swiper-container .sldtext{
top:10%
}

.particle-network-animation {
  position: relative;
float:left;
  display:block;
  height: 100vh;
  width:100%;
  /*background-color: #fff;
background: rgb(0,154,145);
background: radial-gradient(circle, rgba(0,154,145,1) 0%, rgba(9,121,116,1) 35%, rgba(0,20,18,1) 100%);*/
}
.particle-network-animation::before {
  z-index: -2;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: url(/cache/galleries/generica/photo-1450849608880-6f787542c88a.webp);
  background-position: center center;
  background-size: cover;
  opacity: 0.2;
}
.particle-network-animation .sldtext{z-index:1;}
.particle-network-animation canvas {
    display: block;
    float: left;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.glow {
  z-index: -1;
  position: fixed;
  top: 50%;
  left: 50%;
  background-image: radial-gradient(circle closest-side, rgba(255, 255, 255, 0.025), transparent);
}

.glow-1 {
  width: 150vw;
  height: 150vh;
  margin-top: -75vh;
  margin-left: -75vw;
  animation: glow-1-move 25s linear infinite both;
}

@keyframes glow-1-move {
  from {
    transform: translate(-100%, 100%);
  }
  to {
    transform: translate(100%, -100%);
  }
}
.glow-2 {
  width: 100vw;
  height: 100vh;
  margin-top: -50vh;
  margin-left: -50vw;
  animation: glow-2-move 25s linear 8.3333333333s infinite both;
}

@keyframes glow-2-move {
  from {
    transform: translate(-100%, 0%);
  }
  to {
    transform: translate(100%, 100%);
  }
}
.glow-3 {
  width: 120vw;
  height: 120vh;
  margin-top: -60vh;
  margin-left: -60vw;
  animation: glow-3-move 25s linear 16.6666666667s infinite both;
}

@keyframes glow-3-move {
  from {
    transform: translate(100%, 100%);
  }
  to {
    transform: translate(0%, -100%);
  }
}     

             .mySwiper {

                       -webkit-box-shadow: none;
    box-shadow: none;
               height:300px;
      }

      .mySwiper .swiper-slide {
        text-align: center;
        font-size: 18px;
        width: 300px;
        height: 300px;

        /* Center slide text vertically */
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }

                                                                                                                                                                                                                                                                                                                                                                                                
            [javascript] =>                                     const swipercat = new Swiper('.swiper-container-parked', {
  // Optional parameters
  // direction: 'vertical',
  loop: false,

  // If we need pagination
  pagination: {
    el: '.swiper-pagination',
  },

  // Navigation arrows
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },

  // And if we need scrollbar
  scrollbar: {
    el: '.swiper-scrollbar',
  },
});
/**
 * Particle Network Animation
 * Inspiration: https://github.com/JulianLaval/canvas-particle-network
*/

(function() {

	var ParticleNetworkAnimation, PNA;
	ParticleNetworkAnimation = PNA = function() {};

	PNA.prototype.init = function(element) {
		this.$el = $(element);

		this.container = element;
		this.canvas = document.createElement('canvas');
		this.sizeCanvas();
		this.container.appendChild(this.canvas);
		this.ctx = this.canvas.getContext('2d');
		this.particleNetwork = new ParticleNetwork(this);

		//this.bindUiActions();

		return this;
	};

	PNA.prototype.bindUiActions = function() {
		$(window).on('resize', function() {
			// this.sizeContainer();
			this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
			this.sizeCanvas();
			this.particleNetwork.createParticles();
		}.bind(this));
	};

	PNA.prototype.sizeCanvas = function() {
		this.canvas.width = this.container.offsetWidth;
		this.canvas.height = this.container.offsetHeight;
	};

	var Particle = function(parent, x, y) {
		this.network = parent;
		this.canvas = parent.canvas;
		this.ctx = parent.ctx;
		this.particleColor = returnRandomArrayitem(this.network.options.particleColors);
		this.radius = getLimitedRandom(1.5, 4.5);
		this.opacity = 1;
		this.x = x || Math.random() * this.canvas.width;
		this.y = y || Math.random() * this.canvas.height;
		this.velocity = {
			x: (Math.random() - 0.5) * parent.options.velocity,
			y: (Math.random() - 0.5) * parent.options.velocity
		};
	};

	Particle.prototype.update = function() {
		if (this.opacity < 1) {
			this.opacity += 0.1;
		} else {
			this.opacity = 1;
		}
		// Change dir if outside map
		if (this.x > this.canvas.width + 100 || this.x < -100) {
			this.velocity.x = -this.velocity.x;
		}
		if (this.y > this.canvas.height + 100 || this.y < -100) {
			this.velocity.y = -this.velocity.y;
		}

		// Update position
		this.x += this.velocity.x;
		this.y += this.velocity.y;
	};

	Particle.prototype.draw = function() {
		// Draw particle
		this.ctx.beginPath();
		this.ctx.fillStyle = this.particleColor;
		this.ctx.globalAlpha = this.opacity;
		this.ctx.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
		this.ctx.fill();
	};

	var ParticleNetwork = function(parent) {
		this.options = {
			velocity: 1, // the higher the faster
			density: 12000, // the lower the denser
			netLineDistance: 300,
			netLineColor: '#00a4ad',
			particleColors: ['#aaa'] // ['#6D4E5C', '#aaa', '#FFC458' ]
		};
		this.canvas = parent.canvas;
		this.ctx = parent.ctx;

		this.init();
	};

	ParticleNetwork.prototype.init = function() {
		// Create particle objects
		this.createParticles(true);

		// Update canvas
		this.animationFrame = requestAnimationFrame(this.update.bind(this));

		//this.bindUiActions();
	};

	ParticleNetwork.prototype.createParticles = function(isInitial) {
		// Initialise / reset particles
		var me = this;
		this.particles = [];
		var quantity = this.canvas.width * this.canvas.height / this.options.density;

		if (isInitial) {
			var counter = 0;
			clearInterval(this.createIntervalId);
			this.createIntervalId = setInterval(function() {
				if (counter < quantity - 1) {
					// Create particle object
					this.particles.push(new Particle(this));
				}
				else {
					clearInterval(me.createIntervalId);
				}
				counter++;
			}.bind(this), 140);
		}
		else {
			// Create particle objects
			for (var i = 0; i < quantity; i++) {
				this.particles.push(new Particle(this));
			}
		}
	};

	ParticleNetwork.prototype.createInteractionParticle = function() {
		// Add interaction particle
		this.interactionParticle = new Particle(this);
		this.interactionParticle.velocity = {
			x: 0,
			y: 0
		};
		this.particles.push(this.interactionParticle);
		return this.interactionParticle;
	};

	ParticleNetwork.prototype.removeInteractionParticle = function() {
		// Find it
		var index = this.particles.indexOf(this.interactionParticle);
		if (index > -1) {
			// Remove it
			this.interactionParticle = undefined;
			this.particles.splice(index, 1);
		}
	};

	ParticleNetwork.prototype.update = function() {
		if (this.canvas) {

			this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
			this.ctx.globalAlpha = 1;

			// Draw connections
			for (var i = 0; i < this.particles.length; i++) {
				for (var j = this.particles.length - 1; j > i; j--) {
					var distance, p1 = this.particles[i], p2 = this.particles[j];

					// check very simply if the two points are even a candidate for further measurements
					distance = Math.min(Math.abs(p1.x - p2.x), Math.abs(p1.y - p2.y));
					if (distance > this.options.netLineDistance) {
						continue;
					}

					// the two points seem close enough, now let's measure precisely
					distance = Math.sqrt(
						Math.pow(p1.x - p2.x, 2) +
						Math.pow(p1.y - p2.y, 2)
					);
					if (distance > this.options.netLineDistance) {
						continue;
					}

					this.ctx.beginPath();
					this.ctx.strokeStyle = this.options.netLineColor;
					this.ctx.globalAlpha = (this.options.netLineDistance - distance) / this.options.netLineDistance * p1.opacity * p2.opacity;
					this.ctx.lineWidth = 0.7;
					this.ctx.moveTo(p1.x, p1.y);
					this.ctx.lineTo(p2.x, p2.y);
					this.ctx.stroke();
				}
			}

			// Draw particles
			for (var i = 0; i < this.particles.length; i++) {
				this.particles[i].update();
				this.particles[i].draw();
			}

			if (this.options.velocity !== 0) {
				this.animationFrame = requestAnimationFrame(this.update.bind(this));
			}

		}
		else {
			cancelAnimationFrame(this.animationFrame);
		}
	};

	ParticleNetwork.prototype.bindUiActions = function() {
		// Mouse / touch event handling
		this.spawnQuantity = 3;
		this.mouseIsDown = false;
		this.touchIsMoving = false;

		this.onMouseMove = function(e) {
			if (!this.interactionParticle) {
				this.createInteractionParticle();
			}
			this.interactionParticle.x = e.offsetX;
			this.interactionParticle.y = e.offsetY;
		}.bind(this);

		this.onTouchMove = function(e) {
			e.preventDefault();
			this.touchIsMoving = true;
			if (!this.interactionParticle) {
				this.createInteractionParticle();
			}
			this.interactionParticle.x = e.changedTouches[0].clientX;
			this.interactionParticle.y = e.changedTouches[0].clientY;
		}.bind(this);

		this.onMouseDown = function(e) {
			this.mouseIsDown = true;
			var counter = 0;
			var quantity = this.spawnQuantity;
			var intervalId = setInterval(function() {
				if (this.mouseIsDown) {
					if (counter === 1) {
						quantity = 1;
					}
					for (var i = 0; i < quantity; i++) {
						if (this.interactionParticle) {
							this.particles.push(new Particle(this, this.interactionParticle.x, this.interactionParticle.y));
						}
					}
				}
				else {
					clearInterval(intervalId);
				}
				counter++;
			}.bind(this), 50);
		}.bind(this);

		this.onTouchStart = function(e) {
			e.preventDefault();
			setTimeout(function() {
				if (!this.touchIsMoving) {
					for (var i = 0; i < this.spawnQuantity; i++) {
						this.particles.push(new Particle(this, e.changedTouches[0].clientX, e.changedTouches[0].clientY));
					}
				}
			}.bind(this), 200);
		}.bind(this);

		this.onMouseUp = function(e) {
			this.mouseIsDown = false;
		}.bind(this);

		this.onMouseOut = function(e) {
			this.removeInteractionParticle();
		}.bind(this);

		this.onTouchEnd = function(e) {
			e.preventDefault();
			this.touchIsMoving = false;
			this.removeInteractionParticle();
		}.bind(this);

		this.canvas.addEventListener('mousemove', this.onMouseMove);
		this.canvas.addEventListener('touchmove', this.onTouchMove);
		this.canvas.addEventListener('mousedown', this.onMouseDown);
		this.canvas.addEventListener('touchstart', this.onTouchStart);
		this.canvas.addEventListener('mouseup', this.onMouseUp);
		this.canvas.addEventListener('mouseout', this.onMouseOut);
		this.canvas.addEventListener('touchend', this.onTouchEnd);
	};

	ParticleNetwork.prototype.unbindUiActions = function() {
		if (this.canvas) {
			this.canvas.removeEventListener('mousemove', this.onMouseMove);
			this.canvas.removeEventListener('touchmove', this.onTouchMove);
			this.canvas.removeEventListener('mousedown', this.onMouseDown);
			this.canvas.removeEventListener('touchstart', this.onTouchStart);
			this.canvas.removeEventListener('mouseup', this.onMouseUp);
			this.canvas.removeEventListener('mouseout', this.onMouseOut);
			this.canvas.removeEventListener('touchend', this.onTouchEnd);
		}
	};

	var getLimitedRandom = function(min, max, roundToInteger) {
		var number = Math.random() * (max - min) + min;
		if (roundToInteger) {
			number = Math.round(number);
		}
		return number;
	};

	var returnRandomArrayitem = function(array) {
		return array[Math.floor(Math.random()*array.length)];
	};

pna = new ParticleNetworkAnimation();	pna.init($('.particle-network-animation')[0]);

}());



      var swiper = new Swiper(".mySwiper", {
   /*
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev",
        },
        pagination: {
          el: ".swiper-pagination",
          clickable: true,
        },*/
        
        
              slidesPerView: 4,
        spaceBetween: 40,
        breakpoints: {
            320: {
                slidesPerView: 2,
                spaceBetween: 20
            },
            480: {
                slidesPerView: 3,
                spaceBetween: 30
            },
            640: {
                slidesPerView: 4,
                spaceBetween: 40
            }
        },
        loop: true,
        loopFillGroupWithBlank: true,
        autoplay: {
            delay: 2500,
            disableOnInteraction: false,
        },
    
      });                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
            [main_title] => Web-Design, Web-Entwicklung, SEO-Optimierung auf Mallorca
            [is_indexable] => 
            [is_followable] => 
            [gallery] => categories-2
        )

)