From 958cf54d6dfc275e94cac9a1180e17427086a0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= Date: Fri, 26 Dec 2025 04:09:01 -0300 Subject: [PATCH 01/12] docs(solid-meta): add useHead reference --- .../installation-and-setup.mdx | 11 +- .../solid-meta/reference/meta/data.json | 3 +- .../solid-meta/reference/meta/use-head.mdx | 247 ++++++++++++++++++ 3 files changed, 255 insertions(+), 6 deletions(-) create mode 100644 src/routes/solid-meta/reference/meta/use-head.mdx diff --git a/src/routes/solid-meta/getting-started/installation-and-setup.mdx b/src/routes/solid-meta/getting-started/installation-and-setup.mdx index 304c6af61c..69606c0316 100644 --- a/src/routes/solid-meta/getting-started/installation-and-setup.mdx +++ b/src/routes/solid-meta/getting-started/installation-and-setup.mdx @@ -33,11 +33,12 @@ To get started, install using your preferred package manager. 1. Wrap your application with [``](/solid-meta/reference/meta/metaprovider) 2. To include head tags within your application, render any of the following: - 1. [``](/solid-meta/reference/meta/title): Adds the `title` of the page. - 2. [`<Meta />`](/solid-meta/reference/meta/meta): Adds extra metadata to the page. - 3. [`<Style />`](/solid-meta/reference/meta/style): Adds a `style` element to the page. - 4. [`<Link />`](/solid-meta/reference/meta/link): Specifies a relationship between the page and an external resource. - 5. [`<Base />`](/solid-meta/reference/meta/base): Specifies the base URL for all relative URLs in the document. + 1. [`<Title />`](/solid-meta/reference/meta/title): Adds the `title` of the page. + 2. [`<Meta />`](/solid-meta/reference/meta/meta): Adds extra metadata to the page. + 3. [`<Style />`](/solid-meta/reference/meta/style): Adds a `style` element to the page. + 4. [`<Link />`](/solid-meta/reference/meta/link): Specifies a relationship between the page and an external resource. + 5. [`<Base />`](/solid-meta/reference/meta/base): Specifies the base URL for all relative URLs in the document. + 6. [`useHead`](/solid-meta/reference/meta/use-head): Inserts arbitrary head tags when a dedicated component does not exist. - These components can be used multiple times within the application. 3. If using Solid on the server with JSX, no additional configuration is required. diff --git a/src/routes/solid-meta/reference/meta/data.json b/src/routes/solid-meta/reference/meta/data.json index 640bff60cb..56a76d69dc 100644 --- a/src/routes/solid-meta/reference/meta/data.json +++ b/src/routes/solid-meta/reference/meta/data.json @@ -6,6 +6,7 @@ "meta.mdx", "style.mdx", "base.mdx", - "metaprovider.mdx" + "metaprovider.mdx", + "use-head.mdx" ] } diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx new file mode 100644 index 0000000000..ab50675a2a --- /dev/null +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -0,0 +1,247 @@ +--- +title: useHead +order: 7 +use_cases: >- + custom head tags, scripts, json-ld, arbitrary head elements, dynamic metadata, + ssr head management +tags: + - usehead + - head + - meta + - script + - json-ld + - ssr +version: '1.0' +description: >- + useHead inserts custom elements into document head with fine-grained control, + including scripts and JSON-LD, while staying SSR-ready. +--- + +`useHead` registers a custom head tag with the nearest [`MetaProvider`](/solid-meta/reference/meta/metaprovider). +It is the low-level API used by the head components. +It must be called under a `MetaProvider`, or it throws. + +Use it when you need a tag that does not have a dedicated component or when you need full control over closing tags and escaping. + +## When to use useHead + +- Insert tags without built-in components, such as `script` and `noscript`. +- Control SSR output with `setting.close` and `setting.escape`. +- Inject per-page structured data like JSON-LD. +- Reuse an existing element via `ref`. + +## Prefer components when possible + +Use the dedicated components when they fit your use case: + +- [`<Title />`](/solid-meta/reference/meta/title) for page titles. +- [`<Meta />`](/solid-meta/reference/meta/meta) for metadata. +- [`<Link />`](/solid-meta/reference/meta/link) for external resources. +- [`<Style />`](/solid-meta/reference/meta/style) for inline styles. +- [`<Base />`](/solid-meta/reference/meta/base) for base URLs. + +They provide clearer intent and sensible defaults. + +## Import + +```ts +import { useHead } from "@solidjs/meta"; +``` + +## Type + +```ts +type TagDescription = { + tag: string; + props: Record<string, unknown>; + setting?: { + close?: boolean; + escape?: boolean; + }; + id: string; + name?: string; + ref?: Element; +}; + +function useHead(tag: TagDescription): void; +``` + +## Parameters + +### `tag` + +- **Type:** `string` +- **Required:** Yes + +The tag name to render in `<head>`, such as `script`, `meta`, or `title`. + +### `props` + +- **Type:** `Record<string, unknown>` +- **Required:** Yes + +The attributes and properties applied to the element. + +#### `props.children` + +When provided, `children` becomes the element content for tags like `title`, `style`, or `script`. +On the server, arrays of strings are concatenated without commas. +If `setting.close` is not enabled, `children` is not rendered during SSR. + +### `setting` + +- **Type:** `{ close?: boolean; escape?: boolean }` +- **Required:** No + +SSR-only rendering options for the tag contents. + +#### `setting.close` + +- **Type:** `boolean` +- **Required:** No + +When `true`, the server renders a closing tag and includes `children`. +Use this for tags that cannot be self-closing, such as `script`, `style`, and `title`. + +#### `setting.escape` + +- **Type:** `boolean` +- **Required:** No + +When `true`, the server HTML-escapes `children`. +If omitted or `false`, `children` is rendered as raw HTML. + +### `id` + +- **Type:** `string` +- **Required:** Yes + +A stable identifier used to match server-rendered tags during hydration. +Use a consistent `id` for the lifetime of the component. + +### `name` + +- **Type:** `string` +- **Required:** No + +An optional label for the tag. +For `meta` tags, it typically mirrors `props.name` or `props.property`. + +### `ref` + +- **Type:** `Element` +- **Required:** No + +An existing element to reuse instead of creating a new one. +This is usually managed internally. + +## Return value + +`useHead` does not return a value. + +## Examples + +### Simple custom tag + +```tsx +import { useHead } from "@solidjs/meta"; + +useHead({ + tag: "link", + id: "rss-feed", + props: { + rel: "alternate", + type: "application/rss+xml", + title: "Solid RSS", + href: "/rss.xml", + }, +}); +``` + +### JSON-LD per page (script with `close` and `escape`) + +```tsx +import { useHead } from "@solidjs/meta"; + +const jsonLD = JSON.stringify({ + "@context": "https://schema.org", + "@type": "WebSite", + name: "Solid Docs", + url: "https://docs.solidjs.com/", +}); + +useHead({ + tag: "script", + setting: { close: true, escape: false }, + id: "schema-home", + props: { + type: "application/ld+json", + children: jsonLD, + }, +}); +``` + +### Reactive updates + +```tsx +import { createSignal } from "solid-js"; +import { useHead } from "@solidjs/meta"; + +const [pageTitle, setPageTitle] = createSignal("Getting started"); + +useHead({ + tag: "title", + setting: { close: true, escape: true }, + id: "page-title", + props: { + get children() { + return `${pageTitle()} | Solid`; + }, + }, +}); +``` + +## Notes + +### SSR and hydration + +On the server, tags are collected and rendered into `<head>`. +During hydration, tags with matching `id` values are reused. +On client-only renders, existing server tags are removed and replaced. + +### Dedupe and idempotency + +For `title` and `meta`, only the most recent tag with the same key is kept. +The key is derived from the tag name and selected attributes. +For `meta`, the key uses `name` (or `property`), `http-equiv`, `content`, `charset`, and `media`. +For `title`, the key does not include any attributes. +Other tag types are not deduped. +The `id` does not control deduping. +It ensures hydration can reuse the same element instead of inserting a duplicate. + +### Reactive updates and cleanup + +`useHead` runs inside a render effect. +If your tag description reads reactive values, the tag updates when those values change. +When the component unmounts, the tag is removed and any previous cascading tag is restored. + +### Security and escaping + +Use `setting.escape: true` when inserting untrusted content. +Setting `escape: false` renders raw HTML and can create XSS risks. +Only use `escape: false` with trusted, pre-serialized strings such as JSON-LD. + +### Best practices + +Use stable, unique `id` values to avoid duplicates. +Prefer the dedicated head components when they meet your needs. +Avoid inserting multiple tags that represent the same metadata unless you intend to override. + +## Related + +- [`<MetaProvider />`](/solid-meta/reference/meta/metaprovider) +- [`<Title />`](/solid-meta/reference/meta/title) +- [`<Meta />`](/solid-meta/reference/meta/meta) +- [`<Link />`](/solid-meta/reference/meta/link) +- [`<Style />`](/solid-meta/reference/meta/style) +- [`<Base />`](/solid-meta/reference/meta/base) From acda4b10f9b0075c4f1b991c6cc7b5a9e67eb427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Fri, 26 Dec 2025 04:50:19 -0300 Subject: [PATCH 02/12] docs(solid-meta): align useHead usage section --- src/routes/solid-meta/reference/meta/use-head.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index ab50675a2a..f3a93f52dc 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -139,7 +139,7 @@ This is usually managed internally. `useHead` does not return a value. -## Examples +## Usage ### Simple custom tag From 73262c699072deb4cd746b07a1e78137e7a82377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:25:00 -0300 Subject: [PATCH 03/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index f3a93f52dc..cebcbb88e6 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -17,11 +17,7 @@ description: >- including scripts and JSON-LD, while staying SSR-ready. --- -`useHead` registers a custom head tag with the nearest [`MetaProvider`](/solid-meta/reference/meta/metaprovider). -It is the low-level API used by the head components. -It must be called under a `MetaProvider`, or it throws. - -Use it when you need a tag that does not have a dedicated component or when you need full control over closing tags and escaping. +`useHead` is a low-level API for registering custom `<head>` tags with the nearest [`MetaProvider`](/solid-meta/reference/meta/metaprovider). ## When to use useHead From 2652d3cb85270cb2813dde6f0d67e3791581dbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:27:11 -0300 Subject: [PATCH 04/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index cebcbb88e6..ecad451e61 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -69,7 +69,7 @@ function useHead(tag: TagDescription): void; - **Type:** `string` - **Required:** Yes -The tag name to render in `<head>`, such as `script`, `meta`, or `title`. +The tag name to render in `<head>` (eg. `<script>`, `<meta>`, `<title>`). ### `props` From 465fa97593134d44733c6b6f726cbb2239eaffae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:27:26 -0300 Subject: [PATCH 05/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index ecad451e61..56e2cec57a 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -76,13 +76,10 @@ The tag name to render in `<head>` (eg. `<script>`, `<meta>`, `<title>`). - **Type:** `Record<string, unknown>` - **Required:** Yes -The attributes and properties applied to the element. +Attributes and properties applied to the rendered element. -#### `props.children` - -When provided, `children` becomes the element content for tags like `title`, `style`, or `script`. -On the server, arrays of strings are concatenated without commas. -If `setting.close` is not enabled, `children` is not rendered during SSR. +If `props.children` is provided, is provided, it is used as the element’s content for tags such as `title`, `style`, and `script`. +During server-side rendering, arrays of strings are concatenated without commas. ### `setting` From 92e7abadd39ee7a0e8c148ed0bb2ed19f52e4e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:27:38 -0300 Subject: [PATCH 06/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 56e2cec57a..524dbe219b 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -88,13 +88,12 @@ During server-side rendering, arrays of strings are concatenated without commas. SSR-only rendering options for the tag contents. -#### `setting.close` +#### `close` - **Type:** `boolean` - **Required:** No -When `true`, the server renders a closing tag and includes `children`. -Use this for tags that cannot be self-closing, such as `script`, `style`, and `title`. +Required for elements that cannot be self-closing, such as `script`, `style`, and `title`. When `true`, the server renders a closing tag and includes `children`. If `false`, `children` is not rendered. #### `setting.escape` From 878cf1281abd03b72415aa8fc2b3f8728941c08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:28:36 -0300 Subject: [PATCH 07/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 524dbe219b..57dc2e8f37 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -95,13 +95,13 @@ SSR-only rendering options for the tag contents. Required for elements that cannot be self-closing, such as `script`, `style`, and `title`. When `true`, the server renders a closing tag and includes `children`. If `false`, `children` is not rendered. -#### `setting.escape` +#### `escape` - **Type:** `boolean` - **Required:** No -When `true`, the server HTML-escapes `children`. -If omitted or `false`, `children` is rendered as raw HTML. +When `true`, HTML-escapes `children` during SSR. +If omitted or `false`, renders `children` as raw HTML. ### `id` From 56c8a2635e075d13f35c52fbc0ef74dd14a19287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:28:57 -0300 Subject: [PATCH 08/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 57dc2e8f37..5b3c1d788e 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -109,7 +109,7 @@ If omitted or `false`, renders `children` as raw HTML. - **Required:** Yes A stable identifier used to match server-rendered tags during hydration. -Use a consistent `id` for the lifetime of the component. +Value should remain consistent for the lifetime of the component. ### `name` From 55b7128bab6f176f55215987234a02581c665cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:29:07 -0300 Subject: [PATCH 09/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 5b3c1d788e..5d1f94e894 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -117,7 +117,7 @@ Value should remain consistent for the lifetime of the component. - **Required:** No An optional label for the tag. -For `meta` tags, it typically mirrors `props.name` or `props.property`. +With `meta` tags, can mirror `props.name` or `props.property`. ### `ref` From 57046e04f5d0bb4a5306d239a13527d2fa0a491c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:29:33 -0300 Subject: [PATCH 10/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 5d1f94e894..12b15c3181 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -124,8 +124,7 @@ With `meta` tags, can mirror `props.name` or `props.property`. - **Type:** `Element` - **Required:** No -An existing element to reuse instead of creating a new one. -This is usually managed internally. +An existing element to reuse instead of creating a new one, typically managed internally. ## Return value From 468d66f0d381dff559f69bdacbfa1dc36b4685e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:29:44 -0300 Subject: [PATCH 11/12] Update src/routes/solid-meta/reference/meta/use-head.mdx Co-authored-by: Sarah <hello@sarahgerrard.me> --- src/routes/solid-meta/reference/meta/use-head.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 12b15c3181..625f1a872e 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -130,7 +130,7 @@ An existing element to reuse instead of creating a new one, typically managed in `useHead` does not return a value. -## Usage +## Examples ### Simple custom tag From dc45010d6ca2c901505cebe2cc4bdaf422a6c954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89verton=20Toffanetto?= <evertondgn@hotmail.com> Date: Sun, 28 Dec 2025 17:47:50 -0300 Subject: [PATCH 12/12] docs(use-head): remove outdated usage guidelines and notes --- .../solid-meta/reference/meta/use-head.mdx | 55 ------------------- 1 file changed, 55 deletions(-) diff --git a/src/routes/solid-meta/reference/meta/use-head.mdx b/src/routes/solid-meta/reference/meta/use-head.mdx index 625f1a872e..2b611a4f39 100644 --- a/src/routes/solid-meta/reference/meta/use-head.mdx +++ b/src/routes/solid-meta/reference/meta/use-head.mdx @@ -19,25 +19,6 @@ description: >- `useHead` is a low-level API for registering custom `<head>` tags with the nearest [`MetaProvider`](/solid-meta/reference/meta/metaprovider). -## When to use useHead - -- Insert tags without built-in components, such as `script` and `noscript`. -- Control SSR output with `setting.close` and `setting.escape`. -- Inject per-page structured data like JSON-LD. -- Reuse an existing element via `ref`. - -## Prefer components when possible - -Use the dedicated components when they fit your use case: - -- [`<Title />`](/solid-meta/reference/meta/title) for page titles. -- [`<Meta />`](/solid-meta/reference/meta/meta) for metadata. -- [`<Link />`](/solid-meta/reference/meta/link) for external resources. -- [`<Style />`](/solid-meta/reference/meta/style) for inline styles. -- [`<Base />`](/solid-meta/reference/meta/base) for base URLs. - -They provide clearer intent and sensible defaults. - ## Import ```ts @@ -192,42 +173,6 @@ useHead({ }); ``` -## Notes - -### SSR and hydration - -On the server, tags are collected and rendered into `<head>`. -During hydration, tags with matching `id` values are reused. -On client-only renders, existing server tags are removed and replaced. - -### Dedupe and idempotency - -For `title` and `meta`, only the most recent tag with the same key is kept. -The key is derived from the tag name and selected attributes. -For `meta`, the key uses `name` (or `property`), `http-equiv`, `content`, `charset`, and `media`. -For `title`, the key does not include any attributes. -Other tag types are not deduped. -The `id` does not control deduping. -It ensures hydration can reuse the same element instead of inserting a duplicate. - -### Reactive updates and cleanup - -`useHead` runs inside a render effect. -If your tag description reads reactive values, the tag updates when those values change. -When the component unmounts, the tag is removed and any previous cascading tag is restored. - -### Security and escaping - -Use `setting.escape: true` when inserting untrusted content. -Setting `escape: false` renders raw HTML and can create XSS risks. -Only use `escape: false` with trusted, pre-serialized strings such as JSON-LD. - -### Best practices - -Use stable, unique `id` values to avoid duplicates. -Prefer the dedicated head components when they meet your needs. -Avoid inserting multiple tags that represent the same metadata unless you intend to override. - ## Related - [`<MetaProvider />`](/solid-meta/reference/meta/metaprovider)