Improve narrow-viewport layout for upload, About, and shell overflow; keep modal scroll without extra dismiss or a11y markup changes.
130 lines
3.2 KiB
CSS
130 lines
3.2 KiB
CSS
@import 'tailwindcss';
|
|
|
|
@theme inline {
|
|
--radius-sm: calc(var(--radius) - 4px);
|
|
--radius-md: calc(var(--radius) - 2px);
|
|
--radius-lg: var(--radius);
|
|
--radius-xl: calc(var(--radius) + 4px);
|
|
--color-background: var(--background);
|
|
--color-foreground: var(--foreground);
|
|
--color-card: var(--card);
|
|
--color-card-foreground: var(--card-foreground);
|
|
--color-primary: var(--primary);
|
|
--color-primary-foreground: var(--primary-foreground);
|
|
--color-secondary: var(--secondary);
|
|
--color-secondary-foreground: var(--secondary-foreground);
|
|
--color-muted: var(--muted);
|
|
--color-muted-foreground: var(--muted-foreground);
|
|
--color-accent: var(--accent);
|
|
--color-accent-foreground: var(--accent-foreground);
|
|
--color-destructive: var(--destructive);
|
|
--color-success: var(--success);
|
|
--color-border: var(--border);
|
|
--color-input: var(--input);
|
|
--color-ring: var(--ring);
|
|
}
|
|
|
|
:root {
|
|
--radius: 0.5rem;
|
|
--background: oklch(1 0 0);
|
|
--foreground: oklch(0.244 0.012 263);
|
|
--card: oklch(1 0 0);
|
|
--card-foreground: oklch(0.244 0.012 263);
|
|
--primary: oklch(0.497 0.227 263);
|
|
--primary-foreground: oklch(1 0 0);
|
|
--secondary: oklch(0.94 0.025 263);
|
|
--secondary-foreground: oklch(0.28 0.04 263);
|
|
--muted: oklch(0.955 0.018 263);
|
|
--muted-foreground: oklch(0.46 0.04 263);
|
|
--accent: oklch(0.93 0.04 263);
|
|
--accent-foreground: oklch(0.28 0.04 263);
|
|
--destructive: oklch(0.55 0.2 25);
|
|
--success: oklch(0.45 0.14 155);
|
|
--border: oklch(0.88 0.025 263);
|
|
--input: oklch(0.88 0.025 263);
|
|
--ring: oklch(0.497 0.227 263);
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
|
|
html {
|
|
@apply w-full min-w-0 overflow-x-hidden;
|
|
}
|
|
|
|
body {
|
|
@apply min-w-0 overflow-x-hidden bg-background text-foreground antialiased;
|
|
}
|
|
|
|
#app {
|
|
@apply w-full min-w-0 overflow-x-clip;
|
|
}
|
|
}
|
|
|
|
body:has(.lightbox:target) {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.expandable-image__link {
|
|
color: inherit;
|
|
cursor: zoom-in;
|
|
}
|
|
|
|
.lightbox {
|
|
display: none;
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 100;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right))
|
|
max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
|
|
}
|
|
|
|
.lightbox:target {
|
|
display: flex;
|
|
}
|
|
|
|
.lightbox__backdrop {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: rgb(0 0 0 / 0.92);
|
|
}
|
|
|
|
.lightbox__img {
|
|
position: relative;
|
|
z-index: 1;
|
|
max-width: min(100%, 75rem);
|
|
max-height: min(85dvh, 90vh);
|
|
width: auto;
|
|
height: auto;
|
|
object-fit: contain;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.lightbox__close {
|
|
position: absolute;
|
|
top: max(0.5rem, env(safe-area-inset-top));
|
|
right: max(0.5rem, env(safe-area-inset-right));
|
|
z-index: 2;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 2.5rem;
|
|
height: 2.5rem;
|
|
font-size: 1.75rem;
|
|
line-height: 1;
|
|
color: var(--foreground);
|
|
background: var(--card);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.lightbox__close:hover {
|
|
border-color: var(--primary);
|
|
}
|