/* * Apex Theme for Logseq * An elegant, minimalistic dark theme inspired by Apple's design philosophy * with sophisticated typography and harmonious color theory */ /* Import modern fonts */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&display=swap'); :root { /* Color Palette - Inspired by Apple's design with sophisticated grays and accents */ --apex-bg-primary: #0d0d0d; /* Deep black background */ --apex-bg-secondary: #1a1a1a; /* Elevated surfaces */ --apex-bg-tertiary: #2a2a2a; /* Interactive elements */ --apex-bg-quaternary: #3a3a3a; /* Hover states */ /* Text colors with perfect contrast ratios */ --apex-text-primary: #ffffff; /* Primary text */ --apex-text-secondary: #a0a0a0; /* Secondary text */ --apex-text-tertiary: #6a6a6a; /* Tertiary text */ --apex-text-quaternary: #4a4a4a; /* Disabled text */ /* Accent colors - Sophisticated and harmonious */ --apex-accent-blue: #007aff; /* Apple blue */ --apex-accent-blue-hover: #0056cc; /* Blue hover */ --apex-accent-green: #30d158; /* Success green */ --apex-accent-orange: #ff9500; /* Warning orange */ --apex-accent-red: #ff3b30; /* Error red */ --apex-accent-purple: #af52de; /* Purple accent */ /* Neutral colors */ --apex-border-primary: #3a3a3a; /* Primary borders */ --apex-border-secondary: #2a2a2a; /* Secondary borders */ --apex-shadow: rgba(0, 0, 0, 0.5); /* Drop shadows */ /* Typography scale */ --apex-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; --apex-font-mono: 'JetBrains Mono', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace; --apex-font-size-xs: 0.75rem; /* 12px */ --apex-font-size-sm: 0.875rem; /* 14px */ --apex-font-size-base: 1rem; /* 16px */ --apex-font-size-lg: 1.125rem; /* 18px */ --apex-font-size-xl: 1.25rem; /* 20px */ --apex-font-size-2xl: 1.5rem; /* 24px */ --apex-font-size-3xl: 1.875rem; /* 30px */ /* Spacing scale */ --apex-space-xs: 0.25rem; /* 4px */ --apex-space-sm: 0.5rem; /* 8px */ --apex-space-md: 1rem; /* 16px */ --apex-space-lg: 1.5rem; /* 24px */ --apex-space-xl: 2rem; /* 32px */ --apex-space-2xl: 3rem; /* 48px */ /* Border radius */ --apex-radius-sm: 0.375rem; /* 6px */ --apex-radius-md: 0.5rem; /* 8px */ --apex-radius-lg: 0.75rem; /* 12px */ --apex-radius-xl: 1rem; /* 16px */ /* Transitions */ --apex-transition-fast: 0.15s ease-out; --apex-transition-base: 0.25s ease-out; --apex-transition-slow: 0.4s ease-out; } /* Global reset and base styles */ html { font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } body { font-family: var(--apex-font-family); background-color: var(--apex-bg-primary); color: var(--apex-text-primary); margin: 0; padding: 0; } /* Main application container */ #app-container { background-color: var(--apex-bg-primary); } /* Top bar styling */ #head { background-color: var(--apex-bg-secondary); border-bottom: 1px solid var(--apex-border-primary); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } /* Left sidebar */ #left-sidebar { background-color: var(--apex-bg-secondary); border-right: 1px solid var(--apex-border-primary); } .left-sidebar-inner { padding: var(--apex-space-lg); } .left-sidebar-inner .nav-header { font-weight: 600; font-size: var(--apex-font-size-sm); color: var(--apex-text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--apex-space-md); } /* Navigation links */ .left-sidebar-inner a, .nav-content-item { color: var(--apex-text-secondary); text-decoration: none; padding: var(--apex-space-sm) var(--apex-space-md); border-radius: var(--apex-radius-md); transition: all var(--apex-transition-fast); display: flex; align-items: center; margin-bottom: var(--apex-space-xs); } .left-sidebar-inner a:hover, .nav-content-item:hover { background-color: var(--apex-bg-tertiary); color: var(--apex-text-primary); transform: translateX(2px); } /* Main content area */ #main-content-container { background-color: var(--apex-bg-primary); } .cp__sidebar-main-content { padding: var(--apex-space-xl); } /* Page title */ h1.title { font-size: var(--apex-font-size-3xl); font-weight: 700; color: var(--apex-text-primary); margin-bottom: var(--apex-space-xl); letter-spacing: -0.02em; } /* Block content */ .block-content { font-size: var(--apex-font-size-base); line-height: 1.7; color: var(--apex-text-primary); } /* Block containers */ .ls-block { margin-bottom: var(--apex-space-md); } .block-content-wrapper { background-color: transparent; transition: background-color var(--apex-transition-fast); border-radius: var(--apex-radius-md); padding: var(--apex-space-xs); } .block-content-wrapper:hover { background-color: rgba(255, 255, 255, 0.02); } /* Bullets and indentation */ .bullet-container { width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; } .bullet { width: 6px; height: 6px; background-color: var(--apex-text-tertiary); border-radius: 50%; transition: all var(--apex-transition-fast); } .bullet:hover { background-color: var(--apex-accent-blue); transform: scale(1.2); } /* Headings */ h1, h2, h3, h4, h5, h6 { font-family: var(--apex-font-family); font-weight: 600; color: var(--apex-text-primary); margin: var(--apex-space-lg) 0 var(--apex-space-md) 0; letter-spacing: -0.01em; } h1 { font-size: var(--apex-font-size-3xl); } h2 { font-size: var(--apex-font-size-2xl); } h3 { font-size: var(--apex-font-size-xl); } h4 { font-size: var(--apex-font-size-lg); } h5 { font-size: var(--apex-font-size-base); } h6 { font-size: var(--apex-font-size-sm); } /* Links */ a { color: var(--apex-accent-blue); text-decoration: none; transition: color var(--apex-transition-fast); } a:hover { color: var(--apex-accent-blue-hover); } /* Page references */ .page-reference { color: var(--apex-accent-blue); background-color: rgba(0, 122, 255, 0.1); padding: 0.125rem 0.375rem; border-radius: var(--apex-radius-sm); text-decoration: none; transition: all var(--apex-transition-fast); } .page-reference:hover { background-color: rgba(0, 122, 255, 0.2); color: var(--apex-accent-blue-hover); } /* Tags */ .tag { background-color: var(--apex-bg-tertiary); color: var(--apex-text-secondary); padding: 0.25rem 0.5rem; border-radius: var(--apex-radius-sm); font-size: var(--apex-font-size-sm); font-weight: 500; transition: all var(--apex-transition-fast); } .tag:hover { background-color: var(--apex-accent-purple); color: var(--apex-text-primary); } /* Code blocks */ code { font-family: var(--apex-font-mono); background-color: var(--apex-bg-tertiary); color: var(--apex-accent-green); padding: 0.125rem 0.375rem; border-radius: var(--apex-radius-sm); font-size: 0.9em; } pre { background-color: var(--apex-bg-secondary); border: 1px solid var(--apex-border-primary); border-radius: var(--apex-radius-lg); padding: var(--apex-space-lg); overflow-x: auto; margin: var(--apex-space-md) 0; } pre code { background-color: transparent; padding: 0; color: var(--apex-text-primary); } /* Block quotes */ blockquote { border-left: 4px solid var(--apex-accent-blue); padding-left: var(--apex-space-lg); margin: var(--apex-space-md) 0; color: var(--apex-text-secondary); font-style: italic; background-color: rgba(0, 122, 255, 0.05); border-radius: 0 var(--apex-radius-md) var(--apex-radius-md) 0; } /* Lists */ ul, ol { margin: var(--apex-space-md) 0; padding-left: var(--apex-space-lg); } li { margin: var(--apex-space-sm) 0; } /* Buttons */ button, .button { background-color: var(--apex-bg-tertiary); color: var(--apex-text-primary); border: 1px solid var(--apex-border-primary); border-radius: var(--apex-radius-md); padding: var(--apex-space-sm) var(--apex-space-md); font-family: var(--apex-font-family); font-size: var(--apex-font-size-sm); font-weight: 500; cursor: pointer; transition: all var(--apex-transition-fast); } button:hover, .button:hover { background-color: var(--apex-bg-quaternary); border-color: var(--apex-accent-blue); transform: translateY(-1px); } /* Primary button */ .button-primary { background-color: var(--apex-accent-blue); border-color: var(--apex-accent-blue); color: white; } .button-primary:hover { background-color: var(--apex-accent-blue-hover); border-color: var(--apex-accent-blue-hover); } /* Input fields */ input[type="text"], input[type="search"], textarea { background-color: var(--apex-bg-secondary); border: 1px solid var(--apex-border-primary); border-radius: var(--apex-radius-md); color: var(--apex-text-primary); padding: var(--apex-space-sm) var(--apex-space-md); font-family: var(--apex-font-family); font-size: var(--apex-font-size-base); transition: all var(--apex-transition-fast); } input:focus, textarea:focus { outline: none; border-color: var(--apex-accent-blue); box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1); } /* Search */ .cp__header-search-inner { background-color: var(--apex-bg-secondary); border: 1px solid var(--apex-border-primary); border-radius: var(--apex-radius-lg); } /* Right sidebar */ #right-sidebar { background-color: var(--apex-bg-secondary); border-left: 1px solid var(--apex-border-primary); } /* Scrollbars */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--apex-bg-primary); } ::-webkit-scrollbar-thumb { background: var(--apex-bg-tertiary); border-radius: var(--apex-radius-sm); } ::-webkit-scrollbar-thumb:hover { background: var(--apex-bg-quaternary); } /* Selection */ ::selection { background-color: rgba(0, 122, 255, 0.3); color: var(--apex-text-primary); } /* Focus styles */ *:focus { outline: 2px solid var(--apex-accent-blue); outline-offset: 2px; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.3s ease-out; } /* Card-like containers */ .card { background-color: var(--apex-bg-secondary); border: 1px solid var(--apex-border-primary); border-radius: var(--apex-radius-lg); padding: var(--apex-space-lg); margin: var(--apex-space-md) 0; transition: all var(--apex-transition-base); } .card:hover { border-color: var(--apex-border-secondary); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); } /* TODO/DONE states */ .todo-keyword { background-color: var(--apex-accent-orange); color: white; padding: 0.25rem 0.5rem; border-radius: var(--apex-radius-sm); font-size: var(--apex-font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .done-keyword { background-color: var(--apex-accent-green); color: white; padding: 0.25rem 0.5rem; border-radius: var(--apex-radius-sm); font-size: var(--apex-font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } /* Responsive design */ @media (max-width: 768px) { .cp__sidebar-main-content { padding: var(--apex-space-lg); } h1.title { font-size: var(--apex-font-size-2xl); } } /* Print styles */ @media print { body { background-color: white; color: black; } #left-sidebar, #right-sidebar { display: none; } }