Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
19
Comments
39
Thomas Hertog
@thomashertog

All comments

  • Forester Erick•310
    @Forester04
    Submitted 8 months ago

    Base Apparel coming soon page

    #sass/scss
    1
    Thomas Hertog•805
    @thomashertog
    Posted 8 months ago

    This feels not completely finished to me. You're on your way there though. Overall, this solution is looking good! You've used accessible/semantic HTML where possible

    A few things I've noticed

    Design

    • you're not using the full height of the window if it is bigger than your content
    • there's no whitespace on the left your content when you look at it in the desktop view but slowly going narrower
    • I saw an error image in your code but couldn't get to visualize it by using the page

    HTML

    • Your code is bloated with <div> wrapper elements where I feel things could be much simpler, you don't need a wrapping element for your form items (e.g. input field and submit button)
    • You include both hero images (desktop and mobile) only to hide them with your CSS. Beware that this causes both images to be downloaded (and using data), you may want to look into the <picture> element to resolve this
    • You have an <h1> on the page (which is required for accessibility reasons), however I feel We're coming soon is not really helpful as a header. I'd suggest making the name of the company an <h1> (and hide it accessibly)

    CSS

    • There's some repeated statements here and there in your media queries. Be aware that if you have them in your normal CSS, they cascade over to your media queries (e.g. flex-direction: column on your body selector and again for your body selector inside a media query)
    • It feels a little awkward that you specified 3 rows for a grid but are using 4 rows, maybe you want to explicitly set their heights as well or (I'd do it this way I think) use sizing of the elements and let those determine the height of the rows which will be auto-sized if you eliminate the grid-template-rows altogether
    • I feel there's a lack of structure in your CSS code, there is no grouping/ordering of properties that makes sense, selectors are thrown around and are varying a lot in specificity (read up on specificity graph to see if you can make some adjustments here)
    • A lot of sizings are fixed (using absolute units like px, you could benefit from converting those to relative units like %)
    • There's a lot of flexbox stuff going on where I feel you have done some overkill (probably as well because of all the wrappers)
    Marked as helpful
  • Christina•240
    @codercreative
    Submitted 11 months ago
    What are you most proud of, and what would you do differently next time?

    I am happy the way the app turned out.

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

    The positioning of the social media overlay was very challenging.

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

    I am happy to hear ANY feedback for improvement. Thank you in advance!

    Article Proview Component built with HTML, CSS, JavaScript

    2
    Thomas Hertog•805
    @thomashertog
    Posted 11 months ago

    Your card is way bigger than the intended design. Though no pixel-perfect match is required, this feels a bit too astray from the original challenge

    Your HTML feels a little awkwardly structured. e.g. no <h1> present which I can understand since it's only a component and not a full page, however remember to include one if you're building full pages. You may also want to remove the alt text (and add aria-hidden) for the icons, since they are purely decorative (and properly labeled through their parent/container)

    For future reference it may be easier/more practical to have your reset styles in a separate stylesheet you can also look into the gap-property for the social icons instead of using margins on them Because of the way you implemented that share section (including a different button to get back), there is a slight difference in positioning of that button making it jump from one position to the other when toggled.

    I can't put my finger on it and say what exactly should be refactored, but I feel you've written a lot of CSS code where a simpler solution is available. Selectors feel more complex than they should as well. There are also some duplicate declarations (e.g. display:flex within the .contact-section selector)

    Keep learning, keep improving!

    Marked as helpful
  • kendo-desu•70
    @kendo-desu
    Submitted 11 months ago

    Testimonial Challenge

    1
    Thomas Hertog•805
    @thomashertog
    Posted 11 months ago

    Your HTML structure feels a bit weird because you made this challenge with flexbox. CSS Grid is far more suitable for this one. You may want to look into that. It would also make the tes-grid-container less confusing to use, since currently it's not a grid container but a flex container As for accessibility, you didn't include any semantics in your HTML. Jumped straight to heading level 4 (which is frowned upon). You wouldn't read a book that starts with 1.1.1.1. instead of 1. That said, this challenge doesn't have a visible single header (given you should only have one <h1> on a page at any time)

    Styling done with ID-selectors is also a very bad practice. IDs do have a very high specificity and should be avoided if possible (you can easily replace them with a class here)

    Keep improving, keep learning :)

    Marked as helpful
  • PhilippeItsMe•130
    @PhilippeItsMe
    Submitted about 1 year ago
    What are you most proud of, and what would you do differently next time?

    The responsivness is quite cool.

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

    Little things to debog... chatpgt... w3school

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

    I still need to check the solution to find you the path to take. I though of using the @media with différents grid-area but then I try to find a solution with the auto-fit approach and then went back to my first intuition... which was good.

    4CardsChallenge

    #accessibility
    1
    Thomas Hertog•805
    @thomashertog
    Posted 11 months ago

    I feel you have overdone accessibility a bit with this challenge. Imagine you were to look at this with a screenreader. Would you really believe that all the heading levels you used are appropriate? In my opinion this challenge only needs an <h1> to identify the page title and an <h2> to identify the section with the cards. The titles of the cards themselves feel a bit awkward as a heading to me. Same goes for the <h3> in the <hgroup> there is no added value in having that as a heading (to which you can directly navigate). On top of that it feels a bit awkward that you're structuring it like

    1. <h3>
    2. <h1>

    more down the page 3. a collection of <h2> Heading levels should be thought of as a means to quickly navigate the structure of a website. I'm always comparing it to a table of contents. You wouldn't make a ToC with 1.1.1. above 1. which is above 1.1 up til 1.4, right?

    <article> also feels a bit overkill for the different cards

    about the alt text for the icons. alt text should describe the image you're looking at, so i'd replace icon karma with lightbulb icon, though you may argue that these icons are purely decorative in which case i'd leave the alt text empty and add aria-hidden to hide it from screenreaders (as they have little value in a read-out page)

    absolutely love how you made the effort of building an in-between layout with just 2 columns.

    to make your CSS more maintainable/reusable/readable, you may want to look into CSS custom properties (some people like to call it variables) also, if you're writing with short-hand properties (e.g. padding: 1rem 2rem 1rem 2rem), notice that there is a shorter version available which has the same effect -> padding: 1rem 2rem

    hope this was insightful however you already did a pretty good job!

    Marked as helpful
  • Yoshi•50
    @ysstudio22
    Submitted 11 months ago
    What are you most proud of, and what would you do differently next time?

    Applying different images for different view ports. I had to do a bit of research but it was worth it.

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

    The biggest challenge was eyeballing the card sizes for the mobile and desktop view. I went back and forth between the design, but the previous challenges provided the foundation for this current challenge.

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

    I might try to tweak the spacing between the svg and "Add to Cart" text inside the button.

    Responsive CHANEL Product Preview

    1
    Thomas Hertog•805
    @thomashertog
    Posted 11 months ago

    Looks pretty good. Found some elements with explicit height. You may want to remove that to reduce unexpected behavior.

    Try avoiding the use of ID selectors as they are highly specific and are to be used very sparingly

    Marked as helpful
  • Thomas Hertog•805
    @thomashertog
    Submitted over 1 year ago

    Recipe page solution with both grid (and subgrid) and flexbox

    1
    Thomas Hertog•805
    @thomashertog
    Posted over 1 year ago

    I didn't include an <h1> because this clearly is a component that should be included into another page (that will have the <h1>)

  • salahstack•210
    @salahstack
    Submitted almost 2 years ago

    Semantic HTML5 markup CSS custom properties Flexbox CSS Grid

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    The design is a bit too much off to consider this one finished in my opinion. Most of it is colors and sizing, so you're on your way there.

    Other improvements I'd make on this

    HTML/accessibility

    • you have a lot of <div> containers of which i'm not sure whether they're all needed/adding some possibilities
    • There's a <header> and <footer> which is good but no <main>
    • <section> without associated header is just the same as a meaningless <div>

    CSS

    • mobile-first vs desktop-first is implemented inconsistently
    • a lot of px-values which are better in em/rem
    • you clearly know about some of the (which i consider) more advanced features of CSS Grid, however, you seem to be applying them in the wrong place/manner which causes weird composition (e.g. your footer at about 890px wide)
    Marked as helpful
  • Andrés Gutiérrez•20
    @andresd0319
    Submitted almost 2 years ago

    https://64a33a8b1a33a65e79b26d27--splendid-stardust-7882d3.netlify.app

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    your solution looks good visually! some small code improvements can be made though

    HTML/accessibility

    • you've used a <section>, however that doesn't add any semantics nor a landmark. <section> is only useful if you can associate it with a header
    • <article> is something that should make sense on it's own page, so definitely not the right element for that plan
    • <a> is for linking to another page, i'm a bit unsure what other page you would navigate to when changing a plan/proceeding, they might be better off as a <button>
    • you're missing an <h1>, which is like reading a book without a titleµ
    • the image on top is meaningful content in my opinion, so it should be in the HTML with a proper alt text instead of in CSS

    CSS

    • no particular comment here, though you may want to look into CSS custom properties (or variables as they are often called as well) to have a centralized place to edit those instead of having to edit them all over your code
  • rawan6602•80
    @rawan6602
    Submitted almost 2 years ago

    Results Summary Component

    #vite#fetch
    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    Your solution is looking good visually! There are some few improvements to be made though.

    HTML/accessibility

    • you used a <main> element which is good, however you also used <div class="paragraph"> while there is a <p> element exactly for paragraph text
    • the results themselves (the elements with class="record" in your code should be a list

    CSS

    • use min-height instead of height to ensure overflow issues are not caused when content is expanding
    • try working with em/rem instead of px
    Marked as helpful
  • P
    gokhan-guneri•30
    @gokhan-guneri
    Submitted almost 2 years ago

    Order summary component - card project using CSS Flexbox

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    almost looking exactly like the design, so that's very good

    few improvements can be made though

    HTML/accessibility

    • There's no landmark being used. Yes you used a <section> however, that doesn't correspond with a landmark role.
    • You have a lot of <div> wrapper elements which are (mostly) unnecessary

    CSS

    • there's a breakpoint for the smaller screen sizes but that one also has a minimum
    • you'll be better off coding things mobile-first instead of desktop-first (which i feel you're doing now)
    • a lot of px-based values, which are totally unresponsive
    • you should use min-height as opposed to height so elements get room to expand when needed instead of causing issues with overflow
  • Uvejs•370
    @Uvejsii
    Submitted almost 2 years ago

    Single price grid component

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    like you said, it's not perfect yet, my suggestions to you

    Design

    • Have a look at the colors in the style_guide.md from the starter files, the ones you use, feel a bit darker on screen
    • the 2 sections at the bottom are not equally wide in your solution

    HTML

    • you're missing a landmark
    • you're missing an <h1>, remember headings should be in order and never skip a level

    CSS

    • there's a lot being done with px values, try to replace them with em or rem for better accessibility
    • I feel you have some rules duplicated in your code. Didn't find a particular example, but I saw it passing by
    Marked as helpful
  • Mygaverse•150
    @Mygaverse
    Submitted almost 2 years ago

    Results Summary Component Solution

    #bootstrap
    3
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    The visual is looking good. There are some improvements available on the code part though

    HTML

    • the headings are not hidden
    • headings and their levels should be in order and still make sense (imagine stripping out all the other content, does it look like a sensible table of contents?)
    • there should only be 1 <h1>
    • you have a <div class="score-list"> with <div class="list-item">, which is completely insemantic. Use a <ul> with <li> for this
    • the <button> does not have a type attribute

    CSS

    • you've included bootstrap, but i don't really see it being used (and it's making things harder to adjust)
    • it's not responsive (not down to 375px at least, like in the challenge requirements)
    • i've got a feeling that a lot of styling is already in the HTML which made it more complex than it should be, keeping your CSS smaller (which i don't necessarily think is a good thing either)

    P.S. the border around the left column is coming from the border property in your .card selector (probably coming from bootstrap)

  • Fernanda P•30
    @Ferperezm28
    Submitted almost 2 years ago

    Product preview page built with html and css, with responsive design.

    #accessibility#styled-components
    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    your solution is not responsive... it's adapting to the width yes, but it still uses fixed sizing

    other than that you're including both the mobile and desktop image at once (and hiding it via CSS) while you should use the <picture> element to do that (and save bandwidth by only downloading 1 image asset)

    you used an <h3> but you lack an <h1> and an <h2>, so your headings are out of order/incomplete

  • Kaushik Verma•230
    @kaushik-2318
    Submitted almost 2 years ago

    NFT Card Component

    #foundation
    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    I hate to break it to you but

    this only looks like a very pale resemblance of the design

    1. colors are off
    2. sizing is incorrect

    the code feels generated

    1. HTML is absolutely not semantic
    2. inline styles are being used
    3. positioning relatively WILL break if you make any change to contents
    Marked as helpful
  • Arthur Nespoulous•240
    @anespoul34
    Submitted almost 2 years ago

    Component using HTML/CSS and Figma

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    Your solution is looking good visually, there are some improvements that can be made though.

    HTML

    • I feel you're using the heading levels wrong. If you'd write them out in a table of contents like this 1. <h1> / 1.1. <h2> / 1.1.1. <h3> it doesn't really make sense
    • The <button> is missing a type
    • The content in the Why us section feels like a list of links to me, so I'm wondering why you marked it up as a <p> with <br>

    CSS

    • no need to make the button fixed size in both width and height using px
    • the code within the media query for your body is not needed in a media query, it should be the default (and making sure that the mobile view is vertically centered as well)
    • a lot of the properties don't affect anything in particular, so you could easily save a few lines of code here and there (making it easier to change afterwards when necessary)
    Marked as helpful
  • Hüsrev•60
    @hsrvms
    Submitted almost 2 years ago

    Interactive rating component

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    the solution is almost looking like the design, yet there are some serious accessibility improvements to be made.

    • you still have a lot of px values for width (and even height, which would be much better as min-height) so it isn't responsive in any way
    • there is no semantic HTML being used (e.g. <main>)
    • the rating is chosen from <li> instead of using radio-buttons in a <form>
    • heading levels are not being used consistently (imagine them like the input for a table of contents)
    Marked as helpful
  • eslamwaleed1•20
    @eslamwaleed1
    Submitted almost 2 years ago

    HTML - CSS

    #accessibility
    2
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    you may have completed the desktop design, but it is not responsive. I can't see the mobile view of this.

    other than that, you have used absolute positioning for everything (with pixels) that is definitely not how layouting works nowadays. maybe you can try learning some things about flexbox and/or CSS grid to make a new attempt at this challenge.

    your solution is tagged with #accessibility yet you still have <div class="button"> with an svg (for the icon) which is not hidden from assistive tech (as it should be since it's only decorative), and a paragraph for the text, but no <button> element is used...

    Marked as helpful
  • Shohanojjaman Emon•90
    @Shohanojjaman
    Submitted almost 2 years ago

    Product preview card component

    1
    Thomas Hertog•805
    @thomashertog
    Posted almost 2 years ago

    Visually very similar to the design so kudos for that.

    It has some improvements that can be made though

    • You used an <h1> for the name of the product and an <h4> for the product type perfume. This is not how headings work (imagine reading a book and you have a table of contents going from 1. to 1.1.1.1. but the 1.1. and the 1.1.1. are missing). Don't use headings for styling, do that in your CSS
    • The product image is meaningful content so it should be in the HTML (not added as a background-image)
    • The icon on the button is purely decorative so it should be added via CSS (with the use of pseudo elements) or hidden from assistive technology
    • Using absolute positioning for the icon in the button feels really weird, though can be fixed with along with the previous one
    • The button does not have a type attribute (type=button will do)
    • There's a typo in the name of your dark-cyan color (may seem small, but typo's will eventually haunt you later on when trying to reuse variables), also casing is inconsistent
    • Font-size (as well as padding/margin) should be in em/rem
    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

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