|
@@ -2,26 +2,239 @@
|
|
<div>
|
|
<div>
|
|
<metadata title="Home" />
|
|
<metadata title="Home" />
|
|
<div class="app">
|
|
<div class="app">
|
|
- <main-header />
|
|
|
|
- <div class="group">
|
|
|
|
|
|
+ <main-header
|
|
|
|
+ :hide-logo="true"
|
|
|
|
+ :transparent="true"
|
|
|
|
+ :hide-logged-out="true"
|
|
|
|
+ />
|
|
|
|
+ <div class="header" :class="{ loggedIn }">
|
|
|
|
+ <img
|
|
|
|
+ class="background"
|
|
|
|
+ src="/assets/homebg.jpeg"
|
|
|
|
+ />
|
|
|
|
+ <div class="overlay"></div>
|
|
|
|
+ <div class="content-container">
|
|
|
|
+ <div class="content">
|
|
|
|
+ <img
|
|
|
|
+ class="logo"
|
|
|
|
+ src="/assets/white_wordmark.png"
|
|
|
|
+ :alt="`${this.siteName}` || `Musare`"
|
|
|
|
+ />
|
|
|
|
+ <div v-if="!loggedIn" class="buttons">
|
|
|
|
+ <button
|
|
|
|
+ class="button login"
|
|
|
|
+ @click="
|
|
|
|
+ openModal({
|
|
|
|
+ sector: 'header',
|
|
|
|
+ modal: 'login'
|
|
|
|
+ })
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ Login
|
|
|
|
+ </button>
|
|
|
|
+ <button
|
|
|
|
+ class="button register"
|
|
|
|
+ @click="
|
|
|
|
+ openModal({
|
|
|
|
+ sector: 'header',
|
|
|
|
+ modal: 'register'
|
|
|
|
+ })
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ Register
|
|
|
|
+ </button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="favoriteStations.length > 0" class="group">
|
|
<div class="group-title">
|
|
<div class="group-title">
|
|
<div>
|
|
<div>
|
|
- <h1>Stations</h1>
|
|
|
|
|
|
+ <h2>My Favorites</h2>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <router-link
|
|
|
|
+ v-for="(station, index) in favoriteStations"
|
|
|
|
+ :key="index"
|
|
|
|
+ :to="{
|
|
|
|
+ name: 'station',
|
|
|
|
+ params: { id: station.name }
|
|
|
|
+ }"
|
|
|
|
+ class="card station-card"
|
|
|
|
+ :class="{
|
|
|
|
+ isPrivate: station.privacy === 'private',
|
|
|
|
+ isMine: isOwner(station)
|
|
|
|
+ }"
|
|
|
|
+ :style="'--station-theme: ' + station.themeCode"
|
|
|
|
+ >
|
|
|
|
+ <div class="card-image">
|
|
|
|
+ <figure class="image is-square">
|
|
|
|
+ <div
|
|
|
|
+ v-if="station.currentSong.ytThumbnail"
|
|
|
|
+ class="ytThumbnailBg"
|
|
|
|
+ :style="{
|
|
|
|
+ 'background-image':
|
|
|
|
+ 'url(' +
|
|
|
|
+ station.currentSong.ytThumbnail +
|
|
|
|
+ ')'
|
|
|
|
+ }"
|
|
|
|
+ ></div>
|
|
|
|
+ <img
|
|
|
|
+ v-if="station.currentSong.ytThumbnail"
|
|
|
|
+ :src="station.currentSong.ytThumbnail"
|
|
|
|
+ onerror="this.src='/assets/notes-transparent.png'"
|
|
|
|
+ />
|
|
|
|
+ <img
|
|
|
|
+ v-else
|
|
|
|
+ :src="station.currentSong.thumbnail"
|
|
|
|
+ onerror="this.src='/assets/notes-transparent.png'"
|
|
|
|
+ />
|
|
|
|
+ </figure>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="card-content">
|
|
|
|
+ <div class="media">
|
|
|
|
+ <div class="media-left displayName">
|
|
|
|
+ <i
|
|
|
|
+ v-if="loggedIn && !station.isFavorited"
|
|
|
|
+ @click.prevent="favoriteStation(station)"
|
|
|
|
+ class="favorite material-icons"
|
|
|
|
+ >star_border</i
|
|
|
|
+ >
|
|
|
|
+ <i
|
|
|
|
+ v-if="loggedIn && station.isFavorited"
|
|
|
|
+ @click.prevent="unfavoriteStation(station)"
|
|
|
|
+ class="favorite material-icons"
|
|
|
|
+ >star</i
|
|
|
|
+ >
|
|
|
|
+ <h5>{{ station.displayName }}</h5>
|
|
|
|
+ <i
|
|
|
|
+ v-if="station.type === 'official'"
|
|
|
|
+ class="material-icons verified-station"
|
|
|
|
+ title="Verified station"
|
|
|
|
+ >
|
|
|
|
+ check_circle
|
|
|
|
+ </i>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="content">
|
|
|
|
+ {{ station.description }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="under-content">
|
|
|
|
+ <p class="hostedBy">
|
|
|
|
+ Hosted by
|
|
|
|
+ <span class="host">
|
|
|
|
+ <span
|
|
|
|
+ v-if="station.type === 'official'"
|
|
|
|
+ title="Musare"
|
|
|
|
+ >Musare</span
|
|
|
|
+ >
|
|
|
|
+ <user-id-to-username
|
|
|
|
+ v-else
|
|
|
|
+ :user-id="station.owner"
|
|
|
|
+ :link="true"
|
|
|
|
+ />
|
|
|
|
+ </span>
|
|
|
|
+ </p>
|
|
|
|
+ <div class="icons">
|
|
|
|
+ <i
|
|
|
|
+ v-if="
|
|
|
|
+ station.type === 'community' &&
|
|
|
|
+ isOwner(station)
|
|
|
|
+ "
|
|
|
|
+ class="homeIcon material-icons"
|
|
|
|
+ title="This is your station."
|
|
|
|
+ >home</i
|
|
|
|
+ >
|
|
|
|
+ <i
|
|
|
|
+ v-if="station.privacy === 'private'"
|
|
|
|
+ class="privateIcon material-icons"
|
|
|
|
+ title="This station is not visible to other users."
|
|
|
|
+ >lock</i
|
|
|
|
+ >
|
|
|
|
+ <i
|
|
|
|
+ v-if="station.privacy === 'unlisted'"
|
|
|
|
+ class="unlistedIcon material-icons"
|
|
|
|
+ title="Unlisted Station"
|
|
|
|
+ >link</i
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <a
|
|
|
|
- v-if="loggedIn"
|
|
|
|
- href="#"
|
|
|
|
- @click="
|
|
|
|
- openModal({
|
|
|
|
- sector: 'home',
|
|
|
|
- modal: 'createCommunityStation'
|
|
|
|
- })
|
|
|
|
- "
|
|
|
|
- ><i class="material-icons community-button"
|
|
|
|
- >add_circle_outline</i
|
|
|
|
|
|
+ <div class="bottomBar">
|
|
|
|
+ <i
|
|
|
|
+ v-if="station.paused && station.currentSong.title"
|
|
|
|
+ class="material-icons"
|
|
|
|
+ title="Station Paused"
|
|
|
|
+ >pause</i
|
|
|
|
+ >
|
|
|
|
+ <i
|
|
|
|
+ v-else-if="station.currentSong.title"
|
|
|
|
+ class="material-icons"
|
|
|
|
+ >music_note</i
|
|
>
|
|
>
|
|
- </a>
|
|
|
|
|
|
+ <i v-else class="material-icons">music_off</i>
|
|
|
|
+ <span
|
|
|
|
+ v-if="station.currentSong.title"
|
|
|
|
+ class="songTitle"
|
|
|
|
+ :title="
|
|
|
|
+ station.currentSong.artists.length > 0
|
|
|
|
+ ? 'Now Playing: ' +
|
|
|
|
+ station.currentSong.title +
|
|
|
|
+ ' by ' +
|
|
|
|
+ station.currentSong.artists.join(',')
|
|
|
|
+ : 'Now Playing: ' +
|
|
|
|
+ station.currentSong.title
|
|
|
|
+ "
|
|
|
|
+ >{{ station.currentSong.title }}
|
|
|
|
+ {{
|
|
|
|
+ station.currentSong.artists.length > 0
|
|
|
|
+ ? " by " +
|
|
|
|
+ station.currentSong.artists.join(",")
|
|
|
|
+ : ""
|
|
|
|
+ }}</span
|
|
|
|
+ >
|
|
|
|
+ <span v-else class="songTitle">No Songs Playing</span>
|
|
|
|
+ </div>
|
|
|
|
+ </router-link>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="group bottom">
|
|
|
|
+ <div class="group-title">
|
|
|
|
+ <div>
|
|
|
|
+ <h1>Stations</h1>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <a
|
|
|
|
+ v-if="loggedIn"
|
|
|
|
+ @click="
|
|
|
|
+ openModal({
|
|
|
|
+ sector: 'home',
|
|
|
|
+ modal: 'createCommunityStation'
|
|
|
|
+ })
|
|
|
|
+ "
|
|
|
|
+ class="card station-card createStation"
|
|
|
|
+ :style="'--station-theme: rgb(2, 166, 242)'"
|
|
|
|
+ >
|
|
|
|
+ <div class="card-image">
|
|
|
|
+ <figure class="image is-square">
|
|
|
|
+ <i class="material-icons">radio</i>
|
|
|
|
+ <!-- <img src="/assets/notes-transparent.png" /> -->
|
|
|
|
+ </figure>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="card-content">
|
|
|
|
+ <div class="media">
|
|
|
|
+ <div class="media-left displayName">
|
|
|
|
+ <h5>Create Station</h5>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="content">
|
|
|
|
+ Click here to create your own station!
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="bottomBar"></div>
|
|
|
|
+ </a>
|
|
|
|
+
|
|
<router-link
|
|
<router-link
|
|
v-for="(station, index) in filteredStations"
|
|
v-for="(station, index) in filteredStations"
|
|
:key="index"
|
|
:key="index"
|
|
@@ -200,7 +413,8 @@ export default {
|
|
key: ""
|
|
key: ""
|
|
},
|
|
},
|
|
stations: [],
|
|
stations: [],
|
|
- searchQuery: ""
|
|
|
|
|
|
+ searchQuery: "",
|
|
|
|
+ siteName: "Musare"
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -220,7 +434,6 @@ export default {
|
|
)
|
|
)
|
|
.sort(
|
|
.sort(
|
|
(a, b) =>
|
|
(a, b) =>
|
|
- b.isFavorited - a.isFavorited ||
|
|
|
|
this.isOwner(b) - this.isOwner(a) ||
|
|
this.isOwner(b) - this.isOwner(a) ||
|
|
this.isPlaying(b) - this.isPlaying(a) ||
|
|
this.isPlaying(b) - this.isPlaying(a) ||
|
|
a.paused - b.paused ||
|
|
a.paused - b.paused ||
|
|
@@ -228,9 +441,18 @@ export default {
|
|
privacyOrder.indexOf(b.privacy) ||
|
|
privacyOrder.indexOf(b.privacy) ||
|
|
b.userCount - a.userCount
|
|
b.userCount - a.userCount
|
|
);
|
|
);
|
|
|
|
+ },
|
|
|
|
+ favoriteStations() {
|
|
|
|
+ return this.filteredStations.filter(
|
|
|
|
+ station => station.isFavorited === true
|
|
|
|
+ );
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
|
|
+ lofig.get("siteSettings.siteName").then(siteName => {
|
|
|
|
+ this.siteName = siteName;
|
|
|
|
+ });
|
|
|
|
+
|
|
io.getSocket(socket => {
|
|
io.getSocket(socket => {
|
|
this.socket = socket;
|
|
this.socket = socket;
|
|
if (this.socket.connected) this.init();
|
|
if (this.socket.connected) this.init();
|
|
@@ -488,6 +710,15 @@ html {
|
|
}
|
|
}
|
|
|
|
|
|
.night-mode {
|
|
.night-mode {
|
|
|
|
+ .header .overlay {
|
|
|
|
+ background: linear-gradient(
|
|
|
|
+ 180deg,
|
|
|
|
+ rgba(34, 34, 34, 0.8) 0%,
|
|
|
|
+ rgba(34, 34, 34, 0.95) 31.25%,
|
|
|
|
+ rgba(34, 34, 34, 0.9) 54.17%,
|
|
|
|
+ rgba(34, 34, 34, 0.8) 100%
|
|
|
|
+ );
|
|
|
|
+ }
|
|
.card,
|
|
.card,
|
|
.card-content,
|
|
.card-content,
|
|
.card-content div {
|
|
.card-content div {
|
|
@@ -526,8 +757,109 @@ html {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+.header {
|
|
|
|
+ display: flex;
|
|
|
|
+ height: 35vh;
|
|
|
|
+ margin-top: -64px;
|
|
|
|
+ border-radius: 0% 0% 33% 33% / 0% 0% 7% 7%;
|
|
|
|
+
|
|
|
|
+ img.background {
|
|
|
|
+ height: 35vh;
|
|
|
|
+ width: 100%;
|
|
|
|
+ object-fit: cover;
|
|
|
|
+ object-position: center;
|
|
|
|
+ filter: blur(1px);
|
|
|
|
+ border-radius: 0% 0% 33% 33% / 0% 0% 7% 7%;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ }
|
|
|
|
+ .overlay {
|
|
|
|
+ background: linear-gradient(
|
|
|
|
+ 180deg,
|
|
|
|
+ rgba(3, 169, 244, 0.8) 0%,
|
|
|
|
+ rgba(3, 169, 244, 0.95) 31.25%,
|
|
|
|
+ rgba(3, 169, 244, 0.9) 54.17%,
|
|
|
|
+ rgba(3, 169, 244, 0.8) 100%
|
|
|
|
+ );
|
|
|
|
+ position: absolute;
|
|
|
|
+ height: 35vh;
|
|
|
|
+ width: 100%;
|
|
|
|
+ border-radius: 0% 0% 33% 33% / 0% 0% 7% 7%;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ }
|
|
|
|
+ .content-container {
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ margin-left: auto;
|
|
|
|
+ margin-right: auto;
|
|
|
|
+ text-align: center;
|
|
|
|
+ height: 100%;
|
|
|
|
+ height: 35vh;
|
|
|
|
+ .content {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 50%;
|
|
|
|
+ left: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ transform: translateY(-50%);
|
|
|
|
+ background-color: transparent !important;
|
|
|
|
+ img.logo {
|
|
|
|
+ max-height: 90px;
|
|
|
|
+ font-size: 40px;
|
|
|
|
+ color: white;
|
|
|
|
+ font-family: Pacifico, cursive;
|
|
|
|
+ }
|
|
|
|
+ .buttons {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ margin-top: 20px;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+
|
|
|
|
+ .login,
|
|
|
|
+ .register {
|
|
|
|
+ margin: 5px 10px;
|
|
|
|
+ padding: 10px 15px;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ font-size: 18px;
|
|
|
|
+ width: 100%;
|
|
|
|
+ max-width: 250px;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ border: 0;
|
|
|
|
+ height: inherit;
|
|
|
|
+ }
|
|
|
|
+ .login {
|
|
|
|
+ background: white;
|
|
|
|
+ color: $musare-blue;
|
|
|
|
+ }
|
|
|
|
+ .register {
|
|
|
|
+ background: $purple;
|
|
|
|
+ color: white;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ &.loggedIn {
|
|
|
|
+ height: 20vh;
|
|
|
|
+ .overlay,
|
|
|
|
+ .content-container,
|
|
|
|
+ img.background {
|
|
|
|
+ height: 20vh;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@media only screen and (max-width: 550px) {
|
|
|
|
+ .header {
|
|
|
|
+ height: 45vh;
|
|
|
|
+ .overlay,
|
|
|
|
+ .content-container,
|
|
|
|
+ img.background {
|
|
|
|
+ height: 45vh;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
.under-content {
|
|
.under-content {
|
|
- height: 25px;
|
|
|
|
|
|
+ height: 20px;
|
|
position: relative;
|
|
position: relative;
|
|
line-height: 1;
|
|
line-height: 1;
|
|
font-size: 24px;
|
|
font-size: 24px;
|
|
@@ -606,37 +938,44 @@ html {
|
|
|
|
|
|
.station-card {
|
|
.station-card {
|
|
display: inline-flex;
|
|
display: inline-flex;
|
|
- flex-direction: column;
|
|
|
|
|
|
+ flex-direction: row;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
margin: 10px;
|
|
margin: 10px;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
- height: 480px;
|
|
|
|
|
|
+ height: 150px;
|
|
|
|
+ width: calc(100% - 30px);
|
|
|
|
+ max-width: 400px;
|
|
|
|
+ flex-wrap: wrap;
|
|
border-radius: 5px;
|
|
border-radius: 5px;
|
|
box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
|
|
box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
|
|
transition: all ease-in-out 0.2s;
|
|
transition: all ease-in-out 0.2s;
|
|
|
|
|
|
.card-content {
|
|
.card-content {
|
|
- padding: 10px 15px;
|
|
|
|
|
|
+ padding: 10px 10px 10px 15px;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ flex-grow: 1;
|
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
|
|
|
.media {
|
|
.media {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
- margin-bottom: 5px;
|
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
|
.displayName {
|
|
.displayName {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
- width: 80%;
|
|
|
|
|
|
+ width: 100%;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
text-overflow: ellipsis;
|
|
display: flex;
|
|
display: flex;
|
|
line-height: 30px;
|
|
line-height: 30px;
|
|
max-height: 30px;
|
|
max-height: 30px;
|
|
.favorite {
|
|
.favorite {
|
|
- position: relative;
|
|
|
|
- padding-right: 5px;
|
|
|
|
|
|
+ position: absolute;
|
|
color: $yellow;
|
|
color: $yellow;
|
|
- top: -1px;
|
|
|
|
|
|
+ right: 10px;
|
|
|
|
+ top: 10px;
|
|
font-size: 28px;
|
|
font-size: 28px;
|
|
}
|
|
}
|
|
h5 {
|
|
h5 {
|
|
@@ -649,6 +988,7 @@ html {
|
|
text-overflow: ellipsis;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
|
|
+ max-width: 200px;
|
|
}
|
|
}
|
|
|
|
|
|
i {
|
|
i {
|
|
@@ -669,7 +1009,7 @@ html {
|
|
-webkit-box-orient: vertical;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 3;
|
|
-webkit-line-clamp: 3;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
- height: 60px;
|
|
|
|
|
|
+ flex-grow: 1;
|
|
text-align: left;
|
|
text-align: left;
|
|
word-wrap: break-word;
|
|
word-wrap: break-word;
|
|
margin-bottom: 0;
|
|
margin-bottom: 0;
|
|
@@ -677,6 +1017,7 @@ html {
|
|
}
|
|
}
|
|
|
|
|
|
.card-image {
|
|
.card-image {
|
|
|
|
+ width: 120px;
|
|
.image {
|
|
.image {
|
|
box-shadow: 1px 0 3px rgba(100, 100, 100, 0.3);
|
|
box-shadow: 1px 0 3px rgba(100, 100, 100, 0.3);
|
|
.ytThumbnailBg {
|
|
.ytThumbnailBg {
|
|
@@ -691,7 +1032,7 @@ html {
|
|
}
|
|
}
|
|
img {
|
|
img {
|
|
height: auto;
|
|
height: auto;
|
|
- width: 100%;
|
|
|
|
|
|
+ width: 120px;
|
|
top: 0;
|
|
top: 0;
|
|
margin-top: auto;
|
|
margin-top: auto;
|
|
margin-bottom: auto;
|
|
margin-bottom: auto;
|
|
@@ -705,7 +1046,7 @@ html {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
background: var(--station-theme);
|
|
background: var(--station-theme);
|
|
- box-shadow: inset 0px 2px 4px rgba(100, 100, 100, 0.3);
|
|
|
|
|
|
+ // box-shadow: inset 0px 2px 4px rgba(100, 100, 100, 0.3);
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 30px;
|
|
height: 30px;
|
|
line-height: 30px;
|
|
line-height: 30px;
|
|
@@ -713,6 +1054,7 @@ html {
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
padding: 0 5px;
|
|
padding: 0 5px;
|
|
|
|
+ flex-basis: 100%;
|
|
|
|
|
|
i.material-icons {
|
|
i.material-icons {
|
|
vertical-align: middle;
|
|
vertical-align: middle;
|
|
@@ -731,6 +1073,31 @@ html {
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ &.createStation {
|
|
|
|
+ .card-image .image.is-square .material-icons {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 25px;
|
|
|
|
+ bottom: 25px;
|
|
|
|
+ left: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ text-align: center;
|
|
|
|
+ font-size: 70px;
|
|
|
|
+ color: var(--station-theme);
|
|
|
|
+ }
|
|
|
|
+ .card-content {
|
|
|
|
+ .media {
|
|
|
|
+ margin-top: auto;
|
|
|
|
+ .displayName h5 {
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .content {
|
|
|
|
+ flex-grow: unset;
|
|
|
|
+ margin-bottom: auto;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
.station-card:hover {
|
|
.station-card:hover {
|
|
@@ -773,9 +1140,7 @@ html {
|
|
.group {
|
|
.group {
|
|
text-align: center;
|
|
text-align: center;
|
|
width: 100%;
|
|
width: 100%;
|
|
- margin: 40px 0 0 0;
|
|
|
|
- padding-bottom: 240px;
|
|
|
|
-
|
|
|
|
|
|
+ margin: 10px 0;
|
|
.group-title {
|
|
.group-title {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
@@ -784,6 +1149,12 @@ html {
|
|
|
|
|
|
h1 {
|
|
h1 {
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
|
+ font-size: 45px;
|
|
|
|
+ margin: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ h2 {
|
|
|
|
+ font-size: 35px;
|
|
margin: 0;
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -792,5 +1163,8 @@ html {
|
|
margin-left: 8px;
|
|
margin-left: 8px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ &.bottom {
|
|
|
|
+ margin-bottom: 40px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|