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

  • @ihatepineapple

    Submitted

    I solved this challenge using ReactJS and doing the state management via Hooks. I had to try few times before completing, and I might come back and refactor it at later stages. Points of Attention:

    • Drag and drop not mentioned / not implemented.
    • Small bug on dark mode toggle, it takes two clicks. I suspect it might be a lifecycle/ state issue.
    • Max viewport is 1444px, styles might be compromised on bigger screens (I need to find a better solution)

    Please check out and feel free to share any feedback points!

    TODO - App using ReactJS Hooks

    #bem#react#sass/scss

    2

    Shivam 520

    @shivjoshi1996

    Posted

    Hey there! Good job on this one.

    For the dark mode bug, I believe it is because the setState hook queues a render (and only changes it for the next render of the component), it doesn't update the state straight away, hence why you need to click the button twice.

    This might be confusing to read, so I encourage you to check out the new React docs, which helped me understand this too. The specific section where this is explained is https://beta.reactjs.org/learn/state-as-a-snapshot, but I would go through the whole tutorial.

    To fix it, you'll need to separate your logic of checking whether the theme is light or dark, to a useEffect() hook (https://reactjs.org/docs/hooks-effect.html) and check when the [darkmode] variable has been changed.

    something like:

    useEffect(() => { if (darkMode) { document.documentElement.setAttribute("data-theme", "dark"); } else if (!darkMode) { document.documentElement.setAttribute("data-theme", "light"); } }, [darkmode]);

    For the issue with the max viewport , I would remove the max width on the body, and add it to the main content container instead (with how wide you want the component to go), and give it a margin: 0 auto to ensure the content stays on the middle of the screen.

    Hope that helps! Reach out if anything is confusing.

    Cheers

    Marked as helpful

    0
  • @imparassharma

    Submitted

    It was great implementing this design. The only problem I faced is with the background color in the top-section of the body. It was overlapping on my slider-container. I tried z-index with relative positioning but didn't worked out. If anyone can help it would be very nice.

    Shivam 520

    @shivjoshi1996

    Posted

    Hey Paras,

    Great job on this. I regards to the background color, I believe there is an image that you should use for it rather than setting a color. It's in the image folder "bg-pattern.svg". If you add that to the body using background-image, set background-repeat: no-repeat and set the size to 100vw 50vh, I think that should work.

    I also noticed that when I clicked on the 25% off toggle it would increase the page views and cost per month x10. I think the correct prices should be listed in the README which you got when you downloaded the files, so if you want an extra challenge then take a look :)

    Marked as helpful

    0
  • @sai8charan

    Submitted

    I have added css file too not sure why in git css is not getting linked with html any suggestions and help would be great😄

    Shivam 520

    @shivjoshi1996

    Posted

    Hey Sai,

    it also looks like your link tag for the CSS is messing things up. Replace type="css/text" with type="text/css"

    0
  • @JamesTheLessFC

    Submitted

    So this project took me about 2.5 weeks to complete, spending several hours most days. For someone who is looking to get into the web development field, is that timeframe reasonable/acceptable?

    Another question I had is in regards to the images featured on the site. Basically what I'm doing is loading three versions of each image (mobile, tablet, desktop) into the page and then only showing the correct image, by using "display: none" on the others (I'm doing this using media queries.) Am I correct in assuming that the browser is loading each of the images, which in effect slows the load time? And if so, is there a better way to implement this? Maybe using javascript to find out the screen-width and loading the correct image based on that?

    I thought the biggest challenge with this project was figuring out how to set up a headless CMS and load data from there, something I've never tried before. I went with Sanity.io, which offers a lot of helpful documentation and allowed me to actually host the CMS on the site itself (at <live-domain>/admin). I got it to work fine, but I'm curious about other headless CMS examples which might work better?

    Finally, I'm using React's context hook to manage the state of my site's shopping cart/checkout process. I was tempted to use Redux but it felt unnecessary. Was this the right decision? There seems to be quite a lot of debate on this topic.

    This was a fun project and I learned a lot from it. Any other feedback is welcome and appreciated! Thanks.

    Shivam 520

    @shivjoshi1996

    Posted

    Hey @JamesTheLessFC, great job on this.

    To respond to a couple of your points:

    1. I've been a Project Manager for a few years working in Software Eng teams and in my experience, I think for someone who is a Junior F/E, 2 and a half weeks is reasonable for this kind of site considering you were working on it part-time. Obviously, if you had a solid 8-hours a day you might've got this done faster, and as you're still learning, the efficiency of how fast you write your code will only increase going forward. So I think in terms of how fast you're getting things done, you're on the right track.

    2. I can't give you a solid answer on the images in terms of best practices (since I'm also learning Sanity & NextJS) but I know Sanity has some special helpers for images (https://www.sanity.io/docs/presenting-images), and there is also a plugin for Sanity + Next specifically. Hopefully that points you in the right direction.

    3. From my personal experience Sanity is pretty great (It's the one I've also used the most while developing since it's the most straight forward IMO). For the content, Sanity would work fine. In a real-life situation, you'll probably be asked to hook the shop up to something like Shopify which can handle things like invoices, order tracking, etc. So while you'll still be able to use Sanity for the content (e.g. page content, product descriptions, images) I assume the actual product management will be handled in another system. That's way beyond the scope of this project though so don't worry too much about that! Some other headless CMS' I've used in my real-life role is Prismic (https://prismic.io/) and Contentful (https://www.contentful.com/) but these are mostly for static sites and not for an eCommerce store. I think if you try a couple of them out, the rest should be somewhat similar.

    4. From what I've read, the React Context API can be used for most cases rather than Redux which has known to be needlessly complex. For a relatively small project like this, I think Context is perfect.

    Great job overall!

    Marked as helpful

    0
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey Correa,

    Awesome job on this!

    I noticed that when you shrink the window down to tablet size, the time card layout breaks a little, with the background color of the header also expanding down to the bottom. (I tested this in Chrome).

    I think this is due to your grid, if you add align-items: center; to your <main> element, it should fix this issue. Though this might make your profile on the left-hand side shrink in height, but you can use height: 100% on the user div to fix this.

    I also noticed that your time cards have the background colour "bleed" to the edge on the bottom left and right of the cards. I had the same issue and it took me a while to fix, but I eventually ended up making three containers - one parent container for the overall card, one child container for the icon header, and one child container for the time information. This solved the issue, and you can see the code here: https://github.com/shivjoshi1996/time-tracking-dashboard-react/blob/master/src/components/TimeCard.js

    Marked as helpful

    0
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey there!

    Good job on this challenge!

    I noticed that the circle backgrounds were a little funny when resizing the screen. Using viewport units (vh, which is viewport height, and vw, which is viewport width) may be better. For example, if you replace what you currently have for background-postion, which background-position: right 50vw bottom 40vh, left 50vw top 50vh; it should look a little better.

    I also noticed that your profile card is not completely centred on the screen - this is because your grid container container does not include the footer. Moving the footer into the container div will centre the card. However, you may need to put a bit of padding-top to the footer so that the footer and the card have some space.

    Cheers! Shiv

    1
  • Pisca 55

    @hliosdja

    Submitted

    I'm having trouble with the svg background for mobile view, I tried doing it with media query but it ended up messing the web page so i removed it.

    My only question was, were there any other approach on how to do it on mobile view to look like the one provided on the design? or is it even good to apply those SVG background via CSS and not on the html? This is my first time using an SVG for making a web page and I'm also still a newbie as a frontend so i was a bit confused on how to do it.

    It's a real fun doing the challenge and I'm looking forward to the next one.

    Shivam 520

    @shivjoshi1996

    Posted

    Hey there!

    Awesome attempt on this challenge.

    For the SVG background, instead of using units like 100px, try and use units that are relative to the viewport (vh, which is the viewport height, and vw which is the viewport width.

    For example, if you replace what you currently have with background-position: right 50vw bottom 40vh, left 50vw top 50vh; , then the circles should look a little better on mobile and desktop, because they're moving depending on the size of the actual screen.

    You can then add a media query and tweak those units around so that it looks good on mobile and desktop, but you may not need to. Also, adding an SVG using CSS is perfectly fine (especially if it's just for decoration purposes and does not have any functional impact to the page).

    1
  • Shivam 520

    @shivjoshi1996

    Submitted

    Hey everyone!

    I've tried to use CSS Grid for this challenge. Mobile view was relatively easy, but I felt like I ran into more issues when updating the Grid rules for the desktop styling. I've used grid gap in certain places, where padding / margin may have been better.

    In particular, getting the cards at the bottom to look good in different widths & heights was one of the things I had issues with. I'm looking for any general suggestions to improve how I have used Grid. I think next time, I may use Grid for the general layout, and Flexbox for the specific sections.

    Thanks!

    Shivam 520

    @shivjoshi1996

    Posted

    Hey!

    Ah yes - I forgot about the h3 I added without a h2, thank you for catching that! Also good point on the divs, I think I added them just to "visualise" the structure a bit more clearly, next time I'll make sure to take note of any unnecessary divs.

    Thank you for the feedback on Grid - I added a "display:grid" to the body in order to center the main grid container, I tried a few other things but they didn't seem to work at wider breakpoints, and the grid would remain on the left-hand side. I'm sure there's a way to center the grid itself in a much easier way, I just couldn't figure it out.

    In terms of making each review a direct child of the main grid, are you suggesting that I should have had more columns & rows on the main grid? (i.e. a 12-column grid so that I can accurately place each of the staggered star reviews on the grid, for example). Just want to make sure I'm interpreting that correctly.

    I'll be sure to give grid template areas a shot next time!

    Thanks again for all of the feedback, really appreciate it.

    1
  • @vickymarz

    Submitted

    Does grid and flexbox offer the same thing or is grid more advanced than flexbox. What are the pros and cons of using grid

    Shivam 520

    @shivjoshi1996

    Posted

    Hey there,

    Grid and Flexbox can sometime be used for the same thing, so it can be a little confusing.

    Flexbox is typically used for layout out items in a single dimension (e.g. flex-direction: columns, OR row).

    Grid can help us do these things in two dimensions (columns AND rows), and has built-in features that can better help control the structure of two dimensional layouts.

    Here is an article explaining some of the differences further: https://css-tricks.com/quick-whats-the-difference-between-flexbox-and-grid/

    1
  • Akshay 60

    @akshaycrzy

    Submitted

    I've made many errors, neither able to handle the the width of the elements in desktop resolution nor in mobile resolution. Please help me out!

    Shivam 520

    @shivjoshi1996

    Posted

    Hey Akshay,

    Great job!

    If you are talking about controlling the width of the entire card, you can simply add a "max-width" on the .container class for each of the breakpoints. E.g. 700px for the desktop container class will not allow the card to go past the width of 700px, but will allow it go stretch up to that point.

    Thanks!

    0
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey there. I noticed that the background repeats on certain breakpoints. For both breakpoints, I would add "background-size: cover", and "background-repeat: no-repeat". :)

    1
  • Nicolas 115

    @Nicolaj123

    Submitted

    I would like a feedback on my code!! Please, everything you need to say, will be gratefully thanked!

    Shivam 520

    @shivjoshi1996

    Posted

    Hey there! I'd try and activate the mobile breakpoint a little sooner. If you go into your dev tools, you can see that on iphone 6, box four breaks the layout a little bit. Have a play around with flex-wrap: wrap on the mobile breakpoint to make the fourth box wrap around properly.

    1
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey there! Looks good overall, great job using flexbox. I'd just update some of the colours on the headings, and I'd try and increase the size of the elements on desktop as they currently look slightly smaller than the design. Other than that, good job!

    1
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey Stephen, I struggled with getting the box shadow completely accurate as well. Seems like you need more blur radius, plus a tweak in the darkness of the colour. Take a look at this site, it can help visualise what tweaks you have to make. https://www.cssmatic.com/box-shadow

    0
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey there! I took a look at the code and it looks really good. I don't have too much feedback, other than maybe incorporating semantic HTML 5 tags into your HTML e.g. <header>, <main> and <section>. Otherwise, really good use of bootstrap. Great job.

    0
  • alicia 35

    @amfosh

    Submitted

    I have very little experience with media styles/responsive apps. I would love to know how I could have changed my code to center the mobile h1 text and given more line height to the mobile p-tag text.

    Thanks so much!

    Shivam 520

    @shivjoshi1996

    Posted

    For the line height, I would simply change your current line height from rem to em, so it takes references the font-size of the p.

    To align the h1, I'd add a div around the h1, make it width 100%, and then add text-align centre to the div (though this is a rough guess, I'll try this out myself when I do tyhis challenge and then let you know) :)

    0
  • Shivam 520

    @shivjoshi1996

    Posted

    Hey there! Looks like you have a lot of repeating code for the cards. Instead of putting the same code inside each of the different card classes, you could just put it into the main card class. I'm still learning, but take a look at mine for an example: https://www.frontendmentor.io/solutions/mobilefirst-four-column-layout-using-flexbox-U8HTJvnK8

    This'll make your code more re-usable and easier to change :)

    I'd also try to centre the text and the cards. You can use text-align: centre for the text at the top. For the cards, take a look at how to centre using flexbox.

    0