3c57c167f2
导入 SiteForge Factory V5 基线源码: - FastAPI + SQLite + Docker Compose(Web + Worker)架构 - 四套商业主题 × 14 页面模板(1.1.0,含历史版本快照) - 四种建站模式骨架 + 迁移审计 + 发布门禁 - 52 项 pytest 测试 - 补全计划主文档 docs/superpowers/plans/ Co-Authored-By: Claude Code <noreply@anthropic.com>
2 lines
12 KiB
CSS
2 lines
12 KiB
CSS
:root{--navy:#121b2a;--navylight:#1c2b40;--blue:#2563eb;--ink:#18263a;--grey:#798699;--border:#e5e9f0;--bg:#f7f9fc;--shadow:0 10px 28px #1e355b0b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,"Segoe UI",Arial,"Microsoft Yahei",sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.workspace{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{background:#152033;color:#fff;padding:27px 15px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.identity{display:flex;gap:11px;align-items:center;padding:0 14px 34px;border-bottom:1px solid #ffffff19}.logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(140deg,#5b96f9,#3551bd);display:grid;place-items:center;font-size:25px;font-weight:850;position:relative}.logo span{position:absolute;right:-4px;top:-9px;font-size:12px;color:#75bfff}.identity strong{font-size:20px;letter-spacing:-.4px}.identity small,.sidebar-bottom small{display:block;color:#8291ad;font-size:9px;letter-spacing:1.4px;margin-top:2px}.side-caption{display:flex;justify-content:space-between;color:#8e9db6;font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;margin:29px 13px 12px}.side-caption button{color:#9dbbe8;border:0;background:none;font-size:24px;line-height:12px}.side-link{width:100%;border:0;background:transparent;color:#bdc8da;display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:9px;text-align:left;font-weight:650}.side-link>span{font-size:20px;width:23px;text-align:center;font-weight:400}.side-link:hover,.side-link.selected{background:#2b3b54;color:white}.site-nav{display:flex;flex-direction:column;gap:3px;overflow:auto;padding-bottom:20px}.site-nav button{border:0;background:transparent;color:#aabbd2;padding:11px 14px;display:flex;gap:11px;align-items:center;text-align:left;width:100%;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-nav button.active,.site-nav button:hover{background:#243550;color:white}.site-dot{display:grid;place-items:center;flex-shrink:0;background:#385d82;width:25px;height:25px;border-radius:7px;font-size:10px;font-weight:800}.sidebar-bottom{display:flex;align-items:center;gap:10px;margin-top:auto;padding:23px 12px 4px;border-top:1px solid #ffffff1a}.sidebar-bottom strong{font-size:11px}.status-dot{width:10px;height:10px;background:#43c78d;border-radius:50%;box-shadow:0 0 0 4px #43c78d18}.shell{min-width:0}.topbar{height:80px;border-bottom:1px solid var(--border);background:white;display:flex;justify-content:space-between;align-items:center;padding:0 40px;gap:25px}.breadcrumb{display:flex;gap:13px;font-size:12px;color:#9aa3b2}.breadcrumb strong{color:#2b3850;font-size:13px}.crumb-sep{color:#d1d8e0}.top-actions{display:flex;gap:9px;align-items:center}.env-label{font-size:10px;letter-spacing:1px;color:#2eaf7c;margin-right:15px;font-weight:750}.main{padding:40px;max-width:1650px;margin:auto}.eyebrow{color:#5181db;font-size:10px;letter-spacing:2px;font-weight:800}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 30px}.page-head h1{font-size:30px;letter-spacing:-1px;line-height:1.25;margin:8px 0}.page-head p{color:var(--grey);margin:0;font-size:13px}.btn{border-radius:8px;border:1px solid transparent;padding:10px 17px;font-weight:700;display:inline-flex;gap:9px;align-items:center;justify-content:center;white-space:nowrap;transition:filter .2s,transform .2s}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn.primary{background:#3266dc;color:white;box-shadow:0 4px 13px #356ce020}.btn.light{color:#365078;background:white;border-color:#dce3ef}.btn.danger{background:#fff2f0;color:#cf4040;border-color:#ffd5d0}.btn.small{padding:9px 13px;font-size:12px}.btn.tiny{padding:5px 9px;font-size:11px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.site-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:transform .2s}.site-card:hover{transform:translateY(-4px)}.card-preview{height:156px;display:flex;align-items:center;padding:23px;position:relative;overflow:hidden}.preview-auto{background:linear-gradient(115deg,#0a1723,#2b455c);color:white}.preview-ind{background:linear-gradient(115deg,#073951,#1e839e);color:white}.preview-corp{background:linear-gradient(115deg,#ecf1ff,#bfc9ec);color:#2c3982}.preview-min{background:linear-gradient(115deg,#dad5c9,#f6f2eb);color:#202020}.card-preview .brandmark{position:relative;z-index:3;font-size:24px;font-weight:850;max-width:70%;line-height:1.12}.preview-min .brandmark{font-family:Georgia,serif;font-size:30px;font-weight:400}.card-preview:after{content:'';position:absolute;border:23px solid #ffffff18;border-radius:50%;height:200px;width:200px;right:-30px;bottom:-145px;transform:rotate(-18deg)}.preview-ind:after{border-radius:12px;transform:rotate(35deg);right:0}.preview-corp:after{background:#f8f8ff88;border:0;right:20px;top:-70px}.card-tag{position:absolute;top:14px;right:16px;background:#fff4;padding:4px 9px;border-radius:15px;font-size:10px;z-index:2}.site-card-body{padding:20px 22px}.site-card-body h3{margin:0;font-size:17px}.site-card-body p{color:#8794a4;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:7px 0 20px}.site-card-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:16px;font-size:11px;color:#748296}.add-card{min-height:300px;border:2px dashed #cfdbed;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:14px;background:#f7faff;cursor:pointer}.add-circle{font-size:35px;color:#5890e1;background:white;border-radius:12px;width:61px;height:61px;display:grid;place-items:center;margin-bottom:12px}.add-card h3{margin:7px}.add-card p{color:var(--grey);font-size:12px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:0 0 24px}.metric{padding:21px;background:white;border:1px solid var(--border);border-radius:12px}.metric small{display:block;color:#8d9bad;font-size:11px}.metric strong{display:block;font-size:26px;margin:5px 0}.metric span{color:#89a1ba;font-size:11px}.tabs{display:flex;gap:5px;border-bottom:1px solid #dee5f0;margin:30px 0 26px;overflow:auto}.tab{white-space:nowrap;border:0;background:none;color:#6c7e94;padding:13px 18px;font-size:13px;font-weight:700;border-bottom:3px solid transparent}.tab.current{color:#285ed5;border-bottom-color:#285ed5}.panel{background:white;border:1px solid var(--border);border-radius:13px;padding:26px;box-shadow:var(--shadow);margin-bottom:20px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:21px}.panel-title h3{font-size:17px;margin:0}.panel-title p{font-size:12px;color:#8e9caf;margin:4px 0}.panel-title .muted{font-size:12px;color:var(--grey)}.setting-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.setting-grid label,.form-grid label,.field{display:flex;flex-direction:column;gap:7px;color:#394960;font-size:12px;font-weight:680}.full{grid-column:1 / -1}input,textarea,select{background:white;border:1px solid #dce3ed;border-radius:8px;padding:11px 12px;min-width:0;color:#29374d;outline:none;width:100%}input:focus,textarea:focus,select:focus{border-color:#639af2;box-shadow:0 0 0 3px #639af215}textarea{resize:vertical}label small{font-weight:400;color:#95a0af}.panel-footer{margin-top:24px;display:flex;gap:10px;align-items:center;justify-content:flex-end}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:14px 12px;color:#8f9bad;font-size:10px;letter-spacing:.8px;background:#f8faff}.data-table td{padding:15px 12px;border-top:1px solid #edf0f5}.data-table tr:hover td{background:#fcfdff}.mono{font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:#5c7189}.pill{display:inline-block;background:#edf4ff;color:#4b72aa;font-size:10px;border-radius:20px;padding:4px 9px}.pill.green{background:#e7f8ef;color:#218450}.pill.yellow{background:#fff6dc;color:#a27a24}.row-actions{display:flex;gap:7px}.table-wrapper{overflow:auto}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:17px;flex-wrap:wrap}.toolbar input{max-width:300px}.toolbar select{width:auto;min-width:120px}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.template-card{border:1px solid #dce5ed;background:#fff;border-radius:12px;overflow:hidden}.template-art{height:180px;padding:28px;display:flex;flex-direction:column;justify-content:center}.template-art span{font-size:11px;opacity:.75;letter-spacing:2px}.template-art strong{font-size:35px;line-height:1.1;max-width:250px}.template-art.min strong{font-family:Georgia,serif;font-weight:400;font-size:41px}.template-card .detail{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.template-card .detail h3{margin:0;font-size:15px}.template-card .detail p{margin:4px 0 0;color:#8a9aad;font-size:11px}.blueprint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-option{border:1px solid var(--border);border-radius:12px;padding:21px;min-height:130px}.feature-option b{display:block;font-size:14px;margin:12px 0 5px}.feature-option p{margin:0;font-size:12px;color:var(--grey)}.feature-icon{font-size:25px;color:#5b86cd}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tip{padding:13px 15px;border-radius:8px;background:#f1f5fd;color:#64799c;font-size:12px}.tip.warning{background:#fff8e8;color:#927034}.pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.65 Consolas,monospace;color:#607188;background:#f8faff;border:1px solid #edf0f5;border-radius:9px;padding:14px}.report-good{color:#1b9e6c}.report-warn{color:#ac7d28}.report-bad{color:#c54545}.empty{text-align:center;padding:54px 20px;color:#8b99a9}.empty div{font-size:36px;color:#adc4e1;margin-bottom:10px}.empty h3{color:#354760;margin:5px}.empty p{font-size:12px}.dialog{border:1px solid #dce5ef;border-radius:16px;padding:0;width:min(620px,95vw);max-height:90vh;box-shadow:0 24px 80px #13264338}.dialog.wide{width:min(860px,95vw)}.dialog::backdrop{background:#15223780;backdrop-filter:blur(3px)}.dialog form{padding:27px 32px}.dialog-head{display:flex;justify-content:space-between;margin-bottom:24px}.dialog-head h2{margin:7px 0 5px;font-size:23px}.dialog-head p{color:var(--grey);font-size:12px;margin:0}.icon-btn{border:0;background:#f1f4fa;width:31px;height:31px;border-radius:8px;font-size:21px;color:#789}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:24px;border-top:1px solid #e5eaf0}.inline-input{display:flex;gap:7px}.inline-input input{flex:1}.editor-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px;background:#f8faff;border-radius:9px}.editor-tools strong{font-size:12px}.editor-tools small{width:100%;color:#9aa7b5}.toast{position:fixed;bottom:25px;right:25px;background:#233651;color:white;border-radius:10px;padding:15px 20px;box-shadow:0 10px 40px #1a233e35;opacity:0;transform:translateY(15px);pointer-events:none;transition:all .25s;z-index:99;max-width:450px}.toast.show{opacity:1;transform:translateY(0)}.loading{padding:40px;text-align:center;color:#8fa0b6}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.step{padding:18px;background:#f6f9ff;border:1px solid #e0eaf7;border-radius:10px}.step span{display:block;color:#4274c4;font-size:11px;letter-spacing:1px}.step strong{display:block;margin-top:9px}.step p{font-size:11px;color:#8091a7;margin:6px 0 0}@media(max-width:1200px){.cards{grid-template-columns:repeat(2,1fr)}.metrics-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 24px}.main{padding:24px}.sidebar{width:230px}.workspace{grid-template-columns:230px minmax(0,1fr)}}@media(max-width:850px){.workspace{grid-template-columns:1fr}.sidebar{height:auto;min-height:auto;position:static;display:block;padding:12px 14px}.identity{padding:5px 0 12px}.sidebar .side-caption,.sidebar .side-link,.sidebar .site-nav,.sidebar-bottom{display:none}.topbar{height:66px}.env-label{display:none}.top-actions .light{display:none}.main{padding:20px}.setting-grid,.split,.template-grid,.blueprint-grid,.steps{grid-template-columns:1fr}}@media(max-width:560px){.cards,.metrics-grid,.form-grid{grid-template-columns:1fr}.full{grid-column:1}.page-head{flex-direction:column;align-items:start}.site-card{min-height:0}.top-actions .btn{font-size:10px}.dialog form{padding:18px}.card-preview{height:130px}}
|