{"id":320414,"date":"2021-03-28T21:00:16","date_gmt":"2021-03-28T21:00:16","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=320414"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=320414","title":{"rendered":"\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0441\u0432\u0435\u0436\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0437 \u043c\u0438\u0440\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u2116460 (22 \u2014 28 \u043c\u0430\u0440\u0442\u0430 2021)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 \u043e\u043a\u043e\u043b\u043e \u043d\u0435\u0433\u043e.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2l\/zx\/2v\/2lzx2vlcty8uilhkgbwjjg5_0xy.jpeg\"><\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p><a href=\"#media\"><b>\u041c\u0435\u0434\u0438\u0430<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#development\"><b>\u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#css\"><b>CSS<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#js\"><b>JavaScript<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#browser\"><b>\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b<\/b><\/a><\/p>\n<p>  <\/p>\n<h3><font color=\"#349A48\"><a name=\"media\"><\/a>\u041c\u0435\u0434\u0438\u0430<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/underjs.ru\/podcast\/2021\/03\/25\/vitaly-slobodin.html\" rel=\"nofollow noopener noreferrer\">UnderJS Podcast #30 \u2014 Billing \u0438 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f \u2014 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0441 \u0412\u0438\u0442\u0430\u043b\u0438\u0435\u043c \u0421\u043b\u043e\u0431\u043e\u0434\u0438\u043d\u044b\u043c. <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/csssr\/firefox-87-grid-na-primerakh-smert-nodejs-protsessov-problema-js-bibliotek-compat2021\" rel=\"nofollow noopener noreferrer\"> \u00ab\u041d\u043e\u0432\u043e\u0441\u0442\u0438 512\u00bb \u043e\u0442 CSSSR: Firefox 87, Grid \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u00ab\u0441\u043c\u0435\u0440\u0442\u044c\u00bb Node.js-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 JS-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, Compat2021<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/frontend_u\/e178\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00ab\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u042e\u043d\u043e\u0441\u0442\u044c\u00bb #178: \u0421\u0443\u043f\u0435\u0440-\u0432\u044b\u043f\u0443\u0441\u043a. \u041c\u0430\u0441\u0441\u0438\u0432\u044b \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0420\u0430\u0443\u043d\u0434 1<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/web-standards\/episode-274\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00ab\u0412\u0435\u0431-\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b\u00bb \u2116274. \u041d\u043e\u0432\u0438\u043d\u043a\u0438 V8, \u0431\u0435\u0442\u0430 Chrome 90 \u0438 \u0432\u0435\u0431-\u0431\u0430\u043d\u0434\u043b\u044b, \u043d\u0435\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 PWA \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 CSS Nesting<\/a><\/p>\n<h3><font color=\"#349A48\"><a name=\"development\"><\/a>\u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/546974\/\">14 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0449\u0438\u0445 \u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0438\u0445 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2021\/03\/eleventy-static-site-generator\/\" rel=\"nofollow noopener noreferrer\">\u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 Eleventy Static Site Generator<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/tonsky.me\/blog\/emoji\/\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c Emoji <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.lafoo.com\/the-end-of-amp\/\" rel=\"nofollow noopener noreferrer\">\u041a\u043e\u043d\u0435\u0446 AMP<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/interactive-web-components-are-easier-than-you-think\/\" rel=\"nofollow noopener noreferrer\">\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0431-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.getbootstrap.com\/2021\/03\/23\/bootstrap-5-beta-3\/\" rel=\"nofollow noopener noreferrer\">Bootstrap 5 Beta 3<\/a>, <a href=\"https:\/\/designmodo.com\/bootstrap-5-layout\/\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043b\u0435\u0430\u0439\u0443\u0442\u0430 \u0432 Bootstrap 5<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.bitsrc.io\/5-different-tools-for-frontend-monitoring-79db94014d\" rel=\"nofollow noopener noreferrer\">5 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2021\/03\/going-headless-use-cases\/\" rel=\"nofollow noopener noreferrer\">Headless: \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043e\u043d \u043d\u0443\u0436\u0435\u043d<\/a><\/p>\n<ul>\n<li><strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/fingerprintjs.com\/blog\/audio-fingerprinting\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a Web Audio API \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/portswigger.net\/research\/hidden-oauth-attack-vectors\" rel=\"nofollow noopener noreferrer\">\u0421\u043a\u0440\u044b\u0442\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0430\u0442\u0430\u043a \u0447\u0435\u0440\u0435\u0437 OAuth <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.bitsrc.io\/have-we-lost-the-privacy-battle-to-supercookies-407968d76ea6\" rel=\"nofollow noopener noreferrer\">\u041d\u0435\u0443\u0436\u0435\u043b\u0438 \u043c\u044b \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u043b\u0438 \u0431\u0438\u0442\u0432\u0443 \u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0443\u043f\u0435\u0440-\u043a\u0443\u043a\u0430\u043c?<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/securitytxt.org\/\" rel=\"nofollow noopener noreferrer\">security.txt: \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 <\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2021\/03\/boost-media-performance\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 \u043f\u0440\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u043c \u0431\u044e\u0434\u0436\u0435\u0442\u0435 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/calibreapp.com\/blog\/css-performance\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c CSS<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> \u0423 \u043a\u043e\u0433\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 F1 \u0432 2021 \u0433\u043e\u0434\u0443? <a href=\"https:\/\/jakearchibald.com\/2021\/f1-perf-part-1\/\" rel=\"nofollow noopener noreferrer\">\u0427\u0430\u0441\u0442\u044c 1: Methodology &amp; Alpha Tauri<\/a>, <a href=\"https:\/\/jakearchibald.com\/2021\/f1-perf-part-2\/\" rel=\"nofollow noopener noreferrer\">\u0427\u0430\u0441\u0442\u044c 2: Alfa Romeo <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.bitsrc.io\/tools-to-measure-core-web-vitals-c84c7a845f02\" rel=\"nofollow noopener noreferrer\">4 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f Core Web Vitals<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2021\/03\/complete-guide-accessible-front-end-components\/\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/accessibility.civicactions.com\/posts\/automated-accessibility-testing-leveraging-github-actions-and-pa11y-ci-with-axe\" rel=\"nofollow noopener noreferrer\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 GitHub Actions \u0438 pa11y-ci \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e axe<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/a11y-style-guide.com\/style-guide\/section-resources.html\" rel=\"nofollow noopener noreferrer\">A11y Style Guide<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/changelog.com\/jsparty\/167\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00abJS Party\u00bb \u2013 \u042d\u043f\u0438\u0437\u043e\u0434 #167: 10 \u043e\u0448\u0438\u0431\u043e\u043a a11y, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<h3><font color=\"#349A48\"><a name=\"css\"><\/a>CSS<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/storage3\/976\/d3e\/38a\/976d3e38a34b003f86f91795524af9f8.gif\"> <a href=\"https:\/\/www.youtube.com\/watch?v=-6V7EvfUs3k\" rel=\"nofollow noopener noreferrer\">\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 CSS. \u041c\u0435\u0447\u0442\u044b \u0441\u0431\u044b\u0432\u0430\u044e\u0442\u0441\u044f: \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u0435, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/web.dev\/compat2021\/\" rel=\"nofollow noopener noreferrer\">Compat2021: \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u044f\u0442\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0432\u0435\u0431\u0435 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/taming-blend-modes-difference-and-exclusion\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0438\u0440\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f: `difference` \u0438`exclusion`<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/areknawo.com\/top-4-tailwind-css-alternatives-for-2021\/\" rel=\"nofollow noopener noreferrer\">4 \u043b\u0443\u0447\u0448\u0438\u0445 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Tailwind CSS \u043d\u0430 2021 \u0433\u043e\u0434 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/ishadeed.com\/article\/handling-text-over-image-css\/\" rel=\"nofollow noopener noreferrer\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0440\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 CSS<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.sarasoueidan.com\/blog\/horizontal-rules\/\" rel=\"nofollow noopener noreferrer\">\u041d\u0435\u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u0439<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-irl.info\/animating-underlines\/\" rel=\"nofollow noopener noreferrer\">\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/adrianroselli.com\/2021\/03\/under-engineered-select-menus.html\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b select<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/image-fragmentation-effect-with-css-masks-and-custom-properties\/\" rel=\"nofollow noopener noreferrer\"> \u042d\u0444\u0444\u0435\u043a\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0441\u043e\u043a CSS \u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432<\/a><\/p>\n<h3><font color=\"#349A48\"><a name=\"js\"><\/a>JavaScript<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/548692\/\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c node.js \u0441\u0430\u043c \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0432 \u043d\u0435\u043c<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/alistapart.com\/article\/human-readable-javascript\/\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 JavaScript: \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0434\u0432\u0443\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.codica.com\/blog\/top-javascript-trends\/\" rel=\"nofollow noopener noreferrer\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u043d\u0434\u044b JavaScript, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0442\u043e\u0438\u0442 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0432 2021 \u0433\u043e\u0434\u0443 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.searchenginejournal.com\/javascript-seo-debugging-tools\/398965\/#close\" rel=\"nofollow noopener noreferrer\">JavaScript SEO: \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/evan-brass.medium.com\/the-most-cursed-javascript-d891e15ab532\" rel=\"nofollow noopener noreferrer\">\u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u043a\u043b\u044f\u0442\u044b\u0439 JavaScript<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.logrocket.com\/new-es2021-features-you-may-have-missed\/\" rel=\"nofollow noopener noreferrer\">\u041d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ES2021, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c<\/a><\/p>\n<ul>\n<li><strong>React<\/strong><br \/>   \u2022 <a href=\"https:\/\/github.com\/harryheman\/React-Total\" rel=\"nofollow noopener noreferrer\">\u0422\u043e\u0442\u0430\u043b\u044c\u043d\u044b\u0439 React \u2014 \u0420\u0435\u0441\u0443\u0440\u0441 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f React.js \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0438\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/isamatov.com\/simple-tips-for-writing-clean-react-components\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u043e\u0441\u0442\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b \u043f\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0447\u0438\u0441\u0442\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 React<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.telerik.com\/blogs\/data-visualization-build-react-graphs-easy-way\" rel=\"nofollow noopener noreferrer\">\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445: \u043b\u0435\u0433\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u043d\u0430 React<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/wattenberger.com\/blog\/react-and-d3\" rel=\"nofollow noopener noreferrer\">React + D3.js<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/yogeshchavan.hashnode.dev\/how-to-build-accordion-in-react-from-scratch-without-using-any-external-library\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u043a\u043a\u043e\u0440\u0434\u0435\u043e\u043d \u0441 \u043d\u0443\u043b\u044f \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/codereviewio.hashnode.dev\/the-advanced-guide-to-react-context-with-hooks\" rel=\"nofollow noopener noreferrer\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e React Context \u0441 \u0445\u0443\u043a\u0430\u043c\u0438.<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/storage3\/976\/d3e\/38a\/976d3e38a34b003f86f91795524af9f8.gif\"> <a href=\"https:\/\/www.youtube.com\/watch?v=P2x_lmvVOfE\" rel=\"nofollow noopener noreferrer\">\u0421\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 JUNIOR FRONTEND REACT \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Vue<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2021\/03\/reactivity-in-vue\/\" rel=\"nofollow noopener noreferrer\">\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432\u043e Vue<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/vuejsdevelopers.com\/2021\/03\/23\/nuxt-vite-fastify\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c Nuxt Hacker News \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Fastify, Vite \u0438 Vue 3<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Angular<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/milandr\/blog\/549048\/\">\u0421\u0435\u043c\u0438\u043b\u0435\u0442\u043d\u0438\u043c\u0438 \u0448\u0430\u0433\u0430\u043c\u0438: \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 JSP + Angular JS \u043d\u0430 Angular 2+<\/a><br \/>   \u2022 <a href=\"https:\/\/medium.com\/fafnur\/banx-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-nx-workspace-%D0%B4%D0%BB%D1%8F-angular-26a12cc74e15\" rel=\"nofollow noopener noreferrer\">Banx. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Nx workspace \u0434\u043b\u044f Angular<\/a><br \/>   \u2022 <a href=\"https:\/\/medium.com\/fafnur\/banx-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D1%85-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB-%D0%B2-eslint-%D0%B2-nx-%D0%B2-angular-bc669f82e361\" rel=\"nofollow noopener noreferrer\">Banx. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0432 eslint \u0432 Nx \u0432 Angular<\/a><br \/>   \u2022 <a href=\"https:\/\/medium.com\/fafnur\/banx-%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-angular-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-%D0%BC%D0%BE%D0%BD%D0%BE%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8-nx-18d70eea49b1\" rel=\"nofollow noopener noreferrer\">Banx. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 Angular \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Nx<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/posts\/1443\/how-we-make-our-base-components-more-flexible-controllers-concept-in-angular\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438: \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0432 Angular<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.logrocket.com\/angular-lifecycle-hooks\/\" rel=\"nofollow noopener noreferrer\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0445\u0443\u043a\u043e\u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0432 Angular <\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Ember<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.emberjs.com\/the-ember-times-issue-176\/\" rel=\"nofollow noopener noreferrer\">The Ember Times \u2014 Issue No. 176<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.salsify.com\/blog\/engineering\/introducing-glint-a-typed-template-solution-for-glimmerx-and-ember\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c: Glint, typed-template \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f GlimmerX \u0438 Ember<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Svelte<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/svelte.dev\/blog\/sveltekit-beta\" rel=\"nofollow noopener noreferrer\">\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f SvelteKit<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/khangnd\/build-a-desktop-app-with-electron-and-svelte-44dp\" rel=\"nofollow noopener noreferrer\">\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 Electron \u0438 Svelte <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/prismic.io\/blog\/svelte-sveltekit-tutorial\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0430\u0439\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Svelte \u0438 Sveltekit<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Libs &amp; Plugins<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/ably.com\/blog\/whats-new-in-socketio-4\" rel=\"nofollow noopener noreferrer\">\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 SocketIO 4?<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/github.com\/75lb\/wordwrapjs\" rel=\"nofollow noopener noreferrer\">wordwrapjs \u2014 \u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0441\u043b\u043e\u0432 \u043d\u0430 javascript.<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/ericsmekens.github.io\/jsep\/\" rel=\"nofollow noopener noreferrer\">jsep \u2014 \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 JavaScript<\/a>   <\/li>\n<\/ul>\n<p>  <\/p>\n<h3><font color=\"#349A48\"><a name=\"browser\"><\/a>\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/post\/548926\/\">Google \u0443\u0434\u0430\u043b\u0438\u043b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 ClearURLs \u0438\u0437 Chrome Web Store<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/globalsign\/blog\/548832\/\">IETF \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 TLS 1.0 \u0438 1.1<\/a><br \/>  \u2022 <a href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54814\" rel=\"nofollow noopener noreferrer\">\u0420\u0435\u043b\u0438\u0437 Firefox 87<\/a><br \/>  \u2022 <a href=\"https:\/\/microsoftportal.net\/microsoft\/13753-microsoft-google-i-drugie-obedinjajut-usilija-dlja-uluchshenija-sovmestimosti-brauzerov.html\" rel=\"nofollow noopener noreferrer\">Microsoft, Google \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442 \u0443\u0441\u0438\u043b\u0438\u044f \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432<\/a><br \/>  \u2022 <a href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54817\" rel=\"nofollow noopener noreferrer\">\u0412 Chrome 90 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HTTPS \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435<\/a><\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/548208\/\">\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0437\u0430 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e<\/a>.<br \/>  \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 <a href=\"http:\/\/habrahabr.ru\/users\/dersmoll\/\" rel=\"nofollow noopener noreferrer\">dersmoll<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/users\/alekskorovin\/\" rel=\"nofollow noopener noreferrer\">alekskorovin<\/a>.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/549402\/\"> https:\/\/habr.com\/ru\/post\/549402\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 \u043e\u043a\u043e\u043b\u043e \u043d\u0435\u0433\u043e.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2l\/zx\/2v\/2lzx2vlcty8uilhkgbwjjg5_0xy.jpeg\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-320414","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=320414"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320414\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=320414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=320414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=320414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}