Hi, I just finished the desktop version of the challenge, mobile is not available yet :D
My color format is not match with the design and I'm having difficulty in finding the matching color.
I also found that my text is not aligned center with the button.
I'd like to hear solution from others about the rating selection, mine seems unoptimized.
Hi Ganesh! Great work on this challenge. I think you haven't seen the style readme file on the downloaded folder where they provide font-family and color for the project.
Consider using only one h1 tag as the top-level-heading only. The h1 tag is the most important heading because it’s the highest level tag that shows what your specific page is about.
The presence of more than one H1 won’t necessarily confuse the search engine, but it could dilute the SEO power of a single H1.
responsiveness of the site is great
Add :focus pseudo class to interactive elements like anchors, buttons, etc. Use outline property to make your website more accessible to keyboard users. Focusable elements like anchor, buttons, or inputs they have applied default :focus pseudo class with outline property. These default styles are subtle and hardly visible tho. Furthermore, every browser has a slightly different default style for the outline, so you probably want to change the default style.
I am super new to javascript, in fact to the programming world. Please feel free to correct my code and advising me on how things can be done differently. You can also share tips on how to keep growing as a programmer.
Thank you all.
Actually tried to make the arrow to animate after client scroll. Will try later, to make it not a pseudo class content , so I could do that. But it was fun to work with such a sunny design.
Fantastic work on this challenge, Here are my few suggestion
You can add border-radius on the main element and make it overflow:hidden;. By that you can have the rounded edges in the card.
You should also make it responsive for smaller screens 📱.
Add :focus pseudo class to interactive elements like anchors, buttons etc. Use outline property to make your website more accessible to keyboard users. Focusable elements like anchor, buttons or inputs they have applied default :focus pseudo class with outline
Hello, Talha!👋
Fantastic work on your first challenge, Here are my few suggestions
When you are trying to apply transition property for display:none to display:flex, transition properties do not work. The reason is display:none property used to remove element from the dom. display:flex property is used to make flexible box layout it cannot be partly displayed. That is why the transition property does not work. You can use keyframe animation
@keyframes navAnimation{0%{display:none; opacity:0; } 1%{display:flex; opacity:0;}100% {opacity:1; }}
another way is using transform property set transform:translateY(-100%) property in mainMenu this moves mainMenu out of the screen. When the nav is in the active stage change the transform property to transform:translateY(0).
Consider using the h1 element as a top-level heading only the reason for that is h1 elements are treated as top-level headings for many screen readers.
Your .links should be accessible for screen readers use <a href=""></a> tag for all your social link and Add some aria-label for your .links. This attribute is used to define a string that labels the current element. In your case these anchors have icons inside so screen readers users won't know what it is.
It was one of the most enjoyable challenges I have done so far. When I saw that challenge requires a change theme I decided to add another functionality which is extra "custom" theme where the user can edit freely colors in theme modal. Many times, when I finished a certain function, I had an idea with another one, and I had a lot of fun doing it. Honestly, It took me more time to made this custom modal than the calculator itself - which itself was a good javascript challenge as well. You can use both the keyboard and the mouse to enter data into the calculator. List of things I learned or used creating this project:
Added customizable settings for 4th theme. User selected colors are saved in Local Storage so the settings are saved and loaded when the user will come back to the site. The user can set 13 options, but he doesn't have to change all of them, he can only change those that interest him. To get the color from user I used vanilla-picker library which creates a color palette from which to choose. Palette always show current set color of element you want to change so it is easy to adjust colors back and forth without searching for that color again.
Added prefers-color-scheme CSS media feature which is used to detect if the user has requested a light or dark color theme and save it to Local Storage. I made it with window interface matchMedia() method. It returns a new MediaQueryList object that can then be used to determine if the document matches the media query string. In this case prefers-color-scheme. Read more(1). How to detect user prefered theme in JS(2).
Implemented focus trap inside modal to make it ADA compliant. Focus trap in short prevent our focus go outside the modal once the modal is opened. Read more.
While displaying the result, I used toLocaleString() method to return a string with a language-sensitive representation of this number. In short it convert 3500 to 3,500 if in U.S. Read more.
I tried to make my comments more readable and transparent. For this purpose, I used JavaScript description comments which are equivalent to Python docstring. If you precede your function definitions with a description comment, VSCode will pick it up and include it as a tooltip. It’s like having MDN right there in your editor. Read more.
I used object literals instead of if statement in several cases. Shortly, we have an object where the keys are the conditions and the values are the responses. Then we can use the square bracket notation to select the correct value of the object from the argument passed in. This looks clean and I will definitely continue to use this. Read More.
Of the things that are invisible at first glance, the calculator returns a error message after the user divides by zero and also after you calculate one result you can click/input equal button again and it will perform same operation again. For example 2+2=4 and another click will be 6 since result our previous equation was 4 and our last input was 2 so 4+2=6.
You can find more about the things I used in the project in the README on github. I just wanted to point out new things here.
Special thanks to @brasspetals for tossing an idea with the focus trap which she used in her project. No specific questions here but any additional feedback will be appreciated! Let me know if you spot any bugs. I know they're hiding somewhere! 😅
Great Work on this challenge the calculator looks awesome.😍 I really liked the way of OOP in your code and I have learned something new from that. and Awesome work custom color selection.
Hello, MALLORY!👋
Fantastic work on this challenge.
Here are my few suggestions.
When I resized my screen to tablet view your .card seems to be too small. I think you have used mediaquery at 375px .You should increase your media query width to make it responsive
You can use max-width in the .card. So it won't grow when it hit the certain point.
I did this for desktop first. Haven't figured out how to do mobile yet. Feedback welcome. I have to go back and change some stuff, but I'm proud of my first challenge attempt. I will resubmit a responsive, mobile-first design once I learn how to.
Hi, KHANG DUONG!
Fantastic work on your first challenge
You can have a overlay on the image element and use mix-blend-mode:multiply on the overlay change the opacity to opacity:0.75; to make it look like design.
You should increase your font-size in .paragraph to allow users easier to read
You should change font-family in .paragraph according to their style guide
When resizing to mobile view there is more breathing space on the top of the .btn. Instead of specifying min-width in .cars__item you can make your .btn as display:inline-block and add margin-top to that.
justify-content wasn't having any effect on mobile version, I tried space between but was having some problem with height(I think). Please help me with those spacings. Any more suggestions will be appreciated.
I have procrastinated this challenge for a long time.
Please feel free to give any suggestions or feedback on design or code.
PS: Email validation using JS is not applied, as I was not able to. If you have any resource on email JS validation will be helpful.
Good job on this challenge. You can use regex expression on email validation. There is a outline in your button which moves your entire form upward. Your solution Awesome!