[{"data":1,"prerenderedAt":100},["ShallowReactive",2],{"project-pt-climao":3},{"id":4,"title":5,"author":6,"body":7,"company":78,"date":79,"description":80,"extension":81,"highlight":82,"meta":83,"navigation":84,"path":85,"priority":86,"role":87,"section":88,"seo":89,"sitemap":90,"stem":91,"tags":92,"thumbnail":28,"year":98,"__hash__":99},"work\u002Fwork\u002Fpt\u002Fclimao.md","Climão","Salguento",{"type":8,"value":9,"toc":71},"minimark",[10,15,19,22,33,37,45,52,56,59,62],[11,12,14],"h2",{"id":13},"projeto","Projeto",[16,17,18],"p",{},"Climão é um dashboard para consultar as condições atuais e a previsão de cinco dias na localização do usuário ou em cidades pesquisadas. A interface reúne temperatura, sensação térmica, umidade, vento, pressão, nascer e pôr do sol, além de um gráfico das próximas horas.",[16,20,21],{},"Buscas recentes e até dez cidades favoritas ficam salvas localmente. O aplicativo também oferece temas claro e escuro, estados de carregamento e erro e controles navegáveis por teclado.",[16,23,24,29],{},[25,26],"img",{"alt":27,"src":28},"Identidade visual do Climão.","\u002Fimg\u002Fwork\u002Fclimao\u002Fcover-climao.svg",[30,31,32],"em",{},"Identidade visual do projeto.",[11,34,36],{"id":35},"arquitetura-técnica","Arquitetura Técnica",[16,38,39,40,44],{},"O frontend é uma SPA em React e TypeScript construída com Vite. O React Router organiza o dashboard e as páginas de cidade. O TanStack Query separa o estado remoto por coordenadas, mantém os dados em cache por cinco minutos e cancela requisições obsoletas com ",[41,42,43],"code",{},"AbortSignal",". A API do OpenWeatherMap fornece clima atual, previsão e geocodificação.",[16,46,47,48,51],{},"A interface combina Tailwind CSS, primitivas Radix e Recharts. Favoritos e histórico usam ",[41,49,50],{},"localStorage",", mantendo a experiência sem conta ou backend. A busca possui debounce para reduzir chamadas durante a digitação, e as coordenadas recebidas pela URL são validadas antes de consultar a API.",[11,53,55],{"id":54},"manutenção-e-desempenho","Manutenção e Desempenho",[16,57,58],{},"Uma revisão técnica adicionou lockfile reproduzível, atualizou a cadeia de lint para ESLint 10, migrou os gráficos para Recharts 3 e atualizou bibliotecas de interface compatíveis. A divisão por rota e o carregamento exclusivo das ferramentas de desenvolvimento reduziram o maior arquivo JavaScript gerado de aproximadamente 789 kB para 380 kB.",[16,60,61],{},"O projeto passa por ESLint sem avisos, compilação TypeScript e build de produção. Migrações maiores — React 19, Tailwind 4, Vite 8 e TypeScript 7 — permanecem separadas para testes visuais e de navegador dedicados.",[16,63,64],{},[65,66,70],"a",{":rel":67,":target":68,"href":69},"noreferrer","_blank","https:\u002F\u002Fgithub.com\u002Fsalguento\u002Fclimao","GitHub",{"title":72,"searchDepth":73,"depth":73,"links":74},"",2,[75,76,77],{"id":13,"depth":73,"text":14},{"id":35,"depth":73,"text":36},{"id":54,"depth":73,"text":55},"Autoral","2025-01","Dashboard meteorológico responsivo com geolocalização, busca e cidades favoritas","md",false,{},true,"\u002Fwork\u002Fpt\u002Fclimao","10","Desenvolvedor","engineering",{"title":5,"description":80},{"loc":85},"work\u002Fpt\u002Fclimao",[93,94,95,96,97],"React","TypeScript","Vite","TanStack Query","TailwindCSS",2025,"5hrDO6xp6o-c0Q3aOjIvza4j5eYwRim2St0pLs-KaS4",1785351609255]