aussieboi (@_aussieboi) header
aussieboi (@_aussieboi) profile picture

Senior Frontend Engineer passionate about DX | @vuejs | @nuxt_js | @aboutyou_com ( SCAYLE ) 🍣.

Croatia/Australia
Joined June 2008
Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)Photo by aussieboi (@_aussieboi)
Doom now runs in @typescript types. What a journey this one's been.
91
434
236
3,024
431,523
Folks of @vuejs and @nuxt_js who prefer the Options API - I'd love to hear why! (Please RT for reach 🙏🙏🙏)
55
31
6
110
163,347
aussieboi retweeted
Vue DevTools Vite Plugin is now available in the Nuxt App 🌟. Also, Nuxt DevTools is coming to Component Tree/State Panel 👀(github.com/nuxt/devtools/pul…)
2
11
75
12,118
aussieboi retweeted
🧩 Introducing my new "Nuxt Pages Plus" @nuxt_js Module that makes complex routing a breeze, including Parallel Routes and Modal Routes. 🔗 Check it out now! nuxt-pages-plus.pages.dev/ #nuxt #vuejs #vue #dx
2
9
4
123
38,617
🎉 I am so happy to share with you that `eslint-flat-config-viewer` is now the official ESlint Config Inspector! 🚀 Huge thanks to @slicknet and the @geteslint team for offering the chance and being very supportive! 💜 Give it a try and I hope you will find it helpful! 😆
14
90
4
810
70,646
Nuxt CLI v3.11 is out as well ✨ 🔎 Improved Nuxt modules search ✅ Check module format before installing 🧠 Install the module as dev dependency or not based on your package.json nuxt.com/docs/api/commands/m…
3
21
170
11,027
we don't talk about this enough 🙈
27
71
13
854
124,039
Big update for TypeScript users! 🚫 Stop using compilerOptions#paths ✅ Start using package.json#imports package.json#imports uses Node.js conventions, solving a specific pain point for monorepo folks. Video coming. Too excited, had to insta-tweet. Stay tuned.
Announcing TypeScript 5.4! 📢 Now with: ✅ Smarter control-flow analysis in closures ✅ The `NoInfer` utility type ✅ Broader support for bundlers and runtimes ✅ Quick fixes for missing parameters ✅ Improved auto-imports and more! Try it today! devblogs.microsoft.com/types…
18
122
11
964
227,891
Use Zod to parse your environment variables once, then use that inference to type process.env throughout your app. Also, a beautiful example of how you can extend an interface from a VALUE, not a type.
58
192
14
2,135
203,998
This week's video covering an implementation of the Repository pattern in @nuxt_js. But even if you don't use the pattern, it will be worth the time as we will use a custom $fetch instance to reach our goal! 👀 Tune in for some data fetching magic ✨ PREMIERING NOW (link below)
3
9
1
97
9,423
CSS Trick 🎞️ You can create an infinite marquee/carousel animation without duplicate items 🤙 li { --destination: calc(var(--idx) * -100%); } @​keyframes slide { to { translate: var(--destination) 0;}} Animate the items, not the list 😎 Here's the next <noscript>! 👇 The main trick here is animating the items and not the list. You can lean into custom properties to work out the origin and destination of an item. Inline some custom properties on the list and the items. <ul style="--count: 4;"> <li style="--index: 0;"></li> <li style="--index: 1;"></li> <li style="--index: 2;"></li> <li style="--index: 3;"></li> </ul> Then use these to calculate the origin and the destination for each item in the list ⭐️ li { --origin: calc((var(--count) - var(--index)) * 100%); --destination: calc((var(--index) + 1) * -100%); } The last piece is hooking up the animation li { --duration: calc(var(--speed) * 1s); --delay: calc( (var(--duration) / var(--count)) * var(--index, 0) ); animation: slide var(--duration) calc(var(--delay) - (var(--count) * 0.5s)) infinite linear; } The important part here is using those custom properties to define and calculate the animation properties for the items in the list 🤙 It's hard to cover everyone's use case in one demo 😅 But we try 🙏 As always, any requests, suggestions, questions, etc. Hit me up! 🤙 @CodePen link below 👇 p.s Can anyone recommend a decent lavalier microphone so I can record these better on the road 😭
CSS Tip! 🎠 You can create a responsive infinite marquee animation with container queries and no duplicate items 🤙 li{ animation: slide; } @​keyframes slide { to { translate: 0% calc(var(--i) * -100%);}} The trick is animating the items, not the list 😎 More tricks 👇 To get this one working, you need to animate the items and not the list (Watch the video first?). Each item needs to know its row index (--i) in the list and the parent needs to know how many rows are in the list: ul { --count: 12; } li:nth-of-type(1), li:nth-of-type(2) { --i: 0; } li:nth-of-type(3), li:nth-of-type(4) { --i: 1; } Once you have that, translate each item based on its row index in the list li { translate: 0% calc((var(--count) - var(--i)) * 100%); } Now for the animation. The key here is that each row has an animation-delay calculated from its index (--i). That number is offset to make it negative so the animation start is offset ✨ ul { --duration: 10s; } li { --delay: calc((var(--duration) / var(--count)) * (var(--i) - 8)); animation: slide var(--duration) var(--delay) infinite linear; } Make sure to wrap that animation in: @​media (prefers-reduced-motion: no-preference) { ... } Lastly, the fun parts! 🤓 To create the "vignette" mask. Use a layered mask on the container 😷 .scene { --buff: 3rem; height: 100%; width: 100%; mask: linear-gradient(transparent, white var(--buff) calc(100% - var(--buff)), transparent), linear-gradient(90deg, transparent, white var(--buff) calc(100% - var(--buff)), transparent); mask-composite: intersect; } To create the 3D skewed effect, use a chained transform (Try toggling it in the demo ⚡️): .grid { transform: rotateX(20deg) rotateZ(-20deg) skewX(20deg); } As for the responsive part, use container queries! 🔥 article { container-type: inline-size; } When the article (card) is narrower than 400px update the grid and animation settings 🤙 Double the rows means double the duration! @​container (width < 400px) { .grid { --count: 12; grid-template-columns: 1fr; } li:nth-of-type(1) { --i: 0; } li:nth-of-type(2) { --i: 1; } li:nth-of-type(3) { --i: 2; } li:nth-of-type(4) { --i: 3; } li { --duration: 20s; } } CSS has the magic to be able to update those animations at runtime based on your custom property values 😎 An added bonus in this demo is that it doesn't require any JavaScript at all, for any of it 🤯 We can use CSS :has() for those toggles that update the styles, even the theme toggle! 🫶 Any questions, let me know! Make sure to check out the video. Will do a walkthrough one to follow-up 🤙 @CodePen link below! 👇
23
171
4
1,548
233,599
Building a SaaS is quick and easy with @nuxt_js. And I'll prove it. I'll build, ship, and open-source one before the week is over. ✅ Domain is purchased. See you soon.
32
4
1
214
35,598
aussieboi retweeted
Vitest 1.0 is here! - easier to read snapshots (say goodbye to \\") - improved coverage support - improved typechecking support - performance optimizations - --project option for workspaces - a lot of bug fixes! github.com/vitest-dev/vitest…
8
274
23
1,370
134,365