Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
45
Comments
34

Julien Gilbert

@juliengDev940 points

Front-end specialist with expertise in TypeScript and React. I'm seeking remote collaborations with people. Let’s connect and build together — feel free to add me on GitHub (link icon next to my profil picture)

I’m currently learning...

Node.js

Latest solutions

  • WEBSITE - Room Homepage

    #tailwind-css#vite

    Julien Gilbert•940
    Submitted 6 days ago

    feel free to comment and bookmark the solution


    0 comments
  • LANDING PAGE - Loopstudios

    #astro#tailwind-css

    Julien Gilbert•940
    Submitted 8 days ago

    feel free to comment


    1 comment
  • COMPONENT - Bento grid

    #vite#tailwind-css

    Julien Gilbert•940
    Submitted 11 days ago

    feel free to comment


    0 comments
  • WEBSITE - Art gallery

    #vite#tailwind-css

    Julien Gilbert•940
    Submitted 12 days ago

    feel free to comment


    0 comments
  • LANDING PAGE - Agency

    #vite#tailwind-css

    Julien Gilbert•940
    Submitted 12 days ago

    feel free to comment


    0 comments
  • WEB APP - Age calculator

    #tailwind-css#typescript#vite#accessibility

    Julien Gilbert•940
    Submitted 13 days ago

    feel free to comment


    2 comments
View more solutions

