perch-design / css /perch-home.css
hongcoding's picture
feat: Warm Paper 设计系统开源(48 CSS + 令牌 + 实时预览)
f402bb3 verified
Raw History Blame Contribute Delete
9.81 kB
/* Gravity Core shares the product's theme tokens; no new appearance preference. */
.perch-home { --home-metal: var(--accent); padding: 0 0 24px; color: var(--text); }
[data-style="darkside"] .perch-home { --home-metal: #d5b580; }
[data-style="darkside"][data-theme="light"] .perch-home { --home-metal: #866330; }
.home-pagebar { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--text-secondary); font-size:11px; }
.home-layout-label { display:flex; align-items:center; gap:7px; flex:none; color:var(--home-metal); font-size:10px; }
.home-layout-label::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--home-metal); }
.home-cover { display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:284px; position:relative; isolation:isolate; }
.home-cover-copy { position:relative; z-index:1; pointer-events:none; }
.home-eyebrow { margin:0 0 15px; color:var(--home-metal); font:10px/1.7 var(--font-mono); letter-spacing:2px; }
.home-cover h2 { margin:0; font:500 clamp(28px,3.4vw,45px)/1.28 var(--font-sans); letter-spacing:-1px; }
.home-cover h2 em { color:var(--home-metal); font-style:normal; }
.home-description { margin:15px 0 0; color:var(--text-secondary); font-size:12px; line-height:1.9; }
.home-core-art { position:relative; min-width:0; height:290px; margin:0 0 0 -26px; overflow:clip; touch-action:pan-y; color:var(--home-metal); }
.home-core-art canvas { display:block; width:100%; height:100%; pointer-events:none; }
.home-core-caption { position:absolute; bottom:17px; right:14px; color:var(--text-secondary); font:9px var(--font-mono); letter-spacing:1px; pointer-events:none; }
.home-core-caption::before { content:""; display:inline-block; width:20px; height:1px; vertical-align:middle; margin-right:7px; background:var(--home-metal); }
.home-core-coordinates { position:absolute; bottom:14px; left:0; color:var(--text-secondary); font:9px/1.9 var(--font-mono); pointer-events:none; }
.home-goal-editor { background:var(--bg-elevated); border:1px solid color-mix(in srgb,var(--home-metal) 24%,var(--border)); border-radius:12px; overflow:hidden; box-shadow:0 12px 30px color-mix(in srgb,var(--bg-sunken) 38%,transparent); }
.home-goal-editor:focus-within { border-color:var(--home-metal); }
.home-goal-editor textarea { display:block; resize:vertical; width:100%; min-height:72px; max-height:340px; padding:18px 18px 8px; background:transparent; border:0; color:var(--text); font:13px/1.8 var(--font-sans); user-select:text; }
.home-goal-editor textarea::placeholder { color:var(--text-secondary); opacity:1; }
.home-goal-editor textarea:focus-visible { outline:none; }
.home-composer-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 11px 11px; }
.home-work-modes { display:flex; flex-wrap:wrap; gap:2px; min-width:0; }
.home-work-modes button { display:flex; align-items:center; justify-content:center; gap:6px; min-height:31px; padding:7px 9px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--text-secondary); font:11px var(--font-sans); cursor:pointer; }
.home-work-modes button[aria-pressed="true"] { background:color-mix(in srgb,var(--text) 5%,var(--bg-elevated)); border-color:var(--border); color:var(--text); }
.home-work-modes button:hover { background:color-mix(in srgb,var(--text) 6%,var(--bg-elevated)); color:var(--text); }
.home-start { display:flex; align-items:center; justify-content:center; gap:9px; min-height:34px; padding:7px 12px; border:1px solid color-mix(in srgb,var(--home-metal) 86%,var(--text)); border-radius:7px; background:var(--home-metal); color:#1c1a15; font:500 11px var(--font-sans); white-space:nowrap; cursor:pointer; }
[data-style="darkside"] .home-start { color:#1c1a15; }
[data-style="darkside"][data-theme="light"] .home-start { color:#fffdf8; }
.home-start kbd { color:inherit; background:none; border:0; padding:0; font:10px var(--font-mono); opacity:.7; }
.home-start:hover { filter:brightness(1.07); }
.home-goal-help { display:flex; align-items:flex-start; gap:6px; margin-top:10px; color:var(--text-secondary); font-size:10px; line-height:1.7; overflow-wrap:anywhere; }
.home-goal-help svg { flex:none; margin-top:2px; }
.home-goal-error { color:var(--danger); border-left:2px solid var(--danger); margin:13px 0 0; padding:4px 10px; font-size:12px; line-height:1.8; }
.home-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.home-command-grid { display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1fr); gap:26px; align-items:center; margin-top:23px; }
.home-command-core { min-width:0; }
.home-core-top { display:flex; align-items:center; justify-content:space-between; color:var(--text-secondary); font:9px var(--font-mono); letter-spacing:1px; }
.is-professional .home-core-art { margin:0; height:286px; }
.is-professional .home-pagebar,.is-professional .home-layout-label { font-family:var(--font-mono); font-size:10px; letter-spacing:.6px; }
.home-mission { min-width:0; }
.home-mission .home-eyebrow { color:var(--text-secondary); margin-bottom:10px; }
.home-mission h2 { margin:0; font:500 26px/1.4 var(--font-sans); letter-spacing:-.7px; }
.home-mission .home-description { margin-top:8px; font-size:11px; }
.home-mission .home-goal-editor { margin-top:17px; border-color:var(--border); border-radius:6px; box-shadow:none; }
.home-editor-head { display:flex; align-items:center; gap:7px; padding:8px 12px; border-bottom:1px solid var(--border); color:var(--text-secondary); font:10px var(--font-mono); }
.home-editor-head>span:last-child { margin-left:auto; color:var(--home-metal); }
.home-mission textarea { min-height:148px; padding:12px; font:11px/1.9 var(--font-mono); }
.home-mission .home-composer-foot { padding:7px 9px; border-top:1px solid var(--border); }
.home-mission .home-work-modes button { min-height:28px; padding:5px 7px; font:9px var(--font-mono); }
.home-mission .home-work-modes svg { display:none; }
.home-mission .home-start { min-height:30px; padding:5px 9px; border-radius:4px; font:10px var(--font-mono); }
.home-mission .home-start kbd { display:none; }
.home-mission .home-goal-help { font-size:9px; }
.workspace-page.has-gravity-home .workspace-header { padding:18px 40px 7px; }
.workspace-page.has-gravity-home .workspace-header .ws-eyebrow { display:none; }
.workspace-page.has-gravity-home .workspace-header h1 { margin:0; font:500 11px var(--font-sans); letter-spacing:0; color:var(--text-secondary); }
.workspace-page.has-gravity-home .workspace-header-actions .local-pill { font-size:9px; }
.workspace-page.has-gravity-home .workspace-header .ws-icon { width:25px; height:25px; border:0; }
.workspace-page.has-gravity-home .workspace-scroll { padding-top:12px; }
.workspace-page.has-gravity-home .workspace-metrics { padding:20px 0 25px; }
.workspace-page.has-gravity-home .ws-metric strong { font-size:25px; }
.workspace-page.has-gravity-home .workspace-recent { display:block; padding:0 0 22px; border:0; }
.workspace-page.has-gravity-home .workspace-recent>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:10px; }
.workspace-page.has-gravity-home .workspace-recent h2 { font-size:11px; font-weight:500; margin:0; }
.workspace-page.has-gravity-home .workspace-recent-list { display:block; }
.workspace-page.has-gravity-home .workspace-recent-list>button { width:100%; display:flex; align-items:center; gap:10px; padding:12px 1px; background:none; border:0; border-bottom:1px solid var(--border); border-radius:0; }
.workspace-page.has-gravity-home .workspace-recent-list>button:first-child { border-top:1px solid var(--border); }
.workspace-page.has-gravity-home .workspace-recent-list>button>span { flex:1; text-align:left; font-size:11px; }
.workspace-page.has-gravity-home .workspace-recent-list>button>small { font-size:10px; }
.workspace-home-details { margin:3px 0 0; border-top:1px solid var(--border); }
.workspace-home-details>summary { display:flex; justify-content:space-between; align-items:center; gap:15px; list-style:none; cursor:pointer; padding:16px 0; font-size:11px; color:var(--text-secondary); }
.workspace-home-details>summary::-webkit-details-marker { display:none; }
.workspace-home-details>summary::after { content:"+"; color:var(--text-secondary); margin-left:auto; }
.workspace-home-details[open]>summary::after { content:"−"; }
.workspace-home-details>summary>small { font-size:10px; color:var(--text-secondary); }
@media(max-width:1080px) {
.workspace-page.has-gravity-home .workspace-header { padding-left:25px; padding-right:25px; }
.home-command-grid { gap:17px; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); }
.home-mission h2 { font-size:23px; }
}
@container perch-cover (max-width:650px) {
.home-cover h2 { font-size:32px; }
.home-command-grid { grid-template-columns:1fr; gap:18px; }
.is-professional .home-core-art { height:230px; }
.home-mission h2 br { display:none; }
.home-mission h2 { font-size:24px; }
}
.perch-home { container-type:inline-size; container-name:perch-cover; }
@container perch-cover (max-width:500px) {
.home-cover { grid-template-columns:1fr; min-height:0; }
.home-cover-copy { padding-top:25px; }
.home-cover h2 { font-size:30px; }
.home-core-art { height:230px; margin:-8px 0 0; }
.home-eyebrow { font-size:9px; letter-spacing:1.4px; }
.home-composer-foot { align-items:stretch; flex-direction:column; gap:8px; }
.home-work-modes button { flex:1; }
.home-work-modes { flex-wrap:nowrap; }
.home-start { width:100%; }
.home-goal-help { font-size:10px; }
.home-mission .home-goal-help { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .home-core-art canvas { transform:none!important; } }