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

  • P
    Luciano Lima 1,290

    @LucianoDLima

    Submitted

    Custom dictionary website. All feedback and criticism are welcome!

    Hi all! Been a while since I last submitted a challenge, and I learned a lot the past few months! I decided to modify the challenge, so you will notice my design is slightly different. And I used styled-components because I had never used it before, so I wanted to have the experience!

    For starters, I decided to remove the single play-audio button and added a smaller one with the phonetic writing and accent/origin between it. It also renders multiple buttons if there is more than one pronunciation provided. I also tried to add a small animation to the antonym/synonym buttons.

    Another change I made, I added a new button right next to the search box, since we're dealing with fetching data, I decided to make so it will not fetch data as you type, as that can be troublesome. There's a way around it by memoizing but I still thought it was better this way, since it's how the other big dictionaries online did it.

    One difficulty I've had was the typescript in the useDictionary context. I had to leave the useDictionaryContext() with any as I couldn't figure out what I did wrong.

    Custom Dictionary app made with React.js

    #accessibility#react#styled-components#typescript

    1

    P

    @brunomoleta

    Posted

    Hello Luciano,

    I cloned your repo to do a Code Review.

    This is the first PR, I plan to do at least one more, because this was more of a first contact with the project.

    The main thing that's hard to understand is how someone who hasn't done the project is how things are going in Search.tsx.

    It has several functions and as much as they are commented out, it's a bit confusing.

    The first thing I did was to fix the initial state of validation using:

    const [validation, setValidation] = useState<ValidationType>({
        isEmpty: true,
        isValid: false,
        isLoading: false,
        currentWord: “”,
      }); 
    

    You were using undefined if I'm not mistaken. But it's either Empty or not, Valid or not. So the state starts Empty and not Valid [...].

    At the moment the App is broken, but I'll send you the PR anyway so you can follow my line of reasoning.

    In the worst case, if another PR isn't sent and you don't want to merge, which is perfectly acceptable,

    I suggest reviewing the way this state was initialized and simplify the Search.tsx component.

    You would then have to adjust several things.

    Best regards from Brazil, Bruno

    Marked as helpful

    1
  • P

    @Dantalian5

    Submitted

    This is my first React-Typescript project, and it was quite an interesting journey filled with lots of new learning opportunities. It took some time to get everything in place.

    Weak Points:

    • The use of react-router in this specific case was a bit confusing when navigating through the page, which made me doubt whether it was the right solution or not.
    • Using TypeScript made many things easier and eliminated a lot of potential errors along the way, but I realize that the indiscriminate use of 'any' wasn't the best choice in some cases, and in others, the type declarations could perhaps be improved.
    • After analyzing more advanced projects from others, I could see that maybe a more appropriate organization of the project structure and components in general could have been applied.

    Despite everything, it was a lot of fun, as always. I look forward to your advice and feedback, and thank you in advance ;) .

    Devjobs web app solution | by MV

    #react#react-router#sass/scss#vite#typescript

    1

    P

    @brunomoleta

    Posted

    Buona sera Marcos,

    I've reviewed this project of yours also with a PR and everything. First, do not feel obliged to accept the pull request. Unfortunately, I ended up breaking the filter feature :(.

    I wanted to clean up the action prop that was hard to understand.

    And I know it's unnecessary to have that, though I couldn't go around it. But please check out the Git commits, as I made an effort to make each as specific as possible.

    The main thing I did was to organize the states using Zustand state manager. Also, your Button component had a reserved word "type" at your prop. I changed the name to isLink with the boolean type since it is a link or not.

    Please also check the initial color setter function. I believe it got cleaner.

    The feat you did at filtering the form as the user types is swell. Congratulations on developing it.

    Best regards from Brasile, Bruno

    0
  • Ruben 250

    @rugarcia25

    Submitted

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

    I have learned a lot about how to manage flexbox and grid, I think that despite being a junior, it has been very entertaining to get the vast majority to follow the same flow and design, although obviously, it is not perfect.

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

    Without a doubt, managing the inside of credit cards and being able to adjust them in position while maintaining their aspect ratio in the vast majority of resolutions.

    In the end I managed to "solve" it by trying and making a lot of mistakes.

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

    Especially in the CSS part since, in the end, it has been very difficult for me to move the cards to a position without breaking the form part in different resolutions.

    P

    @brunomoleta

    Posted

    Hola Ruben,

    I suggest some adjustments to your code. I've cloned it from Front End Mentor and made a PR at Github.

    It involves retrieving the values from the form at the Card when the user refreshes the page and the overall architecture of the Javascript part of the project.

    I also removed the placeholder from the inputs, as it's not a good design practice.

    I know it was in the proposed design, but placeholders fool the user, as described by the UX designer Adam Silver.

    Please check the commit history, as it might be easier for you to follow how I thought your project through.

    Also, I removed the "required" you put on the inputs. The idea is to use a library such as Joi, Zod, or Yup to give the user a helpful message when they don't fill up the form as we expected.

    (The red line below the form when trying to submit the wrong data).

    The warning from HTML is far from ideal. I didn't do it here cause, to be honest, I don't know how to do it in VanillaJs, I've done it only at React.js.

    The way you named your variables is very organized, so kudos on that. It's no small thing, for real.

    Keep up the hustle, amigo :)

    Saludos de Brasil

    Marked as helpful

    0
  • P

    @brunomoleta

    Posted

    Hallo Aydan,

    I cloned your project locally to see it closely and give you a more precise feedback.

    It took a while to understand the project's code, as the files are long and accomplish multiple things.

    For example, the details.js file has the HTML component and the function that fetches a country's info. Try to make each separate so it's easier for people to read your code and contribute.

    The same goes for creating a file for the dark mode handler, separating the function from the header component.

    Also, it would be more performant to make several API requests so that we don't end up with a large object containing all the countries. And perhaps the landing page could fetch a few random ones instead of every country.

    And when filtering the continent, there would be a new fetch request to the back end, not a filter at the large object.

    About the CSS, I noticed you used object-fit: cover at the flags. Perhaps that's not the best alternative because there is no "cropped flag".

    So you may be better off using object-fit: contain with a background behind the flag to distinguish the background of the app from the one of the cards.

    Also, the div you used to handle the dark mode should be a button. In this case, the Tab key would be available.

          <div id="color-switcher">
            <i class="bx bx-moon" id="icon"></i>
            <span id="mode" @click=${onModeChange}>Dark Mode</span>
          </div>
    

    I also advise you to test different font sizes on the browser, as components got very large on my screen. In my local environment, I use a default font size of 24px. I imagine you tested locally with a smaller font, and things looked ok, but the components here got disorganized, and the layout misplaced.

    If you are interested in learning about suiting different font sizes better, please check this post from [Josh Comeau] (https://www.joshwcomeau.com/css/surprising-truth-about-pixels-and-accessibility/) :)

    You did a terrific job using 'id' frequently in the tags. It makes life easier for people who test it. So I suggest you keep doing so :)

    Keep up the great effort Aydan.

    I'm sure that you are a better programmer since the time you did this project, but I got interested in reviewing it for it is a nice challenge.

    Best regards from Brazil, Bruno

    Marked as helpful

    1
  • P

    @brunomoleta

    Posted

    Hey there Marcos,

    I cloned your project locally to examine it closely. I also made a Pull Request on GitHub. Check it out. :)

    The elements you set as <h1> don't describe the page for the user. They should, according to front end reference:

    Carry the most importance in 
    terms of visual appearance and search engine optimization.
    

    It can be a phrase hidden visually.

    Also, I rearranged the architecture of the app and made a function on Javascript so that the email gets rendered to the user on the following page.

    The email data is set at the sessionStorage, and retrieved with window.onLoad which works as a React.useEffect() on mount.

    Also, I switched the layout container from flex to grid.

    I wanted to align the top and the end of the info with the image. I don't know if that was a design requirement or not. However, I believe it would improve the UI.

    It was more difficult than expected, but with aspect-ratio I came up with a reasonable solution. It's a not well-known css property.

    Further than that, I advise you to be cautious using rems at padding and margin as containers get extra large when people use a large font-size by default, as is my case.

    If the font is twice the size, there's no reason for the padding to also get twice as big, right?

    I also added a format script to format the whole project using Prettier. And removed public as it's a local build, right? Then I put it public/ at .gitignore.

    I tested it on accessibilitytest and the app had a very high grade. Congrats on that.

    Keep up the great effort, Marcos. Best regards from Brazil :)

    Marked as helpful

    0
  • P

    @JorgeAMendoza

    Submitted

    Hello! This is my solution for the multi-step-form challenge. When breaking down the project, there was two goals I wanted to achieve:

    1. Data should persist between pages, meaning user's can switch back and forth between pages and see the data they had previously inputted.
    2. Every form should be easily validated.

    This led me to use Redux as the global store to hold the state of the entire form, while react-hook-form handled the state of each form section and provided validation. The application is thoroughly tested using Cypress and a continuous integration/deployment pipeline is created using GitHub Actions.

    One thing I would like to add in the future is a simple transition between each form section.

    For a full breakdown of the application development, please see the README.md in the project repository page.

    Multi-Step Form Built with React, React-hook-form, and Redux

    #cypress#react#redux#typescript#styled-components

    1

    P

    @brunomoleta

    Posted

    Hi Jorge,

    I got interested in your project when I read your very detailed README. That's why I forked it and sent you a PR with some things I believe you can improve

    Please check the PR I sent you on Git hub:

    • Refactored Form Buttons, a 'buttons' component is created and stays in the UI throughout the state change. Only the functions fired when clicked shift;
    • Changes data-testid to id. There's no need to create a property here. We can stick with the common ones;
    • Created an h1 tag. Every page has to have one;
    • Added a hidden button at the end of each form so we can advance the step by pressing Enter on the keyboard;
    • Added a script to format the project using Prettier;
    • I would advise you to refactor the components further as in a unit testing situation, it would be hard to test them;

    Best regards from Curitiba/PR - Brazil :)

    0
  • P

    @Giuva-Sergi

    Submitted

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

    I'm happy to share my latest challenge in which I worked for the last couple of days. I decided to use React and to encapsulate the entire logic related to the multi step subscription inside a custom hook with a reducer. I think it was a neat solution where I could handle everything inside one file without having to pass the props multiple times. I would like to have your opinions and also I would like to know where I can improve.

    Giovanni

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

    I deployed the site using netlify but I noticed that I can't access the various routes by coping and pasting into a new tab. Do you know why this happens? Is this related to netlify or did I do something wrong with React Router?

    P

    @brunomoleta

    Posted

    Ciao Giovanni,

    starting from why you can't access the routes if you insert https://coffeeroaster-giuva88.netlify.app/create-plan directly in the browser.

    From an A.I:

     React app is deployed to production. 
    It's typically a problem with the server configuration. 
    In a development environment, 
    the development server is aware 
    of your React routes and knows how to handle them. 
    
    However, in a production environment, this isn't always the case.
    
    The issue occurs because when 
    you access 
    https://coffeeroaster-giuva88.netlify.app/create-plan directly 
    in the browser or refresh the page, 
    the server is trying to find a physical 
    file or route at that location, which 
    doesn't exist – because the `/create-plan` route
     is defined in your React application. 
    In other words, the server is trying to find a file at the location *create-plan* 
    and when it doesn't find one, it returns a 404 not found error.
    
    What the server should do instead is to serve
     the main index.html file, 
    which loads your React application, and then let React handle the routing.
    
    The issue is fixed by configuring the 
    server to handle 404s by falling back to the index.html.
    

    At the root of your project, you should set a netlify.json with the following:

    {
      "routes": [{ "handle": "filesystem" }, { "src": "/.*", "dest": "/index.html" }]
    }
    

    I can't guarantee 100% that it resolves, but it did for me.

    Regarding accessibility, the headings should always increase one by one. You did h1, h2, and h4 at the coffee names (e.g. Gran Espresso). It should have been h3.

    You can install Wave Evaluation Tool in your browser to help you with that, it helps a lot.

    Regarding the architecture as a whole:

    There are only three components in the src/components, so most are inside the pages.

    A page component, the About.jsx you did:

      return (
        <main className={styles.main}>
          <HeroAbout />
          <Commitment />
          <Quality />
          <Headquarters />
        </main>
      );
    

    The components inside it (HeroAbout, Commitment, [...]) should all be inside the components folder.

    And also, the main could be a component itself as you repeated the same code several times.

    Further than that, you used the max-width directly on the top div, which is far from ideal as the footer does not stretch to the edges, I've forked your project and pulled a merge request. Please check it.

    There's also a format script now that formats the whole project with prettier.

    And I add the react-wrap-balancer API to better format typography. Play with it to see how it works.

    Last but not least:

    Inside the accordion, the input radio tag has display: none. This line makes it as if they weren't there at all, so it's not possible for users to user the keyboard at it. Try it and see it yourself. The result will be better using a visually hidden component wrapping the input around so the tag remains on the DOM.

    Keep up the great hustle, Giovanni

    Best regards from Brazil, :)

    Marked as helpful

    1
  • P

    @brunomoleta

    Posted

    Hi PiriyaLapa,

    I've forked your project to see it closely and sent you a PR on Git Hub with the full review.

    The main changes suggested are:

    • The HTML structure: you use only <section> tags. I substituted them with header, main, and footer.

    Because your Styled-components were named Footer, for example, but they were sections. And that brings little semantic meaning.

    • Images: All <img> tags must have an alt. So I put them in. Even the background image ought to have an empty alt.

    • Pages must always have an <h1>

    Also, I changed the following snippet to the Card component, and nothing but the Logo inside the Header:

           
              <h1>{title}</h1>
              <p>{content}</p>
           
           {shouldRenderVector && <VectorTablet />}
    

    I also advise you to use with caution the % unit at padding and margin for it may lead to weird layouts depending on the screen size. I also change some of that.

    Beyond that, it's not a good practice to use z-index as often as you did. I removed most of it and the result remains.

    There are other tweaks related to the styles. Test them out and compare them to how they were before.

    Last but not least, the format script is added for formatting the project using Prettier.

    Keep the hustle fellow developer

    Best regards from Brazil :)

    0
  • P

    @GonzaloIbarrola

    Submitted

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

    Estoy orgulloso de haber retenido lo que aprendí hace un año y me doy cuenta de que sé más de lo que creía. La próxima vez empezaría por separar las funciones en un archivo aparte para tener los archivos más ordenados.

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

    Me encontré con que acababa usando varios hooks entre componentes y me perdía a veces, tardé un rato en ordenarlo todo para que funcionara. Lo solucioné teniendo paciencia, dejando el proyecto para el día siguiente con la cabeza fría.

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

    Necesitaría ayuda con el manejo de hooks, y a crear u ordenar los componentes de manera más óptima.

    React + Tailwindcss

    #react#tailwind-css#vite

    2

    P

    @brunomoleta

    Posted

    Hola Gonzalo, ?que tal?

    Primer cuanto a la estructura html:

    en SearchInput.jsx usaste una tag <section> pero esto es un formulário dónde se queda mejor la tag <form onSubmit={() => function()}>. Y solo con form es posíble envíar los dados usando la tecla "Enter" en el teclado.

    Y el <input> tien que tener un <label> mismo que él se quéde oculto. De W3:

    Always use the <label> tag to define labels for <input type="text">, 
    <input type="checkbox">, <input type="radio">, 
    <input type="file">, and <input type="password">.
    

    Además la pagina siempre necesita un element <h1> mismo que oculto. En este caso podría ser Github user search, encuentra colegas desarrolladores, por ejemplo.

    He hecho un 'pull request' en tu main de Github mostrando como gestionar los estados mejor. Así, todos los estados se quedán en un mismo lugar.

    También creé un componente independiente que contiene los 'links' del usuario.

    Si crees que ese comentario te ayudó, por favor marcalo cómo "helpful".

    Desculpe si el español que escribí tiene errores :)

    Saludos de Curitiba/PR - Brasil

    Marked as helpful

    1
  • P

    @GonzaloIbarrola

    Submitted

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

    Estoy orgulloso de haber retenido lo que aprendí hace un año y me doy cuenta de que sé más de lo que creía. La próxima vez empezaría por separar las funciones en un archivo aparte para tener los archivos más ordenados.

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

    Me encontré con que acababa usando varios hooks entre componentes y me perdía a veces, tardé un rato en ordenarlo todo para que funcionara. Lo solucioné teniendo paciencia, dejando el proyecto para el día siguiente con la cabeza fría.

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

    Necesitaría ayuda con el manejo de hooks, y a crear u ordenar los componentes de manera más óptima.

    React + Tailwindcss

    #react#tailwind-css#vite

    2

    P

    @brunomoleta

    Posted

    Hola Gonzalo, ?que tal?

    Primer cuanto a la estructura html:

    en SearchInput.jsx usaste una tag <section> pero esto es un formulário dónde se queda mejor la tag <form onSubmit={() => function()}>. Y solo con form es posíble envíar los dados usando la tecla "Enter" en el teclado.

    Y el <input> tien que tener un <label> mismo que él se quéde oculto. De W3:

    Always use the <label> tag to define labels for <input type="text">, 
    <input type="checkbox">, <input type="radio">, 
    <input type="file">, and <input type="password">.
    

    Además la pagina siempre necesita un element <h1> mismo que oculto. En este caso podría ser Github user search, encuentra colegas desarrolladores, por ejemplo.

    He hecho un 'pull request' en tu main de Github mostrando como gestionar los estados mejor. Así, todos los estados se quedán en un mismo lugar.

    También creé un componente independiente que contiene los 'links' del usuario.

    Si crees que ese comentario te ayudó, por favor marcalo cómo "helpful".

    Desculpe si el español que escribí tiene errores :)

    Saludos de Curitiba/PR - Brasil

    Marked as helpful

    0
  • Hanif 500

    @1Hanif1

    Submitted

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

    I learnt how to apply loading animations and trigger animations based on scroll location with the help of Intersection Observer API

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

    I had difficulty learning how to organize my sass styles and following the BEM convention

    P

    @brunomoleta

    Posted

    Hello Hanif,

    Semantics: It is best practice to contain all content within distinct regions such as the header, main, and footer.

    But your three section tags are direct children of the body, it's best if a main tag wraps them up.

    Also, the anchor with #menu-btn does not redirect the user to another page, so it is a button.

    As according to MDN a Button:

    The <button> HTML element is an interactive element
    activated by a user with a mouse, keyboard, 
    finger, voice command, or other assistive technology. 
    Once activated, it acts, such as 
    submitting a form or opening a dialog.
    

    Sizing: I'd also advise you about the mockup image in the hero section. You set the width and height using percentages(%), but I believe the responsiveness is better off with fixed sizes. Because when I opened your app on my machine, the images appeared disproportionally big.

    In my day-to-day activities on the web, I increase the zoom of the content by default on the Firefox settings and the font size. Our app must accommodate that user action.

    Same on the Logo image where you set it with rem, but it would be with a fixed size. Typography size depends from user to user, so it's well suited with the rem unit. However, when we use properties such as padding we ought to test and see if it increases user experience. It probably makes sense to use fixed amounts in some cases and dynamic in others. What do you think?

    Last but not least, congrats on the use of Intersection Observer API.

    Best regards from Brazil :)

    0
  • P

    @Stacy-Riley

    Submitted

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

    I think the site turned out nice. I like the transitions over the links and social media icons. I had to work with the svg files a bit to get them to display the correct color especially taking into account the footer had 2 different background colors.

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

    The 2-tone h1 in the desktop view on the home page was a bit tricky to figure out. Also, I added a text transition property using CSS and JS so as the user scrolls down the page, the text loads in a slightly delayed way. I had to disable it though for the Frontend Mentor test. Since the page wasn't being scrolled, the test wasn't showing up!

    P

    @brunomoleta

    Posted

    Hello Stacy,

    I have a suggestion to improve your homepage visually. It regards the section that has a large portrait photo with the image and the black box <div> on its right. In the div that wraps the latter two, you used a hard-coded: margin-bottom: 1.875rem to distance the two.

    But depending on the device, this causes misalignment between the bottom of the box and the image on its left. It's what happened with your app on mine.

    I suggest that you remove the hard-coded margin-bottom and use the following code to keep the bottom aligned:

    display: flex;
    flex-flow: column;
    justify-content: space-between;
    

    Hopefully, that helps you.

    Best regards from Brazil :)

    0
  • P

    @brunomoleta

    Posted

    Hello bluepersia,

    The following feedback concerns accessibility:

    Homepage:

    • You skipped one heading on the landing page, which probably should have been the Our location button. If you decide this button should not contain a Heading tag, the your day at the gallery has to be an h2.

    Also, all three images have the alt text equal to: Gallery image. Alt text should:

    The alt attribute should typically:
    Be accurate and equivalent in representing content and function.
    
    Be succinct. Content (if any) and function (if any) should 
    be presented briefly without sacrificing accuracy. 
    
    Not be redundant or provide the same information as text near the image.
    
    Not include phrases like "image of ..." or "graphic of ...". 
    This would be redundant since screen readers already 
    announce "graphic" along with the alt text. 
    

    (source: webaim)

    At the Location page:

    The heading levels are independent from one page to the next, so the location page should also have an <h1> tag. You may hide this Heading, if necessary.

    99 King Street and Newport RI 02840 United States of America addresses might go with an <h3> and the Back to Home button(anchor) with an <h2>.

    The principle is: Headings must be in a valid logical order, meaning h1 through h6 element tags must appear in a sequentially descending order.

    Other topics:

    On your Footer React component, you wrapped it with a <div> instead of a <footer> tag. It's best to use the latter for accessibility.

    You might also put the img folder inside the assets for better organization.

    Besides these issues, your solution looks sharp.

    I used this website to make the accessibility test of your app: https://accessibilitytest.org/results/wWpa1BHAeoZ4.

    Keep the hustle

    Best regards from Brazil :)

    0
  • P

    @Giuva-Sergi

    Submitted

    I worked on building this home page and it's been quite challenging for me especially for what concern the position of some of the elements. I also tried to implement some aria attribute for accessibility and I would really appreciate any suggestion about the subject for I'm quite a newbie

    Thank you!!!

    P

    @brunomoleta

    Posted

    Buongiorno Giovanni,

    My sister is Brazilian but also lives in Italia :)

    I advise you to think about users who prefer navigating with their keyboard. When I opened your dropdown without the mouse, I couldn't exit it using esc.

    You can use radix-ui to assist you in setting up the keyboard user. Radix offers all the accessibility necessary, and then you style over it.

    I used it on my app, though not on the landing page, only inside the dashboard. You can create an "investidor" user account and use the Radix dropdown on the Dashboard page.

    Also, check out here this great article from Josh Comeau on how to use

    flex: 1 0 [desired-width]
    

    for rendering the cards. The ideal solution doesn't need a media query because Flex will handle the cards depending on the screen size.

    Hopefully, this feedback helped you, and if so, please mark it as helpful.

    Great effort, Giovanni. Ci vediamo :)

    Marked as helpful

    1
  • John Pugh 250

    @JohnPugh688

    Submitted

    This is my first project using Javascript. I hope you can take the time to have a look at my code and give me some feedback as like i've mentioned before this is all new to me. Ive spent the past 10 years working as a construction site manager with very little experience even using a computer. So for me this is a huge challenge that i'm enjoying more than i ever expected. I think on my next project i'm going to give React a go as i think this will work really well along with tailwind CSS? Anyone else use this combination let me know your thoughts and any tips for setting up my coding environment would be welcome. As always i look forward to you feedback good or bad. thanks in advance

    P

    @brunomoleta

    Posted

    "Hola" John,

    I advise you to avoid styling the `````body```` tag. Things may get unnecessarily messy doing so.

    For starter, the body ought to have a width:100% and then, inside the header, main and ````````footertag you may use adivwith the.max-w-[1440px]````.

    Also, I don't see the need to use a section inside the header tag. You can use an a,nav and button, because the header is the section, you know?

    Another observation: The article card will lead the user to another webpage, so this shall not be a div tag, for divs have no semantic meaning.

    It's better if this tag is an article. According to MDN: The <article> HTML element represents a self-contained composition in a document, page, application, or site, which may be independently reusable. Examples include a forum post, a magazine or newspaper article, or a blog entry

    Also, I recommend this blog: JoshComeau. He writes thoroughly about front-end programming. It's worth checking from time to time.

    (If you find this comment helpful, please mark it as helpful)

    Congrats on the effort, John :)

    Best regards from Brazil

    Marked as helpful

    0
  • P

    @brunomoleta

    Posted

    Hi Ellie,

    It's a valuable call to make your React components smaller. From what I checked out you used only an Accordion component (besides the main.jsx)

    For example, inside the Accordion you can do

            return (<>
    {data.map((item) => (
            <DetailsItem
                ...
            />
          ))}
    

    And put all that code in a separate component. It might seem unnecessary at first glance, but it makes it much easier for someone else to read your code.

    The code may be separate so that the app.jsx becomes something similar to:

        <>
          <div className="stack-x-large grid grid-row-1-auto">
            <Container />
          </div>
        </>
    

    I suggest you look at how the files are managed in my solution.

    Great effort, and keep up the hustle.

    Best regards from Brazil 🇧🇷 :)

    Marked as helpful

    0
  • KoliaK 160

    @KoliaK

    Submitted

    It was really interesting to make my own "summary" instead of using the classic HTML

    <details>
        <summary>Title</summary>
        <p>Content</p>
    </details>
    

    I guess it was difficult to work with those imagens on top of another, and the BG ended up overflowing the Card component. The only way I think of making the BG work as expected, is to make another app, without using the Card component as a displayer to other components. Any ideas?

    P

    @brunomoleta

    Posted

    Hey Koliak, I'm testing your app in the mobile width, and the illustration can't be seen. You may correct it with a margin-block: 8rem or so.

    About your questions, I believe that in a "real life" project, perhaps those two top "rings" should be given to the developer in the same svg of the desktop image, as... they only appear along with it. I wouldn't worry about that.

    I see that you saw it as a valuable idea not to use the details tag. I would stick to the native tag, as the div's you used carries no semantic value.

    However, you can compensate the semantical gap with region: role. Check it out, as you may find a good use for it.

    You will probably need some ARIA as they, according to MDN:

    ARIA roles provide semantic meaning to content, 
    allowing screen readers and other tools to present and support interaction with
    an object in a way that is consistent with user expectations of that type of object.
    
    ARIA role is to describe elements that don't natively exist in HTML
    or exist but don't yet have full browser support. 
    

    I would also consider making the accordion open only one question at a time, as the way it is set, the illustration slides downward, and it's perhaps not the best user experience. It was not a requirement of the challenge, but it is a nice feature.

    Keep the hustle :)

    Best regards from Brasil 🇧🇷

    Marked as helpful

    0
  • @christhperalta

    Submitted

    <h1>Hi guys, this is my solution to GitHub user search app</h1>

    <h2>Technologies</h2>

    <ul>
    <li>React js</li>
    <li>Flexbox</li> 
    <li>Grid layout</li>
    <li>Sass</li>
    <li>ITCSS</li>
    </ul>
    
    <p> Any suggestions on how I can improve are welcome! </p>

    GitHub user search app

    #itcss#react#vite#sass/scss

    1

    P

    @brunomoleta

    Posted

    Hello Christh, I was able to learn a lot from the way you organized your scss, as I'm just starting out using it. Thanks and keep posting more great work, please :)

    0
  • P

    @Dantalian5

    Submitted

    With this I have completed all the challenges of only html and css!!

    Easy:

    • the layout of main and footer, the effects and the general assembly of the page

    Difficult:

    • Optimize the design of the css and html, implement accessibility, lazy loading, optimization, etc. (I've taken my time, as if it were a very serious project)
    • the hero section, the color changes and the correct use of mix-blend-mode, you can see how it is not exactly like in the original design, but I liked it better that way, also it did not seem right to use brute force to achieve the h1 text double color effect
    • mount the map using leafleet and javascript (I haven't gotten to the js part yet)

    Impossible:

    • ...as always... NAME things!!!!

    Thanks in advance for your advice and feedback.

    Art gallery website solution (with bonus and love)

    #accessibility#bem#smacss#sass/scss

    1

    P

    @brunomoleta

    Posted

    Ciao Marcos,

    on a wide screen, with more than 1600px, as the footer has a max-width the overall layout end up a bit off. To correct that, you could use

    footer {
    max-width: none 
    display: flex
    justify-content: center
    }
    .footer-wrapper {
    max-width: 90rem
    } 
    

    The same goes for your ::before element on the header as it also leaves a blank on the left side. I don't know how to fix it while keeping the HTML structure to make the black rectangle fill the space. For one, I used a grid with 1fr auto 1fr as this stretches the black rectangle, but I used a canvas tag. I suggest you look at this section of my solution.

    Overall, it's a tightly knit layout and code. Congrats, Marcos

    Best regards from Brazil :)

    Marked as helpful

    0
  • P

    @blp100

    Submitted

    This challenge is truly inspiring to me. The styles, colors, and spacing, everything is absolutely perfect, which fuels my passion for becoming a frontend developer. I love creating beautiful things and bringing them to life.

    Taking on this challenge is also a great opportunity for me to explore map development, an area where I have little experience.

    I'd like to share a useful pure CSS animation page which I figure out how to write my own button. CSS Animation Button

    And another great gradient tool. [CSS Gradient] https://cssgradient.io/

    After completing this challenge, I realized how fascinating it is to create custom CSS animations from scratch. Additionally, I discovered that importing and implementing a map is not as difficult as I initially thought, but customizing the map styles presents another challenge.

    I would like to refine the map styles later. And it's time to take on the Boss level.

    P

    @brunomoleta

    Posted

    Hello Po-Cheng, I would advise you not to use margin so often as it is more responsive to frequently use the alignments from flex and grid. Such as justify-items: center.

    To be more specific, there was an alignment you set on the <h2> Your day at the gallery</h2> where you used margin-top on it. That in my browser (Firefox) misaligned the text (the h2 and the p) with the image. Also about this heading, I suggest that you use a max-inline-size: 8ch instead of a <span>. It would be easier to adjust further design choices, more maintainable.

    And looking at the overall HTML organization, you could have used a <main> tag with two <section> tags instead of a <section> with two div children.

    I saw your effort in documenting your debugging of the Css on the READ.me file you wrote, and congratulations on that. I ought to do some of that :)

    Keep the hustle, Best regards from Brazil

    Marked as helpful

    1
  • Daniel 170

    @kadan-develop

    Submitted

    Hello coder's, this is my first project with API, it was a little bit challenging, but worth of every minute, hours, weeks to pursue it. If you have any suggestion, advice, feel free to leave it. Thanks!

    P

    @brunomoleta

    Posted

    Hello Daniel, the no results is only being rendered the first time the API does not find the GitHub account that the user searched for. I did not track the bug, but I believe you have to render it when the Fetch returns response.status ===404.

    And I suggest you separate your functions and split your css file into components so it's easier to read and debug.

    It's also on VanillaJS alone, so you will be able to understand it.

    It might be better to use a required inside the input instead of rendering You must enter at least one word!. It's a bit less harsh.

    And cool effect you put on the No results, congrats on that :)

    Marked as helpful

    1
  • P

    @brunomoleta

    Posted

    "Olá colega" about the structure of your HTML,

    it's important that every page has an h1 element "Do not skip heading levels: always start from <h1>, followed by <h2> and so on."(from MDN).

    Also, I believe the header concerns only the <h1>Devfinder</h1> and the <button>dark-theme switch<label> with a form control, such as <input> or <textarea> offers some major advantages_:

    "A screen reader will read out the label when the user is focused on the form input, making it easier for an assistive technology user to understand what data should enter."

    I also suggest you avoid using fixed widths and heights in px such as you did with your btn-search.

    Beyond that, perhaps your div tag could've been a section and the container-user instead of an <div>, an <article>, as it's an element that makes sense in itself, even if it's put in another website, for example.

    About the mobile layout, your container-repos is beyond the parent's width at 380px wide. I suggest you start styling the CSS from the mobile width next time and then adapt to the larger widths.

    Boa sorte, Best regards from Brazil :)

    0
  • @Sage86

    Submitted

    I'm currently studying Frontend Development via Scrimba, and last year I studied the module "Frontend for Designers" via CareerFoundry (as part of the UI Design programme).

    Some of the coding was familiar to me, in terms of structure and DRYcode, but as many of you who are more ahead in the game than me as it pertains to FE, you will probably have lots of feedback for me - which I of course welcome because I want to learn from my mistakes :)

    Questions for the community:

    • Does my code structure make sense?
    • How could my code improve?
    • Is there a way to ensure the reduced price element displays higher than the new price? (I found this the most challenging)

    What I've learnt:

    • Learning to code has changed my way of thinking and problem-solving
    • I wouldn't have described myself as super analytical, but the practice of FE has encouraged this trait to grow
    • I've also had to realise that I won't be able to remember everything I code after a day of doing it, it will take constant practice
    • I'm very excited to eventually develop all the screens I have designed in Figma (personal projects)
    P

    @brunomoleta

    Posted

    Hello Ashley,

    About the overall structure of your code, I believe it will be of great help for you to check the 12th item on this post from Tushar Biswas, as he breaks down the structure he set on this very challenge.

    Congrats on starting programming to code your design :) Best regards from Brazil 🇧🇷

    0
  • P

    @brunomoleta

    Posted

    Hi Aydan,

    I suggest you watch out for the use of pixels in your CSS as, according to Heydon Pickering & Andy Bell from Every Layout:

    "Screens are made of pixels and are not regular, immutable, or constant. A 400px box viewed by a user browsing zoomed-in is not 400px in CSS pixels. It may not have been 400px in device pixels even before they activated Zoom.

    Designing using the px unit not only encourages us to adopt the wrong mindset: there are manifest limitations as well. For one, when you set your fonts using px, browsers assume you want to fix the fonts at that size. Accordingly, the font size chosen by the user in their browser settings is disregarded.

    [...]

    The units em, rem, ch, and ex present no such problem because they are all units relative to the user’s default font size, as set in their operating system or browser. Browsers translate values using these units into pixels but in a way sensitive to context and configuration. Relative units are arbitrators."

    Also, advice is to adjust the media query widths from 420 to 680 px and especially from 770px to 900px at this size, as a 2023 tablet has around 800 to 850px wide. The red card at that specific width is getting hard to read. You could adjust removing the position: absolute and setting a margin-inline-end with a %, I believe.

    Great hustle, and keep it going

    Best regards from Brazil 🇧🇷 :)

    Marked as helpful

    1