funkwhale/front/ui-docs/components/ui/layout/header.md

2.6 KiB

import Header from '~/components/ui/Header.vue'

Page header

Place the Header at the beginning of a page. Choose an appropriate heading level: h1 or h2 or h3. Choose h1 unless the header is part of a page subsection or a modal. You can use all props for Heading, including the stylistic variants such as radio or page-heading.

<Header
  page-heading
  h1="My title"
/>

For a detailed explanation of the props, read the entry on Section

Add an image

Use the <template #image> slot to place a picture to the left of the header.

<Header h1="My title">
  <template #image>
    <img
    style="width: 196px;"
    src="https://images.unsplash.com/photo-1524650359799-842906ca1c06?ixlib=rb-1.2.1&dl=te-nguyen-Wt7XT1R6sjU-unsplash.jpg&w=640&q=80&fm=jpg&crop=entropy&cs=tinysrgb" />
  </template>
  <div style="height: 48px;">
    My subtitle
  </div>
  <Layout flex gap-8>
    <Button outline square>A</Button>
    <Button outline square>B</Button>
    <Spacer h grow />
    <Button outline square>C</Button>
  </Layout>
</Header>
My subtitle
A B C

::: tip Responsive layout:

On narrow screens, the header will first wrap between image and title/content area.

Make sure to keep the minimum width of the title and the content area narrow to prevent unnecessary wrapping.

:::

::: tip Spacing:

The distance between the image and the content area is 24px (gap-24). The title baseline is at 68px below top.

-> Reference design (Penpot)

:::

Add an action to the right of the heading

-> Use the action prop which is the same as in the Section component.