Can I create this tricky orbiting icon animation?

Поделиться
HTML-код
  • Опубликовано: 9 июл 2024
  • You can find details on my upcoming course here: beyondcss.dev
    🔗 Links
    ✅ The original design I'm trying to copy: seamlesshr.com/
    ✅ My code: github.com/kevin-powell/seaml...
    ✅ How I compile my Sass in this video: • Stop using an extensio...
    ✅ Visbug: chrome.google.com/webstore/de...
    ⌚ Timestamps
    00:00 - Introduction
    01:08 - Getting started
    02:49 - Writing the HTML
    06:02 - Generating the colours
    14:09 - Starting to style things
    15:22 - The center image
    19:35 - The li circles
    43:24 - Adding the rotation
    01:04:20 - Pausing the animation on hover
    01:08:51 - Adding the throbbing animation
    #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!

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

  • @KevinPowell
    @KevinPowell  2 года назад +47

    The `scale:` property worked for me because I had the Experimental Web Platform features flag turned on in Chrome. It is supported in Firefox and Safari, but still behind a flag in Chrome as they work out performance issues from the bug reports I looked at. If you'd like to enable it, you can find the flag by going to chrome://flags and searching for it in the search that shows up.

    • @michaeleggert4401
      @michaeleggert4401 2 года назад

      Did. D him lol

    • @gaetanvitrac4179
      @gaetanvitrac4179 2 года назад +3

      Hey ! if you work with degrees a circle is 360°, you have 8 circle then each circle must be at 45° from each other (8 * 45° = 360).
      Then u can use sin() and cos(), basically sin() gives u the distance on the Y axes and cos() on the X axes, your translate will be : translate( (15 * cos(45 * i)) rem , (15 * sin(45* i) rem) where i is the number of the circle you are curently looping on !

    • @fenandamilanda2032
      @fenandamilanda2032 2 года назад

      @@gaetanvitrac4179 yeah and maybe you could just use sin and cos to change their position changing their angle bit by bit based on the speed you want to rotate it at

    • @MsAnnieHuang
      @MsAnnieHuang 2 года назад

      The 'rotate' as well in 45:29 as well. It required the Experimental Web Platform flag to turn on

  • @AirforcLuckyThirteen
    @AirforcLuckyThirteen 2 года назад +115

    Hey Kevin, your videos actually helped me go from "I wish I was writing JS" to "This is not so bad" when talking about CSS, thanks again for making them!

  • @kenbee85
    @kenbee85 2 года назад +12

    Man, you really inspire me as a frontend dev. Anything that I don't know or forgot I would always go to your channel. Thank you so much Kevin

  • @JuanMoisesTorrijos
    @JuanMoisesTorrijos 2 года назад +81

    After googling: how to find the coordinates of a point on a circle, I noticed that to get the position of the translate property for the even lis, you need to multiply the radius by 0.707 (which is the sin of 45º). So, it would be 15rem * 0.707 = 10.605rem. 🤓

    • @manneg
      @manneg 2 года назад +11

      you can get the same answer through the pythagorean theorem.
      x^2 + x^2 = 15^2
      x^2 = (15^2)/2
      x = ((15^2)/2)^0.5 = 10.61

    • @amandinelevecq6664
      @amandinelevecq6664 2 года назад +18

      @@manneg Pythagorean is working only because there are 8. The general way is to use trigonometry. 12rem*cos(360/8*n) for the X, where 8 is the nomber of circles you want to place. For Y, it is the same formula but with sin instead of cos.

    • @manneg
      @manneg 2 года назад +3

      @@amandinelevecq6664 well, yes. In this case i was just showing that you don't need trigonometry to figure out the right answer. This was the solution that immediately came to mind so I thought I'd share.

    • @julianvarga
      @julianvarga 2 года назад +3

      15/sqrt(2)

    • @davelordy
      @davelordy 2 года назад +4

      _"how to find the coordinates of a point on a circle"_
      x = (cos(angle) * some multiplier depending on how big you want the circle to be) + origin x.
      y = (cos(angle) * some multiplier depending on how big you want the circle to be) + origin y.

  • @esmeralddedushaj3598
    @esmeralddedushaj3598 2 года назад +20

    I used a different approach, to build something similar:










    Inside each I used inline-style variables, which helped me to build a perfect circle using calc( ).
    .flex {
    position: relative;
    display: grid;
    place-content: center;
    width: 350px;
    height: 350px;
    }
    .flex span {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: rotate(calc(80deg * var(--i))); >>this formula lets build a perfect circle, without using transform: translate( ) in each tag.
    }
    My code: codepen.io/esmeralddedushaj/pen/KKZbPOE

  • @mickeberg2123
    @mickeberg2123 2 года назад

    Kevin your videos are amazing. I've learned so much from them. Also love this format, where we get to see the process and the mistakes along the way. It's very relatable! Keep up the good work!

  • @siddharthshekhar6786
    @siddharthshekhar6786 2 года назад +38

    To arrange the items in a perfect circle, instead of hardcoding magic numbers in translate(), we could use rotations, which allows us to even have an arbitrary number of items!
    $item-count: 8;
    @for $i from 1 through $item-count {
    $angle: (360deg / $item-count) * $i;
    .item:nth-child(#{$i}) {
    transform:
    translate(-50%, -50%)
    rotate(calc(-1 * #{$angle}))
    translate(15rem)
    rotate(#{$angle});
    }
    }
    The first "translate" is just for centering.
    The magic happens in the remaining 3 transforms:
    The first "rotate" causes the X axis itself to be rotated.
    So, the subsequent "translate" now moves the element not horizontally, but along the angle by which we rotated!
    With this, the element is now at the right location, but it still looks rotated.
    So the last "rotate" is opposite to the first one - now the element visually has no overall rotation!
    Sandwiching the "translate" between two opposite rotations this way allows us to translate along any direction with a fixed distance.
    Using "translate" without the two "rotate"s would require us to know the exact X and Y distances to translate with, which can only be calculated using cos() and sin().

    • @KevinPowell
      @KevinPowell  2 года назад +10

      cos() and sin() are on their way to CSS, and I could have done this with Sass, if I'd had any idea about how to actually do it, lol.

    • @azzen_v
      @azzen_v 2 года назад +2

      you can do several translates on one transform? I didnt know that, that is awesome!

    • @LadyLexyStarwatcher
      @LadyLexyStarwatcher 2 года назад

      For those wondering, ~10.61 is the value you want to rotate on the 45 degree items. Though my self I would love to see this in a loop like like shown here. I have a strong tenancy to want to generalize and hardcore nothing.

    • @yordanpopov7080
      @yordanpopov7080 2 года назад

      How would animating the counter rotation work if we code this example. Should the animation include everything from you transform and then on top of that out rotate() that will be changing value?

    • @siddharthshekhar6786
      @siddharthshekhar6786 2 года назад

      @@yordanpopov7080 Yes, all the transforms would have to be repeated for each keyframe within an animation.

  • @mrkhan7599
    @mrkhan7599 2 года назад +3

    Hey Kevin,
    I really love your work. You did make me fall in love with CSS. I get to learn a lot from your work. Keep making such awesome videos.

  • @johnpaulpineda2476
    @johnpaulpineda2476 2 года назад +1

    this is actually what im looking for. thanks kevin!

  • @developerpranav
    @developerpranav 2 года назад

    Phenomenal work Kevin!

  • @bedlam5657
    @bedlam5657 2 года назад

    What an epic adventure. Great work!

  • @universecode1101
    @universecode1101 2 года назад +1

    Very useful 😄Thanks Kevin ✌🏻

  • @naveenramkumar6123
    @naveenramkumar6123 2 года назад

    Hey Kevin, these types of videos are the best...Please make some more of these types!

  • @zachjensz
    @zachjensz 2 года назад +4

    🎉 🥳 Congratulations on 500,000+ Subscribers Kevin! 🎊 🍻

  • @razorjhon2622
    @razorjhon2622 2 года назад

    wanted to do something like this for 3 days straight and i gave up trying and you posted this video in the right time , thank you so much man i love you ♥

  • @seeds.ffmpeg
    @seeds.ffmpeg 2 года назад +8

    I've watched so many of your videos so far, I'm the frontend developer I am today because of your channel, thank you so much. I finally enjoy and love coding CSS.

  • @sfsdfsdfsdfmjng4238
    @sfsdfsdfsdfmjng4238 2 года назад

    I honestly learned a lot here, I'll keep watching your channel!

  • @uridevmedia
    @uridevmedia 2 года назад +1

    Fantastic video, thanks kevin 👍
    Congratulations on your 500k plus subscribers

  • @JoshAntBrown
    @JoshAntBrown 2 года назад +8

    Great video! The math problem of getting the correct x and y was a fun challenge. Ended up coming up with this in sass as possible solve, could probably be tided up so it's a bit more re-usable the 45deg is 360 divided by number of list items.
    @for $counter from 0 through 7 {
    li:nth-child(#{$counter + 1}) {
    transform: translate(
    15rem * math.cos(45deg * $counter),
    15rem * math.sin(45deg * $counter)
    );
    }
    }

  • @ericnescau
    @ericnescau 2 года назад

    AMAZING JOB! It was enjoyable watching this like watching an action movie! Congratz!

  • @JamieMaguire_
    @JamieMaguire_ 2 года назад

    By far the best CSS content on RUclips!

  • @dimitrijep7872
    @dimitrijep7872 2 года назад

    that was super cool, good problem solving skills, thank you!

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

    Thank you Kevin! Your work are really inspiring!

  • @alialavizadeh2775
    @alialavizadeh2775 2 года назад

    love this type of videos, make more of like these one

  • @rohitsanwariya7217
    @rohitsanwariya7217 2 года назад

    This is the most fun i ever had on any follow along tutorial.

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

    Awsome job!

  • @bobbyboxer2664
    @bobbyboxer2664 2 года назад

    Damn this is insane! 🙌🏼🙌🏼

  • @ouvie
    @ouvie 2 года назад

    you are amazing! great video as always

  • @zmodem4619
    @zmodem4619 2 года назад +1

    @1:32:10 -
    At the bottom of the window, and above the "&:hover", there's "--thob-play-state: play;", which was supposed to be "--throb-play-state: play;"
    Missing the 'r' in the "--thob-..."
    ---
    No big deal! Kevin, I've learned so much from your videos, but the best thing I've learned is how to just tinker and forget about making mistakes; mistakes are important, and they help us gain wisdom alongside knowledge. Your approach is so calming that it makes me more excited to fidget around! I've been dev'ing since 1996, as a hobby, side projects, and as a freelancer. You inspire me to keep up with the newer updates to the design cores and adapt to not living in the past (no, I'm not still using for layouts, lol).

  • @lenn15
    @lenn15 2 года назад

    Really cool !

  • @Victor_Marius
    @Victor_Marius 2 года назад +1

    For positioning of all icons could set the li width and height to 36rem, then center to body below the woman/man images. The image icon and paragraph will need an extra wrapping [ul > li > div.icon-12rem > (img, p)] that will be 12rem diagonally circle translated to right (and its rightmost point aligned to the li rightmost side). Then to place the other list items you rotate them (if they are only 8, by 360/8 * [0....7] = 0, 45, 90, 135, 180, 225, 270, 315) and counter rotate the li > div.icon-12rem wrappers (with 0, -45, -90....)

  • @denniscaylorboc2342
    @denniscaylorboc2342 2 года назад +1

    I'm a junior frontend dev and you inspires me a lot not to give up challenges using only css. keep on making more contents pls.

  • @DominikGuzowski
    @DominikGuzowski 2 года назад

    This channel literally made me turn from pulling my hair out working with CSS to having uncontrollable urges to style my friends projects because he doesn't care to make it look nice 😂. Thanks Kevin!

  • @fer.barrios
    @fer.barrios Год назад

    Amazing video!!

  • @crowebro9581
    @crowebro9581 2 года назад

    You amaze me Kevin. Your skills are inspiring.

  • @frittex
    @frittex 2 года назад

    So cool!

  • @FFAs
    @FFAs 2 года назад +1

    Very cool! I hope you do more videos like this one in the future.
    One thing that could be an interesting general video topic is a discussion of how to recreate things that are standard in javascript into CSS, and how to tell when you should and should NOT be using javascript instead of CSS.

  • @ankitkumarsingh9815
    @ankitkumarsingh9815 2 года назад

    You are an inspiration!

  • @william1504
    @william1504 2 года назад +2

    Great video!
    Btw, you can use a negative animation-delay on the itens, so that the animations will be offset from each other but will not have the start delay when the page refreshes.

  • @flashbond
    @flashbond 2 года назад +1

    For the exact radial placement, coordinate formula is: (x, y) = (radius*sin(radian(angle)), radius*cos(radian(angle))). I don't know if sass supports trigonametric functions but in your case, a for loop can be defined where the radius is 15rem with 45-degree angle incremenents.

  • @user-hr7wl8xr7o
    @user-hr7wl8xr7o 2 года назад

    You inspired me to go through this challenge. Turns out, the most difficult part is math for list item coordinates, especially when you are trying to animate their moving and expanding at the same time.

  • @erhahonimafidon9306
    @erhahonimafidon9306 2 года назад

    Thank u Mr. Powell

  • @AndyInTheUK
    @AndyInTheUK 2 года назад

    Brilliant!

  • @max06de
    @max06de 2 года назад +1

    Awesome presentation! In the end it seemed to be "simple", but the moments in between when you went on like "why is this moving" reminded me again why I'm no frontend developer - I'm not gonna try it, I prefer to keep my sanity, or what's left of it.

  • @GauravKumar-ue7nz
    @GauravKumar-ue7nz 2 года назад

    Thank you Kevin

  • @RajShekhorcoder
    @RajShekhorcoder 2 года назад

    Appreciate. Awesome thanks 👍

  • @developer_hadi
    @developer_hadi 2 года назад +1

    AWESOME

  • @avneet12284
    @avneet12284 2 года назад

    Excellent - took me 2 days to get this fully

  • @simbaclaws_youtube
    @simbaclaws_youtube 2 года назад

    I remember doing this exact animation 4-5 years ago for a client in pure css. It was awesome....

  • @paleofemme
    @paleofemme 2 года назад

    Just got an A in Web Dev 230 thanks in great part to your videos. Thank you! 🙏🏻

  • @HolgerNestmann
    @HolgerNestmann 2 года назад

    I love this! no googling is an artform :D

  • @vladimirpetroski7089
    @vladimirpetroski7089 2 года назад +1

    Kevin...you're amazing and you deserve all the praise and followers! That laugh...at 17:14 ...I haven't laughed that hard this year!

    • @KevinPowell
      @KevinPowell  2 года назад

      🤣🤣 I didn't even really notice that when editing, lol

  • @noelfrancisco5778
    @noelfrancisco5778 2 года назад +3

    I think to determine the position of each options is to use pythagorean theorem, using the constant radius as your base and the angle as the space for each. :)
    Overall, great work. I learned a lot , thanks :)

  • @AlThePal78
    @AlThePal78 2 года назад

    Greatest video ever I love to see mistakes makes me feel human

  • @agustinmassa4341
    @agustinmassa4341 2 года назад

    Thanks Kevin! also improve my english listen to you! Great video, and success copy design jeje

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

    A lot of new stuff to learn from this video, thanks! Just one question - why the has to have both width and height. If I unset width - nothing changes, if I also unset height - the image moves a little bit down, but the animation continues working (all the items are at the same position)?

  • @frankroos1167
    @frankroos1167 2 года назад

    In cases like this, my first reaction is to open the developer tools and see how they did it.
    For practice doing without that is better. But afterwards, I would still do it to compare.
    Would be nice to see that comparison for this case.
    Either way, I learn. So it's all good.
    Thank you master Kevin.

  • @anhtuantran5748
    @anhtuantran5748 2 года назад

    Thanks so much

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

    This is why trigonometry is useful folks, the translates should be r cos((360/n)*c) , r sin((360/n)*c) where n is the number of evenly spaced points c is the specific point you are translating and r is the length between the center!

  • @mimoduocss
    @mimoduocss 2 года назад +1

    Shucks I knew custom properties were the way to go, didn't know about rotate: 1turn either, good idea. As always I love your presentation and speaking style! I posted my solution to my youtube channel and codepen :3 It's amazing how wildly different our solutions are. Thank you for the challenge!

    • @KevinPowell
      @KevinPowell  2 года назад +1

      Always fun when there are more than one way to approach things like this :D

  • @magicclick279
    @magicclick279 2 года назад

    Thanks!

  • @Stoney_Eagle
    @Stoney_Eagle 2 года назад

    I bet you that the original creator took more than 2 days to make this, you are the king 😊

  • @jemrl
    @jemrl 2 года назад

    Great video, followed along coding my own project using straight CSS as I am not familiar with SASS. Something I will look at doing through udemy when I get a chance

    • @jemrl
      @jemrl 2 года назад

      Question - How do you fix the issue of adjusting the CSS when the page goes full screen without having to manually refresh the page to fix it? Do you have to use JS to solve this issue?

  • @RichardTran
    @RichardTran 2 года назад

    It's fun to see the unedited process but I'm glad this isn't live, I'm still screaming "translate-origin" at my monitor.

  • @atkimusic
    @atkimusic 2 года назад

    Hey Kevin, just wanted to let you know if you don't already, RUclips's auto CC is still capturing "Friend and Friends" in all your videos. I think that's hilarious. Amazing content as usual! 😄

  • @johnscafide275
    @johnscafide275 2 года назад

    Call PBS. A modern-day Bob Ross. Well done!

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

    If you want merch ideas you could do a "var(--thob-play-state)" t-shirt :P You were missing an r.
    Also, for the record, you continue to help fortify my newfound love CSS. I really hope to be as good as you someday but for now I am still only a few weeks into my journey.

  • @cacowen
    @cacowen 2 года назад +6

    To make the item appear in a circle could you have set the XY using (0,15), (0,-15), (15,0), (-15,0) and then "pre rotated" every other one 45 degrees. I am thinking this would work provided the rotation happened while the center was still the center of the content and not the center of the individual item. Much like what was happening around 53:10

  • @SohaibHasan
    @SohaibHasan 10 месяцев назад

    You are the CSS guru

  • @luismunoz9126
    @luismunoz9126 2 года назад

    daaaam, that's crazy

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

    make a big circle that all the little circles are attached to. spin the big circle. rotate the icons in the opposite direction at the same pace, and add a scale pulse animation to the little circles. easy peasy :)

  • @guinetik
    @guinetik 2 года назад

    I was watching this on TV when the RUclips apocalypse happened. Now I'm too invested and want to know how to do this so hey from my mobile

  • @viniciusscarra
    @viniciusscarra 2 года назад +6

    Loved this video! Just as an idea, wouldn't it be also possible to create both the circle and animation using sin & cos functions? I think that'd be easier to maintain and manipulate.

    • @KevinPowell
      @KevinPowell  2 года назад

      A few people have said that would be the better way to do it, yes :D

  • @mrwhatever1970
    @mrwhatever1970 2 года назад

    Thanks for this long and very interesting video, I learned a lot again.
    Question: Why did you write the rule for the hover of the center image as &:not(:first-child):hover and not &:last-child:hover? I tried it, both work identical in this case. But you probably had a reason to use the more complicated way with :not, did you?

  • @Feralferrets
    @Feralferrets 9 месяцев назад

    I think I would each circle as a watch hand, origining from the center of the image (with the actual hand/line invisible) and the circle absolute positioned at the end of each hand.
    Then divide 360 / number of circles, and rotate each watch hand by the corresponding value.
    Something like that should work in theory.

  • @kazeshinu
    @kazeshinu 2 года назад

    Was thinking. If you make the ul 1 pixel the rotating corner would just be rotating at the same point?

  • @grahambo-42
    @grahambo-42 Год назад

    1:03:00 If I remember my webGL and other comp sci stuff for graphics wouldn't you want to apply a rotation for each with incrementing values of angles around the circle, then apply the same translate to move them away from the center?

  • @danhthanh418
    @danhthanh418 2 года назад

    So hard. Thanks sir

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

    makasih suhuu

  • @gykonik
    @gykonik 2 года назад

    At 1:12:45 you actually don't need the helper div that is surrounding the div around the img tag. You can just give the list item the corresponding background color (and adjust some minor other things). All in all, this works much better because you can avoid having multiple animations (with different transforms) on the same object (which leads to problems if the browser doesn't support scale: X and rotate: X but only transform: scale(X), ...).
    With this solution, you can simply "rotate" the ul, img and p (the latter 2 in reverse mode) and "throb" the li-item and get the same result but much cleaner without having to deal with multiple transform/rotates :)
    (And also as some other's also pointed out, you can compute the exact positions using sin and cos)

    • @KevinPowell
      @KevinPowell  2 года назад

      I'd have to dive back in and play with it... I thought I had to have that extra one, because the transform-origin on them, I can't reverse-spin them in place properly, but I could easily have mucked it up as I went and overthought it. I'll take another look at it :)

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

    cant you put transforms together like in computer graphics?
    when doing this (lil circle position) with transformation matrices i would rotate 45 degrees and then move outward, then 90 degrees and out, and so on. To unturn the icons i would just transform back.
    but i dont know if thats a thing in css. it seams VERY burdensome to do it like you did. What if you want to add an icon, or rotate all of them, or something, seams like a hassle.
    Also, can you acess the "n" in nth child? so you can do stull like that programmatically?
    it makes me shiver seeing all the hardcode haha

  • @UBERDHOKER
    @UBERDHOKER 2 года назад

    You could also just have them all have the same translation from the center and let them start part way through the orbit animation. Using a negative animation delay starts the animation right away but still advances it to specified point in the animation. You can also use custom properties to avoid using the rotate and scale properties.
    Untested example:
    transform: translateX(15rem) rotate(--ball-rotation) scale(--ball-scale);
    transform-origin: -15rem;
    animation: orbit var(--speed) var(--orbit-delay) linear reverse infinite,
    throb 1s var(--throb-delay) ease-in-out infinite alternate;
    --orbit-delay: calc(-1 * (var(--speed) / var(--numberOfBalls)) * var(--ballIndex))

    • @KevinPowell
      @KevinPowell  2 года назад

      oh, never thought about a negative delay. I like the idea :D

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

    Do you have a video or somewhere I can find answers for my problem please?
    What I'm trying to do is to save space because I have multiple html labels (5 at most) and I'm trying to stack them in one like "Label1 +4" and when I hover on is I want to show the other labels around it, like in the video, I don't need all the animation but just the transition to make them appear with transition (explosion?).
    While I'm writing this, I think that I might find what I need somewhere in this particular video (?)

  • @Xamimum
    @Xamimum 2 года назад

    I was thinking about the positions of the items - after your struggle with transforms. This might have been an option:
    li {
    position: absolute;
    }
    li:nth-child(1) {
    top: 0;
    left: 0;
    }
    li:nth-child(2) {
    top: 0;
    margin-left: 50%;
    transform: translate(-50%);
    }
    li:nth-child(3) {
    top: 0;
    right: 0;
    }
    And continue doing this with all the other items. While typing this, this might not be a great idea due to the animation (that's probably why you used transform), but it could be possible.

    • @KevinPowell
      @KevinPowell  2 года назад +1

      I came very close to using top and left/right, but still using transforms to move them. I thought I'd have to at one point actually.

  • @primozkutnjak3982
    @primozkutnjak3982 2 года назад

    Hello, i'm wondering if it's possible to make each ''.orbit li:nth-child() '' ( bubbles around main image ) linkable to a website or something else? I've been trying to figure it out, but it usually connects 2 of them together and doesn't let me fix. Hope someone can answer me.

  • @jonmayer
    @jonmayer 2 года назад +3

    a²+b²=c² is your friend for this simple circle. The 45s should be at 10.6rem 10.6rem.
    Proof:
    a² + b² = 15rem²
    a² + b² = 225rem
    (a = b for 45°)
    2a² = 225rem
    (divide both sides by 2)
    a² = 112.5rem
    a = sqrt(112.5)rem
    a ~ 10.6rem

    • @MusicBox.Melodies
      @MusicBox.Melodies 2 года назад

      This was the first thing I though of!

    • @Hacker-at-Large
      @Hacker-at-Large 2 года назад

      As a programmer, watching an obviously talented UI designer struggle with basic concepts in trigonometry was instructive.

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

    this is literally what I want to do for my app.

  • @techGPT97
    @techGPT97 2 года назад

    Big fan

  • @scottlefoll2672
    @scottlefoll2672 2 года назад

    Hey, I'm trying to study this code. It loads fine in different browsers, but there is no orbiting or any other movement. It that because the SASS requires some kind of compile?

  • @andrew1550
    @andrew1550 2 года назад

    I hate css, but that was pretty cool. Definitely good to know about managing state with custom properties, I will definitely use that in the future.

  • @gorkemeldeniz9579
    @gorkemeldeniz9579 2 года назад

    Kevin maybe you can use the inheritance for the pause animation when its hover on
    for example :
    .parent{
    &:hover{
    animation-play-state: paused;
    .child{
    animation-play-state: inherit;
    }
    }

  • @vinsmokesanji7629
    @vinsmokesanji7629 4 месяца назад

    1:04:03 u didnt do anything wrong Kevin. Just the other circles needed to be translated to 10.6rem, 10.6rem. Pythagoras theorem, Euclidean distance. great video🎉

  • @jsart_pl
    @jsart_pl 2 года назад +1

    Weirdly in Chrome rotate() and scale() don't work for me as alone properties. They work only inside "transform" property but when I use transform, they're mixing up other existing things, for example translate(). Everything is fine in Mozilla tho :)

  • @n_mckean
    @n_mckean 2 года назад

    When you were toying with whether to do the central image(s) as a background or not, considering they are purely decorative (as you defined them) would background image not be the better choice as it would remove them from the HTML? (Yes, I understand that very few if any people look at HTML without CSS/JS - but still).

    • @KevinPowell
      @KevinPowell  2 года назад

      In this case, I think either one would be fine.

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

    For the paragraph in the li is there a reason to use opacity:0 and instead of display:none

  • @IceMetalPunk
    @IceMetalPunk 2 года назад

    Trigonometry, Kevin; you're looking for trigonometry 🙂 translate(distance * cos(angle), distance * sin(angle)) . sass:math lets you use trig functions, too

  • @sergejstojanovic2518
    @sergejstojanovic2518 2 года назад

    Do You think that parcel-bundler is still ok or should we use new Parcel for sass processing?

    • @KevinPowell
      @KevinPowell  2 года назад +1

      It depends? lol. I hate that answer, but it's usually true. I wouldn't migrate an old project just for the fun of it, but for a new one I probably go with the current release.

  • @boskoradivojevic180
    @boskoradivojevic180 2 года назад

    Ohhh this theme is crazy! Can you tell me how can i find it?

  • @szasd6152
    @szasd6152 2 года назад

    Hey Kevin! For the angled circiles the translate value is 11.25rem

  • @daspisch
    @daspisch 2 года назад

    First thought was: cmon, there’s nothing difficulties at all. But then I’m noticed css) I could easily do this with swift on ios, but css.. I have no idea how could I do that) Nicely done!