- Dark/Light mode, you can toggle them and It'll be saved in local store
- Clock and Date format can be set to 24 hour (default) or 12 hour
- Greetings are easy to change and modify
- Variables for custom colors and font sizes in the
css
code - Icons all icons are from Feather Icons (Some others I made them with the Feather icons as a base)
- Modular javascript files for an easy read
- Fork this repo
- Enable the Github Pages service
Settings > GitHub Pages > Source [master branch] > Save
- Set it as Home Page:
- Click the menu button. and select Options. Preferences.
- Click the Home panel.
- Click the menu next to Homepage and new windows and choose to show custom URLs and add your
Github Pages link
- You can use different Add-ons/Extensions for it
- If you use Firefox: Custom New Tab Page
- If you use Chromium (Brave, Vivaldi, Chrome): Custom New Tab URL
All the code is using variables and is comented, It's easy to customize the project to your own, and this sections are the principal customizable elements in the Startpage:
You can change the links (and the icons too) in the HTML Code:
<a href="https://github.com/" target="blank" class="qlink__link qlink__link-1">
<i class="qlink__icon" data-feather="github"></i>
</a>
Change the link in the href
property with the link you want. (The target="blank"
makes the link to open a new tab with the link you choose).
The Project uses Feather icons for the icons, and you can change them in the data-feather=""
property with the name of the icon.
In the CSS code you can always change the variables for both themes (Dark and Light)
/* Light theme */
:root {
--accent: #186efdaa;
--bg: #f5f5f5;
--sbg: #e4e6e6;
--fg: #3a3a3a;
--imgcol: linear-gradient(
rgba(255, 255, 255, 0.7),
rgba(255, 255, 255, 0.7)
);
}
/* Dark theme */
.darktheme {
--accent: #186efd60;
--bg: #1e1f21;
--sbg: #2c2d31;
--fg: #d8dee9;
--imgcol: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7));
}
In the theme.js
file there's a section about changing the theme depending in the time. You have to 'Uncomment' that section to enable it:
const today = new Date();
const Hr = today.getHours();
if (Hr >= 19 || Hr < 5) {
enableDark();
} else {
disableDark();
}
You can set your own background image with the variable --imgbg
and set the route to the image you want It's disable by default. If you uncomment the variable, it has by default this image:
It has a black filter by default in --imgcol
, and it'ts value is: rgba(255, 255, 255, 0.7)
and rgba(0, 0, 0, 0.7)
for the dark theme. You can change them and the opacity for a better experience with your image.
You can put your name and change the greetings.
var name = 'John Doe';
var lateTxt = 'Go to Sleep! ';
var morningTxt = 'Good morning! ';
var afterTxt = 'Good afternoon ';
var evenTxt = 'Good evening ';
It'll change in order of the hour.
For setting up the Weather widget you're going to need an API Key in: https://openweathermap.org/
. Once you have your Key you'll need to set yourlatitude and longitude, you can use: https://www.latlong.net/
to get them. Once you have the data, you'll need to set them in the weather.js
in the js folder. The code is
If you don't like to have your API Key public, you can make the repo into a private one. You can still use the Github Pages service.
The icons by themselves have now 4 different color schemes:
- Nord Using the Nord Color Scheme and easy-to-eyes colors
- OneDark (Default one) Using the One Dark Pro color scheme
- Dark For White theme only users that want a minimalist look
- White For Dark theme only users that want a minimalist look
You set the icon theme changing this two lines of code in the index.html
and weather.js
files:
- If you want the Dark icon theme, change the
OneDark
toDark
- If you want the White icon theme, change the
OneDark
toWhite
- If you want the Nord icon theme, change the
OneDark
toNord
For example if I'd like to use the Dark
icon theme:
<div class="weather-icon">
<img src="icons/OneDark/unknown.png" />
</div>
<!-- Change it to: -->
<div class="weather-icon">
<img src="icons/Dark/unknown.png" />
</div>
function displayWeather() {
iconElement.innerHTML = `<img src="icons/OneDark/${weather.iconId}.png"/>`;
tempElement.innerHTML = `${weather.temperature.value}°<span class="darkfg">${tempUnit}</span>`;
descElement.innerHTML = weather.description;
}
//Change it to:
function displayWeather() {
iconElement.innerHTML = `<img src="icons/Dark/${weather.iconId}.png"/>`;
tempElement.innerHTML = `${weather.temperature.value}°<span class="darkfg">${tempUnit}</span>`;
descElement.innerHTML = weather.description;
}