initial
|
After Width: | Height: | Size: 120 KiB |
|
|
@ -0,0 +1,240 @@
|
|||
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
|
||||
:root {
|
||||
--fsg: 150px;
|
||||
--fsm: 85px;
|
||||
--fss: 30px;
|
||||
--fses: 18px;
|
||||
--bg: #1f2229;
|
||||
--fg: #d8dee9;
|
||||
--qbg: #2c323d;
|
||||
--blue: #5e81ac;
|
||||
}
|
||||
@media only screen and (max-width: 68.75em) {
|
||||
:root {
|
||||
--fsg: 100px;
|
||||
--fsm: 65px;
|
||||
--fss: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
color: var(--fg);
|
||||
font-size: 13.5px;
|
||||
transition: 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 150vh;
|
||||
height: 85vh;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-template-rows: repeat(4, 1fr);
|
||||
grid-gap: 30px;
|
||||
padding: 20px;
|
||||
}
|
||||
@media only screen and (max-width: 68.75em) {
|
||||
.container {
|
||||
grid-gap: 20px;
|
||||
padding: 40px;
|
||||
}
|
||||
}
|
||||
.container > * {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: var(--qbg);
|
||||
box-shadow: 0 5px 7px rgba(0, 0, 0, 0.35);
|
||||
border-radius: 5px;
|
||||
}
|
||||
.card:hover {
|
||||
transform: translateY(-0.3rem);
|
||||
box-shadow: 0 20px 30px rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
|
||||
.hour {
|
||||
grid-row: 1 / span 2;
|
||||
grid-column: 1 / span 2;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.secon {
|
||||
grid-column: 3 / span 2;
|
||||
grid-row: 1 / span 2;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.secon__date {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
}
|
||||
.secon__weather {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.clock {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#hour,
|
||||
#separator,
|
||||
#minutes {
|
||||
font-size: var(--fsg);
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#ampm {
|
||||
font-size: 50px;
|
||||
font-weight: bolder;
|
||||
height: 130px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
#month,
|
||||
#day {
|
||||
font-size: var(--fsm);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#day {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#greetings {
|
||||
font-size: var(--fses);
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.weather-icon img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.temperature-value p {
|
||||
font-size: var(--fss);
|
||||
font-weight: bolder;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.temperature-description p {
|
||||
font-size: var(--fss);
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.qlink {
|
||||
grid-row: 3 / span 2;
|
||||
grid-column: 1 / span 2;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
grid-gap: 30px;
|
||||
padding: 30px;
|
||||
}
|
||||
@media only screen and (max-width: 68.75em) {
|
||||
.qlink {
|
||||
padding: 60px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
}
|
||||
.qlink__icon {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
.qlink__link {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
background-color: var(--qbg);
|
||||
box-shadow: 0 5px 7px rgba(0, 0, 0, 0.35);
|
||||
border-radius: 5px;
|
||||
}
|
||||
.qlink__link-1 {
|
||||
grid-row: 1;
|
||||
grid-column: 1;
|
||||
}
|
||||
.qlink__link-2 {
|
||||
grid-row: 1;
|
||||
grid-column: 2;
|
||||
}
|
||||
.qlink__link-3 {
|
||||
grid-row: 2;
|
||||
grid-column: 1;
|
||||
}
|
||||
.qlink__link-4 {
|
||||
grid-row: 2;
|
||||
grid-column: 2;
|
||||
}
|
||||
.qlink__link-5 {
|
||||
grid-row: 1;
|
||||
grid-column: 3;
|
||||
}
|
||||
.qlink__link-6 {
|
||||
grid-row: 2;
|
||||
grid-column: 3;
|
||||
}
|
||||
.qlink__link:hover {
|
||||
background-color: var(--blue);
|
||||
transform: translateY(-0.3rem);
|
||||
}
|
||||
.qlink__link:hover svg {
|
||||
stroke: var(--bg);
|
||||
}
|
||||
|
||||
.qlist {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.qlist__3 {
|
||||
grid-column: 3;
|
||||
grid-row: 3 / span 2;
|
||||
}
|
||||
.qlist__4 {
|
||||
grid-column: 4;
|
||||
grid-row: 3 / span 2;
|
||||
}
|
||||
.qlist__head {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 20px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
.qlist__link {
|
||||
text-decoration: none;
|
||||
font-size: var(--fses);
|
||||
margin-top: 1px;
|
||||
padding: 10px 12px;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.qlist__link:hover {
|
||||
background-color: var(--blue);
|
||||
color: var(--bg);
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -0,0 +1,19 @@
|
|||
var today = new Date();
|
||||
var Hr = today.getHours();
|
||||
|
||||
// Here you can change the greetings and your name
|
||||
var name = 'Marci';
|
||||
var lateTxt = 'Go to Sleep! ';
|
||||
var morningTxt = 'Good morning! ';
|
||||
var afterTxt = 'Good afternoon ';
|
||||
var evenTxt = 'Good evening ';
|
||||
|
||||
if (Hr >= 0 && Hr < 6) {
|
||||
document.getElementById('greetings').innerText = lateTxt + name;
|
||||
} else if (Hr >= 6 && Hr < 12) {
|
||||
document.getElementById('greetings').innerText = morningTxt + name;
|
||||
} else if (Hr >= 12 && Hr < 17) {
|
||||
document.getElementById('greetings').innerText = afterTxt + name;
|
||||
} else {
|
||||
document.getElementById('greetings').innerText = evenTxt + name;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
window.onload = displayClock();
|
||||
function displayClock() {
|
||||
const monthNames = [
|
||||
'Jan',
|
||||
'Feb',
|
||||
'Mar',
|
||||
'Apr',
|
||||
'May',
|
||||
'Jun',
|
||||
'Jul',
|
||||
'Aug',
|
||||
'Sep',
|
||||
'Oct',
|
||||
'Nov',
|
||||
'Dec',
|
||||
];
|
||||
|
||||
function ampmfun(date) {
|
||||
if (date.getHours() > 12) {
|
||||
return ' pm'
|
||||
} else{
|
||||
return ' am'
|
||||
}
|
||||
}
|
||||
|
||||
var d = new Date();
|
||||
var mm = monthNames[d.getMonth()];
|
||||
var dd = d.getDate();
|
||||
var min = (mins = ('0' + d.getMinutes()).slice(-2));
|
||||
var hh = (d.getHours() + 24) % 12 || 12;
|
||||
var ampm = ampmfun(d);
|
||||
|
||||
document.getElementById('hour').innerText = hh;
|
||||
document.getElementById('separator').innerHTML = ' : ';
|
||||
document.getElementById('minutes').innerText = min;
|
||||
document.getElementById('ampm').innerText = ampm;
|
||||
|
||||
document.getElementById('month').innerText = mm;
|
||||
document.getElementById('day').innerText = dd;
|
||||
|
||||
setTimeout(displayClock, 1000);
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
const iconElement = document.querySelector('.weather-icon');
|
||||
const tempElement = document.querySelector('.temperature-value p');
|
||||
const descElement = document.querySelector('.temperature-description p');
|
||||
|
||||
// App data
|
||||
const weather = {};
|
||||
weather.temperature = {
|
||||
unit: 'celsius',
|
||||
};
|
||||
|
||||
const KELVIN = 273;
|
||||
// Use your own key for the Weather, Get it here: https://openweathermap.org/
|
||||
const key = 'ba8b2c1103f42cc3ba33bb3a1c215385';
|
||||
|
||||
// Set Position function
|
||||
setPosition();
|
||||
|
||||
function setPosition(position) {
|
||||
// Here you can change your position
|
||||
// You can use https://www.latlong.net/ to get it! (I use San Francisco as an example)
|
||||
let latitude = 48.104340;
|
||||
let longitude = 20.791660;
|
||||
|
||||
getWeather(latitude, longitude);
|
||||
}
|
||||
|
||||
// Get the Weather data
|
||||
function getWeather(latitude, longitude) {
|
||||
let api = `https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=${key}`;
|
||||
|
||||
console.log(api);
|
||||
|
||||
fetch(api)
|
||||
.then(function (response) {
|
||||
let data = response.json();
|
||||
return data;
|
||||
})
|
||||
.then(function (data) {
|
||||
weather.temperature.value = Math.floor(data.main.temp - KELVIN);
|
||||
weather.description = data.weather[0].description;
|
||||
weather.iconId = data.weather[0].icon;
|
||||
})
|
||||
.then(function () {
|
||||
displayWeather();
|
||||
});
|
||||
}
|
||||
|
||||
// Display Weather info
|
||||
function displayWeather() {
|
||||
iconElement.innerHTML = `<img src="icons/${weather.iconId}.png"/>`;
|
||||
tempElement.innerHTML = `${weather.temperature.value}°<span>C</span>`;
|
||||
descElement.innerHTML = weather.description;
|
||||
}
|
||||
|
|
@ -0,0 +1,249 @@
|
|||
// Variables
|
||||
|
||||
$bp-largest: 75em;
|
||||
$bp-large: 68.75em;
|
||||
$bp-medium: 56.25em;
|
||||
$bp-small: 37.5em;
|
||||
$bp-smallest: 31.25em;
|
||||
|
||||
:root {
|
||||
--fsg: 150px;
|
||||
--fsm: 85px;
|
||||
--fss: 30px;
|
||||
--fses: 18px;
|
||||
--bg: #1f2229;
|
||||
--fg: #d8dee9;
|
||||
--qbg: #2c323d;
|
||||
--blue: #5e81ac;
|
||||
|
||||
@media only screen and (max-width: $bp-large) {
|
||||
--fsg: 100px;
|
||||
--fsm: 65px;
|
||||
--fss: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Proxima nova', monospace;
|
||||
color: var(--fg);
|
||||
font-size: 13.5px;
|
||||
|
||||
transition: 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.container {
|
||||
width: 150vh;
|
||||
height: 85vh;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-template-rows: repeat(4, 1fr);
|
||||
|
||||
grid-gap: 30px;
|
||||
padding: 20px;
|
||||
|
||||
@media only screen and (max-width: $bp-large) {
|
||||
grid-gap: 20px;
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
& > * {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: var(--qbg);
|
||||
box-shadow: 0 5px 7px rgba(#000000, 0.35);
|
||||
border-radius: 5px;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-0.3rem);
|
||||
box-shadow: 0 20px 30px rgba(#000000, 0.35);
|
||||
}
|
||||
}
|
||||
|
||||
.hour {
|
||||
grid-row: 1 / span 2;
|
||||
grid-column: 1 / span 2;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.secon {
|
||||
grid-column: 3 / span 2;
|
||||
grid-row: 1 / span 2;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
&__date {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
}
|
||||
&__weather {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.clock {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#hour,
|
||||
#separator,
|
||||
#minutes {
|
||||
font-size: var(--fsg);
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#month,
|
||||
#day {
|
||||
font-size: var(--fsm);
|
||||
font-weight: bold;
|
||||
}
|
||||
#day {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#greetings {
|
||||
font-size: var(--fses);
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.weather-icon img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.temperature {
|
||||
&-value p {
|
||||
font-size: var(--fss);
|
||||
font-weight: bolder;
|
||||
margin-left: 15px;
|
||||
}
|
||||
&-description p {
|
||||
font-size: var(--fss);
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.qlink {
|
||||
grid-row: 3 / span 2;
|
||||
grid-column: 1 / span 2;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
|
||||
grid-gap: 30px;
|
||||
padding: 30px;
|
||||
|
||||
@media only screen and (max-width: $bp-large) {
|
||||
padding: 60px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
|
||||
&__icon {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
&__link {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
background-color: var(--qbg);
|
||||
box-shadow: 0 5px 7px rgba(#000000, 0.35);
|
||||
border-radius: 5px;
|
||||
&-1 {
|
||||
grid-row: 1;
|
||||
grid-column: 1;
|
||||
}
|
||||
&-2 {
|
||||
grid-row: 1;
|
||||
grid-column: 2;
|
||||
}
|
||||
&-3 {
|
||||
grid-row: 2;
|
||||
grid-column: 1;
|
||||
}
|
||||
&-4 {
|
||||
grid-row: 2;
|
||||
grid-column: 2;
|
||||
}
|
||||
&-5 {
|
||||
grid-row: 1;
|
||||
grid-column: 3;
|
||||
}
|
||||
&-6 {
|
||||
grid-row: 2;
|
||||
grid-column: 3;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: var(--blue);
|
||||
transform: translateY(-0.3rem);
|
||||
|
||||
& svg {
|
||||
stroke: var(--bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.qlist {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
|
||||
&__3 {
|
||||
grid-column: 3;
|
||||
grid-row: 3 / span 2;
|
||||
}
|
||||
&__4 {
|
||||
grid-column: 4;
|
||||
grid-row: 3 / span 2;
|
||||
}
|
||||
&__head {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 20px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
&__link {
|
||||
text-decoration: none;
|
||||
font-size: var(--fses);
|
||||
margin-top: 1px;
|
||||
padding: 10px 12px;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--blue);
|
||||
color: var(--bg);
|
||||
}
|
||||
}
|
||||
}
|
||||