From 97b93bcaeab3e3e30ce211cbc91a8dc57014440b Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 1 Aug 2026 22:19:16 -0400 Subject: [PATCH] refactor(ui): buttons stop using weights the system doesn't have MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eleven buttons set font-weight 600. The house style permits exactly two weights, 400 and 500, and says so explicitly — 600 and 700 are not part of the system. Every auth Submit, plus Invite, Toggle, Confirm-delete, Add-share, the OAuth button and the assist Reject. Now var(--fs-weight-medium), which is 500. Buttons get very slightly lighter. Small on its own, but it is the third kind of drift the same five auth views have now produced: geometry that differed per file, an accent fill the style forbids, and a weight the system does not define. None of the three was a deliberate choice — each is what happens when a button is written by copying the nearest existing one. Weight declarations only. No geometry, no colour, no templates. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01UaYUaouG9jjhATyuxCKrQs --- frontend/src/components/InlineAssistPanel.vue | 2 +- frontend/src/components/ShareDialog.vue | 2 +- frontend/src/views/ForgotPasswordView.vue | 2 +- frontend/src/views/LoginView.vue | 4 ++-- frontend/src/views/RegisterInviteView.vue | 2 +- frontend/src/views/RegisterView.vue | 2 +- frontend/src/views/ResetPasswordView.vue | 2 +- frontend/src/views/UserManagementView.vue | 6 +++--- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/InlineAssistPanel.vue b/frontend/src/components/InlineAssistPanel.vue index 28a7340..f43dceb 100644 --- a/frontend/src/components/InlineAssistPanel.vue +++ b/frontend/src/components/InlineAssistPanel.vue @@ -188,7 +188,7 @@ const markers: Record = { cursor: pointer; font-size: 0.8rem; font-family: inherit; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .iap-btn-accept { background: var(--color-success, #22c55e); diff --git a/frontend/src/components/ShareDialog.vue b/frontend/src/components/ShareDialog.vue index f68d8b8..808c71c 100644 --- a/frontend/src/components/ShareDialog.vue +++ b/frontend/src/components/ShareDialog.vue @@ -343,7 +343,7 @@ onMounted(async () => { border: none; border-radius: 6px; font-size: 0.85rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); cursor: pointer; transition: opacity 0.15s; white-space: nowrap; diff --git a/frontend/src/views/ForgotPasswordView.vue b/frontend/src/views/ForgotPasswordView.vue index d43bbf8..97dbf34 100644 --- a/frontend/src/views/ForgotPasswordView.vue +++ b/frontend/src/views/ForgotPasswordView.vue @@ -146,7 +146,7 @@ async function handleSubmit() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-submit:disabled { opacity: 0.6; diff --git a/frontend/src/views/LoginView.vue b/frontend/src/views/LoginView.vue index 3eb05da..2f7fd61 100644 --- a/frontend/src/views/LoginView.vue +++ b/frontend/src/views/LoginView.vue @@ -185,7 +185,7 @@ function loginWithOAuth() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-submit:disabled { opacity: 0.6; @@ -217,7 +217,7 @@ function loginWithOAuth() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-oauth:hover { background: var(--color-bg-hover, var(--color-border)); diff --git a/frontend/src/views/RegisterInviteView.vue b/frontend/src/views/RegisterInviteView.vue index f188cc2..5dee081 100644 --- a/frontend/src/views/RegisterInviteView.vue +++ b/frontend/src/views/RegisterInviteView.vue @@ -256,7 +256,7 @@ async function handleSubmit() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-submit:disabled { opacity: 0.6; diff --git a/frontend/src/views/RegisterView.vue b/frontend/src/views/RegisterView.vue index 63cab26..8afcd21 100644 --- a/frontend/src/views/RegisterView.vue +++ b/frontend/src/views/RegisterView.vue @@ -225,7 +225,7 @@ async function handleSubmit() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-submit:disabled { opacity: 0.6; diff --git a/frontend/src/views/ResetPasswordView.vue b/frontend/src/views/ResetPasswordView.vue index 9cbaa70..bab08ab 100644 --- a/frontend/src/views/ResetPasswordView.vue +++ b/frontend/src/views/ResetPasswordView.vue @@ -204,7 +204,7 @@ async function handleSubmit() { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.95rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); } .btn-submit:disabled { opacity: 0.6; diff --git a/frontend/src/views/UserManagementView.vue b/frontend/src/views/UserManagementView.vue index 29460c9..62bc563 100644 --- a/frontend/src/views/UserManagementView.vue +++ b/frontend/src/views/UserManagementView.vue @@ -336,7 +336,7 @@ function formatDate(iso: string): string { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.9rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); white-space: nowrap; } .btn-invite:disabled { @@ -386,7 +386,7 @@ function formatDate(iso: string): string { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.9rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); white-space: nowrap; } .btn-toggle:disabled { @@ -503,7 +503,7 @@ function formatDate(iso: string): string { border-radius: var(--radius-sm); cursor: pointer; font-size: 0.8rem; - font-weight: 600; + font-weight: var(--fs-weight-medium); margin-right: 0.25rem; } .btn-confirm-delete:hover:not(:disabled) {