Compare commits

..

1 Commits

Author SHA1 Message Date
Tim
18fde1052f chore: remove obsolete login styles 2025-09-01 13:14:55 +08:00
5 changed files with 175 additions and 186 deletions

View File

@@ -27,6 +27,16 @@
--code-highlight-background-color: rgb(241, 241, 241);
--login-background-color: rgb(248, 248, 248);
--login-background-color-hover: #e0e0e0;
--google-login-background-color: var(--login-background-color);
--google-login-background-color-hover: var(--login-background-color-hover);
--github-login-background-color: #000;
--github-login-background-color-hover: #333;
--discord-login-background-color: var(--login-background-color);
--discord-login-background-color-hover: var(--login-background-color-hover);
--twitter-login-background-color: var(--login-background-color);
--twitter-login-background-color-hover: var(--login-background-color-hover);
--telegram-login-background-color: var(--login-background-color);
--telegram-login-background-color-hover: var(--login-background-color-hover);
--text-color: rgb(70, 70, 70);
--blockquote-text-color: #6a737d;
--menu-width: 200px;
@@ -58,6 +68,16 @@
--code-highlight-background-color: #262b35;
--login-background-color: #575757;
--login-background-color-hover: #717171;
--google-login-background-color: var(--login-background-color);
--google-login-background-color-hover: var(--login-background-color-hover);
--github-login-background-color: #000;
--github-login-background-color-hover: #333;
--discord-login-background-color: var(--login-background-color);
--discord-login-background-color-hover: var(--login-background-color-hover);
--twitter-login-background-color: var(--login-background-color);
--twitter-login-background-color-hover: var(--login-background-color-hover);
--telegram-login-background-color: var(--login-background-color);
--telegram-login-background-color-hover: var(--login-background-color-hover);
--text-color: #eee;
--blockquote-text-color: #999;
--article-info-background-color: #747373;

View File

@@ -1,174 +0,0 @@
<template>
<div class="third-party-auth">
<div
v-for="provider in providers"
:key="provider.name"
class="third-party-button"
:class="provider.name"
@click="provider.action"
>
<img class="third-party-button-icon" :src="provider.icon" :alt="provider.alt" />
<div class="third-party-button-text">
{{ provider.label }}
</div>
</div>
</div>
</template>
<script setup>
import googleIcon from '~/assets/icons/google.svg'
import githubIcon from '~/assets/icons/github.svg'
import discordIcon from '~/assets/icons/discord.svg'
import twitterIcon from '~/assets/icons/twitter.svg'
import telegramIcon from '~/assets/icons/telegram.svg'
import { googleAuthorize } from '~/utils/google'
import { githubAuthorize } from '~/utils/github'
import { discordAuthorize } from '~/utils/discord'
import { twitterAuthorize } from '~/utils/twitter'
import { telegramAuthorize } from '~/utils/telegram'
const props = defineProps({
mode: {
type: String,
default: 'login',
},
inviteToken: {
type: String,
default: '',
},
})
const actionText = computed(() => (props.mode === 'signup' ? '注册' : '登录'))
const providers = computed(() => [
{
name: 'google',
icon: googleIcon,
action: () => googleAuthorize(props.inviteToken),
alt: 'Google Logo',
label: `Google ${actionText.value}`,
},
{
name: 'github',
icon: githubIcon,
action: () => githubAuthorize(props.inviteToken),
alt: 'GitHub Logo',
label: `GitHub ${actionText.value}`,
},
{
name: 'discord',
icon: discordIcon,
action: () => discordAuthorize(props.inviteToken),
alt: 'Discord Logo',
label: `Discord ${actionText.value}`,
},
{
name: 'twitter',
icon: twitterIcon,
action: () => twitterAuthorize(props.inviteToken),
alt: 'Twitter Logo',
label: `Twitter ${actionText.value}`,
},
{
name: 'telegram',
icon: telegramIcon,
action: () => telegramAuthorize(props.inviteToken),
alt: 'Telegram Logo',
label: `Telegram ${actionText.value}`,
},
])
</script>
<style scoped>
.third-party-auth {
margin-left: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 30%;
gap: 20px;
}
.third-party-button {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 10px 20px;
min-width: 150px;
background-color: var(--login-background-color);
border: 1px solid var(--normal-border-color);
border-radius: 10px;
cursor: pointer;
gap: 10px;
}
.third-party-button:hover {
background-color: var(--login-background-color-hover);
}
.third-party-button-icon {
width: 20px;
height: 20px;
}
.third-party-button-text {
font-size: 16px;
}
/* Provider specific classes for customization */
.third-party-button.google {
background-color: var(--google-bg, var(--login-background-color));
color: var(--google-color, inherit);
}
.third-party-button.google:hover {
background-color: var(--google-bg-hover, var(--login-background-color-hover));
}
.third-party-button.github {
background-color: var(--github-bg, var(--login-background-color));
color: var(--github-color, inherit);
}
.third-party-button.github:hover {
background-color: var(--github-bg-hover, var(--login-background-color-hover));
}
.third-party-button.discord {
background-color: var(--discord-bg, var(--login-background-color));
color: var(--discord-color, inherit);
}
.third-party-button.discord:hover {
background-color: var(--discord-bg-hover, var(--login-background-color-hover));
}
.third-party-button.twitter {
background-color: var(--twitter-bg, var(--login-background-color));
color: var(--twitter-color, inherit);
}
.third-party-button.twitter:hover {
background-color: var(--twitter-bg-hover, var(--login-background-color-hover));
}
.third-party-button.telegram {
background-color: var(--telegram-bg, var(--login-background-color));
color: var(--telegram-color, inherit);
}
.third-party-button.telegram:hover {
background-color: var(--telegram-bg-hover, var(--login-background-color-hover));
}
@media (max-width: 768px) {
.third-party-auth {
margin-top: 20px;
margin-left: 0px;
width: calc(100% - 40px);
gap: 10px;
}
.third-party-button {
width: calc(100% - 40px);
}
}
</style>

