Compare commits

..

62 Commits
v1.0 ... 2.1

Author SHA1 Message Date
David Ralph
5be47d798b readme 2019-10-20 15:47:35 +01:00
David Ralph
c7e19aad03 re-add opera 2019-10-20 15:39:12 +01:00
David Ralph
df630e953a update 2019-10-20 14:24:23 +01:00
David Ralph
b5a0cbe0b2 Improvements 2019-10-20 13:39:01 +01:00
David Ralph
aa6400b41f Merge pull request #58 from eartharoid/master
Change time format
2019-10-13 14:24:33 -04:00
Eartharoid
735ee6def9 Update Clock.jsx 2019-10-13 19:14:31 +01:00
David Ralph
9414a35fe8 the strings are the same 2019-10-06 10:37:57 +01:00
David Ralph
13e5beadf6 Merge pull request #57 from Cyber28/master
Fix clock adding a 0 before the time
2019-10-06 10:37:14 +01:00
Adam
3c398df411 Fix clock adding a 0 before the time 2019-10-06 11:35:01 +02:00
David Ralph
27fb91e9a9 Make Cyber happier
https://u.derpyenterprises.org/gxjQ
2019-10-06 10:31:32 +01:00
David Ralph
5e5214ad0c fix quotes 2019-10-05 14:59:53 +01:00
David Ralph
90eb9a424a Merge pull request #56 from MrSheldon/master
Changed my name and added more quotes
2019-10-03 19:11:56 +02:00
Roee Lupo
9f961ffdde Fixed formatting 2019-10-03 20:11:02 +03:00
Roee Lupo
576d829c40 new quotes 2019-10-03 17:48:30 +03:00
Roee Lupo
c6e9e2226a Changing my name ktnx 2019-10-03 17:39:47 +03:00
David Ralph
fa117515fc Add files via upload 2019-09-29 17:55:00 +01:00
David Ralph
70a0ea931d Add files via upload 2019-09-29 17:49:36 +01:00
David Ralph
d8e2b6cd17 Merge pull request #55 from ohlookitsderpy/react
React
2019-09-29 17:47:43 +01:00
David Ralph
379b401d4e Add files via upload 2019-09-29 17:46:53 +01:00
David Ralph
665a093e41 wip 2019-09-26 11:06:27 +01:00
David Ralph
69ebcd7b8b make codacy happy 2019-09-26 10:45:54 +01:00
David Ralph
4dc7b4564d add that license back 2019-09-25 18:04:38 +01:00
David Ralph
8b809d6f7f Rewrite 2019-09-25 18:03:02 +01:00
David Ralph
5cd96e6d10 Delete renovate.json 2019-07-17 16:58:09 +01:00
David Ralph
a7516c3b2b Merge pull request #53 from ohlookitsderpy/renovate/sass-1.x
Update dependency sass to v1.22.5
2019-07-17 16:57:56 +01:00
David Ralph
da04a4f997 Merge pull request #52 from ohlookitsderpy/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.6
2019-07-17 16:57:42 +01:00
Renovate Bot
cbdf5c2a0b Update dependency sass to v1.22.5 2019-07-15 22:26:36 +00:00
Renovate Bot
0881c3de77 Update dependency webpack-cli to v3.3.6 2019-07-14 13:13:41 +00:00
David Ralph
e5986d2f5b Merge pull request #51 from ohlookitsderpy/renovate/sass-1.x
Update dependency sass to v1.22.4
2019-07-13 22:12:11 +01:00
David Ralph
6301e548e2 Merge branch 'master' into renovate/sass-1.x 2019-07-13 22:12:04 +01:00
David Ralph
4f78262b96 Merge pull request #50 from ohlookitsderpy/renovate/webpack-4.x
Update dependency webpack to v4.35.3
2019-07-13 22:11:43 +01:00
Renovate Bot
6ef77ff0f8 Update dependency sass to v1.22.4 2019-07-12 01:54:38 +00:00
Renovate Bot
8cd9c73ae3 Update dependency webpack to v4.35.3 2019-07-08 14:09:03 +00:00
David Ralph
85b75f042a Merge pull request #49 from ohlookitsderpy/settings
test
2019-07-06 20:28:16 +01:00
David Ralph
91eef6ae94 test 2019-07-06 20:27:41 +01:00
David Ralph
bb9e452fea Add files via upload 2019-07-06 13:59:38 +01:00
David Ralph
6f9a76506d Delete Mue - Shortcut.lnk 2019-07-06 13:59:10 +01:00
David Ralph
dc11ce79e9 Update README.md 2019-07-06 13:58:33 +01:00
David Ralph
8e3d72aaa4 Merge pull request #48 from ohlookitsderpy/renovate/sass-1.x
Update dependency sass to v1.22.3
2019-07-06 13:56:54 +01:00
David Ralph
d34dc6008e Update README.md 2019-07-06 13:56:23 +01:00
David Ralph
146223c13b Add settings to Mue (big thanks to @TurboMarshmello)
Add Settings (big thanks to @TurboMarshmello for live sharing the development of this with me)
2019-07-06 13:53:46 +01:00
David Ralph
5109bb725d Merge branch 'master' into settings 2019-07-06 13:52:19 +01:00
David Ralph
5883811535 messed that up 2019-07-06 13:47:52 +01:00
David Ralph
48562212e0 Revert "settings done"
This reverts commit 8b268d680b.
2019-07-06 13:46:08 +01:00
David Ralph
8b268d680b settings done 2019-07-06 13:44:52 +01:00
Renovate Bot
60079f16dc Update dependency sass to v1.22.3 2019-07-04 01:39:42 +00:00
David Ralph
72a8bdc28f Merge pull request #47 from ohlookitsderpy/renovate/sass-1.x
Update dependency sass to v1.22.2
2019-07-02 14:21:28 +01:00
Renovate Bot
2c3f0a663c Update dependency sass to v1.22.2 2019-07-01 21:24:44 +00:00
David Ralph
7f4716f637 oops 2019-07-01 19:47:50 +01:00
David Ralph
4ecf43e594 LOTS OF NEW STUFF (THANKS TURBOMARSHMELLO) 2019-07-01 19:47:29 +01:00
David Ralph
d22f7ceb71 new 2019-07-01 19:46:15 +01:00
David Ralph
f6965a8ceb Merge pull request #46 from ohlookitsderpy/renovate/webpack-4.x
Update dependency webpack to v4.35.2
2019-07-01 18:12:43 +01:00
Renovate Bot
541c7dbd78 Update dependency webpack to v4.35.2 2019-07-01 09:25:43 +00:00
David Ralph
eba3150396 Add issue templates 2019-06-27 10:52:36 +01:00
David Ralph
7217d0dcea Improve (see description)
* Updated GitHub profile links
* Made the Opera section clearer
* Added links to Git and Node.js
2019-06-27 10:09:02 +01:00
David Ralph
7e03b33120 Merge pull request #44 from ohlookitsderpy/renovate/sass-1.x
Update dependency sass to v1.22.1
2019-06-27 10:02:06 +01:00
Renovate Bot
9ee061c8fd Update dependency sass to v1.22.1 2019-06-27 09:01:40 +00:00
David Ralph
e018a1118a Merge pull request #45 from ohlookitsderpy/renovate/eslint-6.x
Update dependency eslint to v6.0.1
2019-06-27 10:01:29 +01:00
David Ralph
fd98cd4af1 Improve readme 2019-06-26 17:49:46 +01:00
Renovate Bot
e0a0f803a2 Update dependency eslint to v6.0.1 2019-06-25 02:14:59 +00:00
David Ralph
a513a9762a Some more settings stuff 2019-04-12 19:21:22 +01:00
David Ralph
cbf63436fb Start working on settings feature 2019-04-12 19:02:44 +01:00
93 changed files with 737 additions and 864 deletions

