@endlessblink/like-i-said-v2
Version:
Task Management & Memory for Claude - Track tasks, remember context, and maintain continuity across sessions with 27 powerful tools. Works with Claude Desktop and Claude Code.
684 lines (587 loc) • 18.4 kB
CSS
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
/* Cache bust: 2025-01-17-20:10-task-card-recreation */
@import './styles/themes/theme-reset.css';
@import './styles/themes/fix-theme.css'; /* Provides fallback theme values while JS loads */
@import './styles/themes/theme-improvements.css'; /* Enhanced theme support and visual fixes */
@import './styles/animate.css'; /* Animation utilities */
@import './styles/themes/dropdown-fix.css'; /* Dropdown and theme fixes */
@import './styles/themes/light-theme-fixes.css'; /* Light theme readability improvements */
@import './styles/safe-areas.css'; /* Import safe area handling */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Enhanced Loading Animations */
@keyframes shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes fade-in {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes card-hover {
from { transform: translateY(0) scale(1); }
to { transform: translateY(-2px) scale(1.02); }
}
@keyframes glass-shimmer {
0% { background-position: -200px 0; }
100% { background-position: calc(200px + 100%) 0; }
}
@keyframes priority-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.8; transform: scale(1.05); }
}
@keyframes memory-card-enter {
from {
opacity: 0;
transform: translateY(20px) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes pulse-soft {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
@layer base {
:root {
/* Base Theme Variables - Dynamically Injected by Theme System */
/* These values will be overridden by the ThemeProvider */
/* Core UI Colors */
--background: 222 23% 4%;
--foreground: 210 40% 98%;
--card: 222 23% 7%;
--card-foreground: 210 40% 98%;
--popover: 222 23% 7%;
--popover-foreground: 210 40% 98%;
--muted: 220 20% 12%;
--muted-foreground: 220 15% 75%;
--border: 220 20% 18%;
--input: 220 20% 14%;
--ring: 262 73% 60%;
--destructive: 0 75% 55%;
--destructive-foreground: 220 15% 98%;
--accent: 262 45% 18%;
--accent-foreground: 220 15% 98%;
/* Primary Color Scale - Dynamically Generated */
--primary-50: #faf5ff;
--primary-100: #f3e8ff;
--primary-200: #e9d5ff;
--primary-300: #d8b4fe;
--primary-400: #c084fc;
--primary-500: #a855f7;
--primary-600: #9333ea;
--primary-700: #7c3aed;
--primary-800: #6b21a8;
--primary-900: #581c87;
--primary-950: #3b0764;
/* Secondary Color Scale - Dynamically Generated */
--secondary-50: #f8fafc;
--secondary-100: #f1f5f9;
--secondary-200: #e2e8f0;
--secondary-300: #cbd5e1;
--secondary-400: #94a3b8;
--secondary-500: #64748b;
--secondary-600: #475569;
--secondary-700: #334155;
--secondary-800: #1e293b;
--secondary-900: #0f172a;
--secondary-950: #020617;
/* Category Colors - Theme Configurable */
--category-personal: var(--primary-500);
--category-work: #10b981;
--category-code: #ef4444;
--category-research: #3b82f6;
/* Complexity Level Colors - Theme Configurable */
--complexity-l1: #10b981;
--complexity-l2: #3b82f6;
--complexity-l3: #f59e0b;
--complexity-l4: #ef4444;
/* Semantic Colors - Theme Configurable */
--success: #10b981;
--warning: #f59e0b;
--error: #ef4444;
--info: #3b82f6;
/* Glassmorphism Effects - Theme Configurable */
--glass-bg: rgba(30, 41, 59, 0.7);
--glass-border: rgba(148, 163, 184, 0.15);
--glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
--glass-backdrop: blur(16px);
/* Design System Spacing - Configurable */
--space-0: 0px;
--space-px: 1px;
--space-0\.5: 0.125rem;
--space-1: 0.25rem;
--space-1\.5: 0.375rem;
--space-2: 0.5rem;
--space-2\.5: 0.625rem;
--space-3: 0.75rem;
--space-3\.5: 0.875rem;
--space-4: 1rem;
--space-5: 1.25rem;
--space-6: 1.5rem;
--space-7: 1.75rem;
--space-8: 2rem;
--space-9: 2.25rem;
--space-10: 2.5rem;
--space-11: 2.75rem;
--space-12: 3rem;
--space-14: 3.5rem;
--space-16: 4rem;
--space-20: 5rem;
--space-24: 6rem;
--space-28: 7rem;
--space-32: 8rem;
--space-36: 9rem;
--space-40: 10rem;
--space-44: 11rem;
--space-48: 12rem;
--space-52: 13rem;
--space-56: 14rem;
--space-60: 15rem;
--space-64: 16rem;
--space-72: 18rem;
--space-80: 20rem;
--space-96: 24rem;
/* Typography Scale - Configurable */
--text-xs-size: 0.75rem;
--text-xs-height: 1rem;
--text-sm-size: 0.875rem;
--text-sm-height: 1.25rem;
--text-base-size: 1rem;
--text-base-height: 1.5rem;
--text-lg-size: 1.125rem;
--text-lg-height: 1.75rem;
--text-xl-size: 1.25rem;
--text-xl-height: 1.75rem;
--text-2xl-size: 1.5rem;
--text-2xl-height: 2rem;
--text-3xl-size: 1.875rem;
--text-3xl-height: 2.25rem;
--text-4xl-size: 2.25rem;
--text-4xl-height: 2.5rem;
--text-5xl-size: 3rem;
--text-5xl-height: 1;
--text-6xl-size: 3.75rem;
--text-6xl-height: 1;
--text-7xl-size: 4.5rem;
--text-7xl-height: 1;
--text-8xl-size: 6rem;
--text-8xl-height: 1;
--text-9xl-size: 8rem;
--text-9xl-height: 1;
/* Border Radius Scale - Configurable */
--radius-none: 0px;
--radius-sm: 0.125rem;
--radius: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-2xl: 1rem;
--radius-3xl: 1.5rem;
--radius-full: 9999px;
/* Animation Durations - Configurable */
--duration-75: 75ms;
--duration-100: 100ms;
--duration-150: 150ms;
--duration-200: 200ms;
--duration-300: 300ms;
--duration-500: 500ms;
--duration-700: 700ms;
--duration-1000: 1000ms;
/* Animation Timing Functions - Configurable */
--timing-linear: linear;
--timing-in: cubic-bezier(0.4, 0, 1, 1);
--timing-out: cubic-bezier(0, 0, 0.2, 1);
--timing-in-out: cubic-bezier(0.4, 0, 0.2, 1);
/* Responsive Breakpoints - For CSS Usage */
--breakpoint-sm: 640px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1536px;
/* Component-Specific Variables */
--nav-height: var(--space-14);
--nav-height-mobile: var(--space-12);
/* Gradient Variables - Theme Configurable */
--gradient-primary: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);
--gradient-secondary: linear-gradient(145deg, var(--secondary-100) 0%, var(--secondary-200) 100%);
--gradient-accent: linear-gradient(135deg, var(--primary-400) 0%, var(--primary-600) 100%);
--gradient-card: linear-gradient(145deg, var(--card) 0%, var(--muted) 100%);
/* Shadow System - Theme Configurable */
--shadow-soft: 0 2px 8px -1px rgba(0, 0, 0, 0.1);
--shadow-medium: 0 4px 16px -2px rgba(0, 0, 0, 0.15);
--shadow-strong: 0 8px 24px -4px rgba(0, 0, 0, 0.2);
/* Legacy Variables for Backward Compatibility */
--primary: var(--primary-500);
--primary-foreground: var(--primary-50);
--secondary: var(--secondary-500);
--secondary-foreground: var(--secondary-50);
}
}
body {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
background-color: hsl(var(--background));
color: hsl(var(--foreground));
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: background-color 0.3s ease, color 0.3s ease;
}
/* Typography System */
.text-heading-1 {
@apply text-3xl font-bold tracking-tight;
line-height: 1.2;
}
.text-heading-2 {
@apply text-2xl font-semibold tracking-tight;
line-height: 1.3;
}
.text-heading-3 {
@apply text-xl font-semibold;
line-height: 1.4;
}
.text-body-lg {
@apply text-base font-normal;
line-height: 1.6;
}
.text-body {
@apply text-sm font-normal;
line-height: 1.5;
}
.text-body-sm {
@apply text-xs font-medium;
line-height: 1.4;
}
/* Modern Glassmorphism Components */
@layer components {
/* Professional Card System */
.card-glass {
background: var(--glass-bg);
backdrop-filter: var(--glass-backdrop);
border: 1px solid var(--glass-border);
border-radius: 12px;
box-shadow: var(--elevation-2);
transition: all var(--transition-normal);
}
/* Glass effect utility */
.glass-effect {
background: var(--glass-bg);
backdrop-filter: var(--glass-backdrop);
border-color: var(--glass-border);
}
.card-glass:hover {
transform: translateY(-2px);
border-color: rgba(148, 163, 184, 0.2);
}
.card-glass:hover:not(.complexity-l4) {
box-shadow: var(--elevation-3);
}
.card-glass:focus-within {
outline: 2px solid hsl(var(--primary));
outline-offset: 2px;
}
/* Complexity Level System */
.complexity-l1 {
--complexity-color: var(--complexity-l1);
border-left: 3px solid hsl(var(--complexity-color));
}
.complexity-l2 {
--complexity-color: var(--complexity-l2);
border-left: 3px solid hsl(var(--complexity-color));
}
.complexity-l3 {
--complexity-color: var(--complexity-l3);
border-left: 3px solid hsl(var(--complexity-color));
}
.complexity-l4 {
--complexity-color: var(--complexity-l4);
border-left: 3px solid hsl(var(--complexity-color));
box-shadow: 0 0 0 1px hsla(var(--complexity-color), 0.2);
}
.complexity-l4:hover {
box-shadow: 0 0 0 2px hsla(var(--complexity-color), 0.3), var(--elevation-3);
}
/* Category Badge System */
.category-badge {
padding: var(--space-1) var(--space-3);
border-radius: 6px;
font-size: var(--text-xs);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.category-personal {
background: hsla(var(--category-personal), 0.15);
color: hsl(var(--category-personal));
border: 1px solid hsla(var(--category-personal), 0.3);
}
.category-work {
background: hsla(var(--category-work), 0.15);
color: hsl(var(--category-work));
border: 1px solid hsla(var(--category-work), 0.3);
}
.category-code {
background: hsla(var(--category-code), 0.15);
color: hsl(var(--category-code));
border: 1px solid hsla(var(--category-code), 0.3);
}
.category-research {
background: hsla(var(--category-research), 0.15);
color: hsl(var(--category-research));
border: 1px solid hsla(var(--category-research), 0.3);
}
/* Professional Typography Scale */
.text-card-title {
font-size: var(--text-lg);
font-weight: 600;
color: hsl(var(--foreground));
}
.text-card-description {
font-size: var(--text-sm);
font-weight: 400;
color: hsl(var(--foreground) / 0.8);
}
.text-card-meta {
font-size: var(--text-xs);
font-weight: 500;
line-height: 1.4;
color: hsl(var(--foreground) / 0.6);
}
/* Interactive Elements */
.button-glass {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 8px;
transition: all var(--transition-fast);
}
.button-glass:hover {
background: rgba(255, 255, 255, 0.15);
transform: translateY(-1px);
}
/* Spacing System Classes */
.space-grid {
gap: var(--space-4);
}
.space-grid-lg {
gap: var(--space-6);
}
.padding-card {
padding: var(--space-4);
}
.padding-card-lg {
padding: var(--space-6);
}
/* Unified Card Layout - Based on Research Solutions */
/* Card container - Fixed height flex column */
.card-glass {
/* Force flex column layout */
display: flex ;
flex-direction: column ;
/* Base styling */
border: 1px solid var(--glass-border);
background: var(--glass-bg);
box-sizing: border-box;
overflow: hidden;
}
/* Critical: Allow flex children to shrink properly */
.card-glass > * {
min-height: 0 ;
}
/* Ensure proper flex structure for content */
.card-glass .flex-shrink-0 {
flex-shrink: 0 ;
}
/* The flex-1 containers should grow/shrink properly */
.card-glass .flex-1 {
flex: 1 1 auto ;
min-height: 0 ;
}
/* Elements with margin-top auto */
.card-glass .mt-auto {
margin-top: auto ;
}
/* Ensure parent containers have proper height */
.card-glass .h-full {
height: 100% ;
}
/* Images in cards */
.card-glass img {
max-width: 100% ;
height: auto ;
display: block ;
}
/* Grid container adjustments */
.grid {
display: grid ;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) ;
gap: 1rem ;
}
/* Ensure consistent card behavior in grid */
.grid .card-glass {
width: 100% ;
}
}
/* Enhanced scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: hsl(var(--muted));
border-radius: 3px;
}
::-webkit-scrollbar-thumb {
background: hsl(var(--muted-foreground) / 0.4);
border-radius: 3px;
transition: all 0.2s;
}
::-webkit-scrollbar-thumb:hover {
background: hsl(var(--muted-foreground) / 0.6);
}
/* Enhanced modern card styles with animations */
.card-modern {
background: var(--gradient-card);
border: 1px solid hsl(var(--border));
border-radius: var(--radius);
box-shadow: var(--shadow-soft);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
animation: memory-card-enter 0.4s ease-out;
}
.card-modern:hover {
box-shadow: var(--shadow-medium);
border-color: hsl(var(--border) / 0.8);
transform: translateY(-2px) scale(1.01);
}
.card-modern.loading {
animation: pulse-soft 2s ease-in-out infinite;
}
/* Glass effect for special elements */
.glass-effect {
background: hsl(var(--card) / 0.8);
backdrop-filter: blur(12px);
border: 1px solid hsl(var(--border) / 0.5);
}
/* Interactive button styles */
.btn-primary {
background: var(--gradient-primary);
border: none;
color: hsl(var(--primary-foreground));
font-weight: 600;
transition: all 0.2s;
box-shadow: 0 2px 8px hsl(262 73% 60% / 0.3);
}
.btn-primary:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px hsl(262 73% 60% / 0.4);
}
.btn-secondary {
background: hsl(var(--secondary));
border: 1px solid hsl(var(--border));
color: hsl(var(--secondary-foreground));
font-weight: 500;
transition: all 0.2s;
}
.btn-secondary:hover {
background: hsl(var(--secondary) / 0.8);
border-color: hsl(var(--border) / 0.8);
}
/* Status indicators */
.status-success {
background: hsl(var(--success) / 0.15);
color: hsl(var(--success));
border: 1px solid hsl(var(--success) / 0.3);
}
.status-warning {
background: hsl(var(--warning) / 0.15);
color: hsl(var(--warning));
border: 1px solid hsl(var(--warning) / 0.3);
}
.status-info {
background: hsl(var(--info) / 0.15);
color: hsl(var(--info));
border: 1px solid hsl(var(--info) / 0.3);
}
/* Enhanced Animation utilities */
.animate-fade-in {
animation: fade-in 0.5s ease-out;
}
.animate-slide-up {
animation: slideUp 0.3s ease-out;
}
.animate-shimmer {
animation: shimmer 2s infinite;
}
.animate-spin-slow {
animation: spin-slow 3s linear infinite;
}
.animate-memory-enter {
animation: memory-card-enter 0.4s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Enhanced line clamp utilities - Let Tailwind handle these */
/* Focus styles */
.focus-ring {
@apply focus:outline-none focus:ring-2 focus:ring-violet-500 focus:ring-offset-2 focus:ring-offset-gray-900;
}
/* Improved input styles */
.input-modern {
background: hsl(var(--input));
border: 1px solid hsl(var(--border));
border-radius: calc(var(--radius) * 0.8);
transition: all 0.2s;
font-weight: 400;
}
.input-modern:focus {
border-color: hsl(var(--primary));
box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}
/* Modern spacing system */
.space-section { @apply py-6 px-4 md:py-8 md:px-6; }
.space-container { @apply max-w-screen-2xl mx-auto; }
.space-card { @apply p-4 md:p-5; }
.space-compact { @apply p-3 md:p-4; }
/* Navigation utilities */
.nav-height { height: var(--nav-height-mobile); }
@media (min-width: 768px) {
.nav-height { height: var(--nav-height); }
}
/* Improved button system */
.btn-icon {
@apply h-8 w-8 p-0 flex items-center justify-center rounded-md transition-all duration-200;
}
.btn-icon-sm {
@apply h-7 w-7 p-0 flex items-center justify-center rounded-md transition-all duration-200;
}
/* Responsive grid utilities */
.grid-responsive {
@apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4 lg:gap-5;
}
/* Improved text contrast utilities */
.text-primary-contrast { color: hsl(var(--foreground)); }
.text-secondary-contrast { color: hsl(var(--muted-foreground)); }
.text-tertiary-contrast { color: hsl(var(--muted-foreground) / 0.7); }
/* Focus visible improvements */
.focus-visible-ring {
@apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-violet-500 focus-visible:ring-offset-2 focus-visible:ring-offset-gray-900;
}