View File

@@ -0,0 +1,151 @@
<template>
<div class="third-party-auth">
<div v-for="p in providers" :key="p.name" :class="['auth-button', p.name]" @click="p.authorize">
<img class="auth-button-icon" :src="p.icon" :alt="p.alt" />
<div class="auth-button-text">{{ p.text }} {{ props.action }}</div>
</div>
</div>
</template>
<script setup>
import { googleAuthorize } from '~/utils/google'
import { githubAuthorize } from '~/utils/github'
import { discordAuthorize } from '~/utils/discord'
import { twitterAuthorize } from '~/utils/twitter'
import { telegramAuthorize } from '~/utils/telegram'
import googleIcon from '~/assets/icons/google.svg'
import githubIcon from '~/assets/icons/github.svg'
import discordIcon from '~/assets/icons/discord.svg'
import twitterIcon from '~/assets/icons/twitter.svg'
import telegramIcon from '~/assets/icons/telegram.svg'
const props = defineProps({
action: {
type: String,
default: '登录',
},
inviteToken: {
type: String,
default: '',
},
})
const providers = [
{
name: 'google',
icon: googleIcon,
alt: 'Google Logo',
text: 'Google',
authorize: () => googleAuthorize(props.inviteToken),
},
{
name: 'github',
icon: githubIcon,
alt: 'GitHub Logo',
text: 'GitHub',
authorize: () => githubAuthorize(props.inviteToken),
},
{
name: 'discord',
icon: discordIcon,
alt: 'Discord Logo',
text: 'Discord',
authorize: () => discordAuthorize(props.inviteToken),
},
{
name: 'twitter',
icon: twitterIcon,
alt: 'Twitter Logo',
text: 'Twitter',
authorize: () => twitterAuthorize(props.inviteToken),
},
{
name: 'telegram',
icon: telegramIcon,
alt: 'Telegram Logo',
text: 'Telegram',
authorize: () => telegramAuthorize(props.inviteToken),
},
]
</script>
<style scoped>
.third-party-auth {
margin-left: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 30%;
gap: 20px;
}
.auth-button {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 10px 20px;
border: 1px solid var(--normal-border-color);
border-radius: 10px;
cursor: pointer;
min-width: 150px;
gap: 10px;
background-color: var(--auth-bg);
}
.auth-button:hover {
background-color: var(--auth-bg-hover);
}
.auth-button-icon {
width: 20px;
height: 20px;
}
.auth-button-text {
font-size: 16px;
}
.auth-button.google {
--auth-bg: var(--google-login-background-color, var(--login-background-color));
--auth-bg-hover: var(--google-login-background-color-hover, var(--login-background-color-hover));
}
.auth-button.github {
--auth-bg: var(--github-login-background-color, var(--login-background-color));
--auth-bg-hover: var(--github-login-background-color-hover, var(--login-background-color-hover));
}
.auth-button.discord {
--auth-bg: var(--discord-login-background-color, var(--login-background-color));
--auth-bg-hover: var(--discord-login-background-color-hover, var(--login-background-color-hover));
}
.auth-button.twitter {
--auth-bg: var(--twitter-login-background-color, var(--login-background-color));
--auth-bg-hover: var(--twitter-login-background-color-hover, var(--login-background-color-hover));
}
.auth-button.telegram {
--auth-bg: var(--telegram-login-background-color, var(--login-background-color));
--auth-bg-hover: var(
--telegram-login-background-color-hover,
var(--login-background-color-hover)
);
}
@media (max-width: 768px) {
.third-party-auth {
margin-top: 20px;
margin-left: 0;
width: calc(100% - 40px);
gap: 10px;
}
.auth-button {
width: calc(100% - 40px);
}
}
</style>

View File

@@ -34,7 +34,7 @@
</div>
</div>
<ThirdPartyAuth mode="login" />
<ThirdPartyAuthButtons action="登录" />
</div>
</template>
@@ -42,7 +42,7 @@
import { toast } from '~/main'
import { setToken, loadCurrentUser } from '~/utils/auth'
import BaseInput from '~/components/BaseInput.vue'
import ThirdPartyAuth from '~/components/ThirdPartyAuth.vue'
import ThirdPartyAuthButtons from '~/components/ThirdPartyAuthButtons.vue'
import { registerPush } from '~/utils/push'
const config = useRuntimeConfig()
const API_BASE_URL = config.public.apiBaseUrl
@@ -186,10 +186,6 @@ const submitLogin = async () => {
background-color: var(--primary-color-disabled);
}
.login-page-button-text {
font-size: 16px;
}
.login-page-button-secondary {
margin-top: 20px;
font-size: 16px;

View File

@@ -68,15 +68,15 @@
</div>
</div>
<ThirdPartyAuth mode="signup" :invite-token="inviteToken" />
<ThirdPartyAuthButtons action="注册" :invite-token="inviteToken" />
</div>
</template>
<script setup>
import BaseInput from '~/components/BaseInput.vue'
import { toast } from '~/main'
import ThirdPartyAuthButtons from '~/components/ThirdPartyAuthButtons.vue'
import { loadCurrentUser, setToken } from '~/utils/auth'
import ThirdPartyAuth from '~/components/ThirdPartyAuth.vue'
const route = useRoute()
const config = useRuntimeConfig()
@@ -297,10 +297,6 @@ const verifyCode = async () => {
background-color: var(--primary-color-hover);
}
.signup-page-button-text {
font-size: 16px;
}
.signup-page-button-secondary {
margin-top: 20px;
font-size: 16px;