refacting: delete cloud comp
This commit is contained in:
@@ -21,9 +21,6 @@
|
||||
<el-icon v-if="index == 4" :size="20">
|
||||
<Calendar />
|
||||
</el-icon>
|
||||
<el-icon v-if="index == 5" :size="20">
|
||||
<MostlyCloudy />
|
||||
</el-icon>
|
||||
<el-icon v-if="index == 10" :size="20">
|
||||
<Setting />
|
||||
</el-icon>
|
||||
|
||||
+478
-41
@@ -1,22 +1,73 @@
|
||||
<template>
|
||||
<div class="ttt">
|
||||
<div class="yuliu" :style="style">
|
||||
<!-- 动态光斑背景 -->
|
||||
<div class="bg-orbs">
|
||||
<span class="orb orb-1"></span>
|
||||
<span class="orb orb-2"></span>
|
||||
<span class="orb orb-3"></span>
|
||||
</div>
|
||||
<el-card class="box-card">
|
||||
|
||||
<el-form>
|
||||
<div class="title-container">
|
||||
<h3>秘密基地</h3>
|
||||
<div class="content">
|
||||
<!-- 玻璃卡片 -->
|
||||
<div class="glass-card">
|
||||
<div class="brand">
|
||||
<span class="brand-mark">✦</span>
|
||||
<h1 class="brand-name">{{ SITE_NAME }}</h1>
|
||||
<p class="brand-sub">Secret Base · 秘密基地</p>
|
||||
</div>
|
||||
<div>
|
||||
<el-button type="primary" size="large" @click="handleOidcLogin">统一登录</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
------------------------------------------------------------
|
||||
<div>
|
||||
微信/支付宝
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<el-button
|
||||
class="login-btn"
|
||||
size="large"
|
||||
@click="handleOidcLogin"
|
||||
>
|
||||
<span class="login-btn-content">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12 2L3 7v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-9-5zm0 2.18l7 3.89v4.93c0 4.43-3.07 8.58-7 9.71-3.93-1.13-7-5.28-7-9.71V8.07l7-3.89z"/>
|
||||
<path d="M12 11h-2v2h-2v2h2v2h2v-2h2v-2h-2z"/>
|
||||
</svg>
|
||||
Login
|
||||
</span>
|
||||
</el-button>
|
||||
|
||||
<!-- <p class="login-hint">
|
||||
通过 <a href="https://goauthentik.io" target="_blank">Authentik</a> OIDC 安全登录
|
||||
</p> -->
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<!-- 右侧关联链接 -->
|
||||
<div class="side-links">
|
||||
<a
|
||||
v-for="link in sideLinks"
|
||||
:key="link.name"
|
||||
:href="link.url"
|
||||
target="_blank"
|
||||
class="side-link"
|
||||
:title="link.name"
|
||||
>
|
||||
<span class="side-link-icon" v-html="link.icon"></span>
|
||||
<span class="side-link-name">{{ link.name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 左侧外部网站链接 -->
|
||||
<div class="external-links">
|
||||
<a
|
||||
v-for="link in externalLinks"
|
||||
:key="link.name"
|
||||
:href="link.url"
|
||||
target="_blank"
|
||||
class="external-link"
|
||||
:title="link.name"
|
||||
>
|
||||
<span class="external-link-icon" v-html="link.icon"></span>
|
||||
<span class="external-link-name">{{ link.name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div class="footer-left">
|
||||
<span>{{ SITE_NAME }} {{ COPYRIGHT_TEXT }}</span>
|
||||
@@ -32,7 +83,6 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { reactive } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { SITE_NAME, COPYRIGHT_TEXT, ICP_NUMBER, ICP_QUERY_URL } from '@/const/site'
|
||||
|
||||
@@ -62,50 +112,430 @@ const openGithub = () => {
|
||||
window.open('https://github.com/simple321vip', '_blank')
|
||||
}
|
||||
|
||||
const style = reactive({} as any)
|
||||
style.width = window.innerWidth * 0.7 + 'px'
|
||||
/**
|
||||
* 右侧固定关联网站链接。改这里即可增删。
|
||||
* icon: 简单 inline SVG(24x24),用 currentColor 跟父元素文字色联动
|
||||
*/
|
||||
const sideLinks = [
|
||||
{
|
||||
name: 'Gitea',
|
||||
url: 'https://gitea.violin-work.online',
|
||||
// Gitea 标志性元素:圆形 + 三个肉垫(猫爪印)
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="14" r="6"/><ellipse cx="6" cy="8" rx="2" ry="2.5"/><ellipse cx="12" cy="5" rx="2" ry="2.5"/><ellipse cx="18" cy="8" rx="2" ry="2.5"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'Blog',
|
||||
url: 'https://www.violin-home.cn/blog',
|
||||
icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 10h10v2H7zm0 4h10v2H7z"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'Authentik',
|
||||
url: 'https://auth.violin-work.online',
|
||||
// Authentik 标志性元素:盾牌 + 钥匙孔
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.5a2 2 0 110 1 2 2 0 010-1zm-2.83 4.95L8 14l-1.17 2.45L4 18l2.83-1.55z"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'KubeSphere',
|
||||
url: 'https://k8s.violin-work.online',
|
||||
// KubeSphere 标志性元素:球体 + 经线纬线(地球网格)
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><ellipse cx="12" cy="12" rx="10" ry="4"/><ellipse cx="12" cy="12" rx="4" ry="10"/><line x1="2" y1="12" x2="22" y2="12"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'Viking (RAG)',
|
||||
url: 'https://viking.violin-work.online/',
|
||||
// Viking / 维京:维京头盔 + 翅膀,或简化为双翼头盔
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2L9 5H6v4l-3 2 3 1v3a6 6 0 0012 0v-3l3-1-3-2V5h-3l-3-3zm0 4a2 2 0 110 4 2 2 0 010-4z"/><path d="M3 11l-1 1 1 1zm18 0l1 1-1 1z"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'Nextcloud',
|
||||
url: 'https://cloud.violin-work.online/',
|
||||
// Nextcloud 标志性元素:三个圆环组成的"云"
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="7" cy="14" r="4"/><circle cx="14" cy="9" r="4"/><circle cx="18" cy="15" r="3"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'MinIO',
|
||||
url: 'https://minio.violin-work.online/',
|
||||
// MinIO 标志性元素:三层堆叠的小方块
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><rect x="3" y="14" width="18" height="6" rx="1"/><rect x="5" y="8" width="14" height="5" rx="1" opacity="0.7"/><rect x="7" y="3" width="10" height="4" rx="1" opacity="0.45"/></svg>'
|
||||
}
|
||||
] as const
|
||||
|
||||
/**
|
||||
* 左侧固定外部网站链接。
|
||||
*/
|
||||
const externalLinks = [
|
||||
{
|
||||
name: 'GitHub',
|
||||
url: 'https://github.com/simple321vip',
|
||||
icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.4 3-.405 1.02.005 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>'
|
||||
},
|
||||
{
|
||||
name: 'MiniMax',
|
||||
url: 'https://www.minimaxi.com/',
|
||||
// MiniMax 标志性元素:六角星 + 中心点(极小化极大概括)
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2l2.5 5.5L20 9l-4 4 1 6-5-3-5 3 1-6-4-4 5.5-1.5L12 2z"/></svg>'
|
||||
},
|
||||
{
|
||||
name: '百度',
|
||||
url: 'https://www.baidu.com/',
|
||||
// 百度:爪形脚印
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><ellipse cx="9" cy="11" rx="3.5" ry="5"/><ellipse cx="15" cy="11" rx="3.5" ry="5"/><circle cx="6" cy="5" r="1.5"/><circle cx="12" cy="3" r="1.5"/><circle cx="18" cy="5" r="1.5"/></svg>'
|
||||
},
|
||||
{
|
||||
name: '腾讯云',
|
||||
url: 'https://cloud.tencent.com/',
|
||||
// 腾讯云:云朵 + T 字标识
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M6 18a4 4 0 010-8 5 5 0 019.58-1.5A4 4 0 0118 18H6z"/><text x="12" y="16" font-size="8" font-weight="bold" text-anchor="middle" fill="#0f0c29">T</text></svg>'
|
||||
},
|
||||
{
|
||||
name: '菜鸟教程',
|
||||
url: 'https://www.runoob.com/',
|
||||
// 菜鸟教程:鸟的剪影(飞行)
|
||||
icon: '<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M22 4l-2 2-3-1-5 3-4-2-3 3 2 2 4-2 3 2 4-2 4 1 1-2-3-2 2-2zM2 14l4 4 6-1 4 2 2-1-3-3-4 1-3-3-4 1-2-1z"/></svg>'
|
||||
}
|
||||
] as const
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.text {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 18px 0;
|
||||
}
|
||||
|
||||
.ttt {
|
||||
/* flex column + min-height 100vh:footer 永远在视口底部,
|
||||
内容少时 footer 贴底,内容多时 footer 在内容之后但不漂 */
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
|
||||
}
|
||||
|
||||
.yuliu {
|
||||
/* width: 600px; */
|
||||
height: 300px;
|
||||
float: left;
|
||||
/* background-color: antiquewhite; */
|
||||
background: url('../../assets/have_a_nice_day.jpeg') center top no-repeat;
|
||||
background-size: cover;
|
||||
/* ============ 动态光斑背景 ============ */
|
||||
.bg-orbs {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
/* 中间内容区撑开剩余空间 */
|
||||
.orb {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
filter: blur(80px);
|
||||
opacity: 0.5;
|
||||
animation: float 20s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.orb-1 {
|
||||
width: 500px;
|
||||
height: 500px;
|
||||
background: radial-gradient(circle, #667eea 0%, transparent 70%);
|
||||
top: -150px;
|
||||
left: -100px;
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
.orb-2 {
|
||||
width: 600px;
|
||||
height: 600px;
|
||||
background: radial-gradient(circle, #f093fb 0%, transparent 70%);
|
||||
bottom: -200px;
|
||||
right: -150px;
|
||||
animation-delay: -7s;
|
||||
}
|
||||
|
||||
.orb-3 {
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
background: radial-gradient(circle, #4facfe 0%, transparent 70%);
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
animation-delay: -14s;
|
||||
}
|
||||
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translate(0, 0) scale(1); }
|
||||
33% { transform: translate(50px, -30px) scale(1.1); }
|
||||
66% { transform: translate(-30px, 50px) scale(0.9); }
|
||||
}
|
||||
|
||||
/* ============ 内容区 ============ */
|
||||
.content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
/* ============ 玻璃卡片 ============ */
|
||||
.glass-card {
|
||||
width: 100%;
|
||||
max-width: 420px;
|
||||
padding: 56px 40px 48px;
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.12);
|
||||
border-radius: 20px;
|
||||
box-shadow:
|
||||
0 8px 32px rgba(0, 0, 0, 0.3),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.brand {
|
||||
text-align: center;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.brand-mark {
|
||||
display: inline-block;
|
||||
font-size: 32px;
|
||||
background: linear-gradient(135deg, #667eea 0%, #f093fb 100%);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
margin-bottom: 12px;
|
||||
animation: pulse 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 0.7; transform: scale(1); }
|
||||
50% { opacity: 1; transform: scale(1.1); }
|
||||
}
|
||||
|
||||
.brand-name {
|
||||
margin: 0 0 8px;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 1px;
|
||||
background: linear-gradient(135deg, #fff 0%, #b8c6db 100%);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.brand-sub {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
/* ============ 分隔线 ============ */
|
||||
.divider {
|
||||
height: 1px;
|
||||
background: linear-gradient(90deg,
|
||||
transparent 0%,
|
||||
rgba(255, 255, 255, 0.2) 50%,
|
||||
transparent 100%);
|
||||
margin: 24px 0 32px;
|
||||
}
|
||||
|
||||
/* ============ 登录按钮 ============ */
|
||||
.login-btn {
|
||||
width: 100%;
|
||||
height: 50px !important;
|
||||
border: none !important;
|
||||
border-radius: 12px !important;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
|
||||
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4) !important;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 25px rgba(102, 126, 234, 0.6) !important;
|
||||
}
|
||||
|
||||
.login-btn:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.login-btn-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 1px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.login-hint {
|
||||
margin: 20px 0 0;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
.login-hint a {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.login-hint a:hover {
|
||||
color: #fff;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
/* ============ 右侧固定关联链接 ============ */
|
||||
.side-links {
|
||||
position: fixed;
|
||||
right: 32px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.side-link {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.side-link:hover {
|
||||
background: rgba(102, 126, 234, 0.25);
|
||||
border-color: rgba(102, 126, 234, 0.6);
|
||||
color: #fff;
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
|
||||
}
|
||||
|
||||
.side-link-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* tooltip 显示名字 */
|
||||
.side-link-name {
|
||||
position: absolute;
|
||||
right: 56px;
|
||||
white-space: nowrap;
|
||||
padding: 6px 12px;
|
||||
border-radius: 6px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
opacity: 0;
|
||||
transform: translateX(10px);
|
||||
pointer-events: none;
|
||||
transition: all 0.25s ease;
|
||||
}
|
||||
|
||||
.side-link:hover .side-link-name {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
/* 移动端隐藏侧栏(屏幕太窄) */
|
||||
@media (max-width: 768px) {
|
||||
.side-links {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============ 左侧外部网站链接 ============ */
|
||||
.external-links {
|
||||
position: fixed;
|
||||
left: 32px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.external-link {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.external-link:hover {
|
||||
background: rgba(118, 75, 162, 0.25);
|
||||
border-color: rgba(240, 147, 251, 0.6);
|
||||
color: #fff;
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 4px 20px rgba(240, 147, 251, 0.4);
|
||||
}
|
||||
|
||||
.external-link-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* tooltip 在右侧(跟左侧链接方向相反) */
|
||||
.external-link-name {
|
||||
position: absolute;
|
||||
left: 56px;
|
||||
white-space: nowrap;
|
||||
padding: 6px 12px;
|
||||
border-radius: 6px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
opacity: 0;
|
||||
transform: translateX(-10px);
|
||||
pointer-events: none;
|
||||
transition: all 0.25s ease;
|
||||
}
|
||||
|
||||
.external-link:hover .external-link-name {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.external-links {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============ Footer ============ */
|
||||
.footer {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
flex: 0 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 12px 24px;
|
||||
border-top: 1px solid rgba(151, 151, 151, 0.2);
|
||||
font-size: 16px;
|
||||
color: #666;
|
||||
padding: 16px 32px;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.footer-left {
|
||||
@@ -120,20 +550,27 @@ style.width = window.innerWidth * 0.7 + 'px'
|
||||
}
|
||||
|
||||
.separator {
|
||||
color: #ccc;
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
.icp-link {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.icp-link:hover {
|
||||
color: #409eff;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
.github-icon {
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
opacity: 0.7;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
.github-icon:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user