calendar design progress
This commit is contained in:
@ -272,7 +272,7 @@ const EventCalendar = ({ events }: { events: EventFragment[] }) => {
|
||||
data-collapsed={!visibleYearMonths.includes(yearMonth)}
|
||||
>
|
||||
<h2 onClick={() => toggleYearMonth(yearMonth)}>
|
||||
{formatYearMonth(yearMonth)}
|
||||
{formatYearMonth(yearMonth)} <span className={styles.eventCounter}>({Object.keys(eventsByDate[yearMonth]).length})</span>
|
||||
</h2>
|
||||
{Object.keys(eventsByDate[yearMonth]).map((week) => (
|
||||
<CalendarWeek key={week} days={eventsByDate[yearMonth][week]} />
|
||||
|
@ -41,31 +41,61 @@
|
||||
|
||||
.eventCalendar {
|
||||
position: relative;
|
||||
margin: var(--spacing-sitepadding-block) 0 var(--spacing-section-bottom);
|
||||
}
|
||||
|
||||
.calendarYearMonth {
|
||||
margin: var(--spacing-sitepadding-block) 0;
|
||||
border-top: var(--border);
|
||||
&:last-child {
|
||||
border-bottom: var(--border);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: var(--font-size-lead);
|
||||
padding: calc(var(--spacing-gap-column)/2);
|
||||
background: var(--color-chateauBlue);
|
||||
color: var(--color-betongGray);
|
||||
position: sticky;
|
||||
font-size: var(--font-size-h3);
|
||||
padding: var(--spacing-s) 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&:first-letter {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: var(--size-icon);
|
||||
height: var(--size-icon);
|
||||
background-size: 100%;
|
||||
background-image: url("/assets/icons/circle-arrow-right.svg");
|
||||
right: 0;
|
||||
transform: rotate(-90deg);
|
||||
transition: transform .3s ease;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-collapsed=true] > .calendarWeek {
|
||||
&[data-collapsed=true] {
|
||||
> .calendarWeek {
|
||||
display: none;
|
||||
}
|
||||
h2:before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.calendarWeek {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(7, 1fr);
|
||||
border: 1px solid var(--color-background-secondary);
|
||||
|
||||
.calendarDay {
|
||||
background: var(--color-background-secondary);
|
||||
|
||||
&:nth-of-type(even) {
|
||||
background: var(--color-background);
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(even) {
|
||||
.calendarDay {
|
||||
@ -76,22 +106,33 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:first-of-type {
|
||||
margin-top: var(--spacing-s);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: var(--spacing-section-bottom);
|
||||
}
|
||||
}
|
||||
|
||||
.calendarDay {
|
||||
background: var(--color-background-secondary);
|
||||
min-height: 12rem;
|
||||
padding: calc(var(--spacing-gap-column)/2);
|
||||
min-height: 11rem;
|
||||
padding: .4rem;
|
||||
|
||||
&:nth-of-type(even) {
|
||||
background: var(--color-background);
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: var(--font-size-body);
|
||||
font-weight: 400;
|
||||
margin-bottom: var(--spacing-s);
|
||||
font-family: var(--font-main);
|
||||
font-size: var(--font-size-caption);
|
||||
font-weight: 500;
|
||||
margin: -.3rem -.3rem .4rem -.3rem;
|
||||
text-align: center;
|
||||
background: var(--color-chateauBlue);
|
||||
color: var(--color-betongGray);
|
||||
padding: .3em .4em;
|
||||
|
||||
|
||||
&:first-letter {
|
||||
@ -100,6 +141,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
.eventCounter {
|
||||
font-family: var(--font-serif);
|
||||
font-weight: 400;
|
||||
font-size: var(--font-size-body);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
.eventList {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
@ -112,7 +161,11 @@
|
||||
.calendarDay {
|
||||
|
||||
min-height: 0;
|
||||
padding: calc(var(--spacing-gap-column)/2) var(--spacing-sitepadding-inline);
|
||||
padding: 0 0 calc(var(--spacing-gap-column)/2);
|
||||
|
||||
h3 {
|
||||
margin: 0 0 .4rem;
|
||||
}
|
||||
|
||||
&.empty {
|
||||
display: none;
|
||||
@ -120,14 +173,14 @@
|
||||
|
||||
ul {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
column-gap: var(--spacing-gap-column);
|
||||
row-gap: var(--spacing-gap-row);
|
||||
}
|
||||
|
||||
&:first-child,
|
||||
&:last-child {
|
||||
padding: calc(var(--spacing-gap-column)/2) var(--spacing-sitepadding-inline);
|
||||
padding: 0 0 calc(var(--spacing-gap-column)/2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -136,6 +189,14 @@
|
||||
.eventList {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.calendarDay {
|
||||
ul {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
column-gap: var(--spacing-gap-column);
|
||||
row-gap: var(--spacing-gap-row);
|
||||
}
|
||||
}
|
||||
.displayOptions {
|
||||
.displayButtons {
|
||||
width: 100%;
|
||||
|
@ -7,15 +7,26 @@
|
||||
&.small {
|
||||
|
||||
.title,
|
||||
.details {
|
||||
font-size: var(--font-size-body);
|
||||
.details,
|
||||
.dates {
|
||||
font-size: var(--font-size-caption);
|
||||
}
|
||||
|
||||
.text {
|
||||
padding: 0;
|
||||
margin: .4em 0;
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
--size-image-width: 8.2rem;
|
||||
grid-template-columns: var(--size-image-width) auto;
|
||||
column-gap: .6rem;
|
||||
align-items: flex-start;
|
||||
width: var(--size-item-width);
|
||||
}
|
||||
}
|
||||
|
||||
&.medium {
|
||||
|
Reference in New Issue
Block a user