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!

Комментарии • 185

  • @koigorfogbawa8238
    @koigorfogbawa8238 Год назад +215

    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.

    • @Allformyequine
      @Allformyequine Год назад +2

      TOTALLY AGREED!! :)

    • @johnnyjev9840
      @johnnyjev9840 Год назад +5

      😂! Everything I know in css I learned from Kevin's RUclips channel...
      I'm super grateful 🙌

    • @Allformyequine
      @Allformyequine Год назад +2

      @@johnnyjev9840 I would probably stop making money if he quit this channel LOL!

    • @8koi245
      @8koi245 Год назад +1

      his Scrimba course is also free!!

  • @rickardelimaa
    @rickardelimaa Год назад +38

    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!

    • @daleryanaldover6545
      @daleryanaldover6545 Год назад +3

      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.

    • @ihelpdogs
      @ihelpdogs 3 месяца назад

      *googling "pedagogic"....

  • @TeamROsky
    @TeamROsky Год назад +4

    awsome video btw love the way you repeat the basics of everything helps refresh the mind, subbed!

  • @norboost
    @norboost Год назад +10

    You could flip the after element in the triangle example horizontally as well, that way they would be symmetrical on top and bottom.

  • @sijiadegoke
    @sijiadegoke Год назад +1

    Kev, you're an angel, absolute godsend. Cant tell you how much your videos do to my progress. Thank you

  • @patrickmcnelis1520
    @patrickmcnelis1520 Год назад

    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!

  • @Rocadamis
    @Rocadamis Год назад

    Really great video! Thanks again Kevin!

  • @daveskye
    @daveskye Год назад

    Good Video, nice to see the full fresh start approach.

  • @oredeinbabajide3419
    @oredeinbabajide3419 2 месяца назад

    God bless you Kevin. Thank you for all that you do.

  • @bellow247
    @bellow247 Год назад

    I Learned 90 percent of all my css from this guy. Thank you Kev!!!

  • @abacealeycagan2896
    @abacealeycagan2896 Год назад

    Love you Kevin, You really make us fall in love with CSS

  • @aln.2366
    @aln.2366 8 месяцев назад +1

    I'm new to web development, and you are a golden source of knowledge. thanks a million.

  • @jadranko0o
    @jadranko0o Год назад +2

    Kevin, you did it : I’m in love with css! You’re amazing, thanks for all 🙌🏻

    • @KevinPowell
      @KevinPowell  Год назад +1

      Amazing! So happy to hear that :D

  • @matt.604
    @matt.604 Год назад +2

    I like your angles on the angels. 👼

  • @kamraniqbal17
    @kamraniqbal17 Год назад

    Beautifully Explained!

  • @mediadinger
    @mediadinger Год назад

    "margin-inline" ... "padding-block"... you saved my life !

  • @Glow0110
    @Glow0110 11 месяцев назад

    Always such helpful videos brother!

  • @prathameshpalkar514
    @prathameshpalkar514 Год назад +1

    I'm learning something new all the time with fundamentals too. Thank you so much KP sir🙏🏼🙏🏼

  • @arafhasan1533
    @arafhasan1533 Год назад

    just exactly what I needed right now.THANK YOU SO MUCH!

  • @giovannisoulkbenedetti7127
    @giovannisoulkbenedetti7127 Год назад

    Wow.. with just one of your videos I learn a lot. They are very exciting! 🔝Thank you Kevin

  • @javieru5871
    @javieru5871 Год назад +1

    Kevin you're truly the boss, thanks your content is top notch...

  • @ryo_5748
    @ryo_5748 6 месяцев назад

    Thank you for the easy to understand explanation! I'll try it on my website right away.

  • @mdtanjimahmmed9082
    @mdtanjimahmmed9082 Год назад

    Thank you so much. I love the way you taught us it's so easy to understand.

  • @trueberryless
    @trueberryless Год назад +11

    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!

    • @trueberryless
      @trueberryless Год назад +2

      Oh, maybe I didn't quite understood what you said... Unfortunately, I don't like using SVGs...

  • @1909jaya
    @1909jaya Год назад

    I love this!
    Thank you CSS king of kings!

  • @xenialxerous2441
    @xenialxerous2441 Год назад +7

    Thanks, Kev! You're a seasoned css practitioner 🙏✌🏻

    • @BryanMaxDobberstein
      @BryanMaxDobberstein Год назад +1

      Are you peppering him with accusations of being salty?

    • @xenialxerous2441
      @xenialxerous2441 Год назад

      @@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"!

  • @nomadshiba
    @nomadshiba Год назад

    Thank you Kevin, very cool!

  • @Chinodan1994
    @Chinodan1994 Год назад

    Thank you for sharing! 🙌🏼

  • @mobile_genshin
    @mobile_genshin 2 месяца назад

    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!

  • @sebastian.schwarz
    @sebastian.schwarz Год назад

    Awesome stuff! Thank you!

  • @ZenhostPanel
    @ZenhostPanel Год назад

    This channel is just so good... It has solution to everything i am concerned abt in web development

  • @noelfrancisco5778
    @noelfrancisco5778 Год назад

    Thank you for sharing these tips, very helpful :)

  • @HarryEland
    @HarryEland Год назад

    Learned a lot in a short time and well explained

  • @gravy1770
    @gravy1770 Год назад

    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

  • @sosinformatique3470
    @sosinformatique3470 Год назад

    thanks kevin coming from France your very hepful ! !

  • @joshuacooks
    @joshuacooks Год назад

    I'm a Sr. Dev and I learned quite a few helpful things from this video, very well done! 🏆

  • @alessandroformica6824
    @alessandroformica6824 Год назад

    Honoured to watch you styling, Master! ^^

  • @davidlafontant2185
    @davidlafontant2185 Год назад

    Unfortunately it's not allowed for one person to give 100000 likes for a video. It's awesome. Thank you very much. 👏🏿👏🏿👏🏿👏🏿👏🏿

  • @thomasp6208
    @thomasp6208 Год назад +3

    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 🙂

    • @girabbit
      @girabbit Год назад +1

      “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 *

  • @heavylog1c
    @heavylog1c Год назад

    Pretty cool stuff. I'm stuck with using clip-path and triangles made from borders. Now I'm gonna try mask-image.

  • @eybietie
    @eybietie Год назад

    pretty cool things. I am really confident with css but some solutions are just so smooth and clean. thanks for the video /cheers

  • @omotehinseelvis9845
    @omotehinseelvis9845 Год назад +3

    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

  • @FlorinPop
    @FlorinPop Год назад

    Great video! Learned a bunch! 🙏

  • @benderbg
    @benderbg Год назад +1

    You are born to be a teacher Kevin.

  • @krzysztofs3t532
    @krzysztofs3t532 Год назад

    OMG, man! I love your videos! isolation: property... I would never know something that usefull even exist!

  • @ispepsi2023
    @ispepsi2023 Год назад

    Awesome content! 😍

  • @KlausOppermann
    @KlausOppermann Год назад

    Great, thank you so much!

  • @TheMrChristli
    @TheMrChristli 6 месяцев назад

    thx this helped me a lot :)

  • @jefferymuter4659
    @jefferymuter4659 Год назад

    Super thankful for this channel as I slowly learn to stop hating CSS...... By learning CSS properly 😅

  • @travellingstranger3378
    @travellingstranger3378 Год назад

    ...you sir, are the best!

  • @madaraplays247
    @madaraplays247 6 месяцев назад

    Thank you sir 😃

  • @ernestechie
    @ernestechie Год назад

    FIRST HERE. Loving your content since 2019

  • @worldpeace1822
    @worldpeace1822 3 месяца назад

    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.

  • @Allformyequine
    @Allformyequine Год назад

    So FUN!!! Luv this; once again you blow it right out of the water :) 😃

  • @kavehghanbarabbasi2013
    @kavehghanbarabbasi2013 Год назад

    awesome , mate .. awesome

  • @mthia
    @mthia Год назад

    today i finished my page with svgs to create some waves etc and now im seeing this video :O

  • @StephenBolger
    @StephenBolger 7 месяцев назад

    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.

  • @nahidahmed9153
    @nahidahmed9153 Год назад

    nice video love it

  • @Paulo280713
    @Paulo280713 Год назад

    great content

  • @mkl.stranger
    @mkl.stranger 4 месяца назад

    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.

  • @LePhenixGD
    @LePhenixGD Год назад +3

    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%)
    ;

  • @stevealliance4370
    @stevealliance4370 Год назад

    Kevin, j"aime ton chandail :) from Quebec Canada

  • @ShaunLevett
    @ShaunLevett Год назад

    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.

  • @kc-ep8yx
    @kc-ep8yx Год назад

    Thank you

  • @omersoncruz1081
    @omersoncruz1081 Год назад

    whoaah finally a tutorial for shapes and stufss. Thanks Kevin

  • @LMHM
    @LMHM Год назад

    Just discovered ur channel. Feels like I found a cheatcode 😃

  • @Abdulwahab-hj4me
    @Abdulwahab-hj4me Год назад

    Absoulutely Fansastic 😵

  • @Linuxdirk
    @Linuxdirk Год назад +1

    I love your tutorials. Semantic HTML and easy to understand pure CSS are just the best! 👍

  • @snackss_
    @snackss_ Год назад

    Hey, nice sweater! Greetings from Ottawa haha :)

    • @KevinPowell
      @KevinPowell  Год назад +1

      I'm just outside of Montreal, though will be relocating to Halifax shortly :)

    • @snackss_
      @snackss_ Год назад

      @Kevin Powell Wow nice! Enjoy the move, hope it goes well!

  • @toisetrothanhmavuongbaaonh4725

    Godd of CSS is here ... 🎉🎉🎉

  • @c-eagle
    @c-eagle Год назад +1

    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...

  • @hugosales8102
    @hugosales8102 8 месяцев назад

    25:00 You could use either `background: transparent`, or even better `background: none` and you could have a gradient underneath

  • @ricardodesirat2590
    @ricardodesirat2590 Год назад

    Great video! To fix the zoom in and out, maybe a -1px on top and bottom of the ::before & ::after ?

  • @lynx242
    @lynx242 Год назад

    you rock

  • @nszbf
    @nszbf Год назад

    看到有人说是给初学者的视频,我认为即使是有经验的人,也能学到很多东西,谢谢

  • @metin1504
    @metin1504 Год назад

    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

  • @blac-whit
    @blac-whit Год назад

    Thank you for this
    {

  • @nomadshiba
    @nomadshiba Год назад +12

    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

    • @KevinPowell
      @KevinPowell  Год назад +2

      I'd love to have something like that :)

    • @shatadal_das
      @shatadal_das Год назад

      That's a really great concept. 😀

  • @rainofwalrus
    @rainofwalrus 5 месяцев назад

    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?

  • @gamingwithkraken7633
    @gamingwithkraken7633 Год назад

    Hello Kevin, could you show how you configured "Prettier" for HTML and CSS?
    There's some problem with and tags

  • @brucenorton
    @brucenorton Год назад

    I love skiing Owl’s Head

    • @KevinPowell
      @KevinPowell  Год назад

      I've spent the last 30 odd years skiing there, my parents live pretty close to it 😀

  • @johnKeysCloudSonics
    @johnKeysCloudSonics Год назад

    a fix for the rotated bottom spike shape "sub-pixel-rendering" situation could be to add a bottom margin to the pseudo element

  • @NurioonSoftware
    @NurioonSoftware Год назад

    How come you have time to create all these contents and i dont have time to watch all of them. You amazing

  • @sobertillnoon
    @sobertillnoon Год назад

    Why not scaleY(-1) instead of rotate(.5turn)? Would you still get the graphical issues when zooming?

  • @rhonda5780
    @rhonda5780 7 месяцев назад

    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. :)

    • @rhonda5780
      @rhonda5780 7 месяцев назад

      Sorry, I meant svg not avg.

  • @Klaus53123
    @Klaus53123 Год назад

    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

    • @GregPerham
      @GregPerham 6 месяцев назад

      left: calc( 50% - (var(-spike-width) / 2) ); (NB iOS wont let me type two hyphens)

  • @goodshiro10
    @goodshiro10 Год назад

    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?

  • @z-tech4703
    @z-tech4703 Год назад

    Thank you for this

  • @clevermissfox
    @clevermissfox 8 месяцев назад

    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???

  • @maidnuu
    @maidnuu Год назад

    I wonder if you could the waves the same way you do the spikes: make an svg of one wave and repeat it.

  • @saaika5922
    @saaika5922 Год назад

    Hah. Im gonna be first! ^^. Where your designs comes from? I would like to make some portfolio but i have darkness in my head...

    • @KevinPowell
      @KevinPowell  Год назад

      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

  • @ilijapajkanovic9514
    @ilijapajkanovic9514 Год назад

    Could you do a video where you combine @mediaquery and animation to have responsive sizing those shapes?

  • @quintonsmylie5584
    @quintonsmylie5584 Год назад

    Nice thumbnail

  • @graceljoyermena151
    @graceljoyermena151 Год назад

    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.

  • @renrecommends5347
    @renrecommends5347 Год назад +2

    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?

    • @renrecommends5347
      @renrecommends5347 Год назад

      Actually, they don’t stay as regular bars, they just disappear
      I’m using Chrome

    • @dustinyochim
      @dustinyochim Год назад

      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!

    • @renrecommends5347
      @renrecommends5347 Год назад

      @@dustinyochim so I tried that and it still didn’t work 😭

    • @untaoshorts
      @untaoshorts Год назад

      Same problem here

    • @untaoshorts
      @untaoshorts Год назад

      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 .

  • @fredhair
    @fredhair Год назад

    "I don't want to use an SVG"
    Immediately uses an SVG

  • @DamienCarbery
    @DamienCarbery Год назад

    Is it possible to convert the triangle SVG into a CSS data so that you won't need the external file?

  • @blu_ey
    @blu_ey Год назад

    bro's using RTX Eyes
    ty for the video btw

    • @KevinPowell
      @KevinPowell  Год назад

      Haha, yeah, might not keep up with it though, lol

  • @TeamROsky
    @TeamROsky Год назад +1

    omg did I just spot eye tracker your eyes go over your glasses at 1:18 mhhhh

    • @KevinPowell
      @KevinPowell  Год назад

      haha, yup, testing using one for my intros 😅

    • @TeamROsky
      @TeamROsky Год назад

      @@KevinPowell haha honestly good idea it really pulls me in with my full attention when openingen your video keep it up!💡

  • @gamingmode2868
    @gamingmode2868 Год назад

    @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?