Merge pull request #1 from dominik-korsa/master

Completely change the website
This commit is contained in:
Mikołaj Pich 2019-03-17 22:35:33 +01:00 committed by GitHub
commit b3aeaedf02
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 15840 additions and 464 deletions

3
.browserslistrc Normal file
View file

@ -0,0 +1,3 @@
> 1%
last 2 versions
not ie <= 8

7
.editorconfig Normal file
View file

@ -0,0 +1,7 @@
[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 100

17
.eslintrc.js Normal file
View file

@ -0,0 +1,17 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: [
'plugin:vue/essential',
'@vue/airbnb',
],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
},
parserOptions: {
parser: 'babel-eslint',
},
};

22
.gitignore vendored
View file

@ -1 +1,21 @@
.idea/
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

20
.travis.yml Normal file
View file

@ -0,0 +1,20 @@
language: node_js
node_js:
- "node" # Latest stable
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
keep-history: true
local-dir: dist
on:
branch: master
branches:
only:
master
script:
- npm run lint
- npm run build

29
README.md Normal file
View file

@ -0,0 +1,29 @@
# wulkanowy-landing-page
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Run your tests
```
npm run test
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

206
app.css
View file

@ -1,206 +0,0 @@
html {
box-sizing: border-box;
height: 100%;
}
*, *:before, *:after {
box-sizing: inherit;
}
html, body, .wrapper {
margin: 0;
padding: 0;
width: 100%;
}
body {
color: #fff;
background: url(assets/wallpaper.jpg) no-repeat center / cover fixed rgb(32, 35, 36);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
height: 100%;
}
a {
color: #fff;
}
.wrapper {
align-items: center;
background: -moz-radial-gradient(center center, circle cover, transparent, #000);
background: -ms-radial-gradient(center center, circle cover, transparent, #000);
background: -webkit-radial-gradient(center center, circle cover, transparent, #000);
background: radial-gradient(center center, circle cover, transparent, #000);
display: flex;
flex-direction: column;
justify-content: center;
min-height: 100%;
padding: 30px 0;
}
.header__title {
font-size: calc(50px + 16 * (100vw - 320px) / (960 - 320));
font-weight: normal;
margin-bottom: 20px;
text-align: center;
text-shadow: #000 5px 5px 5px;
}
.header__link {
text-decoration: none;
}
.header__description {
text-shadow: #000 1px 1px 5px;
line-height: 1.7;
margin-bottom: 40px;
text-align: center;
}
.main {
width: 800px;
text-align: center;
}
@media (max-width: 800px) {
.main {
width: 100%;
}
}
.section {
margin-top: 40px;
}
.section__header {
text-shadow: #000 1px 1px 5px;
font-weight: normal;
}
.play-button {
display: inline-block;
}
.play-image {
max-width: 300px;
}
.button-container {
display: inline-block;
}
.button {
max-width: 100%;
width: 300px;
margin: 10px 0;
background: rgb(112, 50, 50);
border-radius: 3px;
color: #eee;
display: block;
font-size: 20px;
padding: 15px 25px;
text-align: left;
text-decoration: none;
transition: background 0.3s;
}
.button__info {
padding: 0;
margin: 5px 0 0;
display: flex;
justify-content: space-between;
}
.button:hover, .button:focus, .button:active {
background: rgb(90, 45, 45);
}
.button--dev {
background: #333;
}
.button--dev:hover,
.button--dev:focus,
.button--dev:active {
background: #222;
}
.icon {
transition: opacity 0.3s;
}
.icon:hover, .icon:focus, .icon:active {
opacity: 0.7;
}
.links {
font-size: 0;
padding: 0;
list-style: none;
}
.links__item {
display: inline-block;
}
.links__item + .links__item {
margin-left: 10px;
}
.links__item {
width: 45px;
height: 45px;
}
.links__item--discord img {
max-width: 38px;
}
.button span {
font-size: small;
display: flex;
justify-content: space-between;
}
.button span[class$="date"] {
color: transparent;
transition: 0.3s color;
}
.button:hover span[class$="date"] {
color: #fff;
}
.button-more__link {
text-decoration: none;
}
.button-more__link:hover,
.button-more__link:focus,
.button-more__link:active {
text-decoration: underline;
}
.footer {
margin-top: 30px;
text-align: center;
}
.footer__nav {
margin-top: 30px;
list-style: none;
padding: 0;
}
.footer__item {
margin-right: 10px;
}
.footer__link {
color: #eeeeee;
text-decoration: none;
}
.footer__link:hover {
text-decoration: underline;
}

90
app.js
View file

@ -1,90 +0,0 @@
var disableClick = function(e) {e.preventDefault()};
var addButtonInfo = function(url, prefix, cb) {
var buttonElement = document.querySelector("." + prefix + "-button");
if (null === buttonElement) {
return;
}
buttonElement.addEventListener("click", disableClick);
var versionElement = document.querySelector("." + prefix + "-version");
versionElement.innerHTML = "Ładowanie…";
var dateElement = document.querySelector("." + prefix + "-date");
var res = new XMLHttpRequest();
res.open("GET", url, true);
res.onloadend = function () {
if(res.status === 200) {
cb(res, buttonElement, versionElement, dateElement);
} else {
versionElement.innerHTML = "wersja nieznana";
}
buttonElement.removeEventListener("click", disableClick);
};
res.send(null);
};
if (null === document.querySelector(".button-container--list")) {
addButtonInfo("https://api.github.com/repos/wulkanowy/wulkanowy/releases/latest", "beta",
function(res, button, version, date) {
var json = JSON.parse(res.responseText);
button.href = json.assets[0].browser_download_url;
version.innerHTML = "v" + json.name;
date.innerHTML = new Date(json.published_at).toLocaleString("pl-PL");
}
);
addButtonInfo("https://bitrise-redirector.herokuapp.com/v0.1/apps/daeff1893f3c8128/builds/master/artifacts/0/info", "dev",
function(res, button, version, date) {
if (null !== document.querySelector(".button-container--list")) return;
var json = JSON.parse(res.responseText);
version.innerHTML = "Build " + json.build_number;
date.innerHTML = new Date(json.finished_at).toLocaleString("pl-PL");
}
);
}
(function (d) {
var list = d.querySelector(".button-container--list");
var base = d.querySelector(".button-container--list .button");
if (null === base) return;
var baseCopy = base.cloneNode(true);
base.style.display = "none";
var res = new XMLHttpRequest();
res.open("GET", "https://api.github.com/repos/wulkanowy/wulkanowy/pulls", true);
res.onloadend = function () {
if(res.status === 200) {
JSON.parse(res.responseText).forEach(function (item) {
var url = "https://bitrise-redirector.herokuapp.com/v0.1/apps/daeff1893f3c8128/builds/" + item.head.ref + "/artifacts/0";
var branch = baseCopy.cloneNode(true);
branch.href = url;
branch.innerText = item.head.ref;
var button_info = d.createElement("p");
button_info.setAttribute("class", "button__info");
var button_version = d.createElement("span");
button_version.setAttribute("class", "dev-version");
var button_date = d.createElement("span");
button_date.setAttribute("class", "dev-date");
button_info.appendChild(button_version);
button_info.appendChild(button_date);
addButtonInfo(url + "/info", "dev", function(res) {
var json = JSON.parse(res.responseText);
button_version.innerHTML = "Build " + json.build_number;
button_date.innerHTML = new Date(json.finished_at).toLocaleString("pl-PL");
});
branch.appendChild(button_info);
list.appendChild(branch);
})
}
};
res.send(null);
})(document);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

5
babel.config.js Normal file
View file

@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/app',
],
};

View file

@ -1,74 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" type="image/x-icon" href="favicon-dev.ico">
<title>Wersje DEV - Wulkanowy</title>
<link rel="stylesheet" href="app.css">
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-99646499-3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "UA-99646499-3");
</script>
</head>
<body>
<section class="wrapper">
<div class="container">
<header class="header">
<h1 class="header__title">
<a class="header__link" href="https://wulkanowy.github.io/">Wulkanowy</a>
</h1>
<p class="header__description">Nieoficjalna aplikacja mobilna <br>ucznia i rodzica <br>dla dziennika VULCAN UONET+</p>
</header>
<main class="main">
<section class="section">
<div class="button-container button-container--list">
<a class="button button--dev dev-button"
title="Pobierz wersję DEV"
href="https://bitrise-redirector.herokuapp.com/v0.1/apps/daeff1893f3c8128/builds/master/artifacts/0">
master
<p class="button__info">
<span class="dev-version">Build 0000</span>
<span class="dev-date"></span>
</p>
</a>
</div>
</section>
</main>
<footer id="footer" class="footer">
<ul class="footer__links links">
<li class="links__item">
<a title="Zobacz repozytorium na Githubie" href="https://github.com/wulkanowy/wulkanowy">
<img src="assets/github.svg" alt="Zobacz repozytorium na Githubie">
</a>
</li>
<li class="links__item links__item--discord">
<a title="Dołącz do naszego serwera Discord" href="https://discord.gg/vccAQBr">
<img src="assets/discord.svg" alt="Dołącz do naszego serwera Discord">
</a>
</li>
<li class="links__item links__item--trello">
<a title="Zobacz nasze plany na tablicy Trello" href="https://trello.com/b/A97NUM1s/wulkanowy">
<img src="assets/trello.svg" alt="Zobacz nasze plany na tablicy Trello">
</a>
</li>
</ul>
<ul class="footer__nav">
<li class="footer__item">
<a class="footer__link" href="https://github.com/wulkanowy">Wszystkie projekty</a>
</li>
</ul>
</footer>
</div>
</section>
<script src="app.js"></script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -1,93 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico?v=3">
<title>Nieoficjalna aplikacja mobilna dla dziennika VULCAN UONET+ - Wulkanowy</title>
<link rel="stylesheet" href="app.css">
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-99646499-3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "UA-99646499-3");
</script>
</head>
<body>
<section class="wrapper">
<div class="container">
<header class="header">
<h1 class="header__title">
<a class="header__link" href="https://wulkanowy.github.io/">Wulkanowy</a>
</h1>
<p class="header__description">Nieoficjalna aplikacja mobilna <br>ucznia i rodzica <br>dla dziennika VULCAN UONET+</p>
</header>
<main class="main">
<a class="play-button" href="https://play.google.com/store/apps/details?id=io.github.wulkanowy&amp;utm_source=homepage">
<img class="play-image" alt="pobierz z Google Play" src="assets/google-play-badge.png">
</a>
<section class="section">
<h3 class="section__header">Więcej opcji</h3>
<div class="button-container">
<a class="button button--beta beta-button" title="Pobierz wersję beta" href="https://github.com/wulkanowy/wulkanowy/releases">
Pobierz wersję beta
<p class="button__info">
<span class="beta-version">v0.0.0</span>
<span class="beta-date"></span>
</p>
</a>
<p class="button-more">
<a class="button-more__link" href="https://github.com/wulkanowy/wulkanowy/releases">Więcej wersji</a>
</p>
</div>
<div class="button-container">
<a class="button button--dev dev-button"
title="Pobierz wersję DEV"
href="https://bitrise-redirector.herokuapp.com/v0.1/apps/daeff1893f3c8128/builds/master/artifacts/0">
Pobierz wersję DEV
<p class="button__info">
<span class="dev-version">Build 0000</span>
<span class="dev-date"></span>
</p>
</a>
<p class="button-more">
<a href="dev.html" class="button-more__link">Więcej wersji</a>
</p>
</div>
</section>
</main>
<footer id="footer" class="footer">
<ul class="footer__links links">
<li class="links__item">
<a title="Zobacz repozytorium na Githubie" href="https://github.com/wulkanowy/wulkanowy">
<img src="assets/github.svg" alt="Zobacz repozytorium na Githubie">
</a>
</li>
<li class="links__item links__item--discord">
<a title="Dołącz do naszego serwera Discord" href="https://discord.gg/vccAQBr">
<img src="assets/discord.svg" alt="Dołącz do naszego serwera Discord">
</a>
</li>
<li class="links__item links__item--trello">
<a title="Zobacz nasze plany na tablicy Trello" href="https://trello.com/b/A97NUM1s/wulkanowy">
<img src="assets/trello.svg" alt="Zobacz nasze plany na tablicy Trello">
</a>
</li>
</ul>
<ul class="footer__nav">
<li class="footer__item">
<a class="footer__link" href="https://github.com/wulkanowy">Wszystkie projekty</a>
</li>
</ul>
</footer>
</div>
</section>
<script src="app.js"></script>
</body>
</html>

13801
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

46
package.json Normal file
View file

@ -0,0 +1,46 @@
{
"name": "wulkanowy-landing-page",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"@mdi/font": "^3.4.93",
"moment": "^2.24.0",
"vue": "^2.6.6",
"vue-analytics": "^5.16.2",
"vue-async-computed": "^3.6.1",
"vue-material-design-icons": "^3.0.0",
"vue-mq": "^1.0.1",
"vue-resource": "^1.5.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.1.1",
"@vue/cli-plugin-eslint": "^3.1.1",
"@vue/cli-service": "^3.1.1",
"@vue/eslint-config-airbnb": "^4.0.0",
"babel-eslint": "^10.0.1",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
"lint-staged": "^8.1.0",
"node-sass": "^4.9.0",
"sass-loader": "^7.1.0",
"vue-template-compiler": "^2.5.21"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.js": [
"vue-cli-service lint",
"git add"
],
"*.vue": [
"vue-cli-service lint",
"git add"
]
}
}

5
postcss.config.js Normal file
View file

@ -0,0 +1,5 @@
module.exports = {
plugins: {
autoprefixer: {},
},
};

64
public/404.html Normal file
View file

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="./favicon.ico">
<title>Przekierowywanie | Wulkanowy</title>
<style>
body {
margin: 0;
background-color: #d32f2f;
}
#container {
display: flex;
width: 100vw;
height: 100vh;
flex-direction: column;
align-items: center;
justify-content: center;
}
#text {
font-family: sans-serif;
font-size: 32px;
font-weight: 100;
color: #fff;
}
#link {
font-family: sans-serif;
font-size: 20px;
font-weight: 200;
color: #000;
background-color: #fff;
text-decoration: none;
display: block;
padding: 8px 12px;
margin-top: 20px;
transition: opacity 300ms;
border-radius: 4px;
box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
</style>
</head>
<body>
<div id="container">
<div id="text">Przekierowywanie</div>
<a href="./" id="link">Kliknij tutaj jeśli nic się nie dzieje</a>
</div>
</body>
<script>
document.getElementById('link').style.opacity = 0;
setTimeout(() => {
window.location = './';
}, 1000);
setTimeout(() => {
document.getElementById('link').style.opacity = 1;
}, 2000);
</script>
</html>

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

17
public/index.html Normal file
View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>Wulkanowy | Aplikacja ucznia i rodzica</title>
</head>
<body>
<noscript>
<strong>Przepraszamy, ale strona Wulkanowy wymaga dostępu do JavaScryptu. Prosimy o włączenie go aby kontynuować.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

19
src/App.vue Normal file
View file

@ -0,0 +1,19 @@
<template>
<div id="app">
<home-view />
</div>
</template>
<script>
import HomeView from './components/HomeView.vue';
export default {
name: 'app',
components: {
HomeView,
},
};
</script>
<style lang="scss">
</style>

View file

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,325 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 135 40"
version="1.1"
id="svg68"
sodipodi:docname="google-play-badge.svg"
width="135"
height="40"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
<metadata
id="metadata72">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>pl_get</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview70"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="3.9225806"
inkscape:cx="95.539208"
inkscape:cy="25.273807"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg68" />
<defs
id="defs40">
<linearGradient
id="a"
x1="31.799999"
y1="183.28999"
x2="15.02"
y2="166.50999"
gradientTransform="matrix(1,0,0,-1,0,202)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#00a0ff"
id="stop2" />
<stop
offset=".01"
stop-color="#00a1ff"
id="stop4" />
<stop
offset=".26"
stop-color="#00beff"
id="stop6" />
<stop
offset=".51"
stop-color="#00d2ff"
id="stop8" />
<stop
offset=".76"
stop-color="#00dfff"
id="stop10" />
<stop
offset="1"
stop-color="#00e3ff"
id="stop12" />
</linearGradient>
<linearGradient
id="b"
x1="43.830002"
y1="172"
x2="19.639999"
y2="172"
gradientTransform="matrix(1,0,0,-1,0,202)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ffe000"
id="stop15" />
<stop
offset=".41"
stop-color="#ffbd00"
id="stop17" />
<stop
offset=".78"
stop-color="orange"
id="stop19" />
<stop
offset="1"
stop-color="#ff9c00"
id="stop21" />
</linearGradient>
<linearGradient
id="c"
x1="34.830002"
y1="169.7"
x2="12.07"
y2="146.95"
gradientTransform="matrix(1,0,0,-1,0,202)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ff3a44"
id="stop24" />
<stop
offset="1"
stop-color="#c31162"
id="stop26" />
</linearGradient>
<linearGradient
id="d"
x1="17.299999"
y1="191.82001"
x2="27.459999"
y2="181.66"
gradientTransform="matrix(1,0,0,-1,0,202)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#32a071"
id="stop29" />
<stop
offset=".07"
stop-color="#2da771"
id="stop31" />
<stop
offset=".48"
stop-color="#15cf74"
id="stop33" />
<stop
offset=".8"
stop-color="#06e775"
id="stop35" />
<stop
offset="1"
stop-color="#00f076"
id="stop37" />
</linearGradient>
<linearGradient
id="d-5"
x1="17.299999"
y1="191.82001"
x2="27.459999"
y2="181.66"
gradientTransform="matrix(1,0,0,-1,-9.9999964,192)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#32a071"
id="stop29-1" />
<stop
offset=".07"
stop-color="#2da771"
id="stop31-5" />
<stop
offset=".48"
stop-color="#15cf74"
id="stop33-6" />
<stop
offset=".8"
stop-color="#06e775"
id="stop35-7" />
<stop
offset="1"
stop-color="#00f076"
id="stop37-7" />
</linearGradient>
<linearGradient
id="c-4"
x1="34.830002"
y1="169.7"
x2="12.07"
y2="146.95"
gradientTransform="matrix(1,0,0,-1,-9.9999964,192)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ff3a44"
id="stop24-8" />
<stop
offset="1"
stop-color="#c31162"
id="stop26-1" />
</linearGradient>
<linearGradient
id="b-7"
x1="43.830002"
y1="172"
x2="19.639999"
y2="172"
gradientTransform="matrix(1,0,0,-1,-9.9999964,192)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ffe000"
id="stop15-6" />
<stop
offset=".41"
stop-color="#ffbd00"
id="stop17-0" />
<stop
offset=".78"
stop-color="orange"
id="stop19-0" />
<stop
offset="1"
stop-color="#ff9c00"
id="stop21-6" />
</linearGradient>
<linearGradient
id="a-4"
x1="31.799999"
y1="183.28999"
x2="15.02"
y2="166.50999"
gradientTransform="matrix(1,0,0,-1,-9.9999964,192)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#00a0ff"
id="stop2-8" />
<stop
offset=".01"
stop-color="#00a1ff"
id="stop4-7" />
<stop
offset=".26"
stop-color="#00beff"
id="stop6-4" />
<stop
offset=".51"
stop-color="#00d2ff"
id="stop8-5" />
<stop
offset=".76"
stop-color="#00dfff"
id="stop10-4" />
<stop
offset="1"
stop-color="#00e3ff"
id="stop12-2" />
</linearGradient>
</defs>
<title
id="title42">pl_get</title>
<rect
x="0"
y="0"
width="135"
height="40"
rx="5"
ry="5"
id="rect46" />
<path
d="M 130,0.8 A 4.2,4.2 0 0 1 134.2,5 V 35 A 4.2,4.2 0 0 1 130,39.2 H 5.0000039 A 4.2,4.2 0 0 1 0.80000391,35 V 5 A 4.2,4.2 0 0 1 5.0000039,0.8 H 130 M 130,0 H 5.0000039 A 5,5 0 0 0 3.9073486e-6,5 V 35 A 5,5 0 0 0 5.0000039,40 H 130 a 5,5 0 0 0 5,-5 V 5 a 5,5 0 0 0 -5,-5 z"
id="path48"
inkscape:connector-curvature="0"
style="fill:#a6a6a6" />
<path
d="m 68.140004,21.75 a 4.25,4.25 0 1 0 4.27,4.25 4.19,4.19 0 0 0 -4.27,-4.25 z m 0,6.83 a 2.58,2.58 0 1 1 2.4,-2.58 2.46,2.46 0 0 1 -2.4,2.58 z m -9.31,-6.83 a 4.25,4.25 0 1 0 4.26,4.25 4.19,4.19 0 0 0 -4.27,-4.25 z m 0,6.83 a 2.58,2.58 0 1 1 2.39,-2.58 2.46,2.46 0 0 1 -2.4,2.58 z m -11.09,-5.52 v 1.8 h 4.32 a 3.77,3.77 0 0 1 -1,2.27 4.42,4.42 0 0 1 -3.33,1.32 4.8,4.8 0 0 1 0,-9.6 4.6,4.6 0 0 1 3.27,1.29 l 1.27,-1.27 a 6.29,6.29 0 0 0 -4.53,-1.87 6.61,6.61 0 1 0 0,13.21 6,6 0 0 0 4.61,-1.85 6,6 0 0 0 1.56,-4.22 5.87,5.87 0 0 0 -0.1,-1.13 z m 45.309998,1.4 a 4,4 0 0 0 -3.639998,-2.71 4,4 0 0 0 -4,4.25 4.16,4.16 0 0 0 4.22,4.25 4.23,4.23 0 0 0 3.539998,-1.88 l -1.45,-1 a 2.43,2.43 0 0 1 -2.089998,1.18 2.16,2.16 0 0 1 -2.06,-1.29 l 5.689998,-2.35 z m -5.799998,1.42 a 2.33,2.33 0 0 1 2.22,-2.48 1.65,1.65 0 0 1 1.579998,0.9 z m -4.62,4.12 h 1.87 V 17.5 h -1.87 z m -3.06,-7.3 h -0.07 a 3,3 0 0 0 -2.24,-1 4.26,4.26 0 0 0 0,8.51 2.9,2.9 0 0 0 2.24,-1 h 0.06 v 0.61 c 0,1.63 -0.87,2.5 -2.27,2.5 a 2.35,2.35 0 0 1 -2.14,-1.51 l -1.63,0.68 a 4.05,4.05 0 0 0 3.77,2.51 c 2.19,0 4,-1.29 4,-4.43 V 22 h -1.72 z m -2.14,5.88 a 2.59,2.59 0 0 1 0,-5.16 2.4,2.4 0 0 1 2.27,2.58 2.38,2.38 0 0 1 -2.28,2.58 z M 101.81,17.5 H 97.340002 V 30 h 1.87 V 25.26 H 101.82 a 3.89,3.89 0 1 0 0,-7.76 z m 0,6 H 99.200002 V 19.24 H 101.85 a 2.145,2.145 0 1 1 0,4.29 z m 11.53,-1.8 a 3.5,3.5 0 0 0 -3.33,1.91 l 1.66,0.69 a 1.77,1.77 0 0 1 1.7,-0.92 1.8,1.8 0 0 1 2,1.61 v 0.13 a 4.13,4.13 0 0 0 -1.95,-0.48 c -1.79,0 -3.6,1 -3.6,2.81 a 2.89,2.89 0 0 0 3.1,2.75 2.63,2.63 0 0 0 2.4,-1.2 h 0.06 v 1 h 1.8 v -4.81 c 0,-2.19 -1.66,-3.46 -3.79,-3.46 z m -0.23,6.85 c -0.61,0 -1.46,-0.31 -1.46,-1.06 0,-1 1.06,-1.33 2,-1.33 a 3.32,3.32 0 0 1 1.7,0.42 2.26,2.26 0 0 1 -2.19,2 z M 123.74,22 121.6,27.42 h -0.06 L 119.32,22 h -2 l 3.33,7.58 -1.9,4.21 h 1.95 L 125.82,22 Z m -16.81,8 h 1.87 V 17.5 h -1.87 z"
id="path50"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
d="m 10.440004,7.54 a 2,2 0 0 0 -0.4600001,1.4 v 22.12 a 2,2 0 0 0 0.4600001,1.4 l 0.07,0.07 12.39,-12.38 v -0.29 l -12.39,-12.39 z"
id="path52"
inkscape:connector-curvature="0"
style="fill:url(#a-4)" />
<path
d="m 27.000004,24.28 -4.1,-4.13 v -0.29 l 4.1,-4.14 0.09,0.05 4.91,2.79 c 1.4,0.79 1.4,2.09 0,2.89 l -4.89,2.78 z"
id="path54"
inkscape:connector-curvature="0"
style="fill:url(#b-7)" />
<path
d="m 27.120004,24.22 -4.22,-4.22 -12.46,12.46 a 1.63,1.63 0 0 0 2.08,0.06 l 14.61,-8.3"
id="path56"
inkscape:connector-curvature="0"
style="fill:url(#c-4)" />
<path
d="m 27.120004,15.78 -14.61,-8.3 a 1.63,1.63 0 0 0 -2.08,0.06 l 12.47,12.46 z"
id="path58"
inkscape:connector-curvature="0"
style="fill:url(#d-5)" />
<path
d="m 27.000004,24.13 -14.49,8.25 a 1.67,1.67 0 0 1 -2,0 l -0.07,0.07 0.07,0.07 a 1.66,1.66 0 0 0 2,0 l 14.61,-8.3 z"
style="opacity:0.2;isolation:isolate"
id="path60"
inkscape:connector-curvature="0" />
<path
d="m 10.440004,32.32 a 2,2 0 0 1 -0.4600001,-1.4 v 0.15 a 2,2 0 0 0 0.4600001,1.4 l 0.07,-0.07 z m 21.56,-11.02 -5,2.83 0.09,0.09 4.91,-2.78 a 1.75,1.75 0 0 0 1,-1.44 1.86,1.86 0 0 1 -1,1.3 z"
style="opacity:0.12000002;isolation:isolate"
id="path62"
inkscape:connector-curvature="0" />
<path
d="m 12.510004,7.62 19.49,11.08 a 1.86,1.86 0 0 1 1,1.3 1.75,1.75 0 0 0 -1,-1.44 l -19.49,-11.08 c -1.4,-0.79 -2.5400001,-0.13 -2.5400001,1.47 V 9.1 c 0.03,-1.61 1.1500001,-2.27 2.5400001,-1.48 z"
style="opacity:0.25;isolation:isolate;fill:#ffffff"
id="path64"
inkscape:connector-curvature="0" />
<path
d="m 42.170004,13 h -0.77 V 7 h 2 a 1.9,1.9 0 0 1 1.32,0.51 1.74,1.74 0 0 1 0,2.56 1.89,1.89 0 0 1 -1.32,0.51 h -1.23 z m 0,-3.17 h 1.29 a 1,1 0 0 0 0.78,-0.33 1,1 0 0 0 0,-1.44 1,1 0 0 0 -0.78,-0.33 h -1.29 z m 9.03,2.39 a 3.12,3.12 0 0 1 -4.4,0 3.24,3.24 0 0 1 0,-4.45 3.1,3.1 0 0 1 4.4,0 3.23,3.23 0 0 1 0,4.45 z m -3.83,-0.5 a 2.31,2.31 0 0 0 3.26,0 2.56,2.56 0 0 0 0,-3.44 2.31,2.31 0 0 0 -3.26,0 2.56,2.56 0 0 0 0,3.44 z m 5.8,1.28 V 7 h 2.17 a 1.76,1.76 0 0 1 1.22,0.46 1.51,1.51 0 0 1 0.52,1.17 1.31,1.31 0 0 1 -0.22,0.75 1.39,1.39 0 0 1 -0.59,0.49 1.52,1.52 0 0 1 0.73,0.52 1.36,1.36 0 0 1 0.29,0.86 1.57,1.57 0 0 1 -0.54,1.22 1.85,1.85 0 0 1 -1.28,0.49 z m 0.77,-3.43 h 1.4 a 0.9,0.9 0 0 0 0.7,-0.29 0.89,0.89 0 0 0 -0.04,-1.28 0.86,0.86 0 0 0 -0.67,-0.29 h -1.39 z m 0,2.69 h 1.55 a 0.92,0.92 0 0 0 0.72,-0.31 1,1 0 0 0 0.28,-0.68 1,1 0 0 0 -1,-1 h -1.55 z m 4.37,0.74 V 7 h 0.77 v 6 z m 5.69,-5.26 h -2.77 v 1.9 h 2.46 v 0.72 h -2.46 v 1.9 h 2.77 V 13 h -3.5 V 7 h 3.5 z m 1.17,5.26 V 7 h 2 a 1.9,1.9 0 0 1 1.32,0.51 1.73,1.73 0 0 1 0.15,2.39 1.78,1.78 0 0 1 -1,0.61 l 1.68,2.49 h -0.91 l -1.62,-2.43 h -0.86 V 13 Z m 0.77,-3.15 h 1.24 a 1.13,1.13 0 0 0 0.79,-0.3 1,1 0 0 0 0.33,-0.76 1.06,1.06 0 0 0 -0.29,-0.72 1,1 0 0 0 -0.78,-0.33 h -1.29 z m 3.91,3.15 v -0.8 l 3.15,-4.46 h -3 V 7 h 4 v 0.8 l -3.19,4.46 h 3.19 V 13 Z m 6.9,0 v -0.8 l 3.19,-4.46 h -3.06 V 7 h 4 v 0.8 l -3.19,4.46 h 3.23 V 13 Z"
stroke-miterlimit="10"
id="path66"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:#ffffff;stroke-width:0.2;stroke-miterlimit:10" />
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

23
src/assets/paypal.svg Normal file
View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xml:space="preserve"
viewBox="0 0 128 128"
version="1.1"
id="Social_Icons"
enable-background="new 0 0 128 128"><metadata
id="metadata12"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs10" /><g
style="fill:#ffffff;stroke:#ff0000"
id="_x33__stroke"><g
style="fill:none;stroke:#ff0000"
id="PayPal_1_"><path
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd;stroke:none"
id="PayPal"
d="M 114.136,37.621 C 108.386,64.141 90.057,78.176 60.97,78.176 H 50.422 L 42.556,128 h 17.108 c 2.472,0 4.572,-1.784 4.959,-4.204 l 0.202,-1.056 3.935,-24.728 0.254,-1.364 c 0.383,-2.42 2.488,-4.204 4.955,-4.204 h 3.125 c 20.212,0 36.042,-8.148 40.667,-31.708 1.855,-9.455 0.963,-17.383 -3.625,-23.115 z M 102.431,9.652 C 96.456,2.896 85.658,0 71.84,0 H 31.746 C 28.92,0 26.516,2.04 26.073,4.804 L 9.376,109.85 c -0.331,2.072 1.286,3.948 3.403,3.948 h 24.753 l 6.217,-39.119 -0.194,1.224 c 0.444,-2.764 2.83,-4.804 5.653,-4.804 H 60.97 c 23.111,0 41.203,-9.312 46.489,-36.247 0.157,-0.8 0.411,-2.332 0.411,-2.332 1.5,-9.968 -0.012,-16.732 -5.439,-22.868 z" /></g></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 203 KiB

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="1024"
width="3584"
xml:space="preserve"
viewBox="0 0 3584 1024"
y="0px"
x="0px"
id="Layer_1"
version="1.1"
sodipodi:docname="wulkanowy-full-flat.svg"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview25"
showgrid="false"
inkscape:zoom="0.33928571"
inkscape:cx="1860.4549"
inkscape:cy="586.56969"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="text8460" /><metadata
id="metadata15"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs13" /><style
id="style2"
type="text/css">
.st0{fill:#D32F2F;}
.st1{fill:#AD2A2A;}
.st2{fill:#FFFFFF;}
</style><g
style="display:none"
id="layer4"><rect
style="display:inline;fill:#d32f2f;stroke-width:1.02195609"
height="1024"
width="3584"
class="st0"
y="0"
x="0"
id="XMLID_57_" /></g><g
style="display:none"
id="layer3"><path
id="path18992"
d="M 3046.8164,390.66602 3134.3164,542 v 91.33398 L 3524.9824,1024 H 3584 V 732.18359 L 3242.4824,390.66602 h -23.666 l -53.0352,94.63086 -94.6308,-94.63086 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18990"
d="m 2746.9824,390.66602 62,242.66796 L 3199.6484,1024 H 3584 V 940.68359 L 3033.9824,390.66602 h -21 l -21.9043,90.92773 -90.9277,-90.92773 h -18.5 l -25.4043,88.26367 -88.2637,-88.26367 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18988"
d="m 2620.8164,387.33398 c -18.6667,0 -35.1667,4.60982 -49.5,13.83204 -14.3333,9.11111 -25.4451,22.22287 -33.334,39.33398 -7.7778,17 -11.666,36.5549 -11.666,58.66602 v 25 c 0,34.44444 8.7216,61.83463 26.166,82.16796 L 2970.1484,1024 h 323.168 l -623.166,-623.16602 c -14.2222,-9 -30.6673,-13.5 -49.334,-13.5 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18984"
d="M 2293.4824,390.66602 V 633.33398 L 2684.1484,1024 h 423.336 l -633.334,-633.33398 h -20.334 v 139.66601 l -139.666,-139.66601 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18978"
d="M 1864.8164,390.66602 V 633.33398 L 2255.4824,1024 h 413.334 l -633.334,-633.33398 h -25.832 l -60.584,63.75 -63.75,-63.75 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18976"
d="M 1684.8164,390.66602 V 633.33398 L 2075.4824,1024 h 263.334 l -633.334,-633.33398 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path19059"
d="m 1133.6504,390.66602 62,242.66796 L 1586.3164,1024 h 467.668 l -633.334,-633.33398 h -21 l -21.9043,90.92773 -90.9277,-90.92773 h -18.5 l -25.4043,88.26367 -88.2637,-88.26367 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18966"
d="m 1456.4824,390.66602 v 167.16796 c 0.5556,24.66667 8.5007,44 23.834,58 L 1888.4824,1024 h 372.168 l -633.334,-633.33398 h -20.666 V 520.5 l -129.834,-129.83398 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="path18982"
d="M 2146.3164,390.66602 2054.4824,633.33398 2445.1484,1024 h 354.002 l -633.334,-633.33398 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ad2a2a;fill-opacity:1;stroke:none" /><path
id="XMLID_64_"
d="M 637.15234,214.95703 487.75,364.35742 466.01562,386.0918 c 0.31273,0.31271 0.54872,0.54666 0.70508,0.85937 0.0782,0.23454 0.23432,0.54671 0.3125,0.78125 0.31272,0.54726 0.47071,1.17339 0.47071,1.79883 0.0782,0.54726 -0.0799,1.01725 -0.31446,1.48633 -0.23454,0.54725 -0.70285,1.40597 -1.09375,1.79687 l 150.8086,149.71485 -23.68946,23.6875 -12.74414,-12.74219 -13.44726,-13.44727 -78.80469,-78.80664 -11.17969,-11.17968 -7.5039,-7.50391 -35.41602,-35.17969 -3.08984,-0.98047 -4.33594,4.26367 v 0.46876 c 0,7.34888 0.38998,15.00865 -1.48633,22.20117 -0.85998,3.28355 -2.34444,6.25595 -4.14258,8.91406 -0.15636,0.15636 -0.23627,0.23426 -0.31445,0.39062 -1.87631,2.57993 -4.06471,4.84619 -6.48828,6.95704 -5.3944,4.53442 -11.25752,8.67896 -17.27734,12.50976 -0.15637,0.0782 -0.23427,0.1562 -0.39063,0.23438 -2.11085,1.40723 -4.3012,2.7354 -6.49023,4.06445 -8.91248,5.39439 -18.37192,10.08772 -28.37891,13.13672 -1.25087,0.31272 -2.42317,-0.001 -3.36133,-0.70508 l -6.01953,5.94141 c 1.25087,0.62543 2.03136,1.87776 1.875,3.51953 -10e-6,0.15636 -0.0762,0.23231 -0.0762,0.38867 0,0.0782 -0.0781,0.23628 -0.0781,0.31445 -1.32905,4.45624 -2.34505,8.98897 -3.2832,13.60156 -0.15636,0.70363 -0.23622,1.33154 -0.39258,2.03516 -0.85997,4.37806 -1.64209,8.83288 -2.3457,13.21094 0.23453,5.3944 0.39263,11.0234 0.31445,16.65234 v 0.39258 c -0.0782,7.66161 -0.78373,15.32114 -2.8164,22.51367 -2.26721,8.28704 -6.64376,15.63728 -10.55274,23.22071 -0.0782,0.15636 -0.15815,0.23426 -0.23633,0.39062 -1.25088,2.42357 -2.49924,4.92399 -3.59375,7.50391 -4.84714,11.33605 -7.42749,23.92328 -10.55468,35.88476 -0.23454,0.70362 -0.39046,1.48578 -0.625,2.26758 0,0.15636 -0.0801,0.23427 -0.0801,0.39063 -2.97082,11.10151 -6.09819,22.28173 -10.94532,32.75781 -1.40724,2.97082 -2.81531,5.86322 -4.3789,8.75586 -0.15636,0.23454 -0.23231,0.46858 -0.38867,0.70312 -0.62544,1.09451 -1.25152,2.26871 -1.87696,3.44141 -0.0782,0.15636 -0.15619,0.23426 -0.23437,0.39062 -3.51809,6.25438 -7.27098,12.43118 -10.78906,18.68555 -5.0035,8.8343 -8.99075,18.13635 -13.83789,27.04883 -0.0782,0.15636 -0.1562,0.23426 -0.23438,0.39062 -0.70362,1.32905 -1.48579,2.65728 -2.26758,3.98633 -5.0035,8.20887 -10.63256,16.0279 -16.57422,23.61133 -0.15635,0.15636 -0.23426,0.3124 -0.39062,0.46875 -0.7818,1.01634 -1.48578,1.95443 -2.26758,2.89258 -3.90898,4.92532 -7.97378,9.85009 -11.96094,14.77539 -0.0782,0.15637 -0.23432,0.23622 -0.3125,0.39258 -8.75612,10.71061 -17.35628,21.49761 -24.54883,33.30273 0,0.70362 -0.15602,1.33159 -0.46874,1.95703 -1.25087,2.42357 -2.65734,4.68971 -3.90821,7.11328 -0.0782,0.15636 0.62511,1.24989 0.46875,1.40625 L 429.86133,1024 H 1463.0215 L 661.85547,222.92969 c -0.93816,2.11087 -5.23681,1.40935 -7.34766,-0.23242 -1.71995,-1.32906 -3.12603,-3.05147 -4.45508,-4.84961 -0.62544,-0.31271 -1.25168,-0.62288 -1.64257,-0.85743 -2.89265,-1.40723 -6.09933,-1.48632 -9.30469,-1.48632 -0.7818,-0.0782 -1.40588,-0.23416 -1.95313,-0.54688 z m -206.12304,191.41992 0.11914,-0.11523 -0.23438,0.0781 z"
style="display:inline;fill:#ad2a2a;stroke-width:0.78179646" /></g><g
style="display:inline"
id="layer2"><path
style="fill:#ffffff;stroke-width:0.78179646"
d="m 385.17894,776.98989 c 0.62544,2.03267 0.31272,4.2217 -0.7818,6.01983 l -15.08867,24.47023 c -1.48541,2.42357 -4.2217,3.98716 -7.19253,3.98716 H 220.92351 c -6.56709,0 -10.55425,-6.8798 -7.03616,-12.03966 l 90.92292,-133.92173 c 0.54726,-0.78179 0.85997,-1.64177 1.09451,-2.50174 l 41.66975,-177.93687 c 0.46908,-2.11085 1.87631,-3.90898 3.90898,-5.00349 l 56.4457,-30.95914 c 2.03267,-1.09452 3.43991,-2.89265 3.90899,-5.08168 l 7.58342,-33.06999 c 1.56359,-6.8798 11.41423,-8.36522 15.32321,-2.34538 l 2.73629,4.37806 c 1.17269,1.87631 1.48541,4.2217 0.70362,6.33255 l -51.44221,148.69767 c -0.3909,1.1727 -0.54726,2.42357 -0.31272,3.67445 l 12.82146,71.14347 c 0.23454,1.40723 0.0782,2.89265 -0.54725,4.2217 l -30.56824,68.64172 c -0.70362,1.64178 -0.85998,3.43991 -0.31272,5.08168 z m 417.94836,34.47722 h -97.25548 c -2.81446,0 -5.39439,-1.40723 -6.95798,-3.59626 l -65.43636,-92.01744 c -0.3909,-0.62543 -0.7818,-1.25087 -1.01634,-1.95449 L 600.01659,619.1452 c -0.62544,-1.87631 -2.11085,-3.51809 -3.98716,-4.45624 L 516.59891,574.5828 c -2.18903,-1.09451 -3.75262,-3.12718 -4.2217,-5.39439 l -11.72694,-58.16566 c -0.15636,-0.93815 -0.54726,-1.87631 -1.1727,-2.73628 L 472.5056,468.64939 c -1.48542,-2.18903 -1.71995,-4.84714 -0.62544,-7.19253 l 16.41772,-35.10266 c 1.25088,-2.6581 3.98717,-4.45624 7.11435,-4.6126 l 30.49006,-1.79813 c 1.79813,-0.0782 3.43991,-0.70361 4.76896,-1.79813 l 22.43756,-17.43406 c 4.2217,-3.28354 10.63243,-1.87631 12.89964,2.73629 l 77.31966,157.29744 c 0.31272,0.70361 0.54726,1.40723 0.70362,2.11085 l 9.53792,63.24733 c 0.23453,1.48541 0.85997,2.81446 1.87631,3.90898 l 154.01389,168.5553 c 4.53442,5.0035 0.70362,12.89964 -6.33255,12.89964 z M 424.97238,319.32628 c 0,-17.90314 11.33604,-33.30453 27.59741,-40.49706 -1.1727,-1.95449 -1.87631,-4.06534 -1.87631,-6.33255 0,-8.67794 10.00699,-15.71411 22.2812,-15.71411 0.31271,0 0.54725,0 0.85997,0 5.08168,-8.4434 14.77595,-14.15051 25.87746,-14.15051 0.7818,0 1.5636,0 2.34539,0.0782 1.01634,0.0782 2.03267,-0.3909 2.57993,-1.1727 8.20886,-12.50874 29.00465,-21.42122 53.31851,-21.42122 8.99066,0 17.51224,1.25088 25.09567,3.36173 1.79813,-2.97083 5.78529,-5.0035 10.39789,-5.0035 5.23804,0 9.69428,2.65811 11.02333,6.33255 6.41073,-7.42707 17.2777,-12.2742 29.63008,-12.2742 19.70127,0 35.64992,12.43056 35.64992,27.75377 0,1.87631 -0.23454,3.67444 -0.70362,5.47257 -0.31271,1.25088 0.3909,2.50175 1.71996,2.97083 12.58692,4.6126 21.1085,13.36872 21.1085,23.37571 0,11.41423 -11.02333,21.18669 -26.58108,25.01749 -1.25087,0.31272 -2.03267,1.40723 -2.03267,2.57993 0,0.0782 0,0.15635 0,0.23453 0,8.8343 -8.75612,16.10501 -20.01399,16.88681 0.0782,0.3909 0.0782,0.78179 0.0782,1.25087 0,16.96498 -32.28819,30.64642 -72.08163,30.64642 -8.59976,0 -16.80862,-0.62544 -24.39204,-1.79813 0,0.15636 0,0.23454 0,0.3909 0,7.03616 -9.06884,12.74328 -20.17035,12.74328 -0.62544,0 -1.1727,0 -1.71995,-0.0782 0.78179,1.71995 1.17269,3.51808 1.17269,5.39439 0,10.94515 -13.8378,19.77945 -30.95914,19.77945 -1.87631,0 -3.67444,-0.0782 -5.47257,-0.31272 -1.40724,-0.15635 -2.73629,0.70362 -3.04901,2.03268 -1.48541,5.47257 -6.25437,9.45973 -11.96148,9.45973 -6.87981,0 -12.35239,-5.86347 -12.35239,-13.056 0,-3.36172 1.1727,-6.41073 3.12719,-8.67794 0.70362,-0.78179 0.93816,-1.87631 0.46908,-2.81447 -1.09452,-2.03267 -1.5636,-4.14352 -1.5636,-6.41073 v 0 c 0,-1.25087 -1.01633,-2.26721 -2.2672,-2.57992 -21.18669,-4.69078 -37.13533,-22.35938 -37.13533,-43.46788 z m 179.50045,424.6718 c 0.31272,0.93816 0.3909,1.87632 0.3909,2.89265 l -4.53442,57.30568 c -0.31272,4.06534 -3.90898,7.2707 -8.28704,7.2707 H 445.68998 c -3.12718,0 -6.01983,-1.79813 -7.42707,-4.37806 l -24.1575,-44.87511 c -0.15636,-0.23454 -0.23454,-0.46908 -0.31272,-0.70362 l -22.75028,-55.11664 c -0.85997,-1.95449 -0.70361,-4.2217 0.23454,-6.09802 l 37.76077,-73.87976 c 0.93815,-1.79813 1.09451,-3.90898 0.3909,-5.78529 l -18.4504,-51.12948 c -0.62544,-1.79814 -0.54726,-3.83081 0.23454,-5.55076 l 30.80278,-65.59272 c 3.12718,-6.56709 13.36872,-6.01983 15.55775,0.85998 l 9.61609,29.86462 29.31737,78.49236 c 0.78179,2.18903 2.6581,3.90898 5.00349,4.69078 l 62.54372,21.34304 c 2.42357,0.85998 4.29988,2.65811 5.08167,4.92532 z"
id="XMLID_42_" /><g
id="text4752"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
aria-label="WULKANOWY" /></g><g
style="display:inline"
id="layer1"><g
aria-label="WULKANOWY"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:'Roboto Light';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="text8460"><path
d="m 1198.9832,567.83331 7.5,37.66667 9.1666,-36 52.6667,-178.83334 h 18.5 l 52,178.83334 9,36.33333 8,-38 43.8333,-177.16667 h 21 l -62.1666,242.66667 h -19.6667 l -55,-189.83334 -6.1667,-24 -6,24 -56.3333,189.83334 h -19.6667 l -62,-242.66667 h 21 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4764" /><path
d="m 1627.3165,390.66664 v 165.66667 q -0.1667,24.5 -10.8333,42.66667 -10.6667,18.16667 -30.1667,28 -19.3333,9.66667 -44.5,9.66667 -38.3333,0 -61.5,-20.83334 -23,-21 -23.8333,-58 V 390.66664 h 20.3333 v 164.16667 q 0,30.66667 17.5,47.66667 17.5,16.83333 47.5,16.83333 30,0 47.3333,-17 17.5,-17 17.5,-47.33333 V 390.66664 Z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4766" /><path
d="m 1705.4832,615.99998 h 119.8333 v 17.33333 h -140.5 V 390.66664 h 20.6667 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4768" /><path
d="m 1919.4832,512.83331 -34.1667,33.66667 v 86.83333 h -20.5 V 390.66664 h 20.5 v 130.83334 l 124.3333,-130.83334 h 25.8334 l -101.6667,108 109.5,134.66667 h -25 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4770" /><path
d="m 2211.1498,565.33331 h -110.1666 l -25,68 h -21.5 l 91.8333,-242.66667 h 19.5 l 91.8333,242.66667 h -21.3333 z m -103.8333,-17.5 h 97.3333 l -48.6666,-132.16667 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4772" /><path
d="m 2474.1499,633.33331 h -20.5 l -139.5,-207.66667 v 207.66667 h -20.6667 V 390.66664 h 20.6667 l 139.6666,207.83334 V 390.66664 h 20.3334 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4774" /><path
d="m 2715.4832,525.16664 q 0,33.5 -11.6667,58.83334 -11.5,25.33333 -33,39 -21.5,13.66667 -49.6667,13.66667 -42.5,0 -68.6666,-30.33334 -26.1667,-30.5 -26.1667,-82.16667 v -25 q 0,-33.16667 11.6667,-58.66667 11.8333,-25.66666 33.3333,-39.33333 21.5,-13.83333 49.5,-13.83333 28,0 49.3333,13.5 21.5,13.5 33.1667,38.16666 11.6667,24.66667 12.1667,57.16667 z m -20.5,-26.33333 q 0,-43.83334 -19.8334,-68.66667 -19.8333,-24.83333 -54.3333,-24.83333 -33.8333,0 -54,25 -20,24.83333 -20,69.5 v 25.33333 q 0,43.16667 20,68.50001 20,25.16666 54.3333,25.16666 34.8334,0 54.3334,-24.83333 19.5,-25 19.5,-69.5 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4776" /><path
d="m 2812.3165,567.83331 7.5,37.66667 9.1667,-36 52.6667,-178.83334 h 18.5 l 52,178.83334 9,36.33333 8,-38 43.8333,-177.16667 h 21 l -62.1667,242.66667 h -19.6666 l -55,-189.83334 -6.1667,-24 -6,24 -56.3333,189.83334 h -19.6667 l -62,-242.66667 h 21 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4778" /><path
d="m 3144.6499,522.99998 74.1666,-132.33334 h 23.6667 l -87.6667,151.33334 v 91.33333 h -20.5 v -91.33333 l -87.5,-151.33334 h 24.3334 z"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:341.33334351px;font-family:Roboto;-inkscape-font-specification:'Roboto Light';fill:#ffffff"
id="path4780" /></g></g></svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,66 @@
<template>
<div class="download-beta">
<home-download-beta-item
v-for="version in versions"
:key="version.id"
:code="version.code"
:released="version.released"
:github="version.github"
:download="version.download" />
<spinner class="loading" v-if="versions === null" />
</div>
</template>
<script>
import HomeDownloadBetaItem from './HomeDownloadBetaItem.vue';
import Spinner from './Spinner.vue';
export default {
name: 'home-download-beta',
components: {
HomeDownloadBetaItem,
Spinner,
},
asyncComputed: {
async versions() {
const response = await this.$http.get('https://api.github.com/repos/wulkanowy/wulkanowy/releases');
return response.body.map(release => ({
code: release.tag_name,
released: release.published_at,
github: release.html_url,
download: release.assets[0].browser_download_url,
id: release.id,
}));
},
},
};
</script>
<style lang="scss" scoped>
.download-beta {
overflow: auto;
padding-left: 8px;
padding-right: 8px;
&::-webkit-scrollbar-track {
border-radius: 4px;
background-color: transparent;
}
&::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: #aaa;
}
}
.loading {
margin-top: 16px;
margin-left: auto;
margin-right: auto;
}
</style>

View file

@ -0,0 +1,161 @@
<template>
<div class="download-beta-item">
<a :href="github" @click="codeClick" class="code">{{ code }}</a>
<a
class="released"
:title="releasedString"
:href="`https://github.com/wulkanowy/wulkanowy/tree/${code}`"
@click="releasedClick">
{{ releasedRelativeString }}
</a>
<div class="buttons">
<a
class="github-button"
:href="github"
title="GitHub"
@click="githubClick">
<span class="mdi mdi-github-circle"></span>
</a>
<a
class="download-button"
:href="download"
title="Download"
@click="downloadClick">
<span class="mdi mdi-download"></span>
</a>
</div>
</div>
</template>
<script>
import moment from 'moment';
moment.locale('pl');
export default {
name: 'home-download-beta-item',
props: {
code: {
type: String,
},
released: {
type: String,
},
github: {
type: String,
},
download: {
type: String,
},
},
methods: {
codeClick() {
this.$ga.event({
eventCategory: 'beta-item',
eventAction: 'code-click',
eventLabel: this.code,
});
},
releasedClick() {
this.$ga.event({
eventCategory: 'beta-item',
eventAction: 'released-click',
eventLabel: this.code,
});
},
githubClick() {
this.$ga.event({
eventCategory: 'beta-item',
eventAction: 'github-click',
eventLabel: this.code,
});
},
downloadClick() {
this.$ga.event({
eventCategory: 'beta-item',
eventAction: 'download-click',
eventLabel: this.code,
});
},
},
computed: {
releasedString() {
return moment(this.released).format('dddd, D MMM YYYY HH:mm:ss');
},
releasedRelativeString() {
const string = moment(this.released).fromNow();
return string.charAt(0).toUpperCase() + string.slice(1);
},
},
};
</script>
<style lang="scss" scoped>
.download-beta-item {
height: 56px;
padding: 8px;
padding-left: 8px;
display: grid;
grid-template-rows: 1fr auto auto 1fr;
grid-template-columns: 1fr auto;
background-color: #fff;
border-radius: 4px;
box-shadow:
0px 3px 1px -2px rgba(0, 0, 0, 0.2),
0px 2px 2px 0px rgba(0, 0, 0, 0.14),
0px 1px 5px 0px rgba(0, 0, 0, 0.12);
&:not(:first-child) {
margin-top: 16px;
}
&:last-child {
margin-bottom: 8px;
}
}
.code {
grid-column: 1;
grid-row: 2;
font-family: 'Roboto', sans-serif;
font-size: 24px;
margin-bottom: 2px;
color: #D32F2F;
text-decoration: none;
justify-self: start;
&:hover {
text-decoration: underline;
}
}
.released {
grid-column: 1;
grid-row: 3;
color: #0009;
font-family: 'Roboto', sans-serif;
font-size: 14px;
text-decoration: none;
justify-self: start;
&:hover {
text-decoration: underline;
}
}
.buttons {
display: flex;
flex-direction: row;
grid-column: 2;
grid-row: 1/5;
.github-button, .download-button {
font-size: 32px;
color: #000;
padding: 4px;
margin: 4px 4px;
display: block;
align-self: center;
}
}
</style>

