I’m rarely here anymore.
Sometimes.
But mostly, find me on Mastodon.
I miss Twitter, but this is not Twitter anymore. I don’t want to tolerate what this has become — or more so, what it will likely become in the future.
If you are a developer, and you feel bad about not knowing everything, I have one item I want you to memorize:
No one knows everything. No one.
The best coders in the world only know a small fraction of everything there is to know about coding.
As a person who 300+ shows in my 20s, I’ve been sitting here for an hour trying to figure out how Beyoncé’s team did that show. A one time performance? On a festival stage with one hour to complete load-in? With perfect everything — sound, choreography, CAMERA, live editing…
<model> is a potential new HTML element, that works exactly like <img> or <video> — only for loading 3D graphics, like in a USDZ file.
The WebKit team has proposed <model> for inclusion in HTML. Try it today behind an experimental feature setting (in Safari’s Develop menu).
If you are spending a lot of your time learning *while* you code — while someone is paying you — then you are doing it right. You don’t need to learn it all ahead of time and show up to work already knowing. Don’t let our stupid educational system trick you into thinking that.
Writing CSS? Wondering why the code you wrote isn’t doing anything? Wait, er, or…? Wait what?
Wouldn’t it help if DevTools would just tell you — “Hey this doesn’t do anything. Here’s why & how to fix it.” Yup.
Firefox 70, shipping tomorrow, does this.
Everyone in my mentions saying Safari is the worst, it’s the new IE… Can you point to specific bugs & missing support that frustrate you, inhibit you making websites/apps. Bonus points for links to tickets.
Specifics we can fix. Vague hate is honestly super counterproductive.
I still can’t quite believe that this is now where I work.
Oh, yup. As of June 1. I’m Apple’s newest Web Technologies Evangelist for Safari & WebKit.
And those are now my teammates / company-mates presenting at WWDC. Watch on Monday! (Early Tuesday for some of you.)
I’m pretty sure I have COVID-19. I’ve had symptoms for a week, and got more sick about 3 days ago. I cannot get a test in NYC, so there’s no way to know for sure, but this presents as described by international medical professionals.
I love seeing this diagram from
@argyleink
of Chrome DevRel showing how the new Viewport Units (specifically svh, lvh, dvh) will work in Chrome for Android.
These units are going to be super helpful on all mobile devices, in all the browsers.
Lesson here — don't learn React only, also learn JavaScript. Don't only learn Bootstrap, also learn CSS.
The tools will change. The underlying technologies won't. (They'll evolve, but they won't go away.)
20 years ago, people tried to convince me that learning HTML was pointless because we had FrontPage and Dreamweaver.
Ignoring them was the best decision I ever made.
Don’t say Safari is always last. Sometimes we are first.
presenting :has()
“For example, a:has(>img) selects all <a> elements that contain an <img> child.”
— from
Did you know everything about styling underlines on the web just changed?
You can make an underline thicker or thinner.
You can move it closer to/further from the text.
You can control whether the line intersects with characters.
📺
Since there is so much interest in this, I made a graphic to round up the different CSS properties that are coming to help us style underlines. Some work in some browsers today. All have fantastic fallbacks, so you can start using them now. (They do NOT break anything in IE11!)
Did you know there’s a panel in Firefox Developer Tools that keeps track of any changes you make to your CSS, and lists everything so you can copy & paste it elsewhere?
Web developers, I have big news! Safari 15.4 is here, packed with 70+ new features — lazy loading, dialog, :has(), Cascade Layers, svh/lvh/dvh, focus-visible, accent-color, display: contents fix, scroll-behavior, Manifest icons, BroadcastChannel & more:
You know how a webpage jumps around when loading, because it takes time to load images? Yeah, we’re fixing that.
I explain it all today in this video.
tl;dr — Add HTML width & height attributes to all your images. Starting in Dec, better loading FTW!
Design solves a problem. If you don’t know what that problem is, or who is having it, you aren’t designing. You are chasing your own fantasies. Maybe you’ll get lucky and create something for people just like you. Or you could get customer-focused and have more of a sure thing.
At the root, the business decisions are what blow me away the most. Beyoncé and her team are on such a different level. No one pulls this off but her. There were dozens of people working pyrotechnics alone. With likely no rehearsal. Perfectly. For a one time event. WHO DOES THAT?
I believe new HTML elements should go through a standards process, be debated by multiple parties (not one), be useful to most websites (pave the cowpaths), and be written in language that makes sense for HTML, especially for folks who don’t speak English well.
So no on this.
What’s is called when...
You see a site redesign.
LOVE the body font...
What is that typeface?
It’s so beautiful.
That's exactly the kind of thing I’ve been looking for.
I’m so jealous.
I NEED that font.
Inspect Element....
Georgia.
It’s Georgia.
The only skill you need is to know 1) how to identify what you don’t know / when you don’t know something; and 2) how to look things up, how to read documentation, how to try & try & try and keep trying while things fail, until they work. That’s literally the job of writing code.
Live performance TV shows are *never* this good. All the camera work & switching was finely planned and rehearsed (up to the last song, clearly the last song was not). This was two hours. On a *borrowed* stage. A one time shot. They did this ONCE? What? HOW? Every bit perfect.
Starting the day with the devastating news that Mozilla is laying off 250 people, about a quarter of the company. There are so many great people there, especially the browser engineers who invented much of the web… this is going to be painful. ❤️😩
It’s beginning to feel like the HTML-CSS-JS vs JS-JS-JS war is a class war. If your project has a budget of millions, “of course” you should use a complex build process and a JavaScript framework that handles everything (according to the folks who believe this). The pressure…
Web Push is coming to Safari 16 on macOS Ventura. It sends notifications even if Safari is closed. Is built with the same web technologies as other browsers. Doesn’t require an Apple Developer Program membership. And is coming to iOS and iPadOS next year.
How’d you like a way to do animations triggered by user’s scrolling — using CSS? (Not horribly slow JavaScript yukyuk that everyone seems to use for this.)
?????
Like this, maybe:
Yes? No? Would you use it? Design for this kind of interaction?
Ever try to write CSS without DevTools? Ugh! Having a HTML/DOM Inspector & CSS Rules panel makes a *huge* difference.
We've been doing Accessibility without any such tool — until now.
Let me give you a tour of the Firefox Accessibility Inspector: 📺
At least 1,000 people worked that show. And I’m not counting the festival staff. I mean her show. On stage, backstage, load-in, production, filming, streaming. How in the world? How? No, really, how?
All of this is about:
users,
experiences,
content.
If your team is *only* thinking about:
interfaces,
automation,
code,
than you aren’t going to succeed.
You aren’t.
Decades of experience proves it.
It’s about the humans, not the bots.
The experience, not the code.
Hey, look at this diagram that explains three of the new Viewport Units — `svh`, `lvh` and `dvh`. Try them all now in Safari on iOS15.4 beta.
The
@csswg
hopes these will solve the frustrations that web developers have been feeling using the `vh` unit on mobile browsers.
There are many significant new(ish) tools in CSS that radically change what’s possible in web page layout & graphic design. Viewport Units is one of them. See what’s possible when using vw, vh, vmin, & vmax.
CSS Grid is one year old today. It shipped in Firefox 52 on March 7, 2017. By the end of the month, had shipped in Chrome, Opera, & Safari as well. Today, well over 80% of users have a browser with Grid.
Happy birthday CSS Grid!
I recently read the Text 4 spec, and now I can’t stop thinking about `text-wrap: balance`. Apply it to text, like a headline, and the browser wraps that text in such a way that each line has about the same length.
(See image to see result.)
Do you want browsers to implement it?
This team got that level of quality in one take, switching (editing) live. The teams for the Oscars, Grammys, Super Bowl — none of them pull this off. (And I bet their budgets are way bigger.)
Remember last week when I walked out onto a conference stage with no idea what I was about to present? Chris Coyier handed me an HTML file & an image of a layout. I coded it, explaining my thinking process aloud.
Here's the video recoding!
Yeah, I don’t understand why Tailwind convinces people to add 12mb of code to their site, when they could just use inline styles instead. The browser already has all the code for parsing CSS.
Also, why memorize Tailwind classes when you could memorize CSS properties instead?
The CSS specification for Container Queries just went to “First Public Working Draft”! YAY!! 🥳😍🤗
What does that mean? The people who define CSS believe now that this can be done—we’ve figured out exactly how to do it. Congrats to everyone who’s worked on this for many years!!
Gosh. Catching up with tech Twitter this morning and there seems to be an angry pocket of men who really want Safari to just go away.
Do we really want to live in a 95% Chromium browser world? That would be a horrible future for the web. We need more voices, not fewer.
Display P3 color. Designing in the browser. Amazing.
Let me show you how to switch over to P3, find a color, and then find a fallback color for older browsers. All while working inside Safari Web Inspector. (Turn sound on to hear me explain!)
About those forms..... I got curious about modern techniques for styling checkboxes. There are so many SUPER COMPLICATED demos out there... quite old.
How about a new, simple one? In only a few lines of CSS, I styled a custom checkbox. No JS. No hacks.
Conversation with neighbor, white female.
Her: Excited about any upcoming movies?
Me: Black Panther. Everyone’s talking about it.
Her: Why? Superhero movie?
Me: Black cast!
Her: That’s racist.
…
Ok, white people. We really need to talk about what “racist” means.
It’s free!
You want to take my HTML course for free?
Along with a whole series of software development courses? Here you go.
Thanks, LinkedIn and Microsoft. Thanks for recognizing people need this kind of opportunity right now.
Free: want to learn HTML from
@jensimmons
, CSS from
@christinatruong
, and JavaScript from
@mor10
?
LinkedIn Learning and Microsoft just unlocked our Becoming a Software Developer path, including their Essential Training Courses.
I don’t understand why all the tech press stories today talk about Google’s acquisition of Fitbit as a hardware acquisition. Why are they being so naive? This is a data acquisition. It’s about the data. That’s why Facebook was trying to get Fitbit instead.
#hellnonotmydata
But how — how her team pulled this off for a one time event, on a borrowed stage. I truly can’t wrap my head around it. She must have demanded so much from Coachella in terms of the stage, control over the sound, setup of the equipment, load-in, etc. otherwise — never this great.
This is a great demo of the difference between the old way of loading images (in the era of RWD), with the new way.
Developers, start putting `height` and `width` on your images again. Use `height:auto` to maintain the aspect ratio, with `width:100%` applied.
You know how leading always felt kind of broken/weird in web typography? Yeah, that’s because it is. The CSSWG is working on fixing it permanently — specifically
@fantasai
with the support of Microsoft Design.
Read about how it will work in the future:
I just want to spend the next month making demos of web form controls, exploring every detail of what parts can possibly be styled with CSS today and what can’t. While writing a series of blog posts teaching how to do what we can do now. And co-writing specs to invent the future.
After working for months on an epic article about the new `:has()` pseudo-class and how it can be combined with other CSS selectors to a powerful effect — we published it yesterday! There are so many great use cases that now no longer require JavaScript.
The new Firefox Accessibility tools have several ways to check 🌈 COLOR —
two tools for checking color contrast,
and one to simulate color blindness.
Let me show you: 📺
I applied many times for Verified status on Twitter. Rejected every time. I can only assume it’s because women in tech need 10x the followers as white men in tech to count as notable enough. I was planning to apply again once I hit 100,000 followers.
Did you know that Safari is powered by the WebKit rendering engine? Which is totally open source. Plus it powers many other browsers & embedded devices.
And now WebKit is 100% on Git. The SVN repo is officially retired. 👋🎉👩🏽💻
Did you see, Safari 14.1 shipped yesterday... including support for Gaps in Flexbox.
(*Can I Use & MDN still need to be updated, so they don't show support yet... but it's there! Try it out.)
Don’t take it personally. You don’t know what code to write? Yeah, we all don’t know what code to write. We figure it out. Line by line. Bit by bit. It’s broken most of the time. Until it’s not. Then we go write new broken code. Until it’s not broken.
Welcome. That’s the job.
Let’s take a look at the 2nd :has() demo. We can make a grid for our content. Allow most cards to automatically fill a 1x1 area. And then use :has() to tell any card that has an image to instead take up a 2x2 area.
article:has(img) {
grid-column: span 2;
grid-row: span 2;
}
Looks like not only does Twitter still refuse to verify someone like me, now they don’t even send an email to say you’ve been rejected.
75k followers + Wikipedia page + working as a public figure for a very famous company + oh… being a *woman* in tech = not important to the🐦
I have to say, I’m very proud of these green boxes. All of these green boxes.
And I’m proud to work at a browser maker that truly does care about web designers and developers — and the future of the web for everyday people. With browser engineers who worked very hard this year.
According to Can I Use (and Stats Counter), global support for CSS Grid (unprefixed) now at 84%. Support for Flexbox at 94%.
84% to 94%
#timetolearncssgrid
Men in tech. Please read this & contemplate — when was the last time someone went so far out of their way, and beyond the realm of common sense, to *order* you to stop believing in your own qualifications for your career.
This happens to women all the time.
I just introduced Intrinsic Web Design at An Event Apart Seattle.
Notes 1: (thanks
@adactio
!)
Notes 2: (thanks
@torrecapistran
!)
Slides:
Intrinsic Web Design.
Firefox 71 shipped today.
Which includes subgrid (aka Grid v2).
Yes, people, SUBGRID SHIPPED TODAY.
Celebrate by watching these videos by
@MiriSuzanne
to understand what these new abilities will bring.
Card layout:
Form layout:
This is ridiculous. How do we stop this?
(And I don’t mean how do you stop this for your own personal experience. I know that answer… I mean:
Hello, everyone who makes the web, makes web sites & web apps — how do we fix this for everyone?)
You don’t have to put up with racist or sexist or hateful nonsense from those who teach / lead web design & development. No book, video, article or tutorial is worth compromising your morality. There’s *plenty* of great material from those of us who don’t “joke” about oppression.
You’ll see pyrotechnics like that for the Super Bowl, the biggest TV show of the year with the most expensive ads of the year. Huge budget.
Speaking of Super Bowl halftime show: only 15 minutes long. The camera work and sound is not anywhere near as good…
Responsive Web Design = columns with %s. Everything squishes at once.
Intrinsic Web Design, with CSS Grid, gives us many more options— min-content, max-content, fr units… and today, I'll show you minmax(). These let us define *stages of flexibility*.
I am so incredibly excited for all of you who make websites and web apps to see over the next five days what we’ve made for you. My colleagues and I have been working very hard. I’m so tired! And yet, so very excited.
#wwdc23
Mansplaining: when a man thinks he knows more than a woman, ignores her expertise, & “helps” her by explaining.
What’s the name for when a man knows he knows less, goes to a woman to get her to explain the thing to him — so then he can go teach it and be seen as The Expert?
Many, if not most, of the great resources for learning CSS were made by women. I can’t help but wonder if that’s why some men struggle with it so much. Long threads arguing about CSS, pointing to subpar tutorials. Too many men simply cannot respect anything created by a woman.
Finally got a decent first-iteration article up for CSS Grid queen & stand-up educator
@jensimmons
. She's the one that half the speakers & bloggers learned it from in the first place!
#womenintech
@WikiWomenInRed
If you make websites, what do you need browser engineers to add to WebKit (Safari’s rendering engine)? What HTML, CSS, JS, Web APIs are missing — impacting your ability to get your job done. What do we most need to add / change / fix / invent to help you? (Repeat answers welcome)
Yesterday at
#smashingconf
I walked on stage to give a 40m presentation, with on idea what I was about to do.
@chriscoyier
handed me a flash drive with an image to use as inspiration, and the content in an HTML file. I coded the layout live. The video should come out next week!
Think of all the many HTML elements that were considered and rejected over the years — and we are supposed to be on-board with TOAST? Because a couple guys at Google decided they want it. And they can.
So no to
<footnote>
<author>
<publication-date>
But yes to
<toast>
???
It’s clear they used a big studio for months of rehearsal. After years of pre-production. They did the show on another stage a zillion times. It’s normal to do so for a giant stadium tour. Where your crew owns the stage. With millions of $$$ in tickets to be sold for that tour.
I’m now officially an editor of a CSS specification!
Of the Intrinsic and Extrinsic Sizing spec along with
@tabatkins
and
@fantasai
, where I’ll start with helping to figure out what exactly we need to define Aspect Ratios in CSS.
Our latest video demonstrates the Firefox Shape Path Editor — how to edit paths for Clip Path or CSS Shapes right in the browser.
📺
Did you already know about this tool? Or is it new to you? Do you use it? Do you use CSS Shapes or Clip Path? Why not?
Exporting large photo for web, from Photoshop…
Save for Web (Legacy), JPG: 120kb
Save for Web (Legacy), PNG: 660kb
Export as JPEG: 880kb
Quick Export as PNG: 2mb
I don’t understand why people say “always use PNG” or “that’s legacy, don’t use it”.
Smaller is ALWAYS better.
Last, use a checkbox to toggle Dark Mode on & off. No JavaScript. A checkbox input, placed anywhere in HTML is all I need, since I can change all my CSS across the DOM using :has()
body:has(input[type="checkbox"]:checked) {
background: blue;
--primary-color: white;
}
Day 365 of Long COVID.
Today, I got a vaccine.
Burst into hysterics when they showed me the vial. It took dozen of hours of filling out the same form over & over to get in. My first two appointments were canceled on me. But finally, finally there’s a shot in my arm. Grateful.
“By summer 2019, the Firefox browser will also block, by default, all cross-site third-party trackers, strengthening privacy without your having to do a thing.”
Our Facebook Container extension is not only the most popular browser extension we've ever built, but now has secured us a spot on the Top 50
#FCMostInnovative
.
Have you tried it out yet?