fediparty/themes/starter/source/assets/scss/modules/_index.scss

359 lines
5.0 KiB
SCSS

.main__container {
position: absolute;
bottom: 0;
right: 0;
padding-top: 2em;
padding-bottom: 1.5em;
background: $black url(/img/index-bg.jpg) center center no-repeat;
background-size: cover;
overflow: hidden;
}
.i-sidebar + .main__container {
width: calc(100% - 70px);
}
.main__container:after { /* dotted overlay */
content: "";
background-image: url(/img/dots.png);
background-size: 2px;
position: fixed;
top: 0;
right: 0;
width: inherit;
height: 100%;
z-index: $zIndex--1;
}
.grid {
position: relative;
z-index: $zIndex--2;
width: inherit;
height: inherit;
}
.grid__item {
position: absolute;
width: 190px;
font-family: $font-secondary;
font-weight: bold;
display: inline-flex;
border-bottom: none;
&:active,
&:focus,
&:hover {
background: none;
}
}
.grid__item__image {
width: 80px;
height: 80px;
flex: 40% 0 0;
border: 3px solid $white;
background: $white;
border-radius: 50%;
}
.grid__item__title {
color: $white;
flex: 60% 0 0;
margin: 0 .5em;
align-self: center;
transition: color .3s ease, text-shadow .3s ease;
font-size: 1.2rem;
}
.grid__item:hover .grid__item__title,
.grid__item:focus .grid__item__title {
text-shadow: 0 0 10px $white;
}
.f-Misskey {
top: 9%;
left: 4%;
}
.f-Hubzilla {
top: 9.5em;
left: 28%;
}
.f-Lemmy {
top: 4em;
left: 80%;
}
.f-PeerTube {
top: 48%;
left: 13%;
}
.f-Mastodon {
top: 35%;
left: 75%;
}
.f-Friendica {
top: 82%;
left: 32%;
}
.f-diaspora {
top: 76%;
left: 83%;
}
.f-Pleroma {
top: 53%;
left: 85%;
}
.f-Pixelfed {
top: 74%;
left: 7%;
}
.f-Funkwhale {
top: 85%;
left: 63%;
}
.grid__card {
opacity: 0;
position: absolute;
width: 350px;
height: 220px;
background: $black;
color: $white;
padding: 35px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: opacity .45s ease-in;
}
.grid__item:hover + .grid__card {
opacity: 1;
}
.grid__card:after,
.intro__content:after {
content: "";
border: 1px solid $golden;
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
z-index: -1;
}
.grid__card h4,
.intro__content span {
text-align: center;
color: $golden;
}
.grid__card img {
width: 50px;
height: 50px;
vertical-align: middle;
margin-right: .2em;
}
.grid__card p {
font-size: .9rem;
margin-top: .3em;
}
.intro {
cursor: pointer;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 22px;
height: 22px;
border-radius: 50%;
background-color: $golden;
box-shadow: 0 0 12px $golden;
z-index: $zIndex--4;
}
.intro:before {
content: "";
display: block;
width: 70px;
height: 70px;
background: rgba($golden, .2);
border-radius: inherit;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
animation-duration: 2s;
animation-iteration-count: infinite;
animation-name: glow;
}
.grid__item:hover ~ .intro {
opacity: 0;
}
.intro__content {
opacity: 0;
position: relative;
left: 40%;
transform: translate(-40%, -40%);
display: none;
flex-direction: column;
width: 500px;
height: 260px;
background: $black;
color: $white;
padding: 35px;
transition: opacity .45s ease-in;
}
.intro__content.open {
display: flex;
opacity: 1;
}
.intro__content svg {
width: 20px;
height: 20px;
position: absolute;
top: 1.5em;
right: 1.5em;
}
.intro__content a {
flex: 0 1 auto;
align-self: center;
color: $golden;
border-bottom: 1px solid $golden;
&:hover,
&:focus,
&:active {
color: $white;
}
}
.intro__content > a:last-child {
border: none;
font-family: $font-secondary;
margin-top: .5em;
}
@-webkit-keyframes glow {
0%,
100% {
opacity: .9;
}
0% {
opacity: 0;
}
}
@keyframes glow {
0%,
100% {
opacity: .9;
}
50% {
opacity: 0;
}
}
@media screen and (max-width: $mq-large) {
.grid__card {
top: 55%;
left: 58%;
}
}
@media screen and (max-width: $mq-medium) {
.main__container {
overflow-y: scroll;
}
.grid__item {
flex-wrap: wrap;
}
.grid__item__image {
width: 45px;
height: 45px;
flex: 25% 0 0;
}
.f-Lemmy {
left: 75%;
}
.f-Mastodon {
top: 37%;
}
.intro {
display: none;
}
}
@media screen and (max-width: $mq-medium) and (orientation: portrait), screen and (max-width: $mq-small) {
.grid {
display: flex;
flex-wrap: wrap;
}
.grid__item {
position: static;
flex: 50% 0 0;
align-items: center;
margin: 0 auto;
display: flex;
}
.grid__item__image {
margin-left: 2em;
}
.grid__item__image,
.grid__item__title {
flex: initial;
}
.grid__card:before {
opacity: 1;
}
}
@media screen and (max-width: $mq-xsmall) {
.grid__item {
flex: 100% 0 0;
align-self: flex-end;
}
.grid__item__image {
width: 30px;
height: 30px;
}
.grid__item__title {
font-size: 1rem;
}
.grid__card {
display: none;
}
}
@media screen and (max-width: $mq-small) and (orientation: landscape) {
.source__toggle {
display: none;
}
}