View file

@ -0,0 +1,107 @@
<template>
<div class="download-dev">
<home-download-dev-master
v-if="master"
:released="master.released"
:download="master.download"
:url="master.url"
:build="master.build"
:commit-url="master.commitUrl" />
<home-download-dev-item
v-for="version in versions"
:key="version.id"
:title="version.title"
:number="version.number"
:released="version.released"
:github="version.github"
:download="version.download"
:url="version.url"
:avatar="version.avatar"
:user="version.user"
:build="version.build"
:commit="version.commit" />
<spinner class="loading" v-if="versions === null || master === null" />
</div>
</template>
<script>
import moment from 'moment';
import HomeDownloadDevItem from './HomeDownloadDevItem.vue';
import HomeDownloadDevMaster from './HomeDownloadDevMaster.vue';
import Spinner from './Spinner.vue';
export default {
name: 'home-download-dev',
components: {
HomeDownloadDevItem,
HomeDownloadDevMaster,
Spinner,
},
asyncComputed: {
async master() {
const redirectorUrl = 'https://bitrise-redirector.herokuapp.com/v0.1/apps/f841f20d8f8b1dc8/builds/master/artifacts/0/info';
const build = await this.$http.get(redirectorUrl);
return {
released: build.body.finished_at,
download: build.body.public_install_page_url,
build: build.body.build_number,
url: build.body.build_url,
commitUrl: build.body.commit_view_url,
};
},
async versions() {
const response = await this.$http.get('https://api.github.com/repos/wulkanowy/wulkanowy/pulls?state=open');
return (await Promise.all(response.body.map(async (release) => {
const redirectorUrl = `https://bitrise-redirector.herokuapp.com/v0.1/apps/f841f20d8f8b1dc8/builds/${release.head.ref}/artifacts/0/info`;
const build = await this.$http.get(redirectorUrl);
return {
title: release.title,
number: release.number,
released: build.body.finished_at,
github: release.html_url,
download: build.body.public_install_page_url,
url: build.body.build_url,
build: build.body.build_number,
avatar: release.user.avatar_url,
user: release.user.login,
commit: release.head.sha,
id: release.id,
};
}))).sort((a, b) => {
if (moment(a.released).isBefore(b.released)) return 1;
if (moment(a.released).isAfter(b.released)) return -1;
return 0;
});
},
},
};
</script>
<style lang="scss" scoped>
.download-dev {
overflow: auto;
padding-left: 8px;
padding-right: 8px;
&::-webkit-scrollbar-track {
border-radius: 4px;
background-color: transparent;
}
&::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: #aaa;
}
}
.loading {
margin-top: 16px;
margin-left: auto;
margin-right: auto;
}
</style>

