From d45f4aa1e33959c40a1b78fa096db18986ade058 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Wed, 18 Feb 2026 07:24:33 -0600 Subject: [PATCH] feat(web): working on login style --- src/FiscalOS.Web/src/assets/css/main.css | 71 +++++++++++++++++++ src/FiscalOS.Web/src/assets/css/reset.css | 42 +++++++++++ .../src/components/ProtectedLayout.vue | 13 ++++ .../src/components/PublicLayout.vue | 20 ++++++ src/FiscalOS.Web/src/main.ts | 2 + src/FiscalOS.Web/src/router/index.ts | 1 + src/FiscalOS.Web/src/views/HomeView.vue | 21 +++++- src/FiscalOS.Web/src/views/LoginView.vue | 38 +++++++++- 8 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 src/FiscalOS.Web/src/assets/css/main.css create mode 100644 src/FiscalOS.Web/src/assets/css/reset.css create mode 100644 src/FiscalOS.Web/src/components/ProtectedLayout.vue create mode 100644 src/FiscalOS.Web/src/components/PublicLayout.vue diff --git a/src/FiscalOS.Web/src/assets/css/main.css b/src/FiscalOS.Web/src/assets/css/main.css new file mode 100644 index 0000000..59ffaee --- /dev/null +++ b/src/FiscalOS.Web/src/assets/css/main.css @@ -0,0 +1,71 @@ +@import './reset.css'; + +@font-face { + font-family: 'CaskaydiaCove NFM'; + src: url('../fonts/CaskaydiaCoveNFM-Regular.eot'); + src: + url('../fonts/CaskaydiaCoveNFM-Regular.eot?#iefix') format('embedded-opentype'), + url('../fonts/CaskaydiaCoveNFM-Regular.woff2') format('woff2'), + url('../fonts/CaskaydiaCoveNFM-Regular.woff') format('woff'), + url('../fonts/CaskaydiaCoveNFM-Regular.svg#CaskaydiaCoveNFM-Regular') format('svg'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +:root { + --palette-lavender: #b39cd0; + --palette-rose: #d09c9f; + --palette-sage: #b9d09c; + --palette-mint: #9cd0cd; + + --neutral-white: #ffffff; + --neutral-100: #f5f5f5; + --neutral-200: #e5e5e5; + --neutral-800: #262626; + --neutral-900: #171717; + --neutral-black: #000000; + + --bg-app: var(--neutral-white); + --bg-surface: var(--neutral-100); + --bg-element: var(--neutral-200); + + --text-primary: var(--neutral-black); + --text-secondary: var(--neutral-800); + --border-subtle: var(--neutral-200); + + --brand-primary: var(--palette-lavender); + --brand-secondary: var(--palette-rose); + --brand-accent: var(--palette-mint); + --state-success: var(--palette-sage); + --state-error: var(--palette-rose); + + font-family: 'CaskaydiaCove NFM', monospace; + font-size: 16px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +@media (prefers-color-scheme: dark) { + :root { + --bg-app: var(--neutral-black); + --bg-surface: var(--neutral-900); + --bg-element: var(--neutral-800); + + --text-primary: var(--neutral-white); + --text-secondary: var(--neutral-200); + --border-subtle: var(--neutral-800); + } +} + +body { + color: var(--text-primary); + background: var(--bg-app); +} + +html, +body, +#app { + height: 100%; +} diff --git a/src/FiscalOS.Web/src/assets/css/reset.css b/src/FiscalOS.Web/src/assets/css/reset.css new file mode 100644 index 0000000..7510895 --- /dev/null +++ b/src/FiscalOS.Web/src/assets/css/reset.css @@ -0,0 +1,42 @@ +* { + margin: 0; + padding: 0; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +button { + background: none; + border: none; + cursor: pointer; + font-family: inherit; + font-size: inherit; +} + +input { + font-family: inherit; + font-size: inherit; +} + +a { + text-decoration: none; + color: inherit; +} + +ul { + list-style-type: none; +} + +img { + max-width: 100%; + display: block; +} + +table { + width: 100%; + border-collapse: collapse; +} diff --git a/src/FiscalOS.Web/src/components/ProtectedLayout.vue b/src/FiscalOS.Web/src/components/ProtectedLayout.vue new file mode 100644 index 0000000..d4fea8e --- /dev/null +++ b/src/FiscalOS.Web/src/components/ProtectedLayout.vue @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/src/FiscalOS.Web/src/components/PublicLayout.vue b/src/FiscalOS.Web/src/components/PublicLayout.vue new file mode 100644 index 0000000..adc1fa6 --- /dev/null +++ b/src/FiscalOS.Web/src/components/PublicLayout.vue @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/src/FiscalOS.Web/src/main.ts b/src/FiscalOS.Web/src/main.ts index 6d6c54e..b55ed9b 100644 --- a/src/FiscalOS.Web/src/main.ts +++ b/src/FiscalOS.Web/src/main.ts @@ -1,3 +1,5 @@ +import './assets/css/main.css'; + import { createApp } from "vue"; import { createPinia } from "pinia"; diff --git a/src/FiscalOS.Web/src/router/index.ts b/src/FiscalOS.Web/src/router/index.ts index bb46360..f306038 100644 --- a/src/FiscalOS.Web/src/router/index.ts +++ b/src/FiscalOS.Web/src/router/index.ts @@ -8,6 +8,7 @@ const router = createRouter({ routes: [ { path: '/public', + component: () => import('../components/PublicLayout.vue'), redirect: '/public/login', beforeEnter: () => { const userStore = useUserStore(); diff --git a/src/FiscalOS.Web/src/views/HomeView.vue b/src/FiscalOS.Web/src/views/HomeView.vue index f81ad63..07779bc 100644 --- a/src/FiscalOS.Web/src/views/HomeView.vue +++ b/src/FiscalOS.Web/src/views/HomeView.vue @@ -1,7 +1,26 @@ - + Home View + + Logout + diff --git a/src/FiscalOS.Web/src/views/LoginView.vue b/src/FiscalOS.Web/src/views/LoginView.vue index 078ce04..46e3c18 100644 --- a/src/FiscalOS.Web/src/views/LoginView.vue +++ b/src/FiscalOS.Web/src/views/LoginView.vue @@ -15,7 +15,6 @@ async function handleSubmit(e: SubmitEvent) { ); if (loginResult.err) { - alert(loginResult.val.join('\n')); return; } @@ -26,7 +25,6 @@ async function handleSubmit(e: SubmitEvent) { - Login View Username @@ -42,4 +40,38 @@ async function handleSubmit(e: SubmitEvent) { - +