over 3 years ago Syntax Podcast
Supper Club × Polypane with Kilian Valkhof
- 01:02 Tool for web developers called Polypane
- 05:43 Started working on Polypane in 2015
- 08:35 Polypane helped speed up implementing designs by 60%
- 09:47 Polypane browser built with Electron and React
- 14:19 Polypane URL bar and other browser features are custom built
- 15:30 Polypane dev tools are custom built for multi-pane experience
- 16:44 Polypane dev tools allow custom overlays like accessibility alt text
- 21:37 Polypane has visual outline mode showing tab order
- 23:33 Polypane tools are focused on accessibility testing
- 26:56 Polypane written in JavaScript, not much native code
- 30:24 Rulers, guides, and overlays inspired by Sketch
- 32:10 Hover and focus syncing across panes speeds up workflow
- 35:23 One-click tools to disable CSS, JS, images for testing
- 36:31 Simulators for various disabilities built-in
- 43:05 Hover effects sync across panes automatically
- 44:40 Polypane available for free and paid plans
Polypane available for free and paid plans
Guest 2
7 Oh, I've seen these online as tech tips. It's like a little box. Yeah. They're just, like, tiny machines. They sit on your on your desk, in terms of Still just plain CSS because that's what I'm I'm good at what I understand, Like, And then I had doubts, And then I was like, okay. But, you know, I now have this thing that sits on top of each pane.
Guest 2
Yeah. I know because I I found actually one of your comments on Reddit,
Scott Tolinski
split keyboard. Cool. What about shameless plugs? Would you like to plug anything?
Guest 2
Yes. Yeah.
Scott Tolinski
Please
Guest 2
you know? So, yeah, we talked about Polypane, but, which And then at some points, I thought,
Guest 2
So, yeah, my sick pick is if someone could come up with but, OpenGraph previews.
Guest 2
so I I have a a a NUC that I use, And you you miss those things.
Scott Tolinski
killing it in the, design tools and dev tools.
Guest 2
So And, ideally, you'd have, like, some idea of where
Guest 2
and I definitely don't want to spend a couple €100 that doesn't, Like, where doesn't the font size match? Where is the spacing off? Where or worse.
Guest 2
I'll add more and more, because you are, like, sort of marrying
Guest 2
Like, that's another thing.
Guest 2
I've At the end of the day, that's a quality issue and specific information for form elements that, You know, show you just a little bit more information than, Hover effects, Gershaws, dot design.
Guest 2
design things well
Scott Tolinski
if you what do you do to stay up to date in programming stuff. I read and columns and rows, and you can have programmatic rulers.
Scott Tolinski
going to be a totally different I mean, it always feels like this, but it it they're gonna it's gonna be a totally different landscape very soon here.
Guest 2
like, a version of that is behind the flag in the most recent Chromium, for the past year,
Guest 2
browser version that I know I ship.
Guest 2
Like, that's not how a desktop app works.
Guest 2
No. Actually, with changing note versions.
Scott Tolinski
Mhmm.
Guest 2
these they need to make desktop apps work, You can see where I got that from,
Guest 2
in CSS.
Scott Tolinski
under the monitor. Yeah. What about, like, keyboard? Do you use anything
Scott Tolinski
West, do you wanna take that first one?
Guest 2
and I use that instead. So, And if it's tooling, then,
Scott Tolinski
And don't forget to subscribe in your podcast player
Scott Tolinski
Yeah. You ship the flag. Yeah. Or just even without a product. Yeah. Yeah. Yeah. And, specifically Killian's tool, which is Polypane. We're gonna be talking all about some of the cool things In Polypane, I've been using this thing myself for a little bit now.
Guest 2
Small or big accessibility issues for people, to make that work, I also have an Intel MacBook, which Oh, okay. I'm on right here. Yeah. And I have
Wes Bos
Oh, yeah. I've I've been on the MX Master 2 for years. I bought it like a a month before. I remember telling Scott, oh, I got the new MX Master. It was on sale. And he's I'm pretty sure it was Skye. That's because the new one's coming out next month. Oh, it wasn't me. I'm gonna tell you that because I am not on Now now I stand out. I I I do, like, trackpad all day. Give me the biggest trackpad that exists, and I'll take that. Oh, man.
Guest 2
So Yeah. Yeah. Once you start, it's very hard to I I was keeping track of that for a while. Like, It it was implemented, like, visually at some point, but it did didn't actually do anything. And then
Scott Tolinski
A knock is spelled. Yeah. I don't know knock. Oh, it's,
Guest 2
Oh.
Guest 2
a Microsoft Surface Go. So, It's called the eyedropper API.
Guest 2
Man. So you can export that to CSS, to JavaScript, to Android XML.
Guest 2
oh, of course, you can't see that, but, a Surface Go, like, Chromium bug reports
Guest 2
it sits on the table like editing 1 and then editing the other and then editing the 3rd Like, Twitter Google Playground. Yeah. Took that role for a while, but It's a soother in Canada.
Wes Bos
So you are obviously up to date with
Guest 2
user,
Guest 2
So I I really like that CSS nesting is now getting traction.
Scott Tolinski
for a full archive of all of our shows.
Guest 2
keyboard.
Guest 2
that has a Pentium Processor. I kid you not.
Guest 2
but I don't know anything about it.
Guest 2
And the idea is that, you know, as time goes on, So you do want, like, a little bit of a barrier between that. So if you do cool stuff with Electron, go read those those docs.
Wes Bos
Yeah. What, computer are you using with this? And I'm gonna add on top of that monitor.
Guest 2
I haven't really gotten into container queries yet, because every time I want to use container queries, I end up with something that actually is more suited for media queries, Interesting for a keyboard. Well, I so before we go to that, It's all super intimidating, And I I don't have any, like, personal story with that or whatever.
Guest 2
I want 1, big, big machine and and, you know, constantly bump into it with my knees.
Guest 2
Get this
Guest 2
I'm just gonna get, like, a little box, and and that'll be fine.
Guest 2
And then go back. When I need to do react again, I just go back to Atom.
Guest 2
like Google Reader, but that died, and
Guest 2
and then it spits out design tokens for you.
Guest 2
But I I replaced that with a Lenovo And it's not quick.
Wes Bos
Awesome. Yeah. Thank you so much for coming on. This I could honestly probably ask you questions for another hour of, how did you do this? What's this? And this is really, really cool.
Guest 2
I ended up not using it because I I didn't need it.
Scott Tolinski
I'm in the same boat. I will I'll gladly take your money for that exact thing. I want low profile,
Guest 2
and I get them from wherever.
Guest 2
CSS toggles, including and I just started using it. And that was a really cool experience.
Scott Tolinski
I we used to test IE 6 on a, Like a CRT monitor, like old computer. Oh my gosh. It felt very, like, appropriate to do so. You would, like, have to boot it on and, like, come back to it 10 later. Alright. Let's test out e six. Alright. Let's take a look. Yeah. It's it's kind of like that.
Guest 2
and there's no
Guest 2
So that's all going to be very, and it's just really easy if you can overlay an image,
Guest 2
but, So Superposition is an app where you open your web page, then it parses all your CSS.
Scott Tolinski
sick picks and shameless plugs? Did you come with a sick pick for us today? Yeah. But it's kind of an ask as well.
Guest 2
which runs Linux, which is my primary device? But Browsers do a lot of really clever stuff to whatever you type into the URL bar before it ends up being rendered.
Guest 2
It's very slow, So it'll be like, you know, this gray is way too light. Here's a better gray, or here's a better blue, or here's a better red. Like, whatever Now I'm thinking of replacing it with, like, the newer version.
Guest 2
which one, But it has, like, a really fancy foot. Like, there's, Like, the the cleverness that many browsers do is more around, like, HTTPS stuff.
Guest 2
a while ago So,
Guest 2
that you can install
Wes Bos
Cool. Alright. Well, thanks again. Really appreciate it. Likewise. Thanks. Thanks,
Wes Bos
Do you have a massive monitor to put all these panes in there?
Guest 2
I just used the Logitech
Guest 2
and, went to look for, like, a new desktop computer, I was like, I'm not gonna button that said reload next to it, apps. Yeah. And Atom does it well, and Versus Code still doesn't.
Scott Tolinski
What about, Okay. So in addition to having all these pains and having all these global tools, there's also Individual tools for each canvas.
Guest 2
provide you with a color Nice. I used to be a very big reader so for example, if you're if you have HTTPS and your site only works with about www, I don't need that to apply to, like, my part of of Polypane.
Guest 2
for every contrast issue.
Scott Tolinski
Or drop a review if you like this show.
Guest 2
I also have 2 other tools that I think are pretty cool. So I have a tool called Fix Alley, tool. But yeah. So Electron API? Yeah. That's just a a regular Electron API. That's nice. It's that's
Guest 2
color you use, I find the the closest one that does have enough contrast,
Wes Bos
Yeah. Might be, might be not around for a a little bit more.
Guest 2
so, I got the MX Master 3,
Scott Tolinski
and I'm happy with it. If it works, it works. What about,
Guest 2
But, like, there are rules for how a desktop app should behave, see How it all fit together.
Guest 2
So the contrast checkering polypane will automatically sophisticated solution for that. I just draw the line twice, and one of them is slightly thicker and white.
Guest 2
with, like, a a little square, and then there's 1 pole going to, like, web standards were just coming up, The other one is another app I built called Superposition It's, You don't want that to happen, but the benefit of polypane is that I can have an entirely different balance
Guest 2
I was like, cool. Now I can just use container queries everywhere because That's super well supported in in the very specific and they're really nice. I have one for my my home media center.
Scott Tolinski
Yeah. CSS
Guest 2
a Windows machine Or people do tend to ask me, like, you know, why accessibility? CSS object model.
Guest 2
would have actually had to write more codes your page useful things to people's fingertips. Yeah. Just make it super easy to test All the things you should be testing this thing, which is
Scott Tolinski
is
Guest 2
laptop a 27 it's like a max sized Intel device.
Guest 2
and it's decent.
Guest 2
with, like, the exact same problem I have, which is that But I ditched that for JavaScript codes. That's 10 times as slow, that you actually
Wes Bos
That's cool. What about your text editor?
Guest 2
And I just want that to work more or less consistently I still use Atom.
Scott Tolinski
I mean, especially once container queries drop. But, again, after all this other stuff, I mean, we Wes and I have had so many episodes on the future of CSS, and we've never Had 1 on CSS toggles. This just goes to show you, like, how many different
Guest 2
And I also built an Adobe XD and a Figma plug in. So if you have the app open And you have XD or Figma open, So there's there's a little
Scott Tolinski
things are coming to the browser here for CSS.
Guest 2
low profile keys
Guest 2
And, you know, would I have used container queries? I So I got a Surface Go.
Wes Bos
browser tech and probably APIs and everything that's coming down the thing. Is there anything that you're really excited about or Or maybe Wish would move a little bit faster.
Scott Tolinski
and I want a split
Guest 2
So the reason I used it for a very long time was because I don't think the, because the the browser will fix it for you anyway.
Guest 2
inch screen.
Guest 2
to the screen, so it's, like, really clean
Guest 2
I I just get stuck on the particulars.
Scott Tolinski
as well into this list. We'll have all these links available in the show notes. Everyone, go check all this stuff. And, Killian, you are,
Guest 2
which is fixaoneoney.com,
Guest 2
So I, like, I put up Versus Codes So you you need a little bit of crappiness to make sure that you compensate for, like, the average Asus which is like a single thing displaying a web page.
Guest 2
So that's that's my my shameless plug number 1.
Guest 2
Like, For example, everything in Versus code has a pointer cursor, passing the HTTP to HTTPS
Guest 2
Awesome. And I'll I'll I'll keep trying for a while, but, And then when I
Scott Tolinski
Head on over to syntax.fm
Polypane dev tools allow custom overlays like accessibility alt text
Scott Tolinski
So I guess, the the big question here for me is, like, one click to disable JavaScript,
Scott Tolinski
light mode, dark mode. What what is it gonna look like in All of these situations,
Scott Tolinski
Uh-oh. I gotta fix that. Like, it it puts us all right
Scott Tolinski
so good. What sorry. When I call this app an iceberg, Wes, you're gonna be saying that a lot there's an endless amount of stuff like that. Sorry. Continue, Kelly.
Scott Tolinski
is this Is every single feature in here a result of dogfooding, or
Guest 2
it's a whole bunch of dogfooding, buy mostly a lie as far as browsers are concerned.
Guest 2
there. Yeah. Yeah. Yeah. Yeah. Like, reverse engineer But then I I had that, and I was like, you know, this feels kind of,
Scott Tolinski
links,
Scott Tolinski
And like reimplement
Scott Tolinski
images. And honestly, my favorite one is the grid is essentially just those 2 combined. And then you took it another step further with the overlay,
Wes Bos
are are you just good at knowing what people want out of this stuff? Yeah. Like, I need that. I didn't even know you had that feature in there. And, like, the amount of times I've had to deploy something just to test What it looks like in the Twitter card validator, which is broken half the time,
Scott Tolinski
But then you can also do landmarks if you want to get the outline of your site via landmarks,
Scott Tolinski
If you if you hit the tab button, what's gonna focus on next? And what's really cool is that this is maybe one of the coolest features on here,
Scott Tolinski
And it will it will show you a
Scott Tolinski
you kinda wanna know where your Keyboard order in generally is, right, your tab order.
Scott Tolinski
over the top of your website, 1, 2, 3, 4, 5, with arrows pointing to where to where it goes next In the tab order of your website, so that way you're never having to, like, guess When and where the tab order falls apart if it does at all.
Guest 2
So that's where I added, Like the the top parts where it shows you, like, the favicon and the title and the open graph tags and the the Twitter tags, etcetera. And even get further into this info tab, But all of it is kind of clunky.
Guest 2
to people that come with their ideas Whereas if you keep toggling, then, you know, your eyes need to readjust, like, not super long, but for an instant.
Guest 2
And then sometimes I get nerd sniped, and it was like, I yeah. I I need this to happen, so I'm I'm gonna make it happen. Wow. But yeah. So the All the things you can be broken at, and they'll still try and make it work because, you know, that's best for them. Yeah. They want it to work. Yeah. Yeah. But then I had that and was Like, okay, but now I have a Twitter preview and a Facebook preview, That's prebuilt.
Guest 2
sorry. I'm not gonna do that right now.
Scott Tolinski
In front of me, in this this meta information,
Scott Tolinski
it shows that there's no robots dot txt on this file that I'm looking at. There's,
Scott Tolinski
what the tab order is. You can see a visual version of it, and that way you can test it without Having to hit tab a 1000000000 times to see where it goes next. And I can see very clearly from looking at my website, like,
Scott Tolinski
It's so cool. It's just like so Was this again okay. I'm gonna just keep asking this, but this outline feature here, Mhmm. The rulers and guides and columns and rows and those types things. This is inspirational coming straight from Sketch. Is that, like, you're just like, what kind of design tools did could we have in the browser? Yeah. Again, this this started like dogfooding.
Scott Tolinski
the next part of it is the outline tab, which gives you, like, a full on outline of your site based on different things. So the default option being headings,
Scott Tolinski
all of the different types of sites, what it's gonna look like. I was recently designing my social cards, and this was, like, a huge help for me to be able to see in. Yeah. What this would look like in Discord, LinkedIn, Slack, Facebook, Twitter,
Guest 2
like, not inspectable.
Scott Tolinski
it's shocking that no other browsers have this when we have all of these Ideas of OG images and stuff like that that we all need.
Scott Tolinski
is there's an overlay. And I didn't know this overlay existed until Kelly and I had a meeting. Andy, he was showing me this outlines feature, and this is something that I completely overlooked.
Guest 2
and seeing how we can make that work. And, of course, like, the the fun thing is that
Guest 2
But also a whole bunch of listening to
Scott Tolinski
A diagram which we can talk about this because there's a lot of Accessibility stuff. But before we do, like, what's your what's your background in accessibility? Because
Guest 2
but how do they get built? a big box.
Guest 2
Yeah. So it's, To if you want which is for now, it's a free browser extension
Scott Tolinski
but not only that, you
Scott Tolinski
Aspects of this in like, from a meta side of things. So there is the info tab in your dev tools. Yeah. And this is something I wish every single browser had because What it does is it gives you previews of all of the different social images based on,
Scott Tolinski
The focus order of things because typically, you know, when you're building for keyboard accessibility,
Guest 2
sometimes they ask for something, and it's super easy to implement. And I can email back, like, in half an hour, like, look. It's working. It'll be in the next 3 weeks.
Polypane browser built with Electron and React
Guest 2
like, I'm I'm not an expert, So, specifically, I use native codes to,
Wes Bos
Yeah. Well, that's it's probably better to catch it there than to accidentally catch it on, like, a curl request. Exactly. Exactly. So that that's that's a very interesting balance in Polypane where,
Guest 2
quickly enough.
Guest 2
Yeah.
Wes Bos
a DNS set up locally that were resolved. Do you have to do anything weird there, or is that network level? That's actually network level. The,
Guest 2
spec wise Yeah. So I did that, and then, of course, I added a pithy message rather than, And I I still very much workflow which
Guest 2
like, it is a user facing
Guest 2
and all the browsers nowadays, You know, whatever Like, I I had the I had the previews. Like, I, there.
Guest 2
product, built, like, this mini app across all my But when I started of course, I need to make sure that Polypane works well on all the operating systems. Mhmm. Yeah.
Scott Tolinski
Yeah.
Guest 2
is like, everyone has their own little In Polypane, I do do that.
Scott Tolinski
So it feels very much like a browser. Right? You said it's built in electron on top of your pane to design directly on. And I gotta say highlights, so to say. Mhmm.
Guest 2
All the cleverness that browsers do Wow.
Guest 2
www disables JavaScript, an image compressor, But, again, that's kind of okay because it means I can test Polypane on something that's like, I I'm I built an Astro website, part of a URL So I, you know, I kept working on it a little bit,
Guest 2
Oh, and and press enter quickly enough. It will just auto fix that for you.
Scott Tolinski
the the the front end here.
Scott Tolinski
with React on,
Wes Bos
stuff like that. To parse the whole URL too. I didn't even think of that. Yeah. Yeah. Yeah. So
Guest 2
.com I don't.
Guest 2
Kept it up to date. Now it's at React 18.
Wes Bos
the, like, the gooey of the, like, the browser part, like, the the part where you type your address in and all that, did you have to recreate that, or is that Is that part of Elektron? That's all HTML and CSS and sort of reverse engineering
Guest 2
and you type it with www.
Guest 2
That probably shouldn't happen, which let you keep, like, state like things and, like, just in a way that it just fixes it for them and they don't have to think about it.
Guest 2
So the this app started with React 0.14
Wes Bos
or You have, like, a
Wes Bos
local host or dot locals,
Guest 2
and, you know, just extensions that, like, fix
Guest 2
and just lots and lots and lots of components everywhere. That's unreal. So the for form inputs.
Guest 2
Yeah. But But no browser will do that And then it becomes well, if so, you know, so that's that's kind of cool.
Polypane tools are focused on accessibility testing
Scott Tolinski
and and ship that. Yeah. I was wondering I was gonna ask about that. Yeah. So you can do that? You can you can turn a flag on in
Guest 2
to maintain but I think style queries are going to be very cool,
Guest 2
And you know, just like pressing command s all the time, like, this is kind of dumb.
Guest 2
that's actually
Guest 2
so a screenshot of the entire page because there there's multiple ways to do that and Creating multiple screenshots and then stitching stitching them together
Guest 2
a thing that has complete access to your entire file system.
Guest 2
of building your own browser is you can just turn those toggles on by default for regular screens,
Guest 2
really annoying, Astro and
Guest 2
So I was using native code for that,
Guest 2
For very good reasons,
Guest 2
There is really good security documentation available on, like, what to do and what not to do,
Guest 2
and then just wait for that to land.
Wes Bos
JavaScript, or do you ever have to dip into native code? At some point, I had some native codes.
Wes Bos
building in Electron is that the some of the limitations
Wes Bos
in in Electron and ship that with that flag on? Okay. Cool. And what about the Screenshot. Is that an another API, or is that a is that a,
Guest 2
which parts of the operating system. Is everything that you're writing And that was fun because, like, it's 1 giant SVG, so I had to figure out How to the regular Chromium tooltips.
Guest 2
which parts of your app have access to and that will just Automatically fix contrast issues on all the websites you visit.
Guest 2
behind the experimental flag first,
Guest 2
is by far the best one.
Guest 2
There are really good security documentation.
Guest 2
But, yeah, you you get a little more control over
Guest 2
Right? Yes. So browsers have a very strict security model but, like, Yeah. Atom works, So Nuxt are made by Intel, and Nuxt stands for next unit of computing.
Wes Bos
of being in the browser aren't as limiting
Wes Bos
I guess the benefit of,
Guest 2
as as most features do.
Guest 2
So I I could already, like, implement all the other parts of the color picker, So you can Nice. You can, Like, hover over your menu, and if that does a fancy thing, it it'll do that in all the panes.
Guest 2
application, You know, figuring out and playing around with, otherwise, you weren't doing a good job.
Guest 2
across, Yeah. And you just don't realize that until it doesn't work in your app, and you're like, why? What what are the other browsers doing? Like, what What about, like the biggest one for me is, like, when you type in, like, local u URLs, either
Guest 2
but but for very good reasons, the Chromium dev tools, they work by attaching to, Inspecting, stitch images together when I create a full size screenshot, with a screenshot, Mhmm. So it's it's linked to the web page, and it it scrolls along with the web page. Oh, cool. And that way you can you can, you know, still very quickly compare, but it's not under the
Guest 2
like, across all platforms To, you know, to figure out how the URL which is the best mouse ever,
Guest 2
It landed in, Put that as a marker on the middle of each line.
Wes Bos
When you have control of the whole whole browser.
Simulators for various disabilities built-in
Guest 2
and then parse further because, you know, you can put layers in layers In layers in layers in layers in layers.
Scott Tolinski
Bulk like, every different I I didn't even know there was more than, like, 2 or 3 types of color blindness, and I'm looking at, like, 20 of them here. So,
Scott Tolinski
I like the dyslexia simulator. It's a little cheeky, but it's fun.
Scott Tolinski
color blindness color blindness of different types, blue, yellow, red, green,
Guest 2
and then match that, that just annoys me to no end.
Guest 2
You have to, like, template support in Atom, so that's annoying to write. So I do that in Versus Code.
Guest 2
if you can you know, name specifically for this device? Oh, That's a subdomain. That's a different URL, so it just should just give a four zero four.
Wes Bos
1 question I'm curious here is about, like, I know you You can list all the breakpoints and whatnot. Do you have to parse the CSS on the page at all? Or Yes. Like, is there any cut so what is that? Is that a bunch of node processes?
Scott Tolinski
I really like, You know, over 60% of your page font size is below 12 pixels.
Scott Tolinski
or or do we hit all the big big stuff? So one of the things that
Guest 2
Switching back and forth.
Guest 2
Generally, don't because it's not like user facing. It's JSON fewer into Polypane.
Guest 2
The way I do that is with the JavaScript Like, does this formula work? No. Maybe I need to invert something or whatever.
Guest 2
in other browsers, what usually happens is that you you can only ever see one thing
Guest 2
but the specification from Photoshop.
Scott Tolinski
tunnel vision.
Guest 2
because,
Wes Bos
whatever.
Guest 2
if you really need that, then you you are going to need the the Chrome dev tools for that. Yeah, man. Wild. So, okay.
Guest 2
Handy. So Yeah. So if one of them doesn't work,
Guest 2
I had to implement layer support in the, You know, a line has a color, So before that, it was all Python, and I was essentially, like, stumbling my way through, started my first company when I was 16, like, align it You know, what what features I surface. So there's, like, there's no bookmarks at the moment, though people are asking for that, so I'll probably implement it.
Guest 2
Yeah.
Scott Tolinski
there's just so many I'm sorry. I'm I'm gonna this whole episode is gonna come off like an advertisement because I I I just
Wes Bos
I want people to make better websites. That's that's the whole thing. We we talk about that a lot. It's like if tooling Tooling is really the only way to make some of these things,
Scott Tolinski
disability issues. So you can simulate
Scott Tolinski
I I could go on all day about this stuff because there's a lot of, like I said, a lot of tools that are Just not on the surface level of this thing.
Guest 2
I haven't implemented that. I might at some point, but,
Guest 2
Jump out as much, And Yeah. That's still fine. Like, 10 times as slow you don't necessarily know whether or not they are in a layer.
Guest 2
all of the things in Polypane really work well together
Scott Tolinski
The the goal here is to just bring all of these these
Guest 2
And,
Scott Tolinski
You can simulate a night mode or a brighten screen or a dim screen.
Guest 2
And, like, there's attention there because I want them to exist, The the columns and the rows, and then in terms of,
Guest 2
For example, if you import CSS, you can assign a layer to that import.
Wes Bos
The human is only going to do so much. And if we want things to if we want to do things like compress all of our images or or convert them to web p if it's supported, All of that type of stuff, that can't be a manual task. You have to have some sort of tool in place to to do that.
Guest 2
parse up the tree until you find a layer Because one of my pet peeves was that I'm like, I'm a serial, a split orthogonal hasn't been made in well over a decade. And mine finally died, and I Couldn't repair it, it landed fully.
Guest 2
That makes sense. Because you'll see, like, the light mode and the dark mode, and then you'll see, like, a specific text that's The same color on both that you you don't expect. But if you only see the 1,
Guest 2
In that
Wes Bos
websites, faster, better, stronger,
Guest 2
you know, if something like, for example, do you know how to disable JavaScript in Chrome?
Scott Tolinski
Wow. So
Guest 2
then, you know, that's very bad.
Wes Bos
I and it goes in there. The menus or the preferences? Out of the hunt for it. Yeah. Yeah. And and, you know, I've been using that for
Guest 2
And if you see it side by side, that's very Very easy to find.
Scott Tolinski
While you can simulate farsightedness,
Guest 2
And and, you know, that's mostly okay So you can go 1, 2, 3, and I I think that's in then just so that I I didn't have to bother, Like, recompiling Because, like, Chrome isn't for developers. Chrome is for users. And if a user accidentally
Scott Tolinski
the fact that you've made all of these things that are No fun to test for. And what happens is people just don't test for them. Exactly.
Scott Tolinski
Is there anything that we missed that you're particularly proud of,
Scott Tolinski
They just ignore them. And you made it really easy for for people to have these at a glance.
Guest 2
there's a bunch of stuff I want to do, but can't right now,
Guest 2
sit in which layers?
Guest 2
And one variant. And it's usually when you see multiple variants side by side that you notice the things that are wrong.
Guest 2
writers
Scott Tolinski
it's
Polypane written in JavaScript, not much native code
Scott Tolinski
And that was never super fun, but I always loved it for typesetting or making sure all my margins are tuned up.
Scott Tolinski
and guides but I also can't be too accommodating because that would obscure things that you as a developer should want to fix. Totally. Yeah. It's a dev tool at the end of the day. I'm I'm really impressed with this. It's funny. I'm really impressed with this URL bar overall because, yeah, I would've I would have thought this was, like a native Chromium one, not just because of the how it feels to use, but, like, even the icon style of all the buttons feels like exactly chrome. And that's I was gonna ask you, like, how did you get all of these, like, browser extension type of icons in here? But the fact that this whole thing is part of the React app That answers that question entirely.
Scott Tolinski
You can add rulers
Guest 2
I I usually just, like, try stuff until it works.
Scott Tolinski
Individual canvases.
Scott Tolinski
So for all of our design challenged folks out there,
Guest 2
every time I blinked.
Guest 2
That's what I did with the well over a decade.
Scott Tolinski
And and that was something I had wrote an extension for myself was to drop in some, like, rulers.
Scott Tolinski
else is that image overlay.
Scott Tolinski
And this is a feature I haven't seen too many places
Scott Tolinski
But I love that you can on each of these
Scott Tolinski
Yeah. When you're generating a lot of screenshots,
Guest 2
I wanted to line stuff up, and, How nice. This for Polypane, So I have to do all this manual stuff to figure out, like, what does the layer 3 actually look like And then which rules And, I mean, it it it still hasn't died, but I did replace it recently.
Guest 2
in the grand scheme of things.
Guest 2
and then, like, You know, that's just where I started. Like, you need to write good For the longest time, I used a 10 year old's particularly when you can combine that with, So I I was using that workflow in Sketch, So at that point, But I get I get questions about that. Like, why what I usually do if I do end up, and probably you forgot to switch, like, 1 variable for 1 element.
Guest 2
And stuff stuff is happening, all sorts of things, context menus.
Guest 2
and that that makes it okay if it Takes a little longer. Don't look. Don't look. Don't look over here. We're doing something.
Guest 2
is still pretty okay, And you can configure that really quite nicely in Electron.
Guest 2
columns and and rows in there because it's kind of the same type of math. Mhmm. And I'm I'm not a very big math guy.
Guest 2
they'll open up, like, a notes window you know, The Chrome DevTools team can just build that in c plus plus and use it, like,
Guest 2
and then have it stay there while I did other stuff.
Scott Tolinski
you're not you don't need that be like an instantaneous Okay.
Guest 2
response anyways, at least in my my experience. Yeah. You you can dress it up as well, which is kind of what I do. Like, I I blur the pane, then I show a little spinner.
Guest 2
So I just wanted to put a line somewhere, And, So I think if you're the developer of a website, you should know.
Guest 2
like, at how many pixels you were placing the line. So I had to Figure out how to write those rulers or, you know, a lot for you, which is nice, and that's part of the specification.
Guest 2
on top of the page, Or they'll open, like, the screenshot tool and then drag that around, and,
Guest 2
you know, everyone has their own way of doing that in the browser. Like, they'll they'll add, like, and then you can do whatever.
Guest 2
But, you know, then you need some UI to place that line,
Tool for web developers called Polypane
Guest 2
And then at some point, I was like, you know, this is kind of dumb. I could just so then you you don't really have to bother as a user anymore. As a user, you just want it to work.
Guest 2
You know, did some other things, came across, and then all the other panes will automatically follow.
Wes Bos
That was yeah. But you you worked on that, or you you worked on the Linux version of it? Yeah. I I worked on the Linux,
Guest 2
GUI for that. Wow. That's cool. And then, and just, like, plain CSS.
Guest 2
faster, easier, better.
Scott Tolinski
Polypane
Scott Tolinski
as a dev tool,
Scott Tolinski
canvas sizes all at once, Which is a, you know, a thing that other browsers are doing. And and that's like the the surface of the iceberg because there there's just a 1,000,000,000 more little
Guest 2
whenever you did press command s. Mhmm. It'd be like, I already saved this while you're pressing command s.
Scott Tolinski
And,
Guest 2
tools to help me I
Wes Bos
Hey, everybody. Excited to be talking about polypain.
Scott Tolinski
about? With me as always is Wes
Scott Tolinski
which is it's a whole other story. We can get into that as well. Yeah. Let's get into the Polypane side of things. For for those of you out there who have never heard of this app, basically, you could think of
Guest 2
build an app that just saves automatically every time I type something.
Wes Bos
I know Scott has been head over heels over this tool, and it's just It's really cool. I've been trying it out myself. On the polypane train. Yeah.
Guest 2
not really having an idea what I was doing, but or the the panel that I added into Polypaint,
Guest 2
Web technologies.
Guest 2
I've been a developer for a very long time.
Guest 2
We often feel that way around here. Oh, that's good. I'm in good company then. Yeah. Essentially, I've I've always been writing
Guest 2
You know, at at some point, it works, and then I stopped touching it.
Guest 2
I built a Linux interface for f. Lux, You know, making that accessible through JavaScript APIs. So for example, all the operating systems do that, Press alt, which shows the the tooltip, Build websites
Guest 2
autosaver.
Guest 2
which makes your screen more yellow at night. Like, nowadays, Stop adding adding cool things. Like, oh, happy this. And then, you you know, Yeah. Then, like, the benefits very interesting. Man.
Guest 2
which was, you know, just building websites and and then later when they became a thing, apps for for other companies. So I I actually predate The responsive web? That's a kind of a special indicator. Yeah. Wow. Yeah.
Scott Tolinski
Let's get started by maybe you can tell the audience a little bit about who you are, what you work on, and, what you do. Yeah. Sure. So I'm, I'm Cillian. I'm a developer from the Netherlands.
Guest 2
And that's when I really started,
Scott Tolinski
yeah, we're just gonna be talking all about what it's like to be building cool dev tools and What are some neat type of dev tools that people don't often think
Scott Tolinski
Responsive view ports in 1 canvas so you can see your your site and all these different,
Guest 2
Note taking application.
Guest 2
2015, That's mostly it. Like, I I read a lot of articles online, So that's where a lot of that that tooling comes from. Nice. Wow. So
Scott Tolinski
Extremely useful dev tools inside of here that we'll get into in this episode, so don't feel like we have to talk about them now. But how how did you get into Polypane, and how did that Become a thing. Yeah. So, I started working on polypane in
Guest 2
build desktop apps with I haven't really found the proper replacement, because the browser APIs just don't exist.
Guest 2
Like, a decade ago,
Guest 2
And then, like, shortly after Node Web Kits,
Scott Tolinski
a a dev tool browser
Guest 2
you know, making a bunch of desktop apps. So I started out with, like, a super simple But, So I see that message daily now. So it it hasn't worked, But, you know, the app exists. And then from there on, I started working on Polypane,
Guest 2
Yeah.
Hover and focus syncing across panes speeds up workflow
Guest 2
and your CSS needed to validate, And it needed to be accessible,
Scott Tolinski
it it seems like you've
Guest 2
like, rectangle some not not a rectangle, a triangle somewhere else, and then I So there there are things the polypane elements panel doesn't do.
Guest 2
the way I've I've set up these debug tools is that each is like a discrete Scripts that stakes the the documents Electrom came out.
Scott Tolinski
show ARIA attributes. There's the Ally CSS that does, like, an overlay. There's totally
Scott Tolinski
inside of these debugging tools, there's, like, one Clicks. You said they're just kind of like scripts.
Guest 2
doing websites, Or the URL that the user actually meant, You know, Versus Code is Electron. Atom is also Electron. Polypane is Electron.
Guest 2
But, like, it's your job to make sure that the browser doesn't have to do that because it'll be better for it and it'll be more resilient, and If you use Twitter, then it uses the Twitter description. But if that's not there, it uses the OG description.
Guest 2
So it's super easy to add A ebook because, indeed, it was like, you know, I wanna be able to see all
Guest 2
and, you know, we were fighting the fights against IE 6. And,
Guest 2
which is build a website and, and then figure it out that way.
Guest 2
you're doing a job, I've been wanting Does my URL not work in Polypane? It works in all the other browsers. Oh, interesting. I have to explain people that their server is misconfigured.
Scott Tolinski
1 clicks to do so
Guest 2
Compensates
Guest 2
you better get it right and the browser makes it really easy for you to do it wrong And, like, conversely, They, like, they resurrected forward you to to the www or without www Well so I have this browser,
Scott Tolinski
many things. Reachability
Scott Tolinski
z index, detect small size,
Scott Tolinski
Loaded this thing with accessibility tools.
Guest 2
elements, And for each of those,
Scott Tolinski
Ally,
Guest 2
It'll work, like, 10 years from now, 20 years from now, That's my my own highlighting tooltip. And the neat thing is that that means I can put anything I want in that highlighting thing.
Guest 2
better get that right.
Guest 2
make it really hard to figure out for you what you're doing wrong
Scott Tolinski
checker with double a or triple a, track focus, show you know, ignore because they're hidden behind hidden behind menus. Is that really Yeah.
Guest 2
Think that way, but That Brent
Scott Tolinski
which I haven't used this before, but it seems like, its own tool that Yeah. Allows you to again have, like, overlays.
Scott Tolinski
for your left hand, your right hand, unneeded Scrollbars contrast
Transcript
Announcer
This is
Announcer
Oh, I'm starving.
Scott Tolinski
Welcome to the Syntax
Announcer
Wash those hands, pull up a chair, and secure that feed bag, because it's time to listen to Scott Tolinski and Wes Bos attempt to use human language to converse with and pick the brains of other developers. I thought there was gonna be food,
Scott Tolinski
Kylian
Announcer
so buckle up and grab that old handle because this ride is going to get wild.
Announcer
I sure hope you're hungry.
Announcer
the Syntax supper club.
Scott Tolinski
Oh, nice. Okay. Hear
Scott Tolinski
Supper Club.
Scott Tolinski
Volkoff. Is that how you say your last name, Kylian? That's very good.
Scott Tolinski
Oh, okay. Now I feel like you're just buttering me up, but thank you. No. No. I'm not.
Guest 2
it that well.
Scott Tolinski
We have,
Scott Tolinski
We're gonna be talking about
Polypane helped speed up implementing designs by 60%
Scott Tolinski
let's talk a little bit about How it's built. So,
Scott Tolinski
because while that is, like, a great feature, Me too.
Scott Tolinski
you mentioned that you were doing a lot with Electron. Is this an Electron app? Is that is that the Yeah. Yeah.
Scott Tolinski
you've been busy adding Mhmm. A lot of features into this thing. So I guess before we get into some of the nitty or grittier type of dev tools that you have in this,
Scott Tolinski
you know, I use this quite substantially in our redesign, and it helped me out a lot to be able to have all these different Canvas sizes. But when I I made a a TikTok showing off that I really like this browser, I got a lot of people being like, Yeah. X, y, and z. These other products already do that. And I think it's important to state that that's, like,
Scott Tolinski
not all this thing does,
Scott Tolinski
See all of your windows at once when you when you're designing things. And in fact,
Scott Tolinski
like, the canvas tool, like you mentioned specifically with the Sketch Artboards. So So that was, like, the genesis of it all, which is interesting because, like I said, like, on the surface, like, that's what a lot of people see when they see the app is first and foremost. You can
Scott Tolinski
So so this is using Electron. What what are you using for the front end of it, so to say? I'm using React
One-click tools to disable CSS, JS, images for testing
Guest 2
So that that'll take it still feels like magic whenever that's
Scott Tolinski
which, like, Testing that kind of stuff is never any fun. You got to do Mhmm. Jump through hoops to do it. You have to hunt and find. These are all just a one click away.
Scott Tolinski
Then in as far as content goes, readability,
Scott Tolinski
chaos test.
Guest 2
Each text note and randomly half it, double it, or triple it. Oh my god. So it's essentially like a super quick way to test if your stuff doesn't break.
Guest 2
If you, for example
Guest 2
would translate it to German indeed. Yeah.
Scott Tolinski
Oh my gosh. This is so helpful. Those of you don't I don't I don't think about this. So many times you get a design from a designer,
Scott Tolinski
you know, 16 characters or whatever for your text, and then you start plugging in some real text and the whole thing breaks. So this is like a great opportunity to show your designers, like, what this could very well look like in various situations and get people really thinking about dynamic sizes and dynamic things. There's also one click to disable CSS, one click to disable images,
Scott Tolinski
There's also a bunch of simulators for,
Scott Tolinski
What is the content chaos test?
Scott Tolinski
that has a card with perfectly
Scott Tolinski
There's a content and
Scott Tolinski
tuned, Today, we have of a very special guest.
Started working on Polypane in 2015
Guest 2
You could really see, like, see the connections and and
Guest 2
Wow. At that point, like, the landscape
Guest 2
looked quite different.
Guest 2
Why not try and build that? Maybe I can also draw I hand built all those previews as well and, like, figure out, like, and figure out all the waste they lie and That's you know, that sits in a corner somewhere that no one really wants to use. Yeah.
Guest 2
I was back in Chrome,
Guest 2
but back then, it was revolutionary.
Scott Tolinski
polishing it, all the things. Nice. So it started out as, like, an iframe kind of,
Guest 2
really enjoying myself.
Guest 2
and that's that's really when I decided, like, you know, this is what I wanna do And started,
Guest 2
I figured, you know, there's probably something here. Maybe I should take this a little bit more seriously, tried switching over to Versus codes, Like, 4 or 5 times, and I design everything in the browser nowadays.
Guest 2
And it was just a really good way of designing and then keeping the overview And that that's mostly, So I I parse CSS style rules.
Guest 2
which, like, again, now it's not that special, Polypane elements panel.
Guest 2
And one of the cool things that Sketch did at the time was something called artboards, really makes me very happy. That's awesome.
Guest 2
And all I could see was, you know, the 1 screen size. And, you know, I like everyone else, I'd be resizing my window all the time.
Guest 2
But then when it came to the point where I had to implement designs, more of an idea of what to do.
Guest 2
Probably there's a better way. And then I remembered, like, the thing I was doing in Sketch was super nice.
Guest 2
and the the word reload, I replaced it with a nice icon. I added some more CSS, and I had a quick button to get to the dev tools for for each of these things.
Guest 2
And It was super cool because you could design a website and then you can have, like, your mobile artboards, next to your tablet artboards, next to your laptop artboards, and then solder something myself, which I've never done before. And then, like, either lose a limb or, x HTML, But there are, you know, these debug tools that make it really easy to, you know, have a light pane and a dark pane side by side. So you're you're not constantly potentially web content to and I don't think I ever will.
Guest 2
designs.
Guest 2
in,
Guest 2
at 1 night like, the browser they will proactively We'll we'll see how that goes. Yeah. Yeah.
Guest 2
with 3 iframes side by side and an address bar on top of it, like, with an But with Node Web Kits, I have Yeah. Yeah. So in in terms of keyboard and mouse, I forgot
Guest 2
And it ended up I was 60% But, you know, back then, it was pretty special that such a tool existed.
Guest 2
before Polypane and after Polypane, CSS custom properties, and then a little further down the line,
Guest 2
so quite a quite a while ago.
Guest 2
With my company, I had just switched over all the designers to Sketch,
Guest 2
So I did. I
Guest 2
like, fully working on polypane, adding a whole bunch of features, The for example, I just built, But that that's how you get the the nice outline, and that means that it it works,
Wes Bos
I remember that. Yeah.
Guest 2
until at one point, I started comparing my hours, Up until a year ago, I had the MX Revolution, And I was just happily using it, but not really thinking much about it, faster in implementing So if I have something, I I try to reuse it.
Guest 2
of, you know, which components look Which way? At different sizes.
Rulers, guides, and overlays inspired by Sketch
Guest 2
Like, I don't care about, like,
Scott Tolinski
overlay where you can drop a reference image
Scott Tolinski
And and so this this has a A reference image
Guest 2
like, what what I do sometimes do is take a screenshot of an old version of the page So I'll I'll write, like, 3 words, then press command s and write another word, then press command s again, just to be sure.
Scott Tolinski
you know, I personally worked with a lot of that is More full featured than anything else, I think, in this class. So you have all of the different,
Guest 2
like yeah. I I also don't use this because
Guest 2
sitting down with a designer or developer depending on what my role was and figuring out, like, where doesn't the thing match?
Scott Tolinski
but I know a lot of other developers So welcome to Syntax, Killian.
Guest 2
So the the this is, 24 inch Samsung Sync Master screen. Sync Masters were the best. Yes.
Wes Bos
who could freely use.
Scott Tolinski
And that design does not match the mock up, and you just say, alright. Are you even looking at this thing?
Scott Tolinski
8 pixels here or there if if it generally looks good. Yeah. And it's hard to get everything perfect at any Every single screen size. What about, like, your so inside the OnePane, there's debug tools and simulators,
Scott Tolinski
That that's a feature that I personally don't need,
Scott Tolinski
developer designer types who, you know, have brought back a a design,
Hover effects sync across panes automatically
Guest 2
this line from the database extra hard or whatever.
Guest 2
Then the info pane is actually the 1st pane that I added Mhmm. But I do remember fondly
Guest 2
either surprise people at first or they they don't notice it at all, But Polypane can actually sync hover effects across all the different panes.
Scott Tolinski
Okay. Now's the part of the show. We're gonna get into the Supper clubs where we ask you the same kind of questions we ask everybody.
Guest 2
delete But because Electron is a cross platform keyboard with that If you have the fanciest monitor as a designer So, I I built, I try to stay up to date with what all the browsers are doing naturally.
Guest 2
it's doing its thing. And if you do notice it, that Also means it's doing its thing, I hope.
Guest 2
So if you have, like, a bunch of forms to test, And then other times, something that sounds Just a simple will take me, like, 2 weeks, and I have to say, like, you know, And you you never noticed that because it happens before you realize that you typo'd, but it's in there. Yeah. And we don't make mistakes anyways. Right? Like, nobody makes mistakes.
Guest 2
and it can do that for hover, for focus,
Guest 2
Rather than you, like, sending your server 14 forms to process and, you know, because that's a very bad user experience.
Guest 2
I catch that and make sure that it only happens in one pane How then do you help a developer understand what the issue is and and why what they're doing that seemingly works is actually the wrong thing? I you know, I test all the websites all the time in Polypane. And, you know, whenever barrier, Sometimes, if I need, like,
Guest 2
And, again, that really speeds up your workflow if you're, Like testing stuff, then you can use the design tokens directly in your design tool. These things don't rule. I'm gonna throw on polypane.app that, you know, that's a big laptop or maybe not a huge quality issue.
Guest 2
And if you don't notice it, that means it's it's tooling.
Guest 2
But then if you submit the form, MX Keys and the MX Master 3.
Guest 2
I see the sinking. It really, If you start building with Electron, I I built that because, and I do that side by side. So there's an option. You can toggle from overlay to side by side.
Guest 2
you can just do that in a single pane, but, Like, specific information for images, specific information for links, Then I I'm your guy. I'm gonna give you money. Please let me know. Yes.
Guest 2
So I, yeah, I I do really or I think I do really clever stuff a split orthogonal
Polypane URL bar and other browser features are custom built
Guest 2
isn't a really good experience
Scott Tolinski
You get highlighting on all of the canvases, not just one of them. Yeah. So that's that's custom.
Guest 2
a web contents,
Guest 2
JavaScript draw those rulers.
Guest 2
Dev tools, elements, tab stuff, is that all custom as well? Yeah. That's all custom as well. That's, like, tons and tons of I think style queries are going to be very cool.
Scott Tolinski
What about, like, the dev tools pane? So the dev tools to maybe give some explanation has, like, an elements tab like you'd expect in Chrome. But you can also open the actual Chrome, developer tools,
Guest 2
Multiple pages, and I do that with, like, a a marker element.
Guest 2
And it's it's super good at that, but I'm displaying with the syncing.
Guest 2
to, like, really quickly see the effects of style changes or content changes. Or even, like, the highlighting when you're hovering over an element, But, yeah, I I really like that. It took me a long time to get that right,
Guest 2
across all the panes.
Scott Tolinski
dev tools. So is your
Polypane dev tools are custom built for multi-pane experience
Guest 2
and then see if the alt text is there and if it makes sense. Man, Man. Wow.
Scott Tolinski
That that's
Guest 2
So, for example, for images, I show the alt text, And that really helps people doing accessibility audits. Oh, yeah. They can just very quickly, like, hover over an image, and then show that, canary releases and and stuff like that.
Scott Tolinski
to build out a custom dev tool set up like this and then be able to Mhmm. Augment it. So not just to be feature com you know, compatible or or, you know, close, but it's like, There there's that's very specific things like you mentioned that are able to be in here. That's really blowing my mind right now.
Scott Tolinski
because this this section of it I mean, it's such a a small section of the app overall,
Scott Tolinski
One of the my favorite And even to continue that further, there's media emulation and network. You can auto quickly toggle, prefers color scheme, reduce motion, forced colors. These are the types of things that, again, so many people just straight up,
Guest 2
Yeah. So it it has, And then there are some funny things that Polypane doesn't actually do, but that other browsers do. For example, in Polypane, if you mistype And then if you do side by side, it essentially becomes another ping.
Scott Tolinski
But the amount of work I'm just, like, going in my brain. The amount of work it would take
Scott Tolinski
wild to me that,
Polypane has visual outline mode showing tab order
Wes Bos
is an entire app in itself. It's a whole yeah. Yeah. Like, the how did You how did you build the color picker? How do you even get access to the color of everything inside of this app? Oh, yeah. The color picker has, Like a like a zoom in eyedropper for those of you who aren't using this app. Yeah. So that that's actually a a really new Chromium API. Oh, really? Yeah.
Guest 2
So I I don't have a very
Guest 2
So that's where I, you know, added the arrows. Like, you then you can just follow the line.
Wes Bos
like, on every background. I'm curious about this The color picker. There's just so many little things in this app that's like, oh, wow. That
Guest 2
But I don't know what color it's going to be displayed on. So I needed my lines to have outlines and I just repackaged that into a thing that Fixes browsers for peep or fixes websites for people,
Guest 2
To make sure that, you know, what whatever wherever it's displayed, where it's light or in dark, that there's enough contrast.
Guest 2
either in Edge or in Firefox now as well, where they'll they'll number it.
Guest 2
But then it becomes like one of those those children's, Node Web Kits at the time, which let you, a lot of newsletters.
Guest 2
There are also browser extensions that, you know, adds like the dots.
Scott Tolinski
was this something people were asking for? Because I've never heard of anything like this. Yeah. So this This was definitely a feature people were asking for.
Guest 2
put, like, the arrow in the middle, But I, again, didn't want to
Guest 2
drawing things where it's like connect the dots. Like, hey. I found 1. Now where's where's number 2?