Creating an inverted border-radius with CSS

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 208

  • @KevinPowell
    @KevinPowell  Рік тому +161

    Tried a very different style with this video and I'd love to know what you think of it! (and yes, the mask-image would have been a lot easier and is probably the best approach 😅)

    • @enkada69
      @enkada69 Рік тому +11

      Loved this new approach. It's interesting to watch your thought process

    • @ninjacodertech
      @ninjacodertech Рік тому +6

      it was quite fun and entertaining to watch! i hope you do more like these!

    • @hasan_haja
      @hasan_haja Рік тому +4

      Really enjoyed the style of this video!

    • @JasonJA88
      @JasonJA88 Рік тому +2

      I like this video style👍

    • @MichaelErkens
      @MichaelErkens Рік тому +2

      love it and this seems also useful to create a css-only LCARS interface.....

  • @flaringk
    @flaringk Рік тому +246

    I had no idea you could position pseudo elements on the grid that’s so useful

  • @Gearyco
    @Gearyco Рік тому +121

    There's nothing better than taking a design that most people would think requires photoshop/illustrator/masks/whatever and making it purely with CSS :) -- love this one!

    • @odinaka_joshua
      @odinaka_joshua Рік тому +1

      Immediately I saw this video I remembered your critique of my website 😂

  • @hwg6986
    @hwg6986 Рік тому +100

    Is there something that this guy can't do?!
    Amazing stuff Kevin!

    • @appsenence9244
      @appsenence9244 Рік тому +4

      Yes. I once asked him to make a poor CSS card and he tried his best but failed. It looked too good to pass my criteria

  • @D7460N
    @D7460N Рік тому +25

    This is next level and why I love your work so much. You not only show the 'what' and the 'how' but the 'why'. So important to understand when troubleshooting. At least it is for me. Thank you, and my vote is for more vids in this format.

  • @turolretar
    @turolretar Рік тому +29

    you can do this with clip-path: polygon and sass functions by approximating a radius. Maybe impractical, but kinda cool, cause you can approximate any kinda shape, even squircles (like the shape of an ios app icon), which look very nice. You can even animate clip path point by point.

  • @FlorinPop
    @FlorinPop Рік тому +6

    That’s why you are the CSS GOAT! 🙇‍♂️

  • @jm-alan
    @jm-alan Рік тому +10

    I used to not be very interested in CSS, and would learn how to brute force certain things, but as I've recently become the staff (read: only) frontend engineer at a startup, I've had to do more and more elegant implementations from our design team, and your videos have been instrumental in teaching me all the levers and switches and tools at my disposal to get things done easily and scalably, and I really appreciate that.

  • @michaelm8044
    @michaelm8044 Рік тому +8

    Thanks for this video, Kevin. Seeing you use psuedo classes is always pretty impressive to me. Looking forward to the next one. I also really like that you pull suggestions like these off twitter. Little design challenges like these that I haven't seen before are inspiring.

  • @Jason-mk3nn
    @Jason-mk3nn Рік тому +3

    Love the ingenuity of this. It is not always about the easier way, but knowing the ways you can achieve the same thing, though manipulatable means is the true pursuit of wisdom, as it can be applied in many different, and even unrelated scenarios. Great work, Kevin, as always!

  • @tasleet
    @tasleet Рік тому +2

    Bravo 👏 👏 👏, I did the same using an svg as the corner that I rotated for each corner and had a variable for width, height, and fill to control its size and color. Your solution is so awesome and simple, and the best part is that it's all css, amazing!

  • @NoName-1337
    @NoName-1337 Рік тому +1

    Had this problem 8 years ago or so. Added circles in size of the radius and in color of the background to get this shape. Very simple solution.

  • @pablowbk
    @pablowbk Рік тому +1

    Maybe not centric to the video, but that bit of "moving on to solving something else to make progress when you get stuck with a problem" is something that really helps me in my day-to-day web-dev tasks

  • @pxlskee
    @pxlskee Рік тому +1

    I saw someone do it in Webflow, although without using the grid. That's some valuable knowledge right here.

  • @marcosantonioreyesmedina2364
    @marcosantonioreyesmedina2364 Рік тому +1

    Excellent, recently in the company we had the same challenge, I solved it using the after and before pseudo elements, in addition to the use of the clip-path function with an internal svg vector to do the drawing.

  • @nielskersic328
    @nielskersic328 Рік тому

    I love this shorter format! It's a good pace, quick and to the point, but still very easy to follow along if you know the basics (pseudo elements, grid, variables)

  • @ralacerda12
    @ralacerda12 Рік тому +17

    Amazing, but for the amount of work needed, I do believe that making it without SVG mask is the overkill.

    • @KevinPowell
      @KevinPowell  Рік тому +15

      100% the mask-image would be easier, plus it would work on non-solid backgrounds as well

    • @FaizanAnwerAli
      @FaizanAnwerAli Рік тому +5

      @@KevinPowell please do this mask-image as well to compare responsiveness. Also do you any tutorial on mask-image?

  • @OnlineTutorialsYT
    @OnlineTutorialsYT Рік тому +4

    Amazing work 👍kevin...
    I would also like to complete this challenge.

    • @KevinPowell
      @KevinPowell  Рік тому +2

      Would love to see your approach! So many ways to do this, many probably better than what I did here 🤣

  • @aenapoeka
    @aenapoeka Рік тому

    Thanks for going the hard way, in cases like this proving a point is progress for everyone.
    Also the sped-up live work was interesting to watch!

  • @YaroLord
    @YaroLord Рік тому

    Holy Jesus Kevin, mid-watch I was ready to comment "neat, now make it responsive" AND YOU GO AND MAKE IT RESPONSIVE! Amazing. Thanks for sharing

  • @ed1nh0
    @ed1nh0 Рік тому +1

    Mission accomplished! It's handy, it did the job, but I have to admit I really don't like all these, say, workarounds with pseudo elements. I think it isn't quite maintenable, specially when you cover that responsive behavior, even using CSS vars IMHO. But, well, you did it! Thanks for sharing!

  • @mambans
    @mambans Рік тому

    I really like hearing your thought process.

  • @blackwolf542
    @blackwolf542 Рік тому

    This is why you are the King of CSS. I enjoy watching your videos you make CSS digestible and fun.

  • @ishwerchaudhary6053
    @ishwerchaudhary6053 Рік тому

    Kevin when watching your videos, my soul just relaxes ... .. I am big fan from Nepal 🙂😊

  • @maxfalovic
    @maxfalovic Рік тому

    I came across a scenario like this the other day at work, I really wanted some kind of magical inverted border radius property at the time! 😅 I love your solution and I also enjoyed this content form, reminds me of the pace of a Short but with time for more detail. 👍

  • @adeisaac
    @adeisaac Рік тому

    Honestly, the firs thought was, he got Kevin, will Kevin pull this off, but then again - he is the CSS man so, yeah, you nailed, thanks for the video.....whoooooooohhhh

  • @KoarisDesign
    @KoarisDesign Рік тому

    I can see you tried the same style as hyperplexed. Not quit his quality but keep it up, you’re getting there !

  • @rockmonty
    @rockmonty Рік тому

    didn't know you can place absolute elements relative to grid areas . Thanks for sharing.

  • @francescomerighi6458
    @francescomerighi6458 Рік тому +1

    You Kevin really are the CSS KING.

  • @libbeytds
    @libbeytds Рік тому +1

    The King of CSS at it again

  • @i_am_ergo
    @i_am_ergo Рік тому

    What a beautiful little design! Thanks for sharing, Kevin!

  • @pablorey9203
    @pablorey9203 Рік тому

    That was a fast-paced video... mercy for non-English speakers! Anyway, great video, thanks for this one, and for so much!

  • @hjetwd
    @hjetwd Рік тому

    Kevin when watching your videos, my soul just relaxes ☺

  • @marielemaitre5006
    @marielemaitre5006 Рік тому +1

    Beautiful!! Thanks Kevin!

  • @philwatts
    @philwatts Рік тому

    The dev was flexing unnecessarily on this one! Nice effect though. Nice one Kevin. 👊🏼

  • @vlad_gabor
    @vlad_gabor 7 місяців тому

    Really impressive stuff! Thank you for sharing ❤

  • @ThomKnepper
    @ThomKnepper Рік тому

    Kevin, you should be working on the actual CSS spec... You're mind blowingly good at this.

  • @jezmck
    @jezmck Рік тому +5

    I think I'd try doing it with an overlaid hand-coded SVG.

  • @_abdul
    @_abdul Рік тому +2

    I'll be honest that was a bit Janky or I should say Hacky, But I definitely learned some new things, That's always a Plus. Thanks for everything Kevin.
    Definately liked this new style, would love to see more like this here and there.

  • @castlemoyle
    @castlemoyle Рік тому

    That's amazing. I think I like the different approach. But I found I was having to force myself to breathe. Smooth edits on that.

  • @code-vicky
    @code-vicky Рік тому

    Thanks It worked way better then box shadow method. thank you :)

  • @zeddash
    @zeddash Рік тому +1

    My solution (OJBZmra) which was picked by CodePen 😉 follows this closely. While CSS method looks sketchier with CSS it's easier to make it responsive and adaptive, all of the SVG solutions can't handle responsive layouts (however I think you could split the image in 2 or 3 which would allow for a responsive layout but it's now added a lot more complexity and it's more complex than the CSS solution.
    However I did the internal corners differently. Rather than having a square with a circular gradient to cut the corner, I used a transparent circle with the drop shadow 50% left 50% down and with this there were no aliased curves, all smooth and a lot simpler to set up.

  • @domsau2
    @domsau2 Рік тому +1

    Hello. Congratulations! Challenge completed!

  • @BlurryBit
    @BlurryBit Рік тому

    Ahh I remember this one. Great video Kevin!

  • @cdey3886
    @cdey3886 Рік тому

    idk why but I really like the editing and overall the video.
    Did you change anything?

    • @KevinPowell
      @KevinPowell  Рік тому +1

      Normally I talk as I write the code. This time I recorded the work, then went back over and made a voice over for it. Glad you liked it

    • @cdey3886
      @cdey3886 Рік тому

      @@KevinPowell Keep it going!

  • @kushagra-aa
    @kushagra-aa Рік тому

    Intresting......Surely I will find a good use for this knowledge

  • @zaidnissar356
    @zaidnissar356 9 місяців тому

    Crazy well done

  • @unleashthedog
    @unleashthedog 5 місяців тому +1

    split keyboard? wow, i'm interested to know how good that is

  • @Vickwick58
    @Vickwick58 Рік тому +2

    Both "radii" and "radiuses" are used in the UK and the US. "Radii" is far more common in published writing and academic papers.

  • @jeros2911
    @jeros2911 Рік тому

    Amazing work Kevin, thank you for the video!

  • @0Ipsita0
    @0Ipsita0 Рік тому

    @Kevin Powell can you make a complete series videos on responsiveness with scss, i love you explanation.

  • @beratsulimani9823
    @beratsulimani9823 Рік тому +1

    Wow awesome Kevin, tricky design, ;)

  • @peter-bash
    @peter-bash Рік тому

    Brilliant as usual Kevin, thanks.
    In case I want to try the mask way. Is it that I would do it in Photoshop for instance and save it and use it in html? Is that what you mean? I have never tried such thing before.

  • @fatimanura6359
    @fatimanura6359 Рік тому

    That's some next level shit , he always seems to send me to the beginner mode

  • @nagualdesign
    @nagualdesign Рік тому

    Looks great. 👍🏻

  • @nameless5724
    @nameless5724 Рік тому

    REally Amazing The CSS King

  • @Bedicoder
    @Bedicoder Рік тому

    Good work thank you Kevin

  • @ThomasGodart
    @ThomasGodart Рік тому

    Congratulations! This one is really tricky, having tried it some time ago, and failed

  • @RaneBowen
    @RaneBowen Рік тому

    That was brilliant

  • @lukas.webdev
    @lukas.webdev Рік тому

    Very interesting video! Thanks for sharing. 😉🔥

  • @jacoblockwood4034
    @jacoblockwood4034 Рік тому

    Great video, I haven’t used CSS in a few weeks so this has helped me get a bit of a refresher as well as a cool tip to maybe try.

  • @suvojitmodak3285
    @suvojitmodak3285 Рік тому

    You are my favourite teacher ❤

  • @daveturnbull7221
    @daveturnbull7221 Рік тому +6

    Sometimes the best solution is not really the best solution. Doing this let you push the limits and find new ways to do stuff.

  • @xXarz15Xx
    @xXarz15Xx Рік тому +2

    About to be enlightened by the content but first - which monitor do you use Kevin?

    • @KevinPowell
      @KevinPowell  Рік тому +2

      Samsung Odyssey Neo G9 🙂

    • @jezmck
      @jezmck Рік тому

      @@KevinPowell Wow, that is _not_ cheap!

    • @xXarz15Xx
      @xXarz15Xx Рік тому +1

      If 1440p is good enough for Kevin then might have to purchase 😅

    • @d.o.nmuzic3802
      @d.o.nmuzic3802 Рік тому +2

      That monitor grabbed my attention too.
      This was a great video Kevin. This is the type of info we only get here. We appreciate you 🙏🏾

    • @KevinPowell
      @KevinPowell  Рік тому +1

      ​@@jezmck definitely a bit of a splurge, lol. I really like it, but a good 2 monitor set up is just fine as well

  • @nove1398
    @nove1398 Рік тому

    This is a nice solution

  • @NurioonSoftware
    @NurioonSoftware Рік тому

    You are Magic Johnson of the CSS

  • @husreihn1070
    @husreihn1070 Рік тому

    Wished you showed more regarding the stacking in grid. Havent seen a video regarding this..

    • @irfantayyib
      @irfantayyib 6 місяців тому

      Explicitly set the same grid column and row on both the elements that you want to overlap

  • @truvc
    @truvc Рік тому

    I had to something like this but with a dynamic background. clip-path() with SCSS variables instead of custom properties was how I got it done.

  • @prodbybarn
    @prodbybarn Рік тому

    Awesome just awesome, the css king

  • @Simple_Minded
    @Simple_Minded Рік тому

    i need to try this

  • @minadivlogs4790
    @minadivlogs4790 Рік тому

    Please make video on this challenge.
    I want to make a layout where there are header and main and main has multiple dynamic items of 150/150 px each. while making responsive screen, items should wraps in smaller size. header should always occupy width according to the items. for example if it has 1 item then header width should have 150px if 2 items then 300px and so on so forth.

  • @juliofreitas1652
    @juliofreitas1652 Рік тому

    Oh my GOD, you have a split keyboard. Can you make a video about your macros and about your experience with a split keyboard? It would be nice :)

  • @ShiloBuff
    @ShiloBuff Рік тому

    This looks great for post-edits but a nightmare for the initial edit. I love native approaches and avoiding raw images, but in this case I would stick to an image.

  • @marcllobera3934
    @marcllobera3934 Рік тому

    as allways amazing

  • @junsu-ho
    @junsu-ho Рік тому +1

    WoW Kevin nice work station, how big is it? do you enjoy it?

    • @KevinPowell
      @KevinPowell  Рік тому +1

      It's the samsung odessy neo g9, 49". I love it, but I know some people who hate the curve and much prefer using multiple monitors instead

    • @junsu-ho
      @junsu-ho Рік тому +1

      @@KevinPowell the curve seems massive indeed

  • @PabloGaraguso
    @PabloGaraguso Рік тому

    I tip my hat to you sir. Amazing.

  • @saschab.5154
    @saschab.5154 Рік тому

    You are a true magiccsian!

  • @renatos.novaes8700
    @renatos.novaes8700 Рік тому

    GENIUS!

  • @danatronics9039
    @danatronics9039 Рік тому

    Interesting. My first thought would have been abusing outlines, pseudo-elements, and/or z-index, but it would probably be even harder than this method.

  • @shoulderstack5527
    @shoulderstack5527 Рік тому

    This is a great video format, and I really enjoyed your explanation. Thanks.
    But on another issue, I think this challenge illustrates just how crazy CSS is as a language. The CSS solution is often more complex than the problem it is trying to solve.
    HTTP, HTML, CSS and Javascript were probably all reasonable ideas when they began, but they aren't good at describing the web we are building today.
    They never had good Separation of Concerns, and the concerns of the modern web are not those of the past. Instead of useful tools they are akin to mystic spells and incantations, adding their own complexity to the original task. We have answered these complexities with the rise of Frameworks and new languages, multiplying the complexity and adding dependency issues on top. All this results in a web that looks great, but has uncertain security, confused UX flow, intermittent bugs and even superstitious advice.
    We should stop adding to these languages and instead work together to figure out a new paradigm which fits the modern web. $0.02

  • @haroldguzman1285
    @haroldguzman1285 Рік тому

    Wow amazing thank. Now I Know

  • @meganweber5057
    @meganweber5057 5 місяців тому

    You could use gradients for mask-image instead of an svg.

    • @erichepperlewp
      @erichepperlewp 4 місяці тому

      I'd love to know how to do that! Can you share a link?

    • @meganweber5057
      @meganweber5057 4 місяці тому

      @@erichepperlewp I don't think UA-cam lets you comment links but its on my Codepen megancweber.

  • @bigphab7205
    @bigphab7205 Рік тому

    I've had to do something similar before. Before vector masks were as flexible as they are today. My case was somewhat simpler though. So I can't help but wonder if rendering the image on two boxes would have made it simpler to do.

  • @monarchgam3r
    @monarchgam3r Рік тому

    That was a lot…. Thanks for all your work

  • @code.design
    @code.design 3 місяці тому

    Oh, it's border-radii. Just flexing my knowledge of Latin plurals, you know the system where the entire modern language is based upon, no big deal. 😎📚

  • @proteus1
    @proteus1 Рік тому

    Greetings from Cyprus. I was trying to do this on a project I'm working on..

  • @Beast80K
    @Beast80K Рік тому

    *Respected Sir,*
    I would like to ask you,
    What topics, in what order should I follow to master CSS ?
    Its a bit confusing cause I know basic CSS but face problems in positioning components, making responsive designs, not able to make shapes etc.
    - Thank you

  • @_Amilio_
    @_Amilio_ Рік тому +1

    CSS King 👌

  • @GulaManYOW
    @GulaManYOW Рік тому

    Absolute goat

  • @Kamrul_abc
    @Kamrul_abc Рік тому

    This reminds me of those is rounded corner days. When you would put 4 rounded cornered images at the four sides of the box - positioning absolute. CSS Grid should be ashamed of. And why the grid gap did not work? Any idea? This is totally strange!!

    • @KevinPowell
      @KevinPowell  Рік тому

      the gap is there, but it doesn't work because the image is spanning multiple cells, so we don't see the gap there.

  • @efari
    @efari Рік тому

    I’m not happy with the border-radius on the white price box.
    You did _size / 2. But it should’ve been _size - 0.75rem.
    The 0.75 rem comes from the padding on that element, since it’s not set to _size but rather hardcoded 0.75

  • @hassanfarooq534
    @hassanfarooq534 Рік тому

    amazing maaan you are the goat ✨✨✨✨✨✨

  • @spreadItWide
    @spreadItWide Рік тому

    Possible challenge for you (lol please?): I made a generic UI card that is solid with transparent windows inside of it. So if you have a fixed image/video fullscreen background, as you scroll, the window cutout inside of the card is the background (or whatever element that is under the card). I can share my code if you want (it's hacked together, but it works. Just hoping you could improve it..).

    • @KevinPowell
      @KevinPowell  Рік тому +1

      LIke this? 😁
      codepen.io/kevinpowell/pen/ExdMBeR/166a1b2c21d929b155f2e044194f2139

  • @ahmedhussien6868
    @ahmedhussien6868 Рік тому

    From Egypt u are the best

  • @rojka-_-
    @rojka-_- Рік тому

    Damm thats awesome

  • @rojanadhikari9606
    @rojanadhikari9606 Рік тому

    “Insanity is doing the same thing over and over and expecting different results." -Albert Einstein
    Thank you master.

  • @parthjasani7
    @parthjasani7 16 днів тому

    Amazing 🎉

  • @anthonyewell3470
    @anthonyewell3470 Рік тому

    This is definitely one of those "great katas that you'd never want to actually implement" type of things

  • @adedejioluwasegun2567
    @adedejioluwasegun2567 Рік тому

    Hi Kevin,
    this is a nice tutorial
    But can you do a video using mask-image

  • @itssNiraj
    @itssNiraj Рік тому

    Maybe if we can apply
    Image-rendering: smooth;
    To shapes is possible