From c8b2e7b1926380f96f2e3e68841c778fcaa1a99e Mon Sep 17 00:00:00 2001 From: MKStoler1024 <158786854+MKStoler1024@users.noreply.github.com> Date: Mon, 28 Apr 2025 10:29:57 +0000 Subject: [PATCH] feat: Add light theme styles for exam interface - Implemented styles for buttons, containers, and typography in light mode. - Added hover effects for buttons and table rows. - Styled modal components for settings and reminders. - Created responsive layouts for content sections. - Defined styles for exam status tags and reminder settings. - Included scrollbar customizations for modal content. --- exam/Styles/md2/dark.css | 917 ++++++++++++++++++++++++++++++++++++++ exam/Styles/md2/light.css | 884 ++++++++++++++++++++++++++++++++++++ exam/Styles/profile.json | 4 + 3 files changed, 1805 insertions(+) create mode 100644 exam/Styles/md2/dark.css create mode 100644 exam/Styles/md2/light.css diff --git a/exam/Styles/md2/dark.css b/exam/Styles/md2/dark.css new file mode 100644 index 0000000..43c05b9 --- /dev/null +++ b/exam/Styles/md2/dark.css @@ -0,0 +1,917 @@ +#return-btn { + position: absolute; /* 绝对定位 */ + top: 20px; /* 距离顶部 20px */ + left: 20px; /* 距离左侧 20px */ + padding: 12px 24px; /* 内边距 */ + font-size: 1rem; /* 字体大小 */ + cursor: pointer; /* 鼠标悬停时显示为手型 */ + background-color: #4A4458; /* 按钮背景颜色 */ + color: #E6E1E5; /* 按钮文字颜色 */ + border: none; /* 按钮边框样式 */ + border-radius: 4px; /* 按钮圆角大小 */ + box-shadow: none; /* 按钮阴影 */ + transition: all 0.2s ease; /* 背景颜色和缩放的过渡效果 */ + z-index: 1001; /* 按钮层级 */ +} + +#return-btn:hover { + background-color: #5e5470; /* 悬停时的背景颜色 */ + transform: none; /* 悬停时向上移动 1px */ + box-shadow: none; /* 悬停时的阴影效果 */ +} + +body { + font-family: 'Roboto', 'HarmonyOS Sans SC', sans-serif; + margin: 0; + padding: 0; + background: #212121; + color: #E6E1E5; + overflow: auto; +} + +body::-webkit-scrollbar { + display: none; +} + +.top-btn-group { + position: absolute; + top: 20px; + right: 20px; + display: flex; + flex-direction: row; + gap: 8px; + z-index: 1001; +} + +#fullscreen-btn, #settings-btn, #reminder-settings-btn { + padding: 8px 16px; + font-size: 1rem; + cursor: pointer; + background-color: #33304a; + color: #ede7f6; + border: none; + border-radius: 4px; + box-shadow: none; + transition: all 0.2s ease; + display: flex; + align-items: center; +} + +#fullscreen-btn::before { + content: "fullscreen"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#settings-btn::before { + content: "settings"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#reminder-settings-btn::before { + content: "notifications"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#fullscreen-btn:hover, #settings-btn:hover, #reminder-settings-btn:hover { + background-color: #5e5470; + transform: none; + box-shadow: none; +} + +.container { + padding: 16px; + max-width: 1200px; + margin: auto; + background-color: #23232b; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(20,20,20,0.18); +} + +h1 { + font-size: 3.5rem; + font-weight: 400; + text-align: left; + margin-bottom: 16px; + color: #ede7f6; + display: flex; + align-items: center; + justify-content: space-between; +} + +#room { + font-size: 3.5rem; + font-weight: 400; + color: #ede7f6; + margin-left: 20px; +} + +#message { + font-size: 1.8rem; + color: #b39ddb; + margin-bottom: 24px; +} + +.content { + display: flex; + justify-content: space-between; + gap: 12px; +} + +.left-column, .right-column { + display: flex; + flex-direction: column; + gap: 12px; +} + +.left-column { + width: 48%; +} + +.right-column { + width: 48%; +} + +.clock-section, .info-section, .right-column { + background-color: #29293a; + padding: 16px; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(20,20,20,0.12); +} + +#current-time { + font-size: 8rem; + text-align: center; + color: #b39ddb; + margin: 0; + font-weight: 400; +} + +#current-subject, #exam-timing, #remaining-time, #status, #paper-info { + font-size: 3rem; + margin: 8px 0; + text-align: left; + color: #ede7f6; +} + +#exam-papers, #answer-sheets { + margin: 4px 0; +} + +table { + width: 100%; + border-collapse: separate; + border-spacing: 0; + margin-top: 12px; + background-color: #29293a; + border-radius: 4px; + overflow: hidden; + box-shadow: none; +} + +th, td { + padding: 0.5em; + font-size: 1.8rem; + text-align: center; + border-bottom: 1px solid #33304a; +} + +th { + background-color: #33304a; + color: #b39ddb; + font-weight: 500; +} + +tr:hover { + background-color: #33304a; +} + +.exam-status-tag { + padding: 1px 4px; + border-radius: 2px; + font-size: 0.9rem; + font-weight: 500; +} + +.exam-status-进行中 { + background-color: #263227; + color: #81c784; +} + +.exam-status-即将开始 { + background-color: #594300; + color: #ffe082; +} + +.exam-status-已结束 { + background-color: #3a2523; + color: #ef9a9a; +} + +.exam-status-未开始 { + background-color: #33304a; + color: #ede7f6; +} + +#settings-modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.18); + backdrop-filter: none; +} + +#settings-modal-content { + background: #23232b; + padding: 20px 24px; + margin: 40px auto; + border-radius: 4px; + width: 400px; + max-height: 70vh; + overflow-y: auto; + box-shadow: 0 2px 8px rgba(20,20,20,0.18); +} + +#settings-modal-content::-webkit-scrollbar { + width: 8px; +} + +#settings-modal-content::-webkit-scrollbar-track { + background: transparent; + margin: 4px; +} + +#settings-modal-content::-webkit-scrollbar-thumb { + background: #33304a; + border-radius: 4px; + border: none; +} + +#settings-modal-content::-webkit-scrollbar-thumb:hover { + background: #635B70; +} + +#settings-modal-content h3 { + margin: 0 0 24px; + color: #ede7f6; + font-size: 18px; + font-weight: 500; +} + +#settings-modal-content label { + display: flex; + align-items: center; + gap: 8px; + margin: 8px 0; + font-size: 14px; + color: #ede7f6; +} + +#settings-modal-content input[type="number"], +#settings-modal-content input[type="text"] { + font-size: 1rem; + padding: 8px 12px; + margin: 4px 0 12px; + width: 100%; + box-sizing: border-box; + border: 1px solid #33304a; + border-radius: 4px; + background-color: #29293a; + color: #ede7f6; + transition: all 0.2s ease; +} + +#settings-modal-content input:focus { + outline: none; + border-color: #b39ddb; + background-color: #33304a; +} + +.button-group { + display: flex; + justify-content: flex-end; + gap: 8px; + margin-top: 16px; + position: relative; + background-color: #23232b; + padding: 8px 0; + border-top: 1px solid #33304a; + border-radius: 0 0 4px 4px; +} + +#save-settings-btn, #close-settings-btn { + padding: 8px 16px; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + border: none; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 8px; + background-color: #33304a; + color: #ede7f6; + box-shadow: none; +} + +#save-settings-btn { + background-color: #b39ddb; + color: #23232b; +} + +#close-settings-btn { + background-color: #33304a; + color: #ede7f6; +} + +#save-settings-btn:hover, #close-settings-btn:hover { + background-color: #5e5470; + transform: none; + box-shadow: none; +} + +#save-settings-btn::before { + content: "✓"; + font-size: 18px; +} + +#close-settings-btn::before { + content: "✕"; + font-size: 18px; +} + +.error-container { + position: fixed; + bottom: 16px; + left: 50%; + transform: translateX(-50%); + background: #3a2523; + color: #ef9a9a; + padding: 8px 16px; + border-radius: 4px; + display: none; + z-index: 10001; + box-shadow: 0 2px 4px rgba(20,20,20,0.18); + animation: slideUp 0.3s ease; +} + +.switch { + position: relative; + display: inline-block; + width: 36px; + height: 20px; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #33304a; + transition: .3s; + border-radius: 10px; +} + +.slider:before { + position: absolute; + content: ""; + height: 14px; + width: 14px; + left: 3px; + bottom: 3px; + background-color: #ede7f6; + transition: .3s; + border-radius: 50%; +} + +input:checked + .slider { + background-color: #b39ddb; +} + +input:checked + .slider:before { + transform: translateX(16px); + background-color: #23232b; +} + +.config-file-container { + margin: 12px 0; + padding: 12px; + border: 1px solid #33304a; + border-radius: 4px; + background-color: #23232b; + transition: all 0.2s ease; +} + +.config-file-container:hover { + border-color: #b39ddb; + box-shadow: 0 1px 4px rgba(20,20,20,0.18); +} + +.config-file-container input[type="file"] { + max-width: 100%; + width: auto; + box-sizing: border-box; + padding: 8px; + border: 1px dashed #33304a; + border-radius: 4px; + background-color: #29293a; + color: #ede7f6; + cursor: pointer; + transition: all 0.2s ease; +} + +.config-file-container input[type="file"]::-webkit-file-upload-button { + padding: 4px 8px; + margin-right: 12px; + background-color: #33304a; + color: #ede7f6; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; +} + +.config-file-container input[type="file"]::-webkit-file-upload-button:hover { + background-color: #5e5470; +} + +.file-hint { + margin-top: 6px; + font-size: 12px; + color: #bdbdbd; + line-height: 1.5; +} + +.config-control-btn { + margin-top: 10px; + padding: 8px 16px; + background-color: #33304a; + color: #ede7f6; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 12px; + font-weight: 500; + transition: all 0.2s ease; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.config-control-btn:hover { + background-color: #5e5470; + transform: none; + box-shadow: none; +} + +.theme-toggle-container { + margin: 12px 0; + display: flex; + flex-direction: column; + gap: 8px; +} + +#theme-select { + width: 100%; + padding: 8px 12px; + font-size: 1rem; + background-color: #29293a; + color: #ede7f6; + border: 1px solid #33304a; + border-radius: 4px; + cursor: pointer; + appearance: none; + -webkit-appearance: none; + background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 16px center; + background-size: 12px; +} + +#theme-select:hover { + background-color: #33304a; + border-color: #5e5470; +} + +#theme-select:focus { + outline: none; + border-color: #b39ddb; + background-color: #33304a; +} + +#theme-select option { + background-color: #29293a; + color: #ede7f6; + padding: 8px; +} + +#theme-select option:hover, +#theme-select option:focus { + background-color: #33304a; +} + +.theme-toggle-container label { + font-size: 14px; + color: #ede7f6; + margin-bottom: 4px; +} + +.reminder-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.92); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + visibility: hidden; + transition: all 0.5s ease; + backdrop-filter: blur(8px); + z-index: 9999; +} + +.reminder-overlay.show { + opacity: 1; + visibility: visible; +} + +.reminder-content { + text-align: center; + animation: fadeIn 0.5s ease; + border-radius: 4px; + background: #23232b; + box-shadow: 0 2px 8px rgba(20,20,20,0.18); + padding: 16px; +} + +.reminder-title { + font-size: 5rem; + color: #ef9a9a; + margin-bottom: 1rem; +} + +.reminder-subtitle { + font-size: 3rem; + color: #ffe082; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.info-toggle-btn { + position: absolute; + right: 20px; + top: 20px; + background-color: #33304a; + color: #ede7f6; + border: none; + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + z-index: 1; +} + +.info-toggle-btn:hover { + background-color: #5e5470; + transform: none; +} + +.info-toggle-btn .material-icons { + font-size: 18px; +} + +#paper-info { + font-size: 3rem; + margin: 8px 0; + text-align: left; + color: #ede7f6; +} + +#exam-papers, #answer-sheets { + margin: 4px 0; +} + +.paper-count-container { + margin: 10px 0; +} + +.paper-input-group { + display: flex; + align-items: center; + gap: 6px; + margin: 4px 0; + font-size: 2.5rem; +} + +.count-btn-group { + display: flex; + flex-direction: column; + gap: 2px; + margin-right: 8px; +} + +.count-control { + display: flex; + align-items: center; + gap: 2px; +} + +.count-control input { + width: 36px; + padding: 2px; + font-size: 2rem; + text-align: center; + background-color: #332D41; + color: #E6E1E5; + border: 1px solid #33304a; + border-radius: 4px; +} + +.count-btn { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border: none; + border-radius: 50%; + background-color: #33304a; + color: #ede7f6; + cursor: pointer; + transition: all 0.2s ease; +} + +.count-btn:hover { + background-color: #5e5470; + transform: none; +} + +.count-btn .material-icons { + font-size: 20px; +} + +.info-section { + position: relative; +} + +.info-toggle-btn { + position: absolute; + right: 0; + top: 0; + background-color: #33304a; + color: #ede7f6; + border: none; + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + z-index: 2; +} + +.info-toggle-btn:hover { + background-color: #5e5470; + transform: none; +} + +.info-toggle-btn .material-icons { + font-size: 18px; +} + +/* 优化提醒设置弹窗样式 */ +#reminder-modal.settings-modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + background: rgba(0,0,0,0.18); + backdrop-filter: none; +} + +#reminder-modal-content.settings-panel { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 400px; + max-width: 98vw; + max-height: 70vh; + overflow-y: auto; + background: #23232b; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(20,20,20,0.18); + padding: 20px 24px; +} + +#reminder-modal-content.settings-panel h3 { + margin-top: 0; + margin-bottom: 24px; + font-size: 18px; + font-weight: 500; + color: #ede7f6; +} + +.reminder-table { + width: 100%; + border-collapse: separate; + border-spacing: 0; + margin-bottom: 12px; + background: #29293a; + border-radius: 4px; + overflow: hidden; + table-layout: fixed; + box-shadow: none; +} + +.reminder-table th, .reminder-table td { + padding: 8px 4px; + font-size: 1.4rem; + text-align: center; + border-bottom: 1px solid #33304a; + vertical-align: middle; + word-break: break-all; +} + +.reminder-table th { + background: #33304a; + color: #b39ddb; + font-weight: 500; +} + +.reminder-table tr:last-child td { + border-bottom: none; +} + +.reminder-table th:nth-child(1), +.reminder-table td:nth-child(1) { + width: 50%; + text-align: left; + padding-left: 8px; +} +.reminder-table th:nth-child(2), +.reminder-table td:nth-child(2) { + width: 15%; +} +.reminder-table th:nth-child(3), +.reminder-table td:nth-child(3) { + width: 25%; +} +.reminder-table th:nth-child(4), +.reminder-table td:nth-child(4) { + width: 10%; +} + +.reminder-table .action-btn { + padding: 4px 10px; + border-radius: 4px; + background: #33304a; + color: #ede7f6; + border: none; + font-size: 0.9rem; + cursor: pointer; + transition: background 0.2s; + margin: 0 auto; + display: block; +} + +.reminder-table .action-btn:hover { + background: #5e5470; +} + +.reminder-btn { + padding: 4px 10px; + border-radius: 4px; + background: #3a2523; + color: #ef9a9a; + border: none; + font-size: 0.9rem; + cursor: pointer; + transition: background 0.2s; + margin: 0 auto; + display: block; +} + +.reminder-btn:hover { + background: #5c1130; +} + +.reminder-select { + width: 100%; + padding: 4px 8px; + font-size: 0.9rem; + border: 1px solid #33304a; + border-radius: 4px; + background: #29293a; + color: #ede7f6; + transition: border-color 0.2s; + outline: none; +} + +.reminder-select:focus { + border-color: #b39ddb; +} + +.reminder-time-input { + width: 48px; + padding: 4px 6px; + font-size: 0.9rem; + border: 1px solid #33304a; + border-radius: 4px; + background: #29293a; + color: #ede7f6; + transition: border-color 0.2s; + outline: none; + text-align: center; +} + +.reminder-time-input:focus { + border-color: #b39ddb; +} + +#reminder-modal-content .button-group { + background: #23232b; + border-top: 1px solid #33304a; + margin-top: 32px; + padding: 16px 0 0 0; + display: flex; + justify-content: flex-end; + gap: 8px; + border-radius: 0 0 4px 4px; +} + +.reminder-btn-group, +#reminder-modal-content .button-group { + display: flex; + justify-content: flex-end; + gap: 8px; + margin-top: 16px; + background: #23232b; + border-top: 1px solid #33304a; + padding: 8px 0 0 0; + border-radius: 0 0 4px 4px; +} + +#save-reminder-btn, #close-reminder-btn { + padding: 8px 16px; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + border: none; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 8px; + background-color: #33304a; + color: #ede7f6; +} + +#save-reminder-btn { + background-color: #b39ddb; + color: #23232b; +} + +#close-reminder-btn { + background-color: #33304a; + color: #ede7f6; +} + +#save-reminder-btn:hover, #close-reminder-btn:hover { + background-color: #5e5470; + transform: none; + box-shadow: none; +} \ No newline at end of file diff --git a/exam/Styles/md2/light.css b/exam/Styles/md2/light.css new file mode 100644 index 0000000..8ebedd3 --- /dev/null +++ b/exam/Styles/md2/light.css @@ -0,0 +1,884 @@ +#return-btn { + position: absolute; /* 绝对定位 */ + top: 20px; /* 距离顶部 20px */ + left: 20px; /* 距离左侧 20px */ + padding: 12px 24px; /* 内边距 */ + font-size: 1rem; /* 字体大小 */ + cursor: pointer; /* 鼠标悬停时显示为手型 */ + background-color: #E8DEF8; /* 按钮背景颜色 */ + color: #000000; /* 按钮文字颜色 */ + border: none; /* 按钮边框样式 */ + border-radius: 4px; /* 按钮圆角大小 */ + box-shadow: none; /* 按钮阴影 */ + transition: all 0.2s ease; /* 背景颜色和缩放的过渡效果 */ + z-index: 1001; /* 按钮层级 */ +} + +#return-btn:hover { + background-color: #ede7f6; /* 悬停时的背景颜色 */ + transform: none; /* 悬停时向上移动 1px */ + box-shadow: none; /* 悬停时的阴影效果 */ +} + +body { + font-family: 'Roboto', 'HarmonyOS Sans SC', sans-serif; + margin: 0; + padding: 0; + background: #fafafa; + color: #1C1B1F; + overflow: auto; +} + +body::-webkit-scrollbar { + display: none; +} + +.top-btn-group { + position: absolute; + top: 20px; + right: 20px; + display: flex; + flex-direction: row; + gap: 8px; + z-index: 1001; +} + +#fullscreen-btn, #settings-btn, #reminder-settings-btn { + padding: 8px 16px; + font-size: 1rem; + cursor: pointer; + background-color: #ede7f6; + color: #1a237e; + border: none; + border-radius: 4px; + box-shadow: none; + transition: all 0.2s ease; + display: flex; + align-items: center; +} + +#fullscreen-btn::before { + content: "fullscreen"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#settings-btn::before { + content: "settings"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#reminder-settings-btn::before { + content: "notifications"; + font-family: 'Material Icons'; + font-size: 20px; + margin-right: 4px; +} + +#fullscreen-btn:hover, #settings-btn:hover, #reminder-settings-btn:hover { + background-color: #d1c4e9; + transform: none; + box-shadow: none; +} + +.container { + padding: 16px; + max-width: 1200px; + margin: auto; + background-color: #fff; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(60,60,60,0.08); +} + +h1 { + font-size: 3.5rem; + font-weight: 400; + text-align: left; + margin-bottom: 16px; + color: #1C1B1F; + display: flex; + align-items: center; + justify-content: space-between; +} + +#room { + font-size: 3.5rem; + font-weight: 400; + color: #1C1B1F; + margin-left: 20px; +} + +#message { + font-size: 1.8rem; + color: #512da8; + margin-bottom: 24px; +} + +.content { + display: flex; + justify-content: space-between; + gap: 12px; +} + +.left-column, .right-column { + display: flex; + flex-direction: column; + gap: 12px; +} + +.left-column { + width: 48%; +} + +.right-column { + width: 48%; +} + +.clock-section, .info-section, .right-column { + background-color: #fff; + padding: 16px; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(60,60,60,0.06); +} + +.info-section { + position: relative; +} + +#current-time { + font-size: 8rem; + text-align: center; + color: #512da8; + margin: 0; + font-weight: 400; +} + +#current-subject, #exam-timing, #remaining-time, #status { + font-size: 3rem; + margin: 8px 0; + text-align: left; + color: #1C1B1F; +} + +#paper-info { + font-size: 3rem; + margin: 8px 0; + text-align: left; + color: #1C1B1F; +} + +#exam-papers, #answer-sheets { + margin: 4px 0; +} + +table { + width: 100%; + border-collapse: separate; + border-spacing: 0; + margin-top: 12px; + background-color: #fff; + border-radius: 4px; + overflow: hidden; + box-shadow: none; +} + +th, td { + padding: 0.5em; + font-size: 1.8rem; + text-align: center; + border-bottom: 1px solid #ede7f6; +} + +th { + background-color: #ede7f6; + color: #1a237e; + font-weight: 500; +} + +tr:hover { + background-color: #f3e5f5; +} + +.exam-status-tag { + padding: 1px 4px; + border-radius: 2px; + font-size: 0.9rem; + font-weight: 500; +} + +.exam-status-进行中 { + background-color: #c8e6c9; + color: #388e3c; +} + +.exam-status-即将开始 { + background-color: #fff9c4; + color: #fbc02d; +} + +.exam-status-已结束 { + background-color: #ffcdd2; + color: #c62828; +} + +.exam-status-未开始 { + background-color: #ede7f6; + color: #1a237e; +} + +#settings-modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.18); + backdrop-filter: none; +} + +#settings-modal-content { + background: #fff; + padding: 20px 24px; + margin: 40px auto; + border-radius: 4px; + width: 400px; + max-height: 70vh; + overflow-y: auto; + box-shadow: 0 2px 8px rgba(60,60,60,0.12); +} + +#settings-modal-content::-webkit-scrollbar { + width: 8px; +} + +#settings-modal-content::-webkit-scrollbar-track { + background: transparent; + margin: 4px; +} + +#settings-modal-content::-webkit-scrollbar-thumb { + background: #ede7f6; + border-radius: 4px; + border: none; +} + +#settings-modal-content::-webkit-scrollbar-thumb:hover { + background: #D0BCFF; +} + +#settings-modal-content h3 { + margin: 0 0 24px; + color: #1C1B1F; + font-size: 18px; + font-weight: 500; +} + +#settings-modal-content label { + display: flex; + align-items: center; + gap: 8px; + margin: 8px 0; + font-size: 14px; + color: #1C1B1F; +} + +#settings-modal-content input[type="number"], +#settings-modal-content input[type="text"] { + font-size: 1rem; + padding: 8px 12px; + margin: 4px 0 12px; + width: 100%; + box-sizing: border-box; + border: 1px solid #ede7f6; + border-radius: 4px; + background-color: #fff; + color: #1a237e; + transition: all 0.2s ease; +} + +#settings-modal-content input:focus { + outline: none; + border-color: #512da8; + background-color: #f3e5f5; +} + +.button-group { + display: flex; + justify-content: flex-end; + gap: 8px; + margin-top: 16px; + position: relative; + background-color: #fff; + padding: 8px 0; + border-top: 1px solid #ede7f6; + border-radius: 0 0 4px 4px; +} + +#save-settings-btn, #close-settings-btn { + display: flex; + align-items: center; + gap: 12px; +} + +#save-settings-btn::before { + content: "✓"; + font-size: 18px; +} + +#close-settings-btn::before { + content: "✕"; + font-size: 18px; +} + +#save-settings-btn, #close-settings-btn { + padding: 8px 16px; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + border: none; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 8px; + background-color: #ede7f6; + color: #1a237e; + box-shadow: none; +} + +#save-settings-btn { + background-color: #512da8; + color: #fff; +} + +#close-settings-btn { + background-color: #ede7f6; + color: #1a237e; +} + +#save-settings-btn:hover, #close-settings-btn:hover { + background-color: #d1c4e9; + transform: none; + box-shadow: none; +} + +.error-container { + position: fixed; + bottom: 16px; + left: 50%; + transform: translateX(-50%); + background: #ffcdd2; + color: #c62828; + padding: 8px 16px; + border-radius: 4px; + display: none; + z-index: 10001; + box-shadow: 0 2px 4px rgba(60,60,60,0.08); + animation: slideUp 0.3s ease; +} + +.switch { + position: relative; + display: inline-block; + width: 36px; + height: 20px; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ede7f6; + transition: .3s; + border-radius: 10px; +} + +.slider:before { + position: absolute; + content: ""; + height: 14px; + width: 14px; + left: 3px; + bottom: 3px; + background-color: #FFFFFF; + transition: .3s; + border-radius: 50%; +} + +input:checked + .slider { + background-color: #512da8; +} + +input:checked + .slider:before { + transform: translateX(16px); + background-color: #FFFFFF; +} + +.config-file-container { + margin: 12px 0; + padding: 12px; + border: 1px solid #ede7f6; + border-radius: 4px; + background-color: #f3e5f5; + transition: all 0.2s ease; +} + +.config-file-container:hover { + border-color: #512da8; + box-shadow: 0 1px 4px rgba(60,60,60,0.08); +} + +.config-file-container input[type="file"] { + max-width: 100%; + width: auto; + box-sizing: border-box; + padding: 8px; + border: 1px dashed #ede7f6; + border-radius: 4px; + background-color: #fff; + color: #1a237e; + cursor: pointer; + transition: all 0.2s ease; +} + +.config-file-container input[type="file"]::-webkit-file-upload-button { + padding: 4px 8px; + margin-right: 12px; + background-color: #ede7f6; + color: #1a237e; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; +} + +.config-file-container input[type="file"]::-webkit-file-upload-button:hover { + background-color: #d1c4e9; +} + +.file-hint { + margin-top: 6px; + font-size: 12px; + color: #49454F; + line-height: 1.5; +} + +.config-control-btn { + margin-top: 10px; + padding: 8px 16px; + background-color: #ede7f6; + color: #1a237e; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 12px; + font-weight: 500; + transition: all 0.2s ease; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.config-control-btn:hover { + background-color: #d1c4e9; + transform: none; + box-shadow: none; +} + +.theme-toggle-container { + margin: 12px 0; + display: flex; + flex-direction: column; + gap: 8px; +} + +#theme-select { + width: 100%; + padding: 8px 12px; + font-size: 1rem; + background-color: #fff; + color: #1a237e; + border: 1px solid #ede7f6; + border-radius: 4px; + cursor: pointer; + appearance: none; + -webkit-appearance: none; + background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 16px center; + background-size: 12px; +} + +#theme-select:hover { + background-color: #f3e5f5; + border-color: #d1c4e9; +} + +#theme-select:focus { + outline: none; + border-color: #512da8; + background-color: #f3e5f5; +} + +#theme-select option { + background-color: #fff; + color: #1a237e; + padding: 8px; +} + +#theme-select option:hover, +#theme-select option:focus { + background-color: #f3e5f5; +} + +.theme-toggle-container label { + font-size: 14px; + color: #1a237e; + margin-bottom: 4px; +} + +.reminder-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.92); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + visibility: hidden; + transition: all 0.5s ease; + backdrop-filter: blur(8px); + z-index: 9999; + border-radius: 0; +} + +.reminder-overlay.show { + opacity: 1; + visibility: visible; +} + +.reminder-content { + text-align: center; + animation: fadeIn 0.5s ease; + border-radius: 4px; + background: #fff; + box-shadow: 0 2px 8px rgba(60,60,60,0.12); + padding: 16px; +} + +.reminder-title { + font-size: 5rem; + color: #c62828; + margin-bottom: 1rem; +} + +.reminder-subtitle { + font-size: 3rem; + color: #fbc02d; +} + +.info-toggle-btn { + position: absolute; + right: 0; + top: 0; + background-color: #ede7f6; + color: #1a237e; + border: none; + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + z-index: 2; +} + +.info-toggle-btn:hover { + background-color: #d1c4e9; + transform: none; +} + +.info-toggle-btn .material-icons { + font-size: 18px; +} + +.paper-count-container { + margin: 10px 0; +} + +.paper-input-group { + display: flex; + align-items: center; + gap: 6px; + margin: 4px 0; + font-size: 2.5rem; +} + +.count-control { + display: flex; + align-items: center; + gap: 2px; +} + +.count-control input { + width: 36px; + padding: 2px; + font-size: 2rem; + text-align: center; + background-color: #FFFFFF; + color: #1C1B1F; + border: 1px solid #ede7f6; + border-radius: 4px; +} + +.count-btn { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border: none; + border-radius: 50%; + background-color: #ede7f6; + color: #1a237e; + cursor: pointer; + transition: all 0.2s ease; +} + +.count-btn:hover { + background-color: #d1c4e9; + transform: none; +} + +.count-btn .material-icons { + font-size: 20px; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 优化提醒设置弹窗样式 */ +#reminder-modal.settings-modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + background: rgba(0,0,0,0.18); + backdrop-filter: none; +} + +#reminder-modal-content.settings-panel { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 400px; + max-width: 98vw; + max-height: 70vh; + overflow-y: auto; + background: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(60,60,60,0.12); + padding: 20px 24px; +} + +#reminder-modal-content.settings-panel h3 { + margin-top: 0; + margin-bottom: 24px; + font-size: 18px; + font-weight: 500; + color: #1a237e; +} + +.reminder-table { + width: 100%; + border-collapse: separate; + border-spacing: 0; + margin-bottom: 12px; + background: #fff; + border-radius: 4px; + overflow: hidden; + table-layout: fixed; + box-shadow: none; +} + +.reminder-table th, .reminder-table td { + padding: 8px 4px; + font-size: 1.4rem; + text-align: center; + border-bottom: 1px solid #ede7f6; + vertical-align: middle; + word-break: break-all; +} + +.reminder-table th { + background: #ede7f6; + color: #1a237e; + font-weight: 500; +} + +.reminder-table tr:last-child td { + border-bottom: none; +} + +.reminder-table th:nth-child(1), +.reminder-table td:nth-child(1) { + width: 50%; + text-align: left; + padding-left: 8px; +} +.reminder-table th:nth-child(2), +.reminder-table td:nth-child(2) { + width: 15%; +} +.reminder-table th:nth-child(3), +.reminder-table td:nth-child(3) { + width: 25%; +} +.reminder-table th:nth-child(4), +.reminder-table td:nth-child(4) { + width: 10%; +} + +.reminder-table .action-btn { + padding: 4px 10px; + border-radius: 4px; + background: #ede7f6; + color: #1a237e; + border: none; + font-size: 0.9rem; + cursor: pointer; + transition: background 0.2s; + margin: 0 auto; + display: block; +} + +.reminder-table .action-btn:hover { + background: #d1c4e9; +} + +#reminder-modal-content .button-group { + background: #fff; + border-top: 1px solid #ede7f6; + margin-top: 16px; + padding: 8px 0 0 0; + display: flex; + justify-content: flex-end; + gap: 8px; + border-radius: 0 0 4px 4px; +} + +.reminder-btn { + padding: 4px 10px; + border-radius: 4px; + background: #ffcdd2; + color: #c62828; + border: none; + font-size: 0.9rem; + cursor: pointer; + transition: background 0.2s; + margin: 0 auto; + display: block; +} + +.reminder-btn:hover { + background: #e57373; +} + +.reminder-select { + width: 100%; + padding: 4px 8px; + font-size: 0.9rem; + border: 1px solid #ede7f6; + border-radius: 4px; + background: #fff; + color: #1a237e; + transition: border-color 0.2s; + outline: none; +} + +.reminder-select:focus { + border-color: #512da8; +} + +.reminder-time-input { + width: 48px; + padding: 4px 6px; + font-size: 0.9rem; + border: 1px solid #ede7f6; + border-radius: 4px; + background: #fff; + color: #1a237e; + transition: border-color 0.2s; + outline: none; + text-align: center; +} + +.reminder-time-input:focus { + border-color: #512da8; +} + +.reminder-btn-group, +#reminder-modal-content .button-group { + display: flex; + justify-content: flex-end; + gap: 8px; + margin-top: 16px; + background: #fff; + border-top: 1px solid #ede7f6; + padding: 8px 0 0 0; + border-radius: 0 0 4px 4px; +} + +#save-reminder-btn, #close-reminder-btn { + padding: 8px 16px; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + border: none; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 8px; +} + +#save-reminder-btn { + background-color: #512da8; + color: #fff; +} + +#close-reminder-btn { + background-color: #ede7f6; + color: #1a237e; +} + +#save-reminder-btn:hover, #close-reminder-btn:hover { + background-color: #d1c4e9; + transform: none; + box-shadow: none; +} \ No newline at end of file diff --git a/exam/Styles/profile.json b/exam/Styles/profile.json index 3699cc7..2dece06 100644 --- a/exam/Styles/profile.json +++ b/exam/Styles/profile.json @@ -11,6 +11,10 @@ { "name": "Material Design 3", "path": "md3" + }, + { + "name": "Material Design 2", + "path": "md2" } ] } \ No newline at end of file