Talk about your brand
Use this text to share information about your brand with your customers.
Lámpara colgante de piedra de cemento Industrial Retro de arte nórdico Morandi
Precio regular
€70.00
Precio de venta
€70.00
Precio regular
€0.00
Lámpara colgante de piedra de cemento Industrial Retro de arte nórdico Morandi
Precio regular
€70.00
Precio de venta
€70.00
Precio regular
€0.00
Descripción del Producto
Installation Guide
Size Calculator
Reseñas de productos
'+f.unit+'
'+f.min+'–'+f.max+' '+f.unit+'';
wrap.appendChild(div);
});
}
function vals(){
var o={};
root.querySelectorAll("[data-hz-fields] input").forEach(function(input){ o[input.name]=Number(input.value); });
return o;
}
function valid(){
var bad=false;
root.querySelectorAll("[data-hz-fields] input").forEach(function(input){
var v=Number(input.value), min=Number(input.min), max=Number(input.max);
var ok=Number.isFinite(v)&&v>=min&&v<=max;
input.classList.toggle("is-bad", !ok);
if(!ok) bad=true;
});
root.querySelector("[data-hz-err]").classList.toggle("is-on", bad);
return !bad;
}
function result(){
var v=vals(), L=v.length, W=v.width, H=v.ceiling||2.5;
var hang=tx("factHang"), size=tx("size"), note=tx("note");
function pack(value,title,body,metrics){ return {value:value,title:title,body:body,metrics:metrics||[]}; }
if(state.place==="island"){
if(state.type==="linear"){ var lo=round(L*0.5), hi=round(L*0.67); return pack(lo+"–"+hi+" cm", LANG==="de"?"Der Insel folgen, ohne die Enden zu erreichen.":"Follow the island, without reaching its ends.", LANG==="de"?"Eine Linienleuchte in dieser Länge gibt der Insel eine klare Mitte.":"A linear light in this length gives the island a clear center.", [[size, lo+"–"+hi+" cm"],[hang,"76–91 cm"]]); }
var count=L<137?1:L<229?2:3, dLo=Math.max(25,round(W*0.3)), dHi=Math.max(dLo+5,round(W*0.45));
return pack(count+" × "+dLo+"–"+dHi+" cm", count===1?(LANG==="de"?"Ein Pendel über der Insel.":"One pendant over the island."):(LANG==="de"?"Eine gleichmäßige Gruppe.":"An evenly spaced group."), LANG==="de"?"Pendel auf der Insel-Mittellinie halten.":"Keep the pendants on the island centerline.", [[size, count+" × "+dLo+"–"+dHi+" cm"],[hang,"76–91 cm"]]);
}
if(state.place==="table"){
if(state.type==="linear"){ var lo2=round(L*0.55), hi2=round(L*0.7); return pack(lo2+"–"+hi2+" cm", LANG==="de"?"Der Tischlinie folgen.":"Let the fixture follow the table line.", LANG==="de"?"Die Leuchte über der Tischmitte zentrieren.":"Center the fixture over the table.", [[size, lo2+"–"+hi2+" cm"],[hang,"76–91 cm"]]); }
var hi=Math.max(15,Math.min(round(W*0.67),round(W-30))), lo=Math.max(13,Math.min(round(W*0.5),hi));
return pack(lo+"–"+hi+" cm", LANG==="de"?"Mit der Tischbreite beginnen.":"Start with the width of the table.", LANG==="de"?"Vom Tisch aus zentrieren, nicht vom Raum.":"Center from the table, not from the room.", [[size, lo+"–"+hi+" cm"],[hang,"76–91 cm"]]);
}
if(state.place==="corridor"){
var lenCm=L*100, count=Math.max(1,Math.min(8,Math.ceil(lenCm/244)));
if(count>1 && lenCm/count<183) count-=1;
var eachHi=Math.min(61,Math.max(30,round(W*100*0.18))), eachLo=Math.max(25,Math.min(eachHi-5,round(eachHi*0.72)));
return pack(count+" × "+eachLo+"–"+eachHi+" cm", count===1?(LANG==="de"?"Eine zentrierte Leuchte.":"One centered light."):(LANG==="de"?"Ein ruhiger Rhythmus.":"A balanced rhythm."), LANG==="de"?"Kompakte Leuchten im Abstand setzen, nicht eine übergroße Mitte.":"Use compact fixtures in rhythm rather than one oversized centerpiece.", [[size, count+" × "+eachLo+"–"+eachHi+" cm"],[note, tx("clear210")]]);
}
if(state.place==="mirror"){
if(state.type==="bar"){ var lo=round(L*0.75), hi=round(L*0.85); return pack(lo+"–"+hi+" cm", LANG==="de"?"Die Leiste innerhalb der Spiegelkanten halten.":"Keep the bar inside the mirror edges.", LANG==="de"?"Eine gestreute Fläche über dem Spiegel wählen.":"Choose a diffused source above the mirror.", [[size, lo+"–"+hi+" cm"]]); }
return pack("165–178 cm", LANG==="de"?"Licht nahe Augenhöhe.":"Place the light near eye level.", LANG==="de"?"Paarweise auf gleicher Höhe setzen.":"Keep the pair at the same height.", [[tx("factCenter"),"165–178 cm"],[tx("factGap"),"8–15 cm"]]);
}
if(state.place==="reading"){
var rLo=Math.max(137,round(L+102)), rHi=Math.min(183,round(L+122));
return pack(rLo+"–"+rHi+" cm", LANG==="de"?"Schirm nahe sitzender Augenhöhe.":"Bring the shade close to seated eye level.", LANG==="de"?"Die Leuchte leicht hinter oder neben die Schulter setzen.":"Place the lamp slightly behind or beside the shoulder.", [[tx("typeFloor"), rLo+"–"+rHi+" cm"]]);
}
if(state.place==="bedside"){
if(state.type==="tablelamp"){ var lo=Math.max(20,round(L*0.33)), hi=Math.max(lo+5,round(L*0.5)); return pack(lo+"–"+hi+" cm", LANG==="de"?"Zur Nachttischbreite passen.":"Keep the lamp in proportion to the nightstand.", LANG==="de"?"Schirmuntenrand nahe der sitzenden Schulter.":"Keep the shade bottom near seated shoulder height.", [[size, lo+"–"+hi+" cm"]]); }
if(state.type==="pendant"){ var lo=round(L+30), hi=round(L+51); return pack(lo+"–"+hi+" cm", LANG==="de"?"Den Nachttisch als Referenz nutzen.":"Use the nightstand as the reference.", LANG==="de"?"Unterkante über dem Nachttisch, Schalter in Reichweite.":"Keep the bottom above the nightstand, switch within reach.", [[tx("lowest"), lo+"–"+hi+" cm"]]); }
return pack("140–152 cm", LANG==="de"?"Wandleuchte gut erreichbar.":"Place the sconce where it is easy to reach.", LANG==="de"?"Eine Mitte über der Matratze, vom Bett erreichbar.":"A center above the mattress, reachable from bed.", [[tx("factCenter"),"140–152 cm"]]);
}
var dia=Math.max(30, round((L+W)*8.3));
var low=H<=2.45 && state.type!=="flush";
return pack(dia+" cm", low?(LANG==="de"?"Diese Breite in flacher Form nutzen.":"Use this width in a low-profile form."):(LANG==="de"?"Mit dem Raum beginnen.":"Start with the room, then judge visual weight."), LANG==="de"?"Länge + Breite in Metern × 8,3 ergibt den Startdurchmesser.":"Adding room length and width in metres × 8.3 gives the starting diameter.", [[size, dia+" cm"],[note, tx("clear210")]]);
}
var ART={island:"island",table:"dining",center:"center",corridor:"hallway",mirror:"vanity",bedside:"bedside",reading:"reading",ceiling:"center"};
function pickRoom(v){
state.room=v; state.place=null; state.type=null; state.maxStep=Math.max(state.maxStep,2);
root.querySelector("[data-hz-place-intro]").textContent = tx("placeIntro", {room: tx(ROOMS[v].labelKey)});
fill(root.querySelector("[data-hz-places]"), ROOMS[v].places, "data-hz-place");
step(2);
}
function pickPlace(v){
state.place=v; state.type=null; state.maxStep=Math.max(state.maxStep,3);
fill(root.querySelector("[data-hz-types]"), TYPES[v], "data-hz-type");
step(3);
}
function pickType(v){
state.type=v; state.maxStep=Math.max(state.maxStep,4);
renderFields();
step(4);
}
root.addEventListener("click", function(e){
var btn=e.target.closest("button");
if(!btn||!root.contains(btn)) return;
if(btn.hasAttribute("data-hz-room")) { pickRoom(btn.getAttribute("data-hz-room")); return; }
if(btn.hasAttribute("data-hz-place")) { pickPlace(btn.getAttribute("data-hz-place")); return; }
if(btn.hasAttribute("data-hz-type")) { pickType(btn.getAttribute("data-hz-type")); return; }
if(btn.hasAttribute("data-hz-back")) { step(Number(btn.getAttribute("data-hz-back"))); return; }
if(btn.hasAttribute("data-hz-goto") && !btn.disabled) { step(Number(btn.getAttribute("data-hz-goto"))); return; }
if(btn.hasAttribute("data-hz-restart")) { state={room:null,place:null,type:null,maxStep:1}; step(1); return; }
if(btn.hasAttribute("data-hz-result")){
if(!valid()) return;
var r=result();
root.querySelector("[data-hz-result-ctx]").textContent=tx(ROOMS[state.room].labelKey)+" · "+tx(PLABEL[state.place])+" · "+tx(TLABEL[state.type]==="pendant"&&(state.place==="island"||state.place==="corridor")?"typePendants":TLABEL[state.type]);
root.querySelector("[data-hz-result-value]").textContent=r.value;
root.querySelector("[data-hz-result-title]").textContent=r.title;
root.querySelector("[data-hz-result-body]").textContent=r.body;
root.querySelector("[data-hz-metrics]").innerHTML=(r.metrics||[]).map(function(m){return ''+m[0]+''+m[1]+'
';}).join("");
var art=root.querySelector("[data-hz-result-art]");
if(art) art.setAttribute("data-show", ART[state.place]||"center");
state.maxStep=5;
step(5);
}
});
}
if(document.readyState==="loading") document.addEventListener("DOMContentLoaded", boot);
else boot();
})();
También te puede gustar
Mangos
Lista de deseos