Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
18
Comments
375

Ahmed Bayoumi

@Bayoumi-devCairo6,680 points

Creative Solutions Front-End Web developer, I am creating attractive and responsive website designs for a more interesting and flexible user experience.

Latest solutions

  • Single-page dev portfolio using HTML5, CSS3, Bootstrap5, JS, Webpack5

    #accessibility#animation#bootstrap#webpack

    Ahmed Bayoumi•6,680
    Submitted over 2 years ago

    1 comment
  • Dine restaurant website using React js with Typescript and Tailwindcss

    #accessibility#react#react-router#typescript#tailwind-css

    Ahmed Bayoumi•6,680
    Submitted over 2 years ago

    1 comment
  • Product preview card component using Tailwind CSS

    #tailwind-css

    Ahmed Bayoumi•6,680
    Submitted about 3 years ago

    0 comments
  • Ping single column coming soon page using Tailwind CSS

    #tailwind-css

    Ahmed Bayoumi•6,680
    Submitted about 3 years ago

    0 comments
  • Suite landing page with HTML, SASS, JS, And Webpack


    Ahmed Bayoumi•6,680
    Submitted about 3 years ago

    2 comments
  • Skilled e-learning landing page using HTML & CSS


    Ahmed Bayoumi•6,680
    Submitted about 3 years ago

    1 comment
View more solutions

