Spice up your site | Easy waves, angles, & other creative shapes with CSS
HTML-код
- Опубликовано: 2 июн 2024
- The web is made of boxes, and boxes are bland, boring, and all look the same.
We can spice things up with bringing in some angels, shapes, and waves like these, which makes things a heck of a lot more interesting.
In this tutorial, we’ll see how we can take one of those typical, boring layouts and make it spicy by using a few different CSS techniques.
🔗 Links
✅ Finished code: github.com/kevin-powell/creat...
✅ The ::before and ::after pseudo-elements explained: • Before and After pseud...
✅ Intro to mask-image: • mask-image lets you do...
✅ SVG Path Editor: yqnn.github.io/svg-path-editor/
✅ Wavy shape generator: css-generators.com/wavy-shapes/
⌚ Timestamps
00:00 - Introduction
00:21 - Goals for creating each of these
01:40 - Project set up
02:06 - The HTML
05:37 - General CSS stylings
08:14 - CSS - the diagonal section
15:20 - CSS - the spiky section
17:42 - Making a triangle SVG
20:09 - CSS - continuing the spiky section
31:17 - CSS - the wavy section
#css
--
Come hang out with other dev's in my Discord Community
💬 / discord
Keep up to date with everything I'm up to
✉ www.kevinpowell.co/newsletter
Come hang out with me live every Monday on Twitch!
📺 / kevinpowellcss
---
Help support my channel
👨🎓 Get a course: www.kevinpowell.co/courses
👕 Buy a shirt: teespring.com/stores/making-t...
💖 Support me on Patreon: / kevinpowell
---
My editor: VS Code - code.visualstudio.com/
---
I'm on some other places on the internet too!
If you'd like a behind the scenes and previews of what's coming up on my RUclips channel, make sure to follow me on Instagram and Twitter.
Twitter: / kevinjpowell
Codepen: codepen.io/kevinpowell/
Github: github.com/kevin-powell
---
And whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!
Kevin...your RUclips channel is literally a beginner to advance CSS course...and it's for free and constantly updated 😀.. Thanks Kev...really really appreciate you.
TOTALLY AGREED!! :)
😂! Everything I know in css I learned from Kevin's RUclips channel...
I'm super grateful 🙌
@@johnnyjev9840 I would probably stop making money if he quit this channel LOL!
his Scrimba course is also free!!
12:39 - this is why I listen to all your videos. I think I'm pretty good at CSS, but having you present newer CSS properties keeps me constantly updated.
_margin-inline_ and _padding-inline_ are new to me as well. This video felt really pedagogic, even more than usual. Thanks!
As someone who usually works with CSS for a decade now, keeping up with these new properties and functions are both godsend and a nightmare.
*googling "pedagogic"....
awsome video btw love the way you repeat the basics of everything helps refresh the mind, subbed!
You could flip the after element in the triangle example horizontally as well, that way they would be symmetrical on top and bottom.
Kev, you're an angel, absolute godsend. Cant tell you how much your videos do to my progress. Thank you
A great video mate. Thanks again Kevin!! These are great little tricks that produce a big punch, and not too difficult to achieve!! Just awesome!
Really great video! Thanks again Kevin!
Good Video, nice to see the full fresh start approach.
God bless you Kevin. Thank you for all that you do.
I Learned 90 percent of all my css from this guy. Thank you Kev!!!
Love you Kevin, You really make us fall in love with CSS
I'm new to web development, and you are a golden source of knowledge. thanks a million.
Kevin, you did it : I’m in love with css! You’re amazing, thanks for all 🙌🏻
Amazing! So happy to hear that :D
I like your angles on the angels. 👼
Beautifully Explained!
"margin-inline" ... "padding-block"... you saved my life !
Always such helpful videos brother!
I'm learning something new all the time with fundamentals too. Thank you so much KP sir🙏🏼🙏🏼
just exactly what I needed right now.THANK YOU SO MUCH!
Wow.. with just one of your videos I learn a lot. They are very exciting! 🔝Thank you Kevin
Kevin you're truly the boss, thanks your content is top notch...
Thank you for the easy to understand explanation! I'll try it on my website right away.
Thank you so much. I love the way you taught us it's so easy to understand.
I want to thank you Kevin because I agree with each goal you discussed in the first few minutes and I also think that it is much better, programming without SVGs as long as it is possible. And you are one of the only people on RUclips knowing how to create anything with only CSS. This is what your channel stands for... Thank you!
Oh, maybe I didn't quite understood what you said... Unfortunately, I don't like using SVGs...
I love this!
Thank you CSS king of kings!
Thanks, Kev! You're a seasoned css practitioner 🙏✌🏻
Are you peppering him with accusations of being salty?
@@BryanMaxDobberstein Not at all, my intentions and appreciations for him have always been authentic, since I've known him (via inter webs) as long as since 2014'ish when I myself first got into the web dev world, migrating from Java and C++ programming. I can't say for sure whether he had his own dedicated channel back then, however he was one of the patreons of another awesome channel named "devTips"!
Thank you Kevin, very cool!
Thank you for sharing! 🙌🏼
Wow! Omg this is amazing, thank you so much! I was making a website for my firend as a practice and I wasted so much time trying to figure out ways to do this diagonal section and nothing was working, but now thanks to this video my firend will get his cool skewed sections design! I am so grateful, this channel is the best!
Awesome stuff! Thank you!
This channel is just so good... It has solution to everything i am concerned abt in web development
Thank you for sharing these tips, very helpful :)
Learned a lot in a short time and well explained
Damn. I considered myself a CSS master since taking your Conquering Responsive Layouts course... But you keep showing me there's new levels to this
thanks kevin coming from France your very hepful ! !
I'm a Sr. Dev and I learned quite a few helpful things from this video, very well done! 🏆
Honoured to watch you styling, Master! ^^
Unfortunately it's not allowed for one person to give 100000 likes for a video. It's awesome. Thank you very much. 👏🏿👏🏿👏🏿👏🏿👏🏿
Hey Kevin, as a beginner I can't thank you enough for the first 8 minutes of this video. So much helpful advise that 99% of the other tutorials/guide would just completely skip. Thanks a lot 🙂
“So I’ve got here an HTML file with content and a CSS file with 600 lines of code, now all I need to do is…”
*Viewer crying in amateur *
Pretty cool stuff. I'm stuck with using clip-path and triangles made from borders. Now I'm gonna try mask-image.
pretty cool things. I am really confident with css but some solutions are just so smooth and clean. thanks for the video /cheers
Frankly speaking, your videos are priceless. Whenever youtube suggests them, even though I'm doing something else, I always wanna stop by because there's always something valuable to learn that will improve my CSS. Thank you so much Kevin
Great video! Learned a bunch! 🙏
Thanks Florin ☺️
You are born to be a teacher Kevin.
OMG, man! I love your videos! isolation: property... I would never know something that usefull even exist!
Awesome content! 😍
Great, thank you so much!
thx this helped me a lot :)
Super thankful for this channel as I slowly learn to stop hating CSS...... By learning CSS properly 😅
...you sir, are the best!
Thank you sir 😃
FIRST HERE. Loving your content since 2019
Kevin regarding the issue with the rendering when zooming in I suggest trying to transform the image in by 0.5 px in so that there is an overlap… this might do the trick and fix the problem. You might have to adjust the svg vor that.
So FUN!!! Luv this; once again you blow it right out of the water :) 😃
awesome , mate .. awesome
today i finished my page with svgs to create some waves etc and now im seeing this video :O
Only starting to use custom CSS variables. Setting one for --spike-color that references the one set for --body-bg is interesting. It seems like it complicates things unnecessarily, but I will have to ponder on this one a little longer to see the worth. Overall, great lesson.
nice video love it
great content
Hi Kev, thank you very much for your consistent effort. It's gets a little distracting with the position of your selfi camera view. Please adjust somewhere it don't distract.
21:38 You can actually do it with just linear-gradients
ex:
background-image:
linear-gradient(-135deg,
purple 15px, transparent 0%), linear-gradient(135deg,
purple 15px, transparent 0%)
;
Kevin, j"aime ton chandail :) from Quebec Canada
I often run in to these little rendering issues. I used a skew technique for an angled panel in a project, with the background being a radial gradient. I didn’t want the gradient skewed though, so I made the gradient a child element and skewed it the opposite way so it looked normal again, but Firefox wasn’t having it. Little 1px gaps in the gradient.
Thank you
whoaah finally a tutorial for shapes and stufss. Thanks Kevin
Just discovered ur channel. Feels like I found a cheatcode 😃
Absoulutely Fansastic 😵
I love your tutorials. Semantic HTML and easy to understand pure CSS are just the best! 👍
Hey, nice sweater! Greetings from Ottawa haha :)
I'm just outside of Montreal, though will be relocating to Halifax shortly :)
@Kevin Powell Wow nice! Enjoy the move, hope it goes well!
Godd of CSS is here ... 🎉🎉🎉
Regarding the rendering issues with rotation-transforms... I've been writing a JS/CSS-based dungeon crawler (3D and grid-based like Dungeon Master), and I've had the same rendering issues between textures/walls - only using HTML elements for those, no WebGL or anything, so it works on more devices. And after a lot of frustration, I found a fix by accident: I just added 0.01 to each and every deg-value in rotation-transforms. That was the lowest I could go before the problem would re-appear. So for example, instead of 180deg I'd use 180.01deg. Suddenly I really regretted deleting a CSS-based shading-engine (using gradients with different alpha values to add light/shadows) I developed for 5 weeks prior to noticing this rendering issue...
25:00 You could use either `background: transparent`, or even better `background: none` and you could have a gradient underneath
Great video! To fix the zoom in and out, maybe a -1px on top and bottom of the ::before & ::after ?
Thank you!
you rock
看到有人说是给初学者的视频,我认为即使是有经验的人,也能学到很多东西,谢谢
Kevin, with all these videos you seem to be the kind of man who has his chair/desk setup and sitting position dialed in.
Now i have personally tried to follow many RUclips videos about how to sit for extended periods of time without feeling like a grandpa climbing a mountain after each sit.
Perhaps i wasn't asking it to the right people, maybe i should've asked a fellow coder.
So, mister Kevin sir.
Any advice or personal insights on how you deal with this constant risk of back pain?
i know it's a bit off topic but i would genuinely appreciate any kind of advice at this point really hahah.
P.S. This video was yet again one of those videos i didn't know was going to be so helpful and motivating for my own project, really only clicked because i know the welcoming quality of your videos and also for the nice colors and shapes in the thumbnail :p
Thank you for this
{
i think one bad thing about using pseudo elements is
if you have two different classes trying to use the same pseudo element, it becomes problematic
and thats why we need unlimited pseudo elements like :before(foo) :before(bar) with an id
I'd love to have something like that :)
That's a really great concept. 😀
Great video! I'm in the process of making a Parallax Effect using transparent .png(s), but would some of these mountainous container shapes be more optimal for a Parallax Effect?
Hello Kevin, could you show how you configured "Prettier" for HTML and CSS?
There's some problem with and tags
What's the issue?
@@KevinPowell On Save it does this to
and tags
I love skiing Owl’s Head
I've spent the last 30 odd years skiing there, my parents live pretty close to it 😀
a fix for the rotated bottom spike shape "sub-pixel-rendering" situation could be to add a bottom margin to the pseudo element
How come you have time to create all these contents and i dont have time to watch all of them. You amazing
Why not scaleY(-1) instead of rotate(.5turn)? Would you still get the graphical issues when zooming?
First, thank you for all your tutorials, they are so wonderful! I do have one question though. Wouldn't it just be better to use actual images in the background rather than all the gradient and avg imports? Then we wouldn't have to worry about everything breaking if something gets slightly changed, and wouldn't have to worry about creating all those different asset files. Just wondering why we would do all this? I just try to stick with what is easier with all the different browsers and coding. Please correct me on this if I'm off in my concept of the big picture overall. :)
Sorry, I meant svg not avg.
Hi Kevin, great stuff. I immediately started to play around with it. One issue I couldn’t solve: if I wasn’t only one spike in the centre of the section, I gave the .spike a property of width 60px and height 25px and the .spikes:: before, . spikes::after a width of 60px.
I then tried to centre this one spike. I tried to give the .spikes:: before and after elements a left and right auto but that didn’t work. Giving them a 50%left margin works about, but not correctly. Any idea what to do?
Best regards
Klaus
left: calc( 50% - (var(-spike-width) / 2) ); (NB iOS wont let me type two hyphens)
in the diagonal section, how can we make it only the top diagonal and bottom straight? is there any other method or any trick to do that in the same method?
Thank you for this
29:23 how do you highlight and delete -WebKit on both lines at the same time? I always see it giving a slight highlight to the same word that I’m selecting but never knew you could select a couple , what kind of dark arts is that???
I wonder if you could the waves the same way you do the spikes: make an svg of one wave and repeat it.
Hah. Im gonna be first! ^^. Where your designs comes from? I would like to make some portfolio but i have darkness in my head...
I come from a design background, so that makes it a bit easier :D - I'd suggest looking at existing sites and things for inspiration though, rather than just trying to figure things out from thin air
Could you do a video where you combine @mediaquery and animation to have responsive sizing those shapes?
Nice thumbnail
Hello, Sir! Respectfully suggesting, can you make an update video of html and css? I've been looking for tutorials in yt to learn and your channel is a good place to start. TY.
Such a great video! I’m currently stuck on the spikes section when we put in the WebKit mask image. I’m following the video step by step and I’ve looked over my code and it’s the exact same yet when I input the path into the WebKit, it’s not creating the spikes and stays as regular horizontal bars. I don’t know what I’m doing wrong 😢 any help from anyone figuring out how to deal with this would be great. I’ve never used WebKits before so is it possibly a setting I don’t have set?
Actually, they don’t stay as regular bars, they just disappear
I’m using Chrome
I was having the same issue. I got mine to work by removing the quotes in the -webkit-mask-image: url(). So mine says -webkit-mask-image: url(/assets/triangle.svg); and that worked!
@@dustinyochim so I tried that and it still didn’t work 😭
Same problem here
I found the solution. The problem: (Chrome don't recognize "mask-image: URL" on computer),
The Solution: Create a Chrome browser's shortcut. Right-click on the icon and in properties, edit target to "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession" and save. Then using Chrome open the page using ctrl+o. NOTE: Do NOT use this shortcut for regular browsing .
"I don't want to use an SVG"
Immediately uses an SVG
Is it possible to convert the triangle SVG into a CSS data so that you won't need the external file?
bro's using RTX Eyes
ty for the video btw
Haha, yeah, might not keep up with it though, lol
omg did I just spot eye tracker your eyes go over your glasses at 1:18 mhhhh
haha, yup, testing using one for my intros 😅
@@KevinPowell haha honestly good idea it really pulls me in with my full attention when openingen your video keep it up!💡
@25:12 In my case spike does not take background color as a variable instead it takes as a hard coded background color. Any suggestions?