Add Header component guideline config
parent
acfee6e5d2
commit
225f1d86fd
|
|
@ -0,0 +1,101 @@
|
|||
# Header — JSON Configuration Guide
|
||||
|
||||
This guide explains how to configure the `Header` block in `config/nam.vibentec.design.json`. It covers structure, keys, and typical edits without file line references.
|
||||
|
||||
## Location
|
||||
- Defined under `layout` in `config/nam.vibentec.design.json` as a top-level `Header` object.
|
||||
- Contains a `config` block (e.g., `sticky`) and a `children` array with header components.
|
||||
|
||||
## Minimal Structure
|
||||
```json
|
||||
{
|
||||
"Header": {
|
||||
"config": {
|
||||
"sticky": true
|
||||
},
|
||||
"children": [
|
||||
{ "Banner": { "config": { } } },
|
||||
{ "Nav": { "config": { } } }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Config Keys
|
||||
- `sticky`: Boolean. When `true`, the header stays fixed at the top.
|
||||
- `children`: Array of components rendered in the header. Common entries are `Banner` and `Nav`.
|
||||
|
||||
## Banner (Top Bar)
|
||||
|
||||
Key fields:
|
||||
- `variant`: e.g., `"nav"`.
|
||||
- `className`: styling of the bar.
|
||||
- `left` / `center` / `right`: arrays to place child controls.
|
||||
- Left links: `Link` items with `label`, `href`, `className`.
|
||||
- Center links: `Link` items for promos or CTAs.
|
||||
- Right controls: `Dropdown` for currency and `VtCountryCodeSelect` for region selector.
|
||||
|
||||
Example (add a left link):
|
||||
```json
|
||||
{
|
||||
"Link": {
|
||||
"config": {
|
||||
"label": "Neu",
|
||||
"href": "/new",
|
||||
"className": "text-[13px] flex items-center gap-1"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Place this inside `Banner.config.left`.
|
||||
|
||||
## Nav (Main Navigation)
|
||||
|
||||
Key fields:
|
||||
- Container `className`: overall styling of the nav bar.
|
||||
- Left area:
|
||||
- Logo: `src`, `alt`, `className`, and `objectFit` under `Logo.config`.
|
||||
- Primary links: `Link.config.label`/`href`.
|
||||
- Mega menus: `VtMegaMenu.config.navLabel.text` and styling.
|
||||
- Right area:
|
||||
- `SearchInput.config.placeholder`.
|
||||
- `AccountButton`, `Button` (wishlist), and `VtCartButton` icons and classes.
|
||||
|
||||
Example (change the logo):
|
||||
```json
|
||||
{
|
||||
"Logo": {
|
||||
"config": {
|
||||
"src": "/your-logo.svg",
|
||||
"alt": "YourBrand",
|
||||
"className": "h-full w-[180px] mr-4",
|
||||
"objectFit": "contain"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Edit values under `Logo.config`.
|
||||
|
||||
## Common Edits
|
||||
- Toggle sticky header: set `"sticky"` in `Header.config`.
|
||||
- Change banner copy/links: edit `Link.config.label`/`href` in `Banner`.
|
||||
- Update currency label or options: change `Dropdown.config.trigger.text` and `items`.
|
||||
- Adjust styles: modify `className` strings in `Banner` and `Nav`.
|
||||
- Edit navigation links or mega menu labels: update `Link` and `VtMegaMenu` configs.
|
||||
- Replace header icons: update `icon` fields in `AccountButton`, `Button`, `VtCartButton`.
|
||||
|
||||
## Adding or Reordering Children
|
||||
- `Header.children` is an ordered array; earlier items render above/before later ones.
|
||||
- To add a new component, append an object with the component name and its `config`:
|
||||
```json
|
||||
{ "AnnouncementBar": { "config": { "text": "Free shipping over €50" } } }
|
||||
```
|
||||
- Move items within the array to change render order.
|
||||
|
||||
## Tips
|
||||
- Keep JSON valid (commas, braces, quotes). Use a formatter if needed.
|
||||
- Follow existing class name patterns for consistent styling.
|
||||
- Use `left`/`center`/`right` arrays to position child items within `Banner` and similar components.
|
||||
- Icons referenced by name (e.g., `"User"`, `"Heart"`, `"ShoppingCart"`) must exist in the icon set.
|
||||
|
||||
This guide explains the `Header` configuration so you can make precise edits quickly.
|
||||
Loading…
Reference in New Issue