Latest solutions
- Submitted about 2 months ago
Tech book club landing page
#accessibility#sass/scss- HTML
- CSS
I'm always open for feedback!
- Submitted 2 months ago
Project tracking intro component
#accessibility#sass/scss- HTML
- CSS
- JS
As always, open for any feedback.
- Submitted 3 months ago
Skilled E-learning Landing Page
#accessibility#sass/scss- HTML
- CSS
As always, I'm open for suggestions!
- Submitted 4 months ago
Space Tourism multi-page Project
#accessibility#sass/scss- HTML
- CSS
- JS
I'm open to any feedback.
- Submitted 4 months ago
Easybank Landing Page using :has & Subgrid
#accessibility#sass/scss- HTML
- CSS
- JS
As always I'm open for any feedback :)
Latest comments
- @Juan-LozanoDevSubmitted about 16 hours agoP@Islandstone89Posted about 12 hours ago
Hi, well done.
Here are some suggestions:
HTML:
-
Every webpage needs a
<main>
that wraps all of the content, except for<header>
andfooter>
. This is vital for accessibility, as it helps screen readers identify a page's "main" content. Wrap the card in a<main>
. -
The alt text must also say where it leads(the frontendmentor website). A good alt text would be "QR code leading to the Frontend Mentor website."
CSS:
- Make a habit of including a modern CSS Reset at the top of the stylesheet. You should at least add this declaration:
*, *::before, *::after { box-sizing: border-box; }
-
I recommend adding a bit of
padding
, for example16px
, on thebody
, to ensure the card doesn't touch the edges on small screens. -
Remove the styles on
html
, we usually don't set styles on that element. -
On the
body
, changemin-height: 100%
tomin-height: 100svh
. -
Descendant selectors like
.paragraph p
increase specificity, making the styles harder to override. Instead, give elements a class, and use that as the selector. -
Remove all widths in
px
. -
We do want to limit the width of the card so it doesn't get too wide on larger screens. To solve this issue, give the card a max-width of around 20rem.
-
font-size
must never be in px. This is a big accessibility issue, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead. -
Paragraphs have a default value of
font-weight: 400
, so there is no need to declare it. -
On the image, add
display: block
,height: auto
andmax-width: 100%
- the max-width prevents it from overflowing its container. Without this, an image would overflow if its intrinsic size is wider than the container.max-width: 100%
makes the image shrink to fit inside its container.
0 -
- P@MattzicSubmitted 2 days agoP@Islandstone89Posted about 12 hours ago
Hey, great work once again!
Most of your code is very good, well done :)
Here are a few things to consider:
HTML:
-
"PERFUME" should be written with normal capitalisation - "Perfume". To render the text as ALL CAPS, use the
text-transform
property in CSS with a value ofuppercase
. -
Remember to wrap the footer text in a
<p>
, as text must never be in a<div>
alone.
CSS:
-
letter-spacing
must not be inpx
. You can useem
, where1em
equals the element's font size. -
You can remove
font-family: Montserrat
on.merchandize-type
,.description
and thebutton
. Since you set that font on thebody
, all of its descendants will inherit its font. However, you must keepfont-family: Montserrat
on.sec-price
, otherwise it will inherit theFraunces
font from.price
since that is its direct parent. -
You don't need to add a strike-through on
.sec-price
, as the<s>
element gets styled like that by default. Also,text-decoration-line
is not a valid property, it's correct name istext-decoration
. -
On the
button
, it is better for accessibility to replaceborder: none
withborder: transparent
. -
I like to use native CSS nesting and place
.hover
styles inside the element selector, like so:
button { border-radius: var(--space--100); background: var(--color--green-500); etc... &:hover { background: var(--color--green-700); } }
- Media queries should be in
rem
orem
instead ofpx
.
Marked as helpful1 -
- @sivagithub1532Submitted 3 days agoP@Islandstone89Posted 3 days ago
Hello, well done finishing this first challenge!
Here are some directions - I hope you find them clear and helpful :)
HTML:
-
You don't need to wrap the image in a
<figure>
on this project. -
Headings should always be in order, so you never start with a
<h3>
. I would change the heading to a<h2>
- a page should only have one<h1>
, reserved for the main heading. As this is a card heading, it would likely not be the main heading on a page with several components. -
The footer text should be wrapped in a
<p>
instead of a<h4>
.
CSS:
-
Make a habit of including a modern CSS Reset at the top of the stylesheet.
-
I recommend adding a bit of
padding
, for example16px
, on thebody
, to ensure the card doesn't touch the edges on small screens. -
On
body
, addflex-direction: column
. The default value isrow
, which makes the flex items appear side by side. We want them to be on top of each other, hence the need to change the value offlex-direction
. I would also add agap
of around1rem
, to ensure the card doesn't squeeze against the footer. -
Remove the styles on
.container
, they are not needed, as you're centering the<main>
and the<footer>
using Flexbox on their parent, thebody
. NB: You don't need to setwidth: 100%
on block-level elements, as they take up the full width by default. -
Remove the
width
inpx
on the card. We rarely want to give a component a fixed size, as we need it to grow and shrink according to the screen size. -
We do want to limit the width of the card so it doesn't get too wide on larger screens. To solve this issue, give the card a max-width of around 20rem.
-
font-size
must never be in px. This is a big accessibility issue, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead. -
Since all of the text should be centered, you only need to set
text-align: center
on the body, and remove it elsewhere. The children will inherit the value. -
The paragraph text has poor contrast. Inspecting it in DevTools shows a contrast ratio of
3.63
, lower than the Web Content Accessibility Guidelines minimum requirement4.5
. Changingcolor: hsl(220, 15%, 55%);
tocolor: hsl(220, 15%, 45%);
gives it a contrast ratio of5.2
, which is acceptable. -
Good job having
max-width: 100%
on the image! It's also common to setdisplay: block
andheight: auto
.
0 -
- @jason-fmtSubmitted 3 days agoP@Islandstone89Posted 3 days ago
Hi Jason, good job.
Here are some recommendations:
HTML:
-
Every webpage needs a
<main>
that wraps all of the content, except for<header>
andfooter>
. This is vital for accessibility, as it helps screen readers identify a page's "main" content. Wrap the card in a<main>
. -
The alt text must also say where it leads(the frontendmentor website). A good alt text would be "QR code leading to the Frontend Mentor website."
-
I would change the heading to a
<h2>
- a page should only have one<h1>
, reserved for the main heading. As this is a card heading, it would likely not be the main heading on a page with several components. -
Change
.attribution
to a<footer>
, and wrap its text in a<p>
.
CSS:
-
Make a habit of including a modern CSS Reset at the top of the stylesheet.
-
I recommend adding a bit of
padding
, for example16px
, on thebody
, to ensure the card doesn't touch the edges on small screens. -
Move
font-family
tobody
. -
On the
body
, changeheight
tomin-height: 100svh
— this way, the content will not be cut off if it grows beneath the viewport. -
Remove the
width
inpx
on the card. We rarely want to give a component a fixed size, as we need it to grow and shrink according to the screen size. -
We do want to limit the width of the card so it doesn't get too wide on larger screens. To solve this issue, give the card a max-width of around 20rem.
-
font-size
must never be in px. This is a big accessibility issue, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead. -
letter-spacing
must also not be inpx
. You can useem
, where1em
equals the element's font size. -
Since all of the text should be centered, you only need to set
text-align: center
on the body, and remove it elsewhere. The children will inherit the value. -
I would remove
font-weight: lighter
on.directions
, as it makes the text harder to read. -
On the image, add
display: block
,height: auto
and changewidht
tomax-width: 100%
- the max-width prevents it from overflowing its container. Without this, an image would overflow if its intrinsic size is wider than the container.max-width: 100%
makes the image shrink to fit inside its container.
0 -
- @Daniele-FiorentSubmitted 4 days agoWhat are you most proud of, and what would you do differently next time?
I learned to work from a design system on figma
P@Islandstone89Posted 4 days agoWell done, Daniele!
Here are some suggestions:
HTML:
-
Don't use words like "image" or "photo" in the alt text. Screen readers start announcing images with "image", so an alt text of "image of qr code" would be read like this: "image, image of qr code". Also, the alt text must say where it leads(the frontendmentor website). A good alt text would be "QR code leading to the Frontend Mentor website."
-
I would change the heading to a
<h2>
- a page should only have one<h1>
, reserved for the main heading. As this is a card heading, it would likely not be the main heading on a page with several components. -
Change
.attribution
to a<footer>
, and use<p>
for the text inside. The<footer>
must be outside of the<main>
- both should be direct children of the<body>
.
CSS:
-
Make a habit of including a modern CSS Reset at the top of the stylesheet.
-
I recommend adding a bit of
padding
, for example16px
, on thebody
, to ensure the card doesn't touch the edges on small screens. -
Move the styles on
main
tobody
. -
On the
body
, changeheight
tomin-height: 100svh
— this way, the content will not be cut off if it grows beneath the viewport. Also, addgap: 1rem
, to create a bit of space between the<main>
and the<footer>
. -
Since you're using
gap
, you can removemargin-bottom
on the card. -
You don't need to set
margin: 0
andpadding: 0
on.card__text
, since you set those values on all elements using the*
selector at the top. -
Remove the
width
andheight
inpx
on the card. We rarely want to give a component a fixed size, as we need it to grow and shrink according to the screen size. -
We do want to limit the width of the card so it doesn't get too wide on larger screens. To solve this issue, give the card a max-width of around 20rem.
-
letter-spacing
must not be inpx
or%
. You can useem
, where1em
equals the element's font size. -
Since all of the text should be centered, you only need to set
text-align: center
on the body, and remove it elsewhere. The children will inherit the value. -
Paragraphs have a default value of
font-weight: 400
, so there is no need to declare it. -
On the image, add
display: block
,height: auto
andmax-width: 100%
- the max-width prevents it from overflowing its container. Without this, an image would overflow if its intrinsic size is wider than the container.max-width: 100%
makes the image shrink to fit inside its container.
Marked as helpful1 -
- @madnuelSubmitted 4 days agoP@Islandstone89Posted 4 days ago
Hi Manuel, good job.
Here are a few words of advice:
HTML:
-
Every webpage needs a
<main>
that wraps all of the content, except for<header>
andfooter>
. This is vital for accessibility, as it helps screen readers identify a page's "main" content. Change.container
to a<main>
. -
The image has meaning, so it must have proper alt text. Write something short and descriptive, without including words like "image" or "photo". Screen readers start announcing images with "image", so an alt text of "image of qr code" would be read like this: "image, image of qr code". The alt text must also say where it leads(the frontendmentor website). A good alt text would be "QR code leading to the Frontend Mentor website."
-
Headings should always be in order, so you never start with a
<h3>
. I would change it to a<h2>
- a page should only have one<h1>
, reserved for the main heading. As this is a card heading, it would likely not be the main heading on a page with several components. -
Do not use
<br>
to force text onto a new line. The text should flow naturally, and all styling, including space between elements, should be done in the CSS.
CSS:
-
Make a habit of including a modern CSS Reset at the top of the stylesheet.
-
I recommend adding a bit of
padding
, for example16px
, on thebody
, to ensure the card doesn't touch the edges on small screens. -
Move
font-family
tobody
. -
Move the styles on
.container
to thebody
. -
On the
body
, removemargin: 0 auto
, it is not needed. -
Descendant selectors like
.card p
increase specificity, making the styles harder to override. Instead, give elements a class, and use that as the selector. -
It's not recommended to use
%
for properties such asmargin
,padding
andborder-radius
. Usepx
,em
orrem
. -
Remove the width on the card.
-
max-width
on the card should be in rem. Around20rem
works well. -
font-size
must never be in px. This is a big accessibility issue, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead. -
To create the space between the image and the edge of the card, set
padding
on all 4 sides of the card:padding: 16px;
. -
Good job having
max-width: 100%
on the image! Applyingdisplay: block
andheight: auto
is also common. Remove thepadding
, it is not needed.
0 -