View File

@@ -1,59 +0,0 @@
{
"env": {
"es6": true,
"amd": true,
"node": true,
"browser": true,
"commonjs": true
},
"parserOptions": {
"ecmaVersion": 9,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"forOf": true,
"spread": true,
"modules": true,
"classes": true,
"generators": true,
"restParams": true,
"regexUFlag": true,
"regexYFlag": true,
"globalReturn": true,
"destructuring": true,
"impliedStrict": true,
"blockBindings": true,
"defaultParams": true,
"octalLiterals": true,
"arrowFunctions": true,
"binaryLiterals": true,
"templateStrings": true,
"superInFunctions": true,
"unicodeCodePointEscapes": true,
"objectLiteralShorthandMethods": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": true,
"objectLiteralShorthandProperties": true
}
},
"plugins": [],
"rules": {
"semi": "error",
"indent": [ 0, 2 ],
"strict": "off",
"eqeqeq": "error",
"no-var": "warn",
"no-undef": "warn",
"comma-dangle": "warn",
"no-dupe-args": "warn",
"no-dupe-keys": "warn",
"require-await": "warn",
"no-global-assign": "warn",
"no-duplicate-imports": "error",
"no-dupe-class-members": "error"
},
"globals": {
"_config": false,
"console": false
}
}

33
.github/ISSUE_TEMPLATE/bug-report.md vendored Normal file
View File

@@ -0,0 +1,33 @@
---
name: Bug Report
about: Report a bug to help improve this project
title: "[BUG]"
labels: bug
assignees: ''
---
**Description**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behaviour:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behaviour**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Windows]
- Browser [e.g. Chrome, Firefox]
- Version [e.g. 70]
- Resolution [e.g 1920x1080]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,14 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[Feature Request]"
labels: enhancement
assignees: ''
---
**Description**
A clear and concise description of what you want in this new feature.
**Additional context**
Add any other context or screenshots about the feature request here.

6
.gitignore vendored
View File

@@ -1,8 +1,8 @@
# Directories
.vscode/
node_modules/
.vscode/
build/
# Files
yarn.lock
yarn-error.log
package-lock.json
yarn.lock

View File

