portal: polish onboarding CTA

This commit is contained in:
Brad Stein 2026-01-05 02:28:15 -03:00
parent a261056961
commit 60b8f840f8
4 changed files with 42 additions and 6 deletions

View File

@ -1,6 +1,6 @@
# bstein-dev-home # bstein-dev-home
Portfolio + lab status site with a Flask backend and Vue frontend. Atlas portal + lab status site with a Flask backend and Vue frontend.
- Jenkins pipeline builds arm64 Docker images (`bstein-dev-home-frontend`, `bstein-dev-home-backend`) and pushes to `registry.bstein.dev/bstein`. - Jenkins pipeline builds arm64 Docker images (`bstein-dev-home-frontend`, `bstein-dev-home-backend`) and pushes to `registry.bstein.dev/bstein`.
- Flux deploys to `bstein.dev` with Traefik routing `/api` to the backend and the rest to the frontend. - Flux deploys to `bstein.dev` with Traefik routing `/api` to the backend and the rest to the frontend.

View File

@ -1,11 +1,11 @@
{ {
"name": "bstein-portfolio", "name": "atlas-portal",
"version": "0.1.1", "version": "0.1.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bstein-portfolio", "name": "atlas-portal",
"version": "0.1.1", "version": "0.1.1",
"dependencies": { "dependencies": {
"axios": "^1.6.7", "axios": "^1.6.7",

View File

@ -1,5 +1,5 @@
{ {
"name": "bstein-portfolio", "name": "atlas-portal",
"version": "0.1.1", "version": "0.1.1",
"private": true, "private": true,
"type": "module", "type": "module",

View File

@ -135,6 +135,11 @@
v-if="onboardingUrl && (status === 'awaiting_onboarding' || status === 'ready')" v-if="onboardingUrl && (status === 'awaiting_onboarding' || status === 'ready')"
class="actions onboarding-actions" class="actions onboarding-actions"
> >
<div class="onboarding-copy">
<p class="muted" style="margin: 0;">
Your accounts are ready. Continue onboarding to finish setup.
</p>
</div>
<a class="primary onboarding-cta" :href="onboardingUrl">Continue onboarding</a> <a class="primary onboarding-cta" :href="onboardingUrl">Continue onboarding</a>
</div> </div>
</div> </div>
@ -432,13 +437,44 @@ h1 {
margin-top: 6px; margin-top: 6px;
} }
button.primary,
a.primary {
background: linear-gradient(90deg, #4f8bff, #7dd0ff);
color: #0b1222;
padding: 10px 14px;
border: none;
border-radius: 10px;
cursor: pointer;
font-weight: 700;
text-decoration: none;
display: inline-flex;
align-items: center;
justify-content: center;
}
button.primary:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.onboarding-actions { .onboarding-actions {
margin-top: 14px; margin-top: 18px;
flex-direction: column;
align-items: stretch;
padding: 14px;
border-radius: 14px;
border: 1px solid rgba(120, 180, 255, 0.2);
background: rgba(0, 0, 0, 0.24);
}
.onboarding-copy {
display: grid;
gap: 6px;
} }
.onboarding-cta { .onboarding-cta {
flex: 1;
text-align: center; text-align: center;
width: 100%;
} }
.status-form { .status-form {