This commit is contained in:
wxhao
2025-10-31 14:26:32 +08:00
parent ba4e7b55e2
commit 43534e3ef4
11 changed files with 5738 additions and 31 deletions

133
src/styles/main.scss Normal file
View File

@@ -0,0 +1,133 @@
// 全局样式重置
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background-color: #f5f5f5;
color: #333;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.app-container {
background-color: white;
padding: 40px;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
max-width: 800px;
width: 100%;
animation: fadeIn 0.5s ease-in;
}
h1 {
font-size: 2.5rem;
color: #2c3e50;
text-align: center;
margin-bottom: 30px;
}
h2 {
font-size: 1.8rem;
color: #34495e;
margin-bottom: 20px;
}
// 计数器部分样式
.counter-section {
text-align: center;
margin-bottom: 40px;
padding: 20px;
background-color: #ecf0f1;
border-radius: 8px;
}
.counter-buttons {
display: flex;
justify-content: center;
gap: 10px;
margin-top: 15px;
}
button {
padding: 10px 20px;
font-size: 1rem;
border: none;
border-radius: 6px;
cursor: pointer;
background-color: #3498db;
color: white;
transition: background-color 0.3s ease;
&:hover {
background-color: #2980b9;
}
&:active {
transform: translateY(1px);
}
}
// Todo列表部分样式
.todos-section {
& h2 {
text-align: center;
}
& p {
text-align: center;
margin-bottom: 20px;
}
}
.todo-list {
list-style: none;
padding: 0;
& li {
padding: 12px 16px;
margin-bottom: 8px;
background-color: #f8f9fa;
border-radius: 6px;
border-left: 4px solid #3498db;
transition: all 0.2s ease;
&:hover {
background-color: #e9ecef;
transform: translateX(4px);
}
&.completed {
text-decoration: line-through;
color: #6c757d;
border-left-color: #28a745;
}
}
}
.error {
color: #dc3545;
font-weight: bold;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}