UNPKG

quikchat

Version:

quikchat is a simple vanilla (no dependancies) JavaScript chat control for browsers

1,161 lines (978 loc) 28.3 kB
/* quikchat.css see www.github.com/deftio/quikchat for more info see docs/css-architecture.md for design rationale Base Styles — structural layout, do not vary between themes Theme Styles — appearance only (colors, borders, border-radius, shadows) */ /* ================================== */ /* Base — scoped reset */ /* ================================== */ .quikchat-base, .quikchat-base *, .quikchat-base *::before, .quikchat-base *::after { box-sizing: border-box; } /* ================================== */ /* Base — layout and sizing */ /* ================================== */ .quikchat-base { display: flex; flex-direction: column; height: 100%; width: 100%; min-width: min(200px, 100%); min-height: min(200px, 100%); overflow: hidden; font-size: 14px; line-height: 1.4; } .quikchat-title-area { flex-shrink: 0; padding: 8px; margin-left: 8px; margin-right: 8px; font-weight: 600; font-size: 1.3em; } .quikchat-messages-area { flex: 1; min-height: 0; padding: 8px; overflow-y: auto; position: relative; } .quikchat-message { padding: 4px; white-space: pre-wrap; word-wrap: break-word; } .quikchat-user-label { font-weight: 700; font-size: 1em; } .quikchat-input-area { flex-shrink: 0; display: flex; align-items: flex-end; padding: 8px; min-height: 48px; } .quikchat-input-textbox { flex-grow: 1; min-height: 36px; min-width: 0; resize: none; padding: 6px 8px; height: auto; overflow-y: hidden; font-family: inherit; font-size: inherit; } .quikchat-input-send-btn { margin-left: 8px; padding: 8px; min-height: 36px; min-width: 5rem; cursor: pointer; white-space: nowrap; font-family: inherit; font-size: inherit; align-self: flex-end; } /* ================================== */ /* Base — RTL support */ /* ================================== */ .quikchat-rtl .quikchat-input-area { flex-direction: row-reverse; } .quikchat-rtl .quikchat-input-send-btn { margin-left: 0; margin-right: 8px; } /* ================================== */ /* Base — disabled state */ /* ================================== */ .quikchat-input-textbox:disabled, .quikchat-input-send-btn:disabled { opacity: 0.5; cursor: not-allowed; } /* ================================== */ /* Base — typing indicator */ /* ================================== */ .quikchat-typing .quikchat-message-content { min-height: 1.4em; } .quikchat-typing-dots span { display: inline-block; font-size: 1.4em; line-height: 1; animation: quikchat-dot-pulse 1.4s infinite; } .quikchat-typing-dots span:nth-child(2) { animation-delay: 0.2s; } .quikchat-typing-dots span:nth-child(3) { animation-delay: 0.4s; } @keyframes quikchat-dot-pulse { 0%, 80%, 100% { opacity: 0.2; } 40% { opacity: 1; } } /* ================================== */ /* Base — messages wrapper */ /* ================================== */ .quikchat-messages-wrapper { flex: 1; min-height: 0; position: relative; display: flex; flex-direction: column; } /* ================================== */ /* Base — timestamps */ /* ================================== */ .quikchat-timestamp { display: none; font-size: 0.75em; opacity: 0.6; margin-top: 2px; } .quikchat-show-timestamps .quikchat-timestamp { display: block; } /* ================================== */ /* Base — scroll-to-bottom button */ /* ================================== */ .quikchat-scroll-bottom { display: none; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); width: 36px; height: 36px; border-radius: 50%; border: 1px solid currentColor; background: inherit; color: inherit; cursor: pointer; opacity: 0.7; z-index: 1; font-size: 16px; line-height: 1; padding: 0; } .quikchat-scroll-bottom::after { content: "\2193"; } .quikchat-scroll-bottom:hover { opacity: 1; } .quikchat-scroll-bottom-visible { display: block; } /* ================================== */ /* Base — focus indicators */ /* ================================== */ .quikchat-input-textbox:focus, .quikchat-input-send-btn:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; } /* ================================== */ /* Theme: debug */ /* Vivid colors for visual debugging */ /* ================================== */ .quikchat-theme-debug { border: 1px solid black; border-radius: 10px; background-color: mediumorchid; } .quikchat-theme-debug .quikchat-title-area { background-color: lightblue; color: #333; } .quikchat-theme-debug .quikchat-messages-area { border-radius: 1em; background-color: lightsalmon; } .quikchat-theme-debug .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: lightseagreen; color: #eee; border-radius: 4px; } .quikchat-theme-debug .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: lightpink; color: #444; border-radius: 4px; } .quikchat-theme-debug .quikchat-input-area { background-color: lightgreen; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; } .quikchat-theme-debug .quikchat-input-textbox { background-color: #eee; color: #333; border: 1px solid #ccc; border-radius: 4px; } .quikchat-theme-debug .quikchat-input-send-btn { background-color: #4caf50; color: white; border: none; border-radius: 4px; } .quikchat-theme-debug .quikchat-input-send-btn:hover { background-color: #43a047; } /* ================================== */ /* Theme: dark */ /* ================================== */ .quikchat-theme-dark { border: 1px solid #3a3a3a; border-radius: 12px; background-color: #1a1a1a; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4); color: #e8e8e8; } .quikchat-theme-dark .quikchat-title-area { background-color: #1a1a1a; color: #f0f0f0; border-bottom: 1px solid #2a2a2a; } .quikchat-theme-dark .quikchat-messages-area { background-color: #1a1a1a; color: #e8e8e8; } .quikchat-theme-dark .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #1e1e1e; color: #e8e8e8; border-radius: 6px; } .quikchat-theme-dark .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #262626; color: #f0f0f0; border-radius: 6px; } .quikchat-theme-dark .quikchat-input-area { background-color: #1e1e1e; border-top: 1px solid #2a2a2a; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-dark .quikchat-input-textbox { background-color: #2a2a2a; color: #e8e8e8; border: 1px solid #3a3a3a; border-radius: 8px; } .quikchat-theme-dark .quikchat-input-send-btn { background-color: #22c55e; color: #0a0a0a; border: none; border-radius: 8px; font-weight: 600; } .quikchat-theme-dark .quikchat-input-send-btn:hover { background-color: #16a34a; } /* ================================== */ /* Theme: light */ /* Clean white with subtle warmth */ /* ================================== */ .quikchat-theme-light { border: 1px solid #e0e0e0; border-radius: 12px; background-color: #ffffff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06); } .quikchat-theme-light .quikchat-title-area { color: #1a1a1a; border-bottom: 1px solid #f0f0f0; } .quikchat-theme-light .quikchat-messages-area { background-color: #ffffff; color: #2d2d2d; } .quikchat-theme-light .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #ffffff; color: #2d2d2d; border-radius: 6px; } .quikchat-theme-light .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #f7f7f8; color: #2d2d2d; border-radius: 6px; } .quikchat-theme-light .quikchat-input-area { background-color: #fafafa; border-top: 1px solid #f0f0f0; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-light .quikchat-input-textbox { background-color: #ffffff; color: #2d2d2d; border: 1px solid #d8d8d8; border-radius: 8px; } .quikchat-theme-light .quikchat-input-send-btn { background-color: #2563eb; color: white; border: none; border-radius: 8px; } .quikchat-theme-light .quikchat-input-send-btn:hover { background-color: #1d4ed8; } /* ================================== */ /* Theme: blue */ /* Professional steel-blue accents */ /* ================================== */ .quikchat-theme-blue { border: 1px solid #c0d4e8; border-radius: 12px; background-color: #f0f5fa; box-shadow: 0 2px 8px rgba(58, 110, 165, 0.08); } .quikchat-theme-blue .quikchat-title-area { background: linear-gradient(135deg, #3a6ea5, #2d5a8a); color: #fff; border-radius: 11px 11px 0 0; } .quikchat-theme-blue .quikchat-messages-area { background-color: #f8fafc; color: #1a2a3a; } .quikchat-theme-blue .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #f8fafc; color: #1a2a3a; border-radius: 6px; } .quikchat-theme-blue .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #e8f0f8; color: #1a2a3a; border-radius: 6px; } .quikchat-theme-blue .quikchat-input-area { background-color: #eef3f8; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-blue .quikchat-input-textbox { background-color: #fff; color: #1a2a3a; border: 1px solid #b8ccdf; border-radius: 8px; } .quikchat-theme-blue .quikchat-input-send-btn { background: linear-gradient(135deg, #3a6ea5, #2d5a8a); color: white; border: none; border-radius: 8px; } .quikchat-theme-blue .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #2d5a8a, #1e4a75); } /* ================================== */ /* Theme: warm */ /* Soft cream with muted earth tones */ /* ================================== */ .quikchat-theme-warm { border: 1px solid #dcc8aa; border-radius: 12px; background-color: #fdf8f2; box-shadow: 0 1px 6px rgba(180, 140, 80, 0.08); } .quikchat-theme-warm .quikchat-title-area { background-color: #fdf8f2; color: #5a3e28; border-bottom: 1px solid #eedcc8; } .quikchat-theme-warm .quikchat-messages-area { background-color: #fefbf6; color: #3a2a1a; } .quikchat-theme-warm .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #fefbf6; color: #3a2a1a; border-radius: 6px; } .quikchat-theme-warm .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #f5ebe0; color: #3a2a1a; border-radius: 6px; } .quikchat-theme-warm .quikchat-input-area { background-color: #faf5ee; border-top: 1px solid #eedcc8; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-warm .quikchat-input-textbox { background-color: #fff; color: #3a2a1a; border: 1px solid #dcc8aa; border-radius: 8px; } .quikchat-theme-warm .quikchat-input-send-btn { background: linear-gradient(135deg, #c17f4a, #a5683a); color: white; border: none; border-radius: 8px; } .quikchat-theme-warm .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #a5683a, #8a5530); } /* ================================== */ /* Theme: midnight */ /* Deep navy with starlight accents */ /* ================================== */ .quikchat-theme-midnight { border: 1px solid #2a3a5c; border-radius: 12px; background-color: #0f1626; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); color: #c8d0e0; } .quikchat-theme-midnight .quikchat-title-area { background: linear-gradient(135deg, #1a2744, #0f1626); color: #8eaadc; border-bottom: 1px solid #1e2d4a; border-radius: 11px 11px 0 0; } .quikchat-theme-midnight .quikchat-messages-area { background-color: #0a1020; color: #c8d0e0; } .quikchat-theme-midnight .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #0f1830; color: #c8d0e0; border-radius: 6px; } .quikchat-theme-midnight .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #162040; color: #d0d8e8; border-radius: 6px; } .quikchat-theme-midnight .quikchat-input-area { background-color: #0f1626; border-top: 1px solid #1e2d4a; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-midnight .quikchat-input-textbox { background-color: #1a2540; color: #c8d0e0; border: 1px solid #2a3a5c; border-radius: 8px; } .quikchat-theme-midnight .quikchat-input-send-btn { background: linear-gradient(135deg, #4a6fa5, #3a5a8a); color: white; border: none; border-radius: 8px; font-weight: 600; } .quikchat-theme-midnight .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #5a80b8, #4a6fa5); } /* ================================== */ /* Theme: ocean */ /* Teal/cyan on deep blue */ /* ================================== */ .quikchat-theme-ocean { border: 1px solid #1a6b7a; border-radius: 12px; background-color: #0d2b36; box-shadow: 0 4px 20px rgba(0, 40, 60, 0.4); color: #d4edee; } .quikchat-theme-ocean .quikchat-title-area { background: linear-gradient(135deg, #0d3a4a, #0d2b36); color: #5ec4d4; border-bottom: 1px solid #1a4a5a; border-radius: 11px 11px 0 0; } .quikchat-theme-ocean .quikchat-messages-area { background-color: #0a2530; color: #d4edee; } .quikchat-theme-ocean .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #0d3040; color: #d4edee; border-radius: 6px; } .quikchat-theme-ocean .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #11384a; color: #d4edee; border-radius: 6px; } .quikchat-theme-ocean .quikchat-input-area { background-color: #0d2b36; border-top: 1px solid #1a4a5a; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-ocean .quikchat-input-textbox { background-color: #163a48; color: #d4edee; border: 1px solid #1a5a6a; border-radius: 8px; } .quikchat-theme-ocean .quikchat-input-send-btn { background: linear-gradient(135deg, #1a8a6a, #15705a); color: white; border: none; border-radius: 8px; font-weight: 600; } .quikchat-theme-ocean .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #1fa07a, #1a8a6a); } /* ================================== */ /* Theme: modern */ /* Message bubbles, iMessage-style */ /* ================================== */ .quikchat-theme-modern { border: 1px solid #e5e5e5; border-radius: 12px; background-color: #ffffff; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06); } .quikchat-theme-modern .quikchat-title-area { background-color: #fafafa; color: #1a1a1a; border-bottom: 1px solid #f0f0f0; border-radius: 11px 11px 0 0; } .quikchat-theme-modern .quikchat-messages-area { background-color: #ffffff; color: #1a1a1a; } .quikchat-theme-modern .quikchat-message { display: flex; flex-direction: column; } .quikchat-theme-modern .quikchat-align-right { align-items: flex-end; } .quikchat-theme-modern .quikchat-align-left { align-items: flex-start; } .quikchat-theme-modern .quikchat-align-center { align-items: center; } .quikchat-theme-modern .quikchat-message-content { max-width: 80%; border-radius: 18px; padding: 2px 4px; } .quikchat-theme-modern .quikchat-align-right .quikchat-message-content { background: linear-gradient(135deg, #0b93f6, #0078d4); color: #ffffff; border-bottom-right-radius: 4px; } .quikchat-theme-modern .quikchat-align-left .quikchat-message-content { background-color: #f0f0f0; color: #1a1a1a; border-bottom-left-radius: 4px; } .quikchat-theme-modern .quikchat-align-center .quikchat-message-content { background-color: transparent; color: #888; } .quikchat-theme-modern .quikchat-user-label { color: #888; font-size: 0.85em; } .quikchat-theme-modern .quikchat-input-area { background-color: #fafafa; border-top: 1px solid #f0f0f0; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-modern .quikchat-input-textbox { background-color: #f5f5f5; color: #1a1a1a; border: 1px solid #e0e0e0; border-radius: 20px; } .quikchat-theme-modern .quikchat-input-send-btn { background: linear-gradient(135deg, #0b93f6, #0078d4); color: white; border: none; border-radius: 20px; font-weight: 600; } .quikchat-theme-modern .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #0a84de, #006abc); } /* ================================== */ /* Theme: glass */ /* Glassmorphism: frosted translucent */ /* ================================== */ .quikchat-theme-glass { border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 16px; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); color: #1a1a2e; } .quikchat-theme-glass .quikchat-title-area { background: rgba(255, 255, 255, 0.2); color: #1a1a2e; border-bottom: 1px solid rgba(255, 255, 255, 0.2); border-radius: 15px 15px 0 0; } .quikchat-theme-glass .quikchat-messages-area { background: rgba(255, 255, 255, 0.08); color: #1a1a2e; } .quikchat-theme-glass .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background: rgba(255, 255, 255, 0.12); border-radius: 8px; } .quikchat-theme-glass .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background: rgba(255, 255, 255, 0.22); border-radius: 8px; } .quikchat-theme-glass .quikchat-input-area { background: rgba(255, 255, 255, 0.15); border-top: 1px solid rgba(255, 255, 255, 0.15); border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; } .quikchat-theme-glass .quikchat-input-textbox { background: rgba(255, 255, 255, 0.3); color: #1a1a2e; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 8px; } .quikchat-theme-glass .quikchat-input-textbox::placeholder { color: rgba(26, 26, 46, 0.5); } .quikchat-theme-glass .quikchat-input-send-btn { background: linear-gradient(135deg, #667eea, #764ba2); color: white; border: none; border-radius: 8px; font-weight: 600; box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3); } .quikchat-theme-glass .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #5a6fd6, #6a4196); } /* ================================== */ /* Theme: gradient */ /* Purple-indigo gradient accents */ /* ================================== */ .quikchat-theme-gradient { border: 1px solid #e0d4f5; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 20px rgba(100, 60, 180, 0.12); } .quikchat-theme-gradient .quikchat-title-area { background: linear-gradient(135deg, #667eea, #764ba2); color: #ffffff; border-radius: 11px 11px 0 0; } .quikchat-theme-gradient .quikchat-messages-area { background-color: #ffffff; color: #2d2d3a; } .quikchat-theme-gradient .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #ffffff; color: #2d2d3a; border-radius: 6px; } .quikchat-theme-gradient .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #f3effc; color: #2d2d3a; border-radius: 6px; } .quikchat-theme-gradient .quikchat-input-area { background-color: #faf8ff; border-top: 1px solid #ece4f8; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .quikchat-theme-gradient .quikchat-input-textbox { background-color: #ffffff; color: #2d2d3a; border: 1px solid #d4c4ea; border-radius: 8px; } .quikchat-theme-gradient .quikchat-input-send-btn { background: linear-gradient(135deg, #667eea, #764ba2); color: white; border: none; border-radius: 8px; font-weight: 600; box-shadow: 0 2px 8px rgba(102, 126, 234, 0.25); } .quikchat-theme-gradient .quikchat-input-send-btn:hover { background: linear-gradient(135deg, #5a6fd6, #6a4196); } /* ================================== */ /* Theme: minimal */ /* Ultra-clean, typography-focused */ /* ================================== */ .quikchat-theme-minimal { border: 1px solid #e0e0e0; border-radius: 8px; background-color: #ffffff; } .quikchat-theme-minimal .quikchat-title-area { background-color: #ffffff; color: #111111; border-bottom: 1px solid #e8e8e8; font-weight: 700; } .quikchat-theme-minimal .quikchat-messages-area { background-color: #ffffff; color: #222222; } .quikchat-theme-minimal .quikchat-messages-area-alt .quikchat-message:nth-child(odd) { background-color: #ffffff; color: #222222; border-radius: 4px; } .quikchat-theme-minimal .quikchat-messages-area-alt .quikchat-message:nth-child(even) { background-color: #f8f8f8; color: #222222; border-radius: 4px; } .quikchat-theme-minimal .quikchat-input-area { background-color: #ffffff; border-top: 1px solid #e8e8e8; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; } .quikchat-theme-minimal .quikchat-input-textbox { background-color: #ffffff; color: #222222; border: 1px solid #d0d0d0; border-radius: 6px; } .quikchat-theme-minimal .quikchat-input-send-btn { background-color: #111111; color: white; border: none; border-radius: 6px; font-weight: 600; } .quikchat-theme-minimal .quikchat-input-send-btn:hover { background-color: #333333; } /* ================================== */ /* QuikDown markdown styles */ /* Scoped per quikchat theme */ /* ================================== */ /* --- Light themes (light, blue, warm) --- */ .quikchat-theme-light .quikdown-pre, .quikchat-theme-blue .quikdown-pre, .quikchat-theme-warm .quikdown-pre, .quikchat-theme-glass .quikdown-pre, .quikchat-theme-gradient .quikdown-pre, .quikchat-theme-minimal .quikdown-pre { background: #f4f4f4; padding: 10px; border-radius: 4px; overflow-x: auto; margin: 0.5em 0; } .quikchat-theme-light .quikdown-code, .quikchat-theme-blue .quikdown-code, .quikchat-theme-warm .quikdown-code, .quikchat-theme-glass .quikdown-code, .quikchat-theme-gradient .quikdown-code, .quikchat-theme-minimal .quikdown-code { background: #f0f0f0; padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; } .quikchat-theme-light .quikdown-blockquote, .quikchat-theme-blue .quikdown-blockquote, .quikchat-theme-warm .quikdown-blockquote, .quikchat-theme-glass .quikdown-blockquote, .quikchat-theme-gradient .quikdown-blockquote, .quikchat-theme-minimal .quikdown-blockquote { border-left: 4px solid #ddd; margin-left: 0; padding-left: 1em; color: #555; } .quikchat-theme-light .quikdown-a, .quikchat-theme-blue .quikdown-a, .quikchat-theme-warm .quikdown-a, .quikchat-theme-glass .quikdown-a, .quikchat-theme-gradient .quikdown-a, .quikchat-theme-minimal .quikdown-a { color: #06c; } .quikchat-theme-light .quikdown-th, .quikchat-theme-blue .quikdown-th, .quikchat-theme-warm .quikdown-th, .quikchat-theme-glass .quikdown-th, .quikchat-theme-gradient .quikdown-th, .quikchat-theme-minimal .quikdown-th { border: 1px solid #ddd; padding: 6px 8px; background-color: #f2f2f2; font-weight: bold; text-align: left; } .quikchat-theme-light .quikdown-td, .quikchat-theme-blue .quikdown-td, .quikchat-theme-warm .quikdown-td, .quikchat-theme-glass .quikdown-td, .quikchat-theme-gradient .quikdown-td, .quikchat-theme-minimal .quikdown-td { border: 1px solid #ddd; padding: 6px 8px; text-align: left; } .quikchat-theme-light .quikdown-hr, .quikchat-theme-blue .quikdown-hr, .quikchat-theme-warm .quikdown-hr, .quikchat-theme-glass .quikdown-hr, .quikchat-theme-gradient .quikdown-hr, .quikchat-theme-minimal .quikdown-hr { border: none; border-top: 1px solid #ddd; margin: 0.5em 0; } /* --- Dark themes (dark, midnight, ocean) --- */ .quikchat-theme-dark .quikdown-pre, .quikchat-theme-midnight .quikdown-pre, .quikchat-theme-ocean .quikdown-pre { background: #2a2a2a; padding: 10px; border-radius: 4px; overflow-x: auto; margin: 0.5em 0; } .quikchat-theme-dark .quikdown-code, .quikchat-theme-midnight .quikdown-code, .quikchat-theme-ocean .quikdown-code { background: #2a2a2a; padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; color: #e0e0e0; } .quikchat-theme-dark .quikdown-blockquote, .quikchat-theme-midnight .quikdown-blockquote, .quikchat-theme-ocean .quikdown-blockquote { border-left: 4px solid #3a3a3a; margin-left: 0; padding-left: 1em; color: #bbb; } .quikchat-theme-dark .quikdown-a, .quikchat-theme-midnight .quikdown-a, .quikchat-theme-ocean .quikdown-a { color: #6db3f2; } .quikchat-theme-dark .quikdown-th, .quikchat-theme-midnight .quikdown-th, .quikchat-theme-ocean .quikdown-th { border: 1px solid #3a3a3a; padding: 6px 8px; background-color: #2a2a2a; font-weight: bold; text-align: left; color: #e0e0e0; } .quikchat-theme-dark .quikdown-td, .quikchat-theme-midnight .quikdown-td, .quikchat-theme-ocean .quikdown-td { border: 1px solid #3a3a3a; padding: 6px 8px; text-align: left; color: #e0e0e0; } .quikchat-theme-dark .quikdown-hr, .quikchat-theme-midnight .quikdown-hr, .quikchat-theme-ocean .quikdown-hr { border: none; border-top: 1px solid #3a3a3a; margin: 0.5em 0; } .quikchat-theme-dark .quikdown-h1, .quikchat-theme-dark .quikdown-h2, .quikchat-theme-dark .quikdown-h3, .quikchat-theme-dark .quikdown-h4, .quikchat-theme-dark .quikdown-li, .quikchat-theme-midnight .quikdown-h1, .quikchat-theme-midnight .quikdown-h2, .quikchat-theme-midnight .quikdown-h3, .quikchat-theme-midnight .quikdown-h4, .quikchat-theme-midnight .quikdown-li, .quikchat-theme-ocean .quikdown-h1, .quikchat-theme-ocean .quikdown-h2, .quikchat-theme-ocean .quikdown-h3, .quikchat-theme-ocean .quikdown-h4, .quikchat-theme-ocean .quikdown-li { color: #e0e0e0; } /* --- Modern theme (bubble style) --- */ .quikchat-theme-modern .quikdown-pre { background: #f4f4f4; padding: 10px; border-radius: 4px; overflow-x: auto; margin: 0.5em 0; } .quikchat-theme-modern .quikdown-code { background: rgba(0, 0, 0, 0.06); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; } /* In blue bubbles (right-aligned/user messages), invert code blocks */ .quikchat-theme-modern .quikchat-align-right .quikdown-pre { background: rgba(255, 255, 255, 0.15); } .quikchat-theme-modern .quikchat-align-right .quikdown-code { background: rgba(255, 255, 255, 0.2); color: #fff; } .quikchat-theme-modern .quikchat-align-right .quikdown-a { color: #cce5ff; } .quikchat-theme-modern .quikchat-align-left .quikdown-a { color: #06c; } .quikchat-theme-modern .quikdown-blockquote { border-left: 4px solid #ddd; margin-left: 0; padding-left: 1em; color: #666; } /* --- Debug theme --- */ .quikchat-theme-debug .quikdown-pre { background: #f4f4f4; padding: 10px; border-radius: 4px; overflow-x: auto; margin: 0.5em 0; } .quikchat-theme-debug .quikdown-code { background: #e8e8e8; padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; }