diff --git a/README.md b/README.md index 96bd47d69..e63a60e6d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +### :wave: Hey! If you're using this fork for theming, auto switching, or docker support, I'd recommend checking out [Bento-next](https://github.com/lewisdoesstuff/bento-next) + +Bento-next is my fork of Bento, entirely rewritten in Vue 3, with *many* more features that don't fit as well upstream. You can now host it with a Docker image, or on GitHub Pages. + 
@@ -19,6 +23,8 @@
- [🏡 As Home Page](#-as-home-page)
- [➕ As New Tab](#-as-new-tab)
- [🐬 In a Docker Container](#-in-a-docker-container)
+ - [Docker run](#docker-run)
+ - [docker-compose](#docker-compose)
- [🎨 Customization](#-customization)
- [👋 General: Name, Image Background and Greetings](#-general-name-image-background-and-greetings)
- [📐 Layouts: Bento, Lists and Buttons.](#-layouts-bento-lists-and-buttons)
@@ -26,6 +32,7 @@
- [📑 Lists & Links](#-lists--links)
- [⛈️ Weather: Api Key, Icons and Unit](#️-weather-api-key-icons-and-unit)
- [💛 Colors](#-colors)
+ - [🖌️ Custom Colors](#️-custom-colors)
- [🌑 Auto change theme](#-auto-change-theme)
@@ -60,6 +67,8 @@ You can use different Add-ons/Extensions for it
### 🐬 In a Docker Container
+*Note: the current published docker image is built from the upstream repo.**
+
You can run Bento in a Docker Container, either with `docker run`, or with the included `docker-compose` file.
#### Docker run
@@ -83,8 +92,14 @@ To change the default name, the greetings and if you want to have an image backg
```js
// General
name: 'John',
- imageBackground: false,
openInNewTab: true,
+ twelveHourFormat: false,
+ title: 'Bento',
+
+ // Theme
+ theme: 'bento',
+ imageBackground: false,
+ imageUrl: './assets/background.jpg', // Set custom background image URL. If the page is served insecurely, you may have issues loading images from pages over https.
// Greetings
greetingMorning: 'Good morning!',
@@ -94,7 +109,7 @@ To change the default name, the greetings and if you want to have an image backg
```
-> You can change the background by substituting the `background.jpg` file in `assets` folder.
+> You can change the background by providing a link to an image in `config.js`.

@@ -236,33 +251,73 @@ Finally just add them to the `config.js` file.
### 💛 Colors
-In the `app.css` file you can change the variables for both themes (Dark and Light):
+Bento supports custom theming with several pre-included presets to choose from!
+Change the current theme in `config.js`
+Included themes:
+
+ - [Arc](https://github.com/horst3180/arc-theme)
+ - Bento (default)
+ - [Catppuccin](https://github.com/catppuccin/catppuccin) -- The full set of Catppuccin colors can be added to Bento using the themes found at [catppuccin/bento](https://github.com/catppuccin/bento)
+ - [Concept-Dark](https://www.deviantart.com/zb652/art/Concept-Dark-885878180)
+ - [Monokai (free)](https://monokai.pro/)
+ - [Nord](https://www.nordtheme.com/)
+ - Sakura
+ - [Solarized](https://ethanschoonover.com/solarized/)
+ - [Summer](https://github.com/JhonnyRice/summer)
-```css
-/* Light theme */
+```js
+ // Theme
+ theme: 'bento',
+```
+### 🖌️ Custom Colors
+
+You can create your own themes by adding them to the `./assets/themes/` folder, with a `.css` extension!
+Example:
+
+```css
:root {
- --accent: #61b0f1; /* Hover color */
- --bg: #f5f5f5; /* Background color */
- --sbg: #e4e6e6; /* Cards color */
+
+ /* Light Colors */
+
+ --background: #f5f5f5; /* Background color */
+ --accent: #57a0d9; /* Hover color */
+ --cards: #e4e6e6; /* Cards color */
+
+ /* Fonts Color */
--fg: #3a3a3a; /* Foreground color */
- --sfg: #3a3a3a; /* Sceondary Foreground color */
-}
+ --sfg: #494949; /* Sceondary Foreground color */
-/* Dark theme */
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(255, 255, 255, 0.7),
+ rgba(255, 255, 255, 0.7)
+ ); /* Filter color */
+}
.darktheme {
- --accent: #61b0f1; /* Hover color */
- --bg: #19171a; /* Background color */
- --sbg: #201e21; /* Cards color */
+ /* Dark Colors */
+
+ --background: #19171a; /* Background color */
+ --accent: #57a0d9; /* Hover color */
+ --cards: #201e21; /* Cards color */
+
+ /* Fonts Color */
--fg: #d8dee9; /* Foreground color */
- --sfg: #3a3a3a; /* Secondary Foreground color */
+ --sfg: #2c292e; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(0, 0, 0, 0.85),
+ rgba(0, 0, 0, 0.85)
+ ); /* Filter color */
}
+
```
### 🌑 Auto change theme
-The theme can be automatically changed by the OS' current theme or personalized hours
+The theme can be automatically changed by the OS' current theme, set hours, or following sunrise/sunset.
that you can change in the `config.js` file:
```js
@@ -276,6 +331,9 @@ that you can change in the `config.js` file:
changeThemeByHour: true, // If it's true, it will use the values below:
hourDarkThemeActive: '18:30', // Turn on the dark theme after this hour
hourDarkThemeInactive: '07:00', // Turn off the dark theme after this hour and before the above hour
+
+ // Autochange automatically based on location (sunrise/sunset). Openweathermap API key required.
+ changeThemeByLocation: false,
```

diff --git a/app.css b/app.css
index d5edd7445..971ddd3db 100644
--- a/app.css
+++ b/app.css
@@ -20,40 +20,10 @@
--fg-list: 2vh; /* Links List */
--icon: 3vh; /* Icon Size */
- /* Fonts Color */
- --fg: #3a3a3a; /* Foreground color */
- --sfg: #494949; /* Sceondary Foreground color */
-
- /* Light Colors */
- --accent: #57a0d9; /* Hover color */
- --background: #f5f5f5; /* Background color */
- --cards: #e4e6e6; /* Cards color */
-
- /* Image background */
- --imgbg: url(assets/background.jpg); /* Image URL */
- --imgcol: linear-gradient(
- rgba(255, 255, 255, 0.7),
- rgba(255, 255, 255, 0.7)
- ); /* Filter color */
-}
-
-.darktheme {
- /* Dark Colors */
- --accent: #57a0d9; /* Hover color */
- --background: #19171a; /* Background color */
- --cards: #201e21; /* Cards color */
-
- /* Fonts Color */
- --fg: #d8dee9; /* Foreground color */
- --sfg: #2c292e; /* Secondary Foreground color */
-
- /* Image background */
- --imgcol: linear-gradient(
- rgba(0, 0, 0, 0.85),
- rgba(0, 0, 0, 0.85)
- ); /* Filter color */
}
+
+
/*
// ┌─┐┌┬┐┬ ┬┬ ┌─┐┌─┐
// └─┐ │ └┬┘│ ├┤ └─┐
diff --git a/assets/js/theme.js b/assets/js/theme.js
index 61b99a93b..b03728e48 100644
--- a/assets/js/theme.js
+++ b/assets/js/theme.js
@@ -7,6 +7,17 @@ let darkTheme = localStorage.getItem('darkTheme');
const themeToggle = document.querySelector('#themeButton');
const bodyBackground = document.getElementById('#body');
+setTheme();
+
+function setTheme() {
+ const theme = CONFIG.theme;
+ var link = document.createElement("link");
+ link.type = "text/css";
+ link.rel = "stylesheet";
+ link.href = `./assets/themes/${theme}.css`
+ document.head.appendChild(link);
+}
+
const enableDark = () => {
document.body.classList.add('darktheme');
localStorage.setItem('darkTheme', 'enabled');
@@ -39,6 +50,8 @@ themeToggle.addEventListener('click', () => {
});
if (CONFIG.imageBackground) {
+ const root = document.querySelector(':root');
+ root.style.setProperty('--imgbg', `url(${CONFIG.imageUrl})`);
document.body.classList.add('withImageBackground');
}
@@ -61,3 +74,18 @@ if (CONFIG.changeThemeByHour && CONFIG.autoChangeTheme && !CONFIG.changeThemeByO
disableDark();
}
}
+
+// there may be a better way to do this &&
+if (CONFIG.changeThemeByLocation && CONFIG.autoChangeTheme && !CONFIG.changeThemeByOS && !CONFIG.changeThemeByHour) {
+ Promise.resolve(weatherPromise).then(weather => {
+ const unix = Date.now() / 1000;
+ if (
+ unix >= weather.sunrise &&
+ unix < weather.sunset
+ ) {
+ disableDark();
+ } else {
+ enableDark();
+ }
+ });
+}
\ No newline at end of file
diff --git a/assets/js/title.js b/assets/js/title.js
new file mode 100644
index 000000000..c0d2fe15a
--- /dev/null
+++ b/assets/js/title.js
@@ -0,0 +1,10 @@
+// ___ . ___ ___
+// | | | | |__
+// | | | |___ |___
+// Function to set window title.
+
+const SetWindowTitle = () => {
+ document.title = CONFIG.title;
+}
+
+SetWindowTitle();
diff --git a/assets/js/weather.js b/assets/js/weather.js
index 3d0dbb999..8cbe8c9d9 100644
--- a/assets/js/weather.js
+++ b/assets/js/weather.js
@@ -7,56 +7,55 @@ const iconElement = document.querySelector('.weatherIcon');
const tempElement = document.querySelector('.weatherValue p');
const descElement = document.querySelector('.weatherDescription p');
-const weather = {};
-weather.temperature = {
- unit: 'celsius',
-};
-
var tempUnit = CONFIG.weatherUnit;
const KELVIN = 273.15;
const key = `${CONFIG.weatherKey}`;
-setPosition();
-
-function setPosition(position) {
- if (!CONFIG.trackLocation || !navigator.geolocation) {
- if (CONFIG.trackLocation) {
- console.error('Geolocation not available');
- }
- getWeather(CONFIG.defaultLatitude, CONFIG.defaultLongitude);
- return;
- }
- navigator.geolocation.getCurrentPosition(
- pos => {
- getWeather(pos.coords.latitude.toFixed(3), pos.coords.longitude.toFixed(3));
- },
- err => {
- console.error(err);
- getWeather(CONFIG.defaultLatitude, CONFIG.defaultLongitude);
- }
- );
+const weatherPromise = getWeather();
+displayWeather();
+
+async function setPosition() {
+ let pos;
+ if (!CONFIG.trackLocation || !navigator.geolocation) {
+ if (CONFIG.trackLocation) {
+ console.error('Geolocation not available');
+ }
+ pos = ({ lat: CONFIG.defaultLatitude, lon: CONFIG.defaultLongitude });
+ }
+
+ pos = new Promise((resolve) => {
+ navigator.geolocation.getCurrentPosition((pos) => {
+ resolve({ lat: pos.coords.latitude.toFixed(3), lon: pos.coords.longitude.toFixed(3) });
+ },
+ () => {
+ resolve({ lat: CONFIG.defaultLatitude, lon: CONFIG.defaultLongitude });
+ });
+ });
+ return pos;
}
-function getWeather(latitude, longitude) {
- let api = `https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&lang=${CONFIG.language}&appid=${key}`;
- fetch(api)
- .then(function(response) {
- let data = response.json();
- return data;
- })
- .then(function(data) {
- let celsius = Math.floor(data.main.temp - KELVIN);
- weather.temperature.value = tempUnit == 'C' ? celsius : (celsius * 9) / 5 + 32;
- weather.description = data.weather[0].description;
- weather.iconId = data.weather[0].icon;
- })
- .then(function() {
- displayWeather();
- });
+async function getWeather() {
+ const position = await setPosition();
+ let api = `https://api.openweathermap.org/data/2.5/weather?lat=${position.lat}&lon=${position.lon}&lang=${CONFIG.language}&appid=${key}`;
+
+ let response = await fetch(api).catch(err => {
+ console.log(err);
+ });
+ let data = await response.json();
+
+ let celsius = Math.floor(data.main.temp - KELVIN);
+ return {
+ description: data.weather[0].description,
+ iconId: data.weather[0].icon,
+ sunrise: data.sys.sunrise,
+ sunset: data.sys.sunset,
+ temperature: tempUnit == 'C' ? celsius : (celsius * 9) / 5 + 32
+ };
}
-function displayWeather() {
- iconElement.innerHTML = ``;
- tempElement.innerHTML = `${weather.temperature.value.toFixed(0)}°${tempUnit}`;
- descElement.innerHTML = weather.description;
+async function displayWeather() {
+ var weather = await weatherPromise;
+ iconElement.innerHTML = `
`;
+ tempElement.innerHTML = `${weather.temperature.toFixed(0)}°${tempUnit}`;
+ descElement.innerHTML = weather.description;
}
diff --git a/assets/themes/arc.css b/assets/themes/arc.css
new file mode 100644
index 000000000..9f84da343
--- /dev/null
+++ b/assets/themes/arc.css
@@ -0,0 +1,36 @@
+:root {
+ /* Light Colors */
+
+ --background: #F5F6F7; /* Background color */
+ --accent: #5294e2; /* Hover color */
+ --cards: #d9dde0; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #5c616c; /* Foreground color */
+ --sfg: #ffffff; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(245, 246, 247, 0.7),
+ rgba(245, 246, 247, 0.7)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #383C4A; /* Background color */
+ --accent: #4e5467; /* Hover color */
+ --cards: #22242d; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #D3DAE3; /* Foreground color */
+ --sfg: #5294e2; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(56 60, 74, 0.85),
+ rgba(56 60, 74, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/assets/themes/bento.css b/assets/themes/bento.css
new file mode 100644
index 000000000..9c6cec65c
--- /dev/null
+++ b/assets/themes/bento.css
@@ -0,0 +1,36 @@
+:root {
+
+ /* Light Colors */
+
+ --background: #f5f5f5; /* Background color */
+ --accent: #57a0d9; /* Hover color */
+ --cards: #e4e6e6; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #3a3a3a; /* Foreground color */
+ --sfg: #494949; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(255, 255, 255, 0.7),
+ rgba(255, 255, 255, 0.7)
+ ); /* Filter color */
+}
+
+.darktheme {
+ /* Dark Colors */
+
+ --background: #19171a; /* Background color */
+ --accent: #57a0d9; /* Hover color */
+ --cards: #201e21; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #d8dee9; /* Foreground color */
+ --sfg: #2c292e; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(0, 0, 0, 0.85),
+ rgba(0, 0, 0, 0.85)
+ ); /* Filter color */
+}
diff --git a/assets/themes/catppuccin.css b/assets/themes/catppuccin.css
new file mode 100644
index 000000000..c7fc6c7b2
--- /dev/null
+++ b/assets/themes/catppuccin.css
@@ -0,0 +1,37 @@
+:root {
+ /* Light Colors */
+ /* Catppuccin is a dark-mode color palete. The theme is similar for both modes. */
+
+ --background: #575268; /* Background color */
+ --accent: #c3bac6; /* Hover color */
+ --cards: #988ba2; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #d9e0ee; /* Foreground color */
+ --sfg: #f5e0dc; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(87, 82, 104, 0.85),
+ rgba(87, 82, 104, 0.85)
+ ); /* Filter color */
+}
+
+.darktheme {
+ /* Dark Colors */
+
+ --background: #1e1e2e; /* Background color */
+ --accent: #575268; /* Hover color */
+ --cards: #302d41; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #d9e0ee; /* Foreground color */
+ --sfg: #f5e0dc; /* Secondary Foreground color */
+
+ /* Image background */
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(30, 30, 46, 0.85),
+ rgba(30, 30, 46, 0.85)
+ ); /* Filter color */
+}
diff --git a/assets/themes/conceptdark.css b/assets/themes/conceptdark.css
new file mode 100644
index 000000000..09a923ea2
--- /dev/null
+++ b/assets/themes/conceptdark.css
@@ -0,0 +1,37 @@
+:root {
+ /* Light Colors */
+
+ /* Concept-Dark is a dark-mode only theme. Light theme mirrors dark. */
+ --background: #373b3e; /* Background color */
+ --accent: #ff9d47; /* Hover color */
+ --cards: #323538; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #b5bbc9; /* Foreground color */
+ --sfg: #484c52; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(55 59, 62, 0.85),
+ rgba(55 59, 62, 0.85)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #373b3e; /* Background color */
+ --accent: #ff9d47; /* Hover color */
+ --cards: #323538; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #b5bbc9; /* Foreground color */
+ --sfg: #484c52; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(55 59, 62, 0.85),
+ rgba(55 59, 62, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/assets/themes/monokai.css b/assets/themes/monokai.css
new file mode 100644
index 000000000..040bd0f25
--- /dev/null
+++ b/assets/themes/monokai.css
@@ -0,0 +1,36 @@
+:root {
+ /* Light Colors */
+
+ --background: #f8f8f2; /* Background color */
+ --accent: #818179; /* Hover color */
+ --cards: #cfcfc2; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #292A2B; /* Foreground color */
+ --sfg: #e6db74; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(248, 248, 242, 0.7),
+ rgba(248, 248, 242, 0.7)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #272822; /* Background color */
+ --accent: #cfcfc2; /* Hover color */
+ --cards: #3e3d32; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #cfcfc2; /* Foreground color */
+ --sfg: #fd971f; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(39 40, 34, 0.85),
+ rgba(39 40, 34, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/assets/themes/nord.css b/assets/themes/nord.css
new file mode 100644
index 000000000..6107fb187
--- /dev/null
+++ b/assets/themes/nord.css
@@ -0,0 +1,35 @@
+:root {
+ /* Light Colors */
+
+ --background: #eceff4; /* Background color */
+ --accent: #d8dee9; /* Hover color */
+ --cards: #e5e9f0; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #2e3440; /* Foreground color */
+ --sfg: #3b4252; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(216, 222, 233, 0.7),
+ /* #D8DEE9 */ rgba(216, 222, 233, 0.7)
+ ); /* Filter color */
+}
+
+.darktheme {
+ /* Dark Colors */
+
+ --background: #2e3440; /* Background color */
+ --accent: #434c5e; /* Hover color */
+ --cards: #3b4252; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #eceff4; /* Foreground color */
+ --sfg: #e5e9f0; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(26, 52, 64, 0.85),
+ /* #2E3440 */ rgba(26, 52, 64, 0.85)
+ ); /* Filter color */
+}
diff --git a/assets/themes/sakura.css b/assets/themes/sakura.css
new file mode 100644
index 000000000..386196dfe
--- /dev/null
+++ b/assets/themes/sakura.css
@@ -0,0 +1,36 @@
+:root {
+ /* Light Colors */
+
+ --background: #fffaf5; /* Background color */
+ --accent: #ffefde; /* Hover color */
+ --cards: #ebe6e1; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #4b4646; /* Foreground color */
+ --sfg: #4b4646; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(255, 250, 245, 0.7),
+ rgba(255, 250, 245, 0.7)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #000f14; /* Background color */
+ --accent: #475356; /* Hover color */
+ --cards: #0a191e; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #a0a0b4; /* Foreground color */
+ --sfg: #a0a0b4; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(0, 15, 20, 0.85),
+ rgba(0, 15, 20, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/assets/themes/solarized.css b/assets/themes/solarized.css
new file mode 100644
index 000000000..42220ee1a
--- /dev/null
+++ b/assets/themes/solarized.css
@@ -0,0 +1,36 @@
+:root {
+ /* Light Colors */
+
+ --background: #fdf6e3; /* Background color */
+ --accent: #657b83; /* Hover color */
+ --cards: #eee8d5; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #657b83; /* Foreground color */
+ --sfg: #002b36; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(245, 246, 247, 0.7),
+ rgba(245, 246, 247, 0.7)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #002b36; /* Background color */
+ --accent: #657b83; /* Hover color */
+ --cards: #073642; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #839496; /* Foreground color */
+ --sfg: #fdf6e3; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(56 60, 74, 0.85),
+ rgba(56 60, 74, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/assets/themes/summer.css b/assets/themes/summer.css
new file mode 100644
index 000000000..5b90983c0
--- /dev/null
+++ b/assets/themes/summer.css
@@ -0,0 +1,36 @@
+:root {
+ /* Light Colors */
+
+ --background: #D8E2E1; /* Background color */
+ --accent: #E7CA62; /* Hover color */
+ --cards: #ECBD10; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #292A2B; /* Foreground color */
+ --sfg: #1D1D1D; /* Sceondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(216, 226, 225, 0.7),
+ rgba(216, 226, 225, 0.7)
+ ); /* Filter color */
+ }
+
+ .darktheme {
+ /* Dark Colors */
+
+ --background: #292A2B; /* Background color */
+ --accent: #64A8D8; /* Hover color */
+ --cards: #32B5C7; /* Cards color */
+
+ /* Fonts Color */
+ --fg: #D8E2E1; /* Foreground color */
+ --sfg: #fdf6e3; /* Secondary Foreground color */
+
+ /* Image background */
+ --imgcol: linear-gradient(
+ rgba(41 42, 43, 0.85),
+ rgba(41 42, 43, 0.85)
+ ); /* Filter color */
+ }
+
\ No newline at end of file
diff --git a/config.js b/config.js
index d47d0e0ab..645783458 100644
--- a/config.js
+++ b/config.js
@@ -10,11 +10,17 @@ const CONFIG = {
// ├┴┐├─┤└─┐││ └─┐
// └─┘┴ ┴└─┘┴└─┘└─┘
+
// General
name: 'John',
- imageBackground: false,
openInNewTab: true,
twelveHourFormat: false,
+ title: 'Bento',
+
+ // Theme
+ theme: 'bento',
+ imageBackground: false,
+ imageUrl: './assets/background.jpg', // Set custom background image URL. If the page is served insecurely, you may have issues loading images from pages over https.
// Greetings
greetingMorning: 'Good morning!',
@@ -46,9 +52,12 @@ const CONFIG = {
hourDarkThemeActive: '18:30',
hourDarkThemeInactive: '07:00',
- // ┌┐ ┬ ┬┌┬┐┌┬┐┌─┐┌┐┌┌─┐
- // ├┴┐│ │ │ │ │ ││││└─┐
- // └─┘└─┘ ┴ ┴ └─┘┘└┘└─┘
+ // Autochange automatically based on location (sunrise/sunset). Openweathermap API key required.
+ changeThemeByLocation: false,
+
+ // ┌┐ ┬ ┬┌┬┐┌┬┐┌─┐┌┐┌┌─┐
+ // ├┴┐│ │ │ │ │ ││││└─┐
+ // └─┘└─┘ ┴ ┴ └─┘┘└┘└─┘
firstButtonsContainer: [
{
diff --git a/index.html b/index.html
index 2f9234e2d..f8ab2aa6f 100644
--- a/index.html
+++ b/index.html
@@ -1,12 +1,11 @@
-