Introduction to 'General Musings'
00:00:00
Speaker
Hello, my friend and friends, and welcome to my podcast, General Musings. My name is Kevin, and here at my podcast, I talk about whatever is front of mind for me in any given week, usually in some way that's related to front end development.
Main Topic Introduction: Desired CSS Features
00:00:11
Speaker
And this week we are definitely staying on topic because we're going to be talking about CSS features that I wish existed that we don't currently have.
The Role of the 'State of CSS' Survey
00:00:19
Speaker
Before I get to that though, I want to talk a little bit about the state of CSS survey because it is opened right now. I've put a link to it in the description, show notes, whatever you want to call it. And if you haven't yet taken it, it would be really awesome if you could.
00:00:32
Speaker
It's first of all, a really great way to actually learn about new features or features you didn't know about. because as you're going through the survey it asks you know do you know about these things and it's usually newer things in css that sometimes are actually quite well supported uh so as you're going through it you just can even bookmark features that you don't know about or maybe you're like oh i remember that i do know it but i haven't really looked into it so anyway you can bookmark things as you go through it and then at the end they give you the list of all the stuff you've bookmarked that includes resources to learn more about them so It's a really nice way just to sort of keep track of it yourself, but even maybe more importantly, the browser developers actually look at the results of the survey to both see people's current pain points and feature requests and things like that.
Survey Participation and Approach
00:01:17
Speaker
So it's really worth doing because the browser developers look at those and they they've made changes and introduced features based on the results of these surveys in past years.
00:01:28
Speaker
and the more people who take the survey the more representative it is so yeah if you do have the time to do it i would really encourage you to go ahead and and dive in there and if you'd like to see me going through the survey i'm actually going to be doing it as a live stream on june 12th which is the day after this podcast has come out so if you're listening to it have time and you can the link for it is in the description to show you what time it is in your local time if you go to the link And if you're listening to this after that date, that's completely fine. You can still find the same link and watch the replay of it.
00:02:00
Speaker
And i'm going to be going through it, but also if there's features that are mentioned that are cool, I'll probably take some time to like demo them and take quick looks at what they are as we go through it. So...
00:02:11
Speaker
Yeah, I think it'd be fun. I don't do the entire survey on the live stream when I record just because the first part of it is more about are you aware of these features? And the second part of it is more about opinions of CSS and features you use and and other stuff like that.
00:02:27
Speaker
ah The feature stuff I'll i'll talk about but when it comes to the opinions of things. I don't like recording that section of it because I don't want to influence anybody's decisions because if I say, oh, this is horrible, then other people will be like, oh Kevin said that's horrible. I should say the same thing. And I don't want to do that. So I leave that part on
Discussions on Desired CSS Features
00:02:43
Speaker
recorded. But yeah, it is still be, i think, a fun, ah fun live stream. So I'm looking forward to that. I always enjoy going through the state of CSS survey.
00:02:51
Speaker
But anyway, yeah, that that's it for now. Again, when you have a chance, you know, finish listening to this and then go do it or pause this and go do the survey. And when you're done, come on back where we can talk about some CSS features that I wish existed. So these aren't ones that are actually gonna be in the survey. I don't think anyway, I haven't looked at it yet, but I don't think any of these will be there.
00:03:08
Speaker
And this is a question i get asked a lot by people, especially if i'm doing podcasts or other things, especially, well, you might've noticed I asked him when I do interviews here, I do ask people ah this question.
00:03:20
Speaker
Because I often when I get asked this question, I never really have a good answer for it. So part of the reason I started asking other people was to see if I could steal some of their answers.
00:03:31
Speaker
But what I found recently is the things that I want are things that have been in development, but for a really long time and aren't making any progress, but we could have them.
00:03:44
Speaker
and there's just it's like For various reasons, they're not happening as fast as I wish they were. And that's a bit of what we're going to be talking about today. And part of the reason that this is more front of mind for me is after doing my interview with Miriam Suzanne, who, if you didn't listen to that interview, I'd really recommend it.
00:04:02
Speaker
I'll put a link to that one. It was an older episode from a few months ago where we were talking a lot about being involved in the spec and different ways to do it. i took her advice and I started following a lot of issues on features that I'm interested in.
00:04:15
Speaker
And because I've been following these issues on things, I'm noticing like it's great because I see all of a sudden something that hasn't been talked about in two years or three years is getting like constant discussion. There's a few things that's happened with one of them being well the first feature we're going to talk about today, which is custom media.
00:04:33
Speaker
ah So I'll talk more about what that is if you haven't heard of it. But that sort of all of a sudden perked up after a long bit of dormancy. So i'm really excited and and hope that that's going to come up. But Yeah, there's a lot of really cool features like custom media that there's been proposals for in various stages that just the hit they that they don't make progress.
Exploration of 'Custom Media' in CSS
00:04:56
Speaker
And it's like, oh we want that now. And like, it's funny because those will like die off, but then we get other things that I never heard anyone asking for that all of a sudden up appear and end up in the browser like carousels.
00:05:08
Speaker
And that's interesting, I find. But I'm not going to worry about why that happens. I'm just going to start championing for some of the things that I want to see happen. And i guess this is one of my ways I can do it is to talk about them here.
00:05:20
Speaker
And so the custom media thing is interesting. So if you don't know it, we have custom properties, obviously. And the problem with custom properties is you can't use them for media query breakpoints.
00:05:31
Speaker
I don't fully understand the limitation there, though, in following the issues, I do think maybe I know, but I'm not 100% sure I'm speculating completely here and I'd have to talk to people that are involved more in the spec to to see if I'm right on this or not. But the idea is with a custom media is you could define custom, you could define breakpoints, named breakpoints, right? So at custom media, small screen, and then you give it a size and then you could use that small screen in your media query or your container query instead of having to repeat your breakpoints.
00:06:04
Speaker
And the nice thing with that is if you ever needed to change a breakpoint site-wide, you could just change your custom media in one place, just like with a with a custom property, and it would change site-wide, right?
00:06:17
Speaker
And so I think part of the problem with custom properties, which prevents them from being used as media query breakpoints, is a custom property has to be scoped to a selector.
00:06:31
Speaker
And we can't use... something that's scoped to a selector in a media query because the media query is on the outside of the selectors. Even if you're using nesting or whatever, like once the browser does its thing, it's the media query and then the selectors are inside of there.
00:06:46
Speaker
And so we actually see this as a thing where if you use ah media queries with M as the breakpoint, the M doesn't look at the font size of the element that's being changed. It's actually looking at the browser's initial font size.
00:07:00
Speaker
ah So if the the user settings, so whatever your setting is in the browser, the M is related to that. So yeah, we can't have like relative units being used on media query. So I think, and I'm pretty sure that you need something that's defined at the global scope outside of any selectors.
00:07:18
Speaker
A little bit like what you do if you do a registered custom property, right? Where you do an at property. And that's a little bit of the idea of the, it would be an at custom media and then you define it and it's outside the scope of anything else.
00:07:31
Speaker
And that's the idea there is just to make that side of things a lot easier. It's something that we've been able to do in pre-processors like less and SAS. And I love things I absolutely love.
00:07:42
Speaker
And it's so frustrating going from SAS to a regular project. And then you just have to use regular breakpoints. It's not the end of the world, but it's just one of those like developer experience things that makes life so much easier.
00:07:53
Speaker
And from an outsider perspective, it feels like something that should be really easy for the browsers to implement.
Complexities of Implementing CSS Features
00:08:01
Speaker
Now that I'm following the discussions a little bit, I think part of the problem is there's different ideas on maybe what the best thing to do is. Because the other thing that's coming up in is um custom environment variables.
00:08:14
Speaker
which are a little bit, it's a little bit different. If you know, the environment variables aren't something that I've used a lot of, but basically it's these variables that are part of the environment, as the name says. Like the browser has these defaults and I'm not going to say them off the top of my head because I'm going to get them wrong because i don't use them enough, but it's like defining safe sides for things um and they're baked into the browser.
00:08:38
Speaker
And the idea is we'd be able to have custom environment variables and to be able to use them in different ways. And then we could actually use a custom environment variable as a you you could make your environment variable that's a breakpoint size and then use that within your media queries. And it would work because the environment variables are defined at the global level as well.
00:08:58
Speaker
And so eat both of those things would work. And I don't know if the reason we haven't got any of them or haven't got the media query thing anyways, because it's like, well, should we do this or should we just do it through the environment variable way?
00:09:12
Speaker
And then some of the discussions are saying, well, we could have both because we could use the environment variable this way and then the custom media query could take advantage of those, but then combine them and It definitely gets more complicated when you're following these discussions, you're going, OK, there's a lot of more thought that has to go into this than just being like, oh, here's this really simple use case. We're going to ship that.
00:09:34
Speaker
And then you realize, oh, we probably should have done it a different way that would have made it a little bit more useful. And then we're stuck with this limited implementation of it now. And yeah, I don't know what the solution is going to be. It's really for me is one of those things of I just want to use it. It's not really something that would change the game for users in any way. It's just me being selfish, but it is something that I'd really like to see.
00:09:56
Speaker
And I think it we have a lot of developer experience stuff landing in CSS these days. And this just feels like one of those things that I really like, especially considering because it's purely developer experience and it would rely 100% on browsers for working. Like you can't really do this as a progressive enhancement.
00:10:14
Speaker
I almost see it as another reason, like, let's get the discussion going on this now so we can ship something, figure figure it out. Like, don't ship, don't just ship it to ship it, like I said, but we can have the discussions on it, get it shipped because we're to have to wait two plus years until we actually can use it in production once we have consensus and once it's shipped.
Exploration of 'Gap' Property and 'Margin Trim'
00:10:36
Speaker
So, yeah, I'd like to see that happen. So, yeah. Another thing that I would like to see happen, and this was, I was doing a demo or something. I wish I remember what I was working on because I don't remember what it was.
00:10:47
Speaker
I'm 90% sure it was a demo, though, that I was doing where I was thinking how convenient it would be to have gap on block elements or within like a block context.
00:10:59
Speaker
ah Because it's just so common now that people remove all margins anyway, right? And then you're adding them back in, but you're having to add them only on the top or only on the bottom of things, or there's other ways around it, obviously.
00:11:10
Speaker
But just having a gap everywhere would be so nice. And we have other flexbox slash grid stuff coming to block context. Like we can do an align content to vertically center things in a block context now.
00:11:21
Speaker
So like align content center works. Let's get gap in there too. That'd be kind of cool. ah it's This is a smaller ask for sure. I don't think it would be a huge game changer and I have ways of working that are completely fine to get around not having Gap, but it's just like, oh, it would be convenient if we had it and I would like to see that.
00:11:39
Speaker
um Another one that that that's been in discussion, and actually I wanted to mention one thing that's actually happening now at the beginning of this, and I completely forgot, but it's like the margin trim stuff, text box trim stuff that's now shipping.
00:11:55
Speaker
i And it's really cool to see that shipping because that's definitely one of those features that... I saw there was a blog post or a medium post on it years ago, and it was just like, oh, this is going to be amazing. And then you just never saw anything on it.
00:12:09
Speaker
And then eventually it happened. Actually, i sat in on a working group meeting where they were talking about some of the decisions, it wasn't even necessarily about that, if I remember right. It was a lot of the thought and discussion that had to go in to make sure that when that was implemented, that it would be done properly. And it was like, oh, this is, I see why this is more complicated than I initially thought, ah which was cool.
00:12:34
Speaker
and But yeah, just sometimes this happens where we have this feature that people are talking about and then nothing happens. This happened to me. I talked about like masonry layout probably more than four years ago. I did a video on it because I assumed that the browsers were all going ah do subgrid and then do masonry and then look where we are now.
Challenges of the 'Color Contrast' Feature
00:12:55
Speaker
this definitely happens. And the reason i'm bringing this up ah now is there's this is there's a feature like this, which originally was called color contrast. And it was a value function to color contrast in the parentheses. And you could put some values in there.
00:13:09
Speaker
And i when I was thinking about it, I'm like, I know this was forever ago. People were talking about it. So I quickly looked before recording today and I found a CSS tricks article from Chris Coyer from about four years ago, looking at this feature and talking about it. And it's because it had shipped in Safari's technical preview.
00:13:26
Speaker
And This is something that I've wanted for so long now. And I know why it hasn't happened. So we'll talk a bit more about that. But it was color contrast. You'd give the color of your text and then or color of the thing you were doing. So you could use it like as a background too. But let's just do it in the text context instead multiple contexts. Because that would be kind of confusing.
00:13:47
Speaker
You do your color contrast. Then you'd say like, I want my color to be Rebecca purple. And then you do a comma. And then you'd give it a list of other colors. And it would choose the best one. So for contrast based on like knowing your text is Rebecca purple, I'm going to choose the third color that you gave me because that one has the best contrast with that.
00:14:09
Speaker
If I remember right, that's the idea of how that function worked. Recently, a new feature shipped in Safari's technical preview, but this one's called Contrast Color instead of Color Contrast.
00:14:20
Speaker
if I don't know. I'm just like, oh, why do we? I don't actually know why the name changed. I'm assuming it was part of the spec changing it. I don't know why Color Contrast or Contrast Color.
00:14:32
Speaker
um A little bit confusing that there's the two of them. And I don't know if color contrast was in the spec and they changed it. I don't know. Because these are all things that are experimental, right? Like nothing is set in stone with them.
00:14:44
Speaker
But what's frustrating with the new one, the contrast color, and there's a full blog post that I'll put in the description. If you want to read it by Jen Simmons on the WebKit blog, talking about how it works, what it does and the limitations of it everything. It's a really good article.
00:15:02
Speaker
So I'm going to sort of recap it a little bit, but I'd encourage you to give it a bit more of a read. And there's links to other stuff in in the article as well. But the way it works, because it's not what I want at all, but you say you're declaring a color, so your text color. And again, you could use this for other things. you could use it for backgrounds or borders or whatever you want anywhere a color value is valid. You could use this, but we'll stick with just saying you're declaring a text color.
00:15:26
Speaker
So I say color, Rebecca purple. No, sorry. This is wrong what I'm saying already. you'd I'd say color Rebecca purple. That's right. Or whatever. You put in a color value in this contrast color function.
00:15:44
Speaker
And you only put one. And that one that you're putting in would be the background color that you want to check contrast against. So i'm and I'm assuming you'd have a variable here. So it would be more like color and then var of background color, right? Whatever. You're you're checking the color that would be in the background.
00:16:07
Speaker
And the function in the browser, whatever, would then pick either white or black, depending on which one is higher contrast based on that background color. And so, yeah, you can only get white or black out of it.
00:16:22
Speaker
And it's kind of annoying. So to me, that's a bit of a deal breaker, and I'll talk more about that in a bit. The other issue, though, with it is sometimes it will pick the wrong color, but this part of it isn't the fault of WebKit or Safari or anything like that. it's in It's following what the spec for this feature is, and it's not the fault of CSS in any way. It's actually the fault of the Web Content Accessibility Guidelines, which is w c a g or WCAG, ah which is what I'm going to say as we go through the rest of this.
00:16:54
Speaker
And if you don't know, the WCAG is at version two right now. And a lot of companies worldwide actually have to follow the WCAG practices, like your guidelines to be compliant. Like they have to be accessible, compliant to these guidelines, however you want to say it, ah just for legal purposes.
00:17:15
Speaker
But the problem is, and this is a long standing issue, it's been talked about ah lot, is the color contrast algorithm that's suggested in the Web Content Accessibility Guidelines version two isn't very good.
00:17:32
Speaker
But because companies need to follow WCAG's guidelines to be compliant, the Safari or WebKit is using that contrast algorithm to figure out if it should be white or black. So a lot of the time it will be fine, but you're going to find certain colors where it's going to pick white text, but black text would be better.
00:17:55
Speaker
And so it's actually picking the between white and black. It's picking the wrong one with the given color. And this isn't ever going to be fixed. No, that's not right. this isn't This will be fixed, but it won't be fixed until WCAG can decide on a better algorithm to use for when the the version three of their guidelines come out.
00:18:17
Speaker
And I'm actually concerned because this has been such a long debate on what WCAG algorithm to use here. And I think there's a couple. I don't actually i don't i haven't been following it a lot.
00:18:29
Speaker
Just every time I look into it, it just seems to be like they can't make up their mind on what algorithm should be used. And that's a bit of a problem because until that's decided, we're stuck with the current one.
00:18:42
Speaker
ah And yeah, so again, that's not the fault of the browsers in any way or CSS or whatever. They're following the way that would make sure that companies are compliant, which is what they should be doing.
00:18:54
Speaker
And then once the guidelines are updated, then they'll update the algorithm that's being used and then we'll be fine. So on that front, it's I guess it's fine. But the white and black thing to me is a deal breaker because, i mean, there's there's an issue where if you're giving it your own color choices, right?
00:19:12
Speaker
Like say I said, i want my text to be red and you have to choose the better contrast between pink and dark red. And the difference between them isn't enough for any of them to actually be compliant.
00:19:28
Speaker
That's also an issue. Right. So I definitely see the issue and I haven't followed any of this. So if I i should follow the discussions that are going on about this and why they went with the white or black. And I know that in the post that mentions that in the future, there is the possibility that there'll be other ways of it working.
00:19:45
Speaker
But the white and black one, it's in the blog post, it really did make it sound like we went with white and black only because it's the simplest thing to let us ship it now. And was just like, that's fine. But it takes something that could potentially be a really cool feature and makes it so much less useful because I don't see it being used in production a lot then.
00:20:08
Speaker
Because most designs don't have pure white or pure black in them. And to me, that just limits it. And like, if I'm doing a personal project, I definitely would use this.
00:20:20
Speaker
And if I'm doing something where I'm not too worried about the design, I just want to make sure the contrast is good. Sure. But like so many situations, you don't want a pure white or a pure black. And then like... Maybe there's ways of using it within a calc or doing other things to like make it do what you want it to do because it's going to pick the white or black. But then you could do something like in HSL from using. i don't know. I'm sure there's something creative ways that you could actually get.
00:20:48
Speaker
the colors that you want within a certain something or other. But I just, I feel like that should be baked into the system somehow. And I realized that maybe there isn't a good way to do it. And maybe I should be reading more about how the discussions that have been going on. Because I do think like once you go past white or black, the complexity just goes through the roof.
00:21:09
Speaker
Like it's it's keep it really simple or make it insanely complex. So I do understand why they went with what they did. But I'm just like, oh, after what I was thought this feature was going to be, like i feel I feel like I was promised something better. And now it's just like, oh, this falls flat a little bit. So a little bit of a shame.
00:21:31
Speaker
But. Yeah. The original version that let you the pick from like a list of colors just felt like something that I would actually use.
00:21:43
Speaker
Whereas this one, I'm just like, oh, I'm going to try it once it's in more browsers. But, um, Yeah, that's I guess what I'm getting at is I'm hoping that this actually happens because it's something I've been wanting for a long time, but I want a better version of it when it instead of instead of what we currently have. And maybe that's a pipe dream ah just because of the complexity of making it work with more. I'm not sure, but it'd be really cool if we could have something and almost like if give it a list and if none of the list are compliant with the the guidelines, then switch to either putting pure white or pure black. But if you can get any of them
00:22:18
Speaker
If any of these of my list do work, then choose one of those instead. That would be kind of cool. i like To me, that would be what i I think I would want it, how I would want it to work.
00:22:29
Speaker
That would be the best case scenario. um But yeah, anyway, it is it is what it is. And hopefully we see some progress on there. The one thing I will say about it is it's kind of funny because the entire post and this isn't WebKit or Safari or Jen's fault or anything like that.
00:22:44
Speaker
It's different parts of a very big company. But the whole post talks about the importance of accessibility quite a lot. And even how you have to manually like this feature doesn't do everything. You have to manually test to make sure things are still working and everything else.
00:22:59
Speaker
And this is coming from the same company that just put out their new liquid glass thing. And the contrast ratios are terrible like absolutely trash the whole since they've launched it like the amount of accessibility issues people are pointing out with it and just like the terrible contrast ratio is coming out of it um i find it funny that the two of them have launched basically at the same time so that's kind of interesting uh and just ah whatever it's a coincidence more than anything else but it's kind of funny uh another thing i'd like
Innovations with 'Gap Decorations'
00:23:32
Speaker
happen. And I think this one actually is happening. and This is one, another one we've been promised for a long time. And I'm excited to see that there's progress happening with it to the point where if you're running a Chromium browser, you can actually play with this.
00:23:45
Speaker
ah the the edge The Edge team has put out a bunch of demos for it, and this is doing gap decorations. Which, if ever you want if if you have like a something buts ah you have a design that has main area and a sidebar, and you want a line going down the middle in between the two of them, previously, you'd have to have a border on either the left or right side of one of them.
00:24:10
Speaker
And there's issues with having mortars because then you're adding padding and then it's adding size to things. And then you're having to maybe adjust your gaps and half make your gap half the size because then you're adding padding. Anyway, it was a bit of a nightmare.
00:24:22
Speaker
And now we'll be able to just draw a line down the middle of a gap, whether it's your column or your row or both your column and your row. And so if you are running a Chromium browser, it's working for me in Canary, um but the edge The post I saw from the Edge team said that you can enable it in any Chromium-based browser using the enable features CSS gap decoration flag.
00:24:45
Speaker
um So yeah, I don't know if it's just on in Canary, but I also have my experimental features enabled in Canary. So if you want to play with it, you can. I'll put a link to their playground and other stuff. They have a bunch of demos. so And the demos all look fantastic. And I thought it was going to be a lot simpler than it is.
00:25:02
Speaker
You can actually control a lot more than I thought you'd do before. Like if you have rows and columns that are intersecting, you can choose whether the decoration goes through, like actually intersects, or if there's, it sort of keeps the gap within those intersections. Like it's empty in the gaps where they intersect.
00:25:22
Speaker
ah which I didn't think I'd need. But now that I know I can, it's like, oh, that's awesome. Also, because your rows and columns can be different colors. ah It would be like borders almost.
00:25:35
Speaker
you have like dotted and and and other stuff like that but because they cross and because they can be different colors you can choose which one is on top of the other one with like the paint order and i'm like oh i never would have thought of that but that i could definitely be see being like as they were testing it they're like we need to let people decide what order to put these in but it's all these like little use cases that i wouldn't have thought of wanting the feature but now that i see them there i'm like oh thank goodness they they added those in there and This has definitely been something that I've wanted for a long time. So I'm really excited that it's behind a flag right now. And I'm really hoping this makes quick progress as well, because I feel like it solves some pretty big pain points, actually, as I said, with like hiding borders.
Engagement with New CSS Features
00:26:19
Speaker
And doing kind of strange things sometimes when you do need these types of things. And even you do like, you know, the whole thing of like a navigation where you want the border in between all of them, but not on the first one and last one, right? Say it's a border bottom. You're having to add then the border bottom on all of them, but not the last ones. I mean, it's not that hard. You do not last child or whatever, and you can add the border that way, but just if you just had gap decoration and you just do it that way and you don't need an extra selector and then it just works like it's i'm looking forward to this one and i plan on doing a live stream probably next week where i play around with it because that's what i've decided the live stream coming up soon on the state of css survey that's just like it's state of css so i always do that survey
00:27:05
Speaker
ah Usually they record it, but I decided to do that as a live stream. But I've decided, sort of like I did recently with my Paint Order, not Paint Order, is it Paint Order? What was it called?
00:27:17
Speaker
The one with the tab ordering thing, reading order, reading order and reading flow. um I did a live stream on that. So there's other features I want to see actually shipping across all browsers. Speaking of features I want, now that I've played with it, I want that as well.
00:27:30
Speaker
ah But yeah, anytime new features are sort of available to play with in the browser, so I probably should actually play with the color contrast one too, ah just to see. it could it could throw that into the live stream maybe if I think about it.
00:27:42
Speaker
um But yeah, playing around with ah new features as they're coming out. Because this is when they want us to do that anyway. It's behind a flag. They want people to experiment with it, play with it, and see, do we run into any use cases where it doesn't work, or issues with it, or bugs with it, or whatever it is, or can you think of something that's missing from it?
00:28:01
Speaker
um So yeah, i'm definite I'm going to do a live stream where I play around with it and see how it works and try to learn it as best as I can. And I don't know, I think, oh ah I plan to.
00:28:11
Speaker
I want to do that one next week if time allows. So we'll see if that one actually happens or not. ah But yeah, I think that's it for this week. It's about all the features that I can think of. There's not a lot, honestly.
00:28:23
Speaker
Like most things that I think of are in the works. i'm I'm not one of those people who's like, I really need this thing. I know a lot of other people are.
Episode Conclusion and Listener Encouragement
00:28:32
Speaker
i don't know. There's some... Whenever I ask other people and they say something, I'm like, oh, that's a really good answer. And then I don't remember it.
00:28:38
Speaker
um But I find for the type of stuff I do, I'm not missing a whole lot. ah But i'm the ones I mentioned today, I'd really like to see. And I'm sure there's a few others I'm not thinking of off the top of my head right now. But this ramble has gone on long enough. So thank you so much for listening to it.
00:28:53
Speaker
ah that's As I said, that's it for this week. Thank you so much for listening. And of course, until next time, don't forget to make your corner of the internet just a little bit more awesome.