Chọn quốc gia, thành phố, hoạt động và quần legging. Chuẩn bị bộ đồ phù hợp với lạnh, mưa hoặc gió dựa trên dự báo thực tế, không cần GPS hay tài khoản.
Kiểm tra nhãn mác và điều kiện thực tế. Dự báo không chứng minh khả năng chống thấm hay giữ nhiệt của quần legging.
Khám phá thời tiết chi tiết
Xem dự báo theo giờ, danh sách quần áo tiện lợi và cảnh báo chính thức của Mỹ. Chúng tôi chỉ tải những gì bạn yêu cầu.
📈 Giờ và 7 ngày tới
Nhiệt độ, độ ẩm, mưa, tia UV khi trời quang đãng và gió.
🎒 Danh sách chuẩn bị theo thời tiết
Chuẩn bị danh sách dựa trên dự báo đã lưu, không cần mua sắm hay gọi điện thêm.
⚠️ Cảnh báo chính thức của Mỹ
Thông báo hiện hành từ National Weather Service cho các địa điểm tại Mỹ.
Nguồn: MET Norway, PlaceDB (CC0) và NWS. Danh sách dùng dự báo lưu trữ, không phải thử nghiệm quần áo.
Cách chuẩn bị lời khuyên
Chúng tôi kết hợp dự báo với lựa chọn của bạn, không thêm thắt tính năng quần áo.
Dự báo thực tế
Nhiệt độ, cảm giác nhiệt, gió và lượng mưa từ MET Norway.
Quần legging của bạn
Bạn cho biết legging nhẹ, bình thường hay giữ nhiệt. Đây không phải là thử nghiệm trong phòng thí nghiệm.
Hoạt động của bạn
Một chuyến đi trong thành phố và một cuộc đi bộ dài đòi hỏi các lớp trang phục khác nhau.
Mặc gì với legging khi trời lạnh, mưa hoặc có gió
Trước tiên hãy xem dự báo thực tế. Điều chỉnh các lớp trang phục theo nhiệt độ, mưa, gió và thời tiết bên ngoài. Tỷ lệ sợi không đo được độ ấm của quần.
❄️
Bộ đồ legging cho trời lạnh
Với chuyến đi ngắn, legging bình thường, áo len và áo khoác có thể đủ. Gần 0 độ hoặc khi đi bộ dài, hãy cân nhắc lớp cách nhiệt thực sự và áo khoác ngoài. Mang giày kín có đế bám tốt.
🌧️
Mặc gì với legging khi trời mưa
Hầu hết legging không chống nước. Thêm lớp áo khoác ngoài chống thấm, giày kín có đế tốt và quần áo có thể cởi khi vào trong nhà.
🌬️
Ngày có gió hoặc thời tiết dịu dàng
Khi có gió, áo khoác chắn gió có thể quan trọng hơn loại sợi. Thời tiết dịu dàng, mặc áo thoải mái và các lớp nhẹ dễ cởi.
Sáu bộ đồ cho các tình huống thực tế
Dự báo chỉ là tham khảo, không phải đồng phục. Điều chỉnh lớp trang phục theo hành trình, hoạt động và quần áo bạn có.
🌧️
Mưa trong thành phố
Kết hợp legging không trong suốt với áo len, áo khoác chống nước và giày có độ bám tốt.
Trước khi ra ngoài: Mặt đường ướt và không gian trong nhà có sưởi cần các lớp trang phục khác nhau.
Có, tùy thuộc vào loại trang phục và thời gian tiếp xúc với thời tiết. Loại mỏng có thể cần lớp cách nhiệt; sợi vải không đảm bảo giữ ấm.
Có phù hợp khi trời mưa không?
Là một phần của bộ đồ thì có, nhưng hầu hết legging không chống thấm nước. Thêm một lớp ngoài phù hợp và giày an toàn.
Bộ lập kế hoạch hoạt động thế nào?
Chọn quốc gia, thành phố, hoạt động và legging. LEGGIC kết hợp dữ liệu có sẵn từ MET Norway để gợi ý các lớp mặc mà không tự tạo ra thử nghiệm sản phẩm.
Cách quyết định trang phục dựa trên dự báo thời tiết
Chỉ số nhiệt độ riêng lẻ không đủ: gió, mưa, thời tiết ngoài trời và sự thay đổi giữa trong nhà và ngoài trời ảnh hưởng đến sự thoải mái. Đây là hướng dẫn, không phải đảm bảo về chất liệu vải.
Năm điểm khởi đầu theo nhiệt độ
Dưới 0 °C
Legging và các lớp mặc: Trang phục thực sự giữ nhiệt và bảo vệ bên ngoài khi cần thiết.
Giày dép và vừa vặn: Giày kín có độ bám tốt và tất giữ ấm.
0–5 °C
Legging và các lớp mặc: Legging giữ nhiệt hoặc lớp bảo vệ và áo ấm tùy theo mức độ tiếp xúc.
Giày dép và vừa vặn: Giày kín phù hợp với độ ẩm và lạnh.
6–12 °C
Legging và các lớp mặc: Legging thường, áo len và áo khoác linh hoạt.
Giày dép và vừa vặn: Giày thoải mái và bền nếu trời mưa.
13–20 °C
Legging và các lớp mặc: Legging bình thường và các lớp nhẹ.
Giày dép và vừa vặn: Giày phù hợp với lộ trình đi lại.
Trên 20 °C
Legging và các lớp mặc: Legging nhẹ nếu cảm thấy thoải mái, không bị nóng quá.
Giày dép và vừa vặn: Giày thoáng khí và thoải mái.
Các khoảng nhiệt độ chỉ mang tính tham khảo. Mức độ vận động, gió, chất liệu vải và sở thích cá nhân thay đổi cảm giác thực tế; không phải ngưỡng áp dụng chung.
Ba yếu tố cần kiểm tra
🌬️Gió
Một lớp áo chống gió có thể quan trọng hơn hỗn hợp sợi vải.
🌧️Mưa
Legging thường không chống thấm nước; hãy thêm lớp bảo vệ bên ngoài.
🕓Thời gian
Chuyến đi ngắn không cần mặc nhiều lớp như khi đi bộ đường dài.
Năm kiểm tra trước khi ra ngoài
Thời gian ngoài trờiTính xem bạn sẽ tiếp xúc với thời tiết bao lâu.
Trang phục thậtKiểm tra chất liệu, độ che phủ và độ vừa vặn.
Giày dépChọn đế và khóa phù hợp.
Lớp áoMang theo những món có thể cởi ra hoặc mặc thêm.
Nguồn tinTham khảo dự báo thời tiết cập nhật của địa phương.
Những điều nhãn mác không tiết lộ
Hỗn hợp 80/20 có đảm bảo giữ ấm không?
Không. Thành phần không đo được khả năng cách nhiệt.
Chỉ số GSM cao hơn có đảm bảo chống thấm nước không?
Không. GSM đo khối lượng trên bề mặt, không phải khả năng chống mưa.
Elastane nhiều hơn có đảm bảo hiệu suất thể thao không?
Không. Cấu trúc, kích cỡ và sự linh hoạt mới quan trọng.
Hãy xem dự báo, thử trang phục và tham khảo các hướng dẫn về chất liệu, kích cỡ và cách chăm sóc.
Các địa điểm bổ sung và tọa độ ước lượng: GeoNames, CC BY 4.0; lựa chọn biên tập. GeoNames.
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"Tìm thêm thành phố","hint":"Không tìm thấy địa phương của bạn? Tìm trong quốc gia đã chọn hoặc tải thêm quốc gia. Không dùng GPS hay tìm kiếm theo IP.","lookup":"Tên địa điểm","search":"Tìm địa phương","countries":"Thêm quốc gia","empty":"Không có kết quả.","loading":"Đang tìm địa điểm…","choose":"Chọn địa điểm này","intro":"Khám phá thời tiết chi tiết","lead":"Xem dự báo theo giờ, danh sách quần áo tiện lợi và cảnh báo chính thức của Mỹ. Chỉ tải những gì bạn yêu cầu.","forecast":"Giờ và 7 ngày tới","forecastDesc":"Nhiệt độ, độ ẩm, mưa, tia UV với trời quang đãng và gió.","alerts":"Cảnh báo chính thức của Mỹ","alertsDesc":"Thông báo hiện hành từ National Weather Service cho các địa phương ở Mỹ.","go":"Tra cứu","hour":"Giờ tới (UTC)","days":"Ngày tới (theo ngày UTC)","unavailable":"Nguồn tạm thời không khả dụng.","nothing":"Không có giá trị tương thích.","notUS":"Thông báo NWS chỉ có ở Hoa Kỳ.","noAlerts":"Không có cảnh báo chính thức nào đang hoạt động.","countryReady":"Danh sách các quốc gia đã được tải.","source":"Nguồn: MET Norway, PlaceDB (CC0) và NWS. Danh sách sử dụng dự báo lưu trong bộ nhớ đệm, không phải thử đồ.","pack":"Danh sách đi ra ngoài theo thời tiết","packDesc":"Chuẩn bị danh sách dựa trên dự báo đã lưu, không cần mua sắm hay gọi thêm.","packItems":["Quần legging của bạn","Trang phục giữ ấm hoặc áo khoác","Lớp ngoài chống mưa","Áo khoác chắn gió","Tất ấm và giày kín","Giày thoải mái có độ bám"],"packCopy":"Sao chép danh sách","packSaved":"Đã sao chép danh sách"},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());})();