Valitse maa, kaupunki, aktiviteetti ja leggingsit. Valmistele asu kylmälle, sateelle tai tuulelle todellisten ennusteiden mukaan ilman GPS:ää tai tiliä.
Tarkista vaatteen merkintä ja todelliset olosuhteet. Ennuste ei takaa leggingsien vedenpitävyyttä tai lämmöneristystä.
Tutki säätä tarkemmin
Katso tuntien ennusteet, käytännöllinen vaatelista ja Yhdysvaltain viralliset hälytykset. Lataamme vain pyytämäsi tiedot.
📈 Tunnit ja seuraavat 7 päivää
Lämpötila, kosteus, sade, UV-säteily kirkkaalla taivaalla ja tuuli.
🎒 Lähtövalmis lista sään mukaan
Valmista lista tallennetun ennusteen perusteella ilman lisäostoksia tai puheluita.
⚠️ Yhdysvaltain viralliset hälytykset
Ajantasaiset National Weather Servicen varoitukset Yhdysvaltain paikkakunnille.
Lähteet: MET Norway, PlaceDB (CC0) ja NWS. Lista perustuu välimuistissa olevaan ennusteeseen, ei vaatekoetuksiin.
Miten neuvo valmistellaan
Yhdistämme ennusteen valintoihisi, emmekä keksi vaatteiden ominaisuuksia.
Todellinen sääennuste
Lämpötila, saatavilla oleva lämpötila, tuuli ja sademäärä MET Norjasta.
Leggingsisi
Ilmoitat, ovatko ne kevyet, normaalit vai lämpimät. Tämä ei ole laboratoriotesti.
Toimintasi
Kaupunkimatka ja pitkä kävely vaativat erilaiset kerrokset.
Mitä pukea leggingsien kanssa, kun on kylmä, sataa tai tuulee
Tarkista ensin todellinen sääennuste. Säädä kerrokset lämpötilan, sateen, tuulen ja ulkoilman mukaan. Kuidun prosenttiosuus ei kerro, kuinka lämpimät ne ovat.
❄️
Leggings-asut kylmään säähän
Lyhyelle matkalle sopivat normaalit leggingsit, neule ja takki. Lähellä nollaa astetta tai pitkällä kävelyllä harkitse oikeaa eristystä ja ulkokerrosta. Käytä suljettuja kenkiä, joissa on hyvä pito.
🌧️
Mitä pukea leggingsien kanssa, jos sataa
Useimmat leggingsit eivät ole vedenpitäviä. Lisää vettä hylkivä ulkokerros, suljetut kengät, joissa on hyvä pohja, ja vaatteita, jotka voit riisua sisätiloissa.
🌬️
Tuuliset tai leudot päivät
Tuulisella säällä tuulenpitävä takki voi olla tärkeämpi kuin kuitujen nimi. Leudolla säällä käytä mukavaa toppia ja kevyitä kerroksia, jotka on helppo riisua.
Kuusi asukokonaisuutta todellisiin tilanteisiin
Sääennuste on suuntaa antava, ei sääntö. Säädä kerrokset matkasi, toimintasi ja olemassa olevien vaatteidesi mukaan.
🌧️
Sade kaupungissa
Yhdistä läpikuultamattomat leggingsit neuleeseen, vettä hylkivään takkiin ja kenkiin, joissa on hyvä pito.
Ennen lähtöä: Märkä asfaltti ja lämmitetyt sisätilat vaativat erilaiset kerrokset.
Kyllä, riippuen vaatteesta ja altistuksesta. Ohuet legginsit saattavat tarvita lisäeristystä; kuidut eivät takaa lämpöä.
Sopivatko ne sateeseen?
Osana asua kyllä, mutta useimmat eivät ole vedenpitäviä. Lisää sopiva ulkokerros ja turvalliset kengät.
Miten suunnittelija toimii?
Valitse maa, kaupunki, aktiviteetti ja legginsit. LEGGIC yhdistää MET Norjan saatavilla olevat tiedot ehdottaakseen kerroksia ilman tuote- tai testiväitteitä.
Miten valita vaatteet ennusteen perusteella
Pelkkä lämpötila ei riitä: tuuli, sade, ulkoilman olosuhteet ja siirtymät sisä- ja ulkotilan välillä vaikuttavat mukavuuteen. Nämä ovat ohjeita, eivät takeita kankaan ominaisuuksista.
Viisi lähtökohtaa lämpötilan mukaan
Alle 0 °C
Legginsit ja kerrokset: Todella lämpimät vaatteet ja tarvittaessa ulkokerros.
Kengät ja istuvuus: Suljetut kengät, joissa on pito, ja lämpimät sukat.
0–5 °C
Legginsit ja kerrokset: Lämpimät legginsit tai suojakerrokset ja lämpöä altistuksen mukaan.
Kengät ja istuvuus: Suljetut kengät, jotka sopivat kosteuteen ja kylmyyteen.
6–12 °C
Legginsit ja kerrokset: Tavalliset legginsit, neule ja säädettävä takki.
Kengät ja istuvuus: Mukavat ja kestävät kengät sateella.
13–20 °C
Legginsit ja kerrokset: Tavalliset legginsit ja kevyet kerrokset.
Kengät ja istuvuus: Reitille sopivat kengät.
Yli 20 °C
Legginsit ja kerrokset: Kevyet legginsit, jos ne tuntuvat mukavilta, ilman ylikuumenemista.
Kengät ja istuvuus: Mukavat ja hyvin ilmastoidut kengät.
Lämpötila-alueet ovat suuntaa-antavia. Rasitus, tuuli, kangas ja henkilökohtaiset mieltymykset muuttavat todellista tunnetta; nämä eivät ole universaaleja raja-arvoja.
Kolme tarkistettavaa tekijää
🌬️Tuuli
Tuulenpitävä kerros voi olla tärkeämpi kuin kuituseos.
🌧️Sade
Legginsit eivät yleensä ole vedenpitäviä; lisää ulkokerros suojaamaan.
🕓Kesto
Lyhyellä matkalla ei tarvitse samoja kerroksia kuin pitkällä kävelyllä.
Viisi tarkistusta ennen lähtöä
SäässäoloLaske, kuinka kauan olet alttiina sääolosuhteille.
Varsinainen vaateTarkista kangas, peittävyys ja istuvuus.
JalkineetValitse sopiva pohja ja kiinnitys.
KerroksetOta mukaan vaatekappaleita, joita voit lisätä tai riisua.
LähdeTarkista ajantasainen paikallinen sääennuste.
Mitä etiketti ei kerro
Takaaako 80/20-sekoitus lämpimyyden?
Ei. Koostumus ei kerro lämmöneristyksestä.
Takaaako suurempi GSM vedenpitävyyden?
Ei. GSM mittaa massaa pinta-alayksikköä kohden, ei sateenkestävyyttä.
Takaaako enemmän elastaania paremman urheilusuorituksen?
Ei. Tärkeitä ovat rakenne, koko ja liikkuminen.
Katso sääennuste, kokeile vaatteitasi ja tutustu materiaali-, koko- ja hoito-oppaisiin.
Lisäpaikkakunnat ja likimääräiset koordinaatit: GeoNames, CC BY 4.0; toimituksellinen valinta. GeoNames.
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"Etsi lisää kaupunkeja","hint":"Etkö löydä paikkaasi? Etsi valitusta maasta tai lataa lisää maita. Ei GPS:ää eikä IP-hakua.","lookup":"Paikan nimi","search":"Etsi paikkoja","countries":"Lisää maita","empty":"Ei tuloksia.","loading":"Haetaan paikkoja…","choose":"Valitse tämä paikka","intro":"Tutki säätä tarkasti","lead":"Katso tuntien ennusteet, käytännöllinen vaatelista ja Yhdysvaltain viralliset hälytykset. Lataamme vain pyytämäsi tiedot.","forecast":"Tunnit ja seuraavat 7 päivää","forecastDesc":"Lämpötila, kosteus, sade, UV, selkeä taivas ja tuuli.","alerts":"Yhdysvaltain viralliset hälytykset","alertsDesc":"National Weather Servicen voimassa olevat varoitukset Yhdysvaltain paikkakunnille.","go":"Tarkista","hour":"Seuraavat tunnit (UTC)","days":"Seuraavat päivät (UTC-päivät)","unavailable":"Lähde tilapäisesti poissa käytöstä.","nothing":"Yhteensopivia arvoja ei ole.","notUS":"NWS-varoitukset ovat saatavilla vain Yhdysvalloissa.","noAlerts":"Ei aktiivisia virallisia ilmoituksia.","countryReady":"Maat-luettelo ladattu.","source":"Lähteet: MET Norway, PlaceDB (CC0) ja NWS. Luettelo käyttää välimuistissa olevaa ennustetta, ei vaatekoe-analyysejä.","pack":"Sään mukaan lähdön lista","packDesc":"Valmistele lista tallennetun ennusteen perusteella, ilman lisäostoksia tai puheluita.","packItems":["Leggingsisi","Lämmin vaate tai takki","Sadevaatekerros","Tuulitakki","Lämpimät sukat ja suljetut kengät","Mukavat kengät, joissa on pito"],"packCopy":"Kopioi lista","packSaved":"Lista kopioitu"},country=root.querySelector('#wa-country'),city=root.querySelector('#wa-city');
var input=root.querySelector('#wa-place-query'),matches=root.querySelector('.wa-place-matches'),status=root.querySelector('.wa-place-status-text');
function item(tag,value){var e=document.createElement(tag);e.textContent=String(value);return e;}
function query(){
var opt=city.selectedOptions[0],p=new URLSearchParams();
if(opt&&opt.dataset.placeId){p.set('country',country.value);p.set('place',opt.dataset.placeId);p.set('q',opt.dataset.query);}
else if(city.value)p.set('city',city.value);
return p;
}
var placeEpoch=0,panelEpoch={forecast:0,pack:0,alerts:0};
function clear(){placeEpoch++;for(var mode in panelEpoch)panelEpoch[mode]++;matches.replaceChildren();status.textContent='';for(var e of root.querySelectorAll('.wa-deep-output'))e.replaceChildren();}
country.addEventListener('change',clear);city.addEventListener('change',clear);
var find=root.querySelector('.wa-place-find');
find.addEventListener('click',async function(){
var value=input.value.trim();if(value.length<2){input.focus();return;}
var findIntent=++placeEpoch,chosenCountry=country.value;
status.textContent=L.loading;matches.replaceChildren();find.disabled=true;
try{
var r=await fetch('/api/weather-places?country='+encodeURIComponent(country.value)+'&q='+encodeURIComponent(value));
if(!r.ok)throw Error('places');var d=await r.json();if(findIntent!==placeEpoch||country.value!==chosenCountry)return;if(!d.places||!d.places.length)status.textContent=L.empty;
else status.textContent=d.places.length+' · '+L.choose;
for(const p of d.places||[]){
var li=item('li',''),b=item('button',p.name);
b.type='button';b.addEventListener('click',function(){
if(findIntent!==placeEpoch||country.value!==chosenCountry)return;
var opt=document.createElement('option');opt.value='p-'+p.country+'-'+p.id;opt.textContent=p.name;
opt.dataset.placeId=String(p.id);opt.dataset.query=value;city.append(opt);city.disabled=false;city.value=opt.value;
city.dispatchEvent(new Event('change',{bubbles:true}));status.textContent=p.name+' ✓';matches.replaceChildren();
});li.append(b);matches.append(li);
}
}catch{if(findIntent===placeEpoch)status.textContent=L.unavailable;}finally{find.disabled=false;}
});
input.addEventListener('keydown',function(e){if(e.key==='Enter'){e.preventDefault();find.click();}});
root.querySelector('.wa-all-countries').addEventListener('click',async function(){
var button=this;button.disabled=true;status.textContent=L.loading;
try{
var r=await fetch('/api/weather-countries');if(!r.ok)throw Error('countries');
var d=await r.json(),already=new Set(Array.from(country.options,x=>x.value)),extra=[];
var fmt=new Intl.DisplayNames([document.documentElement.lang||'en'],{type:'region'});
for(var c of d.countries||[]){if(!/^[A-Z]{2}$/.test(c.code)||already.has(c.code))continue;
var o=document.createElement('option');o.value=c.code;o.textContent=fmt.of(c.code)||c.name;
country.append(o);extra.push(c.code);}
window.__leggicMoreCountries=[...new Set([...(window.__leggicMoreCountries||[]),...extra])];
status.textContent=L.countryReady;button.hidden=true;
}catch{status.textContent=L.unavailable;button.disabled=false;}
});
function line(box,name,value){var row=item('div','');row.className='wa-deep-line';row.append(item('span',name),item('strong',value));box.append(row);}
for(const btn of root.querySelectorAll('.wa-deep-fetch')){
btn.addEventListener('click',async function(){
var mode=btn.dataset.mode,box=root.querySelector('.wa-deep-output[data-mode="'+mode+'"]');
var intent=++panelEpoch[mode],selectedCountry=country.value,selectedCity=city.value;
if(!city.value){box.textContent=L.empty;return;}
box.textContent=L.loading;btn.disabled=true;
var p=query(),url=mode==='alerts'?'/api/weather-alerts':'/api/weather-advice';
if(mode==='forecast'||mode==='pack')p.set('view','extended');
try{
var r=await fetch(url+'?'+p.toString());if(!r.ok)throw Error('source');
var d=await r.json();if(intent!==panelEpoch[mode]||city.value!==selectedCity||country.value!==selectedCountry)return;box.replaceChildren();
if(mode==='forecast'){
var a=item('div','');a.className='wa-deep-lines';
if(Number.isFinite(d.humidity))line(a,'💧',d.humidity+'%');
if(Number.isFinite(d.uvClearSky))line(a,'UV (clear sky)',d.uvClearSky);
if(Number.isFinite(d.windGustMs))line(a,'Wind gust',d.windGustMs+' m/s');
for(var h of (d.hourly||[]).slice(0,18))line(a,h.time.slice(5,16).replace('T',' ')+' UTC',h.temperatureC+' °C'+(Number.isFinite(h.precipChance)?' · '+h.precipChance+'%':''));
box.append(a);
var b=item('div','');b.className='wa-deep-lines';
for(var day of d.daily||[])line(b,day.dayUTC,day.lowC+' / '+day.highC+' °C');
box.append(item('h4',L.days),b);
}else if(mode==='pack'){
if(!Number.isFinite(d.temperatureC))throw Error('missing temperature');
var items=[L.packItems[0]];
if(d.temperatureC<10)items.push(L.packItems[1]);
if((Number.isFinite(d.precipMm)&&d.precipMm>=0.2)||/rain|snow|sleet/i.test(d.symbol||''))items.push(L.packItems[2]);
if(d.windMs>=8)items.push(L.packItems[3]);
items.push(d.temperatureC<5?L.packItems[4]:L.packItems[5]);
var list=item('ul','');list.className='wa-packing-list';
for(const label of [...new Set(items)]){var li=item('li',label);list.append(li);}
box.append(list);
var copy=item('button',L.packCopy);copy.type='button';copy.className='wa-pack-copy';
copy.addEventListener('click',async function(){try{
await navigator.clipboard.writeText(items.join('\n'));copy.textContent=L.packSaved;
}catch{copy.textContent=L.unavailable;}});
box.append(copy);
}else{
if(!d.supported){box.textContent=L.notUS;return;}
if(!d.alerts?.length){box.textContent=L.noAlerts;return;}
for(var a of d.alerts)line(box,a.severity,a.event+': '+a.headline);
var link=item('a','National Weather Service');link.href='https://www.weather.gov/';link.rel='noopener noreferrer';box.append(link);
}
}catch{if(intent===panelEpoch[mode])box.textContent=L.unavailable;}finally{btn.disabled=false;}
});
}
})();document.addEventListener('DOMContentLoaded',()=>{setTimeout(()=>{
// The deferred app.js initializes its tool on DOMContentLoaded; run just after it.
const button=document.getElementById('buildLook');if(!button)return;
const labels={it:'Abbinamento',de:'Outfit',es:'Conjunto',fr:'Tenue',en:'Look'};
const enhance=()=>{
const result=document.querySelector('#lookResult .result');
if(!result||result.querySelector('.style-look-grid'))return;
const items=[...result.querySelectorAll('ol li')].slice(0,3);
if(!items.length)return;
const selectedText=id=>{
const element=document.getElementById(id);
return element?.selectedOptions?.[0]?.textContent?.trim()||element?.value||'';
};
const metaText=[selectedText('color'),selectedText('season'),selectedText('shoes')].filter(Boolean).join(' · ');
const grid=document.createElement('div');grid.className='style-look-grid';
items.forEach((item,index)=>{
const card=document.createElement('article');card.className='style-look';
const meta=document.createElement('span');meta.className='style-look-meta';meta.textContent=metaText;
const content=document.createElement('div'),title=document.createElement('b'),copy=document.createElement('p');
title.textContent=(labels[document.documentElement.lang]||labels.en)+' '+(index+1);
copy.innerHTML=item.innerHTML;
content.append(title,copy);card.append(meta,content);grid.append(card);
});
result.querySelector('ol')?.replaceWith(grid);
};
const next=()=>setTimeout(enhance,0);
button.addEventListener('click',next);
for(const id of ['color','season','occasion','shoes','finish'])document.getElementById(id)?.addEventListener('change',next);
next();
},0);});(()=>{const root=document.querySelector('header.site-header [data-lp]');if(!root)return;const t=root.querySelector('.lp-trigger'),d=root.querySelector('.lp-dialog');if(!d||typeof d.showModal!=='function')return;const f=d.querySelector('.lp-filter'),items=[...d.querySelectorAll('.lp-item')],groups=[...d.querySelectorAll('.lp-group')],empty=d.querySelector('.lp-empty');const norm=s=>s.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');const apply=()=>{const q=norm(f.value.trim());let shown=0;items.forEach(a=>{const ok=!q||norm(a.dataset.names+' '+a.textContent).includes(q);a.parentElement.hidden=!ok;if(ok)shown++;});groups.forEach(g=>{g.hidden=![...g.querySelectorAll('li')].some(li=>!li.hidden)});empty.hidden=shown>0;};t.addEventListener('click',e=>{if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;e.preventDefault();d.showModal();f.value='';apply();if(window.matchMedia('(pointer:fine)').matches)f.focus();else d.querySelector('.lp-item.is-current')?.scrollIntoView({block:'center'});});d.querySelector('.lp-close').addEventListener('click',()=>d.close());d.addEventListener('click',e=>{if(e.target===d)d.close()});f.addEventListener('input',apply);f.addEventListener('keydown',e=>{if(e.key==='Enter'){const first=items.find(a=>!a.parentElement.hidden);if(first){e.preventDefault();first.click();}}});d.addEventListener('close',()=>t.focus());})();