{"id":3017,"date":"2024-07-15T17:30:33","date_gmt":"2024-07-15T23:30:33","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=3017"},"modified":"2024-07-15T17:30:34","modified_gmt":"2024-07-15T23:30:34","slug":"notes-on-microfeatures-i-love-in-blogs-and-personal-websites","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/notes-on-microfeatures-i-love-in-blogs-and-personal-websites\/","title":{"rendered":"Notes On &#8220;Microfeatures I Love in Blogs and Personal Websites&#8221;"},"content":{"rendered":"\n<p>I enjoyed Danila Fedorin&#8217;s post <a href=\"https:\/\/danilafe.com\/blog\/blog_microfeatures\/\">Microfeatures I Love in Blogs and Personal Websites<\/a>. Here&#8217;s some stuff I think it cool is a great style of post that I wish more people did, especially since I was <a href=\"https:\/\/frontendmasters.com\/blog\/nerdrage\/\">just poking at that<\/a>. Maybe I&#8217;ll do my own one of these days, but I had so many thoughts while reading Danila&#8217;s, I figured I could turn <em>that<\/em> into a post.<\/p>\n\n\n\n<p>I&#8217;m going to go through each feature with what goes through my brain. It is clearly noted <em>&#8220;[these features] need not be applied indiscriminately<\/em>&#8221; which I agree and want to underscore. These are mostly just nice ideas <em>when appropriate<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sidenotes<\/h2>\n\n\n\n<p>Danila mentions <a href=\"https:\/\/gwern.net\/note\/note#rock-paper-scissors\">examples like this<\/a>. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?resize=1024%2C488&#038;ssl=1\" alt=\"\" class=\"wp-image-3018\" style=\"width:730px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?resize=1024%2C488&amp;ssl=1 1024w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?resize=300%2C143&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?resize=768%2C366&amp;ssl=1 768w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?resize=1536%2C732&amp;ssl=1 1536w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.04.38%E2%80%AFPM.png?w=1616&amp;ssl=1 1616w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n\n\n<p>Love it. Very classy. My thinking is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start as semantic HTML footnotes. Put the footnotes at the bottom of the article, use numbered jump links down to them, then link back.<\/li>\n\n\n\n<li>Progressively enhance to a popover, <a href=\"https:\/\/frontendmasters.com\/blog\/popovers-work-pretty-nicely-as-slide-out-drawers\/\">probably as a drawer<\/a>. <\/li>\n\n\n\n<li>If on a large enough screen, enhance to <a href=\"https:\/\/meyerweb.com\/eric\/thoughts\/2023\/09\/12\/nuclear-anchored-sidenotes\/\">Nuclear Anchored Sidenotes<\/a>. CSS&#8217; upcoming <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/CSS_anchor_positioning\">anchor positioning API<\/a> is going to be a godsend for this.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Easily Linkable Headings<\/h2>\n\n\n\n<p>The idea here is <em>instead<\/em> of something like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h2<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">a<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"#particular-header\"<\/span>&gt;<\/span>\n    #\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"visually-hidden\"<\/span>&gt;<\/span>Jump Link to Particular Header<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span>\n  Particular Header\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h2<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You just make the header itself a link like:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">a<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"#particular-header\"<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h2<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"particular-header\"<\/span>&gt;<\/span>Particular Header<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h2<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Huh! I just never thought to do it that way because it feels like&#8230; I dunno they aren&#8217;t <em>really<\/em> links so it feels weird linking the whole thing. But the more I think about it the more I don&#8217;t hate it. Danila is doing it and even tosses in a little <a href=\"https:\/\/codepen.io\/chriscoyier\/pen\/mddWEZp\">yellow fade technique<\/a> for good measure I see.<\/p>\n\n\n\n<p>To me, it&#8217;s more about an authoring experience that doesn&#8217;t make you think about it at all. All headers should be linkable, automatically. I&#8217;ve long been a fan of this <a href=\"https:\/\/wordpress.org\/plugins\/add-anchor-links\/\">itty bitty WordPress plugin<\/a> that does it. Whatever you use to produce HTML from written content, automate it!<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"270\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.12.25%402x.png?resize=774%2C270&#038;ssl=1\" alt=\"\" class=\"wp-image-3024\" style=\"width:404px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.12.25%402x.png?w=774&amp;ssl=1 774w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.12.25%402x.png?resize=300%2C105&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.12.25%402x.png?resize=768%2C268&amp;ssl=1 768w\" sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><figcaption class=\"wp-element-caption\">GitHub does it like this, after the header.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"366\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.13.40%402x.png?resize=734%2C366&#038;ssl=1\" alt=\"\" class=\"wp-image-3025\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.13.40%402x.png?w=734&amp;ssl=1 734w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/CleanShot-2024-07-15-at-16.13.40%402x.png?resize=300%2C150&amp;ssl=1 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><figcaption class=\"wp-element-caption\">The current design of this site does it like this, before the header.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Table of Contents<\/h2>\n\n\n\n<p>I actually moved &#8220;Easily Linkable Headlines&#8221; up a few spots so that it would come before this section. My thinking is that once you have all headers linked properly, producing a table of contents is &#8220;easy&#8221;.  Loop over the headers, display. The more complicated (but optional) thing could could do is <em>nesting<\/em> the headers. Meaning h4&#8217;s are nested under the preceding h3, which is nested under the preceding h2, etc. <\/p>\n\n\n\n<p>I would think any major CMS will have some automated way of producing these things. I hand-wrote the PHP on this site to create the ones you can see in our sidebar on all posts (that have headings). <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"462\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.16.20%E2%80%AFPM.png?resize=636%2C462&#038;ssl=1\" alt=\"\" class=\"wp-image-3026\" style=\"width:404px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.16.20%E2%80%AFPM.png?w=636&amp;ssl=1 636w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.16.20%E2%80%AFPM.png?resize=300%2C218&amp;ssl=1 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><figcaption class=\"wp-element-caption\">This site&#8217;s current Table of Contents design, which is in the sidebar and has <code>position: sticky<\/code> so it hangs around as you scroll down a longer article.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Showing Page Progress<\/h2>\n\n\n\n<p>I actually disagree on this one. I think those horizontal bars that fill up as you scroll down the page are cheezy, unnecessary, and unhelpful. They do make for <a href=\"https:\/\/scroll-driven-animations.style\/demos\/progress-bar\/css\/\">a pretty good demo on using Scroll-Driven Animations<\/a> though! <\/p>\n\n\n\n<p>But we just talked about Table of Contents and Danila mentions a Table of Contents that highlights where you are, and that <a href=\"https:\/\/css-tricks.com\/sticky-table-of-contents-with-scrolling-active-states\/\">is actually pretty rad<\/a>. Agreed on that one! Maybe I can implement that to our Table of Contents one day. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Grouping Series of Posts<\/h2>\n\n\n\n<p>It&#8217;s actually silly to write a <em>series<\/em> of posts and then <em>not<\/em> clearly link them together. Definitely do that! As many ways as you kind. That&#8217;s just good wayfinding for users. Nobody is going to be mad at you for helping you find your way around. <\/p>\n\n\n\n<p>I built this kind of widget here on Boost for that: <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"373\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.24.09%E2%80%AFPM.png?resize=1024%2C373&#038;ssl=1\" alt=\"\" class=\"wp-image-3019\" style=\"width:551px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.24.09%E2%80%AFPM.png?resize=1024%2C373&amp;ssl=1 1024w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.24.09%E2%80%AFPM.png?resize=300%2C109&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.24.09%E2%80%AFPM.png?resize=768%2C280&amp;ssl=1 768w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.24.09%E2%80%AFPM.png?w=1180&amp;ssl=1 1180w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">The Article Series block on this site&#8217;s design at the time of writing. <\/figcaption><\/figure>\n<\/div>\n\n\n<p>As I mentioned, this is a WordPress site, so I used <a href=\"https:\/\/www.advancedcustomfields.com\/\">Advanced Custom Fields<\/a> (very broadly useful) and the <a href=\"https:\/\/www.advancedcustomfields.com\/resources\/post-object\/\">Post Object<\/a> Field Type applied to <a href=\"https:\/\/www.advancedcustomfields.com\/resources\/blocks\/\">a custom Block<\/a>, so I can plop one of these little &#8220;Article Series&#8221; blocks where ever I want. Then I make the block a &#8220;Pattern&#8221;, so that I can re-use the exact same version of the Block all over the series. Update one, they all update, which makes it easy as you&#8217;re publishing over time. I realize that&#8217;s pretty WordPress-specific, but it&#8217;s worth building out something for this if you publish series!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dialogs<\/h2>\n\n\n\n<p>Heck yeah! +1 to interesting post formats. We all use all sorts of messaging services, so having that available to use as a design element with posts is a great idea. We&#8217;ve done limited versions of it sort of <a href=\"https:\/\/frontendmasters.com\/blog\/front-end-or-full-stack-a-replay-of-an-interesting-discord-conversation\/\">replicating a Discord conversation<\/a> a few times, but it doesn&#8217;t yet have that back-and-forth conversational feel, it&#8217;s just a list of posts. <\/p>\n\n\n\n<p>I&#8217;d probably make a &#8220;left&#8221; custom design and a &#8220;right&#8221; custom design so I could just pick and choose them however makes the conversation look best. Oh and it would be a great <a href=\"https:\/\/frontendmasters.com\/blog\/pretty-vs-balanced\/\">use-case for <code>text-wrap: balance<\/code><\/a> so that the actual &#8220;text bubbles&#8221; would feel rather sized to their content nicely. <\/p>\n\n\n\n<p>Generally: art direct those articles! Make them interesting! <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Blocks with Origin<\/h2>\n\n\n\n<p>The idea here is showing off the <em>name<\/em> of the file that you&#8217;re showing off a code block of.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"414\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.20.01%E2%80%AFPM.png?resize=900%2C414&#038;ssl=1\" alt=\"\" class=\"wp-image-3028\" style=\"width:425px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.20.01%E2%80%AFPM.png?w=900&amp;ssl=1 900w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.20.01%E2%80%AFPM.png?resize=300%2C138&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-4.20.01%E2%80%AFPM.png?resize=768%2C353&amp;ssl=1 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n\n\n<p> I mean, sure. Why not. I could see that being an interesting bit of metadata you might want to have available sometimes. I&#8217;ve just written one zillion code blocks in posts in my life and have rarely wanted it. I usually don&#8217;t care what <em>you<\/em> name your file, it&#8217;s just a concept. In Danila&#8217;s case, it was based on user feedback about a pretty complex series of posts about a very technical subject, so point taken. <\/p>\n\n\n\n<p>Here&#8217;s my list for both authors and users of code blocks:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Syntax highlighting, server side. Subset of languages I care about.<\/li>\n\n\n\n<li>I don&#8217;t want to have to escape special characters myself. <\/li>\n\n\n\n<li>Nice design. Distinct but not distracting. <\/li>\n\n\n\n<li>A copy and paste button. <\/li>\n\n\n\n<li>Line numbers that I can turn on or off. <\/li>\n\n\n\n<li>Ability to highlight any lines.<\/li>\n<\/ol>\n\n\n\n<p>I do like the idea of allowing for clickable links within code blocks. This is a good one for the list because I think it would be extra tricky to pull off and quite a nice touch. You either have to give up on having the code auto-escaped (so the HTML within could stay actual HTML) or do something <em>really<\/em> clever, like not escaping HTML within comments?? or something??<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.el<\/span> {\n  <span class=\"hljs-comment\">\/* Try the &lt;a href=\"https:\/\/scroll-driven-animations.style\/tools\/view-timeline\/ranges\/\"&gt;View Timeline Visualizer&lt;\/a&gt; *\/<\/span>\n  <span class=\"hljs-attribute\">animation<\/span>: reveal linear both;\n  <span class=\"hljs-attribute\">animation-timeline<\/span>: <span class=\"hljs-built_in\">view<\/span>(block);\n  <span class=\"hljs-attribute\">animation-range<\/span>: cover <span class=\"hljs-number\">0%<\/span> cover <span class=\"hljs-number\">100%<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Markers for External Links<\/h2>\n\n\n\n<p>I get the idea. The little box-with-arrow icon sorta like [\u2934]. <\/p>\n\n\n\n<p>I can&#8217;t get behind it though. I&#8217;d say it&#8217;s just personal preference (I don&#8217;t really care if a link is &#8220;internal&#8221; or &#8220;external&#8221;), but I&#8217;ve also never seen data on if users find it helpful or heard any particularly strong or compelling opinions about it over my years. I do like it when links that are weird\/surprising are indicated though, like:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Email links (e.g. <code>mailto:<\/code>)<\/li>\n\n\n\n<li>Links to PDFs<\/li>\n\n\n\n<li>Links to Media files (e.g. <code>.mp3<\/code>)<\/li>\n<\/ol>\n\n\n\n<p>Those have way different behavior than just &#8220;go to new website&#8221; so a heads up is nice. And since they are all <code>&lt;a&gt;<\/code> links (probably), CSS can help:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">a<\/span><span class=\"hljs-selector-attr\">&#91;href$=<span class=\"hljs-string\">\".pdf\"<\/span>]<\/span><span class=\"hljs-selector-pseudo\">::after<\/span> {\n  <span class=\"hljs-attribute\">content<\/span>: <span class=\"hljs-string\">\" (PDF)\"<\/span>;\n}\n<span class=\"hljs-selector-tag\">a<\/span><span class=\"hljs-selector-attr\">&#91;href^=<span class=\"hljs-string\">\"mailto\"<\/span>]<\/span><span class=\"hljs-selector-pseudo\">::after<\/span> {\n  <span class=\"hljs-attribute\">content<\/span>: <span class=\"hljs-string\">\" (Email)\"<\/span>;\n}\n<span class=\"hljs-comment\">\/* etc. *\/<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Danila&#8217;s idea of different markers for different destinations, while I&#8217;m personally not <em>that<\/em> into it, <a href=\"https:\/\/www.zachleat.com\/web\/external-link-favicons\/\">can be pulled off in CSS with a little indie web service<\/a>. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"654\" height=\"586\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.55.43%E2%80%AFPM.png?resize=654%2C586&#038;ssl=1\" alt=\"\" class=\"wp-image-3021\" style=\"width:281px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.55.43%E2%80%AFPM.png?w=654&amp;ssl=1 654w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/Screenshot-2024-07-15-at-3.55.43%E2%80%AFPM.png?resize=300%2C269&amp;ssl=1 300w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Link Preview<\/h2>\n\n\n\n<p>I&#8217;d have a real light touch with this! It&#8217;s kind of unexpected behavior if you do something like make it a hover effect for a link. <\/p>\n\n\n\n<p>Remember when posted about <a href=\"https:\/\/frontendmasters.com\/blog\/live-demos-of-stand-alone-web-components\/\">Standalone Web Components<\/a>, I linked up David Darnes&#8217; <a href=\"https:\/\/github.com\/daviddarnes\/link-peek\"><code>&lt;link-peak&gt;<\/code> component<\/a> which could help with this. <\/p>\n\n\n\n<div class=\"wp-block-cp-codepen-gutenberg-embed-block cp_embed_wrapper\"><iframe id=\"cp_embed_abrWJPO\" src=\"\/\/codepen.io\/anon\/embed\/abrWJPO?height=450&amp;theme-id=47434&amp;slug-hash=abrWJPO&amp;default-tab=result\" height=\"450\" scrolling=\"no\" frameborder=\"0\" allowfullscreen allowpaymentrequest name=\"CodePen Embed abrWJPO\" title=\"CodePen Embed abrWJPO\" class=\"cp_embed_iframe\" style=\"width:100%;overflow:hidden\">CodePen Embed Fallback<\/iframe><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">RSS Feeds<\/h2>\n\n\n\n<p>Yes! Old man shakes fist at internet! <\/p>\n\n\n\n<p>If you write and publish your work on your own site for free, give me that sweet sweet <a href=\"https:\/\/frontendmasters.com\/blog\/feed\/\">RSS feed<\/a>. Do it just for me. I&#8217;ll subscribe to it. I carefully curate my feeds and I love it. It&#8217;s simple technology designed to connect us. <\/p>\n\n\n\n<p>Danila almost mentions linking up <em>other people&#8217;s <\/em>sites. Sure! Go for it! Have fun with it! You could call it a &#8220;blogroll&#8221;, that&#8217;s kind of the classic term for it. Or go even older-school with a &#8220;webring&#8221;, those are <a href=\"https:\/\/indieweb.org\/webring#Examples\">coming back<\/a> a smidge. If you want to show the latest posts from other sites, that ups the difficultly and has performance implications, but it&#8217;s doable and you could have fun with that. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Danila Fedorin&#8217;s article about unique UX features in blogs is fun. Here&#8217;s some extra thoughts, resources, and opinions.<\/p>\n","protected":false},"author":1,"featured_media":3032,"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":[208,7,24,31],"class_list":["post-3017","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-post","tag-blogging","tag-css","tag-design","tag-html"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/07\/pexels-photo-262508.jpeg?fit=1880%2C1248&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/3017","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=3017"}],"version-history":[{"count":8,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/3017\/revisions"}],"predecessor-version":[{"id":3033,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/3017\/revisions\/3033"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/3032"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=3017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=3017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=3017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}