Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
9
Comments
15
Fayaz
@fayax555

All comments

  • pedro yure nogueira da silva•70
    @nogyuuu
    Submitted over 3 years ago

    static job listings using react and css - any tips welcome

    #bem#fetch#react
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Take a look at CSS modules. It creates local CSS instead of global. With this approach, conventions like BEM become unnecessary.

    To use it with React, change the file name to someComponent.module.css. and import it in your files like `import styles from './someComponent.module.css'.

    And use it in your classname. <section className={styles.filterbox}>.

    If you have any more questions reply to this comment.

    Marked as helpful
  • Raymart Pamplona•16,040
    @pikapikamart
    Submitted over 3 years ago

    Coffeeroaster Multi Page | Next.js , Mobile first

    #motion#next#styled-components#typescript
    7
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    You could prefix with an S instead of Styled. So StyledNavbar will become SNavbar.

  • Ryan-D-P•160
    @Ryan-D-P
    Submitted over 3 years ago

    Job listings landing page with tag filtering using React.

    #react
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Filter logic is not correct. When you click frontend tag, you should see all jobs that have frontend tag.

    if (filterList.some(tag => filters.includes(tag))) return null; I think if you change some to every, it will work correctly.

    Marked as helpful
  • Karishma Garg•1,010
    @karishma-dev
    Submitted over 3 years ago

    IP Address Tracker

    #accessibility
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    According to challenge requirements, users should be able to search for any domain.

    You can do this by changing ipAddress to domain in fetch(`https://geo.ipify.org/api/v2/country,city?apiKey=at_qoJBZrBxMVeTgrJkk7P3vZIbtmb0U&ipAddress=${address}`).

    Other than that, this looks great to me.

    Marked as helpful
  • Nurcholis•420
    @cholis04
    Submitted over 3 years ago

    Interactive pricing with Input Range and Checkbox as Toggle Button

    #accessibility#firebase#typescript
    4
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Really nice solution.

    One thing I would add is, when you switch to 'Yearly Billing', it should not change from '/monthly', to '/yearly'. It should stay '/monthly'.

    Marked as helpful
  • Vahe Abovyan•1,110
    @VaheAA
    Submitted over 3 years ago

    E-commerce product page with Vue 3 & SCSS

    #sass/scss#vue
    2
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Great Job on the project. There are things you can do to improve your solution even further.

    The clickable area for - and + buttons are tiny. It can be hard for some people to click those icons.

    On smaller screen heights, I'm not able to view lightbox modal's top part (close icon).

    When I open the mobile nav menu and expand the viewport width, the close icon disappears, but the menu still stay open.

    Marked as helpful
  • Maria•200
    @mariapenaa
    Submitted over 3 years ago

    Responsive IP and domain tracker

    #react#sass/scss
    3
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    I only did the &domain=${ip}, and didn't use &ipAddress=. It seems domain accepts ip address as well, not just domains.

  • Sertac•30
    @DevDoc7
    Submitted over 3 years ago

    QR Code Component Solution by DevDoc7

    #foundation#progressive-enhancement
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    To center the card both horizontally and vertically, remove margin: 0 auto; width: 1440px; and then put display: grid; height: 100vh; place-content: center; to your body. If you give your body width:1440px;, it can give you a horizontal scrollbar when the screen is below 1440px. Use max-width when you have to give a width to containers. But in this project, you don't have to give any widths to your body, simply do the things I've said at the beginning.

    Marked as helpful
  • Luka•820
    @LukaKobaidze
    Submitted over 3 years ago

    IP Address Tracker | React, TypeScript, SCSS, ipify API, React Leaflet

    #react#sass/scss#typescript#fetch
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    https://geo.ipify.org/api/v2/country,city?apiKey=at_RTk0rwxaK8JXPgBj87O7nTL7ug6ZA&domain=8.8.8.8

    I can see your apikey

  • Benja.min•740
    @BenjaDotMin
    Submitted over 3 years ago

    Next JS, SSR

    #next
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    It's better to use getStaticProps when the api data doesn't change often since it is much faster than getServerSideProps. But I guess it doesn't matter much here, since you cleverly hide the loading state with a nice animation.

    Marked as helpful
  • ANKUR BARNWAL•10
    @barnwalankur0
    Submitted over 3 years ago

    QR code with HTML and CSS

    2
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Give height: 100vh; display: grid; align-items: center to your body. To make the image fit the container, give your image max-width: 100%, then give some padding (for all sides) to your div.

  • Charmaine Lee•530
    @charmainelhm
    Submitted over 3 years ago

    Collapsible FAQ Card using HTML, CSS and JS

    #bem#foundation
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    One way is to move the box out of the card. check these links. I've edited some of your code.

    live
    repo

  • Syed Ali Mansoor•460
    @syedalimansoor
    Submitted over 3 years ago

    React + Sass | Ecommerce Product Page

    #react#sass/scss#bem
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Good job on the project. One thing I noticed was the cart is buggy because you used unstable value prev.length for your id which was used as the key prop. Instead generate random ids using a library like nanoid

  • Web Wizard•5,690
    @rsrclab
    Submitted over 3 years ago

    Space Tourism Multi-page Solution

    #bem#jquery#sass/scss
    3
    Fayaz•380
    @fayax555
    Posted over 3 years ago

    Giving outline: none to focus states reduces accessibility for keyboard navigators. If you must remove the outlines, provide an alternative way for keyboard navigation.

  • Luka•820
    @LukaKobaidze
    Submitted over 3 years ago

    REST Countries with Pagination using ReactJS, TypeScript, SCSS

    #react#sass/scss#typescript#react-router
    1
    Fayaz•380
    @fayax555
    Posted over 3 years ago
    const Controls = (props: Props) => {
      const { searchValueHandler, searchedValue, searchedResult } = props;
    
      return (
        <div id="controls" className={classes.controls}>
          <Search
            searchValueHandler={searchValueHandler}
            searchedValue={searchedValue}
            searchedResult={searchedResult}
          />
          <Filter />
        </div>
      );
    };
    
    const Controls = (props: Props) => (
      <div id='controls' className={classes.controls}>
        <Search {...props} />
        <Filter />
      </div>
    )
    

    Do you know these two are equivalent?

    Also, you can make use of absolute imports with typescript. I add "baseUrl": "." to my compilerOptions, and then I would import with import { countriesDataType } from 'data/country-data-types' instead of import { countriesDataType } from '../../../data/country-data-types'

    Btw, great job on the project. It seems you've put a lot of effort on this one.

    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

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