diff --git a/contents/_includes/covers/calendar.njk b/contents/_includes/covers/calendar.njk
new file mode 100644
index 0000000..92cd4fc
--- /dev/null
+++ b/contents/_includes/covers/calendar.njk
@@ -0,0 +1,18 @@
+
+
Mon
+
Tue
+
Wed
+
Thu
+
Fri
+
Sat
+
Sun
+ {% for i in range(0, 3) -%}
+
{{ i + 29 }}
+ {%- endfor %}
+ {% for i in range(0, 30) -%}
+
{{ i + 1 }}
+ {%- endfor %}
+ {% for i in range(0, 2) -%}
+
{{ i + 1}}
+ {%- endfor %}
+
\ No newline at end of file
diff --git a/contents/calendar.md b/contents/calendar.md
new file mode 100644
index 0000000..97f2d09
--- /dev/null
+++ b/contents/calendar.md
@@ -0,0 +1,72 @@
+---
+layout: layouts/post.njk
+title: Calendar
+description: Create a calendar with CSS grid
+keywords: css calendar, css grid
+---
+
+## HTML
+
+```html
+
+
+
Mon
+
Tue
+
Wed
+
Thu
+
Fri
+
Sat
+
Sun
+
+
+
30
+
31
+
+
+
1
+
2
+
+
+
...
+
+
+
1
+
2
+
+```
+
+## CSS
+
+```css
+.calendar {
+ display: grid;
+ grid-template-columns: repeat(7, 1fr);
+}
+
+.calendar__weekday {
+ border-bottom: 1px solid #d1d5db;
+ padding: 0.125rem;
+}
+
+.calendar__day {
+ border-bottom: 1px solid #d1d5db;
+ border-right: 1px solid #d1d5db;
+ padding: 0.25rem;
+ text-align: center;
+}
+
+.calendar__day--current {
+ background-color: #3b82f6;
+ color: #fff;
+}
+
+.calendar__day:nth-child(7n+1) {
+ border-left: 1px solid #d1d5db;
+}
+
+.calendar__day--disabled {
+ color: #d1d5db;
+}
+```
+
+{% demo %}{% include "covers/calendar.njk" %}{% enddemo %}
diff --git a/contents/index.njk b/contents/index.njk
index a6c3981..04efc29 100644
--- a/contents/index.njk
+++ b/contents/index.njk
@@ -22,6 +22,7 @@ eleventyExcludeFromCollections: true
{% pattern "Avatar" %}{% include "covers/avatar.njk" %}{% endpattern %}
{% pattern "Avatar list" %}{% include "covers/avatar-list.njk" %}{% endpattern %}
{% pattern "Badge" %}{% include "covers/badge.njk" %}{% endpattern %}
+ {% pattern "Calendar" %}{% include "covers/calendar.njk" %}{% endpattern %}
{% pattern "Card" %}{% include "covers/card.njk" %}{% endpattern %}
{% pattern "Centering" %}{% include "covers/centering.njk" %}{% endpattern %}
{% pattern "Close button" %}{% include "covers/close-button.njk" %}{% endpattern %}
diff --git a/styles/blocks/_pattern.scss b/styles/blocks/_pattern.scss
index c7ec0cb..e0169d2 100644
--- a/styles/blocks/_pattern.scss
+++ b/styles/blocks/_pattern.scss
@@ -18,9 +18,10 @@
pointer-events: none;
color: #000;
- height: 8rem;
+ height: 10rem;
width: 100%;
margin-bottom: 0.5rem;
+ overflow: hidden;
}
.pattern__title {
color: #6366f1;
diff --git a/styles/index.scss b/styles/index.scss
index fd21c5c..5bf8ee2 100644
--- a/styles/index.scss
+++ b/styles/index.scss
@@ -23,6 +23,7 @@
@import './patterns/box-selector';
@import './patterns/breadcrumb';
@import './patterns/button-with-icon';
+@import './patterns/calendar';
@import './patterns/card-layout';
@import './patterns/card';
@import './patterns/centering';
diff --git a/styles/patterns/_avatar-list.scss b/styles/patterns/_avatar-list.scss
index 8f9aa4a..b0f651b 100644
--- a/styles/patterns/_avatar-list.scss
+++ b/styles/patterns/_avatar-list.scss
@@ -9,7 +9,7 @@
margin-left: -0.25rem;
}
.avatars__image {
- background-color: #BBB;
+ background-color: #d1d5db;
box-shadow: 0 0 0 0.25rem #FFF;
color: #FFF;
font-size: 0.75rem;
diff --git a/styles/patterns/_calendar.scss b/styles/patterns/_calendar.scss
new file mode 100644
index 0000000..bc27e31
--- /dev/null
+++ b/styles/patterns/_calendar.scss
@@ -0,0 +1,33 @@
+.calendar {
+ display: grid;
+ grid-template-columns: repeat(7, 1fr);
+
+ /* Demo */
+ font-size: 0.75rem;
+ width: 8rem;
+}
+
+.calendar__weekday {
+ border-bottom: 1px solid #d1d5db;
+ padding: 0.125rem;
+}
+
+.calendar__day {
+ border-bottom: 1px solid #d1d5db;
+ border-right: 1px solid #d1d5db;
+ padding: 0.25rem;
+ text-align: center;
+}
+
+.calendar__day--current {
+ background-color: #3b82f6;
+ color: #fff;
+}
+
+.calendar__day:nth-child(7n+1) {
+ border-left: 1px solid #d1d5db;
+}
+
+.calendar__day--disabled {
+ color: #e5e7eb;
+}
\ No newline at end of file