/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ import {LitElement, html, css, unsafeCSS} from 'lit'; import {customElement, property} from 'lit/decorators.js'; import { breakpoints } from '../../breakpoints'; import { unsafeHTML } from 'lit/directives/unsafe-html.js'; /** * An example element. * * @fires count-changed - Indicates when the count changes * @slot - This element has a slot * @csspart button - The button */ @customElement('iu-featured-content') export class FeaturedContent extends LitElement { static override styles = css` :host{ display: block; background: var(--iu-color-black); color: #fff; padding-top: 2.5rem /* 40px */; padding-bottom: 2.5rem /* 40px */; margin-bottom: 4.5rem; } :host iu-heading::part(title){ color: #fff; } :host iu-heading::part(link){ color: var(--iu-color-grey-400); } ::slotted(p){ font-size: 1.625rem !important; line-height: 2.1875rem !important; color: #fff !important; } .img{ aspect-ratio: 3/2; margin-bottom: 2rem; overflow: hidden; } @media ${unsafeCSS(breakpoints.md)} { .img{ aspect-ratio: 2/1; } } @media ${unsafeCSS(breakpoints.xl)} { .img{ aspect-ratio: 21/9; } } .img img{ width: 100%; } .text *{ font: var(--iu-f-md); } `; @property() heading = ''; @property() link = ''; @property() href = ''; @property() img = ''; @property() text? = ''; override render() { return html` <iu-container> <iu-heading text="${this.heading}" noDivider nested href="${this.href}" size="2" link="${this.link}"></iu-heading> <div class="img"><img src="${this.img}" /></div> ${this.text && html`<div class="text">${unsafeHTML(this.text)}</div>`} </iu-container> `; } } declare global { interface HTMLElementTagNameMap { 'iu-featured-content': FeaturedContent; } }