480 lines
12 KiB
CSS
480 lines
12 KiB
CSS
/*
|
|
* 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;
|
|
}
|
|
} |