Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
47
Comments
2

Bogdan Kim

@semperprimumCanada 🇨🇦780 points

An ambitious Full-Stack Developer based in Canada!

I’m currently learning...

Trying to master HTML, CSS and JavaScript

Latest solutions

  • Full Stack Link-Sharing App

    #tailwind-css#typescript#vite#vue#pinia

    Bogdan Kim•780
    Submitted 12 months ago

    0 comments
  • Hangman Game with React, TypeScript, React Router

    #react#styled-components#typescript#vite

    Bogdan Kim•780
    Submitted about 1 year ago

    How does my folder structure look? Each /view/ folder contains its own /components/ folder, holding components that are specific to that view and won't be reused elsewhere.

    As i mentioned, GameContext.tsx might look a bit cluttered? I can navigate the file without any problems, but that might be because I wrote it :D. Any tips? Or is it okay overall?


    0 comments
  • Blog Preview Card with SCSS

    #accessibility#sass/scss#vite

    Bogdan Kim•780
    Submitted about 1 year ago

    All feedback is appreciated!


    0 comments
  • Dictionary Web App with React, Redux, Styled-Components

    #axios#react#redux#styled-components#vite

    Bogdan Kim•780
    Submitted over 1 year ago

    0 comments
  • Todo App with React, Redux, Typescript and Styled Components

    #react#redux#typescript#vite#styled-components

    Bogdan Kim•780
    Submitted over 1 year ago

    0 comments
  • Password Generator App using React, TS and SCSS

    #react#sass/scss#typescript#vite#accessibility

    Bogdan Kim•780
    Submitted over 1 year ago

    1 comment
View more solutions

Latest comments

  • Olena Shevchenko•200
    @olenahelena
    Submitted almost 2 years ago

    FAQ accordion card solution

    1
    Bogdan Kim•780
    @semperprimum
    Posted almost 2 years ago

    Heya there 🙌

    Some of the issues i noticed:

    JS:

    • Your JS code is too lengthy, it doesn't need to be 53 lines long :) In my opinion, a simple loop over all of the questions with a click listener is enough. You can check out my code to see what i mean. If you want to achieve the same behavior where it automatically closes all of the other questions, again, a second loop that just closes all of them is enough
    • I see the problem you described, some of the sections don't collapse when you click on them too fast. My guess is that the issue is in setTimeout() functions. Why have you added them in first place? Also, if you open and then close one section, you won't be able to open the same section again without toggling one of the other sections.

    CSS:

    • body's min-height is already at 100vh, so why don't we use 2 lines of grid to center the .container, instead of positioning it absolutely and using translate properties?
    body {
    display: grid;
    place-items: center;
    }
    
    • You use pixels for everything in your CSS. Using relative units like rem in CSS is recommended over absolute units like pixels because rem allows for scalability and responsiveness, ensuring consistent and accessible designs across different devices and font size preferences. There are lots of articles and videos on the web that explain it in depth. Check them out :)
    • Your design switches to mobile at 1000px. Consider adding more breakpoints for a more fluid design. And use a max-width property so the card shrinks before going into a mobile version. For the mobile design, just set a margin for the component so it doesn't touch the borders of the screen and let it stretch. You can manage to get it done without using width properties.
    • Placing all media queries at the end of the document can make your code more organized and easier to read ;)

    HTML:

    • Questions and answers make more sense as a list (<ul>, <ol>), instead of multiple sections. You may also wrap answers with a <p> tag, instead of using a <div>.
    • All of the images in this challenge are decorative, they don't need an alt text. You should leave it empty. Go from this: <img src="..." alt="women and phone" class="desktop__image"> to this: <img src="..." alt="" class="desktop__image">

    Hope that you find this helpful! Happy coding!

    Marked as helpful
  • Belly•300
    @Belly606
    Submitted almost 2 years ago

    Profile Card Component

    1
    Bogdan Kim•780
    @semperprimum
    Posted almost 2 years ago

    Heya there 🙌

    • Every image in this challenge except the profile picture is decorative, so you don't need to put alt text on it. Alt text on the profile picture should be more descriptive, something like alt="Profile picture of Victor Crest".
    • Regarding the background situation, you should use background properties instead of having two random images hanging in your HTML. Here's how i did it:
    body {
    background-color: hsl(185, 75%, 39%);
    background-image: url("./images/bg-pattern-top.svg"), url("./images/bg-pattern-bottom.svg");
    background-position: right 42vw bottom 41vh, left 31vw top 47vh;
    background-repeat: no-repeat, no-repeat;
    }
    
    • In this example i used a background-color property to set an overall color for the background.

    • background-image adds two images for the background.

    • background-position positions both images. I used viewport units to move it. Using viewport units in this way allows the background image to adjust based on the size of the viewport. So, if the browser window is resized or viewed on different devices with varying screen sizes, the background image will still maintain a similar position relative to the element.

    • background-repeat: no-repeat means that the background image will only appear once and will not repeat horizontally or vertically.

    • The attribution part should be surrounded by a <footer> element. You also can use position: fixed on it and stick it to the bottom of the document.

    • To center the .card, you could've used grid or flex instead of positioning it absolutely, here's an example of using display: grid;:

    body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    }
    
    • Instead of positioning a profile picture absolutely and throwing an 80px margin on .txt you could've used flexbox and negative margins. Here's the video that shows how it could be done.
    • I recommend using pixel units sparingly in your projects and instead use em and rem. There're a lot of articles and videos on the web explaining why you shouldn't use pixels. Definitely check them out.

    Here's my submission for this challenge. All of the things I talked about here could be found in my code.

    I hope you find this helpful 😁. Happy coding!

    Marked as helpful
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub