Search

Nalezeno "Markup": 206

What does `font: 110%/1.4 system-ui` mean?


I use this line, or one like it, in a lot of quick demos. Not that it’s not a production-worthy line of code—I just tend to be a bit more explicit on bigger projects. html { font: 110%/1.4 system-ui; } … The post What does `font: 110%/1.4 system-ui` mean? appeared first...

System *Things


I think we’re all largely aware of named colors in CSS: color: OldLace; background: rebeccapurple; I guess you’d just call those “named colors” in CSS. Those aren’t the only kind of named colors there are though. Some of them … The post System *Things appeared...

target=”blank”


Does that make your eye twitch a little bit? Like… it’s a typo. It should be target="_blank" with an underscore to start the value. As in… <a target="_blank" href="https://codepen.io"Open CodePen in a New Tab </a Welp, that’s correct syntax!… The post...

To $ or Not to $: Displaying Terminal Code Snippets


It’s very popular to put a $ on lines that are intended to be a command in code documentation that involves the terminal (i.e. the command line). Like this: $ brew install somepackage The point of that is that it … The post To $ or Not to $: Displaying Terminal Code Snippets appeared...

proxy-www


I like a good trick. What if… a URL was… a promise… that fetched said URL? www.codepen.io.then((response) ={ console.log(response); }); That’s what @justjavac did with JavaScript Proxys. A clever trick, that. Don’t @ me about the practicality. Trick… The post...

Creating Stylesheet Feature Flags With Sass !default


!default is a Sass flag that indicates conditional assignment to a variable — it assigns a value only if the variable was previously undefined or null. Consider this code snippet: $variable: 'test' !default; To the Sass compiler, this line … The post Creating Stylesheet Feature Flags With...

Not Your Typical Horizontal Rules


The default browser style for <hr> is so weird. It’s basically: border-style: inset; border-width: 1px; The default border-color is black, but the border doesn’t actually look black, because the inset border “adds a split tone to the line … The post Not Your Typical...

The `ping` attribute on anchor links


I didn’t know this was a thing until Stefan Judis’s post: <a href="https://www.stefanjudis.com/popular-posts/" ping="https://www.stefanjudis.com/tracking/"Read popular posts</a You give an anchor link a URL via a ping attribute, and the browser will hit that URL with a...

Too Many SVGs Clogging Up Your Markup? Try `use`.


Recently, I had to make a web page displaying a bunch of SVG graphs for an analytics dashboard. I used a bunch of <rect>, <line> and <text> elements on each graph to visualize certain metrics. This works and renders … The post Too Many SVGs Clogging Up Your Markup?...

To the brain, reading computer code is not the same as reading language


One of the things I do when teaching beginning front-end development is ask students to describe what it’s like to read HTML. I give them pretty basic markup for a long-form article, and ask them to read it twice: first … The post To the brain, reading computer code is not the same...

Use CSS Clamp to create a more flexible wrapper utility


I like Andy’s idea here: .wrapper { width: clamp(16rem, 90vw, 70rem); margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; } Normally I’d just set a max-width there, but as Andy says: This becomes a slight issue in mid-sized viewports, such...

How to Favicon in 2021


I always appreciate someone looking into and re-evaluating the best practices of something that literally every website needs and has a complex set of requirements. Andrey Sitnik has done that here with favicons. The final suggestion: <link rel="icon" href="/favicon.ico" … The post...

Animating a CSS Gradient Border


This little trick for gradient borders is super useful: .border-gradient { border: 5px solid; border-image-slice: 1; border-image-source: linear-gradient(to left, #743ad5, #d53a9d); } Here’s some basic demos from our article on the subject. Sephanie Eckles was sharing around the idea...

You want minmax(10px, 1fr) not 1fr


There are a lot of grids on the web like this: .grid { display: grid; grid-template-columns: repeat(3, 1fr); } My message is that what they really should be is: .grid { display: grid; grid-template-columns: repeat(3, minmax(10px, 1fr)); } Why? In … The post You want minmax(10px, 1fr)...

Dynamic, Conditional Imports


With ES Modules, you can natively import other JavaScript. Like confetti, duh: import confetti from 'https://cdn.skypack.dev/canvas-confetti'; confetti(); That import statement is just gonna run. There is a pattern to do it conditionally though. It’s like this: (async () … The post...

A Utility Class for Covering Elements


Big ol’ same to Michelle Barker here: Here’s something I find myself needing to do again and again in CSS: completely covering one element with another. It’s the same CSS every time: the first element (the one that needs to be covered) has position: relative applied to it....

Responsible, Conditional Loading


Over on the Polyplane blog (there’s no byline but presumably it’s Kilian Valkhof), there is a great article, Creating websites with prefers-reduced-data, about the prefers-reduced-data media query. No browser support yet, but eventually you can use it in CSS to make choices that reduce...

Late to Logical


2020 brought another wave of logical property features to major browsers and I’ve thoroughly enjoyed my investment into logical, rather than physical, web styling. I feel like I’ve learned a new way to speak about the box model that results in less written code with more global coverage. p { ...

Lots of Ways to Use Math.random() in JavaScript


Math.random() is an API in JavaScript. It is a function that gives you a random number. The number returned will be between 0 (inclusive, as in, it’s possible for an actual 0 to be returned) and 1 (exclusive, as in, it’s not possible for an actual 1 to be returned). Math.random(); // returns...

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace