260 lines
9.5 KiB
CSS
260 lines
9.5 KiB
CSS
/**
|
||
* MOMO Pro × Nothing × Claude 設計 Token v2.0
|
||
* — Nothing 的點陣骨架(黑白、像素、工業)
|
||
* — Claude 的暖米基底(#f0eee9、焦糖橘 #c96442)
|
||
*/
|
||
|
||
:root {
|
||
/* ===== 1. 色彩 ===== */
|
||
/* Claude 暖系基底(紙張 / 米色)— 加深暖度 */
|
||
--momo-bg-body: #ebe6dc; /* Claude 米色頁面底(加深暖度)*/
|
||
--momo-bg-surface: #faf7f0; /* 卡片改為米白,不純白 */
|
||
--momo-bg-elevated: #fdfaf3;
|
||
--momo-bg-subtle: #e2dccf; /* 米色微深 */
|
||
--momo-bg-muted: #cfc7b5;
|
||
--momo-bg-paper: #f3eee2; /* 卡片紙張感 */
|
||
|
||
/* Nothing 黑(用暖墨色,不純黑)*/
|
||
--momo-ink: #2a2520; /* 暖墨色 */
|
||
--momo-ink-strong: #1a1612;
|
||
--momo-ink-soft: #3d362f;
|
||
--momo-line: #2a2520;
|
||
--momo-line-soft: rgba(42,37,32,0.18);
|
||
--momo-line-faint: rgba(42,37,32,0.10);
|
||
|
||
/* Claude 焦糖橘(accent) */
|
||
--momo-accent: #c96442; /* 主 accent */
|
||
--momo-accent-50: #fbf2ef;
|
||
--momo-accent-100: #f5e1d9;
|
||
--momo-accent-200: #ecc3b3;
|
||
--momo-accent-500: #c96442;
|
||
--momo-accent-600: #b1543a;
|
||
--momo-accent-700: #8f4530;
|
||
--momo-accent-soft: rgba(201,100,66,0.12);
|
||
|
||
/* 沿用 primary 命名以相容(指向 accent) */
|
||
--momo-primary: var(--momo-accent);
|
||
--momo-primary-50: var(--momo-accent-50);
|
||
--momo-primary-100: var(--momo-accent-100);
|
||
--momo-primary-200: var(--momo-accent-200);
|
||
--momo-primary-300: var(--momo-accent-200);
|
||
--momo-primary-400: var(--momo-accent-500);
|
||
--momo-primary-500: var(--momo-accent-500);
|
||
--momo-primary-600: var(--momo-accent-600);
|
||
--momo-primary-700: var(--momo-accent-700);
|
||
--momo-primary-800: var(--momo-accent-700);
|
||
--momo-primary-900: #5e2e20;
|
||
|
||
/* 導航(Nothing 黑) */
|
||
--momo-nav-start: #1a1a1a;
|
||
--momo-nav-end: #000000;
|
||
--momo-nav-text: #ffffff;
|
||
--momo-nav-text-muted: rgba(255,255,255,0.55);
|
||
--momo-nav-hover: rgba(255,255,255,0.08);
|
||
--momo-nav-active: rgba(255,255,255,0.14);
|
||
|
||
/* 漸層 → Nothing 風幾乎不用,保留低調黑灰漸層 */
|
||
--momo-gradient-primary: #1a1a1a;
|
||
--momo-gradient-nav: linear-gradient(180deg, #1a1a1a 0%, #000 100%);
|
||
--momo-gradient-success: #2a7a3f;
|
||
--momo-gradient-danger: #b5342f;
|
||
--momo-gradient-warning: #b88416;
|
||
--momo-gradient-info: #2d5d80;
|
||
--momo-gradient-subtle: linear-gradient(180deg, #f7f5ef 0%, #ebe8e1 100%);
|
||
|
||
/* 狀態色(去飽和化、配合米色底) */
|
||
--momo-success: #2a7a3f;
|
||
--momo-success-bg: #e3ebd9;
|
||
--momo-success-border: #c5d4b0;
|
||
--momo-success-text: #1f5a2d;
|
||
--momo-danger: #b5342f;
|
||
--momo-danger-bg: #f0d8d4;
|
||
--momo-danger-border: #d9b1ac;
|
||
--momo-danger-text: #7d2520;
|
||
--momo-warning: #b88416;
|
||
--momo-warning-bg: #f3e7c4;
|
||
--momo-warning-border: #d9c590;
|
||
--momo-warning-text: #6e500e;
|
||
--momo-info: #2d5d80;
|
||
--momo-info-bg: #d8e2ea;
|
||
--momo-info-border: #b5c5d2;
|
||
--momo-info-text: #1d3e54;
|
||
|
||
/* 文字(暖墨)*/
|
||
--momo-text-primary: #2a2520;
|
||
--momo-text-secondary: #645c52;
|
||
--momo-text-tertiary: #9b9081;
|
||
--momo-text-disabled: #c4baa8;
|
||
--momo-text-inverse: #faf7f0;
|
||
--momo-text-link: #c96442;
|
||
--momo-text-link-hover: #8f4530;
|
||
|
||
/* 邊框(暖色調線)*/
|
||
--momo-border: #2a2520;
|
||
--momo-border-light: rgba(42,37,32,0.16);
|
||
--momo-border-dark: #2a2520;
|
||
--momo-border-focus: #c96442;
|
||
--momo-divider: rgba(42,37,32,0.12);
|
||
|
||
/* Overlay */
|
||
--momo-bg-overlay: rgba(26, 26, 26, 0.7);
|
||
--momo-bg-backdrop: rgba(26, 26, 26, 0.3);
|
||
|
||
/* ===== 2. Typography ===== */
|
||
/* 標題:JetBrains Mono / Space Mono — 帶等寬機械感(替代 Ndot) */
|
||
--momo-font-display:
|
||
"JetBrains Mono", "Space Mono", "SF Mono", Menlo, Consolas, monospace;
|
||
/* 內文:中英混排 */
|
||
--momo-font-family:
|
||
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
||
"PingFang TC", "Noto Sans TC", "Microsoft JhengHei",
|
||
sans-serif;
|
||
/* 等寬:數據 */
|
||
--momo-font-family-mono:
|
||
"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
|
||
|
||
--momo-font-size-xs: 0.75rem;
|
||
--momo-font-size-sm: 0.8125rem;
|
||
--momo-font-size-base: 0.9375rem;
|
||
--momo-font-size-lg: 1.0625rem;
|
||
--momo-font-size-xl: 1.625rem;
|
||
--momo-font-size-2xl: 2.25rem;
|
||
|
||
--momo-font-weight-normal: 400;
|
||
--momo-font-weight-medium: 500;
|
||
--momo-font-weight-semibold: 600;
|
||
--momo-font-weight-bold: 700;
|
||
|
||
--momo-line-height-tight: 1.15;
|
||
--momo-line-height-base: 1.5;
|
||
--momo-line-height-loose: 1.7;
|
||
|
||
/* ===== 3. Spacing ===== */
|
||
--momo-space-1: 0.25rem;
|
||
--momo-space-2: 0.5rem;
|
||
--momo-space-3: 0.75rem;
|
||
--momo-space-4: 1rem;
|
||
--momo-space-5: 1.5rem;
|
||
--momo-space-6: 2rem;
|
||
--momo-space-7: 3rem;
|
||
--momo-space-8: 4rem;
|
||
|
||
/* ===== 4. Shadow(Nothing 風幾乎不用陰影,改用線條) ===== */
|
||
--momo-shadow-sm: 0 0 0 1px rgba(26,26,26,0.08);
|
||
--momo-shadow-md: 0 0 0 1px rgba(26,26,26,0.10);
|
||
--momo-shadow-lg: 0 12px 40px -8px rgba(26,26,26,0.18), 0 0 0 1px rgba(26,26,26,0.10);
|
||
--momo-shadow-colored: 0 0 0 2px rgba(201,100,66,0.25);
|
||
--momo-shadow-inner: inset 0 1px 2px 0 rgba(26,26,26,0.08);
|
||
|
||
/* ===== 5. Radius(Nothing 風偏方角,僅輕微圓角) ===== */
|
||
--momo-radius-sm: 0.125rem; /* 2px */
|
||
--momo-radius-md: 0.25rem; /* 4px */
|
||
--momo-radius-lg: 0.375rem; /* 6px */
|
||
--momo-radius-pill: 50rem;
|
||
--momo-radius-circle: 50%;
|
||
|
||
/* ===== 6. Transition ===== */
|
||
--momo-duration-fast: 0.12s;
|
||
--momo-duration-normal: 0.2s;
|
||
--momo-duration-slow: 0.4s;
|
||
--momo-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
||
--momo-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
||
--momo-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
||
--momo-transition-base:
|
||
color var(--momo-duration-fast) var(--momo-ease-in-out),
|
||
background-color var(--momo-duration-fast) var(--momo-ease-in-out),
|
||
border-color var(--momo-duration-fast) var(--momo-ease-in-out),
|
||
box-shadow var(--momo-duration-fast) var(--momo-ease-in-out);
|
||
|
||
/* ===== 7. z-index ===== */
|
||
--momo-z-base: 1;
|
||
--momo-z-dropdown: 1000;
|
||
--momo-z-sticky: 1020;
|
||
--momo-z-fixed: 1030;
|
||
--momo-z-modal-backdrop: 1040;
|
||
--momo-z-modal: 1050;
|
||
--momo-z-popover: 1060;
|
||
--momo-z-tooltip: 1070;
|
||
--momo-z-toast: 1080;
|
||
}
|
||
|
||
/* 全域 */
|
||
.momo-app {
|
||
font-family: var(--momo-font-family);
|
||
font-size: var(--momo-font-size-base);
|
||
line-height: var(--momo-line-height-base);
|
||
color: var(--momo-text-primary);
|
||
background-color: var(--momo-bg-body);
|
||
-webkit-font-smoothing: antialiased;
|
||
-moz-osx-font-smoothing: grayscale;
|
||
letter-spacing: -0.005em;
|
||
}
|
||
.momo-app *, .momo-app *::before, .momo-app *::after { box-sizing: border-box; }
|
||
.momo-app button {
|
||
font-family: inherit; cursor: pointer; border: none; background: none; padding: 0; color: inherit;
|
||
}
|
||
.momo-app input, .momo-app select, .momo-app textarea {
|
||
font-family: inherit; font-size: inherit; color: inherit;
|
||
}
|
||
|
||
/* Display class for big numbers / titles in Nothing-mono */
|
||
.momo-display {
|
||
font-family: var(--momo-font-display);
|
||
font-feature-settings: "tnum", "ss01";
|
||
letter-spacing: -0.02em;
|
||
}
|
||
.momo-mono {
|
||
font-family: var(--momo-font-family-mono);
|
||
font-feature-settings: "tnum";
|
||
}
|
||
.momo-label {
|
||
font-family: var(--momo-font-display);
|
||
font-size: 10px;
|
||
font-weight: 500;
|
||
letter-spacing: 0.12em;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
/* Dot matrix 背景圖案(Nothing 招牌點陣) */
|
||
.momo-dot-bg {
|
||
background-image: radial-gradient(circle, rgba(255,255,255,0.18) 1px, transparent 1px);
|
||
background-size: 8px 8px;
|
||
}
|
||
.momo-dot-bg-dark {
|
||
background-image: radial-gradient(circle, rgba(26,26,26,0.12) 1px, transparent 1px);
|
||
background-size: 8px 8px;
|
||
}
|
||
|
||
/* 滾動條 */
|
||
.momo-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
|
||
.momo-scroll::-webkit-scrollbar-track { background: transparent; }
|
||
.momo-scroll::-webkit-scrollbar-thumb { background: rgba(26,26,26,0.18); border-radius: var(--momo-radius-pill); }
|
||
.momo-scroll::-webkit-scrollbar-thumb:hover { background: rgba(26,26,26,0.32); }
|
||
|
||
/* 動畫 */
|
||
@keyframes momo-fade-in { from { opacity: 0; transform: translateY(2px); } to { opacity: 1; transform: translateY(0); } }
|
||
@keyframes momo-slide-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
|
||
@keyframes momo-pulse-dot { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
|
||
|
||
/* Topbar responsive:用 container query 因為 topbar 在 artboard 縮放容器內 */
|
||
.momo-topbar { container-type: inline-size; }
|
||
@container (max-width: 1024px) {
|
||
.momo-schedule-pill { display: none !important; }
|
||
}
|
||
@container (max-width: 880px) {
|
||
.momo-user-meta { display: none !important; }
|
||
}
|
||
@container (max-width: 720px) {
|
||
.momo-search-text { display: none !important; }
|
||
}
|
||
/* fallback:若瀏覽器不支援 container query,仍用 viewport */
|
||
@media (max-width: 1024px) {
|
||
.momo-schedule-pill { display: none !important; }
|
||
}
|
||
@media (max-width: 880px) {
|
||
.momo-user-meta { display: none !important; }
|
||
}
|
||
@media (max-width: 720px) {
|
||
.momo-search-text { display: none !important; }
|
||
}
|