Files
jiapuapp/components/auth/PageShell.vue
T

99 lines
2.2 KiB
Vue

<template>
<view class="auth-shell">
<view class="auth-shell__header">
<image
class="auth-shell__header-image"
src="/static/assets/modules/auth/opaque/auth-header.png"
mode="widthFix"
/>
<view class="auth-shell__brand-lockup">
<image
class="auth-shell__seal"
src="/static/assets/foundation/transparent/brand-seal.png"
mode="aspectFit"
/>
<text class="auth-shell__project-name">代代相传</text>
</view>
</view>
<view class="auth-shell__paper"><slot /></view>
<slot name="overlay" />
</view>
</template>
<style scoped lang="scss">
.auth-shell {
display: flex;
flex-direction: column;
box-sizing: border-box;
width: 100%;
min-height: var(--app-viewport-height);
overflow-x: hidden;
background: #940400;
color: #493323;
}
.auth-shell__header {
position: relative;
flex: 0 0 auto;
box-sizing: border-box;
width: 100%;
height: calc(var(--app-safe-top) + min(36.5vw, 175px));
overflow: hidden;
padding-top: var(--app-safe-top);
background: #940400;
}
.auth-shell__header-image {
display: block;
width: 100%;
height: auto;
pointer-events: none;
}
.auth-shell__brand-lockup {
position: absolute;
top: calc(var(--app-safe-top) + clamp(46px, 11.5vw, 58px));
left: 50%;
display: flex;
align-items: center;
gap: 12rpx;
transform: translateX(-50%);
white-space: nowrap;
}
.auth-shell__seal {
position: static;
width: clamp(56px, 17vw, 78px);
height: clamp(67px, 20.4vw, 94px);
pointer-events: none;
}
.auth-shell__paper {
display: flex;
flex: 1;
box-sizing: border-box;
width: 100%;
padding-bottom: var(--app-safe-bottom);
background-color: #f7f0e5;
background-image:
url("/static/assets/modules/auth/opaque/sign-in-backdrop.png"),
url("/static/assets/foundation/opaque/auth-page-paper.jpg");
background-position: center calc(-48.18vw), center top;
background-size: 100% auto, 100% auto;
background-repeat: no-repeat, repeat-y;
}
.auth-shell__project-name {
color: #f8dfa6;
font-family: "STKaiti", "KaiTi", serif;
font-size: clamp(14px, 24rpx, 17px);
font-weight: 700;
letter-spacing: 4rpx;
line-height: 1;
white-space: nowrap;
}
</style>