Files
ewoooc/MOMO Pro/design-tokens.css
2026-04-30 23:37:52 +08:00

260 lines
9.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 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. ShadowNothing 風幾乎不用陰影,改用線條) ===== */
--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. RadiusNothing 風偏方角,僅輕微圓角) ===== */
--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; }
}