[uw-course-teaser] { --course-border-color: var(--color-grey); --course-padding-hori: 10px; --course-padding-vert: 12px; display: grid; position: relative; grid-gap: 5px 7px; grid-template-columns: 130px 30px 1fr 60px; grid-template-areas: 'shrthnd . title chevron' 'shrthnd smstr school chevron' '. . rgstrd . ' 'tutor tutor name . ' 'duedate duedate date . ' 'dscrptn dscrptn dscrptn dscrptn'; padding: var(--course-padding-vert) var(--course-padding-hori); transition: background-color .1s ease-out; cursor: pointer; &:hover { background-color: var(--course-bg-color); } + [uw-course-teaser] { border-top: 1px solid var(--course-border-color); } @media (max-width: 768px) { grid-template-columns: 140px 1fr 30px; grid-template-areas: 'shrthnd title chevron' 'shrthnd title . ' 'smstr school school ' '. rgstrd rgstrd ' 'tutor name name ' 'duedate date date ' 'dscrptn dscrptn dscrptn'; } @media (max-width: 426px) { grid-template-columns: 1fr; grid-template-areas: 'shrthnd' 'title' 'smstr' 'school' 'rgstrd' 'tutor' 'name' 'duedate' 'date' 'dscrptnlbl' 'dscrptn' 'chevron'; } } .course-teaser__not-expandable { cursor: initial; } /* chevron */ .course-teaser__chevron { position: relative; padding: 10px; grid-area: chevron; justify-self: center; align-self: center; width: 100%; height: 100%; cursor: pointer; &::before { content: ''; position: absolute; display: block; margin-top: -7.35px; margin-left: -7.35px; /* visually centered */ border-width: 0 3px 3px 0; width: 8px; height: 8px; top: 50%; left: 50%; border-color: var(--color-fontsec); border-style: solid; transform: rotate(135deg); transform-origin: 7.25px 7.25px; /* rotate about visual center */ transition: all .2s ease-out; } &:hover::before { transform: scale(1.4) rotate(45deg); } @media (max-width: 768px) { justify-self: end; width: auto; &::before { position: initial; } } @media (max-width: 426px) { &::before { transform: rotate(45deg); margin-left: -7.35px; } &:hover::before { transform: scale(1.4) rotate(45deg); } } } /* semester */ .course-teaser__semester { grid-area: smstr; justify-self: end; a { color: var(--color-fontsec); } @media (max-width: 768px) { justify-self: initial; } } /* shorthand */ .course-teaser__shorthand { position: relative; grid-area: shrthnd; font-size: 2rem; line-height: 1.25; min-height: calc(2rem * 1.25); > a { position: absolute; height: 100%; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: break-any; text-decoration: none !important; /* sry. */ font-weight: 600; color: var(--color-grey-medium); } /* @media (max-width: 768px) { * position: initial; * } */ } /* title */ .course-teaser__title { grid-area: title; font-size: 1.2rem; align-self: baseline; } /* registration */ .course-teaser__registration { grid-area: rgstrd; color: var(--color-fontsec); font-weight: bold; } /* school */ .course-teaser__school { grid-area: school; a { color: var(--color-fontsec); } } /* duedate */ .course-teaser__duedate { grid-area: date; } /* lecturer */ .course-teaser__lecturer { grid-area: name; } /* description */ .course-teaser__description { grid-area: dscrptn; max-height: 75vh; overflow: auto; } /* show description only as dots (overflow text-overflow) and only show when expanded. No "hidden fiddling" */ /* labels */ .course-teaser__lecturer-label { grid-area: tutor; } .course-teaser__duedate-label { grid-area: duedate; } .course-teaser__description-label { grid-area: dscrptnlbl; } .course-teaser__lecturer-label, .course-teaser__description-label, .course-teaser__duedate-label { justify-self: end; color: var(--color-fontsec); font-style: italic; @media (max-width: 768px) { justify-self: initial; } @media (max-width: 426px) { margin-top: 7px; font-weight: bold; font-style: initial; } } /* hidden in closed state */ .course-teaser__description, .course-teaser__description-label { display: none; } /* expanded courses */ .course-teaser__expanded { cursor: initial; .course-teaser__chevron { &::before { transform: rotate(45deg); } &:hover::before { transform: scale(1.4) rotate(135deg); } @media (max-width: 426px) { &::before { transform: rotate(225deg); } &:hover::before { transform: scale(1.4) rotate(225deg); } } } .course-teaser__school-label, .course-teaser__school, .course-teaser__duedate-label, .course-teaser__duedate, .course-teaser__description { display: block; } @media (max-width: 426px) { .course-teaser__description-label { display: block; } } } /* course teaser: header styling */ .course-teaser-header { padding-top: 10px; padding-bottom: 20px; line-height: 1.4; max-width: 85vw; .course-header { float: left; background-color: var(--color-dark); position: relative; font-size: 16px; color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 35px; margin-bottom: 10px; font-weight: bold; text-align: left; border-radius: 20px 20px 20px 20px / 50% 50% 50% 50%; margin-right: 30px; .course-header-link { color: white; font-weight: bold; text-decoration: none; &:hover { color: inherit; } } } } .course-teaser-header:after { content: ""; display: table; clear: both; }