# c15t Full Context > All generated markdown documentation pages flattened into one file. ## Included Pages - [Introduction](https://c15t.com/docs): c15t adds a consent banner, a preference dialog and consent-gated scripts to JavaScript, React, Next.js, Vue, Nuxt, Svelte, SvelteKit, Astro and TanStack Start sites. - [Choose your setup](https://c15t.com/docs/concepts/choose-your-setup): Pick the c15t setup for your framework, rendering mode and hosting, and decide who runs the consent backend. - [Examples](https://c15t.com/docs/examples): Runnable c15t apps from the c15t repository. Starters show the smallest setup for Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit, HTML and JavaScript. Showcases show custom banners, preference centers, gated embeds, analytics, IAB TCF, experiments and multilingual sites. - [How consent works](https://c15t.com/docs/concepts/how-consent-works): What c15t decides on each page load, the difference between a permission and a recorded choice, and what happens when a visitor saves. - [Consent categories](https://c15t.com/docs/concepts/consent-categories): Assign scripts, embeds and features to c15t consent categories, and understand which categories the preference dialog shows. - [Policies](https://c15t.com/docs/concepts/policies): How policy models, prompts and scope decide what c15t asks visitors, where to change the rules, and why a banner may not appear. - [Consent modes](https://c15t.com/docs/concepts/modes): Reference for manifest(), hosted() and offline() in every c15t framework package, where each one resolves the visitor's policy, what it adds to first-load JavaScript, the build-time manifest fetch and its failure policy, and the backend URL variable each framework reads. - [Data fetching](https://c15t.com/docs/concepts/data-fetching): Choose the recommended build-time policy snapshot or runtime manifest fetching, backend /init, browser resolution or offline rules, and understand where consent choices are saved. - [Consent state reference](https://c15t.com/docs/concepts/consent-state): How c15t saves choices, gates IAB vendors, hydrates server records and keeps browser tabs and storage in step. - [Customize the interface](https://c15t.com/docs/customization/overview): Change c15t's consent banner and dialog one step at a time, from a prop to your own markup, and find where each step lives in your framework. - [Banner designs](https://c15t.com/docs/customization/recipes): Five consent banner designs built with c15t, from one prop to your own markup, with tested code for React, Vue, Svelte, Astro and plain HTML. - [Theme tokens](https://c15t.com/docs/customization/tokens): Change c15t's colors, type, radius, spacing, shadows and motion with theme tokens, and see every --c15t-* variable with its default. - [Dark mode](https://c15t.com/docs/customization/dark-mode): Switch c15t's banner and dialog to dark colors with colorScheme, set your own dark tokens, follow your site's theme switch, and paint dark on the first frame in every framework. - [Motion and animation](https://c15t.com/docs/customization/motion): Change how fast c15t's banner and dialog animate with duration and easing tokens, turn animations off per surface with disableAnimation, and check reduced-motion behavior in each framework. - [Stylesheets and CSS layers](https://c15t.com/docs/customization/stylesheets): See how c15t delivers its styles in each framework without a render-blocking stylesheet, when to import styles.css yourself with styles false, which file holds the dialog's rules, and how c15t's cascade layer meets your own. - [Component parts](https://c15t.com/docs/customization/slots): Find every part of c15t's banner, dialog, widget, trigger and ConsentGate placeholder, its key in your framework's part API, and the data attributes to select on. - [Class names and CSS-in-JS](https://c15t.com/docs/customization/class-names): Style c15t's component parts with CSS Modules, vanilla-extract, StyleX, Emotion or plain class names, and see which approach works in each framework. - [Tailwind CSS](https://c15t.com/docs/customization/tailwind): Use c15t's styles with Tailwind CSS 4 or 3 in every framework, put utilities on c15t component parts, and use Tailwind's dark variant with c15t. - [Copy and translations](https://c15t.com/docs/customization/translations): Change consent wording through i18n and test the complete prompt and preferences flow. - [Banner experiments](https://c15t.com/docs/guides/banner-experiments): Run A/B tests on consent banner presentation with any feature-flag provider or built-in weighted assignment, and attribute every impression and choice to its arm. - [Verify consent](https://c15t.com/docs/guides/verify-consent): Check in a production build that vendor requests wait for consent, rejection survives a reload, preferences reopen and privacy signals apply. - [Troubleshooting](https://c15t.com/docs/guides/troubleshooting): Fix a missing banner, analytics that load before consent, choices lost on reload, CORS errors, hydration differences, failed manifest downloads, mode errors and failed static builds in c15t v3. - [Frameworks](https://c15t.com/docs/frameworks): c15t setup guides for Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit, plain HTML and JavaScript. - [Quickstart](https://c15t.com/docs/frameworks/next/quickstart): Add c15t consent management to a Next.js App Router app with Inth, a build-time policy manifest and consent-gated scripts, then check it works. Links to the Pages Router and static export guides. - [App Router](https://c15t.com/docs/frameworks/next/app-router): Set up c15t in the Next.js App Router with Inth, a build-time policy manifest, consent-gated scripts and a streamed or awaited root layout. - [Pages Router](https://c15t.com/docs/frameworks/next/pages-router): Set up c15t in the Next.js Pages Router with Inth, a build-time policy manifest, getServerSideProps and consent-gated scripts. - [Static export](https://c15t.com/docs/frameworks/next/static-export): Add c15t to a Next.js site built with output export, where the browser resolves consent through Inth without request helpers or API routes. - [Client-side initialization](https://c15t.com/docs/frameworks/next/client-side): Initialize c15t in the browser in a Next.js app with hosted() mode, without server prefetch, a consent route or API handlers. - [Rendering and deployment](https://c15t.com/docs/frameworks/next/rendering): Choose how Next.js resolves consent for your router, rendering mode and hosting, from streamed App Router layouts to static export, ISR, Cache Components and ensureStatic. - [Upgrade from v2](https://c15t.com/docs/frameworks/next/upgrade-v3): Upgrade a Next.js app from c15t v2 (@c15t/nextjs) to v3. Covers packages, ConsentRoot or ConsentProvider, the useConsentManager codemod, callbacks, policies, styles, IAB and stored consent. - [Scripts](https://c15t.com/docs/frameworks/next/scripts): Register vendor scripts in a Next.js ConsentRoot, check how each vendor loads, let visitors turn off one vendor, clear stored data after revocation and replace @next/third-parties. - [Embeds](https://c15t.com/docs/frameworks/next/embeds): Keep YouTube videos, maps and other iframes out of a Next.js page until their consent category is allowed, with ConsentGate or the iframe blocker in ConsentRoot. - [Network blocker](https://c15t.com/docs/frameworks/next/network-blocker): Hold fetch and XMLHttpRequest calls in a Next.js app until their consent category is allowed, with networkBlocker rules in c15t.config.ts. - [Vendor consent](https://c15t.com/docs/frameworks/next/vendor-consent): Let visitors allow a category such as marketing in a Next.js app and still turn off one vendor in it, with vendors in c15t.config.ts and useVendorAllowed. - [Clear on revocation](https://c15t.com/docs/frameworks/next/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a Next.js app when that category is denied, with clearOnRevocation in c15t.config.ts. - [Customize](https://c15t.com/docs/frameworks/next/customize): Load the c15t stylesheet yourself in Next.js when you need to, and change colors, radius, button roles, component parts, dark mode and banner shape with ConsentTheme and ConsentRoot options. - [Translations](https://c15t.com/docs/frameworks/next/translations): Where c15t banner and dialog copy comes from in Next.js, how the server and browser pick the visitor's language, and how to override copy and switch languages from a Client Component. - [Compose your own banner](https://c15t.com/docs/frameworks/next/compose): Build a Next.js consent banner as a Client Component from the ConsentBanner parts in c15t/next, with your own markup and buttons, rendered inside ConsentRoot. - [Headless](https://c15t.com/docs/frameworks/next/headless): Build a custom consent banner in Next.js with the c15t/next/headless hooks inside your existing ConsentRoot. - [Components](https://c15t.com/docs/frameworks/next/components): Every c15t component a Next.js app imports from c15t/next, what each renders, which ones are Client Components, and where to start. - [ConsentRoot](https://c15t.com/docs/frameworks/next/components/consent-root): Render the Next.js ConsentRoot once from a Server Component layout, pass it the server-resolved state, and see how it reads c15t.config.ts and picks the consent mode. - [ConsentBanner](https://c15t.com/docs/frameworks/next/components/consent-banner): Render the pre-built ConsentBanner inside a Next.js ConsentRoot and configure its variants, per-policy buttons and compound parts. - [ConsentDialog](https://c15t.com/docs/frameworks/next/components/consent-dialog): Mount ConsentDialog as a Client Component inside a Next.js ConsentRoot to open the preference center from the banner, links and triggers. - [ConsentWidget](https://c15t.com/docs/frameworks/next/components/consent-widget): Render ConsentWidget on a Next.js privacy page inside ConsentRoot as an inline preference center, server-rendered when the route resolves consent. - [ConsentDialogLink](https://c15t.com/docs/frameworks/next/components/consent-dialog-link): Open the preference center from a Next.js footer with ConsentDialogLink, a Client Component that renders an unstyled button inside ConsentRoot. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/next/components/consent-dialog-trigger): Add the floating ConsentDialogTrigger button or toolbar to a Next.js ConsentRoot so visitors can reopen the preference center. - [ConsentGate](https://c15t.com/docs/frameworks/next/components/consent-gate): Consent-gate an iframe in Next.js with ConsentGate inside ConsentRoot; with server prefetch the server HTML carries the placeholder for a denied category, and a granted embed mounts after hydration. - [Hooks](https://c15t.com/docs/frameworks/next/hooks): Gate features and save consent choices in Next.js Client Components with the focused hooks exported from c15t/next. - [Callbacks](https://c15t.com/docs/frameworks/next/callbacks): Run code in a Next.js app when a visitor records a consent choice, when permissions change, when a request fails and before the revocation reload, from c15t.config.ts. - [IAB TCF](https://c15t.com/docs/frameworks/next/iab): Mount the IAB TCF banner and dialog inside a Next.js ConsentRoot and configure the CMP ID, policy and vendor data. - [IAB GPP](https://c15t.com/docs/frameworks/next/gpp): Add the IAB Global Privacy Platform API (__gpp) to a Next.js app with ConsentGPP from c15t/react/gpp, so ad tech can read US state opt-outs and the TCF EU consent string. - [Geography headers](https://c15t.com/docs/frameworks/next/geography-headers): Use c15tProxy in Next.js proxy.ts or middleware.ts so Server Components and Route Handlers receive the visitor's country and region. - [Content Security Policy](https://c15t.com/docs/frameworks/next/content-security-policy): Pass a per-request CSP nonce to ConsentRoot in Next.js and allow the consent backend in connect-src. - [Performance](https://c15t.com/docs/frameworks/next/optimization): Bundle policy at build time to avoid manifest fetch latency, use runtime caching when policies must refresh without a rebuild, and optionally keep browser consent requests on your origin. - [Data fetching reference](https://c15t.com/docs/frameworks/next/data-fetching-reference): Reference for the Next.js c15t.config.ts options, modes, resolveConsent, withConsentProps, the consent route, manifest resolution, request geography and offline configuration. - [DevTools](https://c15t.com/docs/frameworks/next/components/dev-tools): Load the c15t DevTools panel only in Next.js development builds to inspect consent state, scripts, policy and events inside ConsentRoot. - [Troubleshooting](https://c15t.com/docs/frameworks/next/troubleshooting): Diagnose failed c15t consent prefetch and build-time manifest downloads in Next.js, verify manifest requests, and fix a missing c15t.config.ts, config errors, unknown server location and prerendering errors. - [Quickstart](https://c15t.com/docs/frameworks/tanstack-start/quickstart): Resolve consent on the server in a TanStack Start root loader, render the banner in the first HTML, and gate vendor scripts, using Inth as the consent backend. - [Rendering and deployment](https://c15t.com/docs/frameworks/tanstack-start/rendering): Choose how a TanStack Start app resolves consent, with an awaited or streamed root loader, a same-origin consent route, or SPA mode, prerendered pages and static hosting. - [Scripts](https://c15t.com/docs/frameworks/tanstack-start/scripts): Load vendor scripts by consent category in a TanStack Start app with ConsentRoot, and clear stored data or reload the page when a visitor withdraws consent. - [Embeds](https://c15t.com/docs/frameworks/tanstack-start/embeds): Keep YouTube videos, maps and other iframes out of a TanStack Start page until their consent category is allowed, with ConsentGate or the iframe blocker in ConsentRoot. - [Network blocker](https://c15t.com/docs/frameworks/tanstack-start/network-blocker): Hold fetch and XMLHttpRequest calls in a TanStack Start app until their consent category is allowed, with networkBlocker rules on ConsentRoot. - [Vendor consent](https://c15t.com/docs/frameworks/tanstack-start/vendor-consent): Let visitors allow a category such as marketing in a TanStack Start app and still turn off one vendor in it, with the vendors prop on ConsentRoot and useVendorAllowed. - [Clear on revocation](https://c15t.com/docs/frameworks/tanstack-start/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a TanStack Start app when that category is denied, with the clearOnRevocation prop on ConsentRoot. - [Customize](https://c15t.com/docs/frameworks/tanstack-start/customize): Change the colors, fonts, layout, button styles and copy of the c15t banner and dialog in a TanStack Start app with theme tokens, ConsentRoot options and component parts, and load the stylesheet yourself when you need to. - [Translations](https://c15t.com/docs/frameworks/tanstack-start/translations): Where c15t banner and dialog copy comes from in TanStack Start, how the server and browser pick the visitor's language, and how to override copy and switch languages from the root route. - [Compose your own banner](https://c15t.com/docs/frameworks/tanstack-start/compose): Build a TanStack Start consent banner from the ConsentBanner parts in c15t/tanstack-start, with your own markup and buttons, rendered inside ConsentRoot in the root route. - [Headless](https://c15t.com/docs/frameworks/tanstack-start/headless): Build your own consent banner markup in a TanStack Start app with the c15t/tanstack-start/headless hooks inside ConsentRoot. - [Components](https://c15t.com/docs/frameworks/tanstack-start/components): ConsentRoot and the consent banner, dialog, widget, links, gate and DevTools components a TanStack Start app imports from c15t/tanstack-start. - [ConsentBanner](https://c15t.com/docs/frameworks/tanstack-start/components/consent-banner): Render the c15t consent banner in a TanStack Start app, set its variant and position, and override its labels. - [ConsentDialog](https://c15t.com/docs/frameworks/tanstack-start/components/consent-dialog): Open the c15t preference dialog in a TanStack Start app, reopen it from your own controls, and control blocking, focus and policy gating. - [ConsentWidget](https://c15t.com/docs/frameworks/tanstack-start/components/consent-widget): Embed the c15t preference controls inline on a TanStack Start privacy page with ConsentWidget, recording a choice only when the visitor saves. - [ConsentDialogLink](https://c15t.com/docs/frameworks/tanstack-start/components/consent-dialog-link): Add a ConsentDialogLink to a TanStack Start footer so visitors can reopen the c15t preference dialog from your own text link. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/tanstack-start/components/consent-dialog-trigger): Add a floating button or toolbar to a TanStack Start app that reopens the c15t preference dialog after the first prompt. - [ConsentGate](https://c15t.com/docs/frameworks/tanstack-start/components/consent-gate): Gate a YouTube video, map or other iframe behind consent in a TanStack Start app with ConsentGate, showing a placeholder until the category is allowed. - [Hooks](https://c15t.com/docs/frameworks/tanstack-start/hooks): Read consent permissions, open the preference dialog and save choices in TanStack Start components with the hooks exported from c15t/tanstack-start. - [Callbacks](https://c15t.com/docs/frameworks/tanstack-start/callbacks): Run code in a TanStack Start app when a visitor records a consent choice, when permissions change, when a request fails and before the revocation reload, from ConsentRoot in the root route. - [IAB TCF](https://c15t.com/docs/frameworks/tanstack-start/iab): Show the IAB TCF banner and dialog in a TanStack Start app for visitors whose policy uses the IAB model, with c15t/react/iab inside ConsentRoot. - [IAB GPP](https://c15t.com/docs/frameworks/tanstack-start/gpp): Add the IAB Global Privacy Platform API (__gpp) to a TanStack Start app with ConsentGPP from c15t/react/gpp, so ad tech can read US state opt-outs and the TCF EU consent string. - [Geography headers](https://c15t.com/docs/frameworks/tanstack-start/geography-headers): Which request headers c15t reads for country, region, language and Global Privacy Control in TanStack Start, where the server functions and consent route send them, and how to test another location. - [Content Security Policy](https://c15t.com/docs/frameworks/tanstack-start/content-security-policy): Run c15t in a TanStack Start app under a Content Security Policy, pass the router's per-request nonce to ConsentRoot, and allow the consent backend and vendor hosts. - [DevTools](https://c15t.com/docs/frameworks/tanstack-start/components/dev-tools): Inspect consent state, location, loaded scripts and consent events in a TanStack Start app during development, on its own or inside TanStack Devtools. - [Troubleshooting](https://c15t.com/docs/frameworks/tanstack-start/troubleshooting): Fix build-time manifest failures, a missing server-rendered banner, server function errors, proxy and firewall failures, and early vendor requests in a TanStack Start app that uses c15t. - [Quickstart](https://c15t.com/docs/frameworks/react/quickstart): Add a consent banner, preferences dialog and consent-gated scripts to a React single-page app built with Vite, using Inth as the consent backend. - [Rendering and deployment](https://c15t.com/docs/frameworks/react/rendering): How c15t resolves consent in client-rendered React apps, React Router framework mode, Remix and other server-rendered React apps without a c15t adapter. - [Upgrade from v2](https://c15t.com/docs/frameworks/react/upgrade-v3): Upgrade a React app from c15t v2 (@c15t/react) to v3. Covers packages, ConsentProvider and transports, the useConsentManager codemod, callbacks, policies, styles, IAB and stored consent. - [Scripts](https://c15t.com/docs/frameworks/react/scripts): Load vendor scripts by consent category in a React app with ConsentProvider, and clear stored data or reload the page when a visitor withdraws consent. - [Embeds](https://c15t.com/docs/frameworks/react/embeds): Keep YouTube videos, maps and other iframes out of a React page until their consent category is allowed, with ConsentGate or the iframe blocker in ConsentProvider. - [Network blocker](https://c15t.com/docs/frameworks/react/network-blocker): Hold fetch and XMLHttpRequest calls in a React app until their consent category is allowed, with networkBlocker rules in the ConsentProvider options. - [Vendor consent](https://c15t.com/docs/frameworks/react/vendor-consent): Let visitors allow a category such as marketing in a React app and still turn off one vendor in it, with the vendors option on ConsentProvider and useVendorAllowed. - [Clear on revocation](https://c15t.com/docs/frameworks/react/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a React app when that category is denied, with the clearOnRevocation option on ConsentProvider. - [Customize](https://c15t.com/docs/frameworks/react/customize): Change the colors, fonts, layout, button styles and copy of the c15t banner and dialog in a React app with theme tokens, provider options and slots, and load the stylesheet yourself when you need to. - [Translations](https://c15t.com/docs/frameworks/react/translations): Where c15t banner and dialog copy comes from in a React app, how the browser picks the visitor's language, and how to override copy and switch languages with the provider's i18n option and hooks. - [Compose your own banner](https://c15t.com/docs/frameworks/react/compose): Build a React consent banner from the ConsentBanner parts in c15t/react, with your own markup and buttons, while the policy still decides which actions appear. - [Headless](https://c15t.com/docs/frameworks/react/headless): Build a custom consent banner in React with the c15t/react/headless hooks inside your ConsentProvider. - [Components](https://c15t.com/docs/frameworks/react/components): Every c15t component a React app imports from c15t/react, what each renders, where each one mounts, and which to start with. - [ConsentProvider](https://c15t.com/docs/frameworks/react/components/consent-provider): Mount ConsentProvider in a React app and configure its backend, scripts, storage, blocking and presentation options. - [ConsentBanner](https://c15t.com/docs/frameworks/react/components/consent-banner): Render the c15t consent banner in a React app, choose its variant and position, and compose its parts. - [ConsentDialog](https://c15t.com/docs/frameworks/react/components/consent-dialog): Open the c15t preference center as a modal ConsentDialog in a React app, wire its triggers and control blocking, focus and policy gating. - [ConsentWidget](https://c15t.com/docs/frameworks/react/components/consent-widget): Embed the c15t preference center inline with ConsentWidget on a React privacy page, with draft toggles that record a choice only on Save. - [ConsentDialogLink](https://c15t.com/docs/frameworks/react/components/consent-dialog-link): Add a ConsentDialogLink to a React footer so visitors reopen the c15t preference center from your own text link, with asChild and rights data. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/react/components/consent-dialog-trigger): Add the c15t ConsentDialogTrigger floating button or toolbar inside a React ConsentProvider so visitors can reopen the preference center after the first prompt. - [ConsentGate](https://c15t.com/docs/frameworks/react/components/consent-gate): Gate a YouTube or map iframe behind consent with ConsentGate in React, showing a placeholder that opens the preference center until the category is allowed. - [Hooks](https://c15t.com/docs/frameworks/react/hooks): Gate features and save consent choices in React components with the focused hooks exported from c15t/react. - [Callbacks](https://c15t.com/docs/frameworks/react/callbacks): Run code in a React app when a visitor records a consent choice, when permissions change, when a request fails and before the revocation reload, with the ConsentProvider callbacks option. - [IAB TCF](https://c15t.com/docs/frameworks/react/iab): Mount the IAB TCF banner and dialog inside a React ConsentProvider and configure the CMP ID, policy and vendor data. - [IAB GPP](https://c15t.com/docs/frameworks/react/gpp): Add the IAB Global Privacy Platform API (__gpp) to a React app with ConsentGPP from @c15t/react/gpp, so ad tech can read US state opt-outs and the TCF EU consent string. - [Content Security Policy](https://c15t.com/docs/frameworks/react/content-security-policy): Run c15t in a React app under a Content Security Policy, allow the consent backend and vendor hosts, and pass a nonce to ConsentProvider and ConsentTheme. - [DevTools](https://c15t.com/docs/frameworks/react/components/dev-tools): Inspect consent state, location, loaded scripts and consent events in a React app during development with the c15t DevTools panel. - [Troubleshooting](https://c15t.com/docs/frameworks/react/troubleshooting): Fix a missing banner, early vendor requests, unstyled components and theme warnings in a React app that uses c15t/react. - [Quickstart](https://c15t.com/docs/frameworks/nuxt/quickstart): Add c15t to a server-rendered Nuxt app with the Nuxt module, Inth, consent-gated scripts and a preferences link. - [Nuxt module](https://c15t.com/docs/frameworks/nuxt/module): What the c15t Nuxt module registers, where each option goes between nuxt.config.ts and app.config.ts, and every module option. - [Rendering and deployment](https://c15t.com/docs/frameworks/nuxt/rendering): Choose the c15t Nuxt module's mode and routePrefix for server rendering, prerendered and cached routes, nuxt generate on static hosting, and ssr false. - [Scripts](https://c15t.com/docs/frameworks/nuxt/scripts): Load vendor scripts by consent category in a Nuxt app with the c15t Nuxt module, what happens when a visitor withdraws consent, and how to move off @nuxt/scripts and nuxt-gtag. - [Embeds](https://c15t.com/docs/frameworks/nuxt/embeds): Keep YouTube videos, maps and other iframes out of a Nuxt page until their consent category is allowed, with ConsentGate or the iframe blocker. - [Network blocker](https://c15t.com/docs/frameworks/nuxt/network-blocker): Hold fetch and XMLHttpRequest calls in a Nuxt app until their consent category is allowed, with rules in the c15t module options. - [Vendor consent](https://c15t.com/docs/frameworks/nuxt/vendor-consent): Let visitors allow a category such as marketing in a Nuxt app and still turn off one vendor in it, with the vendors option of the c15t Nuxt module and useConsentDraft. - [Clear on revocation](https://c15t.com/docs/frameworks/nuxt/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a Nuxt app when that category is denied, with the clearOnRevocation option of the c15t Nuxt module. - [Customize](https://c15t.com/docs/frameworks/nuxt/customize): Change the c15t banner and dialog in Nuxt with theme tokens, layout presentation, component slots and copy. - [Translations](https://c15t.com/docs/frameworks/nuxt/translations): Where the c15t banner and dialog text comes from in Nuxt, how the server picks the visitor's language, and how to switch it at runtime. - [Headless](https://c15t.com/docs/frameworks/nuxt/headless): Build your own consent banner and preference form in Nuxt with the auto-imported c15t composables instead of ConsentRoot. - [Components](https://c15t.com/docs/frameworks/nuxt/components): Every c15t component in Nuxt, which ones the Nuxt module registers globally, which you import, and a page for each one's props and behavior. - [ConsentRoot](https://c15t.com/docs/frameworks/nuxt/components/consent-root): Mount the c15t banner, preference dialog and floating trigger in Nuxt with the globally registered ConsentRoot, rendered on the server. - [ConsentBanner](https://c15t.com/docs/frameworks/nuxt/components/consent-banner): Render the c15t consent banner in Nuxt, choose its variant and position, and understand what it shows for each policy. - [ConsentManager](https://c15t.com/docs/frameworks/nuxt/components/consent-manager): Render the c15t preference dialog in Nuxt, open it from your own code, and understand its actions, focus handling and styling. - [ConsentWidget](https://c15t.com/docs/frameworks/nuxt/components/consent-widget): Put the c15t category switches and save actions inline on a Nuxt privacy settings page with the globally registered ConsentWidget. - [ConsentDialogLink](https://c15t.com/docs/frameworks/nuxt/components/consent-dialog-link): Add a Privacy settings button that reopens the c15t preference dialog in Nuxt, and hide it when the policy offers no preferences. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/nuxt/components/consent-dialog-trigger): Show a floating, draggable button that reopens the c15t preference dialog in Nuxt, and configure its corner, size, icon and label. - [ConsentGate](https://c15t.com/docs/frameworks/nuxt/components/consent-gate): Render an iframe or widget in Nuxt only while its consent category is allowed, with the globally registered ConsentGate and a placeholder slot. - [IABConsentBanner](https://c15t.com/docs/frameworks/nuxt/components/iab-consent-banner): Render the IAB TCF first layer in Nuxt with IABConsentBanner, when to import it instead of relying on ConsentRoot, and its props. - [IABConsentDialog](https://c15t.com/docs/frameworks/nuxt/components/iab-consent-dialog): Render the IAB TCF preference centre in Nuxt with IABConsentDialog, choose its first tab, and build a custom one with composables. - [Composables](https://c15t.com/docs/frameworks/nuxt/composables): Every c15t composable the Nuxt module auto-imports, grouped by task, with the difference between a permission and a recorded choice. - [Callbacks](https://c15t.com/docs/frameworks/nuxt/callbacks): Run code in a Nuxt app when a visitor records a consent choice, when permissions change, before a revocation reload, and when c15t reports an error. - [IAB TCF](https://c15t.com/docs/frameworks/nuxt/iab): Turn on IAB TCF in Nuxt with the c15t module's iab option, so visitors under an IAB policy get the IAB banner, preference centre and __tcfapi. - [IAB GPP](https://c15t.com/docs/frameworks/nuxt/gpp): Turn on the IAB Global Privacy Platform API (__gpp) in Nuxt with the c15t Nuxt module's gpp option, so ad tech can read US state opt-outs and the TCF EU consent string. - [Geography headers](https://c15t.com/docs/frameworks/nuxt/geography-headers): Which request headers the c15t Nuxt module reads for the visitor's country, region, language and Global Privacy Control, and how to trust and test them. - [Content Security Policy](https://c15t.com/docs/frameworks/nuxt/content-security-policy): Allow c15t in a Nuxt app under a Content Security Policy, including the theme token style tag, same-origin routes, the backend and vendor scripts. - [DevTools](https://c15t.com/docs/frameworks/nuxt/components/dev-tools): Inspect consent state, the resolved policy, location, scripts and consent events in a Nuxt app during development with ConsentDevTools. - [Troubleshooting](https://c15t.com/docs/frameworks/nuxt/troubleshooting): Fix common c15t Nuxt module problems, from a missing banner and scripts that never load to returning banners and static hosting. - [Quickstart](https://c15t.com/docs/frameworks/vue/quickstart): Add c15t to a Vue 3 app built with Vite, using the Vue plugin, Inth, consent-gated scripts and a preferences link. - [c15tVue plugin](https://c15t.com/docs/frameworks/vue/plugin): Install c15t in a Vue app with app.use(c15tVue), what the plugin starts when the app mounts, and every option it accepts. - [Rendering and deployment](https://c15t.com/docs/frameworks/vue/rendering): Pick where a Vue app's consent policy comes from with the plugin's mode option, host it statically, and why server-rendered Vue apps should use Nuxt. - [Scripts](https://c15t.com/docs/frameworks/vue/scripts): Load vendor scripts by consent category in a Vue app with the c15t Vue plugin, and what happens when a visitor withdraws consent. - [Embeds](https://c15t.com/docs/frameworks/vue/embeds): Keep YouTube videos, maps and other iframes out of a Vue page until their consent category is allowed, with ConsentGate or the iframe blocker. - [Network blocker](https://c15t.com/docs/frameworks/vue/network-blocker): Hold fetch and XMLHttpRequest calls in a Vue app until their consent category is allowed, with rules passed to the c15t Vue plugin. - [Vendor consent](https://c15t.com/docs/frameworks/vue/vendor-consent): Let visitors allow a category such as marketing in a Vue app and still turn off one vendor in it, with the vendors option on the c15tVue plugin and useConsentDraft. - [Clear on revocation](https://c15t.com/docs/frameworks/vue/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a Vue app when that category is denied, with the clearOnRevocation option on the c15tVue plugin. - [Customize](https://c15t.com/docs/frameworks/vue/customize): Change the c15t banner and dialog in a Vue app with theme tokens, layout presentation, component slots and copy. - [Translations](https://c15t.com/docs/frameworks/vue/translations): Where the c15t banner and dialog text comes from in a Vue app, how c15t picks the visitor's language, and how to switch it at runtime. - [Headless](https://c15t.com/docs/frameworks/vue/headless): Build your own consent banner and preference form in a Vue app with the c15t composables instead of ConsentRoot. - [Components](https://c15t.com/docs/frameworks/vue/components): Every c15t Vue component, its import path and what it renders, with a page for each one's props, behavior, accessibility and styling. - [ConsentRoot](https://c15t.com/docs/frameworks/vue/components/consent-root): Mount the c15t banner, preference dialog and floating trigger in a Vue app with one ConsentRoot component from c15t/vue/vue-plugin. - [ConsentBanner](https://c15t.com/docs/frameworks/vue/components/consent-banner): Render the c15t consent banner in a Vue app, choose its variant and position, and understand what it shows for each policy. - [ConsentManager](https://c15t.com/docs/frameworks/vue/components/consent-manager): Render the c15t preference dialog in a Vue app, open it from your own code, and understand its actions, focus handling and styling. - [ConsentWidget](https://c15t.com/docs/frameworks/vue/components/consent-widget): Put the c15t category switches and save actions inline on a Vue privacy settings page with ConsentWidget from c15t/vue/vue-plugin. - [ConsentDialogLink](https://c15t.com/docs/frameworks/vue/components/consent-dialog-link): Add a Privacy settings button that reopens the c15t preference dialog in a Vue app, and hide it when the policy offers no preferences. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/vue/components/consent-dialog-trigger): Show a floating, draggable button that reopens the c15t preference dialog in a Vue app, and configure its corner, size, icon and label. - [ConsentGate](https://c15t.com/docs/frameworks/vue/components/consent-gate): Render an iframe or widget in a Vue app only while its consent category is allowed, with a placeholder slot until then. - [IABConsentBanner](https://c15t.com/docs/frameworks/vue/components/iab-consent-banner): Render the IAB TCF first layer in a Vue app with IABConsentBanner, when to import it instead of relying on ConsentRoot, and its props. - [IABConsentDialog](https://c15t.com/docs/frameworks/vue/components/iab-consent-dialog): Render the IAB TCF preference centre in a Vue app with IABConsentDialog, choose its first tab, and build a custom one with composables. - [Composables](https://c15t.com/docs/frameworks/vue/composables): Every c15t composable for a Vue app, grouped by task, with the difference between a permission and a recorded choice. - [Callbacks](https://c15t.com/docs/frameworks/vue/callbacks): Run code in a Vue app when a visitor records a consent choice, when permissions change, before a revocation reload, and when c15t reports an error. - [IAB TCF](https://c15t.com/docs/frameworks/vue/iab): Turn on IAB TCF in a Vue app with the c15t Vue plugin's iab option, so visitors under an IAB policy get the IAB banner, preference centre and __tcfapi. - [IAB GPP](https://c15t.com/docs/frameworks/vue/gpp): Turn on the IAB Global Privacy Platform API (__gpp) in a Vue app with the c15t Vue plugin's gpp option, so ad tech can read US state opt-outs and the TCF EU consent string. - [Content Security Policy](https://c15t.com/docs/frameworks/vue/content-security-policy): Allow c15t in a Vue app under a Content Security Policy, with a script nonce, the backend in connect-src, and the styles the components inject. - [DevTools](https://c15t.com/docs/frameworks/vue/components/dev-tools): Inspect consent state, the resolved policy, location, scripts and consent events in a Vue app during development with ConsentDevTools. - [Troubleshooting](https://c15t.com/docs/frameworks/vue/troubleshooting): Fix common c15t Vue plugin problems, from unresolved imports and a missing banner to tokens that do not apply and scripts that load twice. - [Quickstart](https://c15t.com/docs/frameworks/astro/quickstart): Add a c15t consent banner, preference dialog and consent-gated scripts to an Astro 5, 6 or 7 site with the c15t integration and Inth, on static or server output. - [Rendering and deployment](https://c15t.com/docs/frameworks/astro/rendering): Choose how c15t resolves consent on an Astro site, from static output with hosted() or browser-resolved manifest() to server output with manifest(), prerendered pages, server islands, ClientRouter and offline development. - [Scripts](https://c15t.com/docs/frameworks/astro/scripts): Load vendor scripts and gated inline scripts on an Astro site only after the visitor allows their consent category, and stop them when consent is withdrawn. - [Embeds](https://c15t.com/docs/frameworks/astro/embeds): Gate YouTube videos, maps, social posts and other iframes on an Astro site so they load only after the visitor allows their consent category, with a custom element or the c15t iframe blocker. - [Network blocker](https://c15t.com/docs/frameworks/astro/network-blocker): Block fetch and XMLHttpRequest calls to tracking hosts on an Astro site until the visitor allows their consent category, with c15t's network blocker rules and an onRequestBlocked handler. - [Vendor consent](https://c15t.com/docs/frameworks/astro/vendor-consent): Let visitors allow a category such as marketing on an Astro site and still turn off one vendor in it, with the vendors option on the c15t() integration and the page client from c15t/astro/client. - [Clear on revocation](https://c15t.com/docs/frameworks/astro/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns on an Astro site when that category is denied, with the clearOnRevocation option of the c15t integration. - [Customize](https://c15t.com/docs/frameworks/astro/customize): Change the c15t banner and preference dialog on an Astro site with theme tokens, button styles, copy, dark mode, legal links and your own stylesheet order, all from the integration options. - [Translations](https://c15t.com/docs/frameworks/astro/translations): Set the language and wording of the c15t banner and preference dialog on an Astro site with the integration's i18n option, from Accept-Language negotiation to per-language message overrides and banner props. - [Components](https://c15t.com/docs/frameworks/astro/components): Every c15t Astro component, from ConsentScript and ConsentBanner to the server island banner, the preference dialog, its link and the IAB TCF surfaces, with import paths and links to each reference. - [ConsentScript](https://c15t.com/docs/frameworks/astro/components/consent-script): Put the c15t ConsentScript component in the head of an Astro layout so the browser starts with the server's consent decision, the right color scheme and your theme tokens. - [ConsentBanner](https://c15t.com/docs/frameworks/astro/components/consent-banner): Render the c15t consent banner as server HTML on an Astro site, with props for copy, legal links and branding, the policy-driven actions, accessibility behavior and the attributes to style it. - [ConsentBannerDeferred](https://c15t.com/docs/frameworks/astro/components/consent-banner-deferred): Render the c15t consent banner in an Astro server island, so a cached or prerendered page still shows each visitor the banner for their own location and stored choice. - [ConsentDialog](https://c15t.com/docs/frameworks/astro/components/consent-dialog): Add the c15t preference dialog to an Astro site as an island that downloads only when a visitor opens it, and control when it loads, which framework renders it, how it opens and which legal links it shows. - [ConsentDialogLink](https://c15t.com/docs/frameworks/astro/components/consent-dialog-link): Add a footer button or link that reopens the c15t preference dialog or the IAB TCF preference center on an Astro site, with no JavaScript of its own. - [IABConsentBanner](https://c15t.com/docs/frameworks/astro/components/iab-consent-banner): Render the IAB TCF 2.4 banner as server HTML on an Astro site with c15t, with the purposes, partner count and actions TCF requires, its props, accessibility and styling attributes. - [IABConsentDialog](https://c15t.com/docs/frameworks/astro/components/iab-consent-dialog): Add the IAB TCF 2.4 preference center to an Astro site with c15t as an island that loads the TCF code only when a visitor opens it. - [Client API](https://c15t.com/docs/frameworks/astro/client-api): Reference for c15t/astro/client on an Astro site, grouped by task, from reading permissions and recorded choices to opening dialogs, saving consent, gated scripts, the page runtime and analytics events. - [Callbacks](https://c15t.com/docs/frameworks/astro/callbacks): Run your own code on an Astro site when a visitor records a consent choice, when permissions change, before a revocation reload and on errors, with c15t callbacks in the client entrypoint. - [IAB TCF](https://c15t.com/docs/frameworks/astro/iab): Render the IAB TCF 2.4 banner and preference center on an Astro site with the c15t integration, and configure the CMP ID, vendor list source and publisher restrictions. - [IAB GPP](https://c15t.com/docs/frameworks/astro/gpp): Expose the IAB Global Privacy Platform API (__gpp) on an Astro site with the c15t integration's gpp option, so ad tech can read US state opt-outs and the TCF EU consent string. - [Geography headers](https://c15t.com/docs/frameworks/astro/geography-headers): Which request headers the c15t Astro middleware reads for the visitor's country, region, language and Global Privacy Control, how to check your host sends them, and how to test a region locally. - [Content Security Policy](https://c15t.com/docs/frameworks/astro/content-security-policy): Run c15t on an Astro site under a strict Content Security Policy, with a per-request nonce from your middleware or with Astro's own hash-based CSP, and allow the consent backend and vendors. - [Islands](https://c15t.com/docs/frameworks/astro/islands): Choose whether React, Vue or Svelte renders the c15t preference dialog on an Astro site, and read consent from your own framework islands through the page's shared consent runtime. - [Integration options](https://c15t.com/docs/frameworks/astro/integration): Reference for every option of the c15t() Astro integration, the Astro equivalent of a consent provider, from backendURL, mode and routePrefix to ui, theme, i18n, middleware and the client entrypoint. - [Server API](https://c15t.com/docs/frameworks/astro/server): How the c15t middleware resolves consent for each Astro request, what Astro.locals.c15t holds, the helpers in c15t/astro/server, the injected consent route, and how to cache server-rendered pages safely. - [Troubleshooting](https://c15t.com/docs/frameworks/astro/troubleshooting): Fix common c15t problems on Astro sites, from build errors about adapters and UI integrations to a missing banner, scripts that run too early, unstyled dialogs and saves that fail. - [Quickstart](https://c15t.com/docs/frameworks/svelte/quickstart): Add a c15t cookie banner, preference dialog and consent-gated scripts to a Svelte 5 app built with Vite, with your Inth policy bundled at build time. - [Scripts](https://c15t.com/docs/frameworks/svelte/scripts): Load vendor scripts, iframes and network requests in a Svelte app only after the visitor allows their consent category, and stop them when consent is withdrawn. - [Embeds](https://c15t.com/docs/frameworks/svelte/embeds): Keep YouTube videos, maps and other iframes out of a Svelte page until their consent category is allowed, with ConsentGate or the iframe blocker. - [Network blocker](https://c15t.com/docs/frameworks/svelte/network-blocker): Hold fetch and XMLHttpRequest calls to tracking domains in a Svelte app until their consent category is allowed, with the provider's networkBlocker option. - [Vendor consent](https://c15t.com/docs/frameworks/svelte/vendor-consent): Let visitors allow a category such as marketing in a Svelte app and still turn off one vendor in it, with the vendors prop on ConsentProvider and getConsentManager. - [Clear on revocation](https://c15t.com/docs/frameworks/svelte/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a Svelte app when that category is denied, with the clearOnRevocation prop on ConsentProvider. - [Customize](https://c15t.com/docs/frameworks/svelte/customize): Change c15t's colors, shape, button styles and copy in a Svelte app with a token stylesheet, theme slots, presentation props and translations. - [Translations](https://c15t.com/docs/frameworks/svelte/translations): Change c15t banner and dialog copy in a Svelte app with component text props or the provider's i18n option, and switch languages at runtime. - [Primitives](https://c15t.com/docs/frameworks/svelte/components/primitives): Build your own accessible consent dialog in Svelte with the Dialog, Switch, Tabs, Accordion and PreferenceItem primitives and the focusTrap, scrollLock and portal actions. - [Headless](https://c15t.com/docs/frameworks/svelte/headless): Replace the c15t banner or preference dialog with your own Svelte markup while the provider keeps policy, storage and script loading. - [Components](https://c15t.com/docs/frameworks/svelte/components): Props and behavior of every @c15t/svelte component in a Svelte app, from ConsentProvider and ConsentBanner to ConsentGate and DevTools. - [ConsentProvider](https://c15t.com/docs/frameworks/svelte/components/consent-provider): Mount ConsentProvider at the root of a Svelte app to start c15t, with every prop, its default, and which options update after mount. - [ConsentBanner](https://c15t.com/docs/frameworks/svelte/components/consent-banner): Show the c15t cookie banner in a Svelte app with ConsentBanner, and set its variant, position, button layout, copy, accessibility and styling hooks. - [ConsentDialog](https://c15t.com/docs/frameworks/svelte/components/consent-dialog): Add the c15t preference dialog to a Svelte app with ConsentDialog, including how it loads on first use, its props, keyboard behavior and theme slots. - [ConsentWidget](https://c15t.com/docs/frameworks/svelte/components/consent-widget): Put c15t's category switches inline on a Svelte privacy settings page with ConsentWidget, and how its draft, vendors and stale-policy alert behave. - [ConsentDialogLink](https://c15t.com/docs/frameworks/svelte/components/consent-dialog-link): Let visitors reopen c15t preferences from a Svelte footer with ConsentDialogLink, an unstyled button that renders only when the policy offers preferences. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/svelte/components/consent-dialog-trigger): Add a floating, draggable privacy button to a Svelte app with ConsentDialogTrigger, and set its corner, size, saved position, accessible name and callbacks. - [ConsentGate](https://c15t.com/docs/frameworks/svelte/components/consent-gate): Keep a YouTube video or map out of a Svelte page until its consent category is allowed with ConsentGate, and replace its placeholder. - [ConsentButton](https://c15t.com/docs/frameworks/svelte/components/consent-button): Accept, reject, save or open preferences from your own Svelte markup with ConsentButton, and what each action records. - [IABConsentBanner](https://c15t.com/docs/frameworks/svelte/components/iab-consent-banner): Show the IAB TCF 2.4 first-layer banner to visitors under an IAB policy in a Svelte app with IABConsentBanner, its props and behavior. - [IABConsentDialog](https://c15t.com/docs/frameworks/svelte/components/iab-consent-dialog): Show the IAB TCF 2.4 preference center with purposes, features and vendors in a Svelte app with IABConsentDialog. - [Context getters](https://c15t.com/docs/frameworks/svelte/getters): Reference for every @c15t/svelte context getter in a Svelte app, from reading permissions and recorded choices to saving, the draft, IAB state and kernel events. - [Callbacks](https://c15t.com/docs/frameworks/svelte/callbacks): Run your own code in a Svelte app when a visitor records a choice or permissions change, with onChoiceRecorded, onPermissionsChanged and script callbacks. - [IAB TCF](https://c15t.com/docs/frameworks/svelte/iab): Turn on the IAB TCF 2.4 banner and preference center in a Svelte app with IABConsentBanner, IABConsentDialog and the provider's iab option. - [IAB GPP](https://c15t.com/docs/frameworks/svelte/gpp): Expose the IAB Global Privacy Platform API (__gpp) from a Svelte app with the provider's gpp option, so ad tech can read US state opt-outs and the TCF EU consent string. - [Content Security Policy](https://c15t.com/docs/frameworks/svelte/content-security-policy): Write a Content Security Policy for a Svelte app using c15t, with the hosts to allow, the provider's nonce option and what c15t injects. - [DevTools](https://c15t.com/docs/frameworks/svelte/components/dev-tools): Inspect consent, scripts, location and events in a Svelte app with ConsentDevTools from @c15t/svelte/devtools, loaded only in development. - [Troubleshooting](https://c15t.com/docs/frameworks/svelte/troubleshooting): Fix a Vite build that cannot fetch the c15t manifest, a missing bundled policy, a missing banner, a wrong backend URL, ignored theme colors and vendors that load before consent in a Svelte app. - [Quickstart](https://c15t.com/docs/frameworks/sveltekit/quickstart): Bundle your c15t policy into a SvelteKit server at build time, resolve consent in the root layout load so the banner is in the server HTML, then hydrate ConsentRoot with consent-gated scripts and a preferences link. - [Rendering and deployment](https://c15t.com/docs/frameworks/sveltekit/rendering): Use the recommended build-time manifest for SvelteKit server rendering, choose runtime fetching for policy updates without a rebuild, and handle prerendered pages, static sites and SPA mode. - [Scripts](https://c15t.com/docs/frameworks/sveltekit/scripts): Load vendor scripts, iframes and network requests in a SvelteKit app only after the visitor allows their consent category, and stop them when consent is withdrawn. - [Embeds](https://c15t.com/docs/frameworks/sveltekit/embeds): Keep YouTube videos, maps and other iframes out of SvelteKit server HTML and the browser until their consent category is allowed. - [Network blocker](https://c15t.com/docs/frameworks/sveltekit/network-blocker): Hold browser fetch and XMLHttpRequest calls to tracking domains in a SvelteKit app until their consent category is allowed, with the networkBlocker option. - [Vendor consent](https://c15t.com/docs/frameworks/sveltekit/vendor-consent): Let visitors allow a category such as marketing in a SvelteKit app and still turn off one vendor in it, with the vendors prop on ConsentRoot and getConsentManager. - [Clear on revocation](https://c15t.com/docs/frameworks/sveltekit/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a SvelteKit app when that category is denied, with the clearOnRevocation prop on ConsentRoot. - [Customize](https://c15t.com/docs/frameworks/sveltekit/customize): Render c15t brand colors on the SvelteKit server with generateThemeCSS, and change slots, button styles, banner shape and copy. - [Translations](https://c15t.com/docs/frameworks/sveltekit/translations): Change c15t banner and dialog copy in a SvelteKit app, where the server-resolved consent carries the translations for the request's language. - [Primitives](https://c15t.com/docs/frameworks/sveltekit/components/primitives): Build your own accessible consent dialog in SvelteKit with the Dialog, Switch, Tabs, Accordion and PreferenceItem primitives and the focusTrap, scrollLock and portal actions. - [Headless](https://c15t.com/docs/frameworks/sveltekit/headless): Replace the c15t banner or preference dialog with your own markup in a SvelteKit app while the provider keeps policy, storage and script loading. - [Components](https://c15t.com/docs/frameworks/sveltekit/components): Props and behavior of every @c15t/svelte component in a SvelteKit app, from ConsentRoot and ConsentBanner to ConsentGate and DevTools. - [ConsentRoot](https://c15t.com/docs/frameworks/sveltekit/components/consent-root): Mount ConsentRoot in a SvelteKit root layout with the state loadConsent returns, so the banner is in the first HTML, with every prop and its default. - [ConsentBanner](https://c15t.com/docs/frameworks/sveltekit/components/consent-banner): Show the c15t cookie banner in SvelteKit server HTML with ConsentBanner, and set its variant, position, button layout, copy, accessibility and styling hooks. - [ConsentDialog](https://c15t.com/docs/frameworks/sveltekit/components/consent-dialog): Add the c15t preference dialog to a SvelteKit root layout with ConsentDialog, including how it loads after hydration, its props, keyboard behavior and theme slots. - [ConsentWidget](https://c15t.com/docs/frameworks/sveltekit/components/consent-widget): Put c15t's category switches inline on a SvelteKit privacy settings route with ConsentWidget, and how its draft, vendors and stale-policy alert behave. - [ConsentDialogLink](https://c15t.com/docs/frameworks/sveltekit/components/consent-dialog-link): Let visitors reopen c15t preferences from a SvelteKit layout footer with ConsentDialogLink, rendered in server HTML when the policy offers preferences. - [ConsentDialogTrigger](https://c15t.com/docs/frameworks/sveltekit/components/consent-dialog-trigger): Add a floating, draggable privacy button to a SvelteKit layout with ConsentDialogTrigger, and set its corner, size, saved position, accessible name and callbacks. - [ConsentGate](https://c15t.com/docs/frameworks/sveltekit/components/consent-gate): Keep a YouTube video or map out of SvelteKit server HTML until its consent category is allowed with ConsentGate, and replace its placeholder. - [ConsentButton](https://c15t.com/docs/frameworks/sveltekit/components/consent-button): Accept, reject, save or open preferences from SvelteKit pages with ConsentButton, and what each action records. - [IABConsentBanner](https://c15t.com/docs/frameworks/sveltekit/components/iab-consent-banner): Show the IAB TCF 2.4 first-layer banner to visitors under an IAB policy in a SvelteKit app with IABConsentBanner, its props and behavior. - [IABConsentDialog](https://c15t.com/docs/frameworks/sveltekit/components/iab-consent-dialog): Show the IAB TCF 2.4 preference center with purposes, features and vendors in a SvelteKit app with IABConsentDialog. - [Context getters](https://c15t.com/docs/frameworks/sveltekit/getters): Reference for every @c15t/svelte context getter in SvelteKit components, from reading permissions and recorded choices to saving, the draft, IAB state and events. - [Callbacks](https://c15t.com/docs/frameworks/sveltekit/callbacks): Run your own code in a SvelteKit app when a visitor records a choice or permissions change, with onChoiceRecorded, onPermissionsChanged and script callbacks. - [IAB TCF](https://c15t.com/docs/frameworks/sveltekit/iab): Turn on the IAB TCF 2.4 banner and preference center in a SvelteKit app with IABConsentBanner, IABConsentDialog and the provider's iab option. - [IAB GPP](https://c15t.com/docs/frameworks/sveltekit/gpp): Expose the IAB Global Privacy Platform API (__gpp) from a SvelteKit app with the provider's gpp option, so ad tech can read US state opt-outs and the TCF EU consent string. - [Geography headers](https://c15t.com/docs/frameworks/sveltekit/geography-headers): Which request headers SvelteKit's c15t helpers read for country, region, language and Global Privacy Control, how to trust them, and how to test another location. - [Content Security Policy](https://c15t.com/docs/frameworks/sveltekit/content-security-policy): Write a Content Security Policy for a SvelteKit app using c15t with SvelteKit's csp option, covering vendor hosts, c15t's style elements, the server-rendered theme style and style attributes. - [Server API](https://c15t.com/docs/frameworks/sveltekit/server-api): Reference for c15tHandle, loadConsent, createConsentRoute and resolveConsent from @c15t/svelte/kit and @c15t/svelte/server, with every option and default. - [DevTools](https://c15t.com/docs/frameworks/sveltekit/components/dev-tools): Inspect consent, scripts, location and events in a SvelteKit app with ConsentDevTools, imported only when $app/env reports development. - [Troubleshooting](https://c15t.com/docs/frameworks/sveltekit/troubleshooting): Fix a SvelteKit build that cannot fetch the c15t manifest, a missing bundled policy, a banner missing from server HTML, failed saves through the consent route, a wrong backend URL and ignored theme colors. - [Quickstart](https://c15t.com/docs/frameworks/html/quickstart): Add the c15t banner, preferences and script gating to a plain HTML site, CMS theme, page builder or static site generator with one script tag and no build step. - [Install on your platform](https://c15t.com/docs/frameworks/html/platforms): Where to paste the c15t script tag, gated vendor snippets and the privacy settings link in WordPress, Webflow, Shopify, Squarespace, Wix, Framer, Ghost, Hugo, Eleventy and Jekyll. - [Scripts](https://c15t.com/docs/frameworks/html/scripts): Hold vendor scripts on a plain HTML page until the visitor allows their category, load scripts with callbacks, handle withdrawal and clear vendor cookies with the c15t script tag and no build step. - [Embeds](https://c15t.com/docs/frameworks/html/embeds): Hold YouTube videos, maps and other iframes on a plain HTML page until their consent category is allowed with data-src and data-category, show a placeholder, and configure the c15t iframe blocker. - [Network blocker](https://c15t.com/docs/frameworks/html/network-blocker): Hold fetch and XMLHttpRequest calls from a plain HTML page until their consent category is allowed, with network blocker rules queued on the c15t script tag. - [Vendor consent](https://c15t.com/docs/frameworks/html/vendor-consent): Let visitors allow a category such as marketing on a plain HTML page and still turn off one vendor in it, with the vendors option, data-c15t-vendor on gated tags and the vendor switches in the c15t script tag's preference dialog. - [Clear on revocation](https://c15t.com/docs/frameworks/html/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns on a plain HTML page when that category is denied, with the clearOnRevocation option of the c15t script tag. - [Customize](https://c15t.com/docs/frameworks/html/customize): Change the c15t script tag banner on a plain HTML site with theme tokens, extra CSS, layout, copy and legal links, or replace it with your own HTML. - [Translations](https://c15t.com/docs/frameworks/html/translations): Choose the language of the c15t banner and preference dialog on a plain HTML site, change its wording, and add languages in hosted and offline mode with the script tag. - [Headless](https://c15t.com/docs/frameworks/html/headless): Render your own consent banner and preferences in plain HTML with c15t.headless.js, the ui event and data-c15t-action buttons, while c15t keeps resolving the policy, storing choices and gating scripts. - [Components](https://c15t.com/docs/frameworks/html/components): Every consent surface and page hook the c15t script tag gives a plain HTML site, from the stock banner and preference dialog to data-c15t-action buttons and gated scripts and iframes. - [Banner](https://c15t.com/docs/frameworks/html/components/banner): The stock consent banner the c15t script tag shows on a plain HTML site, with its options, layouts, policy-driven buttons, keyboard behavior and data-testid styling hooks. - [Preference dialog](https://c15t.com/docs/frameworks/html/components/dialog): The stock c15t preference dialog on a plain HTML site, where visitors change each consent category, with how it opens, which categories it lists, its options, keyboard behavior and styling hooks. - [Floating trigger](https://c15t.com/docs/frameworks/html/components/trigger): Add the c15t floating button that reopens the preference dialog on a plain HTML site, and set its corner, size, visibility and accessible name. - [Action buttons](https://c15t.com/docs/frameworks/html/components/action-buttons): Make your own HTML buttons accept, reject, open preferences, dismiss a notice or reopen the banner with the data-c15t-action attribute and the c15t script tag, with no JavaScript. - [Preferences link](https://c15t.com/docs/frameworks/html/components/preferences-link): Let visitors reopen c15t privacy settings on a plain HTML site from a footer link, a CMS menu item or a page builder link to the c15t-preferences fragment, with no JavaScript. - [Gated scripts](https://c15t.com/docs/frameworks/html/components/gated-script): Hold a vendor's script tag on a plain HTML page until its consent category is allowed with type="text/plain" and data-c15t-category, including load order, copied attributes and what happens on withdrawal. - [window.c15t API](https://c15t.com/docs/frameworks/html/api): Reference for window.c15t on a plain HTML page, covering the call queue, manual start, reading permissions and recorded choices, saving choices, opening the banner and dialog, and properties. - [Callbacks](https://c15t.com/docs/frameworks/html/callbacks): Run code on a plain HTML page when c15t resolves the policy, when a visitor records a choice, when permissions change or when a request fails, with window.c15t events, DOM events and config callbacks. - [IAB TCF](https://c15t.com/docs/frameworks/html/iab): Load the c15t IAB TCF build on a plain HTML page with one script tag, configure the CMP ID and vendors, and confirm TC strings from your own code. - [IAB GPP](https://c15t.com/docs/frameworks/html/gpp): Add the IAB Global Privacy Platform API (__gpp) to a plain HTML page with the c15t.gpp.js script tag, so ad tech can read US state opt-outs and the TCF EU consent string. - [Content Security Policy](https://c15t.com/docs/frameworks/html/content-security-policy): Allow the c15t script tag, its stylesheet, backend requests, gated scripts and embeds under a Content Security Policy on a plain HTML site, with nonces or allowed origins. - [Script tag attributes](https://c15t.com/docs/frameworks/html/attributes-and-api): Reference for the c15t script tag on plain HTML pages, covering the bundle files, every data attribute on the script tag, the DevTools tag and your own markup, and the modes the attributes select. - [Configuration](https://c15t.com/docs/frameworks/html/configuration): Every option you can pass to the c15t script tag on a plain HTML page through a queued config call, including scripts with callbacks, the network blocker, theme tokens, presentation, translations and storage. - [DevTools](https://c15t.com/docs/frameworks/html/dev-tools): Add the c15t DevTools panel to a plain HTML page with a second script tag to inspect consent, gated scripts, the resolved policy and events, and to test other countries. - [Troubleshooting](https://c15t.com/docs/frameworks/html/troubleshooting): Fix a missing banner, vendor scripts that run before consent, script tag errors and blocked requests on a plain HTML site that uses the c15t script tag. - [Quickstart](https://c15t.com/docs/frameworks/javascript/quickstart): Add the stock c15t banner, preferences and script gating to a JavaScript app built with Vite or another bundler, with no UI framework, using @c15t/browser. - [Upgrade from v2](https://c15t.com/docs/frameworks/javascript/upgrade-v3): Upgrade a JavaScript app from the c15t v2 store and getOrCreateConsentRuntime to v3. Covers @c15t/browser, createConsentRuntime, the consent kernel, moved exports, callbacks, policies and stored consent. - [Scripts](https://c15t.com/docs/frameworks/javascript/scripts): Register vendor scripts with @c15t/browser, createConsentRuntime or a consent kernel in JavaScript, and control what happens when a visitor withdraws permission. - [Iframe blocker](https://c15t.com/docs/frameworks/javascript/modules/iframe-blocker): Hold YouTube videos, maps and other embeds in a JavaScript app until their consent category is allowed, with data-src iframes and the c15t iframe blocker in @c15t/browser, createConsentRuntime or your own kernel. - [Network blocker](https://c15t.com/docs/frameworks/javascript/modules/network-blocker): Hold fetch and XMLHttpRequest calls in a JavaScript app until their consent category is allowed, with networkBlocker rules in @c15t/browser or createConsentRuntime, or createNetworkBlocker on your own kernel. - [Vendor consent](https://c15t.com/docs/frameworks/javascript/vendor-consent): Let visitors allow a category such as marketing in a JavaScript app and still turn off one vendor in it, with the vendors option on createConsentRuntime and a vendor switch you render yourself. - [Clear on revocation](https://c15t.com/docs/frameworks/javascript/clear-on-revocation): Delete the first-party cookies and Web Storage keys a consent category owns in a JavaScript app when that category is denied, with clearOnRevocation on init() or createConsentRuntime, or createClearOnRevocation on your own kernel. - [Customize](https://c15t.com/docs/frameworks/javascript/customize): Change the stock @c15t/browser banner, preference dialog and floating trigger in a bundled JavaScript app with theme tokens, CSS, layout, copy, legal links and UI options. - [Translations](https://c15t.com/docs/frameworks/javascript/translations): Choose the language of the c15t banner and preference dialog in a JavaScript app, change its wording with i18n, and add languages with @c15t/browser or createConsentRuntime. - [Headless](https://c15t.com/docs/frameworks/javascript/headless): Render your own consent banner and preferences in JavaScript, or connect a framework without a c15t adapter such as Solid, with createConsentRuntime from c15t/runtime. - [@c15t/browser API](https://c15t.com/docs/frameworks/javascript/api/browser): Reference for the @c15t/browser ES module in a bundled JavaScript app, covering its entry points, init and createConsentClient, the client's methods and properties, events, page hooks and helper exports. - [Callbacks](https://c15t.com/docs/frameworks/javascript/callbacks): Run code in a JavaScript app when a visitor records a consent choice, when permissions change, when a request fails or before the withdrawal reload, with c15t callbacks, client events and kernel events. - [IAB TCF](https://c15t.com/docs/frameworks/javascript/iab): Add IAB TCF to a JavaScript app with the @c15t/browser IAB build, or attach the IAB module to a consent runtime or kernel you own. - [IAB GPP](https://c15t.com/docs/frameworks/javascript/gpp): Add the IAB Global Privacy Platform API (__gpp) to a JavaScript app with mountGPP from @c15t/browser/gpp, so ad tech can read US state opt-outs and the TCF EU consent string. - [Transports](https://c15t.com/docs/frameworks/javascript/transports): Choose where a JavaScript app's c15t policy comes from and where choices go, with the hosted, manifest, offline and custom transports for @c15t/browser, createConsentRuntime and your own kernel. - [Content Security Policy](https://c15t.com/docs/frameworks/javascript/content-security-policy): Allow c15t in a JavaScript app under a Content Security Policy, covering backend requests, the stock UI's styles, nonces for vendor scripts and gated snippets, and embeds. - [@c15t/browser options](https://c15t.com/docs/frameworks/javascript/api/browser-options): Every option init() and createConsentClient() from @c15t/browser accept in a bundled JavaScript app, from the mode to scripts, blockers, callbacks, storage, presentation and the stock UI. - [createConsentRuntime](https://c15t.com/docs/frameworks/javascript/api/runtime): Reference for createConsentRuntime from c15t/runtime, the framework-agnostic consent runtime behind every c15t adapter, with every option, what start and dispose do, and the runtime handle's methods. - [Kernel API](https://c15t.com/docs/frameworks/javascript/api/kernel): Reference for the c15t consent kernel in JavaScript, covering how to get or create one, its snapshot and subscriptions, commands, setters, hydration, events and listener ordering. - [Consent snapshot](https://c15t.com/docs/frameworks/javascript/api/snapshot): Reference for every field of the c15t consent snapshot a JavaScript app reads from the kernel, @c15t/browser or createConsentRuntime, grouped by the question each field answers. - [Script loader](https://c15t.com/docs/frameworks/javascript/modules/script-loader): Reference for the c15t script loader in JavaScript, covering every Script field, lifecycle callbacks, updateScripts, disposal and createScriptLoader for a kernel you own. - [Persistence](https://c15t.com/docs/frameworks/javascript/modules/persistence): How c15t stores consent choices in a JavaScript app, with the storage key, cookie domain and lifetime options, multi-tab sync, reconcile and clear, and createPersistence for your own kernel. - [DevTools](https://c15t.com/docs/frameworks/javascript/dev-tools): Mount the c15t DevTools panel in a JavaScript app to inspect consent, scripts, policy and events for @c15t/browser, a consent runtime or a kernel. - [Troubleshooting](https://c15t.com/docs/frameworks/javascript/troubleshooting): Diagnose vendor scripts that run early, unexpected reloads, empty custom banners, CORS errors, duplicate consent owners and policy resolution in a JavaScript app that uses @c15t/browser or c15t/runtime. - [Integrations](https://c15t.com/docs/integrations/overview): Find all c15t integrations for analytics, tag managers, advertising, email and SMS, chat and embedded content. - [Custom integrations](https://c15t.com/docs/integrations/building-integrations): Gate a vendor that has no @c15t/integrations helper, or sync consent with an SDK your app already loads, using a c15t script configuration. - [Google Maps](https://c15t.com/docs/integrations/google-maps): Gate a Google Maps iframe embed with c15t v3 so the map loads only after the visitor allows its consent category, in Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit, HTML or JavaScript. - [YouTube](https://c15t.com/docs/integrations/youtube): Gate YouTube embeds with c15t v3 in Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit or JavaScript. - [Google Tag Manager](https://c15t.com/docs/integrations/google-tag-manager): Load a Google Tag Manager container before or after consent with c15t Consent Mode v2 signals, configure consent checks inside the container, and verify both in DevTools. - [Cloudflare Zaraz](https://c15t.com/docs/integrations/cloudflare-zaraz): Sync c15t permissions to Cloudflare Zaraz purposes with the c15t cloudflareZaraz bridge, which runs on every page without loading a script, and check the tools it controls. - [Google Tag](https://c15t.com/docs/integrations/google-tag): Load gtag.js for Google Analytics or Google Ads before or after consent with c15t Consent Mode v2 signals, and verify the consent commands in DevTools. - [Ahrefs Analytics](https://c15t.com/docs/integrations/ahrefs-analytics): Load Ahrefs Web Analytics only after measurement consent with the c15t ahrefsAnalytics helper, and check it in DevTools. - [Adobe Analytics](https://c15t.com/docs/integrations/adobe-analytics): Load an Adobe Data Collection Tags property only after measurement consent with the c15t adobeAnalytics helper, and check its extensions in DevTools. - [Amplitude](https://c15t.com/docs/integrations/amplitude): Load the Amplitude Browser SDK 2 only after measurement consent with the c15t amplitude helper, which opts the SDK out on revocation and back in on a new grant. - [Cloudflare Web Analytics](https://c15t.com/docs/integrations/cloudflare-web-analytics): Load the Cloudflare Web Analytics beacon only after measurement consent with the c15t cloudflareWebAnalytics helper, and check it in DevTools. - [Clearbit](https://c15t.com/docs/integrations/clearbit): Load the Clearbit enrichment tag only after marketing consent with the c15t clearbit helper, and check it in DevTools. - [Microsoft Clarity](https://c15t.com/docs/integrations/microsoft-clarity): Load Microsoft Clarity only after measurement consent with the c15t clarity helper, send Consent V2 storage signals and check them in DevTools. - [Databuddy](https://c15t.com/docs/integrations/databuddy): Load the Databuddy SDK on every page with the c15t databuddy helper, switch its disabled flag and config from measurement consent, and check both in DevTools. - [Fathom Analytics](https://c15t.com/docs/integrations/fathom-analytics): Load Fathom Analytics only after measurement consent with the c15t fathomAnalytics helper, set its SPA mode, and check it in DevTools. - [Heap](https://c15t.com/docs/integrations/heap): Load the Heap config script and heap.js only after measurement consent with the c15t heap helper, and check it in DevTools. - [Matomo Analytics](https://c15t.com/docs/integrations/matomo-analytics): Load Matomo after measurement consent with the c15t matomoAnalytics helper, or use Matomo's own consent mode, and check each mode in DevTools. - [Mixpanel](https://c15t.com/docs/integrations/mixpanel-analytics): Load the Mixpanel SDK on every page with the c15t mixpanelAnalytics helper, which switches Mixpanel tracking on and off with measurement consent, and check it in DevTools. - [OneDollarStats](https://c15t.com/docs/integrations/one-dollar-stats): Load the OneDollarStats tracker only after measurement consent with the c15t oneDollarStats helper, forward its data-attribute settings, and check it in DevTools. - [Hotjar](https://c15t.com/docs/integrations/hotjar): Load Hotjar only after measurement consent with the c15t hotjar helper, and check its loader and recordings in DevTools. - [Hightouch](https://c15t.com/docs/integrations/hightouch): Load the Hightouch Events browser SDK only after measurement consent with the c15t hightouch helper, and check page events in DevTools. - [LogRocket](https://c15t.com/docs/integrations/logrocket): Load LogRocket session replay only after measurement consent with the c15t logRocket helper, including proxied setups, and check it in DevTools. - [Plausible Analytics](https://c15t.com/docs/integrations/plausible-analytics): Load the Plausible Analytics tracker only after measurement consent with the c15t plausibleAnalytics helper, and check it in DevTools. - [PostHog](https://c15t.com/docs/integrations/posthog): Load PostHog before or after measurement consent with the c15t posthog helper, choose its cookieless behavior, turn off PostHog modules you do not use, and sync consent with an SDK you already initialize. - [Promptwatch](https://c15t.com/docs/integrations/promptwatch): Load the Promptwatch attribution client only after measurement consent with the c15t promptwatch helper, and check it in DevTools. - [Pirsch](https://c15t.com/docs/integrations/pirsch): Load Pirsch Analytics only after measurement consent with the c15t pirsch helper, keep custom event bindings working, and check it in DevTools. - [RudderStack](https://c15t.com/docs/integrations/rudderstack): Load the RudderStack JavaScript SDK after measurement consent with the c15t rudderstack helper, or map c15t categories to destination consent IDs, and check each mode. - [Segment](https://c15t.com/docs/integrations/segment): Load Segment Analytics.js only after measurement consent with the c15t segment helper, guard your own track and identify calls, and check it in DevTools. - [Sentry](https://c15t.com/docs/integrations/sentry): Configure Sentry's CDN or your own SDK with consent for error monitoring, Session Replay and user data. - [Rybbit Analytics](https://c15t.com/docs/integrations/rybbit-analytics): Load Rybbit Analytics only after measurement consent with the c15t rybbitAnalytics helper, map its tracking options to data attributes, and check it in DevTools. - [Umami Analytics](https://c15t.com/docs/integrations/umami-analytics): Load the Umami Analytics tracker only after measurement consent with the c15t umamiAnalytics helper, point it at a self-hosted instance, and check it in DevTools. - [Vercel Analytics](https://c15t.com/docs/integrations/vercel-analytics): Load the Vercel Web Analytics script only after measurement consent with the c15t vercelAnalytics helper, choose the debug script, and check it in DevTools. - [Crisp](https://c15t.com/docs/integrations/crisp): Load the Crisp chat widget only after functionality consent with the c15t crisp helper, pass its runtime settings and check it in DevTools. - [Front Chat](https://c15t.com/docs/integrations/front-chat): Load the Front Chat widget only after functionality consent with the c15t frontChat helper, forward CSP nonces, clear the session on revocation and check it in DevTools. - [Intercom](https://c15t.com/docs/integrations/intercom): Load the Intercom messenger only after functionality consent with the c15t intercom helper, set its region and check it in DevTools. - [Klaviyo](https://c15t.com/docs/integrations/klaviyo): Load Klaviyo signup forms and onsite tracking only after marketing and measurement consent with the c15t klaviyo helper, gate your own events, and check it in DevTools. - [Meta Pixel](https://c15t.com/docs/integrations/meta-pixel): Load the Meta Pixel only after marketing consent with the c15t metaPixel helper, guard fbq event calls, and check it in DevTools. - [OpenAI Pixel](https://c15t.com/docs/integrations/openai-pixel): Load the ChatGPT Ads Measurement Pixel only after marketing consent with the c15t openaiPixel helper, guard oaiq conversion calls, and check it in DevTools. - [Pinterest Tag](https://c15t.com/docs/integrations/pinterest-tag): Load the Pinterest Tag only after marketing consent with the c15t pinterestTag helper, guard pintrk event calls, and check it in DevTools. - [Reddit Pixel](https://c15t.com/docs/integrations/reddit-pixel): Load the Reddit Pixel only after marketing consent with the c15t redditPixel helper, guard rdt conversion calls, and check it in DevTools. - [TikTok Pixel](https://c15t.com/docs/integrations/tiktok-pixel): Load the TikTok Pixel only after marketing consent with the c15t tiktokPixel helper, guard ttq event calls, and check it in DevTools. - [LinkedIn Insight Tag](https://c15t.com/docs/integrations/linkedin-insights): Load the LinkedIn Insight Tag only after marketing consent with the c15t linkedinInsights helper, guard lintrk conversion calls, and check it in DevTools. - [Microsoft UET](https://c15t.com/docs/integrations/microsoft-uet): Load Microsoft Advertising UET on every page with the c15t microsoftUet helper, send ad_storage consent defaults and updates, and verify both in DevTools. - [Snapchat Pixel](https://c15t.com/docs/integrations/snapchat-pixel): Load the Snapchat Pixel only after marketing consent with the c15t snapchatPixel helper, guard snaptr event calls, and check it in DevTools. - [X Pixel](https://c15t.com/docs/integrations/x-pixel): Load the X Pixel only after marketing consent with the c15t xPixel helper, guard twq conversion events, and check it in DevTools. - [Backend overview](https://c15t.com/docs/self-host/overview): What the c15t consent backend does, and when to use Inth or run @c15t/backend yourself with your own SQL database. - [Self-host the backend](https://c15t.com/docs/self-host/quickstart): Run the c15t consent backend yourself with @c15t/backend, create its database schema with the CLI, mount it in Next.js, TanStack Start, Nuxt, SvelteKit or another server, and point your app at it. - [Upgrade from v2](https://c15t.com/docs/self-host/upgrade-v3): Upgrade a self-hosted c15t backend (@c15t/backend) and the Node.js SDK (@c15t/node-sdk) from v2 to v3. Covers the database config, the schema migration, moved backend options, policy rules and the new createC15tClient() client. - [Backend database setup](https://c15t.com/docs/self-host/guides/database-setup): Connect a self-hosted c15t backend to PostgreSQL, MySQL or SQLite, apply migrations, and upgrade a v2 backend database. - [Policy configuration](https://c15t.com/docs/self-host/guides/policy-packs): Author and validate the policy rules published by a self-hosted backend manifest. - [Caching](https://c15t.com/docs/self-host/guides/caching): Cache public manifests and vendor lists while keeping request-specific initialization and subject state private. - [Deployment runtimes](https://c15t.com/docs/self-host/guides/edge-deployment): Choose a backend runtime that supports your SQL driver and deploy static or edge-rendered clients against its HTTP endpoint. - [IAB backend configuration](https://c15t.com/docs/self-host/guides/iab-tcf): Publish an IAB TCF policy and serve a cached Global Vendor List from a self-hosted c15t backend. - [Legal-document snapshots](https://c15t.com/docs/self-host/guides/legal-document-snapshot-integration): Publish legal-document versions and sign evidence of the exact document shown by your application. - [Request logging](https://c15t.com/docs/self-host/guides/observability): Inspect failed backend requests, enable request logs and send events to your existing logging pipeline. - [Backend configuration](https://c15t.com/docs/self-host/api/configuration): Options for a self-hosted c15t backend in c15t-backend.config.ts and c15tInstance, covering SQL storage, trusted origins, policies, signing, script routes and request logging. - [HTTP endpoints](https://c15t.com/docs/self-host/api/endpoints): HTTP endpoints of a self-hosted c15t v3 backend for the manifest, /init, session reports, consent saves, identity links, the script tag and legal-document releases. - [Node.js SDK](https://c15t.com/docs/self-host/api/node-sdk): Call the c15t consent API from server code with @c15t/node-sdk. Check consent before sending email, link users after sign-in, export a user's records, publish legal documents from CI and read experiment results. - [CLI overview](https://c15t.com/docs/cli/overview): Run the c15t CLI from @c15t/cli to add c15t to an app, migrate v2 code, manage Inth projects and migrate a self-hosted database. - [CLI quickstart](https://c15t.com/docs/cli/quickstart): Use the c15t CLI to plan, review and apply c15t setup in an existing Next.js or React app, connected to an Inth backend. - [Agents and automation](https://c15t.com/docs/cli/automation): Read JSON results from the c15t CLI, call it from another program with runCli, and give a coding agent a v3 setup or migration task. - [setup](https://c15t.com/docs/cli/commands/setup): Flags and file handling for c15t setup, which plans and applies c15t integration files in Next.js, React and JavaScript apps. - [Framework boilerplate](https://c15t.com/docs/cli/commands/boilerplate): Generate the c15t quickstart files for Next.js, Nuxt, TanStack Start, Astro, React, JavaScript, a script tag, Vue, Svelte, SvelteKit or Solid with the c15t CLI. - [Codemods](https://c15t.com/docs/cli/commands/codemods): Migrate source from c15t v2 to v3 with the c15t CLI codemods command, covering package imports, the provider, transports, moved exports, dev tools, policy presets, CSS variables, Tailwind CSS 3, callbacks, the Node.js SDK and backend config, and run the v1 to v2 source transforms. - [Hosted projects and authentication](https://c15t.com/docs/cli/commands/hosted): Use Inth authentication and provisioning from the c15t setup workflow. - [Self-hosted migrations](https://c15t.com/docs/cli/commands/self-host): Plan and apply database migrations for a self-hosted c15t backend with the c15t CLI self-host migrate command. - [Global flags](https://c15t.com/docs/cli/global-flags): Flags every c15t CLI command accepts, for JSON output, the project directory, prompts and telemetry, plus exit codes. - [Compare c15t with consent tools and custom code](https://c15t.com/docs/comparisons): Compare c15t with consent platforms, browser libraries and custom code. See its strengths, setup requirements and the features its packages do not include. - [c15t vs building consent yourself](https://c15t.com/docs/comparisons/build-your-own): Keep your own consent design without building every layer from scratch. Compare c15t with a custom implementation, including AI-assisted code. - [c15t vs Axeptio](https://c15t.com/docs/comparisons/axeptio): Choose c15t to own your consent interface, application behaviour and backend. Compare Axeptio's visual editor, vendor APIs, scans and banner experiments. - [c15t vs Borlabs Cookie](https://c15t.com/docs/comparisons/borlabs-cookie): Choose c15t for consent beyond WordPress, with native web components and a separate backend. Compare Borlabs Cookie's local records, service controls and scanner. - [c15t vs Complianz](https://c15t.com/docs/comparisons/complianz): Choose c15t for consent across custom web applications. Compare Complianz's WordPress plugin and Shopify app, with clear differences in scans, records and legal tools. - [c15t vs consentmanager](https://c15t.com/docs/comparisons/consentmanager): Choose c15t to own consent inside your web application. Compare consentmanager's site operations, custom interfaces, scans, experiments and connected-TV tools. - [c15t vs Cookie Control](https://c15t.com/docs/comparisons/cookie-control): Choose c15t for native web components, individual vendor choices and backend ownership. Compare CIVIC's Cookie Control Premium and v9 accurately. - [c15t vs Cookiebot](https://c15t.com/docs/comparisons/cookiebot): Choose c15t for native application components, explicit vendor controls and backend ownership. Compare Cookiebot's scan-based setup and the gaps c15t leaves. - [c15t vs CookieConsent v3](https://c15t.com/docs/comparisons/cookieconsent-v3): Choose c15t when your application needs native consent state and a record backend. Compare CookieConsent's browser controls and the extra setup each approach needs. - [c15t vs CookieFirst](https://c15t.com/docs/comparisons/cookiefirst): Choose c15t for native web framework coverage and a backend you can run. Compare CookieFirst's React support, service choices, scans and cookie-policy tools. - [c15t vs CookieHub](https://c15t.com/docs/comparisons/cookiehub): Choose c15t for native web framework coverage and backend ownership. Compare CookieHub's React components, consent APIs, automatic scans and hosted logs. - [c15t vs CookieScript](https://c15t.com/docs/comparisons/cookiescript): Choose c15t to own the consent engine, framework components and backend. Compare CookieScript's scans, developer controls and self-hosted banner option. - [c15t vs CookieYes](https://c15t.com/docs/comparisons/cookieyes): Choose c15t for broader framework support, individual vendor choices and a supplied consent backend. Compare CookieYes SDKs and hosted services fairly. - [c15t vs Didomi](https://c15t.com/docs/comparisons/didomi): Choose c15t for native framework components, open-source consent logic and backend ownership. Compare Didomi's SDKs, notice console and experiments. - [c15t vs Enzuzo](https://c15t.com/docs/comparisons/enzuzo): Choose c15t for native consent components, custom product interfaces and backend ownership. Compare Enzuzo's hosted scans, legal policies and privacy operations. - [c15t vs Ethyca](https://c15t.com/docs/comparisons/ethyca): Choose c15t for native web consent components and a deployable backend. Compare Ethyca's Fides code and Janus platform without confusing their scope. - [c15t vs iubenda](https://c15t.com/docs/comparisons/iubenda): Compare c15t and iubenda to choose how much control you need over consent, your application, and your records. - [c15t vs Ketch](https://c15t.com/docs/comparisons/ketch): Choose c15t to own consent components, vendor rules and the backend. Compare Ketch's connected privacy platform and the services c15t does not supply. - [c15t vs Klaro](https://c15t.com/docs/comparisons/klaro): Choose c15t for native framework state and a backend you can run. Compare Klaro's open-source service controls, hosted records and scanning. - [c15t vs OneTrust](https://c15t.com/docs/comparisons/onetrust): Choose c15t to own the consent engine, framework components and backend. Compare OneTrust's headless API, cookie scans and broader privacy operations. - [c15t vs Osano](https://c15t.com/docs/comparisons/osano): Choose c15t for native consent components and control of vendor code and records. Compare Osano's classification, managed operations and service guarantees. - [c15t vs react-cookie-consent](https://c15t.com/docs/comparisons/react-cookie-consent): Choose c15t when a React application needs consent rules, vendor controls and backend records beyond an accept-and-decline banner. - [c15t vs Silktide Consent Manager](https://c15t.com/docs/comparisons/silktide-consent-manager): Choose c15t for native application state, regional policy and backend records. Compare Silktide's free browser manager and the setup c15t adds. - [c15t vs Sourcepoint](https://c15t.com/docs/comparisons/sourcepoint): Choose c15t for consent inside a web product that your team owns. Compare Sourcepoint by Didomi's publisher campaigns, vendor controls, records and TV support. - [c15t vs tarteaucitron.js](https://c15t.com/docs/comparisons/tarteaucitron): Choose c15t for native framework state and a deployable record backend. Compare tarteaucitron.js service controls and its separate Pro service. - [c15t vs Termly](https://c15t.com/docs/comparisons/termly): Choose c15t for native application consent and control of your backend. Compare Termly's policy generators, site scans, hosted records and consent APIs. - [c15t vs TrustArc](https://c15t.com/docs/comparisons/trustarc): Choose c15t for consent that your product team can change and host. Compare TrustArc's React integration, tracker scans, managed records and privacy operations. - [c15t vs Usercentrics](https://c15t.com/docs/comparisons/usercentrics): Choose c15t for native framework components and control of the consent engine. Compare Usercentrics Web CMP features, service scope and costs. - [Contribute to c15t documentation](https://c15t.com/docs/contributing): Edit the MDX source, validate both rendered and agent-readable outputs, and submit a focused change. - [Open source](https://c15t.com/docs/oss/why-open-source): Which parts of c15t are open source, the Apache-2.0 license, where the code lives, and how the hosted Inth backend relates to the self-hostable c15t backend. - [Contribute to c15t](https://c15t.com/docs/oss/contributing): Open an issue, set up the c15t monorepo with Bun, branch from canary, run the checks and add a Tegami release note for package changes. - [c15t Community Code of Conduct](https://c15t.com/docs/oss/code-of-conduct): Guidelines for fostering an inclusive, respectful, and collaborative open-source community - [License](https://c15t.com/docs/oss/license): Apache License 2.0 applies to c15t open source packages and this repository. - [Cookie Policy](https://c15t.com/docs/legals/cookie-policy): Which cookies and similar technologies c15t.com uses, why, and how to manage them. - [Privacy Policy](https://c15t.com/docs/legals/privacy-policy): How Consent Management Inc collects, uses, shares and protects personal information on c15t.com, and how to contact us about it. - [v1.1.1 — Bundle Reduction Update](https://c15t.com/changelog/1.1.1): Performance-focused release achieving a massive 58.9% bundle size reduction while introducing a new headless package for custom implementations. Removed framer-motion and Tailwind variants for faster load times with zero UX compromise. - [v1.1.2 — Optimistic UI & Bundle Optimization](https://c15t.com/changelog/1.1.2): Performance-focused release introducing optimistic UI updates for instant user feedback, massive 58.9% bundle size reduction, and a new headless package for custom implementations with improved event handling. - [v1.1.3 — Enhanced Theming & Callback Improvements](https://c15t.com/changelog/1.1.3): Major release introducing comprehensive theming support with dark/light/system detection, improved consent callbacks with structured data, and enhanced color scheme integration. Includes breaking changes for theme system and callback data structure. - [v1.1.4 — Translation System Fixes & Core Improvements](https://c15t.com/changelog/1.1.4): Patch release addressing critical translation functionality issues across core and react packages. Introduces better modularity, improved fallback behavior, comprehensive test coverage, and enhanced translation utility functions. - [v1.1.5 — Tailwind CSS v3 Compatibility & Style Fixes](https://c15t.com/changelog/1.1.5): Patch release fixing critical Tailwind CSS v3 compatibility issues by removing CSS layers and improving noStyle theme handling. Ensures proper style application and prevents conflicts with modern Tailwind configurations. - [v1.2.0 — Backend Architecture Overhaul & Translation System Refactor](https://c15t.com/changelog/1.2.0): Major release introducing a complete backend refactor to oRPC client/server architecture with OpenAPI support, CORS middleware, and streamlined translation system with common strings consolidation. Includes breaking changes for translation structure. - [v1.2.1 — API Architecture Hardening, Translations Cleanup, and Tailwind v3 Fix](https://c15t.com/changelog/1.2.1): Patch release refining the new API architecture with oRPC + OpenAPI, consolidating translations into common keys, fixing Tailwind v3 layer collision, and improving schema validation and configuration defaults. Introduces a type-safe Node.js SDK and centralized routing. - [v1.3.0 — Translations Package, SSR Consent, CLI Telemetry, and Next.js Restructure](https://c15t.com/changelog/1.3.0): Minor release introducing the new @c15t/translations package with 8 languages, server-side consent initialization, CLI telemetry and onboarding upgrades, and a Next.js package restructuring that removes middleware exports. Includes backend translation support, improved schemas, and infrastructure/tooling updates. - [v1.3.1 — Next.js Data Fetching Refinements, Docs Fixes, and zh Translations](https://c15t.com/changelog/1.3.1): Patch release refining Next.js initial data fetching in c15t mode, fixing quickstart links, improving core fallbacks, and adding Chinese (zh) translations. Includes dependency updates across packages. - [v1.3.2 — Next.js Relative URL Fix](https://c15t.com/changelog/1.3.2): Patch release fixing a relative URL error in the Next.js integration. - [v1.3.3 — GTM Support, CookieBanner Focus Toggle, Next.js URL Validation](https://c15t.com/changelog/1.3.3): Patch release adding Google Tag Manager support in core, allowing trapFocus={false} in CookieBanner, improving URL validation in Next.js, and updating React dependency. - [v1.4.0 — Ignore Geo, Provider DX, Store Config, A11y, CLI Fixes](https://c15t.com/changelog/1.4.0): Minor release improving developer experience with ignoreGeoLocation and consentCategories, adding a debug-friendly store config prop, enhancing accessibility, and fixing CLI onboarding issues. - [v1.4.1 — Next.js: Custom c15t Headers for Initial Fetch](https://c15t.com/changelog/1.4.1): Patch release adding custom c15t headers to Next.js initial data fetch, enabling backend provider overrides and more reliable initialization. - [v1.4.2 — Indonesian Translations, Provider Render Fixes, URL Normalization](https://c15t.com/changelog/1.4.2): Patch release adding Bahasa Indonesia translations, improving provider rendering to prevent duplicate requests, normalizing URLs to remove trailing slashes, correcting consent logic, and refining banner animations. Includes dependency updates, caching improvements, and expanded tests. - [v1.4.3 — Theme Inheritance Fixes for Provider-Scoped Themes](https://c15t.com/changelog/1.4.3): Patch release ensuring provider-level themes set in ConsentManagerProvider are correctly inherited by CookieBanner, ConsentManagerDialog, and ConsentManagerWidget for consistent styling. - [v1.4.4 — Theme Inheritance Stability and Maintenance Updates](https://c15t.com/changelog/1.4.4): Patch release fixing theme inheritance in ConsentManager and related components, plus dependency updates and stronger tests to prevent regressions. - [v1.5.0 — Next.js Pages Support, GDPR Button Order, Backend Enhancements](https://c15t.com/changelog/1.5.0): Minor release adding Next.js Pages Directory support and updating cookie banner button order for GDPR guidance, alongside backend and integration improvements. - [v1.6.0 – New Docs, Rebuilt Self-Hosting Backend, Better Callbacks, and More](https://c15t.com/changelog/1.6.0): Minor release with a rebuilt self-hosting backend, a brand new docs site, improved consent checking, and callback improvements. - [v1.6.1 - React Scroll Lock Fix](https://c15t.com/changelog/1.6.1): Patch release fixing a bug where the scroll lock persisted after the dialog has been dismissed. - [v1.7.0 - Script Loader & iFrame Blocking](https://c15t.com/changelog/1.7.0): Minor release with a new approach to script loader and iFrame blocking. - [v1.7.1 - CLI Improvements & Bug Fixes](https://c15t.com/changelog/1.7.1): Patch release with CLI improvements including bun support and bug fixes. - [v1.8.0 - Cross-Subdomain Consent, Legal Links, User Identification & EU Languages](https://c15t.com/changelog/1.8.0): Feature release adding cross-subdomain consent persistence via cookies, configurable legal links in components, user identification tracking, and comprehensive language support with all 24 EU official languages. - [v1.8.2 - React Bug Fixes](https://c15t.com/changelog/1.8.2): Patch release with bug fixes and improvements. - [v1.8.3 - Experimental Global Privacy Control Support & Bug Fixes](https://c15t.com/changelog/1.8.3): Patch release with experimental Global Privacy Control support and bug fixes. - [v2.0.0 - New Styling System, Policy Packs, Backend v2 & More](https://c15t.com/changelog/2.0.0): Stable release notes for c15t 2.0, covering the token-based styling system, policy packs, GPC, IAB TCF 2.3, bundled docs, c15t/skills, dev tools, backend v2, migration tooling, and the prebuilt UI. - [v2.0.0-rc.0 — New Styling System, IAB TCF, Dev Tools, Backend v2 & More](https://c15t.com/changelog/2.0.0-rc.0): Release candidate introducing a token-based styling system, IAB TCF 2.3 support, dev tools, backend v2, network blocker, GPC support and a complete documentation overhaul. - [v2.0.0-rc.5 — Policy Packs, Per-Policy GPC, Fallback Policies & Dev-Tools Improvements](https://c15t.com/changelog/2.0.0-rc.5): Release candidate introducing policy packs for regional consent resolution, per-policy GPC support, fallback policies, policy inspection, and developer-experience improvements. - [v2.0.0-rc.6 — Smaller Client Bundles, Modular IAB, UI Primitives, and Flexible Policy Actions](https://c15t.com/changelog/2.0.0-rc.6): Release candidate focused on smaller client bundles, extracted IAB support, shared UI primitives with framework adapters, flexible policy action layouts, and cleaner package styling/toolchain boundaries. - [v2.0.0-rc.7 — Theming Fixes, Simpler Tailwind Setup, and Clearer Customization Guidance](https://c15t.com/changelog/2.0.0-rc.7): Release candidate focused on fixing theming regressions in the prebuilt UI, simplifying the Tailwind setup contract, clarifying the recommended customization ladder, and adding better manual coverage for CSS behavior across Tailwind 3, Tailwind 4, and plain CSS. - [v2.0.1 - TanStack Devtools Support & Tailwind Import Ordering](https://c15t.com/changelog/2.0.1): Patch release adding official TanStack Devtools support for @c15t/dev-tools and improving Tailwind v4 stylesheet import ordering in the c15t CLI. - [v2.1.0 - Expanded Script Integrations and Provider Registry](https://c15t.com/changelog/2.1.0): Minor release expanding the consent-aware script loader with a registry-backed provider system, more prebuilt integrations, stronger lifecycle utilities, CLI discovery updates, and German translation refinements. - [v2.1.0 Draft - v3 API Preview and Faster React Runtime](https://c15t.com/changelog/2.1.0-v3-api-preview): Draft release notes for the opt-in v3 API preview, covering the kernel contract, React render isolation, v3 hosted transport alignment, and benchmark results from the @c15t/react v3 examples. - [v2.2.0 - Consent-Aware Embeds, Configurable Controls, and More Integrations](https://c15t.com/changelog/2.2.0): Minor release adding consent-aware Google Maps and YouTube components, a configurable consent controls toolbar, eight script integrations, a reusable SDK hook, policy-aware action styling, CSP nonce support, reliability fixes, and new translations. - [v3.0.0 - The Open Standard for Cookie Banners](https://c15t.com/changelog/3.0.0): Major release notes for c15t 3.0. One consent engine for Next.js, TanStack Start, React, Nuxt, Vue, Astro, Svelte, SvelteKit and plain HTML, banners in the server HTML, the consent manifest, policy rules, GPP, publisher restrictions, new integrations and a rewritten self-hosted backend. - [@c15t/browser client options](https://c15t.com/docs/shared/browser/client-options): Shared option tables for the @c15t/browser client, used by the HTML and JavaScript guides. - [Astro](https://c15t.com/docs/shared/build-manifests/astro): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Javascript](https://c15t.com/docs/shared/build-manifests/javascript): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Next](https://c15t.com/docs/shared/build-manifests/next): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Next Config](https://c15t.com/docs/shared/build-manifests/next-config): Wrap your Next.js config in `withConsentManifest`. An existing config object or function goes in as the first argument, unchanged: - [Next Pages](https://c15t.com/docs/shared/build-manifests/next-pages): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Nuxt](https://c15t.com/docs/shared/build-manifests/nuxt): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [React](https://c15t.com/docs/shared/build-manifests/react): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Sveltekit](https://c15t.com/docs/shared/build-manifests/sveltekit): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Tanstack Start](https://c15t.com/docs/shared/build-manifests/tanstack-start): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Vue](https://c15t.com/docs/shared/build-manifests/vue): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Build Time Manifest](https://c15t.com/docs/shared/build-time-manifest): The build fetches your public policy once and bundles it, so the server never fetches it at runtime. - [Build Time Manifest Notes](https://c15t.com/docs/shared/build-time-manifest-notes): The snapshot is fixed at build time: - [Inth Hosting](https://c15t.com/docs/shared/comparisons/inth-hosting): You need a backend to store consent records outside the visitor's browser. [Inth](https://inth.com) builds c15t and hosts that backend and its database for c15t's framework integrations, browser package and headless API. Your consent interface and vendor controls stay in your application. - [Static Config](https://c15t.com/docs/shared/examples/astro-static/static-config): Entry point for Static Config documentation. - [Analytics Events](https://c15t.com/docs/shared/examples/astro/analytics-events): Entry point for Analytics Events documentation. - [Cached Layout](https://c15t.com/docs/shared/examples/astro/cached-layout): Entry point for Cached Layout documentation. - [Client Entrypoint](https://c15t.com/docs/shared/examples/astro/client-entrypoint): Entry point for Client Entrypoint documentation. - [Consent Video](https://c15t.com/docs/shared/examples/astro/consent-video): Entry point for Consent Video documentation. - [Gated Inline Script](https://c15t.com/docs/shared/examples/astro/gated-inline-script): Entry point for Gated Inline Script documentation. - [Iab Layout](https://c15t.com/docs/shared/examples/astro/iab-layout): Entry point for Iab Layout documentation. - [Layout](https://c15t.com/docs/shared/examples/astro/layout): Entry point for Layout documentation. - [Server Config](https://c15t.com/docs/shared/examples/astro/server-config): Entry point for Server Config documentation. - [Vendors Option](https://c15t.com/docs/shared/examples/astro/vendors-option): Entry point for Vendors Option documentation. - [Embed](https://c15t.com/docs/shared/examples/html/embed): Entry point for Embed documentation. - [Gated Scripts](https://c15t.com/docs/shared/examples/html/gated-scripts): Entry point for Gated Scripts documentation. - [Headless Bar](https://c15t.com/docs/shared/examples/html/headless-bar): Entry point for Headless Bar documentation. - [Preferences Link](https://c15t.com/docs/shared/examples/html/preferences-link): Entry point for Preferences Link documentation. - [Script Tag](https://c15t.com/docs/shared/examples/html/script-tag): Entry point for Script Tag documentation. - [Tailwind Classes](https://c15t.com/docs/shared/examples/html/tailwind-classes): Entry point for Tailwind Classes documentation. - [Theme](https://c15t.com/docs/shared/examples/html/theme): Entry point for Theme documentation. - [Vendor Gated Embed](https://c15t.com/docs/shared/examples/html/vendor-gated-embed): Entry point for Vendor Gated Embed documentation. - [Vendor Gated Scripts](https://c15t.com/docs/shared/examples/html/vendor-gated-scripts): Entry point for Vendor Gated Scripts documentation. - [Vendor Scripts](https://c15t.com/docs/shared/examples/html/vendor-scripts): Entry point for Vendor Scripts documentation. - [Vendors](https://c15t.com/docs/shared/examples/html/vendors): Entry point for Vendors documentation. - [Actions](https://c15t.com/docs/shared/examples/javascript/actions): Entry point for Actions documentation. - [Callbacks](https://c15t.com/docs/shared/examples/javascript/callbacks): Entry point for Callbacks documentation. - [Clear On Revocation](https://c15t.com/docs/shared/examples/javascript/clear-on-revocation): Entry point for Clear On Revocation documentation. - [Devtools](https://c15t.com/docs/shared/examples/javascript/devtools): Entry point for Devtools documentation. - [Embed](https://c15t.com/docs/shared/examples/javascript/embed): Entry point for Embed documentation. - [Gpp](https://c15t.com/docs/shared/examples/javascript/gpp): Entry point for Gpp documentation. - [Iframe Blocker](https://c15t.com/docs/shared/examples/javascript/iframe-blocker): Entry point for Iframe Blocker documentation. - [Init](https://c15t.com/docs/shared/examples/javascript/init): Entry point for Init documentation. - [Kernel](https://c15t.com/docs/shared/examples/javascript/kernel): Entry point for Kernel documentation. - [Lifecycle](https://c15t.com/docs/shared/examples/javascript/lifecycle): Entry point for Lifecycle documentation. - [Network Blocker](https://c15t.com/docs/shared/examples/javascript/network-blocker): Entry point for Network Blocker documentation. - [Preference Draft](https://c15t.com/docs/shared/examples/javascript/preference-draft): Entry point for Preference Draft documentation. - [Preferences Link](https://c15t.com/docs/shared/examples/javascript/preferences-link): Entry point for Preferences Link documentation. - [Runtime](https://c15t.com/docs/shared/examples/javascript/runtime): Entry point for Runtime documentation. - [Runtime Devtools](https://c15t.com/docs/shared/examples/javascript/runtime-devtools): Entry point for Runtime Devtools documentation. - [Sentry Scripts](https://c15t.com/docs/shared/examples/javascript/sentry-scripts): Entry point for Sentry Scripts documentation. - [Theme](https://c15t.com/docs/shared/examples/javascript/theme): Entry point for Theme documentation. - [Translations](https://c15t.com/docs/shared/examples/javascript/translations): Entry point for Translations documentation. - [Transport Custom](https://c15t.com/docs/shared/examples/javascript/transport-custom): Entry point for Transport Custom documentation. - [Transport Manifest](https://c15t.com/docs/shared/examples/javascript/transport-manifest): Entry point for Transport Manifest documentation. - [Transport Offline](https://c15t.com/docs/shared/examples/javascript/transport-offline): Entry point for Transport Offline documentation. - [Vendor Consent](https://c15t.com/docs/shared/examples/javascript/vendor-consent): Entry point for Vendor Consent documentation. - [Vite Config](https://c15t.com/docs/shared/examples/javascript/vite-config): Entry point for Vite Config documentation. - [Pages App](https://c15t.com/docs/shared/examples/nextjs-pages-router/pages-app): Entry point for Pages App documentation. - [Pages Config](https://c15t.com/docs/shared/examples/nextjs-pages-router/pages-config): Entry point for Pages Config documentation. - [Pages Consent Route](https://c15t.com/docs/shared/examples/nextjs-pages-router/pages-consent-route): Entry point for Pages Consent Route documentation. - [Pages Ssr](https://c15t.com/docs/shared/examples/nextjs-pages-router/pages-ssr): Entry point for Pages Ssr documentation. - [App Router Awaited Layout](https://c15t.com/docs/shared/examples/nextjs/app-router-awaited-layout): Entry point for App Router Awaited Layout documentation. - [Branded Layout](https://c15t.com/docs/shared/examples/nextjs/branded-layout): Entry point for Branded Layout documentation. - [Browser Layout](https://c15t.com/docs/shared/examples/nextjs/browser-layout): Entry point for Browser Layout documentation. - [Callbacks](https://c15t.com/docs/shared/examples/nextjs/callbacks): Entry point for Callbacks documentation. - [Client Side Config](https://c15t.com/docs/shared/examples/nextjs/client-side-config): Entry point for Client Side Config documentation. - [Compose Banner](https://c15t.com/docs/shared/examples/nextjs/compose-banner): Entry point for Compose Banner documentation. - [Compose Button](https://c15t.com/docs/shared/examples/nextjs/compose-button): Entry point for Compose Button documentation. - [Config](https://c15t.com/docs/shared/examples/nextjs/config): Entry point for Config documentation. - [Consent Route](https://c15t.com/docs/shared/examples/nextjs/consent-route): Entry point for Consent Route documentation. - [Experiment Layout](https://c15t.com/docs/shared/examples/nextjs/experiment-layout): Entry point for Experiment Layout documentation. - [I18n](https://c15t.com/docs/shared/examples/nextjs/i18n): Entry point for I18n documentation. - [Iab Consent](https://c15t.com/docs/shared/examples/nextjs/iab-consent): Entry point for Iab Consent documentation. - [Iab Publisher Restrictions](https://c15t.com/docs/shared/examples/nextjs/iab-publisher-restrictions): Entry point for Iab Publisher Restrictions documentation. - [Language Switcher](https://c15t.com/docs/shared/examples/nextjs/language-switcher): Entry point for Language Switcher documentation. - [Next Config](https://c15t.com/docs/shared/examples/nextjs/next-config): Entry point for Next Config documentation. - [Quickstart Config](https://c15t.com/docs/shared/examples/nextjs/quickstart-config): Entry point for Quickstart Config documentation. - [Quickstart Layout](https://c15t.com/docs/shared/examples/nextjs/quickstart-layout): Entry point for Quickstart Layout documentation. - [Quickstart Next Config](https://c15t.com/docs/shared/examples/nextjs/quickstart-next-config): Entry point for Quickstart Next Config documentation. - [Static Export Next Config](https://c15t.com/docs/shared/examples/nextjs/static-export-next-config): Entry point for Static Export Next Config documentation. - [Theme](https://c15t.com/docs/shared/examples/nextjs/theme): Entry point for Theme documentation. - [Third Parties Scripts](https://c15t.com/docs/shared/examples/nextjs/third-parties-scripts): Entry point for Third Parties Scripts documentation. - [Video Embed](https://c15t.com/docs/shared/examples/nextjs/video-embed): Entry point for Video Embed documentation. - [Static Config](https://c15t.com/docs/shared/examples/nuxt-static/static-config): Entry point for Static Config documentation. - [App Config](https://c15t.com/docs/shared/examples/nuxt/app-config): Entry point for App Config documentation. - [Callbacks](https://c15t.com/docs/shared/examples/nuxt/callbacks): Entry point for Callbacks documentation. - [Color Scheme](https://c15t.com/docs/shared/examples/nuxt/color-scheme): Entry point for Color Scheme documentation. - [Consent Status](https://c15t.com/docs/shared/examples/nuxt/consent-status): Entry point for Consent Status documentation. - [Consent Surfaces](https://c15t.com/docs/shared/examples/nuxt/consent-surfaces): Entry point for Consent Surfaces documentation. - [Devtools](https://c15t.com/docs/shared/examples/nuxt/devtools): Entry point for Devtools documentation. - [Embed](https://c15t.com/docs/shared/examples/nuxt/embed): Entry point for Embed documentation. - [Headless Prompt](https://c15t.com/docs/shared/examples/nuxt/headless-prompt): Entry point for Headless Prompt documentation. - [Iab Opt In](https://c15t.com/docs/shared/examples/nuxt/iab-opt-in): Entry point for Iab Opt In documentation. - [Iab Surfaces](https://c15t.com/docs/shared/examples/nuxt/iab-surfaces): Entry point for Iab Surfaces documentation. - [Language Switcher](https://c15t.com/docs/shared/examples/nuxt/language-switcher): Entry point for Language Switcher documentation. - [Nuxt Config](https://c15t.com/docs/shared/examples/nuxt/nuxt-config): Entry point for Nuxt Config documentation. - [Nuxt Gtag Scripts](https://c15t.com/docs/shared/examples/nuxt/nuxt-gtag-scripts): Entry point for Nuxt Gtag Scripts documentation. - [Nuxt Scripts Events](https://c15t.com/docs/shared/examples/nuxt/nuxt-scripts-events): Entry point for Nuxt Scripts Events documentation. - [Nuxt Scripts Registry](https://c15t.com/docs/shared/examples/nuxt/nuxt-scripts-registry): Entry point for Nuxt Scripts Registry documentation. - [Privacy Page](https://c15t.com/docs/shared/examples/nuxt/privacy-page): Entry point for Privacy Page documentation. - [Root](https://c15t.com/docs/shared/examples/nuxt/root): Entry point for Root documentation. - [Self Host Route](https://c15t.com/docs/shared/examples/nuxt/self-host-route): Entry point for Self Host Route documentation. - [Vapor Embed](https://c15t.com/docs/shared/examples/nuxt/vapor-embed): Entry point for Vapor Embed documentation. - [Vapor Nuxt Config](https://c15t.com/docs/shared/examples/nuxt/vapor-nuxt-config): Entry point for Vapor Nuxt Config documentation. - [Callbacks](https://c15t.com/docs/shared/examples/react/callbacks): Entry point for Callbacks documentation. - [Consent](https://c15t.com/docs/shared/examples/react/consent): Entry point for Consent documentation. - [Experiment Consent](https://c15t.com/docs/shared/examples/react/experiment-consent): Entry point for Experiment Consent documentation. - [Headless Banner](https://c15t.com/docs/shared/examples/react/headless-banner): Entry point for Headless Banner documentation. - [I18n](https://c15t.com/docs/shared/examples/react/i18n): Entry point for I18n documentation. - [Iab Consent](https://c15t.com/docs/shared/examples/react/iab-consent): Entry point for Iab Consent documentation. - [Iab Publisher Restrictions](https://c15t.com/docs/shared/examples/react/iab-publisher-restrictions): Entry point for Iab Publisher Restrictions documentation. - [Language Switcher](https://c15t.com/docs/shared/examples/react/language-switcher): Entry point for Language Switcher documentation. - [Main](https://c15t.com/docs/shared/examples/react/main): Entry point for Main documentation. - [Optional Feature](https://c15t.com/docs/shared/examples/react/optional-feature): Entry point for Optional Feature documentation. - [Reject Button](https://c15t.com/docs/shared/examples/react/reject-button): Entry point for Reject Button documentation. - [Video Embed](https://c15t.com/docs/shared/examples/react/video-embed): Entry point for Video Embed documentation. - [Vite Config](https://c15t.com/docs/shared/examples/react/vite-config): Entry point for Vite Config documentation. - [Nextjs Route](https://c15t.com/docs/shared/examples/self-host/nextjs-route): Entry point for Nextjs Route documentation. - [Bottom Bar](https://c15t.com/docs/shared/examples/storybook-astro/bottom-bar): Entry point for Bottom Bar documentation. - [Callbacks](https://c15t.com/docs/shared/examples/storybook-astro/callbacks): Entry point for Callbacks documentation. - [React Island](https://c15t.com/docs/shared/examples/storybook-astro/react-island): Entry point for React Island documentation. - [Bottom Bar](https://c15t.com/docs/shared/examples/storybook-react/bottom-bar): Entry point for Bottom Bar documentation. - [Brand Card](https://c15t.com/docs/shared/examples/storybook-react/brand-card): Entry point for Brand Card documentation. - [Brand Theme](https://c15t.com/docs/shared/examples/storybook-react/brand-theme): Entry point for Brand Theme documentation. - [Choice Wall](https://c15t.com/docs/shared/examples/storybook-react/choice-wall): Entry point for Choice Wall documentation. - [Class Names Css Modules](https://c15t.com/docs/shared/examples/storybook-react/class-names-css-modules): Entry point for Class Names Css Modules documentation. - [Class Names Css Modules Css](https://c15t.com/docs/shared/examples/storybook-react/class-names-css-modules-css): Entry point for Class Names Css Modules Css documentation. - [Class Names Emotion](https://c15t.com/docs/shared/examples/storybook-react/class-names-emotion): Entry point for Class Names Emotion documentation. - [Class Names Stylex](https://c15t.com/docs/shared/examples/storybook-react/class-names-stylex): Entry point for Class Names Stylex documentation. - [Class Names Vanilla Extract](https://c15t.com/docs/shared/examples/storybook-react/class-names-vanilla-extract): Entry point for Class Names Vanilla Extract documentation. - [Compose Banner](https://c15t.com/docs/shared/examples/storybook-react/compose-banner): Entry point for Compose Banner documentation. - [Compose Button](https://c15t.com/docs/shared/examples/storybook-react/compose-button): Entry point for Compose Button documentation. - [Headless Bar](https://c15t.com/docs/shared/examples/storybook-react/headless-bar): Entry point for Headless Bar documentation. - [Headless Bar Css](https://c15t.com/docs/shared/examples/storybook-react/headless-bar-css): Entry point for Headless Bar Css documentation. - [Slim Bar](https://c15t.com/docs/shared/examples/storybook-react/slim-bar): Entry point for Slim Bar documentation. - [Slim Bar Css](https://c15t.com/docs/shared/examples/storybook-react/slim-bar-css): Entry point for Slim Bar Css documentation. - [Bottom Bar](https://c15t.com/docs/shared/examples/storybook-svelte/bottom-bar): Entry point for Bottom Bar documentation. - [Consent Actions](https://c15t.com/docs/shared/examples/storybook-svelte/consent-actions): Entry point for Consent Actions documentation. - [Consent Callbacks](https://c15t.com/docs/shared/examples/storybook-svelte/consent-callbacks): Entry point for Consent Callbacks documentation. - [Consent Events](https://c15t.com/docs/shared/examples/storybook-svelte/consent-events): Entry point for Consent Events documentation. - [Consent I18n](https://c15t.com/docs/shared/examples/storybook-svelte/consent-i18n): Entry point for Consent I18n documentation. - [Consent Status](https://c15t.com/docs/shared/examples/storybook-svelte/consent-status): Entry point for Consent Status documentation. - [Floating Trigger](https://c15t.com/docs/shared/examples/storybook-svelte/floating-trigger): Entry point for Floating Trigger documentation. - [Headless Bar](https://c15t.com/docs/shared/examples/storybook-svelte/headless-bar): Entry point for Headless Bar documentation. - [Headless Bar Css](https://c15t.com/docs/shared/examples/storybook-svelte/headless-bar-css): Entry point for Headless Bar Css documentation. - [Iab Surfaces](https://c15t.com/docs/shared/examples/storybook-svelte/iab-surfaces): Entry point for Iab Surfaces documentation. - [Network Blocker](https://c15t.com/docs/shared/examples/storybook-svelte/network-blocker): Entry point for Network Blocker documentation. - [Own Preferences](https://c15t.com/docs/shared/examples/storybook-svelte/own-preferences): Entry point for Own Preferences documentation. - [Privacy Controls](https://c15t.com/docs/shared/examples/storybook-svelte/privacy-controls): Entry point for Privacy Controls documentation. - [Privacy Settings Page](https://c15t.com/docs/shared/examples/storybook-svelte/privacy-settings-page): Entry point for Privacy Settings Page documentation. - [Slim Bar](https://c15t.com/docs/shared/examples/storybook-svelte/slim-bar): Entry point for Slim Bar documentation. - [Slim Bar Css](https://c15t.com/docs/shared/examples/storybook-svelte/slim-bar-css): Entry point for Slim Bar Css documentation. - [Bottom Bar](https://c15t.com/docs/shared/examples/storybook-vue/bottom-bar): Entry point for Bottom Bar documentation. - [Headless Bar](https://c15t.com/docs/shared/examples/storybook-vue/headless-bar): Entry point for Headless Bar documentation. - [Headless Bar Css](https://c15t.com/docs/shared/examples/storybook-vue/headless-bar-css): Entry point for Headless Bar Css documentation. - [Slim Bar](https://c15t.com/docs/shared/examples/storybook-vue/slim-bar): Entry point for Slim Bar documentation. - [Slim Bar Css](https://c15t.com/docs/shared/examples/storybook-vue/slim-bar-css): Entry point for Slim Bar Css documentation. - [App](https://c15t.com/docs/shared/examples/svelte/app): Entry point for App documentation. - [Scripts](https://c15t.com/docs/shared/examples/svelte/scripts): Entry point for Scripts documentation. - [Theme Css](https://c15t.com/docs/shared/examples/svelte/theme-css): Entry point for Theme Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/svelte/vite-config): Entry point for Vite Config documentation. - [Youtube Embed](https://c15t.com/docs/shared/examples/svelte/youtube-embed): Entry point for Youtube Embed documentation. - [App Locals](https://c15t.com/docs/shared/examples/sveltekit/app-locals): Entry point for App Locals documentation. - [Custom Banner](https://c15t.com/docs/shared/examples/sveltekit/custom-banner): Entry point for Custom Banner documentation. - [Dev Tools](https://c15t.com/docs/shared/examples/sveltekit/dev-tools): Entry point for Dev Tools documentation. - [Headless Layout](https://c15t.com/docs/shared/examples/sveltekit/headless-layout): Entry point for Headless Layout documentation. - [Hooks](https://c15t.com/docs/shared/examples/sveltekit/hooks): Entry point for Hooks documentation. - [Layout](https://c15t.com/docs/shared/examples/sveltekit/layout): Entry point for Layout documentation. - [Layout Server](https://c15t.com/docs/shared/examples/sveltekit/layout-server): Entry point for Layout Server documentation. - [Manifest Layout Server](https://c15t.com/docs/shared/examples/sveltekit/manifest-layout-server): Entry point for Manifest Layout Server documentation. - [Node Sdk Client](https://c15t.com/docs/shared/examples/sveltekit/node-sdk-client): Entry point for Node Sdk Client documentation. - [Prerender](https://c15t.com/docs/shared/examples/sveltekit/prerender): Entry point for Prerender documentation. - [Route Handlers](https://c15t.com/docs/shared/examples/sveltekit/route-handlers): Entry point for Route Handlers documentation. - [Scripts](https://c15t.com/docs/shared/examples/sveltekit/scripts): Entry point for Scripts documentation. - [Self Host Route](https://c15t.com/docs/shared/examples/sveltekit/self-host-route): Entry point for Self Host Route documentation. - [Theme](https://c15t.com/docs/shared/examples/sveltekit/theme): Entry point for Theme documentation. - [Theme Load](https://c15t.com/docs/shared/examples/sveltekit/theme-load): Entry point for Theme Load documentation. - [Theme Style](https://c15t.com/docs/shared/examples/sveltekit/theme-style): Entry point for Theme Style documentation. - [Vite Config](https://c15t.com/docs/shared/examples/sveltekit/vite-config): Entry point for Vite Config documentation. - [Astro Config](https://c15t.com/docs/shared/examples/tailwind-v3/astro/astro-config): Entry point for Astro Config documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/astro/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/astro/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/astro/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/astro/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/html/postcss-config): Entry point for Postcss Config documentation. - [Script Tag](https://c15t.com/docs/shared/examples/tailwind-v3/html/script-tag): Entry point for Script Tag documentation. - [Script Tag Light Dom](https://c15t.com/docs/shared/examples/tailwind-v3/html/script-tag-light-dom): Entry point for Script Tag Light Dom documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/html/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/html/tailwind-css): Entry point for Tailwind Css documentation. - [Tailwind Css Light Dom](https://c15t.com/docs/shared/examples/tailwind-v3/html/tailwind-css-light-dom): Entry point for Tailwind Css Light Dom documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-15-turbopack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/next-15-turbopack/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-15-turbopack/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/next-15-turbopack/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-15/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/next-15/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-15/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/next-15/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-turbopack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-turbopack/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-turbopack/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-turbopack/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-webpack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-webpack/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-webpack/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/next-16-webpack/tailwind-css): Entry point for Tailwind Css documentation. - [Nuxt Config](https://c15t.com/docs/shared/examples/tailwind-v3/nuxt/nuxt-config): Entry point for Nuxt Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/nuxt/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/nuxt/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/nuxt/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/react/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/react/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/react/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/react/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v3/react/vite-config): Entry point for Vite Config documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/svelte/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/svelte/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/svelte/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/svelte/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v3/svelte/vite-config): Entry point for Vite Config documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/sveltekit/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/sveltekit/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/sveltekit/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/sveltekit/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v3/sveltekit/vite-config): Entry point for Vite Config documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/tanstack-start/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/tanstack-start/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/tanstack-start/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/tanstack-start/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v3/tanstack-start/vite-config): Entry point for Vite Config documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v3/vue/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v3/vue/slot): Entry point for Slot documentation. - [Tailwind Config](https://c15t.com/docs/shared/examples/tailwind-v3/vue/tailwind-config): Entry point for Tailwind Config documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v3/vue/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v3/vue/vite-config): Entry point for Vite Config documentation. - [Astro Config](https://c15t.com/docs/shared/examples/tailwind-v4/astro/astro-config): Entry point for Astro Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/astro/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/astro/tailwind-css): Entry point for Tailwind Css documentation. - [Script Tag](https://c15t.com/docs/shared/examples/tailwind-v4/html/script-tag): Entry point for Script Tag documentation. - [Script Tag Light Dom](https://c15t.com/docs/shared/examples/tailwind-v4/html/script-tag-light-dom): Entry point for Script Tag Light Dom documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/html/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v4/next-15-turbopack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/next-15-turbopack/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/next-15-turbopack/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v4/next-15/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/next-15/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/next-15/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-turbopack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-turbopack/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-turbopack/tailwind-css): Entry point for Tailwind Css documentation. - [Postcss Config](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-webpack/postcss-config): Entry point for Postcss Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-webpack/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/next-16-webpack/tailwind-css): Entry point for Tailwind Css documentation. - [Nuxt Config](https://c15t.com/docs/shared/examples/tailwind-v4/nuxt/nuxt-config): Entry point for Nuxt Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/nuxt/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/nuxt/tailwind-css): Entry point for Tailwind Css documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/react/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/react/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v4/react/vite-config): Entry point for Vite Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/svelte/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/svelte/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v4/svelte/vite-config): Entry point for Vite Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/sveltekit/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/sveltekit/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v4/sveltekit/vite-config): Entry point for Vite Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/tanstack-start/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/tanstack-start/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v4/tanstack-start/vite-config): Entry point for Vite Config documentation. - [Slot](https://c15t.com/docs/shared/examples/tailwind-v4/vue/slot): Entry point for Slot documentation. - [Tailwind Css](https://c15t.com/docs/shared/examples/tailwind-v4/vue/tailwind-css): Entry point for Tailwind Css documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tailwind-v4/vue/vite-config): Entry point for Vite Config documentation. - [Build Manifest Server Fn](https://c15t.com/docs/shared/examples/tanstack-start/build-manifest-server-fn): Entry point for Build Manifest Server Fn documentation. - [Callbacks](https://c15t.com/docs/shared/examples/tanstack-start/callbacks): Entry point for Callbacks documentation. - [Compose Banner](https://c15t.com/docs/shared/examples/tanstack-start/compose-banner): Entry point for Compose Banner documentation. - [Compose Button](https://c15t.com/docs/shared/examples/tanstack-start/compose-button): Entry point for Compose Button documentation. - [Consent Route](https://c15t.com/docs/shared/examples/tanstack-start/consent-route): Entry point for Consent Route documentation. - [I18n](https://c15t.com/docs/shared/examples/tanstack-start/i18n): Entry point for I18n documentation. - [Iab Consent](https://c15t.com/docs/shared/examples/tanstack-start/iab-consent): Entry point for Iab Consent documentation. - [Language Switcher](https://c15t.com/docs/shared/examples/tanstack-start/language-switcher): Entry point for Language Switcher documentation. - [Root](https://c15t.com/docs/shared/examples/tanstack-start/root): Entry point for Root documentation. - [Same Origin Root](https://c15t.com/docs/shared/examples/tanstack-start/same-origin-root): Entry point for Same Origin Root documentation. - [Scripts](https://c15t.com/docs/shared/examples/tanstack-start/scripts): Entry point for Scripts documentation. - [Self Host Route](https://c15t.com/docs/shared/examples/tanstack-start/self-host-route): Entry point for Self Host Route documentation. - [Start](https://c15t.com/docs/shared/examples/tanstack-start/start): Entry point for Start documentation. - [Static Root](https://c15t.com/docs/shared/examples/tanstack-start/static-root): Entry point for Static Root documentation. - [Streamed Root](https://c15t.com/docs/shared/examples/tanstack-start/streamed-root): Entry point for Streamed Root documentation. - [Video Embed](https://c15t.com/docs/shared/examples/tanstack-start/video-embed): Entry point for Video Embed documentation. - [Vite Config](https://c15t.com/docs/shared/examples/tanstack-start/vite-config): Entry point for Vite Config documentation. - [App](https://c15t.com/docs/shared/examples/vue/app): Entry point for App documentation. - [Callbacks](https://c15t.com/docs/shared/examples/vue/callbacks): Entry point for Callbacks documentation. - [Consent Status](https://c15t.com/docs/shared/examples/vue/consent-status): Entry point for Consent Status documentation. - [Consent Surfaces](https://c15t.com/docs/shared/examples/vue/consent-surfaces): Entry point for Consent Surfaces documentation. - [Customize](https://c15t.com/docs/shared/examples/vue/customize): Entry point for Customize documentation. - [Devtools](https://c15t.com/docs/shared/examples/vue/devtools): Entry point for Devtools documentation. - [Embed](https://c15t.com/docs/shared/examples/vue/embed): Entry point for Embed documentation. - [Headless App](https://c15t.com/docs/shared/examples/vue/headless-app): Entry point for Headless App documentation. - [Headless Main](https://c15t.com/docs/shared/examples/vue/headless-main): Entry point for Headless Main documentation. - [Headless Prompt](https://c15t.com/docs/shared/examples/vue/headless-prompt): Entry point for Headless Prompt documentation. - [Iab Opt In](https://c15t.com/docs/shared/examples/vue/iab-opt-in): Entry point for Iab Opt In documentation. - [Iab Surfaces](https://c15t.com/docs/shared/examples/vue/iab-surfaces): Entry point for Iab Surfaces documentation. - [Language Switcher](https://c15t.com/docs/shared/examples/vue/language-switcher): Entry point for Language Switcher documentation. - [Main](https://c15t.com/docs/shared/examples/vue/main): Entry point for Main documentation. - [Network Blocker](https://c15t.com/docs/shared/examples/vue/network-blocker): Entry point for Network Blocker documentation. - [Privacy Settings](https://c15t.com/docs/shared/examples/vue/privacy-settings): Entry point for Privacy Settings documentation. - [Vite Config](https://c15t.com/docs/shared/examples/vue/vite-config): Entry point for Vite Config documentation. - [Iab Gpp](https://c15t.com/docs/shared/iab-gpp): The policy rule c15t matched for the visitor decides whether a section applies. The visitor's location only picks which US section carries it. - [Iab Publisher Restrictions](https://c15t.com/docs/shared/iab-publisher-restrictions): Each restriction type has a requirement that depends on the vendor list: - [Iab Tcf 2 4](https://c15t.com/docs/shared/iab-tcf-2-4): The stock IAB preference centres in React, Next.js, Vue, Svelte, Astro and the script tag follow TCF 2.4 and Policies v5.0.b. Special purposes stay in their locked section with a lock icon, because the visitor cannot object to them. - [Embed content by framework](https://c15t.com/docs/shared/integrations/consent-embed): Mount remote iframe content only while the configured category is allowed. - [Google Consent Mode in c15t helpers](https://c15t.com/docs/shared/integrations/google-consent-mode): When the Google helpers load, what they send before a choice, and how c15t categories map to Google consent types. - [Register vendor scripts](https://c15t.com/docs/shared/integrations/register-scripts): Add a vendor script configuration to the c15t provider you already have, in each framework. - [Check a consent-gated vendor helper](https://c15t.com/docs/shared/integrations/vendor-revocation-and-verify): The shared browser test and revocation behavior for vendor helpers that wait for consent. - [Next.js consent and scripts](https://c15t.com/docs/shared/next-consent-wrapper): Register scripts in the Next.js c15t.config.ts used by the router guides. - [ConsentBanner](https://c15t.com/docs/shared/react/components/consent-banner): Shared ConsentBanner reference tables for the React and Next.js adapters. - [ConsentDialog](https://c15t.com/docs/shared/react/components/consent-dialog): Shared ConsentDialog reference for the React and Next.js adapters. - [ConsentDialogLink](https://c15t.com/docs/shared/react/components/consent-dialog-link): Shared ConsentDialogLink reference for the React and Next.js adapters. - [ConsentDialogTrigger](https://c15t.com/docs/shared/react/components/consent-dialog-trigger): Shared ConsentDialogTrigger reference tables for the React and Next.js adapters. - [ConsentGate](https://c15t.com/docs/shared/react/components/consent-gate): Shared ConsentGate reference for the React and Next.js adapters. - [ConsentWidget](https://c15t.com/docs/shared/react/components/consent-widget): Shared ConsentWidget reference for the React and Next.js adapters. - [Dev Tools](https://c15t.com/docs/shared/react/components/dev-tools): Shared DevTools reference for the React and Next.js adapters. - [Compose your own banner](https://c15t.com/docs/shared/react/compose): Shared compound-component content for the React, Next.js and TanStack Start compose pages. - [Headless](https://c15t.com/docs/shared/react/headless): Shared headless consent UI content for the React and Next.js adapters. - [Hooks](https://c15t.com/docs/shared/react/hooks/overview): Shared consent hook guidance for the React and Next.js adapters. - [IAB TCF](https://c15t.com/docs/shared/react/iab/overview): Shared IAB TCF setup guidance for the React and Next.js adapters. - [Network blocker](https://c15t.com/docs/shared/react/network-blocker): Shared network blocker reference for the React and Next.js adapters. - [Styling](https://c15t.com/docs/shared/react/styling/overview): Shared token, slot and class-name styling guidance for the React and Next.js adapters. - [Theme Tokens](https://c15t.com/docs/shared/reference/theme-tokens): Entry point for Theme Tokens documentation. - [Clear on revocation](https://c15t.com/docs/shared/scripts/clear-on-revocation): Shared clearOnRevocation explanation for the framework clear on revocation pages. - [Google load mode](https://c15t.com/docs/shared/scripts/google-load-mode): Shared explanation of the loadMode option on the gtag and googleTagManager helpers, for the framework migration sections. - [Vendor consent](https://c15t.com/docs/shared/scripts/vendor-consent): Shared vendor consent explanation for the framework vendor consent pages. - [Callbacks](https://c15t.com/docs/shared/svelte/callbacks): Run your own code when consent changes through the provider's `callbacks` prop, a script's own callbacks, or a kernel event in one component: - [Components](https://c15t.com/docs/shared/svelte/components): Import every component from `@c15t/svelte`, except the dev tools panel, which comes from `@c15t/svelte/devtools`. Render them inside the provider: `ConsentProvider` in a Svelte app, or `ConsentRoot`, which renders `ConsentProvider`, in a SvelteKit root layout. A component outside it throws `c15t: no v3 consent context`. - [Consent Banner](https://c15t.com/docs/shared/svelte/components/consent-banner): `variant` and `position` set the shape for one banner. The provider's `presentation` prop sets them for every surface; a prop on `ConsentBanner` wins. This banner is a full-width bar along the bottom edge: - [Consent Button](https://c15t.com/docs/shared/svelte/components/consent-button): `ConsentButton` is a button that performs one consent action, styled like the banner's buttons. Use it on a cookie policy page, an onboarding step or anywhere visitors should accept, reject or open preferences outside the banner: - [Consent Dialog](https://c15t.com/docs/shared/svelte/components/consent-dialog): `ConsentDialog` is not part of the first page load. The component you render is a small loader; the dialog itself is a separate chunk that it imports: - [Consent Dialog Link](https://c15t.com/docs/shared/svelte/components/consent-dialog-link): `ConsentDialogLink` takes its label as children and passes every other attribute, such as `class`, `id` or `aria-describedby`, to the ` ``` React, Vue and Svelte import the same stylesheet, `cookie-bar.css`. The HTML block contains it inline. ```css title="src/cookie-bar.css" .cookie-bar { position: fixed; inset: auto 0 0; z-index: 50; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; padding: 0.875rem 1.5rem; background: #14213d; color: #f8f9fb; font: 0.9375rem/1.5 system-ui, sans-serif; box-shadow: 0 -4px 16px rgb(0 0 0 / 0.15); } .cookie-bar__text { flex: 1 1 20rem; margin: 0; } .cookie-bar__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; } .cookie-bar button { padding: 0.5rem 1rem; border: 1px solid #f8f9fb; border-radius: 999px; background: transparent; color: inherit; font: inherit; cursor: pointer; } .cookie-bar .cookie-bar__button { background: #f8f9fb; color: #14213d; font-weight: 600; } .cookie-bar .cookie-bar__link { border-color: transparent; text-decoration: underline; text-underline-offset: 3px; } .cookie-bar button:focus-visible { outline: 2px solid #fca311; outline-offset: 2px; } /* On narrow screens, Reject and Accept share a row at equal width. */ @media (max-width: 30rem) { .cookie-bar__actions { width: 100%; } .cookie-bar__actions button { flex: 1 1 40%; } .cookie-bar__actions .cookie-bar__link { flex-basis: 100%; } } ``` On a 375-pixel screen the copy takes the full width, Preferences sits on its own line, and Reject all and Accept all share a row at equal width: ![The dark headless bar on a narrow phone screen, with the copy on two lines, a centered Preferences link, and Reject all and Accept all buttons side by side](../assets/v3/headless-bar-mobile.png) In the HTML version, Preferences opens the switches inside the bar: ![The dark bar grown taller, with checkboxes for Functionality, Measurement, Experience and Marketing above Preferences, Reject all, Accept all and Save buttons](../assets/v3/headless-bar-html.png) A headless UI owns its focus handling and labels. Test it with a keyboard and a screen reader. The headless pages for [React](/docs/frameworks/react/headless), [Vue](/docs/frameworks/vue/headless) and [Svelte](/docs/frameworks/svelte/headless) cover notices and custom preference forms. ## Check a design Run these checks after you adopt a design: 1. Clear site data and reload. The banner appears and no optional vendor request appears in DevTools Network. 2. Click Reject all, reload, and confirm the banner stays closed and the vendors stay blocked. 3. Open preferences from your footer link, allow one category, save, and confirm only that category's vendors load. 4. Test a 375-pixel viewport with your longest translation, and tab through every button. [Verify consent](/docs/guides/verify-consent) has the full list. ## Run the designs The source repository renders each design in its Storybook under `Docs / Banner designs`: `apps/storybook-react`, `apps/storybook-vue`, `apps/storybook-svelte` and `apps/storybook-astro`. Each story uses an in-memory policy and loads no analytics. The HTML headless bar runs at `/consent-example/headless` in `internals/fixtures/script-tag`, which the example acceptance tests cover. # Theme tokens URL: https://c15t.com/docs/customization/tokens Change c15t's colors, type, radius, spacing, shadows and motion with theme tokens, and see every --c15t-* variable with its default. ## Where tokens come from c15t's components take their colors from `--c15t-*` CSS variables, and most of their fonts, radii, spacing, shadows and motion too. c15t's rules set the defaults. You change them with a theme object or with CSS, and every part that reads a token changes with it. Some values are still fixed for one component, such as button padding, the radius of the "Secured by" tag and several font sizes and weights, so a token change does not move them. Restyle those parts through [slots](/docs/customization/slots) or your own CSS. [Stylesheets and CSS layers](/docs/customization/stylesheets) covers how c15t loads its rules, and [dark mode](/docs/customization/dark-mode) covers the dark set of tokens. ## Set semantic values together This React theme changes the brand color and large corner radius. Include hover and foreground colors when overriding raw variables so the button remains readable in each state. ```ts import { defineTheme } from '@c15t/ui/theme'; export const theme = defineTheme({ colors: { primary: '#2f6f4e' }, radius: { lg: '4px' }, consentActions: { primary: { variant: 'primary', mode: 'filled' }, dismiss: { variant: 'neutral', mode: 'stroke' }, }, }); ``` Install `@c15t/ui` if importing its theme helper directly. Where the theme goes depends on the framework: |Framework|Tokens|`consentActions`| |--|--|--| |Next.js, TanStack Start, React|``, rendered on the server where the app has one|`theme` in the provider options| |Nuxt, Vue|`theme` or `tokens` in the module or plugin options|Not available| |Astro|`theme` in the integration options|The same `theme`| |Svelte, SvelteKit|`generateThemeCSS(theme)` from `@c15t/ui/theme` on the server, in a ``; ``` For the banner in server-rendered HTML, use the c15t Nuxt module. Start with the Nuxt quickstart in the [framework list](/docs/frameworks). It resolves the policy on the server, renders the banner and tokens in the first HTML, and hydrates without another request. ## Verify your deployment Serve the production build and open the Network tab: |`mode`|Policy requests on the first page load| |--|--| |`manifest()` with a build snapshot|None to the backend. A language other than English loads its text from your site.| |`manifest({ source: 'runtime' })`|One `GET` to `${backendURL}/manifest`| |`manifest({ manifestURL })`|One `GET` to `manifestURL`| |`hosted()`|One `GET` to `${backendURL}/init`| |`offline()`|None| Reject, reload, and confirm the banner stays closed. Then follow [verify consent](/docs/guides/verify-consent) for the vendor checks. # Scripts URL: https://c15t.com/docs/frameworks/vue/scripts Load vendor scripts by consent category in a Vue app with the c15t Vue plugin, and what happens when a visitor withdraws consent. ## Register vendor scripts A banner does not stop a script you load with a `