import { css, html, LitElement } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { routes } from '../routes.js'; import { tailwind } from '../styles/tailwind.js'; /** * Site navigation. * * The active path arrives as a property rather than being read from * `window.location`, so this element renders identically on the server and in * the browser. */ @customElement('app-nav') export class AppNav extends LitElement { static override styles = [ tailwind, css` :host { display: block; } a { /* * Tailwind's preflight strips the default underline, but preflight is * document-level and is not adopted into shadow roots, so links reset * themselves here instead. */ text-decoration: none; color: inherit; } `, ]; @property({ type: String }) path = '/'; override render() { return html` `; } } declare global { interface HTMLElementTagNameMap { 'app-nav': AppNav; } }