@@ -4,16 +4,23 @@
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/fba7ad7fc6e14fe0bc2a8d53dbf0bb41)](https://www.codacy.com/app/ohlookitsderpy/Mue?utm_source=github.com&utm_medium=referral&utm_content=ohlookitsderpy/Mue&utm_campaign=Badge_Grade)
[![Discord Badge](https://discordapp.com/api/guilds/336039472250748928/widget.png)](https://discord.gg/HJmmmTB)
<a href='https://ko-fi.com/ohlookitsderpy' target='_blank'><img height='36' src='assets/kofi.png' alt='Buy me a Coffee at ko-fi.com' /></a>
<a href='https://ko-fi.com/ohlookitsderpy' target='_blank'><img height='36' src='assets/kofi.png' alt='Buy me a coffee at ko-fi.com' /></a>
<a href='https://patreon.com/ohlookitsderpy' target='_blank'><img height='36' src='assets/patreon.png' alt='Become a patron on patreon.com' /></a>
Fast, open and free-to-use new tab page for most modern browsers
Fast, open and free-to-use new tab page for most modern browsers.
*This is the code for the extension. If you are looking for the website code, please go [here](https://github.com/TurboMarshmello/muetab.xyz).*
## Features
* Fast and free
* Supports multiple browsers
* Actively developed and opensource
* Multiple language support
* Automatically updating API (with no tracking!) with new photos, quotes and offline mode
* ~~Multiple language support~~
* ~~Settings feature - enable/disable features!~~
* Search bar, ~~update modal, copy button and more!~~
* Mue has been recently rewritten with React and is missing the features that are crossed out *
## Installation
### Chrome
@@ -21,47 +28,51 @@ Fast, open and free-to-use new tab page for most modern browsers
Link: [Chrome Web Store](https://chrome.google.com/webstore/detail/mue/bngmbednanpcfochchhgbkookpiaiaid)
Development: Read the [Development](#development) section
Development: Read the [Development](#development) section.
### Firefox
<a href='https://addons.mozilla.org/firefox/addon/mue'><img src='assets/firefox.png' target='_blank'></a>
Link: [Firefox Add-ons](https://addons.mozilla.org/firefox/addon/mue)
Development: Read the [Development](#development) section
Development: Read the [Development](#development) section.
### Opera/Other
Development: Read the [Development](#development) section
Link: [GitHub Releases](https://github.com/ohlookitsderpy/Mue/releases)
Development/Other: Read the [Development](#development) section.
### Development
<h5>Requirements</h5>
<ol>
<li>Git (optional)</li>
<li>Node.js</li>
<li><a href='https://git-scm.com'>Git</a> (optional)</li>
<li><a href='https://nodejs.org'>Node.js</a></li>
<li>A suitable browser</li>
</ol>
<h5>Starting</h5>
<ol>
<li> <code>git clone https://github.com/ohlookitsderpy/Mue</code> (If you don't have Git just go to <b>Clone or
download</b> and click <b>Download ZIP</b>)
<li>Open a terminal and run these commands: (in the Mue directory)
<li> <code>yarn</code> (or <code>npm install</code>)
<li> <code>yarn run sass-watch</code> (or <code>npm run sass-watch</code>)
<li>Open another terminal and run this command: (in the Mue directory)
<li> <code>yarn run js-watch</code> (or <code>npm run js-watch</code>)
<li>Start developing! (See the sections below for how to set it up with your browser)
<li> Open a terminal and run these commands: (in the Mue directory)
<li> <code>yarn</code> (or <code>npm i</code>)
<li> <code>yarn run all</code> (or <code>npm run all</code>)
<li> Start developing! (See the sections below for how to set up a developer copy of the extension.)
</ol>
<h2>Building</h5>
<i>This section is a work in progress, and doesn't include the manual edits you are required to do to get it working without errors.
Once I find a method to do it automatically, I will update this section accordingly.</li>
<details>
<summary><b>Chrome</b> (Click to expand)</summary>
<ol>
<li> Rename <code>manifest-chrome.json</code> to <code>manifest.json</code>
<li> <code>yarn run build</code> (or <code>npm run build</code>)
<li> Rename <code>manifest-chrome.json</code> in the "manfiest" folder to <code>manifest.json</code> in "build" (replace the one created by React)
<li> Visit <code>chrome://extensions</code> in Chrome
<li> Click <b>Load unpacked</b> (Make sure <b>Developer Mode</b> is on)
<li> Go to the directory containing Mue and click <b>ok</b>
<li> Go to the directory containing the built copy of Mue and click <b>ok</b>
<li> Enjoy your new tab!
</details>
<details>
<summary><b>Opera</b> (Click to expand)</summary>
<ol>
<li> Rename <code>manifest-opera.json</code> to <code>manifest.json</code>
<li> <code>yarn run build</code> (or <code>npm run build</code>)
<li> Rename <code>manifest-opera.json</code> in the "manfiest" folder to <code>manifest.json</code> in "build" (replace the one created by React)
<li> Visit <code>about://extensions</code> in Opera
<li> Click <b>Load unpacked extension...</b> (Make sure <b>Developer Mode</b> is on)
<li> Go to the directory containing Mue and click <b>ok</b>
@@ -71,7 +82,9 @@ Development: Read the [Development](#development) section
<summary><b>Firefox</b> (Click to expand)</summary>
<i>Note: I'm currently trying to find a better method to do this, but this works for now.</i>
<ol>
<li> Rename <code>manifest-firefox.json</code> to <code>manifest.json</code>
<li> <code>yarn run build</code> (or <code>npm run build</code>)
<li> Rename <code>manifest-firefox.json</code> in the "manfiest" folder to <code>manifest.json</code> in "build" (replace the one created by React)
<li> Move <code>manifest/background-opera.js</code> to <code>build/background-opera.js</code>
<li> Visit <code>about:debugging#addons</code> in Firefox
<li> Click <b>Load Temporary Add-on</b>
<li> Go to the directory containing Mue and click on the <b>manifest.json</b>
@@ -93,19 +106,22 @@ Development: Read the [Development](#development) section
<img src='assets/screenshot.jpg'>
## Credits
### Maintainers
[ohlookitsderpy](https://github.com/ohlookitsderpy)
[Turbomarshmello](https://github.com/TurboMarshmello) - Portions of original code, name idea
[TurboMarshmello](https://github.com/TurboMarshmello)
[Pexels](https://pexels.com) - Stock photos used
### Other
[TurboMarshmello](https://github.com/TurboMarshmello) - Portions of original code, name idea
[Pexels](https://pexels.com) - Stock photos used for offline mode
[Opera Forum](https://forums.opera.com/topic/25046/how-to-disable-completely-the-speed-dial/14) - Portions of code to add Opera support
[Animate.css](https://daneden.github.io/animate.css) - Portions of code used to add animations
### Translations
[ohlookitsderpy](https://github.com/ohlookitsderpy) - English (Quotes and Messages)
[Yanderella](https://github.com/Chivi19) - Italian (Quotes and Messages)
[Yanderella](https://github.com/tomiedev) - Italian (Quotes and Messages)
Pepehound - Spanish (Quotes and Messages)
@@ -113,13 +129,13 @@ Candystick - Portuguese (Some Quotes)
[PassTheWessel](https://github.com/PassTheWessel) - Dutch (Messages)
[Yanderella](https://github.com/Chivi19) and [ohlookitsderpy](https://github.com/ohlookitsderpy) - French (Messages)
[Yanderella](https://github.com/tomiedev) and [ohlookitsderpy](https://github.com/ohlookitsderpy) - French (Messages)
[untocodes](https://github.com/untocodes) - Finnish and German (Messages)
[dondish](https://github.com/dondish) - Hebrew and Russian (Messages)
[MrSheldon](https://github.com/MrSheldon) - Arabic and Swedish (Messages)
[Roee Lupo (MrSheldon)](https://github.com/MrSheldon) - Arabic and Swedish (Messages)
*Feel free to pull request with other translations!*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
assets/logo/logo_round.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 KiB

After

Width:  |  Height:  |  Size: 241 KiB

View File

@@ -6,4 +6,4 @@ chrome.tabs.onCreated.addListener((tab) => {
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') });
});
});

12
manifest/chrome.json Normal file
View File

@@ -0,0 +1,12 @@
{
"manifest_version": 2,
"offline_enabled": true,
"name": "Mue",
"version": "0.6",
"browser_action": {
"default_icon": "./android-chrome-512x512.png"
},
"chrome_url_overrides": {
"newtab": "index.html"
}
}

14
manifest/firefox.json Normal file
View File

@@ -0,0 +1,14 @@
{
"manifest_version": 2,
"name": "Mue",
"version": "0.6",
"browser_action": {
"default_icon": "./android-chrome-512x512.png"
},
"chrome_url_overrides": {
"newtab": "index.html"
},
"chrome_settings_overrides": {
"homepage": "index.html"
}
}

14
manifest/opera.json Normal file
View File

@@ -0,0 +1,14 @@
{
"manifest_version": 2,
"name": "Mue",
"version": "0.6",
"browser_action": {
"default_icon": "./android-chrome-512x512.png"
},
"background": {
"scripts": ["./background-opera.js"]
},
"permissions": [
"tabs"
]
}

View File

@@ -1,17 +1,43 @@
{
"name": "mue",
"description": "Fast, open and free-to-use new tab page for most modern browsers",
"author": "ohlookitsderpy",
"license": "MIT",
"repository": "https://github.com/ohlookitsderpy/Mue",
"scripts": {
"sass-watch": "sass --watch src/assets/scss:src/assets/css --style compressed",
"js-watch": "webpack --progress --watch"
},
"devDependencies": {
"eslint": "6.0.0",
"sass": "1.20.3",
"webpack": "4.32.2",
"webpack-cli": "3.3.4"
}
}
{
"name": "mue",
"author": "ohlookitsderpy",
"description": "Fast, open and free-to-use new tab page for most modern browsers.",
"license": "MIT",
"version": "2.0.1",
"dependencies": {
"@material-ui/core": "^4.5.1",
"@material-ui/icons": "^4.5.1",
"react": "^16.10.2",
"react-dom": "^16.10.2",
"react-scripts": "3.2.0",
"unfetch": "^4.1.0"
},
"devDependencies": {
"eslint": "^6.5.0",
"npm-run-all": "^4.1.5",
"sass": "^1.23.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"sass": "sass --watch src/scss:src/css --style compressed",
"start-all": "npm-run-all -p start sass"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

17
public/index.html Normal file
View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<link rel='icon' type='image/png' sizes='32x32' href='favicon-32x32.png'>
<link rel='icon' type='image/png' sizes='16x16' href='favicon-16x16.png'>
<title>New Tab</title>
</head>
<body>
<noscript>You need to enable JavaScript to use Mue.</noscript>
<div id='root'></div>
</body>
</html>

15
public/manifest.json Normal file
View File

@@ -0,0 +1,15 @@
{
"short_name": "Mue New Tab",
"name": "Fast, open and free-to-use new tab page for most modern browsers.",
"icons": [
{
"src": "favicon-32x32.png",
"sizes": "96x96 64x64 32x32 24x24 16x16",
"type": "image/x-icon"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

BIN
public/mstile-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 280 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View File

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 230 KiB

View File

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

View File

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 135 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

Before

Width:  |  Height:  |  Size: 401 KiB

After

Width:  |  Height:  |  Size: 401 KiB

View File

Before

Width:  |  Height:  |  Size: 737 KiB

After

Width:  |  Height:  |  Size: 737 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 390 KiB

After

Width:  |  Height:  |  Size: 390 KiB

View File

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 225 KiB

View File

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 251 KiB

View File

Before

Width:  |  Height:  |  Size: 300 KiB

After

Width:  |  Height:  |  Size: 300 KiB

View File

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 290 KiB

View File

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

View File

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

Before

Width:  |  Height:  |  Size: 495 KiB

After

Width:  |  Height:  |  Size: 495 KiB

View File

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 322 KiB

View File

Before

Width:  |  Height:  |  Size: 472 KiB

After

Width:  |  Height:  |  Size: 472 KiB

View File

@@ -1,5 +0,0 @@
{
"extends": [
"config:base"
]
}

28
src/App.jsx Normal file
View File

@@ -0,0 +1,28 @@
//* Imports
import React from 'react';
import Background from './components/Background';
import Clock from './components/Clock';
import Greeting from './components/Greeting';
import Quote from './components/Quote';
import Search from './components/Search';
import Credit from './components/Credit';
import './css/index.css';
//* App
export default class App extends React.Component {
// Render all the components
render() {
return (
<React.Fragment>
<Background/>
<Search/>
<div id='center'>
<Greeting/>
<Clock/>
<Quote/>
<Credit/>
</div>
</React.Fragment>
);
}
}

View File

@@ -1,9 +0,0 @@
/*!
* 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 animate{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 animate{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)}}.animate{-webkit-animation-name:amimated;animation-name:animate;-webkit-animation-duration:0.75s;animation-duration:0.75s;-webkit-animation-fill-mode:both;animation-fill-mode:both}

View File

@@ -1 +0,0 @@
.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")}.lake{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")}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}@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")}:root{--shadow-color: #111111CC}.greeting,time,.quote{filter:drop-shadow(var(--shadow-shift) var(--shadow-shift) 0 var(--shadow-color))}.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}/*# sourceMappingURL=base.css.map */

View File

@@ -1 +0,0 @@
{"version":3,"sourceRoot":"","sources":["../scss/modules/_bg.scss","../scss/modules/_misc.scss","../scss/modules/_quote.scss","../scss/modules/_time-greeting.scss"],"names":[],"mappings":"CAkBA,gDACA,+CACA,iDACA,8CACA,6CACA,2CACA,6CACA,2CACA,iDACA,6CACA,+CACA,+CACA,+CACA,6CACA,+CACA,+CACA,+CACA,+CACA,+CACA,gDACA,gDACA,8CACA,8CACA,kDACA,8CCzCA,sBACA,KAEC,aACA,sBACA,6BACA,mBAEA,SAEA,sBACA,wBACA,sBAEA,qBACA,WAEA,gBAEG,sBACH,iBAID,WACC,qBACA,kBACA,gBACA,0GAKD,MACC,0BAGD,sBAGC,kFCvBD,OACI,yBAEA,YACA,kBAEA,iBACA,kBAEA,kBACI,oBACA,kBAEA,2BACI,YACA,mBAGJ,0BACI,YACA,kBAIR,YACI,iBCvBR,UACC,uBACA,kBAKD,KACC,uBACA","file":"base.css"}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

View File

@@ -1,36 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
const func = require('./modules/func.js');
const init = () => {
// init() gets executed only when the page is fully loaded
func.setDaytimeMsg();
func.setRandBg();
func.setRandQuote();
func.setTime();
// set interval to update time every second
setInterval(func.setTime, 1000);
};
// initialize on page load through a listener
document.addEventListener('DOMContentLoaded', init);
// Disable right click
const rightClick = () => { return false; };
document.oncontextmenu=rightClick;

View File

@@ -1,45 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
module.exports = [
'mountain',
'sunrise',
'butterfly',
'leaves',
'river',
'sea',
'space',
'ice',
'waterfall',
'lake',
'sunset',
'desert',
'canyon',
'rose',
'forest',
'cherry',
'clouds',
'autumn',
'winter',
'flowers',
'sunrise',
'rocks',
'trees',
'mountains',
'beach'
];

View File

@@ -1,31 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
module.exports = {
itcodes: ['it', 'it-IT', 'it-CH'],
nlcodes: ['nl', 'nl-BE'],
frcodes: ['fr', 'fr-BE', 'fr-CA', 'fr-FR', 'fr-LU', 'fr-MC', 'fr-CH'],
ptcodes: ['pt', 'pt-BR'],
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'],
ficodes: ['fi'],
decodes: ['de', 'de-AT', 'de-DE', 'de-LI', 'de-LU', 'de-CH'],
hecodes: ['he'],
rucodes: ['ru', 'ru-MO'],
arcodes: ['ar', 'ar-DZ', 'ar-BH', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-QA', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-AE', 'ar-YE'],
svcodes: ['sv', 'sv-FI', 'sv-SV']
};

View File

@@ -1,67 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
const bg = require('./bg.js');
const msg = require('./msg.js');
const util = require('./util.js');
const codes = require('./code.js');
const quotes = require('./quote.js');
const nal = navigator.language;
module.exports = class Func {
static setDaytimeMsg() {
if (util.contains.call(codes.itcodes, nal)) msg.itMsgSet(); // Italian
if (util.contains.call(codes.nlcodes, nal)) msg.nlMsgSet(); // Dutch
if (util.contains.call(codes.frcodes, nal)) msg.frMsgSet(); // French
//else if (util.contains.call(codes.ptcodes, nal)) msg.ptMsgSet(); // Portuguese
if (util.contains.call(codes.spcodes, nal)) msg.spMsgSet(); // Spanish
if (util.contains.call(codes.ficodes, nal)) msg.fiMsgSet(); // Finnish
if (util.contains.call(codes.decodes, nal)) msg.spMsgSet(); // German
if (util.contains.call(codes.hecodes, nal)) msg.heMsgSet(); // Hebrew
if (util.contains.call(codes.rucodes, nal)) msg.ruMsgSet(); // Russian
if (util.contains.call(codes.arcodes, nal)) msg.arMsgSet(); // Arabic
if (util.contains.call(codes.svcodes, nal)) msg.svMsgSet(); // Swedish
else msg.engMsgSet(); // English
}
static setRandBg() {
document.body.classList.add(util.pickFromArray(bg));
}
static setRandQuote() {
const id = util.getRandIndex(quotes.authors);
if (util.contains.call(codes.itcodes, nal)) document.querySelector('blockquote').innerHTML = `"${quotes.it[id]}"`; // Italian
if (util.contains.call(codes.ptcodes, nal)) document.querySelector('blockquote').innerHTML = `"${quotes.pt[id]}"` || `"${quotes.eng[id]}"`; // Portuguese
if (util.contains.call(codes.spcodes, nal)) document.querySelector('blockquote').innerHTML = `"${quotes.sp[id]}"`; // Spanish
else document.querySelector('blockquote').innerHTML = `"${quotes.eng[id]}"`; // English
document.querySelector('cite').innerHTML = quotes.authors[id];
}
static setTime() {
const date = new Date(),
time = [
util.formatTimeUnit(date.getHours()),
util.formatTimeUnit(date.getMinutes()),
util.formatTimeUnit(date.getSeconds())
];
// Joins all of the array elements into a string using the ':' separator
// Example: [16, 32, 03] -> "16:32:03"
document.querySelector('time').innerHTML = time.join(':');
}
};

View File

@@ -1,107 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
const hour = new Date().getHours(); // Get the current hour
module.exports = class Msg {
// English
static engMsgSet() {
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 before 6pm, set the time string to "Good afternoon"
document.querySelector('.greeting').innerHTML = time; // Write the string contents to the HTML
}
// Italian
static itMsgSet() {
let time = 'Buongiorno'; // Set the default time string
if (hour > 18) time = 'Buonasera'; // In Italian there is just Buongiorno or Buonasera, if it's before 6pm then set the time string to Buonasera
document.querySelector('.greeting').innerHTML = time; // Write the string contents to the HTML
}
// Dutch
static nlMsgSet() { // Everything below is the same as English, check the comments there for information
let time = 'Goedemiddag';
if (hour < 12) time = 'Goedemorgen';
else if (hour > 18) time = 'Goedenavond';
document.querySelector('.greeting').innerHTML = time;
}
// French
static frMsgSet() {
let time = 'Bonsoir';
if (hour < 12) time = 'Bonjour';
else if (hour > 18) time = 'Bonne après-midi';
document.querySelector('.greeting').innerHTML = time;
}
// Spanish
static spMsgSet() {
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 > 18) time = 'Buenas Noches'; // If it's before 6pm, set the time string to "Good afternoon"
document.querySelector('.greeting').innerHTML = time; // Write the string contents to the HTML
}
// Finnish
static fiMsgSet() {
let time = 'Hyvää iltaa'; // Set the default time string to "Good evening"
if (hour < 12) time = 'Hyvää huomenta'; // If it's before 12am, set the time string to "Good morning"
else if (hour > 18) time = 'Hyvää iltapäivää'; // If it's before 6pm, set the time string to "Good afternoon"
document.querySelector('.greeting').innerHTML = time; // Write the string contents to the HTML
}
// German
static deMsgSet() {
let time = 'Guten Abend';
if (hour < 12) time = 'Guten Morgen';
else if (hour > 18) time = 'Guten Nachmittag';
document.querySelector('.greeting').innerHTML = time;
}
// Hebrew
static heMsgSet() {
let time = 'ערב טוב';
if (hour < 12) time = 'בוקר טוב';
else if (hour > 18) time = 'אחר הצהריים טובים';
document.querySelector('.greeting').innerHTML = time;
}
// Russian
static ruMsgSet() {
let time = 'Добрый Вечер';
if (hour < 12) time = 'добрый утро';
else if (hour > 18) time = 'добрый день';
document.querySelector('.greeting').innerHTML = time;
}
// Arabic
static arMsgSet() {
let time = 'مساء الخير';
if (hour < 12) time = 'صباح الخير';
else if (hour > 18) time = 'مساء الخير';
document.querySelector('.greeting').innerHTML = time;
}
// Swedish
static svMsgSet() {
let time = 'God kväll';
if (hour < 12) time = 'God morgon';
document.querySelector('.greeting').innerHTML = time;
}
};

View File

@@ -1,115 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
module.exports = {
eng: [
'Time goes on. So whatever youre going to do, do it. Do it now. Dont 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, youll see opportunities. If you believe it wont, you will see obstacles',
'Everything youve 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 dont 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.',
'Dont 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'
]
};

View File

@@ -1,55 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
module.exports = class Util {
// Format time
static formatTimeUnit(unit) {
return unit < 10 ? '0' + unit : unit;
}
// Get random item
static getRandIndex(array) {
return Math.floor(Math.random() * (array.length - 1));
}
// Pick random from array
static pickFromArray(array) {
return array[Math.floor(Math.random() * (array.length - 1))];
}
static contains(needle) {
const findNaN = needle !== needle;
let indexOf;
if (!findNaN && typeof Array.prototype.indexOf === 'function') indexOf = Array.prototype.indexOf;
else {
indexOf = (needle) => {
let i = -1,
index = -1;
for (i = 0; i < this.length; i++) {
const item = this[i];
if ((findNaN && item !== item) || item === needle) {
index = i;
break;
}
}
return index;
};
}
return indexOf.call(this, needle) > -1;
}
};

View File

@@ -1,22 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
@import 'modules/bg';
@import 'modules/misc';
@import 'modules/quote';
@import 'modules/time-greeting';

View File

@@ -1,43 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
.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'); }
.lake { 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'); }

View File

@@ -1,43 +0,0 @@
/* Body */
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 */
}
/* Font */
@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');
}
/* Shadow */
:root {
--shadow-color: #111111CC;
}
.greeting,
time,
.quote {
filter: drop-shadow(var(--shadow-shift) var(--shadow-shift) 0 var(--shadow-color));
}

View File

@@ -1,46 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
.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%;
}
}

View File

@@ -1,31 +0,0 @@
/*
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ Copyright 2018-2019 David Ralph (ohlookitsderpy) ██
██ Licensed under MIT ██
██ GitHub: https://github.com/ohlookitsderpy/Mue ██
██ ██
██ Special thanks to contributors! <3 ██
█████████████████████████████████████████████████████████████
*/
/* Greeting */
.greeting {
--shadow-shift: 0.2rem;
font-size: 3.25rem;
}
/* Time */
time {
--shadow-shift: 0.4rem;
font-size: 12rem;
}

View File

@@ -0,0 +1,46 @@
import React from 'react';
import Fetch from 'unfetch';
const getCookie = (cookiename) => {
const cookiestring = RegExp('' + cookiename + '[^;]+').exec(document.cookie);
return unescape(!!cookiestring ? cookiestring.toString().replace(/^[^=]+./,'') : '');
};
const randomInt = (min, max) => { return Math.floor(Math.random() * (max - min + 1)) + min; };
export default class Background extends React.Component {
// Set background: Attempt to get one from the API first, and if that fails then use the offline ones.
async getAndSetBackground() {
const root = document.getElementById('root');
try {
let data = await Fetch('https://api.muetab.xyz/getImage?category=Outdoors');
data = await data.json();
const checkRepeat = getCookie('backgroundimageurl');
document.getElementById('photographer').innerText = `Photo by ${data.photographer}`;
document.getElementById('location').innerText = `${data.location}`;
if (checkRepeat !== root.style.backgroundImage) root.style.backgroundImage = `url(${data.file})`;
else {
/*let data = await Fetch('https://api.muetab.xyz/getImage?category=Outdoors');
data = await data.json();*/
document.cookie = 'backgroundimageurl; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
root.style.backgroundImage = `url(${data.file})`;
document.cookie = `backgroundimageurl=${data.file}`;
}
} catch (e) {
document.getElementById('backgroundCredits').style.display = 'none';
document.getElementById('photographer').innerText = 'Photo from Pexels';
root.style.backgroundImage = `url(../offline-images/${randomInt(1, 25)}.jpeg)`;
}
}
componentDidMount() {
this.getAndSetBackground();
}
render() {
return null;
}
}

42
src/components/Clock.jsx Normal file
View File

@@ -0,0 +1,42 @@
import React from 'react';
export default class Clock extends React.Component {
constructor(...args) {
super(...args);
this.state = {
date: ``,
ampm: ``,
};
}
startTime() {
const today = new Date(); // Get the current date
let h = today.getHours(); // Get hours
const ampm = h >= 12 ? 'PM' : 'AM'; // Set AM/PM
const m = today.getMinutes(); // Get minutes
// const s = today.getSeconds();
if (h > 12) h = h - 12;
this.setState({ date: `${('0' + h).slice(-2)}:${('0' + m).slice(-2)}`, ampm: ampm });
this.timeout = setTimeout(() => this.startTime(), 500);
}
componentDidMount() {
this.startTime();
}
componentWillUnmount() {
clearTimeout(this.timeout);
}
render() {
return <h1 className='App-clock'>
{this.state.date}
<span className='App-ampm-specifier'>
{this.state.ampm}
</span>
</h1>;
}
}

17
src/components/Credit.jsx Normal file
View File

@@ -0,0 +1,17 @@
/* eslint-disable */
import RoomIcon from '@material-ui/icons/Room';
import React from 'react';
export default class Search extends React.Component {
render() {
return (
<div className='credits'>
{/* <h1 id='location'></h1> */}
<h1 id='photographer'></h1>
<div id='backgroundCredits' className='tooltip'><RoomIcon className='locationicon'/>
<span className='tooltiptext' id='location'></span>
</div>
</div>
);
}
}

View File

@@ -0,0 +1,26 @@
import React from 'react';
export default class Greeting extends React.Component {
constructor(...args) {
super(...args);
this.state = {
greeting: ``
};
}
getGreeting() {
const h = new Date().getHours();
let t = 'Good evening'; // Set the default time string to "Good evening"
if (h < 12) t = 'Good morning'; // If it's before 12am, set the time string to "Good morning"
else if (h < 18) t = 'Good afternoon'; // If it's before 6pm, set the time string to "Good afternoon"
this.setState({ greeting: t }); // Set the state to the time string
}
componentDidMount() {
this.getGreeting();
}
render() {
return <h1 className='App-greeting'>{this.state.greeting}</h1>;
}
}

37
src/components/Quote.jsx Normal file
View File

@@ -0,0 +1,37 @@
import React from 'react';
import Fetch from 'unfetch';
import quotes from '../quotes.json';
export default class Quote extends React.Component {
constructor(...args) {
super(...args);
this.state = {
quote: ``,
author: ``
};
}
async getQuote() {
try {
let data = await Fetch('https://api.muetab.xyz/getQuote');
data = await data.json();
this.setState({ quote: data.quote, author: data.author });
} catch (e) {
const randomInt = (min, max) => { return Math.floor(Math.random() * (max - min + 1)) + min; };
const num = randomInt(1, 20);
this.setState({ quote: quotes[num].quote, author: quotes[num].author });
}
}
componentDidMount() {
this.getQuote();
}
render() {
return [
<h1 className='App-quote'>{`"${this.state.quote}"`}</h1>,
// <i class="material-icons">perm_identity</i>,
<h1 className='App-quote-author'>{`${this.state.author}`}</h1>,
];
}
}

14
src/components/Search.jsx Normal file
View File

@@ -0,0 +1,14 @@
import React from 'react';
export default class Search extends React.Component {
render() {
return (
<div id='searchBar' className='search-bar'>
<form id='searchBar' className='searchbarform' action='https://duckduckgo.com/' onSubmit={('search();')}>
<input type='text' placeholder='Search' name='q' id='searchText' className='searchText' />
<div className='blursearcbBG' />
</form>
</div>
);
}
}

1
src/css/index.css Normal file
View File

@@ -0,0 +1 @@
.App-clock{font-size:4em;margin:0;text-shadow:0 0 25px rgba(0,0,0,.3)}.App-ampm-specifier{font-size:.5em}.App-greeting{margin:0;font-size:1.6em;text-shadow:0 0 25px rgba(0,0,0,.3)}.App-quote{font-size:.8em;text-shadow:0 0 25px rgba(0,0,0,.3)}@media screen and (min-width: 600px){.App-quote{margin-left:30%;margin-right:30%}}.App-quote-author{font-size:.9em;letter-spacing:.5px;margin:0;text-shadow:0 0 25px rgba(0,0,0,.3)}i.material-icons,h1.App-quote-author{display:inline}.search-bar{position:absolute;left:20px;top:20px;display:flex;flex-direction:row;display:block;color:#fff;font-family:"Lexend Deca"}.search-bar button{cursor:pointer;outline:none;display:inline}.search-bar button i.material-icons{text-shadow:0 0 25px rgba(0,0,0,.3)}.search-bar input[type=text]{font-size:calc(5px + 1.2vmin);background:none;border:2px solid #fff;padding:10px;color:#fff;position:absolute;box-shadow:0 0 25px rgba(0,0,0,.3);z-index:1}.input.searchText{border:none}.searchbarform{display:flex;flex-direction:row;box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}#location{margin-bottom:-10px}#location,#photographer{font-size:calc(10px + 1.2vmin);text-shadow:0 0 25px rgba(0,0,0,.3);text-overflow:ellipsis}#photographer{position:absolute;bottom:10px;left:50px;width:1000px}.tooltip{position:absolute;bottom:15px;left:10px}.personicon,.locationicon{font-size:calc(10px + 1.2vmin)}.MuiSvgIcon-root{position:absolute;bottom:2px;left:2px;width:100em;height:100em;font-size:2rem;text-shadow:0 2px 25px rgba(0,0,0,.3)}.credits{bottom:2px;left:0px;position:absolute;text-align:left;min-width:50px}.tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.tooltip .tooltiptext{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:20px;position:absolute;z-index:1;position:absolute;bottom:40px;left:60px;margin-left:-60px;opacity:0;transition:opacity 1s}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}#center{margin-left:2vw;margin-right:2vw;display:flex;flex-direction:column;justify-content:center;font-size:calc(10px + 2vmin);text-align:center}::placeholder{color:#fff;opacity:1}:-ms-input-placeholder{color:#fff}#root{background-size:cover;background-repeat:no-repeat;background-position:center center;background-attachment:fixed;min-height:100vh;display:grid;color:#fff}.App-link{color:#61dafb}body{background:#2f3640;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:"Lexend Deca";overflow:hidden}@font-face{font-family:"Lexend Deca";src:url("/./fonts/LexendDeca-Regular.woff2") format("woff2")}/*# sourceMappingURL=index.css.map */

1
src/css/index.css.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../scss/modules/_clock.scss","../scss/modules/_greeting.scss","../scss/modules/_quote.scss","../scss/modules/_search.scss","../scss/modules/_credit.scss","../scss/modules/_miscellaneous.scss","../scss/index.scss"],"names":[],"mappings":"AAAA,WACE,cACA,SACA,oCAGF,oBACE,eCPF,cACI,SACA,gBACA,oCCHJ,WACE,eACA,oCAGF,qCACE,WACE,gBACA,kBAIJ,kBACE,eACA,oBACA,SACA,oCAGF,qCAEE,eCrBF,YACI,kBACA,UACA,SACA,aACA,mBACA,cACA,WACA,0BAEA,mBACI,eACA,aAMA,eAJA,oCACI,oCAMR,6BACI,8BACA,gBACA,sBACA,aACA,WACA,kBACA,mCACA,UAIR,kBACI,YAGJ,eACI,aACA,mBACA,6CCxCJ,UACE,oBAGF,wBAEE,+BACA,oCACA,uBAGF,cACE,kBACA,YACA,UACA,aAGF,SACE,kBACA,YACA,UAGF,0BAEE,+BAGF,iBACE,kBACA,WACA,SACA,YACA,aACA,eACA,sCAGF,SACE,WACA,SACA,kBACA,gBACA,eAGF,SACE,kBACA,qBACA,8BAEA,sBACE,kBACA,sBACA,WACA,kBACA,kBACA,aACA,kBACA,UACA,kBACA,YACA,UACA,kBAEA,UACA,sBAIJ,4BACE,mBACA,UCzEF,QACE,gBACA,iBACA,aACA,sBACA,uBACA,6BACA,kBAGF,cACE,WACA,UAIF,uBAEE,WCXF,MACI,sBACA,4BACA,kCACA,4BACA,iBACA,aACA,WAGJ,UACI,cAGJ,KACI,mBACA,SACA,mCACA,kCACA,0BACA,gBAGJ,WACI,0BACA","file":"index.css"}

Binary file not shown.

Binary file not shown.

BIN
src/fonts/LexendDeca.ttf Normal file

Binary file not shown.

View File

@@ -1,52 +0,0 @@
<!--
█████████████████████████████████████████████████████████████
██ ██
██ ███ ███ ██ ██ ███████ ██
██ ████ ████ ██ ██ ██ ██
██ ██ ████ ██ ██ ██ █████ ██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ███████ ██
██ ██
██ ██
██ 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/base.css' rel='stylesheet'>
<link href='./assets/css/animate.css' rel='stylesheet'>
</head>
<body>
<div class='greeting animate'></div>
<time class='animate'></time>
<div class='quote animate'>
<blockquote></blockquote>
<cite></cite>
</div>
</body>
<script src='./assets/js/base.js'></script>
</html>

8
src/index.js Normal file
View File

@@ -0,0 +1,8 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(
<App/>,
document.getElementById('root')
);

View File

@@ -1,11 +0,0 @@
{
"manifest_version": 2,
"name": "Mue",
"version": "0.1",
"browser_action": {
"default_icon": "./assets/img/icon.png"
},
"chrome_url_overrides": {
"newtab": "index.html"
}
}

View File

@@ -1,14 +0,0 @@
{
"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"
}
}

View File

@@ -1,16 +0,0 @@
{
"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"
]
}

102
src/quotes.json Normal file
View File

@@ -0,0 +1,102 @@
{
"1": {
"author": "Robert De Niro",
"quote": "Time goes on. So whatever youre going to do, do it. Do it now. Dont wait."
},
"2": {
"author": "Walt Disney",
"quote": "All our dreams can come true, if we have the courage to pursue them."
},
"3": {
"author": "Confucius",
"quote": "It does not matter how slowly you go as long as you do not stop."
},
"4": {
"author": "Roy T. Bennett",
"quote": "Believe in yourself. You are braver than you think, more talented than you know, and capable of more than you imagine."
},
"5": {
"author": "Wayne Dyer",
"quote": "If you believe it will work out, youll see opportunities. If you believe it wont, you will see obstacles."
},
"6": {
"author": "George Addair",
"quote": "Everything youve ever wanted is on the other side of fear."
},
"7": {
"author": "Winston Churchill",
"quote": "Success is not final, failure is not fatal: it is the courage to continue that counts."
},
"8": {
"author": "Paulo Coelho",
"quote": "There is only one thing that makes a dream impossible to achieve: the fear of failure"
},
"9": {
"author": "Brian Tracy",
"quote": "Your true success in life begins only when you make the commitment to become excellent at what you do."
},
"10": {
"author": "Chantal Sutherland",
"quote": "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."
},
"11": {
"author": "Les Brown",
"quote": "Too many of us are not living our dreams because we are living our fears."
},
"12": {
"author": "Bob Riley",
"quote": "Hard times dont create heroes. It is during the hard times when the hero within us is revealed."
},
"13": {
"author": "Jack Canfield",
"quote": "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."
},
"14": {
"author": "Napolean Hill",
"quote": "Whatever the mind can conceive and believe, it can achieve."
},
"15": {
"author": "Jim Rohn",
"quote": "Dont wish it were easier. Wish you were better."
},
"16": {
"author": "Serena Williams",
"quote": "A champion is defined not by their wins but by how they can recover when they fall."
},
"17": {
"author": "Sheryl Sandberg",
"quote": "Motivation comes from working on things we care about."
},
"18": {
"author": "Reese Witherspoon",
"quote": "With the right kind of coaching and determination you can accomplish anything."
},
"19": {
"author": "Hazrat Inayat Khan",
"quote": "Some people look for a beautiful place. Others make a place beautiful."
},
"20": {
"author": "Albert Einstein",
"quote": "Life is like riding a bicycle. To keep your balance, you must keep moving."
},
"21": {
"author": "Walt Disney",
"quote": "The way to get started is to quit talking and begin doing."
},
"22": {
"author": "Winston Churchill",
"quote": "A pessimist sees the difficulty in every opportunity; an optimist sees the opportunity in every difficulty."
},
"23": {
"author": "Will Rogers",
"quote": "Don't let yesterday take up too much of today."
},
"24": {
"author": "Vince Lombardi",
"quote": "It's not whether you get knocked down, it's whether you get up."
},
"25": {
"author": "Steve Jobs",
"quote": "If you are working on something that you really care about, you dont have to be pushed. The vision pulls you."
}
}

34
src/scss/index.scss Normal file
View File

@@ -0,0 +1,34 @@
@import 'modules/clock';
@import 'modules/greeting';
@import 'modules/quote';
@import 'modules/search';
@import 'modules/credit';
@import 'modules/miscellaneous';
#root {
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
min-height: 100vh;
display: grid;
color: white;
}
.App-link {
color: #61dafb;
}
body {
background: #2f3640;
margin: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-family: 'Lexend Deca';
overflow: hidden;
}
@font-face {
font-family: 'Lexend Deca';
src: url('/./fonts/LexendDeca-Regular.woff2') format('woff2');
}

View File

@@ -0,0 +1,9 @@
.App-clock {
font-size: 4em;
margin: 0;
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
}
.App-ampm-specifier {
font-size: 0.5em;
}

View File

@@ -0,0 +1,75 @@
#location {
margin-bottom: -10px;
}
#location,
#photographer {
font-size: calc(10px + 1.2vmin);
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
text-overflow: ellipsis;
}
#photographer {
position: absolute;
bottom: 10px;
left: 50px;
width: 1000px;
}
.tooltip {
position: absolute;
bottom: 15px;
left: 10px;
}
.personicon,
.locationicon {
font-size: calc(10px + 1.2vmin);
}
.MuiSvgIcon-root {
position: absolute;
bottom: 2px;
left: 2px;
width: 100em;
height: 100em;
font-size: 2rem;
text-shadow: 0 2px 25px rgba(0, 0, 0, 0.3);
}
.credits {
bottom: 2px;
left: 0px;
position: absolute;
text-align: left;
min-width: 50px;
}
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
.tooltiptext {
visibility: hidden;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 20px;
position: absolute;
z-index: 1;
position: absolute;
bottom: 40px;
left: 60px;
margin-left: -60px;
/* Fade in tooltip - takes 1 second to go from 0% to 100% opac: */
opacity: 0;
transition: opacity 1s;
}
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}

View File

@@ -0,0 +1,5 @@
.App-greeting {
margin: 0;
font-size: 1.6em;
text-shadow: 0 0 25px rgba(0,0,0,0.3);
}

View File

@@ -0,0 +1,20 @@
#center {
margin-left: 2vw;
margin-right: 2vw;
display: flex;
flex-direction: column;
justify-content: center;
font-size: calc(10px + 2vmin);
text-align: center;
}
::placeholder {
color: #ffffff;
opacity: 1;
/* Firefox */
}
:-ms-input-placeholder {
/* Internet Explorer 10-11 */
color: #ffffff;
}

View File

@@ -0,0 +1,23 @@
.App-quote {
font-size: 0.8em;
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
}
@media screen and (min-width: 600px) {
.App-quote {
margin-left: 30%;
margin-right: 30%;
}
}
.App-quote-author {
font-size: 0.9em;
letter-spacing: 0.5px;
margin: 0;
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
}
i.material-icons,
h1.App-quote-author {
display: inline;
}

View File

@@ -0,0 +1,42 @@
.search-bar {
position: absolute;
left: 20px;
top: 20px;
display: flex;
flex-direction: row;
display: block;
color: #ffff;
font-family: 'Lexend Deca';
button {
cursor: pointer;
outline: none;
i.material-icons {
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
}
display: inline;
}
input[type=text] {
font-size: calc(5px + 1.2vmin);
background: none;
border: 2px solid #ffff;
padding: 10px;
color: #ffff;
position: absolute;
box-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
z-index: 1;
}
}
.input.searchText {
border: none;
}
.searchbarform {
display: flex;
flex-direction: row;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
}

View File

@@ -1,8 +0,0 @@
module.exports = {
mode: 'production',
entry: ['./src/assets/js/index.js'],
output: {
filename: 'base.js',
path: `${__dirname}/src/assets/js`
}
};