Add new styles for app shell, tokens, and vault components

- Introduced `shell.css` for the main application layout, including styles for the app shell, top bar, and user interactions.
- Created `tokens.css` to define CSS variables for theming, including colors, shadows, and transition durations for light and dark modes.
- Developed `vault.css` for the vault component, implementing grid layouts, sidebar styles, search inputs, and list item designs.
This commit is contained in:
shuaiplus
2026-04-22 23:44:51 +08:00
parent 31b8ec6f7d
commit b990f17a3e
17 changed files with 4744 additions and 5094 deletions
@@ -1,4 +1,4 @@
import { useState } from 'preact/hooks';
import { useEffect, useState } from 'preact/hooks';
import {
CreditCard,
FileKey2,
@@ -161,7 +161,7 @@ export function hostFromUri(uri: string): string {
}
export function websiteIconUrl(host: string): string {
return `/icons/${encodeURIComponent(host)}/icon.png`;
return `/icons/${encodeURIComponent(host)}/icon.png?fallback=404`;
}
export function createEmptyLoginUri(): VaultDraftLoginUri {
@@ -433,6 +433,10 @@ export function VaultListIcon({ cipher }: { cipher: Cipher }) {
const uri = firstCipherUri(cipher);
const host = hostFromUri(uri);
const [errored, setErrored] = useState(() => (host ? failedIconHosts.has(host) : false));
useEffect(() => {
setErrored(host ? failedIconHosts.has(host) : false);
}, [host]);
if (host && !errored) {
return (
<img