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

  • Zup 1,330

    @xup60521

    Submitted

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

    drop down animation GSAP conveniently provides a way to animate the height change, which is not trivial when it comes to vanilla js & css keyframes.

    if (mobileNavCompanyAccordian.style.height === "1.5rem") {
            arrowImg.src = ArrowUpImg
            gsap.to(mobileNavCompanyAccordian, {height: "auto", duration: 0.5, ease: "power2.out"})
        } else {
            arrowImg.src = ArrowDownImg
            gsap.to(mobileNavCompanyAccordian, {height: "1.5rem", duration: 0.5, ease: "power2.out"})
    
        }
    

    @kabir-afk

    Posted

    Hey !! Congrats on clearing the challenge! Great page. I had some concerns regarding your code and thought I should address them.

    • Reducing verbosity : Instead of making separate functions for opening and closing each accordion element , you could have declared classes inside your custom CSS and then later used classlist.toggle to add/remove them depending on the state of your variable, which you could have changed when user clicks the particular element. It reduces verbosity and makes for an efficient code. Then, based on the conditions of your state, you could have integrated gsap accordingly.

    • Breakpoint too high : You could have settled for a lower breakpoint , somewhere around 748px , instead of 1024px. I mean, it still looks good, but when you open the sidebar menu, it feels too wide. You can ignore this point if you wish. I guess it's subjective.

    Everything else feels top notch . . .hope this helps you. Cheers !! 🥂

    1
  • P

    @kaamiik

    Submitted

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

    Start to using more and more preprocessors. Please give me feedbacks about BEM and SASS styling.

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

    • I've used a lot absolute positioning on this challenge. It was tough for me.
    • There is some difference on mobile and desktop view when you click the share icon. This was really challenging.

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

    • Is my css on main image is true. It is not as same as the design.
    • Is my html structure true? how can I improve it?
    • For mobile view when I click the share icon I've used visually hidden class to disappear a default div and appear another div. For desktop I've used absolute positioning to show the div at the top of the share icon. Do you think It is a right approach?
    • Any comments on my JS?
    • Is there any accessibility classes that I should use here? I mean aria attributes.

    @kabir-afk

    Posted

    Uploaded , you can check my soln out through my profile...feeel free to ask any question that comes to your mind , or any advice as well , I'll clear them if I can

    0
  • @kabir-afk

    Posted

    Heyyy, its been a while , you wrote some amazing css btw , like it flew over my head since I havent used those practices in a while, altho I did want to comment on your JS.

    1. Font-family inside input tags : Your input.target.value dont seem to inherit the font-family as rest of the elements making it look awkward wrt rest of the page...you must've forgotten , nvm , a simple font-family:inherit would have accounted for that easily.

    2.User Form Validation: Nothing happens when we click on Send Message btn , like you could have added a success page as an indicator to make sure the message has been submitted . Even if it is not given in the design , some form of indication would have been nice . . . would have made for a good UX. You could have simply reset the state values and added a toast notification with a message Message Sent when the user submits the form , instead of hanging user in the middle.

    I AM SURE YOU ARE AWARE OF THINGS I AM GOING TO SAY DOWN BELOW,BUT IF NOT THEN . . .

    3. Validation Logic : I am not really good in regex , but I'd still recommend that if you find it difficult to write valid regex , just copy it from the net , its ABSOLUTELY FINE. Because there will always be cases you didn't account for/ escaped your mind at the moment. For example in

    function validateName(name) {
        return name.length > 0;
    }
    

    you are just checking the length of name , when you should have accounted for other cases as well like the user's name doesn't contain numbers/special characters . . . or simply saying it contains only letters. Something like /[a-zA-Z]/ would have been better . . . this is not the exact regex , but I hope that you get my point .Also it's not like these things came in my mind when I first did them , but the exp I gained after googling what a valid name/email regex should look like allowed me to use it later in the future as well . . .google/GPT the regex when you can.

    function validateEmail(email) {
        const re = /\S+@\S+\.\S+/;
        return re.test(email);
    }
    

    Here as well , you are not checking whether the extension is correct or not, so something like [email protected] turns out to be a valid email address. For extension you should have limited to 2-3 characters.

    Disclaimer: This might not be right , since I have forgotten as well

    Something like : /\S+@\S+\.\S+{2,3}/ would have been appropriate . . .again google it

    Why should we do all this? Because it allows us to validate user in a better way and also makes for a good user experience. Everything else was great , again great CSS, seemed reusable , also you avoided use of unnecessary declaration of classNames . . . . cheers 🥂🥂

    1
  • P

    @kaamiik

    Submitted

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

    Start to using more and more preprocessors. Please give me feedbacks about BEM and SASS styling.

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

    • I've used a lot absolute positioning on this challenge. It was tough for me.
    • There is some difference on mobile and desktop view when you click the share icon. This was really challenging.

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

    • Is my css on main image is true. It is not as same as the design.
    • Is my html structure true? how can I improve it?
    • For mobile view when I click the share icon I've used visually hidden class to disappear a default div and appear another div. For desktop I've used absolute positioning to show the div at the top of the share icon. Do you think It is a right approach?
    • Any comments on my JS?
    • Is there any accessibility classes that I should use here? I mean aria attributes.

    @kabir-afk

    Posted

    hey , I came up across your query on discord . . . the challenge only required of you to use javascript to toggle share button, but you went on to over-engineer it by adding and removing classes that could have been easily executed with css..there is nothing wrong with using js . but why make it complicated when it can be achieved with css alone...read up on responsive layout. You should have used media queries differently, like using flex-diection:row in desktop layout and flex-diection:column in mobile layout.So to answer your question For mobile view when I click the share icon I've used visually hidden class to disappear a default div and appear another div. For desktop I've used absolute positioning to show the div at the top of the share icon. Do you think It is a right approach? NO it wasn't the right approach . Your BEM nomeclature was great as well as the way you wrote scss was also top notch , but still felt overdone at some places....the hover states have not been taken care of as well.

    0
  • @kabir-afk

    Posted

    Hey man , great site , but there seems to be an issue with cart functionality., the state isn't resetting itself whenever the user is adding or removing something from the cart .. I don't know anything about Vue otherwise I'd have been able to help . . . hope you look into this issue

    0
  • @Salt-n-vinegar

    Submitted

    I didn't anticipate there being so many potential hiccups when entering names and numbers e.g. character limits, old dates, spacing for the card number. Still, it was a good test of patience and perseverance.

    @kabir-afk

    Posted

    Hey, can't really help with testing the site since it doesn't open at first place ,but you can try changing the repo name to something diff since interactive-card-details in the URL does make it look like a phishing site....rename it to something diff like details-form and then maybe we can work on your so called potential hiccups

    0
  • Better5afe 850

    @better5afe

    Submitted

    Hi there!

    This project took me a little bit longer than I expected, the autumn weather definitely does not help with my coding motivation :D

    To summarize, the users are able to:

    • Add and remove items from the cart.
    • Update quantity of the cart items.
    • View the cart's content.
    • Open a modal gallery carousel by clicking on the large product image and interact with it.
    • Switch the large product image by clicking on the small thumbnail image.
    • Interact with mobile gallery by tapping the arrow buttons or swiping right or left.
    • View the optimal layout for the site depending on their device's screen size.
    • See hover states for all interactive elements on the page.

    In addition to this:

    • The cart is stored within local storage, so it's fetched from there as soon as the page reloads.
    • Users can swipe between slides on mobile devices - I used React Swipeable library to implement this feature.

    As always, I'll be grateful for any feedback.

    Thanks & Happy Coding! 🎃

    @kabir-afk

    Posted

    Was working on the same challenge , would be helpful to compare our codes when I'm done

    1
  • @FLuffy-teddy

    Submitted

    When working on a project and you don't have adesign file to work with just an image, what is the best way to match the design, especially with media queries? Just eyeball it?

    @kabir-afk

    Posted

    Well the design images provided to us have a desktop resolution of 1440 x 900, height can vary in some designs but majority of the times it is somewhere around 800 and 900 . . . in order to match the design and generate a pixel perfect screenshot, you can check out this article here. It'll give you a step-by-step guide on how to achieve design accurate web page.

    But that's just the first part . . . in order to achieve pixel perfection , you'll need to get the dimensions of your components right as well. Mere eyeballing isn't gonna get you anywhere. You can check the dimensions in your design using photoshop and reassure those dimensions in your webpage either by inspecting the element or using extensions like Meausre It. Since we have to make our sites responsive , we obviously need to use relative units , and inspecting the element again and again only slows us down , so I prefer using the extension . This'll help you be more accurate . . . hope I was able to help , keep grinding!! 💪💪

    0
  • @tee4tao

    Submitted

    For the links in the nav-bar, according to the original design, anytime one hover over each link it displays a border at the bottom of the link. Now my question is how can one make such a border have some spacing at the bottom of the element (as in, it looks as if there is a margin(some spaces) between the link element and the border at its bottom)

    @kabir-afk

    Posted

    hey, not much fluent in tailwind CSS, but this might help

    <li className="link capitalize text-Dark-grayish-blue text-lg border-b-4 border-transparent  hover:border-blue-500">
         <a href="#">collections</a>
    </li>
    

    what this'll do is add blue border in the bottom of link when hovered on... you can change it to whatever the design requires it to be....with some py and transition it'll look clean and smooth . . . hope I was able to help . . .keep the grind !! 💪💪

    Marked as helpful

    0
  • Paula 60

    @thedoodlebakery

    Submitted

    This project definitely took much more time than I expected. I had to do a lot of digging and watching videos about DOM manipulation. I used a lot of MDN to get me through this project. All in all, I feel good about the way it turned out. There was just one problem that I could not fix. When you have two buttons that have .active in their class list, I couldn't figure out a way to detect it and make sure it did not happen. If the user presses two ratings, the form will only submit the second rating as their final rating. If the user decides to click the rating again, it will deactivate due to removing the class. Is there a way to detect within in such a situation, the length and make sure that user doesn't highlight two rating? Is there a cleaner way that I could have organized my JS or CSS code?

    @kabir-afk

    Posted

    Hey , I saw your code and there were some issue that I'd like to address . . .

    Unnecessary JS . . .

    for (li of btns){
        li.addEventListener("click", function(){
            if (this.classList.contains('inactive')){
                this.classList.remove('inactive');
            } else if (this.classList.contains('active')){
                this.classList.remove('active');
                this.classList.add('inactive');
            } else {
                this.classList.add('active');
            }
        });
    }
    

    The reason why user was able to select multiple buttons was the unnecessary JS that was working alongside your CSS. You had already declared hover,active, target states for your buttons in CSS which were then being overridden by JS . . .by removing this your btns would work properly and you won't also need to declare the .active and .inactive classes as well !

    The HTML at work . . .

        <li class="rate" onclick="pickRating(value)" id="rating1" value="1">1</li>
        <li class="rate" onclick="pickRating(value)" id="rating2" value="2">2</li> 
        <li class="rate" onclick="pickRating(value)" id="rating3" value="3">3</li>
        <li class="rate" onclick="pickRating(value)" id="rating4" value="4">4</li>
        <li class="rate" onclick="pickRating(value)" id="rating5" value="5">5</li>
    

    You can't use value attribute with something that is not an input element . . . a better pick would have been to do it something like . . .

        <li><input type="button" class="rate" onclick="pickRating(value)" id="rating1" value="1"></input></li>
        <li><input type="button" class="rate" onclick="pickRating(value)" id="rating2" value="2"></input></li> 
        <li><input type="button" class="rate" onclick="pickRating(value)" id="rating3" value="3"></input></li>
        <li><input type="button" class="rate" onclick="pickRating(value)" id="rating4" value="4"></input></li>
        <li><input type="button" class="rate" onclick="pickRating(value)" id="rating5" value="5"></input></li>
    

    By using <input type="button"> or button , allows you to select one option at a time , you see this would have made your code a lot easier and would have also allowed you to skip the unnecessary JS I mentioned earlier...also in terms of accessibility this would have been a better approach since the user would have known that he/she is dealing with form buttons and not list items . . ., you can then later apply the required styling on buttons to make it more design accurate... hope I was able to help!! 🥂🥂

    Marked as helpful

    0
  • lrobb95 200

    @lrobb95

    Submitted

    So this one was pretty difficult despite not needing JavaScript. The trial and error was immense and yet I still couldn't quite nail it completely. :') This truly was a test of my HTML & CSS skills and cannot wait to improve on them more. I am happy that I was able to add some responsiveness, however it was not like how I wanted. My question for you guy's is:

    How can I get the gap issue between the phone and the paragraph to act properly?

    Also, I am not sure about how I can gain access to the icons for the "type a message" box and for the phone. Was there an update to this website where nobody gets those icons added to the files they download? I tried using iconfinder and fontawesome, however I do not have a pro account and even when I tried downloading the small versions of the free ones, they came full sized. I know I can add them via HTML, but that becomes cumbersome and I like trying to keep my HTML as short as possible. You know, unless I get into a nesting frenzy like this project. :'D

    I tried a lot of different things and I feel that the HTML nesting is pretty much entirely at fault in this project.

    Thank you very much for taking the time to look through my project and I look forward to getting as much feedback as I can get. It truly is appreciated!!! <3

    @kabir-afk

    Posted

    Hey good job on completing the challenge , in terms of responsiveness, it is ok , but there are still some issues that I'd like to address . . .

    Regarding Icons

    As this was an intermediate challenge , which had to be done using only HTML and CSS, the icons had to made that way as well . . . 😅😅

    Regarding paragraph and gap issue

    I'm not exactly sure of the gap issue you are mentioning , if you'll elaborate then I might be able to help further, but I noticed that your p-container needs a line-height as well as , you need to increase it's width for a more accurate design . . good job otherwise!! 👍👍

    Marked as helpful

    1
  • @kabir-afk

    Posted

    Hey, can you explain about your query a bit more so that it is easier for us to help. . . also it would be better if you use external CSS , makes for better readability.

    0