add sass
9
src/assets/css/animate.css
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
/*!
|
||||
* animate.css -http://daneden.me/animate
|
||||
* Version - 3.7.0
|
||||
* Licensed under the MIT license - http://opensource.org/licenses/MIT
|
||||
*
|
||||
* Copyright (c) 2018 Daniel Eden
|
||||
* Modified by ohlookitsderpy
|
||||
*/
|
||||
@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}to{opacity:1;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}to{opacity:1;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.animated{-webkit-animation-duration:0.75s;animation-duration:0.75s;-webkit-animation-fill-mode:both;animation-fill-mode:both}
|
||||
1
src/assets/css/index.css
Normal file
@@ -0,0 +1 @@
|
||||
.mountain{background-image:url("../img/1.jpeg")}.sunrise{background-image:url("../img/2.jpeg")}.butterfly{background-image:url("../img/3.jpeg")}.leaves{background-image:url("../img/4.jpeg")}.river{background-image:url("../img/5.jpeg")}.sea{background-image:url("../img/6.jpeg")}.space{background-image:url("../img/7.jpeg")}.ice{background-image:url("../img/8.jpeg")}.waterfall{background-image:url("../img/9.jpeg")}.river{background-image:url("../img/10.jpeg")}.sunset{background-image:url("../img/11.jpeg")}.desert{background-image:url("../img/12.jpeg")}.canyon{background-image:url("../img/13.jpeg")}.rose{background-image:url("../img/14.jpeg")}.forest{background-image:url("../img/15.jpeg")}.cherry{background-image:url("../img/16.jpeg")}.clouds{background-image:url("../img/17.jpeg")}.winter{background-image:url("../img/18.jpeg")}.autumn{background-image:url("../img/19.jpeg")}.flowers{background-image:url("../img/20.jpeg")}.sunrise{background-image:url("../img/21.jpeg")}.rocks{background-image:url("../img/22.jpeg")}.trees{background-image:url("../img/23.jpeg")}.mountains{background-image:url("../img/24.jpeg")}.beach{background-image:url("../img/25.jpeg")}.quote{--shadow-shift: 0.125rem;width:37.5%;max-width:37.5rem;font-size:1.5rem;text-align:center}.quote blockquote{margin:0 0 .25rem 0;line-height:1.125}.quote blockquote ::before{content:"“";margin-right:.25ch}.quote blockquote ::after{content:"”";margin-left:.25ch}.quote cite{font-size:83.33%}.greeting{--shadow-shift: 0.2rem;font-size:3.25rem}time{--shadow-shift: 0.4rem;font-size:12rem}:root{--shadow-color: #111111CC}html,body{height:100%}body{display:flex;flex-direction:column;justify-content:space-around;align-items:center;margin:0;background-size:cover;background-position:50%;background-color:#000;font-family:"Roboto";color:#fff;overflow:hidden;-moz-user-select:none;user-select:none}.greeting,time,.quote{filter:drop-shadow(var(--shadow-shift) var(--shadow-shift) 0 var(--shadow-color))}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url("../font/roboto-v18-latin-regular.woff2") format("woff2")}/*# sourceMappingURL=index.css.map */
|
||||
1
src/assets/css/index.css.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"sourceRoot":"","sources":["../scss/modules/_background.scss","../scss/modules/_quote.scss","../scss/modules/_time-greeting.scss","../scss/index.scss"],"names":[],"mappings":"CAAA,gDACA,+CACA,iDACA,8CACA,6CACA,2CACA,6CACA,2CACA,iDACA,8CACA,+CACA,+CACA,+CACA,6CACA,+CACA,+CACA,+CACA,+CACA,+CACA,gDACA,gDACA,8CACA,8CACA,kDACA,8CCxBA,OAEI,yBAEA,YACA,kBAGA,iBACA,kBAEA,kBAEI,oBAEA,kBAEA,2BACI,YACA,mBAGJ,0BACI,YACA,kBAIR,YACI,iBC3BR,UAEC,uBAEA,kBAMD,KAEC,uBAEA,gBCMD,MACC,0BAGD,sBACA,KAEC,aACA,sBACA,6BACA,mBAEA,SAEA,sBACA,wBACA,sBAEA,qBACA,WAEA,gBAEC,sBACD,iBAGD,sBAIC,kFAID,WACC,qBACA,kBACA,gBACA","file":"index.css"}
|
||||
BIN
src/assets/font/roboto-v18-latin-regular.woff2
Normal file
BIN
src/assets/img/1.jpeg
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
src/assets/img/10.jpeg
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
src/assets/img/11.jpeg
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
src/assets/img/12.jpeg
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
src/assets/img/13.jpeg
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
src/assets/img/14.jpeg
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
src/assets/img/15.jpeg
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
src/assets/img/16.jpeg
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
src/assets/img/17.jpeg
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
src/assets/img/18.jpeg
Normal file
|
After Width: | Height: | Size: 401 KiB |
BIN
src/assets/img/19.jpeg
Normal file
|
After Width: | Height: | Size: 737 KiB |
BIN
src/assets/img/2.jpeg
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
src/assets/img/20.jpeg
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
src/assets/img/21.jpeg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
src/assets/img/22.jpeg
Normal file
|
After Width: | Height: | Size: 390 KiB |
BIN
src/assets/img/23.jpeg
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
src/assets/img/24.jpeg
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
src/assets/img/25.jpeg
Normal file
|
After Width: | Height: | Size: 300 KiB |
BIN
src/assets/img/3.jpeg
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
src/assets/img/4.jpeg
Normal file
|
After Width: | Height: | Size: 290 KiB |
BIN
src/assets/img/5.jpg
Normal file
|
After Width: | Height: | Size: 324 KiB |
BIN
src/assets/img/6.jpeg
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
src/assets/img/7.jpeg
Normal file
|
After Width: | Height: | Size: 495 KiB |
BIN
src/assets/img/8.jpeg
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
src/assets/img/9.jpeg
Normal file
|
After Width: | Height: | Size: 472 KiB |
BIN
src/assets/img/icon.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
13
src/assets/js/background-opera.js
Normal file
@@ -0,0 +1,13 @@
|
||||
// Original code sourced from https://forums.opera.com/topic/25046/how-to-disable-completely-the-speed-dial/14
|
||||
|
||||
chrome.tabs.onCreated.addListener((tab) => {
|
||||
if (tab.status === "complete" && tab.url === "chrome://startpage/") {
|
||||
chrome.tabs.update(tab.id, { url: chrome.extension.getURL("index.html") });
|
||||
}
|
||||
});
|
||||
|
||||
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
|
||||
if (changeInfo.status === "complete" && tab.url === "chrome://startpage/") {
|
||||
chrome.tabs.update(tabId, { url: chrome.extension.getURL("index.html") });
|
||||
}
|
||||
});
|
||||
335
src/assets/js/index.js
Normal file
@@ -0,0 +1,335 @@
|
||||
/*
|
||||
█████████████████████████████████████████████████████████████
|
||||
██ ██
|
||||
██ ███ ███ ██ ██ ███████ ██
|
||||
██ ████ ████ ██ ██ ██ ██
|
||||
██ ██ ████ ██ ██ ██ █████ ██
|
||||
██ ██ ██ ██ ██ ██ ██ ██
|
||||
██ ██ ██ ██████ ███████ ██
|
||||
██ ██
|
||||
██ ██
|
||||
██ Copyright 2018 Dave R (ohlookitsderpy) ██
|
||||
██ Licensed under MIT ██
|
||||
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
|
||||
██ ██
|
||||
██ Spanish Translation made by: Pepehound ██
|
||||
██ Portuguese Translation made by: Candystick ██
|
||||
██ Italian Translation made by: Yanderella ██
|
||||
██ Dutch Translation made by: Wesselgame ██
|
||||
██ French Translation made by: Yanderella ██
|
||||
██ & ohlookitsderpy ██
|
||||
██ ██
|
||||
██ Special thanks to contributors! <3 ██
|
||||
█████████████████████████████████████████████████████████████
|
||||
*/
|
||||
|
||||
let contains = function(needle) {
|
||||
|
||||
let findNaN = needle !== needle;
|
||||
let indexOf;
|
||||
|
||||
if(!findNaN && typeof Array.prototype.indexOf === 'function') {
|
||||
indexOf = Array.prototype.indexOf;
|
||||
} else {
|
||||
indexOf = function(needle) {
|
||||
let i = -1, index = -1;
|
||||
|
||||
for(i = 0; i < this.length; i++) {
|
||||
let item = this[i];
|
||||
|
||||
if((findNaN && item !== item) || item === needle) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return index;
|
||||
};
|
||||
}
|
||||
|
||||
return indexOf.call(this, needle) > -1;
|
||||
};
|
||||
|
||||
|
||||
let nal = navigator.language;
|
||||
|
||||
let itcodes = ['it', 'it-IT', 'it-CH'];
|
||||
let nlcodes = ['nl', 'nl-BE'];
|
||||
let frcodes = ['fr', 'fr-BE', 'fr-CA', 'fr-FR', 'fr-LU', 'fr-MC', 'fr-CH'];
|
||||
let ptcodes = ['pt', 'pt-BR'];
|
||||
let spcodes = ['es', 'es-AR', 'es-BO', 'es-CL', 'es-CO', 'es-CR', 'es-DO',
|
||||
'es-EC', 'es-ES', 'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA',
|
||||
'es-PE', 'es-PR', 'es-PY', 'es-SV', 'es-UY', 'es-VE'];
|
||||
|
||||
function setDaytimeMessage () {
|
||||
if ( contains.call(itcodes, nal) ) itMessageSet(); //Italian
|
||||
else if ( contains.call(nlcodes, nal) ) nlMessageSet(); //Dutch
|
||||
else if ( contains.call(frcodes, nal) ) frMessageSet(); //French
|
||||
else if ( contains.call(ptcodes, nal) ) ptMessageSet(); //Portuguese
|
||||
else if ( contains.call(spcodes, nal) ) spMessageSet(); //Spanish
|
||||
else engMessageSet(); //English
|
||||
};
|
||||
|
||||
function setRandomBackground () {
|
||||
|
||||
let backgroundClasses = [
|
||||
|
||||
'mountain',
|
||||
'sunrise',
|
||||
'butterfly',
|
||||
'leaves',
|
||||
'river',
|
||||
'sea',
|
||||
'space',
|
||||
'ice',
|
||||
'waterfall',
|
||||
'river',
|
||||
'sunset',
|
||||
'desert',
|
||||
'canyon',
|
||||
'rose',
|
||||
'forest',
|
||||
'cherry',
|
||||
'clouds',
|
||||
'autumn',
|
||||
'winter',
|
||||
'flowers',
|
||||
'sunrise',
|
||||
'rocks',
|
||||
'trees',
|
||||
'mountains',
|
||||
'beach'
|
||||
|
||||
],
|
||||
currentBackgroundClass = pickFromArray(backgroundClasses);
|
||||
|
||||
document.body.classList.add(currentBackgroundClass);
|
||||
|
||||
};
|
||||
|
||||
function setRandomQuote () {
|
||||
|
||||
let quotes = {
|
||||
eng: [
|
||||
'Time goes on. So whatever you’re going to do, do it. Do it now. Don’t wait.',
|
||||
'All our dreams can come true, if we have the courage to pursue them.',
|
||||
'It does not matter how slowly you go as long as you do not stop.',
|
||||
'Believe in yourself. You are braver than you think, more talented than you know, and capable of more than you imagine.',
|
||||
'If you believe it will work out, you’ll see opportunities. If you believe it won’t, you will see obstacles',
|
||||
'Everything you’ve ever wanted is on the other side of fear.',
|
||||
'Success is not final, failure is not fatal: it is the courage to continue that counts.',
|
||||
'There is only one thing that makes a dream impossible to achieve: the fear of failure.',
|
||||
'Your true success in life begins only when you make the commitment to become excellent at what you do.',
|
||||
'Believe in yourself, take on your challenges, dig deep within yourself to conquer fears. Never let anyone bring you down. You got to keep going.',
|
||||
'Too many of us are not living our dreams because we are living our fears.',
|
||||
'Hard times don’t create heroes. It is during the hard times when the ‘hero’ within us is revealed.',
|
||||
'If you can tune into your purpose and really align with it, setting goals so that your vision is an expression of that purpose, then life flows much more easily.',
|
||||
'Whatever the mind can conceive and believe, it can achieve.',
|
||||
'Don’t wish it were easier. Wish you were better.',
|
||||
'A champion is defined not by their wins but by how they can recover when they fall.',
|
||||
'Motivation comes from working on things we care about.',
|
||||
'With the right kind of coaching and determination you can accomplish anything.',
|
||||
'Some people look for a beautiful place. Others make a place beautiful.',
|
||||
'Life is like riding a bicycle. To keep your balance, you must keep moving.',
|
||||
|
||||
],
|
||||
ita: [
|
||||
'Il tempo passa. Quindi qualunque cosa che farai, falla. Falla ora. Non aspettare',
|
||||
'Tutti i nostri sogni possono diventare reali, se abbiamo il coraggio di seguirli.',
|
||||
'Non importa quanto lentamente vai fino a quando non ti fermi',
|
||||
'Credi in te stesso. Sei più coraggioso di quanto pensi, più talentuoso di quanto credi, e capace più di quanto puoi immaginare.',
|
||||
'Se ci credi funzionerà, vedrai delle opportunità. Se non ci credi, vedrai solamente ostacoli',
|
||||
'Tutti i tuoi desideri sono opposti alla paura',
|
||||
'Il successo non è la fine, il fallimento non è fatale: è il coraggio per continuare quello che conta.',
|
||||
"C'è solo una cosa che fa i sogni impossibili: la paura di fallire",
|
||||
'Il vero successo nella tua vita inizia solo quando fai il sacrificio per diventare eccellente a quello che ami.',
|
||||
"Credi in te stesso, sfida i tuoi problemi, scava nel profondo del tuo io per sconfiggere le tue paure. Mai arrendersi per qualcun'altro. Tu devi continuare.",
|
||||
"Troppe persone non vivono i loro sogni per vivere nelle loro paure",
|
||||
"Tempi difficili non fanno eroi. È durante i tempi duri che \"l'eroe\" in noi viene rivelato.",
|
||||
"Se puoi sintonizzare sul tuo senso e allinearti a quest'ultimo, impostando i tuoi obiettivi in modo che la tua visione sia un'espressione di quel senso, La tua vita scorre molto più facilmente",
|
||||
"Qualunque cosa la mente può immaginare e crederese, si può realizzare",
|
||||
"Non desiderare che fosse stato più facile. Desidera che tu fossi stato migliore.",
|
||||
"Un campione si definisce non dalle sue vittorie ma da come recupera quando cade",
|
||||
"La motivazione viene dal lavorare so cose che amiamo",
|
||||
"Con il giusto tipo di allenamento e determinazione puoi fare tutto",
|
||||
"Alcune persone cercano un posto indimenticabile. Altre lo transformano in un posto mozzafiato.",
|
||||
"La vita è come andare in bicicletta. Per tenerti in equilibrio, devi continuare a muoverti"
|
||||
],
|
||||
spa: [
|
||||
'El tiempo continúa. Así que lo que sea que vayas a hacer, hazlo. Hazlo ahora. No esperes',
|
||||
'Todos nuestros sueños pueden hacerse realidad, si tenemos el coraje de perseguirlos.',
|
||||
'No importa qué tan lento vayas, siempre y cuando no te detengas.',
|
||||
'Cree en ti mismo. Eres más valiente de lo que crees, más talentoso de lo que sabes y capaz de más de lo que imaginas.',
|
||||
'Si crees que funcionará, verás oportunidades. Si crees que no, verás obstáculos ',
|
||||
'Todo lo que siempre has querido está al otro lado del miedo',
|
||||
'El éxito no es definitivo, el fracaso no es fatal: el coraje para continuar es lo que cuenta',
|
||||
'Solo hay una cosa que hace que un sueño sea imposible de lograr: el miedo al fracaso',
|
||||
'Tu verdadero éxito en la vida comienza solo cuando te comprometes a ser excelente en lo que haces',
|
||||
'Cree en ti mismo, asume tus desafíos, excava profundo dentro de ti mismo para vencer tus miedos. Nunca dejes que nadie te derribe. Tienes que seguir adelante.',
|
||||
'Muchos de nosotros no estamos viviendo nuestros sueños porque estamos viviendo nuestros miedos',
|
||||
'Los tiempos difíciles no crean héroes. Es durante los momentos difíciles en que se revela el héroe dentro de nosotros.',
|
||||
'Si puedes sincornizarte con tu propósito, y realmente alinearte con él, estableciendo metas para que tu visión sea una expresión de ese propósito, entonces la vida fluye mucho más fácilmente',
|
||||
'Lo que la mente pueda concebir y creer, lo puede lograr',
|
||||
'No desees que sea fácil. Desea ser mejor.',
|
||||
'Un campeón se define no por sus victorias, sino por cómo pueden recuperarse cuando caen',
|
||||
'La motivación viene de trabajar en cosas que nos importan',
|
||||
'Con el entrenamiento y la determinación adecuados, puedes lograr cualquier cosa',
|
||||
'Algunas personas buscan un lugar hermoso. Otras, hacen un lugar hermoso.',
|
||||
],
|
||||
pt: [
|
||||
'O tempo continua. Então o que quer que você vai fazer,faça. Faça agora. Não espere.',
|
||||
'Todos os sonhos podem virar verdade,se tivermos a coragem de persegui-los.',
|
||||
'Não importa o quão devagar você for,desde que você não pare.',
|
||||
'Acredite em si mesmo. Você é mais corajoso que pensa,mais talentoso que sabe,e capaz de mais que imagina.',
|
||||
'Se você acredita que vai dar certo,você verá oportunidades. Se você acredita que não vai,você vera obstáculos.',
|
||||
],
|
||||
authors: [
|
||||
'Robert De Niro',
|
||||
'Walt Disney',
|
||||
'Confucius',
|
||||
'Roy T. Bennett',
|
||||
'Wayne Dyer',
|
||||
'George Addair',
|
||||
'Winston Churchill',
|
||||
'Paulo Coelho',
|
||||
'Brian Tracy',
|
||||
'Chantal Sutherland',
|
||||
'Les Brown',
|
||||
'Bob Riley',
|
||||
'Jack Canfield',
|
||||
'Napoleon Hill',
|
||||
'Jim Rohn',
|
||||
'Serena Williams',
|
||||
'Sheryl Sandberg',
|
||||
'Reese Witherspoon',
|
||||
'Hazrat Inayat Khan',
|
||||
'Albert Einstein'
|
||||
]
|
||||
|
||||
};
|
||||
let id = getRandIndex( quotes.authors );
|
||||
|
||||
if ( contains.call(itcodes, nal) ) setHTMLContent('blockquote', quotes.ita[id]);
|
||||
else if( contains.call(ptcodes, nal) ) setHTMLContent('blockquote', quotes.pt[id] || quotes.eng[id]);
|
||||
else if( contains.call(spcodes, nal) ) setHTMLContent('blockquote', quotes.spa[id]);
|
||||
else setHTMLContent('blockquote', quotes.eng[id]);
|
||||
|
||||
setHTMLContent('cite', quotes.authors[id]);
|
||||
|
||||
};
|
||||
|
||||
|
||||
function setTime () {
|
||||
|
||||
let date = new Date(),
|
||||
|
||||
time = [
|
||||
|
||||
formatTimeUnit(date.getHours()),
|
||||
formatTimeUnit(date.getMinutes()),
|
||||
formatTimeUnit(date.getSeconds())
|
||||
|
||||
];
|
||||
|
||||
// joins all of the array elements into a string using the ':' separator
|
||||
// example: [16, 32, 03] -> "16:32:03"
|
||||
|
||||
setHTMLContent('time', time.join(':'));
|
||||
|
||||
};
|
||||
|
||||
function init () {
|
||||
|
||||
|
||||
// init() gets executed only when the page is fully loaded
|
||||
|
||||
setDaytimeMessage();
|
||||
setRandomBackground();
|
||||
setRandomQuote();
|
||||
setTime();
|
||||
|
||||
// set interval to update time every second
|
||||
|
||||
let timeInterval = setInterval(setTime, 1000);
|
||||
};
|
||||
|
||||
// initialize on page load through a listener
|
||||
|
||||
document.addEventListener('DOMContentLoaded', init);
|
||||
|
||||
// UTILITY FUNCTIONS
|
||||
|
||||
// format time
|
||||
|
||||
function formatTimeUnit (unit) { return unit < 10 ? '0' + unit : unit };
|
||||
|
||||
// setHTMLContent is the kind of function that is referred to as a 'wrapper'
|
||||
|
||||
function setHTMLContent (selector, content) { return document.querySelector(selector) .innerHTML = content };
|
||||
|
||||
function getRandIndex(array) { return Math.floor(Math.random() * (array.length - 1)) }
|
||||
|
||||
function pickFromArray(array) { return array[Math.floor(Math.random() * (array.length - 1))] };
|
||||
|
||||
// Disable right click
|
||||
|
||||
document.oncontextmenu=RightMouseDown;
|
||||
function RightMouseDown() { return false; }
|
||||
|
||||
// LANGUAGE FUNCTIONS
|
||||
|
||||
// English
|
||||
|
||||
function engMessageSet() {
|
||||
|
||||
let hour = new Date().getHours(); // Get the current hour
|
||||
let time = 'Good evening'; // Set the default time string to "Good evening"
|
||||
|
||||
if (hour < 12) time = 'Good morning'; //If it's before 12am, set the time string to "Good morning"
|
||||
else if (hour > 18) time = 'Good afternoon'; //If it's after 6pm, set the time string to "Good afternoon"
|
||||
|
||||
setHTMLContent('.greeting', time); // Write the string contents to the HTML
|
||||
}
|
||||
|
||||
// Italian
|
||||
function itMessageSet() {
|
||||
let hour = new Date().getHours(); // Get the current hour
|
||||
let time = 'Buongiorno';
|
||||
|
||||
if (hour > 18) time = 'Buonasera'; //In Italian there is just Buongiorno or Buonasera
|
||||
|
||||
setHTMLContent('.greeting', time); // Write the string contents to the HTML
|
||||
}
|
||||
|
||||
// Dutch
|
||||
function nlMessageSet() {
|
||||
let hour = new Date().getHours(); // Get the current hour
|
||||
let time = 'Goedemiddag'; // Set the default time string to "Good evening"
|
||||
|
||||
if (hour < 12) time = 'Goedemorgen'; //If it's before 12am, set the time string to "Good morning"
|
||||
else if (hour > 18) time = 'Goedenavond'; //If it's after 6pm, set the time string to "Good afternoon"
|
||||
|
||||
setHTMLContent('.greeting', time); // Write the string contents to the HTML
|
||||
}
|
||||
|
||||
// French
|
||||
function frMessageSet() {
|
||||
let hour = new Date().getHours(); // Get the current hour
|
||||
let time = 'Bonsoir'; // Set the default time string to "Good evening"
|
||||
|
||||
if (hour < 12) time = 'Bonjour'; //If it's before 12am, set the time string to "Good morning"
|
||||
else if (hour > 18) time = 'Bonne après-midi'; //If it's after 6pm, set the time string to "Good afternoon"
|
||||
|
||||
setHTMLContent('.greeting', time); // Write the string contents to the HTML
|
||||
}
|
||||
|
||||
// Spanish
|
||||
function spMessageSet() {
|
||||
let hour = new Date().getHours(); // Get the current hour
|
||||
let time = 'Buenas Tardes'; // Set the default time string to "Good evening"
|
||||
|
||||
if (hour < 12) time = 'Buenos Días'; // If it's before 12am, set the time string to "Good morning"
|
||||
else if (hour > 20) time = 'Buenas Noches'; // If it's after 6pm, set the time string to "Good afternoon"
|
||||
|
||||
setHTMLContent('.greeting', time); // Write the string contents to the HTML
|
||||
}
|
||||
64
src/assets/scss/index.scss
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
█████████████████████████████████████████████████████████████
|
||||
██ ██
|
||||
██ ███ ███ ██ ██ ███████ ██
|
||||
██ ████ ████ ██ ██ ██ ██
|
||||
██ ██ ████ ██ ██ ██ █████ ██
|
||||
██ ██ ██ ██ ██ ██ ██ ██
|
||||
██ ██ ██ ██████ ███████ ██
|
||||
██ ██
|
||||
██ ██
|
||||
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
|
||||
██ Licensed under MIT ██
|
||||
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
|
||||
██ ██
|
||||
██ Special thanks to contributors! <3 ██
|
||||
█████████████████████████████████████████████████████████████
|
||||
*/
|
||||
|
||||
@import 'modules/background';
|
||||
@import 'modules/quote';
|
||||
@import 'modules/time-greeting';
|
||||
|
||||
:root {
|
||||
--shadow-color: #111111CC;
|
||||
}
|
||||
|
||||
html, body { height: 100%; }
|
||||
body {
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
margin: 0;
|
||||
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
background-color: black; /* Prevent white flash on page load */
|
||||
|
||||
font-family: 'Roboto';
|
||||
color: white;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
-moz-user-select: none; /* Firefox */
|
||||
user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
|
||||
}
|
||||
|
||||
.greeting,
|
||||
time,
|
||||
.quote {
|
||||
|
||||
filter: drop-shadow(var(--shadow-shift) var(--shadow-shift) 0 var(--shadow-color));
|
||||
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'),
|
||||
url('../font/roboto-v18-latin-regular.woff2') format('woff2');
|
||||
}
|
||||
25
src/assets/scss/modules/_background.scss
Normal file
@@ -0,0 +1,25 @@
|
||||
.mountain { background-image: url('../img/1.jpeg'); }
|
||||
.sunrise { background-image: url('../img/2.jpeg'); }
|
||||
.butterfly { background-image: url('../img/3.jpeg'); }
|
||||
.leaves { background-image: url('../img/4.jpeg'); }
|
||||
.river { background-image: url('../img/5.jpeg'); }
|
||||
.sea { background-image: url('../img/6.jpeg'); }
|
||||
.space { background-image: url('../img/7.jpeg'); }
|
||||
.ice { background-image: url('../img/8.jpeg'); }
|
||||
.waterfall { background-image: url('../img/9.jpeg'); }
|
||||
.river { background-image: url('../img/10.jpeg'); }
|
||||
.sunset { background-image: url('../img/11.jpeg'); }
|
||||
.desert { background-image: url('../img/12.jpeg'); }
|
||||
.canyon { background-image: url('../img/13.jpeg'); }
|
||||
.rose { background-image: url('../img/14.jpeg'); }
|
||||
.forest { background-image: url('../img/15.jpeg'); }
|
||||
.cherry { background-image: url('../img/16.jpeg'); }
|
||||
.clouds { background-image: url('../img/17.jpeg'); }
|
||||
.winter { background-image: url('../img/18.jpeg'); }
|
||||
.autumn { background-image: url('../img/19.jpeg'); }
|
||||
.flowers { background-image: url('../img/20.jpeg'); }
|
||||
.sunrise { background-image: url('../img/21.jpeg'); }
|
||||
.rocks { background-image: url('../img/22.jpeg'); }
|
||||
.trees { background-image: url('../img/23.jpeg'); }
|
||||
.mountains { background-image: url('../img/24.jpeg'); }
|
||||
.beach { background-image: url('../img/25.jpeg'); }
|
||||
32
src/assets/scss/modules/_quote.scss
Normal file
@@ -0,0 +1,32 @@
|
||||
.quote {
|
||||
|
||||
--shadow-shift: 0.125rem;
|
||||
|
||||
width: 37.5%;
|
||||
max-width: 37.5rem;
|
||||
/* 600px on desktop */
|
||||
|
||||
font-size: 1.5rem;
|
||||
text-align: center;
|
||||
|
||||
blockquote {
|
||||
|
||||
margin: 0 0 0.25rem 0;
|
||||
|
||||
line-height: 1.125;
|
||||
|
||||
::before {
|
||||
content: '“';
|
||||
margin-right: 0.25ch;
|
||||
}
|
||||
|
||||
::after {
|
||||
content: '”';
|
||||
margin-left: 0.25ch;
|
||||
}
|
||||
}
|
||||
|
||||
cite {
|
||||
font-size: 83.33%;
|
||||
}
|
||||
}
|
||||
19
src/assets/scss/modules/_time-greeting.scss
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Greeting */
|
||||
|
||||
.greeting {
|
||||
|
||||
--shadow-shift: 0.2rem;
|
||||
|
||||
font-size: 3.25rem;
|
||||
|
||||
}
|
||||
|
||||
/* Time */
|
||||
|
||||
time {
|
||||
|
||||
--shadow-shift: 0.4rem;
|
||||
|
||||
font-size: 12rem;
|
||||
|
||||
}
|
||||
51
src/index.html
Normal file
@@ -0,0 +1,51 @@
|
||||
<!--
|
||||
█████████████████████████████████████████████████████████████
|
||||
██ ██
|
||||
██ ███ ███ ██ ██ ███████ ██
|
||||
██ ████ ████ ██ ██ ██ ██
|
||||
██ ██ ████ ██ ██ ██ █████ ██
|
||||
██ ██ ██ ██ ██ ██ ██ ██
|
||||
██ ██ ██ ██████ ███████ ██
|
||||
██ ██
|
||||
██ ██
|
||||
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
|
||||
██ Licensed under MIT ██
|
||||
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
|
||||
██ ██
|
||||
██ Special thanks to contributors! <3 ██
|
||||
█████████████████████████████████████████████████████████████
|
||||
-->
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<title>New Tab</title>
|
||||
|
||||
<link href="./assets/css/index.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="greeting animated fadeInUp"></div>
|
||||
|
||||
<time class="animated fadeInUp"></time>
|
||||
|
||||
<div class="quote animated fadeInUp">
|
||||
|
||||
<blockquote></blockquote>
|
||||
|
||||
<cite></cite>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<script src="./assets/js/index.js"></script>
|
||||
|
||||
</html>
|
||||
13
src/manifest-chrome.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Mue",
|
||||
"version": "0.1",
|
||||
"browser_action": {
|
||||
"default_icon": "./assets/img/icon.png"
|
||||
},
|
||||
"chrome_url_overrides": {
|
||||
"newtab": "index.html"
|
||||
},
|
||||
"runs_offline": true
|
||||
}
|
||||
|
||||
14
src/manifest-firefox.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Mue",
|
||||
"version": "0.1",
|
||||
"browser_action": {
|
||||
"default_icon": "./assets/img/icon.png"
|
||||
},
|
||||
"chrome_url_overrides": {
|
||||
"newtab": "index.html"
|
||||
},
|
||||
"chrome_settings_overrides": {
|
||||
"homepage": "index.html"
|
||||
}
|
||||
}
|
||||
14
src/manifest-opera.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Mue",
|
||||
"version": "0.1",
|
||||
"browser_action": {
|
||||
"default_icon": "./assets/img/icon.png"
|
||||
},
|
||||
"background": {
|
||||
"scripts": ["./assets/js/background-opera.js"]
|
||||
},
|
||||
"permissions": [
|
||||
"tabs"
|
||||
]
|
||||
}
|
||||