Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 34 additions & 2 deletions src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,42 @@
<title>Calendar</title>
<link
rel="stylesheet"
href="styles/index.scss"
href="styles/main.scss"
/>
</head>
<body>
<h1>Calendar</h1>
<div class="calendar calendar--start-day-sun calendar--month-length-31">
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
<div class="calendar__day"></div>
</div>
</body>
</html>
3 changes: 0 additions & 3 deletions src/styles/index.scss

This file was deleted.

85 changes: 85 additions & 0 deletions src/styles/main.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/* stylelint-disable scss/operator-no-newline-after */
$calendar-columns: 7;
$calendar-days-count: 31;
$day-border-width: 1px;
$day-size: 100px;
$day-bg: #eee;
$day-border-color: #000;
$calendar-gap: 1px;
$calendar-padding: 10px;
$day-step: $day-size + $calendar-gap;
$weekdays: (
mon: 0,
tue: 1,
wed: 2,
thu: 3,
fri: 4,
sat: 5,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The calendar element uses calendar--start-day-sun and calendar--month-length-31, but in SCSS you generate modifiers as &--start-day--#{$day} and &--month-length--#{$length} (double dash before the value). This mismatch violates checklist item #1: "Changing 'month-lengh' and 'start-day' modifier in the code element reflects in changing calendar layout" because changing the HTML modifiers does not trigger the intended styles. Align the class naming convention between HTML and SCSS and keep only one consistent pattern.

sun: 6,
);

body {
margin: 0;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}

.calendar {
display: flex;
flex-wrap: wrap;
gap: $calendar-gap;
width: (
$calendar-columns * $day-size + ($calendar-columns - 1) * $calendar-gap + 2 *
$calendar-padding
);
padding: $calendar-padding;
box-sizing: border-box;
&__day {
box-sizing: border-box;
width: $day-size;
height: $day-size;
background-color: $day-bg;
border: $day-border-width solid $day-border-color;
display: flex;
align-items: center;
justify-content: center;
transition:
transform 0.5s,
background-color 0.5s;
&::before {
font:
30px Arial,
sans-serif;
line-height: 1;
}
&:hover {
cursor: pointer;
background-color: #ffbfcb;
transform: translateY(-20px);
}
}

@for $i from 1 through $calendar-days-count {
.calendar__day:nth-child(#{$i})::before {
content: '#{$i}';
}
}

@each $day, $offset in $weekdays {
&--start-day-#{$day} {
.calendar__day:first-child {
margin-left: if($offset > 0, $offset * $day-step, 0);
}
}
}

@for $length from 28 through $calendar-days-count {
&--month-length-#{$length} {
.calendar__day:nth-child(n + #{$length + 1}) {
display: none;
}
}
}
Comment on lines +78 to +84

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This second @for block creates &--month-length-#{$length} modifiers, which are redundant relative to the previous block and contribute to inconsistent naming. The task requires a single month-length modifier implementation using @for that directly controls which days are shown [CHECKLIST ITEM #1]. Remove the duplicate block and ensure the remaining one matches the HTML class naming.

}
Loading