Modrinth/components/layout/MFooter.vue
venashial 4d64df37f5
Versatile auth URLs & many UI fixes (#199)
* Make project cards right-align their last element

Spaces out elements in a `.project-card` using `justify-content: space-between;`.

Fixes modrinth/knossos#170

* Automatically set URL for auth redirect

* Make login button use base url or current origin

Allows the login button to work in dev environment

* Remove Axios base URL trailing slash

* Update authUrl() on dashboard to match default

* Remove 'code' query from URL on page load
Allow non-exact paths to highlight mod & dashboard tabs

Fixes modrinth/knossos#200

* Make page 5 button visible on page 4 (pagination)

Fixes modrinth/knossos#184

* Color links on legal pages

Fixes modrinth/knossos#166

* Set max notifications to 5 and ignore duplicates

Fixes modrinth/knossos#175

* Add space above report button when no user desc

Fixes modrinth/knossos#143

* Better text spacing from edge of mobile screen

Fixes modrinth/knossos#179

* Fix slanted bars in modrinth/knossos#57

* Fix checkbox grid and role label

Fixes modrinth/knossos#191

* Move mod 'settings' button to the far right

Fixes modrinth/knossos#138

* Abbreviate minutes to min. when time is too long

Not a perfect solution imo, but works for now

Fixes modrinth/knossos#193

* Fix mobile header margins & add breakpoints

Fixes modrinth/knossos#203

* Clean up nuxt config
Silence babel warning & styleResources

* Upgrade sass-loader to 10.1.1 and remove warning

* Remove added horizontal footer padding

https://github.com/modrinth/knossos/pull/199#discussion_r629011624

* Improve mobile header fix

* Fix up minor inconsistencies in mod header

* Remove hard coded date

* Cleans up pagination to be more intuitive

* Fixes member invite input on moble

* Fix login button when searching mods

* Improved mobile mod search

Consistently sized pagination buttons

Breakpoint for sort buttons on smaller screens

* Consistent link style on text-only pages

* Better 4k support

* Slightly better mobile project-card support

Shuffles categories under mod icon when there is room

* Animate homepage typewriter effect backwards

* Tiny commit to align mod icons in mod headers

* Make processing status include 'Under Review'

This can be later updated once the backend has a separate status

* Create vercel.json

* Update domain auto detection

* Test vercel NODE_ENV

* Remove console.log for debugging hosting services

* Make mobile first + fix shrinked text circle size

* Optimize SVG

* Change media queries to be more mobile first

* Remove `|| window.location.origin`

* re-deploy vercel

* Change "Processing" message to "Under review"
2021-05-27 09:27:13 -07:00

133 lines
2.5 KiB
Vue

<template>
<footer :class="{ centered, padded, hideBig, hideSmall }">
<span>
Modrinth is open source software. You may view the source code at
<a target="_blank" href="https://github.com/modrinth">our GitHub page</a>.
</span>
<ul>
<li>
<a @click="changeTheme">
<span v-if="$colorMode.value === 'light'">Switch to Dark Mode</span>
<span v-else>Switch to Light Mode</span>
</a>
</li>
</ul>
<ul>
<li>
<nuxt-link to="/legal/terms">Terms</nuxt-link>
</li>
<li>
<nuxt-link to="/legal/privacy">Privacy</nuxt-link>
</li>
<li>
<nuxt-link to="/about">About</nuxt-link>
</li>
</ul>
<ul>
<li>
<a target="_blank" href="https://blog.modrinth.com">Blog</a>
</li>
<li>
<a target="_blank" href="https://discord.gg/gFRbNQ2">Discord</a>
</li>
<li>
<a target="_blank" href="https://twitter.com/modrinth">Twitter</a>
</li>
</ul>
<ul>
<li>
<nuxt-link to="/dashboard/privacy">Set privacy preferences</nuxt-link>
</li>
</ul>
<span> © Guavy LLC </span><br />
<span v-if="version !== 'unknown'">Version: {{ version }}</span>
</footer>
</template>
<script>
export default {
props: {
version: {
type: String,
default: process.env.version || 'unknown',
},
centered: {
type: Boolean,
default: false,
},
padded: {
type: Boolean,
default: false,
},
hideSmall: {
type: Boolean,
default: false,
},
hideBig: {
type: Boolean,
default: false,
},
},
methods: {
changeTheme() {
this.$colorMode.preference =
this.$colorMode.value === 'dark' ? 'light' : 'dark'
},
},
}
</script>
<style lang="scss" scoped>
.centered {
align-items: center;
}
.padded {
padding: 2rem 1rem;
}
footer {
padding: 2rem 0;
display: flex;
flex-direction: column;
ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
li {
margin-bottom: var(--spacing-card-sm);
&:not(:last-child)::after {
content: '•';
padding: 0;
margin: 0 var(--spacing-card-sm);
}
}
}
& > *:not(:last-child) {
margin-bottom: var(--spacing-card-sm);
}
}
a {
text-decoration: underline;
cursor: pointer;
}
.hideSmall {
@media screen and (max-width: 1024px) {
display: none;
}
}
.hideBig {
@media screen and (min-width: 1024px) {
display: none;
}
}
</style>