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

  • Adriano 33,960

    @AdrianoEscarabote

    Submitted

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

    I am most proud of successfully completing my first Svelte project. Next time, I would approach the project with a clearer plan and design in mind to avoid some of the backtracking and refactoring that I had to do in this project. I also plan to spend more time exploring advanced features of Svelte to create more complex and polished projects in the future.

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

    In my first project using Svelte, I encountered some challenges with the syntax and the reactive nature of Svelte components. To overcome them, I spent time reading the documentation, watching tutorials, and experimenting with small code snippets.

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Opa, Adriano! Aprendendo Svelte também? Isso me lembra que eu preciso voltar a estudar. Ficou legal a sua solução!

    1
  • Adriano 33,960

    @AdrianoEscarabote

    Submitted

    Hello everybody! 👋 This is my solution for Interactive pricing component!

    This was my first contact with React, Parcel and styled components!

    I really liked the efficiency and simplicity of parcel, about styled-components I would like to know if the folder organization is good, despite having read a little about it, I still have doubts about the best ways to organize the files!

    I thought it was really cool to develop this project with react, despite being a small and simple project, it was perfect to practice a little with new tools.

    Feel free to leave feedback on how I can improve my code. 😊

    Thanks!

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Parabéns pela sua solução, Adriano! O seu aplicativo ficou muito legal.

    Quanto a sua pergunta sobre a organização dos arquivos, o fato é que React não é opinativo sobre isso, então o desenvolvedor tem muita liberdade sobre como organizar os arquivos. Eu, particularmente, gostei da forma que você organizou e achei superlegível.

    A parte isso, o principal problema na sua solução é que quando a gente trabalha com React - e outros frameworks e bibliotecas do mesmo tipo - a gente não pode manipular diretamente o DOM. Eu me refiro ao uso de getElementById, target.style.backgroundSize e innerText na sua função handleChangeInput.

    Há várias razões para não se fazer isso e isso pode trazer várias dores de cabeça. Por exemplo, se a aplicação fosse maior e, por alguma razão, houvesse um repaint do seu component <Pricing/> todos os dados inseridos pelo usuário seriam perdidos (isso ocorreria porque os dados alterados pelo innerText não estariam sincronizados com os dados do virtual DOM do React).

    O uso de id também é altamente NÃO recomendável, uma vez que isso prejudica a reusabilidade dos componentes. Por exemplo, se você tentasse reutilizar o component <Pricing/> em outro lugar do aplicativo, a página ficaria com duplicidade de ids.

    Sobre o tema, de um modo geral, em React, o gerenciamento de estado e a sincronização do estado da aplicação com a interface devem ser realizados com hooks - geralmente useState e, em menor grau, useReducer, associados, ou não, a useContext.

    Por fim, um detalhe menor: há uma forma mais prática de usar React.Fragment, isto é, ao invés de importar o Fragment e usar <Fragment>...</Fragment>, você poderia ter usado simplesmente <>..... vide https://pt-br.reactjs.org/docs/fragments.html#short-syntax

    Marked as helpful

    1
  • Adriano 33,960

    @AdrianoEscarabote

    Submitted

    👨‍💻 Hello everyone. This is my solution for Advice Generator App.

    This was my first project consuming an API, I learned a lot of things, but I feel that I need to study a little more about it, that is, my next projects will have API integration, after all I need to practice and learn a little more about it!

    Also for the first time using babel and webpack I tried to make my folders as organized as possible, with babel I made my js code accessible to all browsers! and with webpack I compiled all the modules used in the development of the project to the dist folder! feel free to comment on how I can improve the organization!

    I have added:

    • 👨‍💻 This API has a mechanism that only accepts a request every 2 seconds, to solve this problem and the user doesn't keep clicking on the button and doesn't see any changes, I added a slightly slower animation!

    Feel free to leave comments on how I can improve my code.

    Thanks! 😊

    Advice Generator App w/ (HTML + SASS + JS + API) 👨‍💻

    #accessibility#fetch#webpack#sass/scss

    3

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Adorei sua solução! Parabéns!

    Sobre babel e webpack, eu achei interessante que você tenha optado por configurar você mesmo a integração dessas duas tecnologias no projeto e imagino que deve ter sido uma experiência incrível como fonte de aprendizado.

    Contudo, talvez seja importante observar que mesmo em projetos vanilla (sem uso de frameworks) o usual seria usar uma solução pronta que já vem com transpiladores, builders, preprocessadores CSS e outras funcionalidades "out of the box", como Parcel ou Vite.

    Outro ponto é que, embora webpack ainda seja um bundler bastante popular, nos últimos anos ele tem sido visto, não sem alguma polêmica, como um tanto ultrapassado. Recentemente, por exemplo, nextjs construiu um bundler chamado turbopack com Rust que é supostamente 700 vezes mais rápido que Webpack.

    O que eu particularmente não gosto do Webpack é que qualquer coisa que você precisa adicionar ao projeto é um saco para configurar. Por exemplo, se eu quiser adicionar postcss a um projeto com webpack vou perder de uma a duas horas pesquisando como fazer isso e mais duas horas tentando entender o que deu de errado :).

    Enfim, mais uma vez parabéns. Continue o excelente trabalho!

    Marked as helpful

    2
  • Lucas 👾 104,580

    @correlucas

    Submitted

    👾 Hello, Frontend Mentor coding community. This is my solution for the Huddle Landing Page With Curved Sections.

    I added some features:

    • 😎 I recreated the logo as a SVG (this way I could animate it).
    • 👻 I added an animation on the logo (chat-box icon flip and turn).
    • 👨‍🔬 Some custom design improvements.

    Happy to hear any feedback and advice!

    P
    Vander Santos 1,750

    @vanderms

    Posted

    E ai Lucas! Parabéns pela sua solução. Ficou excelente!

    Quanto a estrutura do HTML e o problema com as landmarks, eu acredito que você fez algumas opções pouco usuais.

    Mas antes, uma breve explicação: existem basicamente duas estruturas tipicas para uma pagina:

    <nav>...</nav> <main>...</main> <footer>...</footer>
    <header>...</header> <main>....</main> <footer>...</footer>

    A escolha entre a primeira e a segunda depende de se você considera ou não a parte de cima da página como um cabeçalho (banner landmark) ou como uma simples barra de navegação (nav landmark). Mas geralmentes ambas escolhas justificáveis e são válidas.

    Então, por escolha pouco usual, eu me refiro ao fato de vc aparentemente ter colocado a barra de navegação dentro de <main>. Difícil considerar ela como parte do conteúdo principal.

    Por outro lado, você colocou algumas seções fora de <main>. Dá para fazer isso? Sim, mas uma <section> precisa ter o atributo aria-label ou aria-labelledby para ser considerada uma landmark. Como você não usou nenhum desses atributos o validator apontou o erro.

    Mas pra mim o principal problema é que se você não considera tais seções como parte do conteúdo principal, você deveria ter usado <aside> e não <section>.

    Resumindo, existem diferentes formas de você resolver esses problemas: .e.g. adicionando aria-label ou aria-labbeledby as sections, colocando elas dentro de main, substituindo elas por aside.

    Espero que as dicas tenham ajudado e continue sendo uma inspiração para toda a comunidade.

    Marked as helpful

    0
  • Rhyyn 40

    @Rhyyn

    Submitted

    I'm not sure if I have the proper folder structure for the scss modules, what's the best practice to organize such project ?

    Which HTML tags should I try and implement for better SEO ? I feel like I'm pretty lacking in this area

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi congratullations for completing this challenge.

    About your question, the scss folder structure is not something opinonated, so the developer has some freedom to choose the best structure for each project.

    I like the structure you chose and I think I've already done something similar. But the problem with this structure is that the react components become less reusable since the scss modules are not in the same folder than the jsx, tsx files.

    I've also tried putting the module.scss in the same folder as the react components. But this approach also has its drawbacks.

    One of them is that in a scss project you always have some kind of scss file with mixins, variables and functions that you need to @use in every other scss file and although you can use absolute path to import it, the solution is never very good.

    About the HTML, you should look at the solution report. Your HTML can be very clean if you correct all errors and warnings in the report. But I think that you should know that a clean and semantic HTML doesn't have much impact in SEO.

    Things like quality of the content and backlinks are much more important for SEO than HTML tags.

    Marked as helpful

    1
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi, congratullations for completing this challenge.

    The amount of media queries is ok. You don't need to worry about it.

    The only thing that I would point out is that I saw in your code that you used a media query with max-width: 900px and another with min-width 900px.

    So, at exact 900px both medias will apply. Is this the desired behaviour? If not you could set the one with min-width to 901px.

    And about this subject, maybe you should give a try to the mobile first approach. Most of the time it is easier than the desktop first.

    Keep up the good work!

    Marked as helpful

    0
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    Only when I was submitting this solution, I realized that I hadn't changed the website favicon. What is funny because the Angular favicon fits very well for the Arch Studio.

    0
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work!

    I agree with you.

    I had the same experience with this challenge. It is one of the hardest I have completed to the point that I think it should be at least level intermediate if no advanced.

    1
  • GinhTony 110

    @SonTonyD

    Submitted

    Hello, It's my first project with Angular and I have a question about the Observables from rxjs : Should I have used the observables for this project ? AND In which case and for which features should I use observables? Should I use Observables as often as possible? Thank you !

    P
    Vander Santos 1,750

    @vanderms

    Posted

    HI, well done! You did a really great job in this project.

    About your question, we usually use observables when we need to handle asynchronous operations. Communication with Rest API being the most common of this operations.

    Angular also uses observables on several modules like router and reactive forms.

    What I am trying to say is that observables is something very common in Angular and is hard to build a project that doesn't contain any. In your case, you use HttpClient, whose methods return observables. See: https://angular.io/guide/observables-in-angular#http

    And, finally, your project is amazing and well organized, the only tip that I would like to give you is that when we need a variable with different values for development and production, the best practice is to use environment variables. I am saying that because I saw that you created a variable named IP_ADDRESS, in the TodoAppService, and you commented the development value.

    You can check how to set a enviroment variable in this article https://www.digitalocean.com/community/tutorials/angular-environment-variables

    Marked as helpful

    1
  • Lucas 👾 104,580

    @correlucas

    Submitted

    👾 Hello, Frontend Mentor coding community. This is my solution for the QR Code Component.

    Making this challenge again was something really amazing for me, first because going back through my past challenges I was able to fix some issues and clean my code and then because was my first time using JS (yes I'm a newbie) 😂

    I added some features:

    • 🎨 Dark and Light mode button
    • 👾 Custom QR Code image
    • 🧚‍♂️ A little bit of color customization
    • 👨‍💻 Custom image hover state

    I'll be happy to hear any feedback and advice!

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi, I love your solution!

    The dark mode was awesome!

    My only tip is you could improve the acessibility and the html semantics of your app putting the icon used for toggle inside a button tag (with an aria label describing what the button does, e.g. "toggle dark mode").

    Marked as helpful

    3
  • @jchapar

    Submitted

    Hello everyone, would really appreciate some feedback and any advise to the following issues i had. Thanks in advance!

    1. hiding the API keys when only using Vanilla JS. I'm aware of dotenv with Node but was having some trouble trying to get it to work (haven't worked with node before). I know its not good practice to include these in the repos but thought it would be ok for this challenge as I am still researching and learning.
    2. Ternary operator within template literals. As of now, if a profile searched has no Bio, it will just say NULL. My idea was to try to use a ternary operator to either generate the Bio from the profile data or to display "This profile has no bio." but has some issues implementing that. Similar goes for the blog and twitter details
    P
    Vander Santos 1,750

    @vanderms

    Posted

    Well done!

    You don't need to use Github secret key in this challenge.

    Actually, Github has a public API that you can use without keys. Read: https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api#authentication, specially, the part about unauthenticated clients.

    You can access the public API with a get request to the URL: https://api.github.com/users/{usename}, e.g https://api.github.com/users/octocat

    I am not sure what token you have used, but maybe exposing the Github key in your project can be a serious security risky for your Github account.

    Marked as helpful

    0
  • Adriano 33,960

    @AdrianoEscarabote

    Submitted

    Hi guys. 👋

    I really enjoyed doing this challenge, I thought it was really cool the way I made the layout responsive, but I accept tips to improve even more.

    Thanks.

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi there! Nice job!

    About the color of the social media icons in the footer, you can set it to white by:

    • setting the property fill, of the path tag, in the icon file, to white;

    • adding the property filter: brightness(0) invert(100%) on the img tag;

    • replacing the img tag for a div, with the following properties: background-color white, mask-image: url(path_to_the_icon); width: width_of_the_icon; height: height_of_the_icon; mask-repeat: no_repeat; mask_size: contain; mask-position: center. This solution is a bit tricky and you will need an autoprefixer since the mask properties don't work on chrome without the webkit prefix, but it can be quite usefull when you need to use hover effects;

    • and using an icon library like font-awesome. For social media icons, that's the easiest and, in my opinion, the best way.

    Marked as helpful

    1
  • Florian 50

    @Flomhw

    Submitted

    I created a solution with React, the point wasn't simply to filter on the front with css but i wanted to filter the array accordingly.

    I'd love a feedback about my code in Jobs.js

    Thank you. :)

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi there! Well done!

    I will start making this project and I am happy to have found your solution because I had some doubts about how the app works.

    I only have two suggestions:

    The first is when you are using Create React App (or other framework), you should remember to change the favicon and the title on the index.html file. Currently the title of your solution is "React App". "Job Listings" would definitely be a better title.

    The second is it's much easier to deploy a React App on free services like Netlify or Cloudflare Pages. You should give them a try.

    0
  • Essar 10

    @ESSARHTHUMAR

    Submitted

    The most challenging part for me was to define the Width & Height of the Container and align it to the center. but somehow I was able to complete the challenge successfully. I'm still looking for a better solution for defining the Width & Height of the container.

    Drop your Feedback if you find any mistakes or if you feel the code can be improved furthermore in any way.

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Hi nice work!

    Your solution is great and overall I liked it very much.

    About the width and height, you could have used a more straightforward approach. I mean, if you needed the card on desktop viewports to have 576px, you should have set the div.main-container to have this width.

    But in your solution, you set the body to have 1440px and the div.main_container to have 40% of that. And this is a problem, because it just works if the desktop has exactly this size. For example, on laptops 1280px wide, your site has a horizontal scrollbar because the <body> is overflowing and on desktops with 1980px the card is not in the center.

    I think also that you should have used more semantic html tags. I mean, the .main_container could be an article (or a section) not a div.

    Marked as helpful

    1
  • @MichelleMinor87

    Submitted

    I struggled with getting my image to be responsive for a while. I'm unsure of the picture tag. This was the first time I Have used it. I usually don't use 2 images I have always used one. I'm not sure if that matters or not. I would love more help of understanding if it is necessary to use the picture tag or an I just use one image to complete the next project?

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work!

    I like the picture tag because it offers a clean solution to make an image responsive and you used it very well in your code. I would only point out that you didn't need the second source tag since the src is the same as the src in the img tag.

    Marked as helpful

    0
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    I had to change the attribute priority of the nextjs images, because the images were not displaying in the frontend mentor screenshot. But it is not something that I would usually do.

    0
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    What bothers me in Angular is this amount of HTML validation errors. Any sugestions?

    0
  • Marija 80

    @Marija-Kov

    Submitted

    Took upon this challenge as I was getting deeper into (vanilla) JS so naturally I enjoyed flexing my JS skills by creating as many elements as I could dynamically and organizing my code into modules. I was wondering if there was a significantly better practice (in plain JS) than what I've done in this project to display content using async functions and fetch-then chain in each of my .js files (destination.js, crew.js, technology.js in 'starter-code' folder -- apologies for not sensibly organizing all these files into separate folders). Thanks.

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Well done!

    Your solution is very good and I loved it! My only tips are:

    1. A extension like prettier (or other code formatter) could improve the readability of your code. Sometimes, I found the identation of your js solution hard to read.

    2. Considering the risk of XSS atack, I wouldn't recommend using innerHTML, especially when the data is coming from the server. I probably didn't see all uses of innerHTML, but the cases that I saw you could replace it with the safer options innerText or textContent and the result would be the same.

    3. And your solution would be indeed more easy to understand if you had organized the files inside folders.

    Keep up the good work!

    Marked as helpful

    1
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work!

    About your question, your solution is fine. The only problem is when the user enters a invalid email, your form doesn't display the custom message. This happens because when there is a invalid email the browser does not call the 'submit' event listener'.

    One solution is to use the 'novalidate' attribute in the form. The problem with this approach is that every validation has to be made by you and you don't count anymore with the browser validations.

    The other good solution is to use the Contraint Validation API (read https://developer.mozilla.org/en-US/docs/Web/API/Constraint_validation) and attach a 'invalid' event listener to the input[type = email]. You can check a example of this approach here: https://codepen.io/vanderms/pen/QWOYLjW .

    One problem with the last approach is if you use React, you cannot test with React Testing Library, since apparently the jsdom dependency does not implement the Constraint Validation API.

    Conclusions: in this project, if you want just add 'novalidate' to the form and your form will work like the design. For future projects, also if you are interested, studying the Contraint Validation API can improve your work.

    1
  • Nafsuki 245

    @Nafsuki

    Submitted

    I created this Modern Art Gallery Website using Next.js, TailwindCSS & MapBox.

    My Questions:

    -On the mobile screen, I wanted to disable the map to zoom, because it bothers when I scroll down the page(it scrolls down the map instead). I read the documentation on mapbox to try to fix that but couldn't really solve the issue. If you have any idea & suggestion, please kindly let me know:))

    Any feedback & suggestion for improvement would be very much appreciated ☺️🙏!!

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work!

    I think one solution is to put a transparent div absolute positioned over the map, then the user will not be able to drag the map anymore.

    1
  • P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work!

    The only thing I would add is that is a bit dangerous to use innerHTML to create textNodes, especially because you are getting the data from a server you have no control. I think textContent or innerText were better options.

    Marked as helpful

    1
  • Ali 170

    @alisbai

    Submitted

    My email verification js code is not working properly.

    I have a class EmailVerification and an instance of it emailInput. My verify method throws an error: Uncaught TypeError: Cannot read properties of undefined (reading 'classList') at HTMLInputElement.verify.

    Thank you for taking the time to help me out :)

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Well done!

    About your undefined problem, in JavaScript is not always very clear what is this when you are using a method. In your case, the this in this.iconError is the input element, which is the target of the event listener.

    Try changing this line:

    this.DOMInput.addEventListener(eventType, this.verify);

    for:

    this.DOMInput.addEventListener(eventType, () => this.verify());

    0
  • @catherineisonline

    Submitted

    Hello, Frontend Mentor community! This is my solution to the Base Apparel coming soon page.

    I appreciate all the feedback you left that helped me to improve this project. Due to the fact that I published this project very long ago, I am no longer updating it and changing its status to Public Archive on my Github.

    You are free to download or use the code for reference in your projects, but I no longer update it or accept any feedback.

    Thank you

    P
    Vander Santos 1,750

    @vanderms

    Posted

    As always, nice job!

    Maybe you should put the input and the 'submit button' inside a form tag. It is more semantic, allows the user to submit the form by pressing enter and you don't need to use a regular expression to check if the input has a valid email.

    And to display the custom error message, you could add a 'invalid' event listener to the input.

    I made a codepen showing how to implement this: https://codepen.io/vanderms/pen/QWOYLjW .

    0
  • Herson 220

    @Hersonmei

    Submitted

    Hi!

    I had a little difficulty with this project, I think because it was my first one using JS, so I ended up taking a lot longer than the others.

    As my first JS project, what would be the best way to start working with JS? After doing all the HTML and CSS structure?

    I left the desktop image outside the main to be able to place it next to the main and be able to apply the CSS Grid. Is it wrong to do this?

    Any comments will be appreciated. ;)

    P
    Vander Santos 1,750

    @vanderms

    Posted

    Nice work! I saw your JS script and the only thing I would change is instead of using the click event on the submit button you should have used the submit event on the form itself. One reason for that is that pressing enter also submits a form.

    Marked as helpful

    4