Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

All comments

  • haquanq Ā®ļøā€¢ 1,585

    @haquanq

    Submitted

    What are you most proud of, and what would you do differently next time?

    Hello šŸ‘‹šŸ‘‹šŸ‘‹

    Thanks to fronendmentor team, this challenge gave me an opportunity to practive with accessibility building an email form for screen readers! šŸ˜

    šŸš€ Built with

    • Mobile-first workflow
    • ARIA specifications
    • Semantic HTML
    • Pure CSS
    • Vanilla JavaScript

    šŸ² What i have done

    • Used my own judgement to achieve pixel-perfect without design files.
    • Overridden default focus outline visual (buttons, inputs).
    • Accessible form for screen readers

    What challenges did you encounter, and how did you overcome them?

    None šŸ±

    What specific areas of your project would you like help with?

    Any feedback is appreciated šŸ™

    Francescoā€¢ 270

    @FraCav99

    Posted

    This

    alt="A girl throwing tantrum but looking kinda cute LMAO"

    definitely makes me laugh hard! :D

    Anyway, good job on that! Also really like the accessibility approach with the use of aria attributes

    1
  • @piyumi-1991

    Submitted

    What are you most proud of, and what would you do differently next time?

    I think I was able to design this web page more similar to the challenge which is provided. It's a win compared to the previous challenge. Added some CSS features like flexbox, grid.

    What challenges did you encounter, and how did you overcome them?

    align the div center of the web page was a challenge. Fixed that issue by googling the solution.

    Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Piyumi, congrats on completing this challenge!

    Just some hints to help you write better HTML for future challenges.

    Avoid too much <div>s in your markup.

    By definition from MDN:

    The <div> HTML element is the generic container for flow content. It has no effect on the content or layout until styled in some way using CSS (e.g. styling is directly applied to it, or some kind of layout model like Flexbox is applied to its parent element).

    Basically, has no meaning, cause it's just a generic container. Also using lots of divs inside the markup makes hard to understand what each part of markup is referring to (maybe a navbar, a sidebar?, for example).

    It's useful in cases like, taking from your solutions, to organize related things in a group, like you did in the author's details.

    Instead of using a <button> for the tag Learning, I've rather used a <p>.

    That's beacuse we don't need to do an action with it, but it's just a presentative thing.

    You used lots of <p>, which is not bad per se, but not all the text should be a paragraph. Some text is meant to be intrudoctory, like a title.

    In this example the title of the card with the class .course-title, would have been an <h1> instead of <p>.

    <h1> is a heading, there are six levels of them (<h1> - <h6>) but <h4> to <h6> are barely used.

    Another thing is, naturally some elements occupy all the available width (in CSS are called block level elements, so they naturally stack vertically and save you from adding extra markup for this.

    An example from your solutions for this is:

            <div class="learning-btn-div">
                <button class="learning-btn">Learning</button>
            </div>
    

    button is an inline element, which means it will occupy only the necessary width, based on the size of its content. You can change the behaviour of these elements by simply changing their display property from block to inline (or viceversa or to inline-block as well, which combine the best of both worlds. I suggest you to study which are the differences between all of these three.)

    so an alternative to this would be, for example:

    <p class="learning-tag">Learning</p>
    

    After all of this, an alternative and more semantically version of your solution would be:

        <div class="blog-card">
            <img class="illustration" src="assets/images/illustration-article.svg" alt="illustration">
    
            <p class="learning-tag">Learning</p>
    
                <p class="date">Published <time datetime="2023-12-21">21 Dec 2023</time></p>
    
                <h1 class="course-title">HTML & CSS foundations</h1>
    
                <p class="course-description">These languages are the backbone of every website. defining structure,
                    content,
                    and presentation.
    </p>
    
            <footer class="tutor-details-div">
                <img class="tutor-img" src="assets/images/image-avatar.webp" alt="avatar">
                <p class="tutor-name">Greg Hooper</p>
            </footer>
        </div>
    

    To summarize, writing semantic HTML helps you better write organize and your content on the page (and it's a plus for accessibility as well!)

    As you can see I used other different tags like <footer> or <time>. Those are just a bonus to show that in the HTML there are lots of elements, each with their appropriate usages.

    It may seems scary at first, but don't worry, in practical use cases people don't use all of them, but just a bunch, some have just a very niche case of use. It's just a matter of building an intuition and referring to the MDN docs time to time! :)

    For the CSS part, it's overall good, but avoid using pixels as units for font-sizes. Rather use rem units.

    This beacuse if users take time to change the default font size from browser settings, the changes wouldn't be reflected and the users would have hard time to read the content of your page.

    To summarize all, I know that there are lots of things going on, but don't be scared by it! You did great and also completed another challenge!

    I hope my explanation will be useful to you! :)

    Also I leave you some good articles to read from Josh Comeau blog:

    If you have any question, don't hesitate to ask!

    Happy coding! :)

    0
  • Fareedā€¢ 100

    @hsfarid

    Submitted

    What are you most proud of, and what would you do differently next time?

    I am proud that I was able to complete this project successfully. I learned a lot of things, including how to host web pages using github pages, how to use fireshot to take screenshots of pages, how to better write a markdown, and many others.

    What challenges did you encounter, and how did you overcome them?

    At first it was difficult getting the design right and I was missing some details because I was eager to complete it. But I had to relax and study the design very well, and eventually got it right.

    What specific areas of your project would you like help with?

    At the moment, I don't have any challenges.

    Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Fareed, congrats on completing this challenge!

    Your solution is great, just one thing is to put a value inside the alt attribute.

    Sometimes it's not necessary, if the image you're using is just decorative, like a logo or an icon, but in this case it's good to put one, just a brief one, like alt="qr code link" or something like that.

    Also, don't use px units for font-size, but use rem. This because if the user will change the default font size from browser settings, the size of the font will always be the same, and it's not good for accessibility!

    I'll share a useful blog post from Josh Comeau which explains the differences and how to build an inuition on which unit to use in any scenario.

    It's useful for people with visual impairments which happen to use screen readers. Overall, good job and keep up the good work! :D

    Marked as helpful

    0
  • Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Rafael, good work on this! :)

    Your code looks clean and organized, just one thing, don't use px units for margins, padding and font-size.

    For padding and margins are better ems unit, since the adapt better if the text shrinks or grow.

    For font-size, use rems, since they adapt better if the user takes the time to change font size from browser settings. If you keep using pxs for font size, they won't adapt to the user preferences.

    0
  • P
    yas-avocadā€¢ 380

    @yas-avocad

    Submitted

    What are you most proud of, and what would you do differently next time?

    I'm getting better utilizing Flex and it's making everything much, much faster. Also helps with getting the responsive designs to work correctly.

    What challenges did you encounter, and how did you overcome them?

    I have problems with nesting divs and using flex box. Sometimes I want to do things, but nothing happens. I overcome this challenge by watching what happens in the live server anytime I try something new.

    What specific areas of your project would you like help with?

    Is my code easy to read? How can I make it easier to understand?

    Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Yas, good job on this one.

    I have some hints for you to better improve the code.

    The first important thing is to set a reset in your CSS code. This guarantee a equal starting point for all browser removing any inconsistency.

    Two good resets I've found on the web are these two:

    First Second

    You don't have to use all the rules used in them, but you can tweak one the two resets based on your needs. For example, in this project this is what I used:

    *,
    *::before,
    *::after {
      margin: 0;
      box-sizing: border-box;
    }
    
    body {
      ...other code
      min-height: 100vh;
      min-height: 100dvh;
      ...other code
    }
    
    img {
      display: block;
      max-width: 100%;
    }
    

    Is my code easy to read? How can I make it easier to understand?

    Comes to formatting, you can install a vs code extension called Prettier, which is good for formatting the code in an easy readable way.

    Beside that, I found it a little bit repetitive, since you use a lots of time flexbox where it's not really needed and add only more code.

    Flexbox is a good way to lay out content, but you can embrace the natural behaviour of CSS. For example, all block elements (i.e. p, div, h1, h2, etc..) naturally stack on top of each other, since they take all the space available by default.

    Also what you can do is to flatten you HTML code and this helps you makes things a lot easier in CSS. For example:

    Instead of what you've done:

     <main class="main-container">
        <div class="user-info-container">
          <img class="user-photo" src="assets/images/avatar-jessica.jpeg" alt="profile-picture">
            <div class="info-2">
              <p class="user-name">Jessica Randall</p>
              <p class="user-location">London, United Kingdom</p> 
            </div>
            <p class="user-description">"Front-end developer and avid reader."</p>
          </div>
    
         ...rest of code   
      </main>
    

    I'd done something like:

     <main class="main-container">
     <img class="user-photo" src="assets/images/avatar-jessica.jpeg" alt="profile-picture">
              <p class="user-name">Jessica Randall</p>
              <p class="user-location">London, United Kingdom</p> 
    
         ...rest of code   
      </main>
    

    Doing that you have a flat structure in your HTML and in your CSS you can just put the flexbox on your main! :)

    Another thing I recommend you to do is, avoid using px units for margin, padding and font-size. Rather use units like rem, em or ch (for font-size avoid em, since this unit cause unexpected effects if not using with attention)

    This because if user takes time to change font-size from browser settings, if you use px units, they basically ignore the font set by the user.

    Last things is an accessibility topic. Don't overuse div elements, since it doesn't have any semantic meaning to screen readers. Use them as generic containers when you don't have any better alternatives to group content.

    One thing I'd change is the list of social links. Instead of using buttons, like you did, I'd use an unorder list element of links, since they are effectively links.

    So instead of:

     <div class="social-buttons">
      <button>GitHub</button> 
      <button>Frontend Mentor</button>
      <button>LinkedIn</button>
      <button>Twitter</button>
      <button>Instagram</button>
      </div>
    

    this:

          <ul class="social-links">
            <li><a href="#">Github</a></li>
            <li><a href="#">Frontend Mentor</a></li>
            <li><a href="#">LinkedIn</a></li>
            <li><a href="#">Twitter</a></li>
            <li><a href="#">Instagram</a></li>
          </ul>
    

    This because, as I said, they're links, not actions. But this is just my opinion, maybe someone could disagree with that.

    I hope you find this hints useful.

    Other than that, you did an amazing job! :)

    Consider also diving in CSS Grid, they're very good to organize your layout in an easy way!

    Keep coding! :)

    0
  • Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Adeola, good job on that! :D

    Just few things.

    Don't use px to set font-size. Instead use rem units, they are great since they adapt better to the font-size the user will set in his/her browser settings.

    Then, change your background-color with the one given inside style-guide.md which is hsl(212, 45%, 89%).

    Beside those things, good job! Keep coding! :D

    Marked as helpful

    0
  • Francescoā€¢ 270

    @FraCav99

    Posted

    Hi, Oyetunji!

    To remove the scroll bar on small screen, remove the margin from the top-container element class. You can use grid or flexbox for center elements on the page, in this case:

    body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    }
    

    or with flexbox:

    body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    }
    

    Also, the body background color is this hsl(212, 45%, 89%)

    Hope this can help you! Happy coding! :D

    Marked as helpful

    2
  • @hrithik0

    Submitted

    little stuck between how to use the google fonts and when to use position property of css and etc.

    Francescoā€¢ 270

    @FraCav99

    Posted

    Hi Hrithik, hope you're doing well!

    Some things to point:

    You've probably forgot to select the font weight in google fonts site. Here the correct import: @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;700&display=swap');

    You are using google fonts in your body yet, since you've set font-family on your body element.

    An error is here:

    body {
      ...
      font-weight: 400, 700;  /* <-- only one value is allowed. */
    }
    

    Don't put font-weight property on the body element, otherwise some elements (for example <p>) can have the value of the font weight you've specified.

    Only use it where you need a different weight. In your case you don't even need to use them, since browser by default applies font-weight automatically based on the element

    (by default <p> have a weight of 400 and <h1> a value of 700).

    For positioning, I suggest you to watch this video, is very helpful.

    If you have doubts, don't hesitate to ask! ;)

    Hope this can be helpful.

    Marked as helpful

    0
  • nimbul30ā€¢ 110

    @nimbul30

    Submitted

    I had some issues with getting the background right, had to follow a youtube tutorial to get it dialed in. Any suggestions on improving is welcome.

    Francescoā€¢ 270

    @FraCav99

    Posted

    Hi, nimbul30!

    Instead of:

    background: url(./images/pattern-background-desktop.svg) no-repeat center/cover;
    height: 50vh;
    

    try this:

    background-image: url(...);
    min-height: 100vh;
    background-size: 100% 50%;
    background-repeat: no-repeat;
    

    A useful tip is, if you have to give an height, in most cases it's better to use min-height.

    Here an explanation on why.

    Hope this is useful and happy coding!

    Marked as helpful

    0