From 951bed6fbfc9fac833b9d11232a18f1d49215d20 Mon Sep 17 00:00:00 2001 From: AfonsoCMSousa Date: Thu, 15 Jan 2026 19:01:28 +0000 Subject: [PATCH] feat: Base for the actuall profile page. --- app/assets/css/main.css | 171 +++++++++++++++++++++++++ app/pages/profile/index.vue | 242 +++++++++++++++++++++++++++++++++++- nuxt.config.ts | 51 ++++---- 3 files changed, 438 insertions(+), 26 deletions(-) create mode 100644 app/assets/css/main.css diff --git a/app/assets/css/main.css b/app/assets/css/main.css new file mode 100644 index 0000000..9577ba9 --- /dev/null +++ b/app/assets/css/main.css @@ -0,0 +1,171 @@ + +:root { + --text-primary: #000000; + --text-secondary: #8d96a0; + --text-tertiary: #6e7681; + --text-link: #2f81f7; + --text-link-hover: #539bf5; + + --border-primary: #30363d; + --border-hover: #8d96a0; + + --accent: #7aa2f7; + --accent-hover: #9ab6ff; + --accent-primary: #2f81f7; + --accent-emphasis: #539bf5; + + --success: #3fb950; + --warning: #d29922; + --danger: #f85149; + + /* Typography */ + --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", + "Noto Sans", Helvetica, Arial, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace; + + /* Radius */ + --radius-sm: 0.375rem; + --radius-md: 0.5rem; + --radius-lg: 0.75rem; + --radius-full: 9999px; + + /* Shadows */ + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.25); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35); +} + + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-size: 16px; + -webkit-font-smoothing: antialiased; +} + +body { + font-family: var(--font-sans); + color: var(--text-primary); + background-color: var(--bg-primary); +} + + +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + line-height: 1.25; + color: var(--text-primary); +} + +p { + color: var(--text-secondary); + line-height: 1.6; +} + +a { + color: var(--text-link); + text-decoration: none; +} + +a:hover { + color: var(--text-link-hover); + text-decoration: underline; +} + +code { + font-family: var(--font-mono); + background: var(--bg-tertiary); + padding: 0.2em 0.4em; + border-radius: var(--radius-sm); +} + + SEMANTIC COMPONENTS (SAFE) + ============================================== */ + + +.card { + background: var(--bg-surface); + color: var(--text-primary); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-color); +} + + +.app-card { + background-color: var(--bg-secondary); + border: 1px solid var(--border-primary); + border-radius: var(--radius-md); + box-shadow: var(--shadow-sm); +} + +.app-card:hover { + border-color: var(--border-hover); +} + + +.app-btn { + display: inline-flex; + align-items: center; + justify-content: center; + font-weight: 500; + border-radius: var(--radius-sm); + cursor: pointer; + transition: background-color 0.15s ease, border-color 0.15s ease; +} + +.app-btn-primary { + background-color: var(--accent-primary); + color: #fff; +} + +.app-btn-primary:hover { + background-color: var(--accent-emphasis); +} + +.app-btn-secondary { + background-color: var(--bg-tertiary); + border: 1px solid var(--border-primary); + color: var(--text-primary); +} + +.app-btn-secondary:hover { + background-color: var(--bg-hover); +} + +.button { + background: var(--accent); + color: #fff; + border-radius: var(--radius-md); + transition: background var(--transition-fast); +} + +.button:hover { + background: var(--accent-hover); +} + + +.app-badge { + display: inline-flex; + align-items: center; + padding: 0 0.5rem; + height: 1.25rem; + font-size: 0.75rem; + border-radius: var(--radius-full); +} + +.app-badge-success { + color: var(--success); + background: color-mix(in srgb, var(--success) 15%, transparent); +} + + +.app-avatar { + border-radius: var(--radius-full); + overflow: hidden; + background-color: var(--bg-tertiary); + border: 1px solid var(--border-primary); +} + diff --git a/app/pages/profile/index.vue b/app/pages/profile/index.vue index 074fdd7..a0fb397 100644 --- a/app/pages/profile/index.vue +++ b/app/pages/profile/index.vue @@ -1,5 +1,243 @@ + + diff --git a/nuxt.config.ts b/nuxt.config.ts index b9d1747..0724ebb 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -2,31 +2,34 @@ import tailwindcss from "@tailwindcss/vite"; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ - compatibilityDate: "2025-07-15", - devtools: { enabled: true }, + compatibilityDate: "2025-07-15", + devtools: { enabled: true }, - css: ["~/assets/css/tailwind.css"], - vite: { - plugins: [tailwindcss()], - }, + css: [ + "~/assets/css/main.css", + "~/assets/css/tailwind.css" + ], + vite: { + plugins: [tailwindcss()], + }, - modules: [ - "@nuxt/fonts", - "@nuxt/icon", - "@nuxt/image", - "@nuxt/eslint", - "shadcn-nuxt", - ], + modules: [ + "@nuxt/fonts", + "@nuxt/icon", + "@nuxt/image", + "@nuxt/eslint", + "shadcn-nuxt", + ], - shadcn: { - /** - * Prefix for all the imported component - */ - prefix: "", - /** - * Directory that the component lives in. - * @default "./app/components/ui" - */ - componentDir: "./app/components/ui", - }, + shadcn: { + /** + * Prefix for all the imported component + */ + prefix: "", + /** + * Directory that the component lives in. + * @default "./app/components/ui" + */ + componentDir: "./app/components/ui", + }, }); -- 2.54.0