Let's say you hate header bloat, and trust that your user can click "home" button to go to website navigation.
Logically, you start with the navbar to be the first child of a `display: grid` wrapper with the following grid-columns: ''7vh 1fr 9vh''.
But you also want to make sure that the logo in your navbar is on the side where the reading starts, and the buttons are on the side where the reading ends (this post will assume left to right reading).
So you face a question: how to avoid `position: absolute` or `position: fixed` trick everyone uses to place items into fixed navbars?
Here's a simple answer:
1. Use `<span>` for logo wrapper / button wrapper in navbar (this enables us to use relative positions with precision);
2. Use relative positions to bump our typography lower by saying `top: calc(7vh / 2 - 0.5em)`;
3. Define `--horizontalOffset` to be equal to `100vw` minus the default width of your content divided by two (offsets are applied to both left side and right side). In my case it was `--horizontalOffset: calc((100vw - 54vw) / 2)`;
4. For the logo element now it's easy to see that relative bump from the left has to be exactly this offset, so we write `left: var(--horizontalOffset);`
5. For the buttons, the formula is only slightly trickier. We still do a relative bump from the left (because we need to push it to the right), but here we need to calculate how much do our buttons take in `em`s, which in my situation is `20em`, and bump with the following formula: `left: calc(100vw - var(--offset) - 20em)`. First bit means "take offset out of the full viewport width", but if we stop there then our buttons will poke out to the right of content, so we need to account for a good approximation of the width of the button wrapper.
Finally, we got a clutter-free navbar solution!
I still remember my first day on my first job very vividly.
I had just complted a test task where I had to add tag functionality to an anti-anonymous image-board clone the company made (it was called rep dot ly, pretty badass domain name, sad that it folded), whereas the guys, Paul and Danko, implemented a webcam integration, so that people could add cute photos to imageboard-esque threads.
And so, my first day was at a conference where they were presenting the project. I remember being very ashamed that I went to another job interview after I went to theirs, and how interesting was everything in the conference hall. I felt a huge imposter syndrome, heh.
Then, when I started working it was kind of back and forth. Of course, I was slower than the other guys and less well-versed in industrial practices, but ultimately what got me into trouble is my back-then passion for overengineering and not being able to deterime when a design of a feature is good enough. I was with the guys till the very end of that iteration of very.lv though.
Afterwards I made an appearance in banking software, only to make a glorious, but short-lived return to very, where my desire for overengineering, augmented by banking experience, essentially got me fired, because I got too defensive about some program that I made to interact with postgresql, which wasn't doing the thing I was requested to do. But I'm very glad that my second stint with #verypositive gave me production experience with #erlang, that I managed to leverage by writing #foss. It eventually landed me my first well-paid job.
These days, very.lv is more or less a one-person show, but if you need some software, drop them a line, they're really cool.
Let's try #zola!
I thought it's #foss pretty much on "you're on your own" basis.
Docs are stellar, @markosaric and all! New version of our 0$ startup will have it integrated.
We always give talks that show off the fancy stuff. Maybe one day I should collect together all these everyday little things and talk about them instead.
I would need some new jokes to keep it interesting, I suppose.
Holy shit, turns out JDG kept going on after the LambdaConf debacle.
He even hired a lawyer to bully some person with a C&D. How do I know?
And got some popcorn-worthy stuff:
Tanak being behind Ogier all the way till the last split, just as Seb mentioned, it was his worst, which allowed Ott to catch up.
It was a zerbra after all, Thierry drops by 1 tenth to Craig, but it's all about the fight with the new flying Finn, who's 1.1s down, which probably means that Thierry is alright.
Tanak is the last to run, not going for a full haul, driving conservatively to not mess it up.
Craig tops Ogier, Thierry Neuville still "wheel to wheel" with both. Bits of i20s are flying every which way... What a zebra of a split times!
Rovanperra is contesting top times on this road.
Honestly, even without any intrigue about the winner, the points distribution and a huge gap in road order between Ogier and tops are the two things that keep us on the edge of our seats.
- Ogier's time still stands after Evans finishes, Breen and Neuvile contest by a fractions of a second on a significantly better road.
Sunday #WRC power stage:
- So nice to see privateers, especially televised!
- I don't think there's any intrigue left as of yesterday, Ott just optmisies for maximum power stage points.
- Can't complain, the championship becomes interesting after a winter rally and it's fairly expected for the leader after Monte to not haul too much. Still, hauling that little must be annoying for Seb.
- Punting the last corner seems to be the theme of the event.
Why subscribe to streaming services if there is Sun Ra discography on Bandcamp?
If one uses a social media bot farm to heavily promote an asset, the SEC will now suspend trading on that asset.
Now we all get to watch this get regularly exploited as a DoS vector.🍿