Periksa label dan kondisi sebenarnya. Prakiraan tidak menunjukkan ketahanan air atau kemampuan termal legging.
Jelajahi cuaca secara detail
Lihat prakiraan per jam, daftar pakaian praktis, dan peringatan resmi AS. Kami hanya memuat apa yang kamu minta.
📈 Jam dan 7 hari ke depan
Suhu, kelembapan, hujan, UV dengan langit cerah, dan angin.
🎒 Daftar siap pakai sesuai cuaca
Siapkan daftar menggunakan prakiraan yang disimpan, tanpa belanja atau panggilan tambahan.
⚠️ Peringatan resmi AS
Pemberitahuan aktif dari National Weather Service untuk lokasi di AS.
Sumber: MET Norway, PlaceDB (CC0) dan NWS. Daftar menggunakan prakiraan cache, bukan uji coba pakaian.
Bagaimana saran disiapkan
Kami menggabungkan prakiraan dengan pilihanmu, tanpa mengada-ada kemampuan pakaian.
Prakiraan Nyata
Suhu, suhu terasa yang tersedia, angin, dan curah hujan dari MET Norway.
Leggingmu
Kamu menunjukkan apakah legging ringan, normal, atau termal. Ini bukan uji laboratorium.
Aktivitasmu
Perjalanan di kota dan jalan kaki jauh membutuhkan lapisan pakaian yang berbeda.
Apa yang dipakai dengan legging saat dingin, hujan, atau berangin
Periksa dulu prakiraan nyata. Sesuaikan lapisan pakaian dengan suhu, hujan, angin, dan cuaca luar. Persentase serat tidak mengukur seberapa hangat pakaian itu.
❄️
Set legging untuk cuaca dingin
Untuk perjalanan singkat, legging normal, sweater, dan jaket bisa cukup. Dekat nol derajat atau saat jalan kaki jauh, pertimbangkan isolasi nyata dan lapisan luar. Gunakan sepatu tertutup dengan tapak yang baik.
🌧️
Apa yang dipakai dengan legging saat hujan
Sebagian besar legging tidak tahan air. Tambahkan lapisan luar tahan air, sepatu tertutup dengan sol yang bagus, dan pakaian yang bisa dilepas di dalam ruangan.
🌬️
Hari berangin atau sedang
Saat berangin, jaket windbreaker bisa lebih penting daripada jenis serat. Saat cuaca sedang, pakailah atasan yang nyaman dan lapisan ringan yang mudah dilepas.
Enam set untuk situasi nyata
Prakiraan adalah referensi, bukan seragam. Sesuaikan lapisan dengan rute, aktivitas, dan pakaian yang sudah kamu miliki.
🌧️
Hujan di kota
Padukan legging buram dengan sweater, jaket tahan air, dan sepatu dengan traksi baik.
Sebelum keluar: Jalan basah dan ruangan ber-AC memerlukan lapisan berbeda.
Lokasi tambahan dan koordinat perkiraan: GeoNames, CC BY 4.0; pilihan editorial. GeoNames.
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"Cari kota lain","hint":"Tidak menemukan lokasi Anda? Cari di negara yang dipilih atau muat lebih banyak negara. Tanpa GPS atau pencarian berdasarkan IP.","lookup":"Nama tempat","search":"Cari lokasi","countries":"Negara lain","empty":"Tidak ada hasil.","loading":"Mencari lokasi…","choose":"Pilih lokasi ini","intro":"Jelajahi cuaca secara detail","lead":"Cek prakiraan per jam, daftar pakaian praktis, dan peringatan resmi AS. Kami hanya memuat yang kamu minta.","forecast":"Jam dan 7 hari ke depan","forecastDesc":"Suhu, kelembapan, hujan, UV dengan langit cerah dan angin.","alerts":"Peringatan resmi AS","alertsDesc":"Pemberitahuan aktif dari National Weather Service untuk lokasi di AS.","go":"Periksa","hour":"Jam berikutnya (UTC)","days":"Hari berikutnya (tanggal UTC)","unavailable":"Sumber sementara tidak tersedia.","nothing":"Tidak ada nilai yang cocok.","notUS":"Peringatan NWS hanya tersedia di Amerika Serikat.","noAlerts":"Tidak ada peringatan resmi yang aktif.","countryReady":"Daftar negara telah dimuat.","source":"Sumber: MET Norway, PlaceDB (CC0) dan NWS. Daftar menggunakan prakiraan yang disimpan dalam cache, bukan uji coba pakaian.","pack":"Daftar untuk keluar sesuai cuaca","packDesc":"Siapkan daftar menggunakan prakiraan yang tersimpan, tanpa pembelian atau panggilan tambahan.","packItems":["Leggingmu","Pakaian hangat atau jaket","Lapisan luar pelindung hujan","Jaket anti angin","Kaos kaki hangat dan sepatu tertutup","Sepatu nyaman dengan cengkeraman baik"],"packCopy":"Salin daftar","packSaved":"Daftar disalin"},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());})();