Initial commit: OAuth IAM Laravel application
Laravel-based OAuth/IAM service with Passport, Vue 3 frontend, and Docker Compose setup for local and production deployment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
130
resources/scss/components/_auth-card.scss
Normal file
130
resources/scss/components/_auth-card.scss
Normal file
@@ -0,0 +1,130 @@
|
||||
@use '../abstracts/variables' as *;
|
||||
|
||||
.auth-page {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
padding: 0 $space-4;
|
||||
background: var(--color-page-bg);
|
||||
}
|
||||
|
||||
.auth-page__glow {
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: -8rem;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
height: 20rem;
|
||||
width: 36rem;
|
||||
border-radius: $radius-full;
|
||||
background: var(--gradient-glow);
|
||||
filter: blur(64px);
|
||||
}
|
||||
|
||||
.auth-card {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: $auth-card-width;
|
||||
border-radius: $radius-2xl;
|
||||
border: 1px solid var(--color-border);
|
||||
background: var(--color-surface);
|
||||
padding: $space-8;
|
||||
box-shadow: var(--shadow-elevated);
|
||||
}
|
||||
|
||||
.auth-card--wide {
|
||||
max-width: 28rem;
|
||||
}
|
||||
|
||||
.auth-card__logo {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
height: 2.25rem;
|
||||
width: 2.25rem;
|
||||
border-radius: $radius-lg;
|
||||
background: var(--gradient-accent);
|
||||
color: #fff;
|
||||
font-size: $font-xs;
|
||||
font-weight: 700;
|
||||
box-shadow: 0 1px 2px 0 rgb(79 70 229 / 20%);
|
||||
}
|
||||
|
||||
.auth-card__title {
|
||||
margin-top: $space-4;
|
||||
font-size: $font-xl;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.01em;
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
.auth-card__subtitle {
|
||||
margin-top: $space-1;
|
||||
font-size: $font-sm;
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
.auth-card__form {
|
||||
margin-top: $space-6;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $space-4;
|
||||
}
|
||||
|
||||
.auth-card__footer {
|
||||
margin-top: $space-5;
|
||||
text-align: center;
|
||||
font-size: $font-sm;
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
.auth-card__banner {
|
||||
margin-top: $space-4;
|
||||
border-radius: $radius-xl;
|
||||
border: 1px solid var(--color-border);
|
||||
background: var(--color-surface-muted);
|
||||
padding: $space-3;
|
||||
font-size: $font-sm;
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
.auth-card__hint {
|
||||
margin-top: $space-2;
|
||||
text-align: center;
|
||||
font-size: $font-xs;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
.auth-card__scopes {
|
||||
margin-top: $space-4;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $space-2;
|
||||
border-radius: $radius-xl;
|
||||
border: 1px solid var(--color-border);
|
||||
background: var(--color-surface-muted);
|
||||
padding: $space-3;
|
||||
}
|
||||
|
||||
.auth-card__scope {
|
||||
display: flex;
|
||||
gap: $space-2;
|
||||
font-size: $font-sm;
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
.auth-card__scope-check {
|
||||
color: var(--color-accent-strong);
|
||||
}
|
||||
|
||||
.auth-card__actions {
|
||||
margin-top: $space-6;
|
||||
display: flex;
|
||||
gap: $space-3;
|
||||
|
||||
form {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user