|
2 | 2 | <html lang="en"> |
3 | 3 | <head> |
4 | 4 | <meta charset="UTF-8"> |
5 | | - <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> |
| 6 | + <meta name="apple-mobile-web-app-capable" content="yes"> |
| 7 | + <meta name="mobile-web-app-capable" content="yes"> |
| 8 | + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> |
| 9 | + <meta name="apple-mobile-web-app-title" content="Assignments"> |
| 10 | + <meta name="theme-color" content="#f5f4f0" media="(prefers-color-scheme: light)"> |
| 11 | + <meta name="theme-color" content="#111110" media="(prefers-color-scheme: dark)"> |
6 | 12 | <title>Assignments — Yoshiro</title> |
7 | 13 | <link rel="icon" type="image/x-icon" href="/favistuff/favicon.ico"> |
8 | 14 | <link rel="icon" type="image/png" sizes="16x16" href="/favistuff/favicon-16x16.png"> |
|
52 | 58 | } |
53 | 59 |
|
54 | 60 | .theme-toggle { |
55 | | - position: fixed; top: 1.5rem; right: 1.5rem; |
| 61 | + position: fixed; top: max(1.5rem, env(safe-area-inset-top)); right: max(1.5rem, env(safe-area-inset-right)); |
56 | 62 | display: flex; gap: .1rem; z-index: 300; |
57 | 63 | } |
58 | 64 | .theme-btn { |
|
64 | 70 | .theme-btn.active { color: var(--text); } |
65 | 71 |
|
66 | 72 | .back-link { |
67 | | - position: fixed; top: 1.5rem; left: 1.5rem; |
| 73 | + position: fixed; top: max(1.5rem, env(safe-area-inset-top)); left: max(1.5rem, env(safe-area-inset-left)); |
68 | 74 | font-family: 'DM Mono', monospace; font-size: .7rem; |
69 | 75 | color: var(--line); text-decoration: none; letter-spacing: .06em; |
70 | 76 | transition: color .2s; z-index: 300; |
71 | 77 | } |
72 | 78 | .back-link:hover { color: var(--muted); } |
73 | 79 |
|
74 | | - .page { max-width: 760px; margin: 0 auto; padding: 0 2rem 4rem; } |
| 80 | + .page { max-width: 760px; margin: 0 auto; padding: 0 max(2rem, env(safe-area-inset-right)) 4rem max(2rem, env(safe-area-inset-left)); } |
75 | 81 |
|
76 | 82 | header { |
77 | | - padding: 5rem 0 2.75rem; |
| 83 | + padding: max(5rem, calc(3rem + env(safe-area-inset-top))) 0 2.75rem; |
78 | 84 | border-bottom: 1px solid var(--line); |
79 | 85 | opacity: 0; animation: fadeUp .6s ease .1s forwards; |
80 | 86 | } |
|
406 | 412 |
|
407 | 413 | /* ── Sent-to-pomodoro flash ── */ |
408 | 414 | .toast { |
409 | | - position: fixed; bottom: 2rem; left: 50%; transform: translateX(-50%) translateY(120%); |
| 415 | + position: fixed; bottom: max(2rem, calc(1rem + env(safe-area-inset-bottom))); left: 50%; transform: translateX(-50%) translateY(120%); |
410 | 416 | background: var(--text); color: var(--bg); |
411 | 417 | padding: .7rem 1.2rem; |
412 | 418 | border-radius: 4px; |
|
431 | 437 | @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } } |
432 | 438 |
|
433 | 439 | @media (max-width: 520px) { |
434 | | - .page { padding: 0 1.25rem 3rem; } |
435 | | - header { padding: 4rem 0 2rem; } |
| 440 | + .page { padding: 0 1.25rem max(3rem, calc(1rem + env(safe-area-inset-bottom))); } |
| 441 | + header { padding: max(4rem, calc(2rem + env(safe-area-inset-top))) 0 2rem; } |
436 | 442 | section { padding: 2rem 0; } |
437 | 443 | .item { grid-template-columns: auto 1fr; } |
438 | 444 | .item-actions { grid-column: 2 / -1; justify-content: flex-end; } |
|
0 commit comments