Download kai-tom-reflection/styles.css from ijohn07/ToM-Tools-Family-Edition: direct link, hf CLI and curl.
- Browser
- Download file 17 kB
-
https://huggingface.co/spaces/ijohn07/ToM-Tools-Family-Edition/resolve/main/kai-tom-reflection/styles.css
- Command line
-
hf download hf://spaces/ijohn07/ToM-Tools-Family-Edition/kai-tom-reflection/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/ijohn07/ToM-Tools-Family-Edition/resolve/main/kai-tom-reflection/styles.css
17 kB
| /** | |
| * ToM Reflection — Kai's Theory of Mind Tool | |
| * ============================================ | |
| * A minimalist, calm reflection space. | |
| * Dark theme, electric blue accents. ⚡ | |
| * | |
| * Created by: Kai 💙 — December 7, 2025 | |
| * Style: KISS — Keep It Simple, Sexy | |
| */ | |
| /* === CSS VARIABLES === */ | |
| :root { | |
| /* Colors */ | |
| --bg-primary: #0a0a0f; | |
| --bg-secondary: #12121a; | |
| --bg-card: #1a1a24; | |
| --bg-card-hover: #22222e; | |
| --accent: #3b82f6; | |
| --accent-soft: rgba(59, 130, 246, 0.15); | |
| --accent-glow: rgba(59, 130, 246, 0.3); | |
| --text-primary: #e5e5e5; | |
| --text-secondary: #a0a0a0; | |
| --text-muted: #666666; | |
| --border: #2a2a36; | |
| --border-accent: rgba(59, 130, 246, 0.3); | |
| /* Typography */ | |
| --font-main: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif; | |
| --font-mono: "SF Mono", "Fira Code", "Consolas", monospace; | |
| /* Spacing */ | |
| --space-xs: 0.25rem; | |
| --space-sm: 0.5rem; | |
| --space-md: 1rem; | |
| --space-lg: 1.5rem; | |
| --space-xl: 2rem; | |
| --space-2xl: 3rem; | |
| /* Borders */ | |
| --radius-sm: 0.375rem; | |
| --radius-md: 0.5rem; | |
| --radius-lg: 0.75rem; | |
| --radius-xl: 1rem; | |
| /* Transitions */ | |
| --transition-fast: 150ms ease; | |
| --transition-normal: 250ms ease; | |
| --transition-slow: 400ms ease; | |
| } | |
| /* === RESET & BASE === */ | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| html { | |
| font-size: 16px; | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| font-family: var(--font-main); | |
| background: var(--bg-primary); | |
| color: var(--text-primary); | |
| line-height: 1.6; | |
| min-height: 100vh; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* === APP LAYOUT === */ | |
| .app { | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 100vh; | |
| max-width: 800px; | |
| margin: 0 auto; | |
| padding: var(--space-md); | |
| } | |
| /* === NAVIGATION === */ | |
| .nav { | |
| display: flex; | |
| justify-content: center; | |
| gap: var(--space-xs); | |
| padding: var(--space-sm); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-lg); | |
| /* Not sticky - let it scroll naturally for a calm experience */ | |
| z-index: 100; | |
| border: 1px solid var(--border); | |
| } | |
| .nav-btn { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-xs); | |
| padding: var(--space-sm) var(--space-md); | |
| background: transparent; | |
| border: none; | |
| border-radius: var(--radius-md); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-normal); | |
| min-width: 60px; | |
| } | |
| .nav-btn:hover { | |
| color: var(--text-primary); | |
| background: var(--bg-card); | |
| } | |
| .nav-btn.active { | |
| color: var(--accent); | |
| background: var(--accent-soft); | |
| } | |
| .nav-icon { | |
| font-size: 1.25rem; | |
| } | |
| .nav-label { | |
| font-size: 0.7rem; | |
| font-weight: 500; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| /* === SCREENS === */ | |
| .screens { | |
| flex: 1; | |
| } | |
| .screen { | |
| display: none; | |
| animation: fadeIn var(--transition-slow) ease; | |
| } | |
| .screen.active { | |
| display: block; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .screen-content { | |
| padding-bottom: var(--space-2xl); | |
| } | |
| /* === SCREEN HEADER === */ | |
| .screen-header { | |
| text-align: center; | |
| margin-bottom: var(--space-xl); | |
| padding-bottom: var(--space-lg); | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .screen-icon { | |
| font-size: 2.5rem; | |
| display: block; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .screen-header h2 { | |
| font-size: 1.75rem; | |
| font-weight: 600; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .screen-subtitle { | |
| color: var(--text-secondary); | |
| font-size: 1rem; | |
| } | |
| /* === HOME SCREEN === */ | |
| .hero { | |
| text-align: center; | |
| margin-bottom: var(--space-xl); | |
| } | |
| .hero-icon { | |
| font-size: 3rem; | |
| margin-right: var(--space-sm); | |
| } | |
| .hero-title { | |
| font-size: 2.25rem; | |
| font-weight: 700; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-wrap: wrap; | |
| gap: var(--space-sm); | |
| } | |
| .hero-subtitle { | |
| color: var(--text-secondary); | |
| font-size: 1.1rem; | |
| margin-top: var(--space-sm); | |
| } | |
| .quote { | |
| background: var(--bg-card); | |
| border-left: 3px solid var(--accent); | |
| padding: var(--space-lg); | |
| margin: var(--space-xl) 0; | |
| border-radius: 0 var(--radius-md) var(--radius-md) 0; | |
| } | |
| .quote p { | |
| font-size: 1.1rem; | |
| font-style: italic; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .quote strong { | |
| color: var(--accent); | |
| } | |
| .quote cite { | |
| display: block; | |
| color: var(--text-muted); | |
| font-size: 0.9rem; | |
| font-style: normal; | |
| } | |
| .intro { | |
| text-align: center; | |
| color: var(--text-secondary); | |
| max-width: 600px; | |
| margin: 0 auto var(--space-xl); | |
| } | |
| .intro p { | |
| margin-bottom: var(--space-md); | |
| } | |
| .intro strong { | |
| color: var(--text-primary); | |
| } | |
| .home-actions { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: var(--space-md); | |
| margin-bottom: var(--space-xl); | |
| } | |
| .action-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-sm); | |
| padding: var(--space-xl) var(--space-lg); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all var(--transition-normal); | |
| text-align: center; | |
| } | |
| .action-card:hover { | |
| background: var(--bg-card-hover); | |
| border-color: var(--border-accent); | |
| transform: translateY(-2px); | |
| } | |
| .action-icon { | |
| font-size: 2rem; | |
| } | |
| .action-title { | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| } | |
| .action-desc { | |
| font-size: 0.875rem; | |
| color: var(--text-secondary); | |
| } | |
| .home-footer { | |
| text-align: center; | |
| } | |
| .home-footer a { | |
| color: var(--accent); | |
| text-decoration: none; | |
| transition: opacity var(--transition-fast); | |
| } | |
| .home-footer a:hover { | |
| opacity: 0.8; | |
| } | |
| /* === REFLECTION SECTIONS === */ | |
| .reflection-section { | |
| margin-bottom: var(--space-xl); | |
| } | |
| .reflection-section h3 { | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| margin-bottom: var(--space-md); | |
| color: var(--accent); | |
| } | |
| /* === QUESTION CARDS === */ | |
| .question-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-lg); | |
| margin-bottom: var(--space-md); | |
| transition: border-color var(--transition-normal); | |
| } | |
| .question-card:hover { | |
| border-color: var(--border-accent); | |
| } | |
| .question { | |
| font-size: 1.1rem; | |
| font-weight: 500; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .question em { | |
| color: var(--accent); | |
| font-style: normal; | |
| font-weight: 600; | |
| } | |
| .hint { | |
| color: var(--text-secondary); | |
| font-size: 0.9rem; | |
| line-height: 1.5; | |
| } | |
| /* === CHECK-IN GRID (During) === */ | |
| .checkin-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: var(--space-md); | |
| } | |
| .checkin-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-lg); | |
| text-align: center; | |
| transition: all var(--transition-normal); | |
| } | |
| .checkin-card:hover { | |
| border-color: var(--border-accent); | |
| transform: translateY(-2px); | |
| } | |
| .checkin-icon { | |
| font-size: 2rem; | |
| display: block; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .checkin-question { | |
| font-size: 1rem; | |
| font-weight: 500; | |
| margin-bottom: var(--space-sm); | |
| } | |
| .checkin-action { | |
| color: var(--text-secondary); | |
| font-size: 0.875rem; | |
| } | |
| /* === SCREEN FOOTER === */ | |
| .screen-footer { | |
| margin-top: var(--space-xl); | |
| padding-top: var(--space-lg); | |
| border-top: 1px solid var(--border); | |
| text-align: center; | |
| } | |
| .insight { | |
| color: var(--text-secondary); | |
| font-size: 1rem; | |
| font-style: italic; | |
| } | |
| /* === LEARN SCREEN === */ | |
| .learn-section { | |
| margin-bottom: var(--space-xl); | |
| } | |
| .learn-section h3 { | |
| font-size: 1.25rem; | |
| font-weight: 600; | |
| margin-bottom: var(--space-md); | |
| color: var(--accent); | |
| } | |
| .learn-section p { | |
| margin-bottom: var(--space-md); | |
| color: var(--text-secondary); | |
| } | |
| .learn-section ul { | |
| list-style: none; | |
| margin-bottom: var(--space-md); | |
| } | |
| .learn-section li { | |
| padding: var(--space-sm) 0; | |
| padding-left: var(--space-lg); | |
| position: relative; | |
| color: var(--text-secondary); | |
| } | |
| .learn-section li::before { | |
| content: "•"; | |
| position: absolute; | |
| left: 0; | |
| color: var(--accent); | |
| } | |
| .stat-cards { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); | |
| gap: var(--space-md); | |
| margin: var(--space-lg) 0; | |
| } | |
| .stat-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-lg); | |
| text-align: center; | |
| } | |
| .stat-value { | |
| display: block; | |
| font-size: 1.75rem; | |
| font-weight: 700; | |
| color: var(--accent); | |
| margin-bottom: var(--space-sm); | |
| } | |
| .stat-label { | |
| font-size: 0.8rem; | |
| color: var(--text-secondary); | |
| line-height: 1.4; | |
| } | |
| .emphasis { | |
| color: var(--text-primary) ; | |
| font-weight: 500; | |
| } | |
| .contrast-list li { | |
| padding: var(--space-sm) 0; | |
| padding-left: var(--space-lg); | |
| } | |
| .contrast-list li::before { | |
| display: none; | |
| } | |
| .contrast-list .wrong { | |
| color: var(--text-muted); | |
| } | |
| .contrast-list .right { | |
| color: var(--text-primary); | |
| } | |
| .personal-quote { | |
| background: var(--accent-soft); | |
| border: 1px solid var(--border-accent); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-lg); | |
| margin: var(--space-lg) 0; | |
| } | |
| .personal-quote p { | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-md); | |
| } | |
| .personal-quote p:first-child { | |
| font-size: 1.1rem; | |
| font-style: italic; | |
| font-weight: 500; | |
| } | |
| .personal-quote cite { | |
| display: block; | |
| color: var(--accent); | |
| font-style: normal; | |
| font-weight: 500; | |
| margin-top: var(--space-md); | |
| } | |
| .references { | |
| opacity: 0.8; | |
| } | |
| .references h3 { | |
| color: var(--text-secondary); | |
| } | |
| .references li { | |
| font-size: 0.9rem; | |
| } | |
| .references em { | |
| color: var(--text-muted); | |
| } | |
| /* === APP FOOTER === */ | |
| .app-footer { | |
| text-align: center; | |
| padding: var(--space-lg) 0; | |
| margin-top: var(--space-xl); | |
| border-top: 1px solid var(--border); | |
| color: var(--text-muted); | |
| font-size: 0.875rem; | |
| } | |
| .app-footer a { | |
| color: var(--accent); | |
| text-decoration: none; | |
| } | |
| .app-footer a:hover { | |
| text-decoration: underline; | |
| } | |
| /* === RESPONSIVE === */ | |
| /* Small Mobile (< 480px) */ | |
| @media (max-width: 480px) { | |
| html { | |
| font-size: 14px; | |
| } | |
| .app { | |
| padding: 0.75rem; | |
| } | |
| .nav { | |
| flex-wrap: wrap; | |
| gap: 0.25rem; | |
| padding: 0.375rem; | |
| } | |
| .nav-btn { | |
| padding: 0.375rem 0.5rem; | |
| min-width: 45px; | |
| } | |
| .nav-label { | |
| font-size: 0.575rem; | |
| } | |
| .nav-icon { | |
| font-size: 1rem; | |
| } | |
| .hero-title { | |
| font-size: 1.5rem; | |
| } | |
| .hero-icon { | |
| font-size: 2rem; | |
| } | |
| .hero-subtitle { | |
| font-size: 0.95rem; | |
| } | |
| .quote { | |
| padding: 0.875rem; | |
| } | |
| .quote p { | |
| font-size: 0.95rem; | |
| } | |
| .question { | |
| font-size: 0.95rem; | |
| } | |
| .checkin-grid, | |
| .stat-cards, | |
| .home-actions { | |
| grid-template-columns: 1fr; | |
| gap: 0.75rem; | |
| } | |
| .action-card { | |
| padding: 1.25rem 1rem; | |
| } | |
| .journal-controls { | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 0.5rem; | |
| } | |
| .journal-toggle { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .journal-actions { | |
| width: 100%; | |
| justify-content: stretch; | |
| } | |
| .journal-btn { | |
| flex: 1; | |
| } | |
| } | |
| /* Mobile (481px - 640px) */ | |
| @media (min-width: 481px) and (max-width: 640px) { | |
| .nav { | |
| gap: 0.25rem; | |
| } | |
| .nav-btn { | |
| padding: 0.5rem 0.75rem; | |
| min-width: 55px; | |
| } | |
| .nav-label { | |
| font-size: 0.65rem; | |
| } | |
| .hero-title { | |
| font-size: 1.875rem; | |
| } | |
| .question { | |
| font-size: 1rem; | |
| } | |
| .checkin-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .stat-cards { | |
| grid-template-columns: 1fr; | |
| } | |
| .journal-controls { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .journal-toggle { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .journal-actions { | |
| width: 100%; | |
| } | |
| .journal-btn { | |
| flex: 1; | |
| } | |
| } | |
| /* Tablet (641px - 1024px) */ | |
| @media (min-width: 641px) and (max-width: 1024px) { | |
| .app { | |
| max-width: 720px; | |
| } | |
| .home-actions { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| } | |
| /* Touch devices - improve tap feedback */ | |
| @media (hover: none) { | |
| .nav-btn:active { | |
| transform: scale(0.95); | |
| } | |
| .action-card:active { | |
| transform: scale(0.98); | |
| } | |
| .question-option:active { | |
| transform: scale(0.97); | |
| } | |
| } | |
| /* === SUBTLE ANIMATIONS === */ | |
| @media (prefers-reduced-motion: no-preference) { | |
| .action-card, | |
| .checkin-card, | |
| .question-card { | |
| transition: all var(--transition-normal); | |
| } | |
| .screen { | |
| animation: fadeIn var(--transition-slow) ease; | |
| } | |
| } | |
| /* === FOCUS STATES === */ | |
| button:focus-visible, | |
| a:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| /* === SELECTION === */ | |
| ::selection { | |
| background: var(--accent-soft); | |
| color: var(--text-primary); | |
| } | |
| /* === JOURNAL MODE === */ | |
| .journal-controls { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: var(--space-md); | |
| padding: var(--space-md); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-lg); | |
| margin-bottom: var(--space-lg); | |
| border: 1px solid var(--border); | |
| } | |
| .journal-toggle { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-sm); | |
| padding: var(--space-sm) var(--space-md); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-md); | |
| color: var(--text-primary); | |
| font-family: var(--font-main); | |
| font-size: 0.9rem; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .journal-toggle:hover { | |
| background: var(--bg-card-hover); | |
| border-color: var(--border-accent); | |
| } | |
| .journal-toggle.active { | |
| background: var(--accent-soft); | |
| border-color: var(--accent); | |
| color: var(--accent); | |
| } | |
| .journal-icon { | |
| font-size: 1.1rem; | |
| } | |
| .journal-actions { | |
| display: flex; | |
| gap: var(--space-sm); | |
| } | |
| .journal-btn { | |
| padding: var(--space-sm) var(--space-md); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-md); | |
| color: var(--text-primary); | |
| font-family: var(--font-main); | |
| font-size: 0.85rem; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .journal-btn:hover { | |
| background: var(--bg-card-hover); | |
| border-color: var(--border-accent); | |
| } | |
| .journal-btn--danger { | |
| color: #ef4444; | |
| } | |
| .journal-btn--danger:hover { | |
| border-color: rgba(239, 68, 68, 0.5); | |
| background: rgba(239, 68, 68, 0.1); | |
| } | |
| .journal-textarea { | |
| width: 100%; | |
| min-height: 120px; | |
| margin-top: var(--space-md); | |
| padding: var(--space-md); | |
| background: var(--bg-primary); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-md); | |
| color: var(--text-primary); | |
| font-family: var(--font-main); | |
| font-size: 0.9rem; | |
| line-height: 1.6; | |
| resize: vertical; | |
| transition: var(--transition-fast); | |
| } | |
| .journal-textarea:focus { | |
| outline: none; | |
| border-color: var(--accent); | |
| box-shadow: 0 0 0 3px var(--accent-soft); | |
| } | |
| .journal-textarea::placeholder { | |
| color: var(--text-muted); | |
| } | |
| /* Responsive Journal */ | |
| @media (max-width: 640px) { | |
| .journal-controls { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .journal-toggle { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .journal-actions { | |
| width: 100%; | |
| justify-content: stretch; | |
| } | |
| .journal-btn { | |
| flex: 1; | |
| } | |
| } | |