# Project

Configure site identity, logo assets, and favicon links.

`Project` settings describe the documentation site itself. Keep this page for
identity fields that affect metadata, branding, and browser chrome.

```ts
import { defineLotusConfig } from '@prosefly/astro-theme-lotus';

export default defineLotusConfig({
  name: 'Astro Theme Lotus',
  description: 'A documentation theme for Astro.',
  logo: {
    light: '/logo-light.svg',
    dark: '/logo-dark.svg',
    href: '/',
  },
  favicon: '/favicon.svg',
});
```

Routing, i18n, source links, and contributors are separate configuration
topics. See [Content Routing](/docs/configuration/content-routing/),
[Internationalization](/docs/configuration/i18n/), and
[Source](/docs/configuration/source/).

## Name

`name` is the public product or project name. Lotus uses it for the site title,
header brand text, footer brand text, and schema.org metadata.

```ts
name: 'Astro Theme Lotus'
```

Page titles are composed from the page frontmatter title and this name.

## Description

`description` is the default site description. Pages can still override it with
frontmatter.

```ts
description: 'A documentation theme for Astro.'
```

Lotus uses this value for the default `<meta name="description">` and
structured data.

## Logo

`logo` is optional. If it is omitted, Lotus renders the built-in Lotus mark.

By default, Lotus treats the logo as a mark and renders it next to `name`.
Use a string when one mark asset works in every theme mode.

```ts
logo: '/logo.svg'
```

Use an object when light and dark mode need different mark assets.

```ts
logo: {
  light: '/logo-light.svg',
  dark: '/logo-dark.svg',
  href: '/',
}
```

If your logo asset already includes the project name, set `variant: 'lockup'`.
Lotus will render the image by itself and skip the extra `name` text. The
default `variant` is `mark`.

```ts
logo: {
  light: '/logo-lockup-light.svg',
  dark: '/logo-lockup-dark.svg',
  variant: 'lockup',
}
```

`href` controls the brand link target. If omitted, the brand links to `/`.
For local assets in `public/`, Lotus reads the image dimensions during the
Astro config setup step and renders `width` and `height` attributes
automatically. Add `width` and `height` only for remote logo URLs or custom
paths Lotus cannot read from `public/`.

## Favicon

Use a string for the common single favicon case.

```ts
favicon: '/favicon.svg'
```

Use an object or array when a project needs multiple favicon links.

```ts
favicon: [
  { href: '/favicon.svg', type: 'image/svg+xml' },
  { href: '/favicon.ico', sizes: '32x32' },
  { href: '/apple-touch-icon.png', rel: 'apple-touch-icon', sizes: '180x180' },
]
```

Each object renders as a `<link>` in the document head. Supported fields are
`href`, `rel`, `type`, `sizes`, `media`, and `color`.