Latest comments

  • Tadem Rechal Shiny•10
    @shine2024
    Submitted over 2 years ago

    Responsive landing page using flex box qr-code-component

    1
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted over 2 years ago

    Hey Tadem, Congratulations on completing this challenge... You have accessibility issues that need to fix.

    • Document should have one main landmark, Contain the component with <main>.
    <main>
       <div class="container">
          //...
       </div>
    </main>
    
    • Page should contain a level-one heading, Change h2 to h1 You should always have one h1 per page of the document... in this challenge, you will use h1 just to avoid the accessibility issue that appears in the challenge report... but don't use h1 on small components <h1> should represent the main heading for the whole page, and for the best practice use only one <h1> per page.

    • All page content should be contained by landmarks, Contain the attribution with <footer>.

    <footer>
       <div class="attribution">
          //...
       </div>
    </footer>
    
    • I suggest you use REM for font size, It is a must for accessibility because px in some browsers doesn't resize when the browser settings are changed... See this article ---> CSS REM – What is REM in CSS?

    • Also, I suggest you look into an approach called "BEM" Block Element Modifier

    • How to Use Google Fonts in HTML and CSS

    Hope this help!... Keep coding👍

  • sujeong•40
    @sujeong054
    Submitted over 2 years ago

    NFT preview card component

    1
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted over 2 years ago

    Hey Sujeong, It looks good!... Here are some suggestions:

    • Document should have one main landmark, Contain the component with <main>.
    <main>
       <div class="card">
          //...
       </div>
    </main>
    
    • Use <a> to wrap Equilibrium #3429 and Jules Wyvern, then add cursor: pointer; to the <a>, The cursor indicates to users there is an action that will be executed when clicking on it.

    Equilibrium #3429 ---> Navigate the user to another page to see the NFT

    Jules Wyvern ---> Navigate the user to another page to see the creator's portfolio

    • To do the active state for the image on the NFT preview card I suggest you wrap the image of the NFT with the img-wrapper element and create another element to make it overlay on the image, it contains the view icon.
    <div class="img-wrapper">
          <img class="card-img" src="images/image-equilibrium.jpg" alt="Image Equilibrium">
          <div class="overlay"><img src="images/icon-view.svg" alt=""></div>
    </div>
    

    Then add the following styles:

    .img-wrapper {
      width: ...;  /* it's up to you */
      height: ...;  /* it's up to you */
      position: relative; /*To flow the child element on it*/
      cursor: pointer;
      overflow: hidden;
    }
    .img-wrapper .card-img{
      width: 100%;
      height: 100%;
    }
    .overlay {
      background-color: hsla(178, 100%, 50%, 0.5);
      display: flex;       /* Center the view icon with flexbox*/
      align-items: center;
      justify-content: center;
      position: absolute;
      top: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
    }
    .img-wrapper:hover .overlay {
      opacity: 1;
    }
    

    There is another way to do the active state for the image on the NFT preview card by creating pseudo-elements (::after, ::before) to use one as an overlay and other for view-icon.

    Resources

    • How to Center Anything with CSS - Align a Div, Text, and More
    • 11 Ways to Center Div or Text in Div in CSS
    • Pseudo-elements
    • ::after (:after)
    • ::before (:before)

    Hope this is helpful to you... Keep coding👍

    Marked as helpful
  • Jake Clis•70
    @clispy1
    Submitted about 3 years ago

    Advice Generator App using Sass

    #sass/scss
    1
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted about 3 years ago

    Hey! It looks good!... You have accessibility issues that need to fix.

    • Document should have one main landmark, Contain the component with <main>.
    <main>
       <div class="container">
          //...
       </div>
    </main>
    
    • Page should contain a level-one heading, Change h2 to h1 You should always have one h1 per page of the document... in this challenge, you will use h1 just to avoid the accessibility issue that appears in the challenge report... but don't use h1 on small components <h1> should represent the main heading for the whole page, and for the best practice use only one <h1> per page.

    • All page content should be contained by landmarks, Contain the attribution with <footer>.

    <footer>
       <div class="attribution">
          //...
       </div>
    </footer>
    
    • Buttons must have the discernible text, So don't leave the alt attribute empty when using the image <img> inside the button <button> without text.
      <button class="change">
           <img src="./images/icon-dice.svg" alt="Advice Generator">
      </button>
      
      Or set the attribute aria-label to describe the button.

    Hope this help!... Keep coding👍

  • Shehab Sha'lan•30
    @shehabshalan
    Submitted about 3 years ago

    3-column-preview-card-using-grid

    2
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted about 3 years ago

    Hey Shehab, It looks good!... You have accessibility issues that need to fix.

    • Documents must have <title> element to aid in navigation
    <head>
       //...
       <title>3-column preview card component | Frontend Mentor</title>
    </head>
    
    • Using more than one <h1> is allowed by the HTML specification, but is not considered a best practice. Using only one <h1> is beneficial for screenreader users.

    ---> Multiple <h1> elements on one page

    I hope this is helpful to you... Keep coding👍

  • P
    John•20
    @HeavyMetalCoffee
    Submitted about 3 years ago

    QR-Code Challenge

    3
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted about 3 years ago

    Hey John, It looks good!... Here are some suggestions:

    • Document should have one main landmark, Contain the component with <main>.
    <main class="container">
       <div class="qr_code_card">
          //...
       </div>
    </main>
    
    • Page should contain a level-one heading, Change <p class="p1"> to <h1 class="heading"> You should always have one h1 per page of the document... in this challenge, you will use h1 just to avoid the accessibility issue that appears in the challenge report... but don't use h1 on small components <h1> should represent the main heading for the whole page, and for the best practice use only one <h1> per page.

    • You have used grid to center the component on the page, but you need to set the height of the container ---> min-height: 100vh; to center it at this height:

    .container {
       display: grid;
        justify-content: center;
        align-items: center;
        /* width: 1440px;        /* <---- Remove  */
        /* height: 800px;         /* <---- Remove  */
        min-height: 100vh;     /* <--- Add */
     }
    
    • Use REM for font size, It is a must for accessibility because px in some browsers doesn't resize when the browser settings are changed... See this article ---> CSS REM – What is REM in CSS?

    Hope this help!... Keep coding👍

    Marked as helpful
  • Brian Schooler•440
    @superschooler
    Submitted about 3 years ago

    3-Column Preview Card Component

    #bootstrap
    2
    Ahmed Bayoumi•6,680
    @Bayoumi-dev
    Posted about 3 years ago

    Hey Brian, It looks great!... Here are some suggestions:

    • Instead round each corner and create media queries to change it based on the screen size, Give the parent these classes rounded, overflow-hidden
    <main class="container rounded overflow-hidden" id="container">
       //...
    </main>
    
    • Using more than one <h1> is allowed by the HTML specification, but is not considered a best practice. Using only one <h1> is beneficial for screenreader users.

    ---> Multiple <h1> elements on one page

    Hope this help!... Keep coding👍

    Marked as helpful
View more comments
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

Mentor of the Week - 2nd Place

This badge is awarded to the 2nd placed community member on the weekly Wall of Fame.

Fun fact

Keypunches were used in early computing to punch precise holes in stiff paper card. The punched cards were then used for data input, output, and storage. No code linters or auto-complete suggestions to help out back then! 😅

Mentor of the Week - 1st Place

This badge is awarded to the top placed community member on the weekly Wall of Fame.

Mentor of the Month - 2nd Place

This badge is awarded to the 2nd placed community member on the monthly Wall of Fame.

Fun fact

The computer in this badge is loosely based on the Commodore PET which was one of the earliest home computers launched in 1977. It came with 4 KB of RAM...that's not a typo!

Mentor of the Week - 3rd Place

This badge is awarded to the 3rd placed community member on the weekly Wall of Fame.

Fun fact

The Hansen Writing Ball shown in the badge was the first commercially produced typewriter. It was put into production in 1870 with its unique ergonomic design. It was overtaken in the market in 1873 by the Sholes and Glidden typewriter which was the first keyboard to utilise the QWERTY layout we now use today.

Mentor of the Month - 1st Place

This badge is awarded to the top placed community member on the monthly Wall of Fame.

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

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