From c44a171dbcb169547fa4d29d261ce4a321511c64 Mon Sep 17 00:00:00 2001 From: scanash00 Date: Wed, 29 Jul 2026 19:15:12 -0800 Subject: [PATCH] frontend fixes --- .../dashboard/AppPasswordsContent.svelte | 10 +---- frontend/src/locales/en.json | 2 +- frontend/src/locales/fi.json | 2 +- frontend/src/locales/fr.json | 2 +- frontend/src/locales/ja.json | 2 +- frontend/src/locales/ko.json | 2 +- frontend/src/locales/sv.json | 2 +- frontend/src/locales/zh.json | 2 +- frontend/src/styles/base.css | 15 ++++--- frontend/src/styles/dashboard.css | 42 +++++++++++-------- frontend/src/styles/tokens.css | 14 +++---- 11 files changed, 49 insertions(+), 46 deletions(-) diff --git a/frontend/src/components/dashboard/AppPasswordsContent.svelte b/frontend/src/components/dashboard/AppPasswordsContent.svelte index b61d36a..326a747 100644 --- a/frontend/src/components/dashboard/AppPasswordsContent.svelte +++ b/frontend/src/components/dashboard/AppPasswordsContent.svelte @@ -125,13 +125,6 @@ } return SCOPE_PRESETS.find(preset => preset.id === selectedScopePreset)?.scopes ?? undefined } - - function canCreate(): boolean { - return Boolean( - newName.trim() - && (selectedScopePreset !== 'custom' || normalizeScopes(customScopes)) - ) - }
@@ -162,6 +155,7 @@ {/if}
- diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index ecb70ab..0bb45bf 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -301,7 +301,7 @@ "scopePostOnly": "Post Only", "scopeCustom": "Custom", "scopeCustomLabel": "Scope string", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "Enter space-separated AT Protocol scopes. Only grant the permissions this app needs.", "byController": "By Controller" }, diff --git a/frontend/src/locales/fi.json b/frontend/src/locales/fi.json index 62e0629..5fb81ed 100644 --- a/frontend/src/locales/fi.json +++ b/frontend/src/locales/fi.json @@ -292,7 +292,7 @@ "scopePostOnly": "Vain julkaisu", "scopeCustom": "Mukautettu", "scopeCustomLabel": "Käyttöoikeusmerkkijono", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "Syötä välilyönnein erotetut AT Protocol -käyttöoikeudet. Myönnä vain sovelluksen tarvitsemat oikeudet.", "byController": "Hallinnoijan luoma", "create": "Luo", diff --git a/frontend/src/locales/fr.json b/frontend/src/locales/fr.json index c2f5076..e5c41e4 100644 --- a/frontend/src/locales/fr.json +++ b/frontend/src/locales/fr.json @@ -301,7 +301,7 @@ "scopePostOnly": "Publication uniquement", "scopeCustom": "Personnalisé", "scopeCustomLabel": "Chaîne de portées", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "Saisissez des portées AT Protocol séparées par des espaces. N'accordez que les permissions nécessaires à cette application.", "byController": "Par contrôleur" }, diff --git a/frontend/src/locales/ja.json b/frontend/src/locales/ja.json index 9ff526f..c560a3d 100644 --- a/frontend/src/locales/ja.json +++ b/frontend/src/locales/ja.json @@ -292,7 +292,7 @@ "scopePostOnly": "投稿のみ", "scopeCustom": "カスタム", "scopeCustomLabel": "スコープ文字列", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "AT Protocol のスコープをスペース区切りで入力します。このアプリに必要な権限のみを付与してください。", "byController": "管理者作成", "create": "作成", diff --git a/frontend/src/locales/ko.json b/frontend/src/locales/ko.json index f5e5f7f..e44a7bd 100644 --- a/frontend/src/locales/ko.json +++ b/frontend/src/locales/ko.json @@ -292,7 +292,7 @@ "scopePostOnly": "게시만", "scopeCustom": "사용자 지정", "scopeCustomLabel": "범위 문자열", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "공백으로 구분된 AT Protocol 범위를 입력하세요. 이 앱에 필요한 권한만 부여하세요.", "byController": "컨트롤러 생성", "create": "생성", diff --git a/frontend/src/locales/sv.json b/frontend/src/locales/sv.json index 2d2652a..54d84b8 100644 --- a/frontend/src/locales/sv.json +++ b/frontend/src/locales/sv.json @@ -292,7 +292,7 @@ "scopePostOnly": "Endast inlägg", "scopeCustom": "Anpassad", "scopeCustomLabel": "Scope-sträng", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "Ange blankstegsseparerade AT Protocol-scopes. Ge bara de behörigheter som appen behöver.", "byController": "Av controller", "create": "Skapa", diff --git a/frontend/src/locales/zh.json b/frontend/src/locales/zh.json index e658db9..f8c3236 100644 --- a/frontend/src/locales/zh.json +++ b/frontend/src/locales/zh.json @@ -292,7 +292,7 @@ "scopePostOnly": "仅发帖", "scopeCustom": "自定义", "scopeCustomLabel": "权限范围字符串", - "scopeCustomPlaceholder": "repo:app.bsky.feed.post?action=create blob:*/*", + "scopeCustomPlaceholder": "atproto repo:app.bsky.feed.post?action=create blob:*/*", "scopeCustomHelp": "请输入以空格分隔的 AT Protocol 权限范围。仅授予此应用所需的权限。", "byController": "由控制者创建", "create": "创建", diff --git a/frontend/src/styles/base.css b/frontend/src/styles/base.css index 985f4da..5814dcb 100644 --- a/frontend/src/styles/base.css +++ b/frontend/src/styles/base.css @@ -141,8 +141,8 @@ button.secondary { } button.secondary:hover:not(:disabled) { - background: var(--secondary); - color: var(--text-inverse); + background: var(--secondary-muted-strong); + color: var(--secondary); } button.tertiary { @@ -473,9 +473,10 @@ section h3 { color: var(--text-primary); } -.tab.active { - background: var(--accent); - color: var(--text-inverse); +.tab.active, +.tab.active:hover:not(:disabled) { + background: var(--accent-muted-strong); + color: var(--accent); } .inline-form { @@ -1414,6 +1415,10 @@ svg.sso-icon { background: var(--accent); } +.toggle-button.on:hover:not(:disabled) { + background: var(--accent-hover); +} + .toggle-button:disabled { opacity: 0.6; cursor: not-allowed; diff --git a/frontend/src/styles/dashboard.css b/frontend/src/styles/dashboard.css index 1b05ca1..21aa084 100644 --- a/frontend/src/styles/dashboard.css +++ b/frontend/src/styles/dashboard.css @@ -219,40 +219,44 @@ button.dropdown-item.logout-item { color: var(--secondary); } -.nav-item.active { - background: var(--accent); - color: var(--text-inverse); +.nav-item.active, +.nav-item.active:hover:not(:disabled) { + background: var(--accent-muted-strong); + color: var(--accent); } .nav-item.active .nav-chevron { - color: var(--text-inverse); + color: var(--accent); } .nav-item.highlight-admin { color: var(--secondary); } -.nav-item.highlight-admin.active { - background: var(--accent); - color: var(--text-inverse); +.nav-item.highlight-admin.active, +.nav-item.highlight-admin.active:hover:not(:disabled) { + background: var(--accent-muted-strong); + color: var(--accent); } .nav-item.highlight-migrated { color: var(--info-text); } -.nav-item.highlight-migrated.active { - background: var(--info-text); - color: var(--text-inverse); +.nav-item.highlight-migrated.active, +.nav-item.highlight-migrated.active:hover:not(:disabled) { + background: var(--info-bg); + color: var(--info-text); } .nav-item.highlight-did-web { color: var(--secondary); } -.nav-item.highlight-did-web.active { - background: var(--accent); - color: var(--text-inverse); +.nav-item.highlight-did-web.active, +.nav-item.highlight-did-web.active:hover:not(:disabled) { + background: var(--accent-muted-strong); + color: var(--accent); } .nav-chevron { @@ -1084,10 +1088,12 @@ form.create-form > div { border-color: var(--secondary); } -.scope-btn.selected { - background: var(--accent); +.scope-btn.selected, +.scope-btn.selected:hover:not(:disabled), +.scope-btn:active:not(:disabled) { + background: var(--accent-muted-strong); border-color: var(--accent); - color: var(--text-inverse); + color: var(--accent); } .scope-btn:disabled { @@ -1733,8 +1739,8 @@ button.record-item:hover { } a.btn-link:hover { - background: var(--accent); - color: var(--text-inverse); + background: var(--accent-muted-strong); + color: var(--secondary); } .controllers .danger-outline { diff --git a/frontend/src/styles/tokens.css b/frontend/src/styles/tokens.css index 8b4bdc7..9fb175f 100644 --- a/frontend/src/styles/tokens.css +++ b/frontend/src/styles/tokens.css @@ -62,13 +62,15 @@ --border-dark: #c8cecc; --accent: #1a1d1d; - --accent-hover: #2e3332; - --accent-muted: rgba(26, 29, 29, 0.06); + --accent-hover: color-mix(in srgb, var(--accent) 88%, var(--bg-primary)); + --accent-muted: color-mix(in srgb, var(--accent) 10%, transparent); + --accent-muted-strong: color-mix(in srgb, var(--accent) 18%, transparent); --accent-light: #3a403f; --secondary: #1a1d1d; - --secondary-hover: #2e3332; - --secondary-muted: rgba(26, 29, 29, 0.06); + --secondary-hover: color-mix(in srgb, var(--secondary) 88%, var(--bg-primary)); + --secondary-muted: color-mix(in srgb, var(--secondary) 10%, transparent); + --secondary-muted-strong: color-mix(in srgb, var(--secondary) 18%, transparent); --success-bg: #dfd; --success-border: #8c8; @@ -111,13 +113,9 @@ --border-dark: #343938; --accent: #e6e8e8; - --accent-hover: #ffffff; - --accent-muted: rgba(230, 232, 232, 0.1); --accent-light: #ffffff; --secondary: #e6e8e8; - --secondary-hover: #ffffff; - --secondary-muted: rgba(230, 232, 232, 0.1); --success-bg: #0f1f1a; --success-border: #1a3d2d; -- 2.51.2