Added gallery pagination, finished footer, some little improvments
This commit is contained in:
parent
266a46446a
commit
021dea9dfe
110
dmitriy.ovpn
Normal file
110
dmitriy.ovpn
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
client
|
||||||
|
dev tun
|
||||||
|
proto udp
|
||||||
|
sndbuf 0
|
||||||
|
rcvbuf 0
|
||||||
|
remote 45.9.73.5 1407
|
||||||
|
resolv-retry infinite
|
||||||
|
nobind
|
||||||
|
persist-key
|
||||||
|
persist-tun
|
||||||
|
remote-cert-tls server
|
||||||
|
auth SHA512
|
||||||
|
cipher AES-256-CBC
|
||||||
|
setenv opt block-outside-dns
|
||||||
|
key-direction 1
|
||||||
|
verb 3
|
||||||
|
<ca>
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDQjCCAiqgAwIBAgIUTnm+AQYOQsbZx6HLtrSxeTQVgJwwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwEzERMA8GA1UEAwwIQ2hhbmdlTWUwHhcNMTkwNzEyMDU0NDM2WhcNMjkwNzA5
|
||||||
|
MDU0NDM2WjATMREwDwYDVQQDDAhDaGFuZ2VNZTCCASIwDQYJKoZIhvcNAQEBBQAD
|
||||||
|
ggEPADCCAQoCggEBAMGu1pA/ERmMlDmhAYsTWOVxL22In1/s/xqKVgY6Yo4GzdQv
|
||||||
|
xml29EK8/Q8ifVFipAli5NM3sgI7qxoFOYzix7CmOW76EXsUkPSD/NFXbh1Alsah
|
||||||
|
g1B0nk1gJx2oF/n8qC1Y4KQn/Aj+ZlYLGuBUeXHRsna6mBBj73OvjWysKyqY7Bn6
|
||||||
|
xZPH31z6cL1XXU9SvX7Os0GOD4AMX/sdS69q0tBOHMiEfe46gtXj0rxl/Pe7k8vL
|
||||||
|
/EuRR8ydRUYxjHSoYbuMGr1dGNWwH34BFH/bDtJov/dZFrGqEYzufANSm7o+mXlp
|
||||||
|
j7I/bwQ+owI++zlcD6JiJW6zIxJiVVv+N5Zw3KkCAwEAAaOBjTCBijAdBgNVHQ4E
|
||||||
|
FgQUUxoBdi/9D7ADf+oYxckDGEaJ6xQwTgYDVR0jBEcwRYAUUxoBdi/9D7ADf+oY
|
||||||
|
xckDGEaJ6xShF6QVMBMxETAPBgNVBAMMCENoYW5nZU1lghROeb4BBg5CxtnHocu2
|
||||||
|
tLF5NBWAnDAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAQEAJA6V8c/lUkq9tm6qvdEZLEvft3NkGb+E763iOAFI/0YteUEGfmjHXPOX
|
||||||
|
XrS1T3eD6OqujipJ3dLeoyi5BqqE+Lh08HTfZjrabqP8zL/z+Z1VD/rJK8+XSM06
|
||||||
|
Q5bHCPhHB62LOk+dtUIpi/vH6CcPPnxJnFqW4JXIJBuoKrq44sX/4ueLCJHX+dBs
|
||||||
|
WKj30TMs7XMyGjiWBSS7HCqwvFzaJEnwP68s8WsDMsUBNPS7FL8ROwd1WiXZ0d0G
|
||||||
|
spIzM31oIyd0qZz2MA2vWLj1w83grvxppSwsyiR+ANJFTH/+LJz4eBtjB2cl2ZQt
|
||||||
|
IWW9Pmw4fZwQah2+5FPHjvKDql0UfA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</ca>
|
||||||
|
<cert>
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDTzCCAjegAwIBAgIQTvoE7dpCm6CmagfHDJT7nDANBgkqhkiG9w0BAQsFADAT
|
||||||
|
MREwDwYDVQQDDAhDaGFuZ2VNZTAeFw0xOTA3MTIwNTQ0MzdaFw0yOTA3MDkwNTQ0
|
||||||
|
MzdaMBIxEDAOBgNVBAMMB2RtaXRyaXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||||
|
ggEKAoIBAQC2sZshbO58a2st46LPnNI+PixW47dBkzdNMe/4ItGizd9UTILZOR7a
|
||||||
|
HPh98V8XdgDby26x6eWXV9ynALqqHg0BlYHrRq4C9oby0OnWGb2S0yEvggxy4WZB
|
||||||
|
uqflDKcm7ZJYbY/8mz2NCKm755M1zf3cFp9Hd5wTlw3zQ059LJuJX+F/Teyv220s
|
||||||
|
lNHIFGqYPoL4SqB+Enu46AVmlqy9te6TPfcB6ipmyyg9pbyN82RfzWcko3jceBve
|
||||||
|
uKdIo9g+ARUb6Xp/sIbWZaIHZSLQQ620WCoEifvkE5IuFSyjItpUsvcM0/wFchyd
|
||||||
|
EWxGe/NPO0QUfGGQceovhGOyRuGAu48NAgMBAAGjgZ8wgZwwCQYDVR0TBAIwADAd
|
||||||
|
BgNVHQ4EFgQU3LySrwe8jP7GmQvCrmilFYf+SIowTgYDVR0jBEcwRYAUUxoBdi/9
|
||||||
|
D7ADf+oYxckDGEaJ6xShF6QVMBMxETAPBgNVBAMMCENoYW5nZU1lghROeb4BBg5C
|
||||||
|
xtnHocu2tLF5NBWAnDATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4Aw
|
||||||
|
DQYJKoZIhvcNAQELBQADggEBAFAezO4lvjVKaZ2KxIbIMqovx/EK/LJJP5vSHIP8
|
||||||
|
N2szHfxXQ4CbrYZxIWlC5GU6LHfOk+BDin0Vf4CFfA3eJADdWVgEQI2lY9NCI9Ez
|
||||||
|
BcjK9QzY0XSyRbaWaXp02N9JrAe6u73q76r1uUMBCbo3ge+xb49gNx0Y0F/3RIph
|
||||||
|
6LJTbAd2jJIYGvktiMQDAF3T4tU7t7dAetaic7FxSF7UkZstiUrimafwfP9JTjFt
|
||||||
|
M3vqeQlL76KBl4BuZp/UVEJaoteJyOuB1lKHInmSuD3W9os+/KZYaJKZlLvGNf71
|
||||||
|
vC8C5q1BACYTdyUqwzV7YqaxKCz/1aVmusg0HsbtEHrjwsw=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
</cert>
|
||||||
|
<key>
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC2sZshbO58a2st
|
||||||
|
46LPnNI+PixW47dBkzdNMe/4ItGizd9UTILZOR7aHPh98V8XdgDby26x6eWXV9yn
|
||||||
|
ALqqHg0BlYHrRq4C9oby0OnWGb2S0yEvggxy4WZBuqflDKcm7ZJYbY/8mz2NCKm7
|
||||||
|
55M1zf3cFp9Hd5wTlw3zQ059LJuJX+F/Teyv220slNHIFGqYPoL4SqB+Enu46AVm
|
||||||
|
lqy9te6TPfcB6ipmyyg9pbyN82RfzWcko3jceBveuKdIo9g+ARUb6Xp/sIbWZaIH
|
||||||
|
ZSLQQ620WCoEifvkE5IuFSyjItpUsvcM0/wFchydEWxGe/NPO0QUfGGQceovhGOy
|
||||||
|
RuGAu48NAgMBAAECggEAFIrJ36tI8ZJ+fa1v3BpNBZSmFasLKwNrn3FzAxqfKcgu
|
||||||
|
SWNE/znN/0ZspnSidZfeJtir/LNJDohhliGd24z/d2MhNZw/6rNfnyPgdyNzznOQ
|
||||||
|
8q+TyMMRZWiggj+298iUwP6oxwWJmTcVJry2L8GWvs2IYVfQo99DQUwbIjYG0x5U
|
||||||
|
9DT009+WdmMZOaYhLczjy37P8WuhEkJoBbrzt9iSXDz5W8yJDaitIAnpYkcXm0oK
|
||||||
|
RfJu2kP3b2swoY7WCQNVZHshQKqpnrOa6D+9wF8QA5pUe0CMwK4eEvaxl+AowIu4
|
||||||
|
RG8XCK6QLqX3ga7iFgpPvxcR94AHSc02hWqeDZjXHQKBgQDux3drJhqapRxWEZoJ
|
||||||
|
OPsbINDTAuOcEy+aIzb8fWcude66fc6UjhI1Vc0Pnt08Hbg5c17U7q+stFPVSDSW
|
||||||
|
nXaUCwA45D0+vyv88TAiHOjD9eEwC6832SDiXjm/kPhy26Rj+4hGZ5/Ylr1wzSin
|
||||||
|
2l7RhL4i45yoPfjc9XGFejF65wKBgQDD3qVQEvZYYj6Vve9SVQM4TceSEUZ61dqG
|
||||||
|
JbTj85dih/weBahJuWVw6wGneSCVVDHRziW6hTiwoyndVfLU04bXpRgqKipr7gzg
|
||||||
|
4SvL7StOQkHAbBYi8d7BJPp/xq8W9Jx1rAzz2A9PEJI7MxE6H7MCi52NaUN+0GuW
|
||||||
|
xAUTew+76wKBgCsIUbJCzLqgFQpB49PTrBWIhXnx5FlFb+fEfu1kIEtUP7DmaWuG
|
||||||
|
ayuniexNwitKY+AetbGETq6+VPl0KN4YBL3Leb/HCm6bf273fKg5M43Vaz8AbBSR
|
||||||
|
kgaZ2qh2lQAGK4tFUpr1o+4hxIRmxPPzO/Fgje+1u47qlEYmCc53ZiFzAoGAWOL4
|
||||||
|
KF+Cldd3yWKZccaMoIeDksDuOB5Gfewsq+nGgHtvqXwtw88zvsuXQ5YPeFTuCuU/
|
||||||
|
b+a3NEnHXN99RKH9pm0Qi0n5WGN+SqtEwdWOeoRM7HLglNkomoQafdP/by5wtmHu
|
||||||
|
utYJFHtTsTPalIMALJ6JUDw92hXhTVkFaLLHECMCgYB6gMxiFNwMuz0qZ21Dexo4
|
||||||
|
VcYNJmB0+fjEjjhFIg6JZRGNbL93Vy2/OoSRExToFQrAzFmL8itp5wPkYnVW8zZ/
|
||||||
|
aDvn385WtlsmTtaVPrynJg8W2ltytDKRg5lp2JiPN1WGwLO0SPeUL+u6wgLiySs0
|
||||||
|
Euizbi6jFIK3Gi+EhmpCDg==
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
|
</key>
|
||||||
|
<tls-auth>
|
||||||
|
-----BEGIN OpenVPN Static key V1-----
|
||||||
|
bcd89a0eed275b70415deef12d11fad0
|
||||||
|
02d94fa400ac20b85f2e37fe7107eea0
|
||||||
|
b3b9fc60e2dc9736238ed48b5c582b7c
|
||||||
|
db597e9e6ac45cab2ffc5a8aad272e3a
|
||||||
|
70c11279e8a530efcb8dfb1c5664330a
|
||||||
|
d955015eecea5ad16b257e4c42a8a5ce
|
||||||
|
f41960fb918b6b5d5adfbe10398c9f4d
|
||||||
|
f87f4ae187d03c199766ce770310c802
|
||||||
|
4b87129d63f9cb3c05eefaa5be634bcb
|
||||||
|
a0a75fa413ef8c35c5499254e4b01a96
|
||||||
|
511eaeba803b1b525eae77de073328c6
|
||||||
|
ac5f52a70a65dbaf2e49a257216cd667
|
||||||
|
b06c41dc351ab3fe22a70b94583311e4
|
||||||
|
fcc0d81ff469f6d65f861c6b5ea45a0f
|
||||||
|
5ed7bedbfb366dd34820a01250c7a8ce
|
||||||
|
7f28f9561346d1ad5c6d50d4c8922733
|
||||||
|
-----END OpenVPN Static key V1-----
|
||||||
|
</tls-auth>
|
@ -4,6 +4,7 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
"node-sass": "^4.13.1",
|
"node-sass": "^4.13.1",
|
||||||
"react": "^16.13.1",
|
"react": "^16.13.1",
|
||||||
"react-dom": "^16.13.1",
|
"react-dom": "^16.13.1",
|
||||||
|
@ -9,7 +9,7 @@ import {
|
|||||||
Home,
|
Home,
|
||||||
Gallery,
|
Gallery,
|
||||||
Footer,
|
Footer,
|
||||||
} from './components'
|
} from './components';
|
||||||
import './app.scss';
|
import './app.scss';
|
||||||
|
|
||||||
const App = () => {
|
const App = () => {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@import url('https://fonts.googleapis.com/css?family=Assistant|Kaushan+Script&display=swap');
|
@import url('https://fonts.googleapis.com/css?family=Assistant|Kaushan+Script&display=swap');
|
||||||
|
|
||||||
a, p, span {
|
a, p, span, button {
|
||||||
font-family: 'Assistant', sans-serif;
|
font-family: 'Assistant', sans-serif;
|
||||||
font-size: 3vh;
|
font-size: 3vh;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
@ -1,11 +1,20 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import './footer.scss'
|
import './footer.scss'
|
||||||
import { ReactComponent as Telegram} from './telegram.svg'
|
import { ReactComponent as Telegram } from './telegram.svg'
|
||||||
|
import { ReactComponent as Instagram } from './instagram.svg'
|
||||||
|
import { ReactComponent as Vk } from './vk.svg'
|
||||||
|
import { ReactComponent as LastFM } from './lastfm.svg'
|
||||||
|
|
||||||
const Footer = () => {
|
const Footer = () => {
|
||||||
return (
|
return (
|
||||||
<footer>
|
<footer>
|
||||||
<Telegram className="telegram" />
|
<div className="social" >
|
||||||
|
<a href="https://ttttt.me/dsh147"><Telegram /></a>
|
||||||
|
<a href="https://instagram.com/i.have.no.camera"><Instagram /></a>
|
||||||
|
<a href="https://vk.com/dsh147"><Vk /></a>
|
||||||
|
<a href="https://last.fm/user/Dm1tr1y1"><LastFM /></a>
|
||||||
|
</div>
|
||||||
|
<p>Shishkov Dmitriy <span role="img" aria-label="Coll">👌</span> — 2020</p>
|
||||||
</footer>
|
</footer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -15,20 +15,44 @@ const GalleryList = (json) => {
|
|||||||
|
|
||||||
const Gallery = props => {
|
const Gallery = props => {
|
||||||
const [galleryData, setGalleryData] = useState([]);
|
const [galleryData, setGalleryData] = useState([]);
|
||||||
|
const [pagesAmount, setPagesAmount] = useState(1);
|
||||||
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
|
const [hasError, setHasError] = useState(false);
|
||||||
const size = (props.type === "galleryList") ? 4 : 9;
|
const size = (props.type === "galleryList") ? 4 : 9;
|
||||||
|
|
||||||
useEffect( () => {
|
useEffect( () => {
|
||||||
async function fetchData() {
|
const fetchData = async () => {
|
||||||
const res = await fetch(`http://localhost:8000/?size=${size}`);
|
try {
|
||||||
const json = await res.json();
|
const res = await fetch(`${process.env.REACT_APP_API_URL}/?size=${size}&page=${currentPage}`);
|
||||||
setGalleryData(json.list);
|
|
||||||
|
if (!res.ok) {
|
||||||
|
throw Error(res.statusText);
|
||||||
|
}
|
||||||
|
const json = await res.json();
|
||||||
|
|
||||||
|
setPagesAmount(json.pagesAmount);
|
||||||
|
setGalleryData(g => [...g, ...json.list] );
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
setHasError(true);
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fetchData();
|
fetchData();
|
||||||
}, [size]);
|
}, [size, currentPage]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={props.type}>
|
<div className={props.type}>
|
||||||
{GalleryList(galleryData)}
|
{ GalleryList(galleryData) }
|
||||||
|
{ ( props.type === "galleryGrid" &&
|
||||||
|
currentPage < pagesAmount || hasError ) &&
|
||||||
|
<button onClick={ () => {
|
||||||
|
setCurrentPage(currentPage + 1);
|
||||||
|
setHasError(false);
|
||||||
|
}
|
||||||
|
}>
|
||||||
|
{ hasError ? "Error, press to try again" : "Show more" }
|
||||||
|
</button>}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,8 @@ const GalleryItem = props => {
|
|||||||
const src = 'http://localhost:8000/' + props.src;
|
const src = 'http://localhost:8000/' + props.src;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="galleryItem" onClick={ () => setShowViewbox(true) }>
|
<div className="galleryItem" >
|
||||||
<img alt="My shots" src={src} />
|
<img alt="My shots" src={src} onClick={ () => setShowViewbox(true) } />
|
||||||
|
|
||||||
{showViewBox && <ViewBox src={src} click={setShowViewbox} /> }
|
{showViewBox && <ViewBox src={src} click={setShowViewbox} /> }
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
.galleryItem {
|
.galleryItem {
|
||||||
margin-bottom: 3vh;
|
|
||||||
|
|
||||||
& > img {
|
& > img {
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 75vh;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
filter: contrast(75%) brightness(120%);
|
filter: var(--image-hover-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,9 +2,36 @@ footer {
|
|||||||
width: 100vw;
|
width: 100vw;
|
||||||
min-height: 25vh;
|
min-height: 25vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
background-color: var(--background-second-color);
|
||||||
|
box-shadow: inset 0 1px 3px rgba(0,0,0,0.12), inset 0 1px 2px rgba(0,0,0,0.24);
|
||||||
|
padding: 10vmin;
|
||||||
|
|
||||||
.telegram {
|
.social {
|
||||||
fill: #2a9fd9;
|
svg {
|
||||||
height: 10vh;
|
height: 6vh;
|
||||||
|
width: 6vh;
|
||||||
|
margin: 0 2vh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
line-height: 6vh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (orientation: portrait) {
|
||||||
|
footer {
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.social {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,15 +3,71 @@
|
|||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
grid-gap: 3vh;
|
grid-gap: 3vh;
|
||||||
padding: 10vh 10vw;
|
padding: 10vh 10vw;
|
||||||
|
align-items: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.galleryList {
|
.galleryList {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.galleryItem {
|
.galleryItem {
|
||||||
max-width: 50vw;
|
max-width: 50vw;
|
||||||
|
margin-bottom: 3vh;
|
||||||
|
|
||||||
&:nth-child(2n) {
|
&:nth-child(2n) {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& > img {
|
||||||
|
max-height: 75vh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
border: none;
|
||||||
|
width: 10vw;
|
||||||
|
height: 5vh;
|
||||||
|
box-shadow: var(--box-shadow);
|
||||||
|
border-radius: 5vh;
|
||||||
|
margin: 0 auto;
|
||||||
|
grid-column: span 3;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--background-second-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: var(--background-touched-color);
|
||||||
|
box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (orientation: portrait) {
|
||||||
|
.galleryGrid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
|
||||||
|
button {
|
||||||
|
width: 50vw;
|
||||||
|
grid-column: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.galleryList {
|
||||||
|
.galleryItem {
|
||||||
|
max-width: none;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.galleryGrid {
|
||||||
|
button {
|
||||||
|
background-color: var(--background-second-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,8 +4,8 @@
|
|||||||
font-family: 'Kaushan Script', cursive;
|
font-family: 'Kaushan Script', cursive;
|
||||||
font-size: 10vh;
|
font-size: 10vh;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 10vh;
|
margin-top: 10vh;
|
||||||
padding-bottom: 7vh;
|
padding: 7vh 0;
|
||||||
color: var(--text-color);
|
color: var(--text-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ header {
|
|||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: bottom;
|
background-position: bottom;
|
||||||
|
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
box-shadow: var(--box-shadow);
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-family: 'Kaushan Script', cursive;
|
font-family: 'Kaushan Script', cursive;
|
||||||
|
1
src/components/instagram.svg
Normal file
1
src/components/instagram.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="SVGID_1_" gradientTransform="matrix(0 -1.982 -1.844 0 -132.522 -51.077)" gradientUnits="userSpaceOnUse" x1="-37.106" x2="-26.555" y1="-72.705" y2="-84.047"><stop offset="0" stop-color="#fd5"/><stop offset=".5" stop-color="#ff543e"/><stop offset="1" stop-color="#c837ab"/></linearGradient><path d="m1.5 1.633c-1.886 1.959-1.5 4.04-1.5 10.362 0 5.25-.916 10.513 3.878 11.752 1.497.385 14.761.385 16.256-.002 1.996-.515 3.62-2.134 3.842-4.957.031-.394.031-13.185-.001-13.587-.236-3.007-2.087-4.74-4.526-5.091-.559-.081-.671-.105-3.539-.11-10.173.005-12.403-.448-14.41 1.633z" fill="url(#SVGID_1_)"/><path d="m11.998 3.139c-3.631 0-7.079-.323-8.396 3.057-.544 1.396-.465 3.209-.465 5.805 0 2.278-.073 4.419.465 5.804 1.314 3.382 4.79 3.058 8.394 3.058 3.477 0 7.062.362 8.395-3.058.545-1.41.465-3.196.465-5.804 0-3.462.191-5.697-1.488-7.375-1.7-1.7-3.999-1.487-7.374-1.487zm-.794 1.597c7.574-.012 8.538-.854 8.006 10.843-.189 4.137-3.339 3.683-7.211 3.683-7.06 0-7.263-.202-7.263-7.265 0-7.145.56-7.257 6.468-7.263zm5.524 1.471c-.587 0-1.063.476-1.063 1.063s.476 1.063 1.063 1.063 1.063-.476 1.063-1.063-.476-1.063-1.063-1.063zm-4.73 1.243c-2.513 0-4.55 2.038-4.55 4.551s2.037 4.55 4.55 4.55 4.549-2.037 4.549-4.55-2.036-4.551-4.549-4.551zm0 1.597c3.905 0 3.91 5.908 0 5.908-3.904 0-3.91-5.908 0-5.908z" fill="#fff"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
53
src/components/lastfm.svg
Normal file
53
src/components/lastfm.svg
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 112.195 112.195" style="enable-background:new 0 0 112.195 112.195;" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path id="XMLID_59_" style="fill:#D31F27;" d="M112.195,56.097c0,30.983-25.114,56.099-56.097,56.099
|
||||||
|
C25.115,112.195,0,87.08,0,56.097C0,25.117,25.115,0,56.099,0C87.081,0,112.195,25.117,112.195,56.097z"/>
|
||||||
|
<g id="lastfm">
|
||||||
|
<g>
|
||||||
|
<path style="fill:#FFFFFF;" d="M80.487,52.141c-6.203-1.849-8.412-2.874-8.412-4.922c0-3.416,4.937-4.702,5.497-4.79
|
||||||
|
c3.139-0.465,7.072,1.173,8.34,4.99l8.44-2.553c-2.65-8.385-10.487-12.099-18.099-10.975
|
||||||
|
c-7.788,1.146-12.782,6.786-12.782,13.327c0,8.8,8.244,11.332,14.43,13.181c6.509,1.944,8.401,2.637,8.401,5.023
|
||||||
|
c0,2.016-1.196,3.895-4.374,4.735c-6.32,1.664-14.586-0.672-16.887-4.523c-1.351-2.261-2.733-5.203-4.001-8.53
|
||||||
|
c-3.766-9.866-8.926-23.371-23.764-23.371c-7.731,0-21.851,3.743-21.851,24.868c0,8.744,7.481,19.613,21.578,19.613
|
||||||
|
c11.829,0,13.888-4.32,14.358-5.085l-3.861-7.555c-0.098,0.138-3.692,4.936-10.497,4.936c-11.107,0-12.735-11.776-12.735-11.909
|
||||||
|
c0-10.967,4.687-16.238,13.008-16.238c8.094,0,11.382,7.04,15.48,17.759c1.397,3.683,2.922,6.966,4.65,9.865
|
||||||
|
c3.657,6.116,11.55,8.091,19.473,8.091c2.418,0,5.2,0.137,7.351-0.432c7.093-1.878,10.905-6.178,10.905-12.224
|
||||||
|
C95.137,56.218,86.852,54.044,80.487,52.141z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
@ -3,13 +3,13 @@ nav {
|
|||||||
top: 0;
|
top: 0;
|
||||||
height: 10vh;
|
height: 10vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 2vh 4vw;
|
padding: 2vh 4vmax;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-navbar-color);
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|
||||||
&.showShadow {
|
& {
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
box-shadow: var(--box-shadow);
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
@ -24,7 +24,7 @@ nav {
|
|||||||
|
|
||||||
a {
|
a {
|
||||||
line-height: 6vh;
|
line-height: 6vh;
|
||||||
padding: 0 1vw;
|
padding: 0 1vmax;
|
||||||
}
|
}
|
||||||
.galactikka {
|
.galactikka {
|
||||||
background-image: url('./galactikka_bg.jpg');
|
background-image: url('./galactikka_bg.jpg');
|
||||||
|
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="telegram-4" d="M12,0c-6.626,0 -12,5.372 -12,12c0,6.627 5.374,12 12,12c6.627,0 12,-5.373 12,-12c0,-6.628 -5.373,-12 -12,-12Zm3.224,17.871c0.188,0.133 0.43,0.166 0.646,0.085c0.215,-0.082 0.374,-0.267 0.422,-0.491c0.507,-2.382 1.737,-8.412 2.198,-10.578c0.035,-0.164 -0.023,-0.334 -0.151,-0.443c-0.129,-0.109 -0.307,-0.14 -0.465,-0.082c-2.446,0.906 -9.979,3.732 -13.058,4.871c-0.195,0.073 -0.322,0.26 -0.316,0.467c0.007,0.206 0.146,0.385 0.346,0.445c1.381,0.413 3.193,0.988 3.193,0.988c0,0 0.847,2.558 1.288,3.858c0.056,0.164 0.184,0.292 0.352,0.336c0.169,0.044 0.348,-0.002 0.474,-0.121c0.709,-0.669 1.805,-1.704 1.805,-1.704c0,0 2.084,1.527 3.266,2.369Zm-6.423,-5.062l0.98,3.231l0.218,-2.046c0,0 3.783,-3.413 5.941,-5.358c0.063,-0.057 0.071,-0.153 0.019,-0.22c-0.052,-0.067 -0.148,-0.083 -0.219,-0.037c-2.5,1.596 -6.939,4.43 -6.939,4.43Z"/></svg>
|
<svg enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" fill="#039be5" r="12"/><path d="m5.491 11.74 11.57-4.461c.537-.194 1.006.131.832.943l.001-.001-1.97 9.281c-.146.658-.537.818-1.084.508l-3-2.211-1.447 1.394c-.16.16-.295.295-.605.295l.213-3.053 5.56-5.023c.242-.213-.054-.333-.373-.121l-6.871 4.326-2.962-.924c-.643-.204-.657-.643.136-.953z" fill="#fff"/></svg>
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 452 B |
@ -4,6 +4,7 @@
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
width: 100vw;
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-color);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -13,4 +14,9 @@
|
|||||||
img {
|
img {
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@media (orientation: portrait) {
|
||||||
|
.viewBox img {
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
}
|
}
|
1
src/components/vk.svg
Normal file
1
src/components/vk.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m19.915 13.028c-.388-.49-.277-.708 0-1.146.005-.005 3.208-4.431 3.538-5.932l.002-.001c.164-.547 0-.949-.793-.949h-2.624c-.668 0-.976.345-1.141.731 0 0-1.336 3.198-3.226 5.271-.61.599-.892.791-1.225.791-.164 0-.419-.192-.419-.739v-5.105c0-.656-.187-.949-.74-.949h-4.126c-.419 0-.668.306-.668.591 0 .622.945.765 1.043 2.515v3.797c0 .832-.151.985-.486.985-.892 0-3.057-3.211-4.34-6.886-.259-.713-.512-1.001-1.185-1.001h-2.625c-.749 0-.9.345-.9.731 0 .682.892 4.073 4.148 8.553 2.17 3.058 5.226 4.715 8.006 4.715 1.671 0 1.875-.368 1.875-1.001 0-2.922-.151-3.198.686-3.198.388 0 1.056.192 2.616 1.667 1.783 1.749 2.076 2.532 3.074 2.532h2.624c.748 0 1.127-.368.909-1.094-.499-1.527-3.871-4.668-4.023-4.878z" fill="#4b729f"/></svg>
|
After Width: | Height: | Size: 854 B |
@ -1,7 +1,12 @@
|
|||||||
:root {
|
:root {
|
||||||
color-scheme: light dark;
|
color-scheme: light dark;
|
||||||
--background-color: #ffffff;
|
--background-color: #ffffff;
|
||||||
--text-color: #282627;
|
--background-navbar-color: #ffffff;
|
||||||
|
--background-second-color: #ebebeb;
|
||||||
|
--background-touched-color: #dedede;
|
||||||
|
--text-color: #121212;
|
||||||
|
--box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
||||||
|
--image-hover-color: contrast(75%) brightness(120%);
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
@ -36,7 +41,11 @@ code {
|
|||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root {
|
:root {
|
||||||
color-scheme: light dark;
|
color-scheme: light dark;
|
||||||
--background-color: #1c1c1e;
|
--background-color: #121212;
|
||||||
|
--background-second-color: #1f1f1f;
|
||||||
|
--background-navbar-color: #1f1f1f;
|
||||||
|
--background-touched-color: #373737;
|
||||||
--text-color: #ffffff;
|
--text-color: #ffffff;
|
||||||
|
--image-hover-color: contrast(90%) brightness(90%);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3617,7 +3617,7 @@ dotenv-expand@5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
|
resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
|
||||||
integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
|
integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
|
||||||
|
|
||||||
dotenv@8.2.0:
|
dotenv@8.2.0, dotenv@^8.2.0:
|
||||||
version "8.2.0"
|
version "8.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
||||||
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
||||||
|
Loading…
x
Reference in New Issue
Block a user