Latest comments

  • Emma•60
    @emmalanza
    Submitted 2 months ago

    Room Homepage Solution with Astro

    #astro#tailwind-css
    1
    Julien Gilbert•940
    @juliengDev
    Posted 1 day ago

    Hi Emma :)

    First off, I want to say you've done an excellent job implementing this responsive homepage! Your mobile-first approach is clear, and the slider functionality works beautifully.

    Helpful Suggestions for Growth

    Image Handling (Great Opportunity to Level Up!) You're already doing well with the image imports, but since you're using Astro, there's a really powerful feature you might love! Astro has an amazing Image API that can automatically optimize your images for better performance.

    Instead of:

    import hero1M from "../assets/images/mobile-image-hero-1.jpg";

    You could use

    import { Image } from 'astro:assets'; import hero1M from "../assets/images/mobile-image-hero-1.jpg";

    <Image src={hero1M} alt="Hero image" widths={[400, 800, 1200]} formats={['avif', 'webp', 'jpeg']} />

    This would:

    Automatically generate optimized versions

    Serve modern formats like WebP

    Create responsive sizes

    All while keeping your code just as clean!

    For projects with many images, this can make a huge performance difference. The Astro docs have great examples to help you get started with this.

    Tailwind CSS I noticed you've got some duplicate styles between the mobile and desktop navigation links. This is completely understandable - we all do this when we're focusing on getting the layout right first!

    Here's a suggestion that might save you some time:

    // Define common link styles once const linkStyles = "font-semibold hover:underline underline-offset-6";

    // Then use them consistently <a href="#home" class={text-white ${linkStyles}}>home</a> <a href="#home" class={text-black ${linkStyles}}>home</a>

    Or even better in Astro, you could create a reusable NavLink component that handles all the common styles. This would make your code:

    Easier to maintain

    More consistent

    Simpler to update globally

    You're already doing great with Tailwind - this would just take your skills to the next level!

    I hope you found these suggestions useful for improving your project and future Frontend Mentor challenges. Keep Up the Excellent Work!

  • Lance Liang•210
    @LanceLiang2011
    Submitted about 2 years ago

    Loopstudio Landing Page built with Astro.build and Tailwind.css

    #astro#tailwind-css
    1
    Julien Gilbert•940
    @juliengDev
    Posted 8 days ago

    Nice job with the animations — they add a really smooth touch! Just a few things to watch out for on mobile:

    • The menu is not taking up the entire viewport height, which doesn’t match the original design.
    • On smaller screens, the “See All” link stretches across the full width, rather than staying compact as intended.
    • For the navigation links, the hover underline effect is working, but it shifts slightly upward — it creates a small misalignment.

    Other than that, congrats on the project — great work overall!

  • AqsaRani22•230
    @AqsaRani22
    Submitted 4 months ago
    What are you most proud of, and what would you do differently next time?

    good

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

    all feedback is good

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

    all feedback is good

    NFT preview card component

    1
    Julien Gilbert•940
    @juliengDev
    Posted 11 days ago

    Hi @AqsaRani22 :)

    It looks like you updated the wrong project here, I can't see the NFT preview card.

    You might check again and edit the project I think.

    Have a good day

  • P
    Antonio•340
    @tonyiboy
    Submitted about 1 month ago

    Pod request access landing page with tailwind

    1
    Julien Gilbert•940
    @juliengDev
    Posted 20 days ago

    Hi @tonyiboy,

    Great job overall on the project — I can see the effort you put into handling the responsive layout, especially with the different background images, which isn’t always easy to manage. Well done!

    Just a couple of points I noticed during testing: • On the mobile version, the error visual feedback on the email input is broken: the red border seems to wrap both the input and the submit button, instead of just the input field. • Still on mobile, while the background image scales responsively as expected, the white background on the body makes the overall visual feel a bit off in terms of UI — maybe a slight color adjustment or blend could help unify the design.

    Again, congrats — the responsive handling and structure are solid. Keep up the great work!

    Best, Julien

  • Maynor López•230
    @mlopezl
    Submitted 23 days ago
    What are you most proud of, and what would you do differently next time?

    I’m proud of completing the challenge and making it look close to the original design.

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

    No big challenges this time. Feeling more confident with JavaScript, but always open to tips on how to get better!

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

    Always open to feedback and suggestions!

    My version of ping single column page using HTML CSS and JS

    #bem
    1
    Julien Gilbert•940
    @juliengDev
    Posted 21 days ago

    Hi @mlopezl :),

    Here are a few suggestions to improve your code and make it more robust and secure:

    ⸻

    ✅ 1. Use Regex for Input Validation

    Currently, the code only checks if the field is empty. For stronger control and front-end protection, it’s better to validate the format of the email using a regular expression, like this:

    const emailRegex = /^[^\s@]+@[^\s@]+.[^\s@]+$/; if (!emailRegex.test(emailInput.value.trim())) { // Show error }

    This ensures users don’t submit malformed or invalid email addresses.

    ⸻

    ✅ 2. Avoid Inline Styling in JavaScript

    Instead of doing this:

    emailInput.style.margin = '0px';

    Prefer toggling a class, like:

    emailInput.classList.add('no-margin');

    This separates concerns between logic and presentation and makes your code easier to maintain.

    ⸻

    ✅ 3. Improve Error Handling Structure

    Instead of toggling hard-coded classes like hide, consider using a consistent naming convention like:

    .is-invalid { border-color: red; }

    .error-text { display: none; }

    .error-text.active { display: block; }

    Then in your JS, toggle .active based on validation.

    ⸻

    ✅ 4. Avoid Manual form.submit() After preventDefault()

    If you’re using event.preventDefault(), it’s better to handle submission with JS entirely (e.g., with fetch() or showing a confirmation message). Manually calling form.submit() can lead to unintended behavior.

    ⸻

    🙌 Keep It Up!

    You’re on the right path! Front-end validation is an essential part of user experience and security. Keep exploring best practices and refining your code — every improvement matters and builds your confidence as a developer.

    You’re doing great — keep pushing forward! 🚀

    Marked as helpful
  • Elmar Chavez•520
    @CodingWithJiro
    Submitted 26 days ago
    What are you most proud of, and what would you do differently next time?

    I'm proud that I can create, document, and deploy simple projects faster now.

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

    Of course, coding from only a JPG design image is always a challenge but I'm getting the hang of it now and learned some tricks with PerfectPixel.

    One challenge I did not expect was with the shadow of the card. I was not sure if I was to use multiple box-shadow or use outline with outline-offset but I think I managed to pull it off with just shadows (I think).

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

    Up until this point I've been using BEM as my style of coding for CSS. What I'm not sure is if my code is really classified as pure BEM.

    I read a week ago that some developers use BEM but is not fully loyal to it. They adapted the style but not applied in some elements.

    I want to know if mine is good enough or close to being called BEM-ish. If it is not, I want to know how I can upgrade my coding style even more.

    Best practices is always welcome!

    HTML, CSS, Git, GitHub, Netlify, PerfectPixel, Lighthouse

    #accessibility#bem#lighthouse
    3
    Julien Gilbert•940
    @juliengDev
    Posted 25 days ago

    Great job on your project! The semantics are really well respected and you’ve done a good job considering accessibility. However, I noticed an issue with the behavior of the active state. If you take a closer look at the prototype in the mockup, the title and the creator’s name are supposed to change style on mouse enter over the card image. This behavior doesn’t seem to be implemented correctly in your solution. Aside from that, everything else is very solid—congratulations!

View more comments

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