| | |
| | | import { resolveToRoot } from "../path" |
| | | import Darkmode from "./Darkmode" |
| | | import style from './styles/header.scss' |
| | | import { QuartzComponentConstructor, QuartzComponentProps } from "./types" |
| | | |
| | | export interface HeaderProps { |
| | | title: string |
| | | slug: string |
| | | function Header({ children }: QuartzComponentProps) { |
| | | return (children.length > 0) ? <header> |
| | | {children} |
| | | </header> : null |
| | | } |
| | | |
| | | export default function Header({ title, slug }: HeaderProps) { |
| | | const baseDir = resolveToRoot(slug) |
| | | return <header> |
| | | <h1><a href={baseDir}>{title}</a></h1> |
| | | <div class="spacer"></div> |
| | | <Darkmode /> |
| | | </header> |
| | | Header.css = ` |
| | | header { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | margin: 2em 0; |
| | | gap: 1.5rem; |
| | | } |
| | | |
| | | Header.beforeDOMLoaded = Darkmode.beforeDOMLoaded |
| | | Header.css = style + Darkmode.css |
| | | header h1 { |
| | | margin: 0; |
| | | flex: auto; |
| | | } |
| | | ` |
| | | |
| | | export default (() => Header) satisfies QuartzComponentConstructor |