Documentation
Documentation
<script lang="ts">
import { getHeadlessConsent } from '@c15t/svelte';
import type { PresentationAction } from '@c15t/svelte';
const consent = getHeadlessConsent();
const labels: Record<PresentationAction, string> = {
accept: 'Accept all',
customize: 'Customize',
dismiss: 'Got it',
reject: 'Reject all',
save: 'Save',
};
</script>
{#if consent.banner.isVisible}
<section class="custom-consent-banner" aria-label="Cookie consent">
<p>
We use cookies to measure traffic and show ads. Choose which ones can run.
</p>
<!-- The policy decides which actions this visitor gets, and in what order. -->
{#each consent.banner.actionGroups as group, index (index)}
<div>
{#each group as action (action)}
<button type="button" onclick={() => consent.performAction(action)}>
{labels[action]}
</button>
{/each}
</div>
{/each}
</section>
{/if}
<style>
.custom-consent-banner {
position: fixed;
inset: auto 1rem 1rem;
max-width: 32rem;
padding: 1rem;
border: 1px solid currentColor;
border-radius: 0.5rem;
background: white;
}
.custom-consent-banner div {
display: flex;
gap: 0.5rem;
margin-top: 0.5rem;
}
</style>