# cookie-policy
**Repository Path**: mirrors_canonical/cookie-policy
## Basic Information
- **Project Name**: cookie-policy
- **Description**: A script and stylesheet that displays the Canonical cookie policy
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-08-02
- **Last Updated**: 2025-09-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Canonical cookie policy component
This project contains the scripts and styles to display a cookie policy notification on a web page.
You can use it to display a custom cookies message of your choosing on your own web page.
## Usage
This project can be installed via an [NPM package](https://www.npmjs.com/package/cookie-policy).
```bash
yarn add @canonical/cookie-policy
```
...or...
```bash
npm install @canonical/cookie-policy
```
You can then install the library either by directly linking to it or via an ES6 import.
1. Via direct link
To consume the library directly, add a link to the JS file containing an [IIFE](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) and call the lib:
```javascript
```
2. Via ES6 import
```javascript
import { cookiePolicy } from '@canonical/cookie-policy';
```
### Revoking the cookie policy
If you would like users to change their preferences you can add `js-revoke-cookie-manager` class to any element that is present in the document to recall the policy manager.
```html
```
or
```html
Revoke cookie manager
```
### Visiting a page with tracker disabled
If you add the query `?cp=hide` to any URL the cookie policy will not be rendered. The main use case is to visit the policy page without the modal blocking the content.
### Callback hook
You can set up the cookie policy with a callback when a preference is selected.
```javascript
function callbackFunction() {
alert('Calling back');
}
cpNs.cookiePolicy(callbackFunction);
```
#### Full example via ES6 import
```javascript
import { cookiePolicy } from '@canonical/cookie-policy';
cookiePolicy();
```
### Cookie groups
Essential cookies are always allowed, unless the user turns them off in their browser. Otherwise, there will be a series of values the `_cookies_accepted` cookie can contain :
| Cookie value | Description | Note |
| --- | --- | --- |
| all | All cookies accepted by the user. Currently used by the existing widget | Previous value was `true`. Using the same cookie. |
| essential | Essential cookies accepted. | This is used to hide the notification instead of not setting the cookie |
| performance | Performance cookies accepted. | - |
| functionality | Functionality cookies accepted. | - |
## Contributing
If you would like to help improve this project, here is a list of commands to
help you get started.
### Building the cookie policy
Install the requisite dependencies;
```
npm install
```
To build the JS and CSS into the build folder, run:
```
npm run build
```
You can view the build files in action by running:
```
npm run serve
```
And, visiting http://0.0.0.0:8301/
### Hacking
When developing this project you can run the following command to listen to
changes in the `src/js/*js` and `src/sass/*scss` folders and build them into the
`/build` folder.
```
npm run watch
```
Before submitting your pull request, run the linters, which checks both the JS
and Sass for errors.
```
npm run test
```
Code licensed LGPLv3 by Canonical Ltd.
With ♥ from Canonical