# Head component

A *head* is a [component](component "component") that is rendered in the [HTML Head node](head "head").

## How to create a Head component

See [How to create a head component](../howto/add-a-head "../howto/add-a-head")

## Default

The default one can be seen in the [main/src/resources/components/heads directory](https://github.com/combostrap/interact/tree/main/src/resources/components/heads "https://github.com/combostrap/interact/tree/main/src/resources/components/heads")

If you want to override the default ones, you should create a head with the same name and store it at: *@/components/heads*.

## Syntax

They:

* are and should be [server component](rsc "rsc")
* accepts the layout props (page and context)
* should export the function component as default

### Not a Client Component Restriction

Head component cannot be [client component](../reference/rsc#client-component "../reference/rsc#client-component") otherwise you get the [fatal rsc error](../reference/rsc#only-plain-objects-error "../reference/rsc#only-plain-objects-error")

## How to list all head components

*head component* are registered components. You can see them by running the [interact config command](conf#cli "conf#cli")

```bash
interact config -f components
# to select only the head component with yq
interact config -f components | yq 'to_entries | map(select(.value.type == "head")) | from_entries'
```