View file

@ -0,0 +1,236 @@
<template>
<div class="download-dev-item">
<a class="header" :href="github" @click="titleClick">
<span class="title">{{ title }}</span>
<span class="number"> #{{ number }}</span>
</a>
<div class="subheader">
<a class="build-number" :href="url" @click="buildNumberClick">{{ build }}</a>
<a
class="released"
:title="releasedString"
:href="`https://github.com/wulkanowy/wulkanowy/pull/${number}/commits/${commit}`"
@click="releasedClick">
{{ releasedRelativeString }}
</a>
<img class="avatar" :src="avatar" />
<span class="user">{{ user }}</span>
</div>
<div class="buttons">
<a
class="github-button"
:href="github"
title="GitHub"
@click="githubClick">
<span class="mdi mdi-github-circle"></span>
</a>
<a
class="download-button"
:href="download"
title="Download"
@click="downloadClick">
<span class="mdi mdi-download"></span>
</a>
</div>
</div>
</template>
<script>
import moment from 'moment';
moment.locale('pl');
export default {
name: 'home-download-dev-item',
props: {
title: {
type: String,
},
released: {
type: String,
},
number: {
type: Number,
},
build: {
type: Number,
},
github: {
type: String,
},
download: {
type: String,
},
url: {
type: String,
},
avatar: {
type: String,
},
user: {
type: String,
},
commit: {
type: String,
},
},
methods: {
titleClick() {
this.$ga.event({
eventCategory: 'dev-item',
eventAction: 'title-click',
eventLabel: this.number,
});
},
buildNumberClick() {
this.$ga.event({
eventCategory: 'dev-item',
eventAction: 'build-number-click',
eventLabel: this.number,
});
},
releasedClick() {
this.$ga.event({
eventCategory: 'dev-item',
eventAction: 'released-click',
eventLabel: this.number,
});
},
githubClick() {
this.$ga.event({
eventCategory: 'dev-item',
eventAction: 'github-click',
eventLabel: this.number,
});
},
downloadClick() {
this.$ga.event({
eventCategory: 'dev-item',
eventAction: 'download-click',
eventLabel: this.number,
});
},
},
computed: {
releasedString() {
return moment(this.released).format('dddd, D MMM YYYY HH:mm:ss');
},
releasedRelativeString() {
const string = moment(this.released).fromNow();
return string.charAt(0).toUpperCase() + string.slice(1);
},
},
};
</script>
<style lang="scss" scoped>
.download-dev-item {
min-height: 56px;
padding: 8px;
padding-left: 16px;
display: grid;
grid-template-rows: 1fr auto auto 1fr;
grid-template-columns: 1fr auto;
background-color: #fff;
border-radius: 4px;
box-shadow:
0px 3px 1px -2px rgba(0, 0, 0, 0.2),
0px 2px 2px 0px rgba(0, 0, 0, 0.14),
0px 1px 5px 0px rgba(0, 0, 0, 0.12);
margin-top: 16px;
&:last-child {
margin-bottom: 8px;
}
}
.header {
grid-column: 1;
grid-row: 2;
font-family: 'Roboto', sans-serif;
font-size: 20px;
margin-bottom: 8px;
line-height: 24px;
text-decoration: none;
justify-self: start;
&:hover .title, &:hover .number {
text-decoration: underline;
}
@media screen and (max-width: 450px) {
font-size: 18px;
}
.title {
color: #D32F2F;
}
.number {
color: #0009;
font-weight: 300;
}
}
.subheader {
grid-column: 1;
grid-row: 3;
font-family: 'Roboto', sans-serif;
font-size: 14px;
line-height: 16px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
.build-number {
color: #0009;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.released {
margin-left: 4px;
color: #0006;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.avatar {
width: 16px;
height: 16px;
margin-left: 8px;
border-radius: 2px;
box-shadow:
0px 3px 1px -2px rgba(0, 0, 0, 0.2),
0px 2px 2px 0px rgba(0, 0, 0, 0.14),
0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.user {
color: #0009;
margin-left: 4px;
}
}
.buttons {
display: flex;
flex-direction: row;
grid-column: 2;
grid-row: 1/5;
.github-button, .download-button {
font-size: 32px;
color: #000;
padding: 4px;
margin: 4px 4px;
display: block;
align-self: center;
}
}
</style>

View file

@ -0,0 +1,161 @@
<template>
<div class="download-dev-master">
<div class="title">Najnowsza stabilna wersja DEV</div>
<div class="subheader">
<a class="build-number" :href="url" @click="buildNumberClick">{{ build }}</a>
<a
class="released"
:title="releasedString"
:href="commitUrl"
@click="releasedClick">
{{ releasedRelativeString }}
</a>
</div>
<div class="buttons">
<a
class="download-button"
:href="download"
title="Download"
@click="downloadClick">
<span class="mdi mdi-download"></span>
</a>
</div>
</div>
</template>
<script>
import moment from 'moment';
moment.locale('pl');
export default {
name: 'home-download-dev-master',
props: {
released: {
type: String,
},
build: {
type: Number,
},
download: {
type: String,
},
commitUrl: {
type: String,
},
url: {
type: String,
},
},
methods: {
buildNumberClick() {
this.$ga.event({
eventCategory: 'dev-master-item',
eventAction: 'build-number-click',
});
},
releasedClick() {
this.$ga.event({
eventCategory: 'dev-master-item',
eventAction: 'released-click',
});
},
downloadClick() {
this.$ga.event({
eventCategory: 'dev-master-item',
eventAction: 'download-click',
});
},
},
computed: {
releasedString() {
return moment(this.released).format('dddd, D MMM YYYY HH:mm:ss');
},
releasedRelativeString() {
const string = moment(this.released).fromNow();
return string.charAt(0).toUpperCase() + string.slice(1);
},
},
};
</script>
<style lang="scss" scoped>
.download-dev-master {
min-height: 56px;
padding: 8px;
padding-left: 16px;
display: grid;
grid-template-rows: 1fr auto auto 1fr;
grid-template-columns: 1fr auto;
background-color: #fff;
border-radius: 4px;
box-shadow:
0px 3px 1px -2px rgba(0, 0, 0, 0.2),
0px 2px 2px 0px rgba(0, 0, 0, 0.14),
0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.title {
grid-column: 1;
grid-row: 2;
color: #D32F2F;
font-family: 'Roboto', sans-serif;
font-size: 20px;
margin-bottom: 8px;
line-height: 24px;
@media screen and (max-width: 450px) {
font-size: 18px;
}
.number {
color: #0009;
font-weight: 300;
}
}
.subheader {
grid-column: 1;
grid-row: 3;
font-family: 'Roboto', sans-serif;
font-size: 14px;
line-height: 16px;
display: flex;
flex-direction: row;
.build-number {
color: #0009;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.released {
margin-left: 4px;
color: #0006;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.buttons {
display: flex;
flex-direction: row;
grid-column: 2;
grid-row: 1/5;
.download-button {
font-size: 32px;
color: #000;
padding: 4px;
margin: 4px 4px;
display: block;
align-self: center;
}
}
</style>

View file

@ -0,0 +1,113 @@
<template>
<div id="download">
<h2 class="title">Pobieranie</h2>
<home-download-version-switcher v-if="$mq === 'md'" :activeSection="activeSection" />
<h3 class="section-name section-name-beta" v-if="$mq === 'lg'">BETA</h3>
<h3 class="section-name section-name-dev" v-if="$mq === 'lg'">DEV</h3>
<home-download-beta v-if="$mq === 'lg' || active === 'beta'" />
<home-download-dev v-if="$mq === 'lg' || active === 'dev'" />
</div>
</template>
<script>
import HomeDownloadBeta from './HomeDownloadBeta.vue';
import HomeDownloadDev from './HomeDownloadDev.vue';
import HomeDownloadVersionSwitcher from './HomeDownloadVersionSwitcher.vue';
export default {
name: 'home-download-section',
components: {
HomeDownloadBeta,
HomeDownloadDev,
HomeDownloadVersionSwitcher,
},
data() {
return {
activeSection: {
data: 'beta',
},
};
},
computed: {
active: {
get() {
return this.activeSection.data;
},
set(value) {
this.activeSection.data = value;
},
},
},
};
</script>
<style lang="scss" scoped>
#download {
height: 100vh;
box-sizing: border-box;
padding: 0 32px 32px;
overflow: hidden;
background-color: #F6F6F6;
display: grid;
grid-template-columns: 1fr 32px 1fr;
grid-template-rows: auto auto 1fr;
@media screen and (max-width: 875px) {
grid-template-columns: 1fr;
padding: 0 16px 16px;
}
@media screen and (max-width: 450px) {
padding: 0 8px 16px;
}
}
.title {
font-size: 32px;
text-align: center;
color: #D32F2F;
font-family: 'Roboto', sans-serif;
font-weight: 400;
grid-column: 1/4;
grid-row: 1;
@media screen and (max-width: 875px) {
grid-column: 1;
}
}
.section-name {
font-size: 28px;
text-align: center;
color: #D32F2F;
font-family: 'Roboto', sans-serif;
font-weight: 300;
margin: 0;
grid-row: 2;
}
.section-name-beta {
grid-column: 1;
}
.section-name-dev {
grid-column: 3;
}
.download-beta {
grid-row: 3;
grid-column: 1;
margin-top: 8px;
@media screen and (max-width: 875px) {
grid-column: 1;
}
}
.download-dev {
grid-row: 3;
grid-column: 3;
margin-top: 8px;
@media screen and (max-width: 875px) {
grid-column: 1;
}
}
</style>

View file

@ -0,0 +1,84 @@
<template>
<div class="download-version-switcher">
<span
class="section-name section-name-beta"
:class="{ active: active == 'beta' }"
@click="active = 'beta'">BETA</span>
<div class="devider" />
<span
class="section-name section-name-dev"
:class="{ active: active == 'dev' }"
@click="active = 'dev'">DEV</span>
</div>
</template>
<script>
export default {
name: 'home-download-version-switcher',
components: {
},
props: {
activeSection: Object,
default: {},
},
computed: {
active: {
get() {
return this.activeSection.data;
},
set(value) {
this.$ga.event({
eventCategory: 'dev-section',
eventAction: 'switch',
eventLabel: value,
eventValue: value === 'beta' ? 0 : 1,
});
this.activeSection.data = value;
},
},
},
};
</script>
<style lang="scss" scoped>
.download-version-switcher {
height: 32px;
display: flex;
direction: row;
margin-bottom: 16px;
margin-left: auto;
margin-right: auto;
}
.section-name {
min-width: 128px;
font-size: 28px;
line-height: 32px;
text-align: center;
font-family: 'Roboto', sans-serif;
font-weight: 300;
margin: 0;
color: #0008;
cursor: pointer;
&.active {
font-weight: 400;
color: #D32F2F;
}
}
.section-name-beta {
text-align: right;
}
.section-name-dev {
text-align: left;
}
.devider {
width: 0;
border: 1px solid #0006;
height: 100%;
margin: 0 8px;
}
</style>

View file

@ -0,0 +1,234 @@
<template>
<div id="main-header">
<h1 class="logo"><img src="../assets/wulkanowy-full-flat.svg" alt="Wulkanowy" /></h1>
<p class="text">
Aplikacja ucznia i rodzica<br />
Dla dziennika UONET+
</p>
<div class="buttons">
<a
class="google-play-link"
href="https://play.google.com/store/apps/details?id=io.github.wulkanowy&utm_source=homepage"
@click="googlePlayClick">
<img src="../assets/google-play-badge.svg" alt="Pobierz z Google Play" />
</a>
<a class="other-options" href="#download" @click="otherOptionsClick">
INNE OPCJE
</a>
</div>
<div class="quick-links">
<a class="discord" title="Discord" href="https://discord.gg/vccAQBr" @click="discordClick">
<img src="../assets/discord.svg" alt="Discord" />
</a>
<a class="github" title="GitHub" href="https://github.com/wulkanowy/" @click="githubClick">
<img src="../assets/github.svg" alt="GitHub" />
</a>
<a class="trello" title="Trello" href="https://trello.com/b/A97NUM1s/wulkanowy" @click="trelloClick">
<img src="../assets/trello.svg" alt="Trello" />
</a>
<a class="paypal" title="PayPal" href="https://paypal.me/wulkanowy" @click="paypalClick">
<img src="../assets/paypal.svg" alt="PayPal" />
</a>
</div>
</div>
</template>
<script>
export default {
name: 'home-main-header',
methods: {
googlePlayClick() {
this.$ga.event({
eventCategory: 'google-play-link',
eventAction: 'click',
});
},
otherOptionsClick(e) {
this.$ga.event({
eventCategory: 'other-download-options-link',
eventAction: 'click',
});
const element = document.getElementById('download');
if (element.scrollIntoView) {
e.preventDefault();
element.scrollIntoView({
behavior: 'smooth',
});
window.location.hash = 'download';
element.focus();
}
},
discordClick() {
this.$ga.event({
eventCategory: 'discord-link',
eventAction: 'click',
});
},
githubClick() {
this.$ga.event({
eventCategory: 'github-link',
eventAction: 'click',
});
},
trelloClick() {
this.$ga.event({
eventCategory: 'trello-link',
eventAction: 'click',
});
},
paypalClick() {
this.$ga.event({
eventCategory: 'paypal-link',
eventAction: 'click',
});
},
},
};
</script>
<style lang="scss" scoped>
#main-header {
padding-bottom: 48px;
height: 100vh;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
margin: 0;
img {
width: 768px;
max-width: 90vw;
display: block;
filter:
drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.2))
drop-shadow(0px 8px 10px rgba(0, 0, 0, 0.14))
drop-shadow(0px 3px 14px rgba(0, 0, 0, 0.12));
}
}
.text {
text-align: center;
margin-top: 0;
margin-bottom: 48px;
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: #fff;
font-size: 32px;
text-shadow:
0px 5px 5px rgba(0, 0, 0, 0.2),
0px 8px 10px rgba(0, 0, 0, 0.14),
0px 3px 14px rgba(0, 0, 0, 0.12);
text-transform: uppercase;
@media screen and (max-width: 550px) {
font-size: 24px;
}
@media screen and (max-width: 375px) {
font-size: 16px;
}
}
.buttons {
width: fit-content;
display: flex;
flex-direction: row;
@media screen and (max-width: 550px) {
flex-direction: column;
}
.google-play-link {
display: block;
img {
widows: 216px;
height: 64px;
box-shadow:
0px 2px 4px -1px rgba(0, 0, 0, 0.2),
0px 4px 5px 0px rgba(0, 0, 0, 0.14),
0px 1px 10px 0px rgba(0, 0, 0, 0.12);
border-radius: 8px;
transition: box-shadow 150ms;
}
&:focus {
outline: none;
}
&:hover img, &:focus img {
box-shadow:
0px 11px 15px -7px rgba(0, 0, 0, 0.2),
0px 24px 38px 3px rgba(0, 0, 0, 0.14),
0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
}
.other-options {
display: block;
width: 216px;
height: 64px;
box-sizing: border-box;
background-color: #fff;
text-align: center;
text-decoration: none;
color: rgba(0, 0, 0, 0.87);
line-height: 64px;
font-size: 20px;
font-family: 'Roboto', sans-serif;
font-weight: 500;
border-radius: 4px;
margin-left: 32px;
box-shadow:
0px 2px 4px -1px rgba(0, 0, 0, 0.2),
0px 4px 5px 0px rgba(0, 0, 0, 0.14),
0px 1px 10px 0px rgba(0, 0, 0, 0.12);
transition: box-shadow 150ms;
&:focus {
outline: none;
}
&:focus, &:hover {
box-shadow:
0px 11px 15px -7px rgba(0, 0, 0, 0.2),
0px 24px 38px 3px rgba(0, 0, 0, 0.14),
0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
@media screen and (max-width: 550px) {
margin-left: 0;
margin-top: 8px;
}
}
}
.quick-links {
margin-top: 32px;
.github, .trello, .discord, .paypal {
margin: 8px;
img {
width: 48px;
height: 48px;
filter:
drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.2))
drop-shadow(0px 8px 10px rgba(0, 0, 0, 0.14))
drop-shadow(0px 3px 14px rgba(0, 0, 0, 0.12));
@media screen and (max-width: 375px) {
width: 32px;
height: 32px;
}
}
}
}
</style>

