<mark>Not intended for individual usage. See <a href="./ticker">ticker</a> component.</mark>
<mark>Not intended for individual usage. See <a href="./ticker">ticker</a> component.</mark>
{
"isPremium": true,
"hasGallery": true,
"isAd": true,
"hasVideoThumbnail": false,
"kicker": "Brandkatastrophe",
"title": "Lorem ipsum dolor sit amet consectetur adipiscing elit",
"text": "",
"src": "../../assets/img/landscape.jpg",
"location": "Hildesheim",
"author": "Johanna Elster",
"datetime": "28.04.2019",
"tstamp": "1566234446",
"readingTime": "10",
"visits": "9.523",
"items": [
{
"uid": 5,
"text": "Ich habe einfach keinen Titel. Na sowas. Das mir das aber auch immer passieren muss!",
"publish_date": 1568994540,
"title": "",
"author": {
"name": "Rasmus von Baum",
"media": {
"type": "image",
"uri": "https://via.placeholder.com/1600x1200"
}
},
"media": [],
"date": 1568994540
},
{
"uid": 4,
"text": "Nur Text",
"publish_date": 1570630800,
"title": "Nur Text",
"author": [],
"media": [],
"date": 1570630800
},
{
"uid": 3,
"text": "Das ist ein Video Beispiel mit Autor",
"publish_date": 1570630620,
"title": "Video Beispiel",
"author": {
"name": "Jan Fuhrhop",
"media": {
"type": "image",
"uri": "https://via.placeholder.com/1200x960"
}
},
"media": {
"type": "video",
"uri": "https://player.vimeo.com/video/122370241"
},
"date": 1570630620
},
{
"uid": 2,
"text": "Ich bin noch viel neuer",
"publish_date": 1569772140,
"title": "Test mit Bild",
"author": [],
"media": {
"type": "image",
"uri": "https://via.placeholder.com/800x600"
},
"date": 1569772140
},
{
"uid": 1,
"text": "Ich bin eine Meldung",
"publish_date": 1568994540,
"title": "Mit Autor (ohne Media)",
"author": {
"name": "Kimberly Fiebig",
"media": {
"type": "image",
"uri": "https://via.placeholder.com/1600x1200"
}
},
"media": [],
"date": 1568994540
}
]
}
// Local var
$orderedListSpacing: 1.5rem;
// Local var
.c-teaser {
background-color: $color-white;
margin: 0 auto rem-calc(40);
min-height: rem-calc(200);
@include transition(box-shadow);
&__media {
grid-column: 1 / 2;
grid-row: 1 / 5;
picture {
display: block;
height: auto;
position: relative;
width: 100%;
&.is-video-thumbnail {
&::before {
background-color: rgba($color-white, .75);
border: 1px solid $color-white;
border-radius: 50%;
color: $color-grey;
content: "\f04b";
display: block;
font-family: "Font Awesome 5 Free", sans-serif;
font-weight: 900;
height: 3rem;
left: 50%;
line-height: 1;
padding: 1rem;
position: absolute;
text-indent: 2px;
top: 50%;
transform: translate(-50%, -50%);
width: 3rem;
z-index: 1;
}
}
}
img {
display: block;
height: auto;
width: 100%;
}
&:hover {
picture.is-video-thumbnail::before {
background-color: $color-white;
color: $black;
}
}
}
&__decoline {
border-left: 2px solid $color-yellow;
padding-left: .625rem;
}
&__socialmediaNavi {
margin-left: 1rem;
}
&__contactList {
list-style-type: none;
margin-left: -1rem;
}
&__contactItem {
word-break: break-all;
}
&__icon {
background-color: red;
bottom: 0;
display: block;
height: 20px;
left: 0;
position: absolute;
width: 20px;
}
&__body {
grid-column: 2 / 4;
grid-row: 1 / 4;
padding: rem-calc(0 20);
}
&__kicker {
color: $color-grey-light;
font-size: rem-calc(14);
margin: 1rem 0 0 0;
}
&__link {
border-bottom: 0;
}
&__title {
@include transition(color);
font-size: 1.25rem;
&:hover {
color: $color-grey;
}
// Special case for TYPO3 Integration. Sometimes we can't control that the a-tag is INSIDE the title (ke_search)
// Removing decoration via cascade.
a {
border-bottom: 0;
}
}
&__content {
color: $color-grey-dark;
> p {
margin-bottom: rem-calc(20);
}
}
&__footer {
align-items: flex-end;
display: flex;
grid-column: 2 / 4;
grid-row: 4 / 4;
padding: rem-calc(0 20 20);
}
&__meta {
align-items: flex-start;
display: flex;
flex-direction: column;
flex-grow: 1;
width: 100%;
}
&__actions {
align-items: flex-end;
display: flex;
flex-direction: column;
flex-shrink: 1;
}
&.c-teaser--top {
margin-bottom: rem-calc(20);
margin-left: auto;
margin-right: auto;
margin-top: rem-calc(20);
}
&.c-teaser--opener,
&.c-teaser--top {
.c-teaser__media {
grid-column: 1 / 4;
grid-row: 1 / 2;
}
.c-teaser__body {
grid-column: 1 / 4;
grid-row: 2 / 3;
}
.c-teaser__footer {
grid-column: 1 / 4;
grid-row: 3 / 4;
}
}
&.c-teaser--opener {
.c-teaser__media {
margin-bottom: rem-calc(20);
}
}
&.c-teaser--minimal {
display: block;
margin: $spacing-l auto;
min-height: 0;
img {
margin-bottom: 1.25rem;
}
.c-teaser__header {
border-left: 2px solid $color-yellow;
padding-left: rem-calc(10);
}
.c-teaser__title {
color: $font-header-color;
display: inline;
font-size: rem-calc(16);
font-weight: normal;
margin-bottom: $spacing-s;
&:hover {
color: $color-grey;
}
}
.c-teaser__meta {
margin-top: $spacing-s;
}
}
&.c-teaser--opinion {
.c-teaser__media {
picture {
position: relative;
&::before {
color: $color-yellow;
content: '”';
display: block;
left: 10px;
position: absolute;
top: 0;
z-index: 10;
@include fluid-type(rem-calc(640), rem-calc(1200), rem-calc(50), rem-calc(80));
}
}
}
}
}
@include breakpoint(medium) {
.c-teaser {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(4, auto);
&__media {
picture {
height: 100%;
overflow: hidden;
&.is-video-thumbnail {
&::before {
bottom: 10px;
left: 10px;
top: auto;
transform: none;
}
}
}
img {
height: 100%;
left: 50%;
object-fit: cover;
object-position: top center;
position: absolute;
top: 0;
transform: translateX(-50%);
@include transition(color, background-color, transform);
}
&:hover {
a img {
transform: scaleX(1.05) scaleY(1.05) scaleZ(1) translateX(-50%);
}
}
}
&__header {
border-left: 2px solid $color-yellow;
padding-left: rem-calc(10);
}
&__kicker {
margin: 0;
}
&__title {
font-size: 1.375rem;
}
&.c-teaser--card,
&.c-teaser--opinion {
grid-template-columns: 1fr;
grid-template-rows: repeat(3, auto);
.c-teaser__media {
grid-column: 1 / 2;
grid-row: 1 / 2;
img {
height: auto;
left: unset;
object-fit: unset;
object-position: unset;
position: relative;
top: unset;
transform: unset;
width: 100%;
}
}
.c-teaser__body {
grid-column: 1 / 2;
grid-row: 2 / 3;
padding: rem-calc(20 20 0);
}
.c-teaser__footer {
grid-column: 1 / 2;
grid-row: 3 / 4;
padding: rem-calc(0 20 20);
}
}
&.c-teaser--opinion {
.c-teaser__media {
picture {
border-bottom: 2px solid $color-yellow;
}
}
}
&.c-teaser--opener {
grid-template-columns: repeat(4, 1fr);
min-height: rem-calc(320);
.c-teaser__media {
grid-column: 1 / 3;
grid-row: 1 / 5;
margin-bottom: 0;
}
.c-teaser__body {
grid-column: 3 / 5;
grid-row: 1 / 4;
}
.c-teaser__footer {
grid-column: 3 / 5;
grid-row: 4 / 5;
}
}
&.c-teaser--top {
.c-teaser__media {
grid-column: 1 / 2;
grid-row: 1 / 5;
margin-bottom: 0;
}
.c-teaser__body {
grid-column: 2 / 5;
grid-row: 1 / 5;
padding: rem-calc(20);
}
}
}
}
@include breakpoint(large) {
.c-teaser {
grid-template-columns: rem-calc(270) 1fr 1fr;
&.c-teaser--opener {
grid-template-columns: repeat(3, 1fr);
&__media {
grid-column: 1 / 2;
grid-row: 1 / 5;
}
}
}
}
@include breakpoint(small only) {
.o-section:not(.o-section--grey) {
.c-teaser:not(.c-teaser--minimal) {
border-bottom: rem-calc(2) solid $color-yellow;
}
}
}
// Overrides
.o-section--grey {
.c-teaser__body {
padding: rem-calc(20 20 0);
}
.c-teaser--minimal {
padding: 0 $spacing-s $spacing-s;
}
}
ol .c-teaser.c-teaser--minimal {
padding-left: $orderedListSpacing;
.c-teaser__header {
border-left-width: 0;
padding-left: 0;
}
}
E-mail addresses are cloaked for spam protection in TYPO3. That function is not available in the styleguide.
The ticker teaser is not quite a teaser as it doesn’t link anywhere. Yet, its layout is based upon the card teaser, so it’s kept here. Also, the output is just an approximate as the ‘updated’ information in the kicker will be shorter.