{"id":322813,"date":"2021-05-09T21:00:11","date_gmt":"2021-05-09T21:00:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=322813"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=322813","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 \u2116466 (3 \u2014 9 \u043c\u0430\u044f 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\/pl\/nf\/ts\/plnftsnhuk7dwcvuajjaf-kmi6u.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><\/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:\/\/soundcloud.com\/csssr\/ubiytsy-vebpaka-microsoft-bytecode-alliance-udalyonka\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 &#8216;Callback Hell&#8217;: \u0423\u0431\u0438\u0439\u0446\u044b \u0432\u0435\u0431\u043f\u0430\u043a\u0430, Microsoft + Bytecode Alliance, \u0443\u0434\u0430\u043b\u0451\u043d\u043a\u0430<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/csssr\/bootstrap-5-v8-91-dzheneriki-v-typescript-rxjs-v-angular-e2e-testy-s-cypress-bag-v-safari-141\" rel=\"nofollow noopener noreferrer\"> \u00ab\u041d\u043e\u0432\u043e\u0441\u0442\u0438 512\u00bb \u043e\u0442 CSSSR: Bootstrap 5, V8 9.1, \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0438 \u0432 TypeScript, RxJS \u0432 Angular, e2e-\u0442\u0435\u0441\u0442\u044b \u0441 Cypress, \u0431\u0430\u0433 \u0432 Safari 14.1<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/csssr\/istoriya-frontenda-ch2-safari-141-cors-cookie-store-api-nextjs-102-rxjs-7-google-io-2021\" rel=\"nofollow noopener noreferrer\"> \u00ab\u041d\u043e\u0432\u043e\u0441\u0442\u0438 512\u00bb \u043e\u0442 CSSSR: \u00ab\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430\u00bb \u0447.2, Safari 14.1, CORS, Cookie Store API, Next.js 10.2, RxJS 7, Google I\/O 2021<\/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-280\" 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 \u2116280. Safari 14.1, \u0433\u044d\u043f\u044b \u0432\u043e \u0444\u043b\u0435\u043a\u0441\u0430\u0445, \u0438\u0441\u0442\u043e\u0440\u0438\u044f JS, \u043c\u043e\u0437\u0430\u0438\u0447\u043d\u044b\u0439 JS, \u043a\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b<\/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=ycYp7CYOnO0\" rel=\"nofollow noopener noreferrer\">\u0412\u0438\u0434\u0435\u043e\u043a\u0430\u0441\u0442 \u00abFront-end. \u0412\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438\u00bb #1<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/storage3\/976\/d3e\/38a\/976d3e38a34b003f86f91795524af9f8.gif\"> <a href=\"https:\/\/www.youtube.com\/watch?v=X8sioTxbYJM\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00abPro Conf\u00bb #95: HollyJS Moscow 2020<\/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\/selectel\/blog\/555930\/\">\u0412\u044b\u0448\u0435\u043b Bootstrap 5: \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u043c 7 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439<\/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\/vdsina\/blog\/555736\/\">\u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0433 &lt;picture&gt; \u0432\u043c\u0435\u0441\u0442\u043e &lt;img&gt;<\/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\/macloud\/blog\/555082\/\">\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 HTML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438<\/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\/timeweb\/blog\/556214\/\">HTML \u0442\u0440\u044e\u043a\u0438<\/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\/05\/evolution-jamstack\/\" rel=\"nofollow noopener noreferrer\">\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f Jamstack <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/github.blog\/2021-05-04-how-we-use-web-components-at-github\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0435\u0431-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430 GitHub <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.deque.com\/blog\/auditing-design-systems-for-accessibility\/\" rel=\"nofollow noopener noreferrer\">\u0410\u0443\u0434\u0438\u0442 \u0434\u0438\u0437\u0430\u0439\u043d-\u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/designmodo.com\/development-bootstrap-5\/\" rel=\"nofollow noopener noreferrer\">\u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Bootstrap 5<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/developer.chrome.com\/blog\/faster-stack-traces\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0441\u0442\u0435\u043a\u0430 Chrome DevTools \u0432 10 \u0440\u0430\u0437 <\/a><\/p>\n<ul>\n<li><strong>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/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\/timeweb\/blog\/556192\/\">\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0441 Webpack \u043d\u0430 Vite<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/cpojer.net\/posts\/dependency-managers-dont-manage-your-dependencies\" rel=\"nofollow noopener noreferrer\">\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0430\u0448\u0438\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\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=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/555994\/\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c GPU \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 JavaScript<\/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\/timeweb\/blog\/555094\/\">\u0412\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u043d\u0438 PWA, \u043d\u0438 AMP, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/requestmetrics.com\/web-performance\/measure-web-performance\" rel=\"nofollow noopener noreferrer\">\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u0432\u0435\u0431-\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 2021 \u0433\u043e\u0434\u0443: \u043f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/gtmetrix.com\/blog\/how-to-use-history-graphs\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c History Graphs \u0432 GTmetrix<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/what-googles-new-page-experience-update-means-for-images-on-your-website\/\" rel=\"nofollow noopener noreferrer\">\u0427\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0432\u0435\u0436\u0438\u0439 Google Page Experience Update \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0435 <\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>\u042d\u0444\u0444\u0435\u043a\u0442\u044b<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/tympanus.net\/codrops\/2021\/05\/04\/dynamic-css-masks-with-custom-properties-and-gsap\/\" rel=\"nofollow noopener noreferrer\">\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 CSS \u043c\u0430\u0441\u043a\u0438 \u0441 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0438 GSAP<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/martinlaxenaire.medium.com\/portfolio-2021-technical-case-study-rendering-a-whole-html-website-in-webgl-1cd2982c2050\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0440\u0442\u0444\u043e\u043b\u0438\u043e \u0432 2021 \u2014 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u043e HTML-\u0441\u0430\u0439\u0442\u0430 \u0432 WebGL <\/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=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/ishadeed.com\/article\/cross-browser-development\/\" rel=\"nofollow noopener noreferrer\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u0440\u043e\u0441\u0441\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 CSS <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.miriamsuzanne.com\/2021\/05\/02\/container-queries\/\" rel=\"nofollow noopener noreferrer\">Container Queries: \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.quirksmode.org\/blog\/archives\/2021\/05\/two_options_for.html\" rel=\"nofollow noopener noreferrer\">\u0414\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/webdesign.tutsplus.com\/tutorials\/web-fonts-for-email--cms-36847\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0432\u0435\u0431-\u0448\u0440\u0438\u0444\u0442\u0430\u043c \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 \u043f\u0438\u0441\u0435\u043c<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/is-css-a-programming-language\/\" rel=\"nofollow noopener noreferrer\">\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 CSS \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\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:\/\/csshell.dev\/\" rel=\"nofollow noopener noreferrer\">CSS Hell \u2014 \u0421\u0431\u043e\u0440\u043d\u0438\u043a \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 CSS \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/16px-or-larger-text-prevents-ios-form-zoom\/\" rel=\"nofollow noopener noreferrer\">\u0422\u0435\u043a\u0441\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 16 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u0432 iOS<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/fluid-typography.netlify.app\/\" rel=\"nofollow noopener noreferrer\">Fluid typography \u2014 \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043e\u043a\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438\u0441\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044d\u043a\u0440\u0430\u043d\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\/is-vendor-prefixing-dead\/\" rel=\"nofollow noopener noreferrer\">\u0412\u0435\u043d\u0434\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b \u043c\u0435\u0440\u0442\u0432\u044b?<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.bitsrc.io\/compile-css-on-demand-with-the-latest-tailwind-compiler-e2c778de74e5\" rel=\"nofollow noopener noreferrer\">\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f CSS \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Tailwind<\/a><\/p>\n<p>  <\/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\/post\/556238\/\">\u041a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0439 3D FPS \u0448\u0443\u0442\u0435\u0440 \u043d\u0430 Three.js, Vue \u0438 Blender<\/a><br \/>  \u2022 <a href=\"https:\/\/tproger.ru\/translations\/kastomnye-tipy-dannyh-v-typescript-validacija-na-jetape-kompiljacii\/\" rel=\"nofollow noopener noreferrer\">\u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 TypeScript: \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/this-is-learning\/is-0kb-of-javascript-in-your-future-48og\" rel=\"nofollow noopener noreferrer\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043b\u0438 0kb JavaScript \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c?<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/areknawo.com\/vue-composition-api-vs-react-hooks-the-core-difference\/\" rel=\"nofollow noopener noreferrer\">Vue Composition API \u043f\u0440\u043e\u0442\u0438\u0432 React Hooks \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/omar4ur\/create-a-satellite-tracker-from-scratch-in-30-lines-of-javascript-32gk\" rel=\"nofollow noopener noreferrer\">\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0440\u0435\u043a\u0435\u0440 \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u043e\u0432 \u0441 \u043d\u0443\u043b\u044f 30-\u044e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 JavaScript \u043a\u043e\u0434\u0430<\/a><\/p>\n<ul>\n<li><strong>React<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/react-spectrum.adobe.com\/blog\/how-we-internationalized-our-numberfield.html\" rel=\"nofollow noopener noreferrer\">React Spectrum: \u041a\u0430\u043a \u043c\u044b \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/github.com\/Eliav2\/how-react-hooks-work\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0445\u0443\u043a\u0438 React <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/github.com\/cassiozen\/useStateMachine\" rel=\"nofollow noopener noreferrer\"> useStateMachine \u2014 \u0425\u0443\u043a \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u0434\u043b\u044f React<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.logrocket.com\/using-state-machines-with-xstate-and-react\/\" rel=\"nofollow noopener noreferrer\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u0432 \u0441 XState \u0438 React<\/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:\/\/medium.com\/js-dojo\/vue-ecosystem-979773a9bf54\" rel=\"nofollow noopener noreferrer\">\u042d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430 Vue <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/michael-verschoof.medium.com\/create-an-animated-vue-3-component-when-scrolling-into-view-f8e793e221c8\" rel=\"nofollow noopener noreferrer\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Vue 3 \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438<\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Angular<\/strong><br \/>   \u2022 <a href=\"https:\/\/medium.com\/fafnur\/banx-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-ngrx-%D0%B2-angular-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-rootstore-d6efc81c7f87\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Ngrx \u0432 Angular. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 RootStore.<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/volosoft\/whats-new-in-rxjs-7-a11cc564c6c0\" rel=\"nofollow noopener noreferrer\">\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 RxJS 7<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/posts\/1456\/a-journey-into-ngrx-selectors\" rel=\"nofollow noopener noreferrer\">\u041f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 \u0432 NgRx Selectors<\/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-179\/\" rel=\"nofollow noopener noreferrer\">The Ember Times \u2014 Issue No. 179<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/chrismllr\/ember-apollo-client-use-5h3o\" rel=\"nofollow noopener noreferrer\">Ember Apollo Client + @use<\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Libs &amp; Plugins<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/post\/555668\/\">Fastify.js \u2014 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0432\u0435\u0431-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f node.js<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/nextapps-de.github.io\/winbox\/\" rel=\"nofollow noopener noreferrer\">WinBox \u2014 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u043a\u043e\u043d\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0434\u043b\u044f \u0432\u0435\u0431\u0430. \u041b\u0435\u0433\u043a\u0438\u0439, \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u0431\u0435\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/a>  <\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/555510\/\">\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\/556526\/\"> https:\/\/habr.com\/ru\/post\/556526\/<\/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\/pl\/nf\/ts\/plnftsnhuk7dwcvuajjaf-kmi6u.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-322813","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322813","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=322813"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322813\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=322813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=322813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=322813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}