@lukakavtarra
Submitted
Check my solution. I'm still learning bases of front-end I would love to hear some advices :))
Looking to hire developers?
@DrKlonk
@lukakavtarra
Submitted
Check my solution. I'm still learning bases of front-end I would love to hear some advices :))
@DrKlonk
Posted
Hi Luka, nice to see you on the platform!
Some (unordered) things that stick out to me:
The centering doesn't really work on smaller screens, as Simone pointed out. Use margin auto, flexbox or grid for this to keep it nice and responsive.
It seems like the responsive.css is the same as style.css. No need to repeat everything in a media query, just the things that are changing.
The border radius of the card seems a bit off, I think it can be just one value.
Using rem instead of px is usually preferred, because it increases responsiveness and thereby accessibility.
Naming classes is hard, but can definitely be improved here. Try to come up with something that describes the content of the element. "Annual-plan" is a decent name in that sense, "div-button" is not. You might want to call that "button-group". Also "rand-text" suggests the text to be random, which it is not.
Naming things is super important, even more so when collaborating with others.
The annual-plan class can be centered more cleanly by removing max-width
and left
properties and introducing margin: 0 2rem
or something similar
Marked as helpful
This is my first project and I would need a feedback because I don't even know what to ask. I'm learning how to code by myself from 2 months.
What mistakes did I made? What could I have done better? What should I be careful about in such design? How would you rate my code from 1 to 10? ;)
Thank you for your help and support :D
@DrKlonk
Posted
Hi Maja,
I agree with the others that CSS Flexbox is a great way to accomplish flexible layouts. I'd like to add Flexbox Froggy as an additional resource to practice with it!
Happy coding!
Cheers, Joran
@AgataLiberska
Submitted
@DrKlonk
Posted
Hi Agata,
Nice solution! Good to read (in your readme) that using a framework would do nicely here, especially with the reusable components. I fully agree! It is well worth picking up one of them.
I especially like the visually hidden headers on sections for our visually impaired visitors.
Well done and happy coding! Cheers, Joran
@lanechanger
Submitted
4/5/2021 update:
4/4/2021: This was a fun one where I made liberal use of flex containers as a way of dynamically spacing out the components.
Like the ratings section for example. Initially I was practicing a for loop on it and made it such that margin-left = 16px * (x - 1) where x is each rating component. So the first one would have margin-left of 0, the 2nd would have 16px, the 3rd would have 32px.
Which works better for future proofing if additional components were to be added. But I decided to make them flex and assume that only 3 items are used, so the top one got justify-content of start, the 2nd one center, and the 3rd one end with the extra space being shrunk dynamically as the viewport shrunk. And I really liked how that turned out along with how the other flex containers shrink. It was mostly done through flex: 0 1 <basis> which prevented them from growing, but allowed them to shrink once the viewport got smaller than their basis.
@DrKlonk
Posted
Hi Jeremy,
Nice job overall! Some things I've noticed:
The third rating box should be: justify-content: flex-end
(instead of end
).
The stars wrap from 640-653 pixels wide for the middle rating, that looks a bit weird. Also, from 792 to 426 pixels wide the stars seem to move upon resizing. They don't align properly with the other ratings either.
All this is because the rating__stars resizes because of the flex-shrink, but the stars have a fixed width. I think it is better to remove the flex-shrink from this class.
Btw, flex: 0 1 auto
is the default, so you don't even have to set the growth and shrink explicitly!
Cheers, Joran
@pikapikamart
Submitted
This challenge was really fun. My first draft was full of animation but I couldn't pull that one formula in terms of checking boundary so I had to remove it. Limited myself to using only few html elements. So I need to be very careful in my js since i'm just reusing those elements.
Anyway, have a look and drop your comments in my work^^. I will also create the spock version
@DrKlonk
Posted
Hi Raymart!
Reaaaaaally well done on this one. Looks good, works good. A nice example for everyone to follow.
Particularly, I like the little animation on the 'rules' text and the fact that you don't get points reducted when you lose.
A minor thing I found in the scss: I think technically the flex classes like flex--j-between
are utility classes and not variables. I'd expect a _variables.scss to contain only scss variables. But maybe that's just me. You could check out the 7-1 pattern to structure SCSS. I really like it.
Just one minor thing I found in the code: in displayResult() the winner
always gets set to playerChoice
, although I don't think it affects anything.
Again, very well done!
Cheers, Joran
@wisniewskiz
Submitted
I used parcel bundler to compile all of my sass into a distribution ready file.
I'm not sure if I went about the cleanest or easiest way to create the layout using grid and flexbox, but the end results are useable. If you see anyway that I could have wrote more concise code please let me know!
This is my first solution to submit and I am very exited to learn and grow with everybody here.
@DrKlonk
Posted
Hi Zach!
Nice job for your first challenge! Don't be misled by the word newbie for this one, it is quite tricky. The desktop version looks nice!
Main thing: responsiveness
I see some problems when I resize the screen to a mobile width, it kind of breaks. It works at 376px and lower, but everything in between is a bit wonky. If I resize the window, I get horizontal scrolling. And if I resize within devtools, at 775px for instance, the paragraph text size is too small because of the automatic resizing. On tablet sizes, the background image get pushed to the left, eventually going past the left side of hero__cta
and the screen.
I think these issues are caused by the grid that can't fit the screen.
Random other things
If you like, you can check out my solution for this challenge as well, it can at least help if you want to make the error messages.
Don't be discouraged by my comments, you already took a very good step to join the community. Just trying to help!
Keep on coding! You'll just get better and better.
Cheers, Joran
@DrKlonk
Posted
Hi Saurabh,
Decent work! The site resizes properly and I like that there is some feedback on clicking buttons (even though it is not that meaningful).
Some things to consider: Meta:
<head>
.cursor: pointer
on buttons.Design:
height
property to fix this.text-align: center
a paragraph of text. It makes it hard to read. Check the design here as well, it is different.<img>
is just floating there in between the main and the footer. You could make it the background of a before pseudo element of the footer, maybe that helps. Removing the width: 100%
also removes the whitespace, but the result might not be what you want.A lot of stuff! It's not all as important, but definitely enough room to improve.
Happy coding!
Cheers, Joran
@Vitor-Silva27
Submitted
@DrKlonk
Posted
Hi Vitor,
I like it! There are some minor things to improve, but overall it works nicely.
I somehow didn't even know that creating the <input>
inside of the <label>
element was a thing. Mozilla shows it as an alternative, so it seems like a completely valid option. I asked a question in Slack#best-practices as to what is the preferred method.
You can also toggle a class on an element in javascript with element.classList.toggle('.className'). I think that would lead to some cleaner code in your solution.
However, I think I prefer to handle the dark theme switch method described here. That saves adding classes to all items and writing those classes separately in the CSS.
In the smaller cards all the arrows are green and point upwards. Easy fix!
All in all, a great job!
Cheers, Joran
@Vbanety
Submitted
@DrKlonk
Posted
Hi Vinicius,
I like it a lot! The responsiveness is on point and it all looks nice.
Some minor details:
<p>
instead of <span>
.get-started
div could be removed. It also lacks padding when resizing (check 346px for instance)<picture>
tag is mainly used for multiple responsive images. I don't think it is needed here.Again, it may look like a lot, but they are all quite minor and the page works as it should.
Cheers, Joran
@seniorteck
Submitted
after spending a couple of days trying to style the body with background property. I finally figured I was styling it in the wrong way I think, so I created a div with an empty element for the background to make it work, I don't know if this is the best practice, I used HTML & CSS for the project, would have loved to use sass but I am still a beginner.
any thought on how I can improve better on my code. pls would love to hear it. thank you
@DrKlonk
Posted
Hi AbdulKareem,
I would also check out the accessibility issues in the generated report. Those are quite relevant.
Design wise, the biggest thing for me would be the font and the way the text is styled. Check out here how to add a font to your page.
The padding on the paragraph makes it off line with the heading, which looks strange. I'd just remove the padding.
Also, your background is a bit darker than the design, making for less contrast on the paragraph, which makes it a bit more difficult to read.
In the code you use px and em for sizes a lot, I think it's well worth looking into using rems for all your sizes. It allows you to resize basically your entire site by setting the font-size in a media query. Check out this article on px vs rem, or do some googling on it.
Cheers, Joran
@BeatiCode
Submitted
Please give feedback on my work. What can be improved?
@DrKlonk
Posted
Looks good overall!
In the share button I see some room for improvement.
It would be nice to have it disable if you click outside of it as well.
It is also a bit weird that on smaller screens it covers the name and date (but maybe that was in the design).
In the code it is not great to have it dependent on the color of the button. I would probably toggle a class (button.classList.toggle('active')) on the button on click and fix everything in the CSS based on if the button has that class or not.
You could select the icon-social element in CSS with the "~" selector I think.
Also, it looks like you are tyring to use BEM for naming classes, but it's not consistent. If title__content
is an element of the content block, it should be content__title
. After that you also use contact-user and userInfo, which are a bit ambiguous and use a different structure (hyphen and camelCase). Naming classes can definitely be tough, but can lead to much easier to read code. So it's well worth looking into! It's one of my own points of improvement as well.
Cheers, Joran
Marked as helpful
@MarcoCarpo
Submitted
Hi everyone, this is one of my first projects using React.js (still learning this). How does it look to you?
Also, does anyone have any idea how to remove the extra space above and below the text? (e.g. see the buttons, the text inside seems off-center due to these spaces) Is it possible to do this in Sass or do I need to apply changes directly to the font before importing it into the stylesheets? I mean, maybe I could implement a mixin that automatically sets the line-height based on the font-size. Or is this problem solved in another way? This is a issue that I often encounter and I still don't understand how to solve it. In any case, thanks for your attention!
@DrKlonk
Posted
Looks good to me!
What do you mean with the extra space below the text? Which text(s) do you mean?
I think the buttons look a bit off centre because of 1) the font-family and 2) the fact that these words have little letters going down of the baseline (like g, p, or y for instance), making it a bit more obvious. It's a bit harder to get annoyed with the pixels in "Python" than it is in "Frontend", in my opinion.
Here's my font-family proof: If you change the font to monospace, the clickable labels look fine.
Fix for the smaller labels: On the labels like "NEW!" you could just add some more padding to the top in the job__feat class. I don't see much problem with that, except when you decide to change the complete font family, in which case you'd need to adapt at most 2 lines of CSS. No biggy.
Minor improvement: I'd also add a good old cursor: pointer;
to the job__position
class.
Cheers, Joran
@naries
Submitted
Which areas do I need to improve in? Please I really need recommendations
@DrKlonk
Posted
Hi Mayokun, there are some other issues I found (after some url hacking) as well. Most of them easy fixes!
<button>
inside an <a>
tag, that is semantically incorrect. They can both be used to provide links to stuff. My default is <a>
for (external) links, <button>
for actions on the same page. So here, an anchor with styling to make it look like a button would suffice.The game works fine though! That's the most important. Good job.
Cheers, Joran
@naries
Submitted
Which areas do I need to improve in? Please I really need recommendations
@DrKlonk
Posted
You should remove the "/picked/scissors" from the live url. Now, this doesn't work out of the box.
@tssessy
Submitted
Had a lot of problems with the gradient linear background .. not easy to do it in css. Still don`t think is the best solution. Any help comments feedback is apreciated.
@DrKlonk
Posted
Hi Sebastian,
Here are some things I noticed:
A nicer way to fix this, in my opinion, would be to use the before and after pseudo element on the body to position the purple things. Check out the way @grace-snow did it here
On the use of CSS grid:
grid-template-columns: "4fr 5fr 3fr"; grid-template-areas: "l m r";
But in the end, I think CSS grid is a bit much.I think using a flebox with just the phone and the text elements in it would suffice for this challenge.
Also, try to use more semantic elements like <main>
and give your classes more meaningful names, for instance "introduction" instead of "text".
Keep on happy coding!
Cheers, Joran
@otmanezahhari
Submitted
If anybody would like to review my code and give me feedback that would be great!
Any other type of feedback is appreciated as well! Thank You!
@DrKlonk
Posted
Hi Otman,
I was browsing through the solutions for this challenge and went back a long time to see how others fixed it.
So this advice is a bit late, but better late than never.
<img>
tag, in the src attribute. That way, you can keep your html a bit cleaner.All in all, nice job! The responsiveness works well.
Cheers, Joran
@AgataLiberska
Submitted
Hi! I really struggled with svg images in this challenge and wasn't able to change the color to what it was in the design - change of fill
on svg path
didn't work, even when manually changed in the code. I think it's because of the color matrix in the file, but I couldn't find anything helpful in my search - either because I didn't find the right way to describe the problem or because I'm overcomplicating it :)
Either way, I'd be really grateful for any help on that :)
@DrKlonk
Posted
Hi Agata,
I "fixed" the SVG problem in my solution of this challenge. I put two svg filters inside the html so I can reference them in CSS. It is very ugly though and I did not find a way to put them in an external file and make it work. That would be an ideal solution.
I think you're right that changing the fill does not work when there is an feColorMatrix in play. So you have to change the filter to change the color, or change the SVG altogether and wrestle out the color matrix.
Cheers, Joran
@MilosSimic994
Submitted
Hello everyone, i yust upgraded this project. I have a question about the progress bar,
-What do you think about it and how would you do this?
-which is your method for styling range input
?
Thanks, any feedback is welcome :D
@DrKlonk
Posted
Hi Milo,
On a quick glance, this looks like an excellent opportunity to use the <meter>
element. I must say I've never used it, haha. I just know of the existence for a short time.
Cheers, Joran
@floustao
Submitted
@DrKlonk
Posted
Hi Flo,
Nice job! Everything seems to work fine. Disclaimer in advance: I've never used React. Here are the things I've noticed.
You said in Slack: "Apologies for slightly going around the requirements but I used React + styled-components." Remember there are no requirements on how to fix the website you are making. You are free to use any tool, framework or language you want!
The background seems a bit opaque. I didn't find where this happens, but it's just a bit lighter than the design.
Is there any way to import the svg into CardBackground by not copy pasting the whole thing in there? Now it's just a lot of unreadable svg data, which I think should not be a component of itself. Say, if you want to add something to the background, then this svg element really gets in the way of reading the other code.
You used object destructuring in the Card component, like so:
const { name, age, city } = characterInfo;
...
}```
But you can also do it in the parameter directly, like `function Card({name, age, city}, ...` This saves a line of code, but also makes it a slightly bit clearer where the parameters come from.
All in all, great job, and see you around!
Cheers,
Joran
@mbart13
Submitted
I struggled a lot with positioning and responsivness, but I think it turned out fine. If you think something could be improved or have any other suggestions, please let me know
@DrKlonk
Posted
Hi Michal,
It looks great! The responsiveness works fine and the positioning of the elements is where they should be. The code looks clean and maintainable as well!
The main thing I think is a bit iffy, is the dependance on the transition in the updateSlide method. You now need the transition (that is defined in CSS) to always play, which is caused by adding the class in the line above it. It seems a bit strange to add an event listener in a method like this. I think I'd rather see the effect working, regardless of the transition in CSS.
For instance, right now, setting the transition time to 0.0s breaks the change. I don't think that should happen. But maybe that's just me.
All in all, it does work as is and in the end, you did a really good job!
Cheers, Joran
@RayaneBengaoui
Submitted
Hello everyone ! 🙂
Here is my version of this challenge, any feedback/remark is appreciated ! I have a few questions:
The API is blocked by adblocker such as uBlock, is there a way to avoid it ?
I tried to hide the API key with the netlify GUI, but is there a simplest way to do it with Node.js for example ?
If the text returned is very long my boxes info-container__box
get pushed. How can I make sure that no matter the length of the text I receive, the text fit the box ? Or dynamically adjust the font-size ?
Have a nice day ☀️
@DrKlonk
Posted
Usually the way for me to hide an api key would be as an environment variable. You can get those in a Node server by installing the package dotenv, adding a .env file and accessing it in the server by using process.env.VARIABLE_NAME. More on it here.
Do not include it in git though, if you really want it hidden.
Btw, I didn't do this challenge yet and have never used Netlify, so I don't know if your way is even better.
@nderimsali096
Submitted
Responsive landing page with the help of media queries. I have used Html , Css and SCSS only . The app page is built for 1440px Desktop and 375px Mobile. Constructive criticism is very welcomed in every area of the project. Thank you!!
@DrKlonk
Posted
I agree with Agatha that resizing does not really work properly. I think you are combining flexbox and relative/absolute postitioning a bit liberally. There are also a lot of HTML issues you can fix first.
The main thing design-wise is the different font. You can easily use fonts by importing them in HTML or CSS. It would make a big improvement with little work. Check out this link for how to do it: https://developers.google.com/fonts/docs/getting_started
Good luck and have fun!
Cheers, Joran
@DrKlonk
Submitted
I am mainly wondering if the way I did the background-images is the way to go.
I am trying to get better at naming classes, using the right HTML elements and accessibility, so it would be nice to get some pointers on that.
Any other comments are, of course, very welcome!
@DrKlonk
Posted
Thanks both! I made the updates and changes. Ready for shipping now ;)
@Voiced-debug
Submitted
In the active state, we are required to enable an error message when a wrong input is entered, this i didnt get. Any idea on how to go about it?
@DrKlonk
Posted
Yes, you can use the pseudo-class "invalid" for that.
Like so: https://codepen.io/drklonk/pen/xxRavNG
If you need you can also combine it with the active state (which is also a pseudo-class).
Cheers! Joran