View file

@ -0,0 +1,35 @@
<template>
<div id="main">
<home-main-header />
</div>
</template>
<script>
import HomeMainHeader from './HomeMainHeader.vue';
export default {
name: 'home-main-section',
components: {
HomeMainHeader,
},
};
</script>
<style lang="scss" scoped>
#main {
height: 100vh;
background:
linear-gradient(
rgba(0, 0, 0, 0.3),
rgba(0, 0, 0, 0.3)
),
url("../assets/wallpaper.jpg");
background-size: cover;
background-position: center;
background-attachment: fixed;
overflow: auto;
display: flex;
align-items: center;
justify-content: center;
}
</style>

View file

@ -0,0 +1,28 @@
<template>
<div id="home">
<home-main-section />
<home-download-section />
</div>
</template>
<script>
import HomeMainSection from './HomeMainSection.vue';
import HomeDownloadSection from './HomeDownloadSection.vue';
export default {
name: 'home-view',
components: {
HomeMainSection,
HomeDownloadSection,
},
};
</script>
<style lang="scss">
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500');
body {
margin: 0;
scroll-behavior: smooth;
}
</style>

View file

@ -0,0 +1,50 @@
<template>
<div class="spinner">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
</template>
<style lang="scss" scoped>
.spinner {
width: 70px;
text-align: center;
& > div {
width: 18px;
height: 18px;
background-color: #333;
border-radius: 100%;
display: inline-block;
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
.bounce1 {
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.bounce2 {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
}
@-webkit-keyframes sk-bouncedelay {
0%, 80%, 100% { -webkit-transform: scale(0) }
40% { -webkit-transform: scale(1.0) }
}
@keyframes sk-bouncedelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
} 40% {
-webkit-transform: scale(1.0);
transform: scale(1.0);
}
}
</style>

31
src/main.js Normal file
View file

@ -0,0 +1,31 @@
import '@mdi/font/css/materialdesignicons.min.css';
import Vue from 'vue';
import AsyncComputed from 'vue-async-computed';
import VueResource from 'vue-resource';
import VueMq from 'vue-mq';
import VueAnalytics from 'vue-analytics';
import App from './App.vue';
Vue.use(AsyncComputed);
Vue.use(VueResource);
Vue.use(VueMq, {
breakpoints: {
md: 875,
lg: Infinity,
},
});
Vue.use(VueAnalytics, {
id: 'UA-99646499-3',
debug: {
enabled: window.location.hostname === 'localhost',
sendHitTask: window.location.hostname !== 'localhost',
},
});
Vue.$ga.page(window.location.pathname);
Vue.config.productionTip = false;
new Vue({
render: h => h(App),
}).$mount('#app');

3
vue.config.js Normal file
View file

@ -0,0 +1,3 @@
module.exports = {
publicPath: './',
};