chore: 初始提交 - 移除所有硬编码凭据,统一从环境变量读取

This commit is contained in:
yangxiangyuan
2026-06-11 17:10:58 +08:00
commit c223c79b36
1699 changed files with 313940 additions and 0 deletions
+205
View File
@@ -0,0 +1,205 @@
.root, :root { --card-title-size: 32px; --card-list-size: 24px; --card-padding: 24px }
.html, body { height: 100%; overflow: hidden }
.wall { display: grid; gap: 12px; padding: 8px; min-height: calc(100vh - 60px); height: 100vh; box-sizing: border-box }
.cards { display: grid; grid-template-columns: 1fr; grid-auto-rows: 1fr; height: 100%; gap: 0; align-content: stretch; overflow: hidden }
.cards-inner { display: flex; height: 100%; gap: 12px; will-change: transform; transition: transform 300ms ease }
.cards-inner .card { flex: 0 0 calc(50% - 6px) }
.cards { position: relative }
.card { border: 2px solid #111; border-radius: 16px; padding: var(--card-padding); background: rgba(255,255,255,0.96) }
.card { height: 100%; display: flex; flex-direction: column; position: relative; z-index: 1; overflow: hidden }
.card::before { content: ""; position: absolute; inset: 0; border-radius: 16px; background-image: var(--card-bg-image, none); background-repeat: var(--card-bg-repeat, repeat); background-size: var(--card-bg-size, 120px 120px); background-position: center; opacity: var(--card-bg-opacity, 0.08); z-index: 0 }
.card > * { position: relative; z-index: 1 }
.card .list { flex: 1; font-size: var(--card-list-size) }
.card .lines { flex: 1; font-size: var(--card-list-size); line-height: 1.5 }
.card .lines div { margin: 6px 0 }
.card .title { font-size: var(--card-title-size) }
.card .title { font-size: 32px; font-weight: 700; margin-bottom: 12px }
.card .list { font-size: 24px; line-height: 1.5 }
.card .list li { margin: 6px 0 }
.card .meta { margin-top: 8px; font-size: 16px; color: #666 }
.status { margin: 8px 0; padding: 8px; border: 1px solid #ffd666; background: #fffbe6; color: #a87000; border-radius: 8px }
.controls { display: flex; gap: 8px; align-items: center }
.preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: 6px; max-height: 100%; overflow-y: auto }
.thumb { border: 1px solid #bbb; border-radius: 10px; padding: 6px; background: #fff; cursor: pointer }
.thumb .title { font-size: 12px; font-weight: 600; margin-bottom: 4px }
.preview .title { display: block; max-width: 6em; word-break: break-all; overflow-wrap: anywhere; white-space: normal }
.thumb .list { display: none }
.thumb.active { border-color: #1677ff }
.debug { margin: 12px 0; padding: 8px; border: 1px dashed #aaa; }
.debug-actions { display: flex; gap: 8px; margin-bottom: 8px }
.debug-output { height: 240px; overflow: auto; background: #fafafa; padding: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap }
/* Landscape preference */
@media (orientation: landscape) {
.wall {
grid-template-columns: 1fr auto;
grid-template-rows: 1fr auto;
grid-template-areas:
"cards preview"
"controls controls";
align-items: start;
}
.preview { display: grid; grid-template-columns: 1fr; grid-auto-rows: min-content; gap: 6px; overflow: auto; width: 8em; box-sizing: border-box }
.thumb { min-width: unset; width: 100% }
.preview .title { max-width: 8em }
.weather { grid-column: 1 / -1 !important }
.controls { grid-column: 1 / -1 !important; width: 100% }
}
/* Portrait phones (iPhone 14/Pro/Max widths ~393–430px) */
@media (max-width: 480px) {
.wall { gap: 8px; padding: 6px; min-height: 100vh }
.cards { gap: 8px }
.card { padding: var(--card-padding) }
.card .title { font-size: var(--card-title-size) }
.card .list { font-size: var(--card-list-size) }
.preview { display: flex; gap: 6px; overflow: hidden; flex-wrap: nowrap }
.thumb { min-width: 90px; padding: 4px }
.thumb .title { font-size: 11px }
.thumb .list { font-size: 9px; line-height: 1.25 }
.controls { gap: 6px }
}
/* Portrait mobile: allow vertical scroll */
@media (max-width: 480px) and (orientation: portrait) {
html, body { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch }
.wall { min-height: auto }
}
/* Mobile iPad/iPhone friendly */
@media (max-width: 800px) {
.card .title { font-size: 28px }
.card .list { font-size: 20px }
.debug-output { height: 160px }
.controls { flex-wrap: wrap }
}
/* Portrait strict sizing for preview and weather */
@media (orientation: portrait) {
.preview { height: 4em; display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; align-items: center }
.thumb { height: 3.6em; padding: 4px 6px; display: flex; align-items: center }
.preview .title { line-height: 1em; max-width: 8em; max-height: 4em; word-break: break-all; overflow: hidden; white-space: normal }
}
.wall-settings-modal {
max-width: 640px;
width: 90vw;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
border-radius: 14px;
padding: 20px;
gap: 12px;
}
.wall-settings-modal h3 {
margin: 0 0 8px 0;
font-size: 18px;
}
.wall-settings-modal label {
display: block;
margin-bottom: 4px;
font-size: 13px;
color: #555;
}
.wall-settings-modal input,
.wall-settings-modal select {
width: 100%;
}
.wall-cards-modal {
width: 80vw;
max-width: 80vw;
max-height: 80vh;
height: 80vh;
padding: 20px;
border-radius: 14px;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
display: grid;
grid-template-rows: auto auto 1fr auto;
gap: 12px;
}
.wall-cards-modal h3 {
margin: 0;
font-size: 18px;
}
.cards-modal-toolbar {
display: flex;
justify-content: flex-start;
align-items: center;
}
.cards-modal-main {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
gap: 12px;
min-height: 0;
}
.cards-modal-list {
border: 1px solid #e5e5e5;
border-radius: 8px;
padding: 8px;
background: #fafafa;
overflow: auto;
}
.cards-modal-editor {
display: grid;
grid-template-rows: auto 1fr auto;
gap: 8px;
min-height: 0;
}
.cards-modal-textarea {
display: grid;
grid-template-rows: auto 1fr;
min-height: 0;
}
.cards-modal-textarea textarea {
width: 100%;
height: 100%;
resize: none;
}
.cards-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.cards-table th,
.cards-table td {
padding: 4px 6px;
border-bottom: 1px solid #e5e5e5;
}
.cards-table tr:hover {
background: #f5f5f5;
}
.wall-cards-modal label {
display: block;
margin-bottom: 4px;
font-size: 13px;
color: #555;
}
.wall-cards-modal input,
.wall-cards-modal textarea {
width: 100%;
}
@media (max-width: 800px) {
.wall-cards-modal {
width: 96vw;
max-width: 96vw;
grid-template-rows: auto auto 1fr auto;
}
.cards-modal-main {
grid-template-columns: 1fr;
grid-template-rows: minmax(0, 0.9fr) minmax(0, 1.1fr);
}
}