lbry.tech/content/.vuepress/components/Ecosystem.vue

473 lines
15 KiB
Vue
Raw Normal View History

2018-05-25 22:02:50 +02:00
<template>
2018-05-29 19:46:20 +02:00
<section class="ecosystem">
<aside class="ecosystem__submodules">
<div class="ecosystem__submodule chainquery">
<h3 class="__title">chainquery</h3>
</div>
<div class="ecosystem__submodule wallet">
<h3 class="__title">wallet server</h3>
</div>
</aside>
2018-05-25 22:02:50 +02:00
2018-05-29 19:46:20 +02:00
<section class="ecosystem__modules">
2018-05-30 06:44:44 +02:00
<div class="ecosystem__module lbrycrd">
2018-05-29 23:01:06 +02:00
<h2 class="__title">
2018-05-30 06:44:44 +02:00
<span v-on:click="open('lbrycrd')">
Blockchain
<em>The blockchain is "lbrycrd"</em>
</span>
2018-05-29 23:01:06 +02:00
<div>
2018-05-30 06:44:44 +02:00
<span v-on:click="open('applications')">Applications</span>
<span v-on:click="open('lbry')">Data Network</span>
2018-05-29 23:01:06 +02:00
</div>
</h2>
2018-05-25 22:02:50 +02:00
2018-05-29 19:46:20 +02:00
<div class="ecosystem__module__details">
<p>Lorem ipsum dolor sit amet consectetur adipiscing elit semper luctus praesent phasellus egestas lectus, placerat feugiat arcu dis fermentum maecenas in augue mus quisque euismod justo. Posuere senectus fermentum luctus iaculis nascetur congue enim, semper gravida egestas facilisis mus sociosqu dui metus, est augue mollis phasellus quis leo. Montes hendrerit potenti cubilia feugiat dictum vitae tellus, habitant cursus dignissim et leo morbi, aliquet proin bibendum vivamus per mattis.</p>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</div>
2018-05-30 06:44:44 +02:00
<span class="__close" v-on:click="close()">&times;</span>
2018-05-28 18:40:05 +02:00
</div>
2018-05-29 19:46:20 +02:00
2018-05-29 23:01:06 +02:00
<div class="ecosystem__module lbry">
<h2 class="__title">
2018-05-30 06:44:44 +02:00
<span v-on:click="open('lbry')">
Data Network
<em>The data network is "lbry"</em>
</span>
2018-05-29 23:01:06 +02:00
<div>
2018-05-30 06:44:44 +02:00
<span v-on:click="open('applications')">Applications</span>
<span v-on:click="open('lbrycrd')">Blockchain</span>
2018-05-29 23:01:06 +02:00
</div>
</h2>
2018-05-29 19:46:20 +02:00
<div class="ecosystem__module__details">
<ul>
<li>
<strong class="__title">lbryschema</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
<ul>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
<li>Himenaeos purus facilisi litora suspendisse molestie, cubilia maecenas faucibus vivamus.</li>
<li>Nisi sociosqu interdum augue condimentum vivamus, ac leo feugiat.</li>
<li>Justo eu neque aenean nec sagittis, cubilia magnis arcu.</li>
</ul>
</li>
<li>
<strong class="__title">lbryumx</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
<ul>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
<li>Himenaeos purus facilisi litora suspendisse molestie, cubilia maecenas faucibus vivamus.</li>
<li>Nisi sociosqu interdum augue condimentum vivamus, ac leo feugiat.</li>
<li>Justo eu neque aenean nec sagittis, cubilia magnis arcu.</li>
</ul>
</li>
</ul>
</div>
2018-05-30 06:44:44 +02:00
<span class="__close" v-on:click="close()">&times;</span>
2018-05-28 18:40:05 +02:00
</div>
2018-05-29 19:46:20 +02:00
2018-05-29 23:01:06 +02:00
<div class="ecosystem__module applications">
<h2 class="__title">
2018-05-30 06:44:44 +02:00
<span v-on:click="open('applications')">
Applications
<em>LBRY has a lot of applications</em>
</span>
2018-05-29 23:01:06 +02:00
<div>
2018-05-30 06:44:44 +02:00
<span v-on:click="open('lbrycrd')">Blockchain</span>
<span v-on:click="open('lbry')">Data Network</span>
2018-05-29 23:01:06 +02:00
</div>
</h2>
2018-05-29 19:46:20 +02:00
<div class="ecosystem__module__details">
<ul>
<li>
<strong class="__title">Desktop</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</li>
<li>
<strong class="__title">Mobile</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</li>
<li>
<strong class="__title">spee.ch</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</li>
<li>
<strong class="__title">Lighthouse</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</li>
<li>
<strong class="__title">chainquery</strong>
<p>Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.</p>
</li>
</ul>
</div>
2018-05-30 06:44:44 +02:00
<span class="__close" v-on:click="close()">&times;</span>
2018-05-29 19:46:20 +02:00
</div>
</section>
<aside class="ecosystem__submodules">
<div class="ecosystem__submodule lighthouse">
<h3 class="__title">lighthouse</h3>
</div>
<div class="ecosystem__submodule reflector">
<h3 class="__title">reflector</h3>
2018-05-28 18:40:05 +02:00
</div>
2018-05-29 19:46:20 +02:00
</aside>
2018-05-25 22:02:50 +02:00
</section>
</template>
2018-05-28 18:40:05 +02:00
<script>
export default {
data () {
return {
}
},
methods: {
open (ecosystemComponentClassName) {
2018-05-29 19:46:20 +02:00
document.querySelectorAll(".ecosystem__module").forEach(n => n.classList.remove("active"));
document.querySelectorAll(".ecosystem__submodule").forEach(n => n.classList.remove("active"));
2018-05-28 18:40:05 +02:00
document.getElementsByClassName(ecosystemComponentClassName)[0].classList.add("active");
2018-05-29 19:46:20 +02:00
switch (true) {
2018-05-30 06:44:44 +02:00
case (ecosystemComponentClassName === "lbrycrd"):
2018-05-29 19:46:20 +02:00
document.getElementsByClassName("chainquery")[0].classList.add("active");
document.getElementsByClassName("lighthouse")[0].classList.add("active");
document.getElementsByClassName("wallet")[0].classList.add("active");
break;
case (ecosystemComponentClassName === "lbry"):
document.getElementsByClassName("reflector")[0].classList.add("active");
document.getElementsByClassName("wallet")[0].classList.add("active");
break;
case (ecosystemComponentClassName === "applications"):
document.getElementsByClassName("chainquery")[0].classList.add("active");
document.getElementsByClassName("lighthouse")[0].classList.add("active");
break;
default:
break;
}
2018-05-30 06:44:44 +02:00
},
close () {
document.querySelectorAll(".ecosystem__module").forEach(n => n.classList.remove("active"));
document.querySelectorAll(".ecosystem__submodule").forEach(n => n.classList.remove("active"));
/*
switch (true) {
case (ecosystemComponentClassName === "lbrycrd"):
document.getElementsByClassName(ecosystemComponentClassName)[0].classList.remove("active");
break;
case (ecosystemComponentClassName === "lbry"):
document.getElementsByClassName(ecosystemComponentClassName)[0].classList.remove("active");
break;
case (ecosystemComponentClassName === "applications"):
document.getElementsByClassName(ecosystemComponentClassName)[0].classList.remove("active");
break;
default:
break;
}
*/
2018-05-28 18:40:05 +02:00
}
2018-05-29 23:01:06 +02:00
}
2018-05-28 18:40:05 +02:00
}
</script>
2018-05-25 22:02:50 +02:00
<style lang="scss">
@import "../scss/init/colors";
@import "../scss/init/mixins";
2018-05-29 19:46:20 +02:00
.ecosystem {
margin-bottom: 2rem; padding-top: 1rem;
display: grid;
font-size: 1rem;
grid-gap: 1rem;
grid-template-columns: 144px auto 144px;
}
.ecosystem__modules {
}
.ecosystem__module {
2018-05-30 06:44:44 +02:00
// padding: 1.9rem 2rem;
2018-05-29 19:46:20 +02:00
position: relative;
width: 100%;
> * {
z-index: 1;
}
h2 {
position: relative;
width: 100%;
2018-05-29 23:01:06 +02:00
> div {
float: right;
font-size: 1rem;
padding-top: 1.95rem;
2018-05-30 06:44:44 +02:00
padding-right: 3rem;
2018-05-29 23:01:06 +02:00
position: relative;
text-align: right;
&::before {
@include font-serif;
2018-05-30 06:44:44 +02:00
top: 0.9rem; right: 3rem;
2018-05-29 23:01:06 +02:00
content: "explore";
font-size: 80%;
font-style: italic;
opacity: 0.3;
position: absolute;
text-align: right;
width: 100%;
}
span {
cursor: pointer;
display: inline-block;
position: relative;
&:not(:last-of-type) {
margin-right: 1rem;
&::after {
top: 0; right: -0.7rem;
color: rgba($gray, 0.3);
content: "/";
font-style: italic;
position: absolute;
}
}
}
}
2018-05-29 19:46:20 +02:00
}
&::before {
width: 100%; height: 100%;
top: 0; left: 0;
content: "";
position: absolute;
2018-05-29 21:13:34 +02:00
z-index: 0;
2018-05-29 19:46:20 +02:00
}
&:not(.active) {
@include center;
h2 {
font-size: 1.5rem;
2018-05-29 23:01:06 +02:00
text-align: center;
2018-05-30 00:22:18 +02:00
> span {
cursor: pointer;
2018-05-30 06:44:44 +02:00
display: block;
padding: 1.9rem 2rem;
em {
display: block;
font-size: 70%;
font-weight: normal;
}
2018-05-30 00:22:18 +02:00
}
2018-05-29 23:01:06 +02:00
> div {
display: none;
}
2018-05-29 19:46:20 +02:00
}
.ecosystem__module__details {
display: none;
}
2018-05-30 06:44:44 +02:00
.__close {
top: 2rem;
transform: rotate(45deg);
z-index: 0;
}
2018-05-29 19:46:20 +02:00
}
&.active {
2018-05-30 06:44:44 +02:00
padding: 1.9rem 2rem;
2018-05-29 19:46:20 +02:00
h2 {
font-size: 3rem;
margin-bottom: 1rem;
2018-05-30 00:22:18 +02:00
> span {
cursor: default;
2018-05-30 06:44:44 +02:00
em {
display: none;
}
2018-05-30 00:22:18 +02:00
}
2018-05-29 19:46:20 +02:00
}
&::before {
background-color: $white;
}
2018-05-30 06:44:44 +02:00
.__close {
top: 2.35rem;
}
2018-05-29 19:46:20 +02:00
}
2018-05-30 06:44:44 +02:00
&.lbrycrd {
2018-05-29 19:46:20 +02:00
margin-bottom: 1rem;
&:not(.active) {
&::before {
background-color: $red;
}
}
&.active {
&::before {
border: 2px solid $red;
}
}
}
2018-05-30 06:44:44 +02:00
&.lbry,
&.applications {
}
2018-05-29 19:46:20 +02:00
&.lbry {
margin-bottom: 1rem;
&:not(.active) {
&::before {
background-color: $blue;
}
h2 {
margin-bottom: 0.5rem;
&::after {
2018-05-30 06:44:44 +02:00
bottom: 1rem; left: 0;
2018-05-29 19:46:20 +02:00
content: "◼︎◼︎";
font-size: 0.5rem;
letter-spacing: 0.1rem;
position: absolute;
width: 100%;
2018-05-30 06:44:44 +02:00
z-index: -1;
2018-05-29 19:46:20 +02:00
}
}
}
&.active {
&::before {
border: 2px solid $blue;
}
}
}
&.applications {
&:not(.active) {
&::before {
background-color: $green;
}
h2 {
margin-bottom: 0.5rem;
&::after {
2018-05-30 06:44:44 +02:00
bottom: 1rem; left: 0;
2018-05-29 19:46:20 +02:00
content: "◼︎◼︎◼︎◼︎◼︎";
font-size: 0.5rem;
letter-spacing: 0.1rem;
position: absolute;
width: 100%;
}
}
}
&.active {
&::before {
border: 2px solid $green;
}
}
}
}
.ecosystem__module__piece {
background-color: $white;
left: 10%;
line-height: 2;
position: relative;
width: 80%;
&:not(:last-of-type) {
margin-bottom: 0.5rem;
}
}
.ecosystem__submodules {
padding-top: 0.25rem;
}
.ecosystem__submodule {
@include center;
width: 144px; height: 144px;
border: 2px dashed;
border-radius: 50%;
2018-05-29 23:01:06 +02:00
cursor: default;
2018-05-29 19:46:20 +02:00
&:not(:last-of-type) {
margin-bottom: 1rem;
}
&:not(.active) {
border-color: rgba($gray, 0.3);
color: rgba($gray, 0.3);
}
}
2018-05-30 06:44:44 +02:00
.__close {
cursor: pointer;
font-size: 2rem;
position: absolute;
right: 2rem;
transition: all 0.2s;
}
2018-05-25 22:02:50 +02:00
</style>