{"id":2156,"date":"2024-05-13T15:42:44","date_gmt":"2024-05-13T21:42:44","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=2156"},"modified":"2024-05-15T07:06:28","modified_gmt":"2024-05-15T13:06:28","slug":"frontend-to-fullstack-13","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/frontend-to-fullstack-13\/","title":{"rendered":"Frontend to Fullstack Monthly #13 \u2013\u00a0How should masonry work in CSS?"},"content":{"rendered":"\n<div class=\"wp-block-jetpack-markdown\"><p>We\u2019re back with Frontend to Fullstack Monthly \u2013 new courses, updates, and all the industry\u2019s latest news!<\/p>\n<h2>From Boost this month<\/h2>\n<p>Boost has been busy this month bringing you articles on all sorts of web platform features and news. We\u2019ve also shipped a freshened up design, leaning into GitHub\u2019s open source\u00a0<a href=\"https:\/\/github.com\/mona-sans\">Mona Sans<\/a>, a variable font that certainly seems up to the task of typography on a tech blog.<\/p>\n<p>The\u00a0<code>aspect-ratio<\/code>\u00a0property in CSS is super useful and has been supported in all browsers for quite a while now, but it doesn\u2019t take much for it to not work as expected. If this is happening to you,\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/things-that-can-break-aspect-ratio-in-css\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">here\u2019s what might be going on<\/a>. We\u00a0prefer the fundamentals at Frontend Masters; vanilla HTML, CSS, and JavaScript will always serve you well. Here\u2019s\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/the-html-css-and-svg-for-a-classic-search-form\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">an easy grab-and-go search form<\/a>\u00a0using just the vanilla tech you need. The\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/popover-api-is-here\/\">Popover API is now available<\/a>\u00a0across browsers and personally I\u2019m most excited about\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/using-the-popover-api-for-html-tooltips\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">using it for tooltips<\/a>.<\/p>\n<p>We\u2019d also like to welcome some new guest authors, like Adam Rackis who\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/using-nextauth-now-auth-js-with-sveltekit\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">introduces us to the versatile Auth.js\u00a0<\/a>library and in this case use it with Svelte. Ben Hong did an exemplary job showing us the\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/the-vue-ecosystem-in-2024\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">landscape of tools around Vue<\/a>\u00a0right now.\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/using-css-scroll-driven-animations-for-section-based-scroll-progress-indicators\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">Preethi Sam gets awfully clever<\/a>\u00a0with Scroll-Driven Animations making section-based scroll progress indicators.<\/p>\n<h2>New Frontend Masters courses<\/h2>\n<p>We launched two new courses:\u00a0<a href=\"https:\/\/frontendmasters.com\/courses\/go-aws\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">Building Go Apps that Scale on AWS<\/a>\u00a0and\u00a0<a href=\"https:\/\/frontendmasters.com\/courses\/everything-git\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">Everything You Need to Know About Git<\/a>. We have recorded a ton of courses recently and will be releasing at least four more this month.<\/p>\n<p>And we\u2019ve been in the studio cooking up tons of new courses! They are recorded as\u00a0<a href=\"https:\/\/frontendmasters.com\/workshops\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs12\">live workshops<\/a>, and then edited into courses. Hope you can join us!<\/p>\n<h2>Industry news &amp; updates<\/h2>\n<p>The first\u00a0<a href=\"https:\/\/react.dev\/blog\/2024\/04\/25\/react-19\">beta of React 19<\/a>\u00a0landed at the end of April with, notably, full support for Custom Elements. It\u2019s targeted at library and tool developers to get prepared for a final v19 release, but you\u00a0<a href=\"https:\/\/react.dev\/blog\/2024\/04\/25\/react-19-upgrade-guide\">can always upgrade if you want\u2026<\/a><\/p>\n<p>The\u00a0<a href=\"https:\/\/webkit.org\/blog\/15269\/help-us-invent-masonry-layouts-for-css-grid-level-3\/\">WebKit<\/a>\u00a0and\u00a0<a href=\"https:\/\/developer.chrome.com\/blog\/masonry?hl=en\">Chrome<\/a>\u00a0teams are at odds on how best to implement so-called masonry-style layouts in CSS.\u00a0<a href=\"https:\/\/frontendmasters.com\/blog\/feedback-on-masonry-layout\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">Chris Coyier gives his take on Boost<\/a>.<\/p>\n<p><a href=\"https:\/\/nodejs.org\/en\/blog\/announcements\/v22-release-announce\">Node.js 22<\/a>\u00a0arrived as the new \u2018current\u2019 branch of Node.js and is due to become the active LTS version later this year. It now has a WebSocket client enabled by default, watch mode is considered stable, and you can now run npm scripts more quickly using its\u00a0<code>--run<\/code>\u00a0option. FYI if you want to get up to speed with Node, we have an entire\u00a0<a href=\"https:\/\/frontendmasters.com\/learn\/node-js\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">learning path for Node.js<\/a>.<\/p>\n<p>Ryan Dahl is keen to stress that\u00a0<a href=\"https:\/\/deno.com\/blog\/jsr-is-not-another-package-manager\">JSR is not a new package manager<\/a>\u00a0or replacement for\u00a0<code>npm<\/code>, but part of a fundamental shift in how packages are distributed \u2014 tailored for the modern ES modules era.<\/p>\n<p>Google has\u00a0<a href=\"https:\/\/privacysandbox.com\/intl\/en_us\/news\/update-on-the-plan-for-phase-out-of-third-party-cookies-on-chrome\/\">delayed the end of third-party cookies in Chrome<\/a>\u00a0yet again.<\/p>\n<p><a href=\"https:\/\/blog.jquery.com\/2024\/04\/17\/upgrading-jquery-working-towards-a-healthy-web\/\">Here\u2019s what work is being carried out<\/a>\u00a0to keep jQuery up to date across the web. jQuery UI got\u00a0<a href=\"https:\/\/blog.jqueryui.com\/2024\/04\/jquery-ui-1-13-3-released\/\">a small new release too<\/a>\u00a0\u2013 there\u2019s plenty of life in jQuery yet.<\/p>\n<p>\u2728 Key releases you may want on your radar:\u00a0<a href=\"https:\/\/astro.build\/blog\/astro-470\/\">Astro 4.7<\/a>,\u00a0<a href=\"https:\/\/svelte.dev\/blog\/svelte-5-release-candidate\">Svelte 5 RC<\/a>,\u00a0<a href=\"https:\/\/nextjs.org\/blog\/next-14-2\">Next.js 14.2<\/a>\u00a0<a href=\"https:\/\/www.electronjs.org\/blog\/electron-30-0\">Electron 30.0<\/a>, and\u00a0<a href=\"https:\/\/quilljs.com\/\">version 2.0<\/a>\u00a0of text-editor\u00a0<em>Quill.<\/em><\/p>\n<h2>Handy tutorials and articles<\/h2>\n<p>\u2b50\ufe0f Cody Lindley is back with another\u00a0<a href=\"https:\/\/frontendmasters.com\/guides\/front-end-handbook\/2024\/?utm_source=email&amp;utm_medium=email&amp;utm_campaign=fefs13\">updated edition of the\u00a0<em>Frontend Handbook<\/em>\u00a0for us<\/a>. It\u2019s a free, in-depth, guide to the current web development landscape. It covers everything from code editors, CSS, UX, UI, popular tools and frameworks, performance, accessibility, testing, AI, and much much more.\u00a0<em>Biased maybe, but well worth a bookmark we reckon<\/em>.<\/p>\n<p>Did you know you can\u00a0<a href=\"https:\/\/ryanmulligan.dev\/blog\/detect-js-support-in-css\/\">detect JavaScript support just in CSS<\/a>? It\u2019s all thanks to the\u00a0<code>scripting<\/code>\u00a0media query.<\/p>\n<p>Here\u2019s a solid step-by-step instructional video (29 minutes) on \u25b6\ufe0f\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=cmtfM4emG5k\">digging into responsiveness issues<\/a>\u00a0in Chrome\u2019s Performance Panel.<\/p>\n<p>Daine Mawer explains\u00a0<a href=\"https:\/\/www.sitepoint.com\/fluid-typography-css-clamp-function\/\">how we can create fluid typography<\/a>\u00a0with the CSS\u00a0<code>clamp()<\/code>\u00a0function.<\/p>\n<p>Alexis Kypridemos shows us how we\u00a0<a href=\"https:\/\/www.smashingmagazine.com\/2024\/04\/converting-text-encoded-html-vanilla-javascript\/\">convert plain text to encoded HTML<\/a>\u00a0with vanilla JavaScript.<\/p>\n<h2>Useful projects<\/h2>\n<p><a href=\"https:\/\/extension.js.org\/\">Extension<\/a>\u00a0is a new, easy way to get started with building your own browser extensions. One terminal command and you\u2019re up and running.<\/p>\n<p><a href=\"https:\/\/github.com\/tagconcierge\/consent-banner-js\">Consent Banner JS<\/a>\u00a0is a zero-dependency, lightweight (~3KB) cookie banner.<\/p>\n<p><a href=\"https:\/\/tresjs.org\/\">TresJS<\/a>\u00a0can be used to create 3D scenes with Vue components and Three.js if you want to put together dynamic, striking visual experiences on the Web.<\/p>\n<p>\ud83d\udcca\u00a0<a href=\"https:\/\/unovis.dev\/\">Unovis<\/a>\u00a0is a flexible data visualization framework that\u2019s happy working alongside React, Angular, Svelte, Vue or vanilla TypeScript\/JavaScript. There are\u00a0<a href=\"https:\/\/unovis.dev\/gallery\">lots of examples<\/a>, all with code.<\/p>\n<p><a href=\"https:\/\/yaireo.github.io\/tagify\/\">Tagify<\/a>\u00a0is an elegant component for inputting tags.<\/p>\n<p><a href=\"https:\/\/csspro.com\/css-gradients\">This gallery<\/a>\u00a0has over 250 click-to-copy CSS gradients.<\/p>\n<p>Naming things (functions, classes, properties, etc) can be hard,\u00a0<a href=\"https:\/\/classnames.paulrobertlloyd.com\/\">this site sets out to help<\/a>.<\/p>\n<p>Thanks for reading \u2013 see you in the next one!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":15,"featured_media":2192,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[172],"class_list":["post-2156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-post","tag-newsletter"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/05\/newsletter.jpg?fit=1792%2C1024&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=2156"}],"version-history":[{"count":6,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2156\/revisions"}],"predecessor-version":[{"id":2165,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2156\/revisions\/2165"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/2192"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=2156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=2156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=2156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}