---
title: Configuration
description: Makes your website yours with the customizable configuration.
date: 2024-12-21
lastUpdated: 2025-12-31
tags:
- tutorial
- config
- theme
---
Already getting started your blog? It's time to **learn more** to makes your website yours with the customizable configuration.
Here's some customization to make your site more yours.
Firstly, you can open the `src/_data/site.json` file, you will find some configuration here.
## Locale & Language
The locale and language of your website. Native locale is optional.
```json
"locale": "en_US",
"lang": "en",
```
## Title & Short title
The title or name for your website. Short title is used for your PWA's app name.
```json
"title": "11ty Beer Web",
"shortTitle": "11ty Beer",
```
## Bio
### Author
Who's the author? Ghost? You can change it by changes the `author` string.
Example of the usage: ``
```json
"author": "W3Teal",
```
### Url
Url to your (this) website. Used in `sitemap.xml` and `robots.txt` for search engine optimization.
```json
"url": "https://11ty-beer.vercel.app",
```
## Theme
Default theme for BeerCSS
```json
"theme": "#6750a4",
```
## Description
The default description if the `description` string in the frontmatter is not filled.
Example of the usage: ``
```json
"description": "Welcome to my blog, powered by 11ty & BeerCSS.",
```
## GitHub Repository
The github repository which used for hosting the website code.
Example of the usage: The "View source of this page" and "Edit this page" button in posts.
```json
"ghRepo": "w3teal/11ty-beer",
```
## Keywords
The default keywords if the `tags` array in the frontmatter is not filled.
Example of the usage: ``
```json
"keywords": ["eleventy", "material", "pwa"],
```
## Social items
Used in the footer. There's a 3 strings for every arrays you need to fill.
1. `title`: The title/name of the social media.
2. `url`: The social media URL.
3. `icon`: The logo for the website. You can find the logo names in [Simple Icons](https://simpleicons.org/).
4. `rel`: (Optional) The relationship between the website and social media. Useful for [Fediverse verification](https://docs.joinmastodon.org/user/profile/#verification).
```json
"socialItems": [{
"title": "GitHub",
"url": "https://github.com/w3teal/11ty-beer",
"icon": "github"
},
{
"title": "Mastodon",
"url": "https://fosstodon.org/@w3teal",
"icon": "mastodon",
"rel": "me"
}
],
```
## Menu items
Used as lists in sidebar menu in the left.
1. `title`: The title of the page.
2. `url`: The link to the page. For triggering with [`data-ui`](https://github.com/beercss/beercss/blob/main/docs/JAVASCRIPT.md#the-trigger-of-elements), use `javascript:ui('...')`.
3. `icon`: The icon that is presenting the element. You can use `si` ([Simple Icons](https://simpleicons.org/)), `mdi` ([Material Design Icons](https://pictogrammers.com/library/mdi/)), [`lucide`](https://lucide.dev/icons/), [`feather`](https://feathericons.com/). You can find the icons in their respective website.
```json
"menuItems": [{
"title": "Home",
"url": "/",
"icon": "lucide:house"
},
{
"title": "Posts",
"url": "javascript:ui('#dialog-posts');",
"icon": "lucide:sticky-note"
},
{
"title": "Tags",
"url": "javascript:ui('#dialog-tags');",
"icon": "lucide:tags"
}
],
```
## Toolbar
You can see it at the top, with big Giscus comments button if enabled.
1. `name`: The name of the element, showed as tooltip.
2. `type`: There is `button`, `link`, `themeToggle`, and `menu`
You can use `items` array with `label` and `href` inside to make the menu elements.
3. `icon`: The icon that is presenting the element. You can use `si` ([Simple Icons](https://simpleicons.org/)), `mdi` ([Material Design Icons](https://pictogrammers.com/library/mdi/)), [`lucide`](https://lucide.dev/icons/), [`feather`](https://feathericons.com/). You can find the icons in their respective website. If you use `themeToggle` type, the options will be `iconDark` and `iconLight`.
4. `onclick`/`href`: What the element will be used for after clicked. (Not needed with `menu` type).
```json
"toolbarItems": [{
"name": "Search",
"type": "button",
"icon": "lucide:search",
"onClick": "document.getElementById('pf--wrapper').classList.toggle('active');"
},
{
"name": "Theme",
"type": "link",
"icon": "lucide:palette",
"href": "javascript:ui('#dialog-themes');"
},
{
"name": "Toggle theme",
"type": "themeToggle",
"iconDark": "lucide:moon",
"iconLight": "lucide:sun",
"onClick": "mode()"
},
{
"name": "Feed",
"type": "menu",
"icon": "lucide:rss",
"items": [{
"label": "Atom",
"href": "/feed.xml"
},
{
"label": "JSON",
"href": "/feed.json"
}
]
}
],
```
## Comments (Giscus)
Add comments feature for every posts.
If you don't use this, you can delete the `"enabled": true,` part in the configuration.
1. In the repository where your 11ty Beer used, enable the Discussion feature.
You can [learn more at GitHub Docs](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/enabling-or-disabling-github-discussions-for-a-repository).
2. [Install Giscus](https://github.com/apps/giscus) to your repository.
3. Go to [giscus.app](https://giscus.app/en), here the values you need to get.
- `data-repo` & `data-repo-id`: In "**Repository**" input, fill it.
- `data-category` & `data-category-id`: In **Discussion Category** select, click at your desired category. (For example: **General**)
4. In **Enable giscus** section code, copy the `data-repo`, `data-repo-id`, `data-category` and `data-category-id` value, and change the configuration values.
```json
"giscus": {
"enabled": true,
"dataRepo": "w3teal/11ty-beer",
"dataRepoID": "R_kgDONgFKcg",
"dataCategory": "Website Comments",
"dataCategoryID": "DIC_kwDONgFKcs4C0Yci"
},
```
## Homepage
### Hero
1. `name`: Simple text that appear under the title, can be the name of website, with an simple companion text.
2. `title`: An big text/heading that centered in the hero.
3. `description`: Longer text that appear below the title, for an longer information/tagline.
4. `image`: The hero image, with the arrays like `src` as the image source and `alt` as the alternative text.
5. `buttons`
1. `text`: The text that shown in the button.
2. `url`: What the button will be redirect to for after clicked.
3. `sr`: An screen-reader only text that clarify about the button action.
4. `extraClass`: An extra classes that added to the button, e.g. `transparent`, `fill`, etc.
5. `icon` (optional): The icon that is presenting the button action. You can use `si` ([Simple Icons](https://simpleicons.org/)), `mdi` ([Material Design Icons](https://pictogrammers.com/library/mdi/)), [`lucide`](https://lucide.dev/icons/), [`feather`](https://feathericons.com/). You can find the icons in their respective website. If you use `themeToggle` type, the options will be `iconDark` and `iconLight`.
```json
"hero": {
"name": "11ty Beer, powered by Eleventy v3.1.0.",
"title": "Blogging in 11ty has never been so easy.",
"description": "Simply set your configuration and start writing posts in Markdown without hassle.",
"image": {
"src": "/11ty-beer-hero.svg",
"alt": "hero image"
},
"buttons": [{
"text": "Get started",
"url": "/posts/getting-started",
"sr": "Tutorial on how to use it with Terminal."
},
{
"text": "Learn more",
"url": "/posts/configuration",
"extraClass": "transparent",
"sr": "Makes your website yours with the customizable configuration."
},
{
"text": "GitHub",
"url": "https://github.com/w3teal/11ty-beer",
"extraClass": "transparent",
"icon": "si:github",
"sr": "View the source code at GitHub."
}
]
},
```
### Features
Here, you can list any number of features you would like to show right after the Hero section.
1. `items`
1. `icon`: The icon that is presenting the element. You can use `si` ([Simple Icons](https://simpleicons.org/)), `mdi` ([Material Design Icons](https://pictogrammers.com/library/mdi/)), [`lucide`](https://lucide.dev/icons/), [`feather`](https://feathericons.com/). You can find the icons in their respective website.
2. `title`; The title of the feature.
3. `helper`: Helper text of the feature.
2. `button`: An big button with mesh backkground to redirect to another link, only one.
If you don't use this, you can delete the `"enabled": true,` part in the configuration.
1. `text`: The text that shown in the button.
2. `icon`: The icon that is presenting the button action. You can use `si` ([Simple Icons](https://simpleicons.org/)), `mdi` ([Material Design Icons](https://pictogrammers.com/library/mdi/)), [`lucide`](https://lucide.dev/icons/), [`feather`](https://feathericons.com/). You can find the icons in their respective website.
3. `url`: What the button will be redirect to for after clicked.
```json
"features": {
"items": [{
"icon": "lucide:hand-metal",
"title": "Flawless simple installment",
"helper": "npm install. npm start. Deploy to Vercel."
},
{
"icon": "lucide:file-sliders",
"title": "Just one configuration to go",
"helper": "All in your hand (src/_data/site.json), stress-free."
},
{
"icon": "lucide:panel-right-close",
"title": "Easier navigation",
"helper": "Modals for posts and tags."
},
{
"icon": "lucide:component",
"title": "Designed beautiful and professional",
"helper": "With the bold Material Design with blurry sprinkles."
}
],
"button": {
"enabled": true,
"text": "Get started",
"icon": "lucide:book-up",
"url": "/posts/getting-started"
}
}
```
## Favicons
To create a complete favicon for PWA and various platforms in the right size and format, we rely on the [image generator from PWA Builder ↗](https://www.pwabuilder.com/imageGenerator). Once the zip is created, you can extract it to `src/public/favicon`, which includes the `android`, `ios`, and `windows11` folders.
You can see the [demonstration of the generated favicons](/posts/favicons/) by PWA Builder