项目文件夹

文件
wehub-resource-sync 98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:40:49 +08:00

243 行
3.7 KiB
CSS

:root {
color-scheme: light;
--bg-top: #f6efe4;
--bg-bottom: #d9e7f5;
--panel: rgba(255, 250, 245, 0.88);
--panel-strong: #fff8f0;
--ink: #1d2430;
--muted: #6b7280;
--accent: #d46a4c;
--accent-strong: #b94d34;
--border: rgba(29, 36, 48, 0.1);
--shadow: 0 20px 60px rgba(43, 50, 67, 0.16);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: Georgia, "Times New Roman", serif;
color: var(--ink);
background: linear-gradient(160deg, var(--bg-top), var(--bg-bottom));
}
button,
input {
font: inherit;
}
.app-shell {
width: min(1080px, calc(100vw - 32px));
margin: 0 auto;
min-height: 100vh;
display: grid;
grid-template-columns: 1fr 1.15fr;
gap: 24px;
align-items: center;
padding: 32px 0;
}
.hero-panel,
.todo-panel {
background: var(--panel);
backdrop-filter: blur(14px);
border: 1px solid var(--border);
border-radius: 28px;
box-shadow: var(--shadow);
}
.hero-panel {
padding: 36px;
}
.eyebrow {
margin: 0 0 12px;
text-transform: uppercase;
letter-spacing: 0.18em;
font-size: 0.78rem;
color: var(--accent-strong);
}
h1 {
margin: 0;
font-size: clamp(2.3rem, 5vw, 4rem);
line-height: 0.95;
}
.hero-copy {
margin: 18px 0 0;
max-width: 28rem;
font-size: 1.1rem;
line-height: 1.6;
color: var(--muted);
}
.stats {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
margin-top: 28px;
}
.stats article {
padding: 18px;
border-radius: 20px;
background: var(--panel-strong);
}
.stats span {
display: block;
font-size: 2rem;
font-weight: 700;
}
.stats p {
margin: 8px 0 0;
color: var(--muted);
}
.todo-panel {
padding: 24px;
}
.todo-form {
display: grid;
grid-template-columns: 1fr auto;
gap: 12px;
}
.todo-form input {
width: 100%;
padding: 16px 18px;
border-radius: 16px;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.9);
}
.todo-form button,
.ghost-button,
.filter,
.delete-button {
border: 0;
border-radius: 14px;
cursor: pointer;
transition: transform 140ms ease, background 140ms ease, color 140ms ease;
}
.todo-form button {
padding: 0 18px;
background: var(--accent);
color: #fff;
}
.toolbar {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: center;
margin: 18px 0;
}
.filters {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.filter,
.ghost-button {
padding: 10px 14px;
background: rgba(255, 255, 255, 0.6);
color: var(--ink);
}
.filter.active {
background: var(--ink);
color: #fff;
}
.todo-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 10px;
}
.todo-item {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: center;
padding: 14px 16px;
background: rgba(255, 255, 255, 0.72);
border: 1px solid var(--border);
border-radius: 18px;
}
.todo-row {
display: flex;
gap: 12px;
align-items: center;
min-width: 0;
flex: 1;
}
.todo-text {
overflow-wrap: anywhere;
}
.todo-item.done .todo-text {
text-decoration: line-through;
color: var(--muted);
}
.delete-button {
padding: 10px 12px;
background: rgba(212, 106, 76, 0.14);
color: var(--accent-strong);
}
.todo-form button:hover,
.ghost-button:hover,
.filter:hover,
.delete-button:hover {
transform: translateY(-1px);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
@media (max-width: 860px) {
.app-shell {
grid-template-columns: 1fr;
align-items: start;
}
.hero-panel,
.todo-panel {
padding: 22px;
}
.toolbar {
flex-direction: column;
align-items: stretch;
}
.todo-form {
grid-template-columns: 1fr;
}
}