/** * Asciinema Custom Theme - "Pivoine" * Inspired by pivoine.art aesthetic * * Color Palette: * - Primary Accent: RGB(206, 39, 91) - Deep rose/magenta * - Dark Background: HSL(0, 0%, 17.5%) - Charcoal * - High contrast with bold color pops */ :root { /* Pivoine Color Palette */ --pivoine-rose: rgb(206, 39, 91); --pivoine-rose-light: rgb(226, 79, 121); --pivoine-rose-dark: rgb(166, 19, 71); --pivoine-rose-fade: rgba(206, 39, 91, 0.15); --pivoine-rose-glow: rgba(206, 39, 91, 0.3); /* Dark Mode Charcoal */ --pivoine-bg-dark: hsl(0, 0%, 17.5%); --pivoine-bg-darker: hsl(0, 0%, 12%); --pivoine-bg-lighter: hsl(0, 0%, 22%); --pivoine-border: hsl(0, 0%, 25%); /* Text Colors */ --pivoine-text-primary: hsl(0, 0%, 95%); --pivoine-text-secondary: hsl(0, 0%, 75%); --pivoine-text-muted: hsl(0, 0%, 55%); /* Accent Variants */ --pivoine-success: rgb(16, 185, 129); --pivoine-warning: rgb(245, 158, 11); --pivoine-info: rgb(59, 130, 246); } /* Global Styling */ body { background-color: var(--pivoine-bg-dark) !important; color: var(--pivoine-text-primary) !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif !important; } /* Header & Navigation */ header, .header, nav, .navbar { background-color: var(--pivoine-bg-darker) !important; border-bottom: 2px solid var(--pivoine-rose) !important; } /* Override Bootstrap navbar-dark and bg-dark */ .navbar-dark, .bg-dark { background-color: var(--pivoine-bg-darker) !important; } .navbar, .nav-link { color: var(--pivoine-text-primary) !important; } .nav-link:hover, .nav-link:focus { color: var(--pivoine-rose-light) !important; background-color: var(--pivoine-rose-fade) !important; border-radius: 4px; transition: all 0.3s ease; } /* Primary Buttons & Links */ a { color: var(--pivoine-rose-light) !important; text-decoration: none; transition: color 0.2s ease; } a:hover, a:focus { color: var(--pivoine-rose) !important; text-decoration: underline; } button, .btn, .btn-light, input[type="submit"] { background-color: var(--pivoine-rose) !important; color: white !important; border: none !important; border-radius: 6px !important; padding: 8px 16px !important; font-weight: 600 !important; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } button:hover, .btn:hover, .btn-light:hover, input[type="submit"]:hover { background-color: var(--pivoine-rose-light) !important; box-shadow: 0 4px 8px var(--pivoine-rose-glow); transform: translateY(-1px); } button:active, .btn:active, .btn-light:active, input[type="submit"]:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } /* Active state for buttons */ .btn.active, .btn-light.active { background-color: var(--pivoine-rose-dark) !important; color: white !important; } /* Cards & Containers */ .card, .panel, .recording-item, article { background-color: var(--pivoine-bg-lighter) !important; border: 1px solid var(--pivoine-border) !important; border-radius: 8px !important; padding: 16px !important; margin-bottom: 16px !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; } .card:hover, .recording-item:hover { border-color: var(--pivoine-rose) !important; box-shadow: 0 4px 12px var(--pivoine-rose-glow); transform: translateY(-2px); } /* Don't style Bootstrap .container - it's a layout wrapper */ .container { background-color: transparent !important; border: none !important; box-shadow: none !important; padding-left: 15px !important; padding-right: 15px !important; } /* Forms & Inputs */ input[type="text"], input[type="email"], input[type="password"], input[type="search"], textarea, select { background-color: var(--pivoine-bg-darker) !important; color: var(--pivoine-text-primary) !important; border: 2px solid var(--pivoine-border) !important; border-radius: 6px !important; padding: 10px 14px !important; transition: all 0.3s ease; } input:focus, textarea:focus, select:focus { outline: none !important; border-color: var(--pivoine-rose) !important; box-shadow: 0 0 0 3px var(--pivoine-rose-fade); } /* Terminal Player */ .asciinema-player, .player-wrapper, .terminal { background-color: var(--pivoine-bg-darker) !important; border: 2px solid var(--pivoine-rose) !important; border-radius: 8px !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4); } .asciinema-player .control-bar { background-color: var(--pivoine-bg-dark) !important; border-top: 1px solid var(--pivoine-border) !important; } .asciinema-player .play-button, .asciinema-player button { color: var(--pivoine-rose) !important; } .asciinema-player .play-button:hover, .asciinema-player button:hover { color: var(--pivoine-rose-light) !important; } .asciinema-player .progressbar { background-color: var(--pivoine-border) !important; } .asciinema-player .progressbar .bar { background-color: var(--pivoine-rose) !important; } /* Recording Metadata */ .recording-meta, .info, .metadata { color: var(--pivoine-text-secondary) !important; font-size: 0.9em; padding: 8px 0; } .recording-meta strong, .metadata .label { color: var(--pivoine-rose-light) !important; font-weight: 600; } /* Tags & Badges */ .tag, .badge, .label { background-color: var(--pivoine-rose-fade) !important; color: var(--pivoine-rose-light) !important; border: 1px solid var(--pivoine-rose) !important; border-radius: 4px !important; padding: 4px 10px !important; font-size: 0.85em; font-weight: 600; display: inline-block; margin: 4px 4px 4px 0; } /* Tables */ table { background-color: var(--pivoine-bg-lighter) !important; border-collapse: collapse; width: 100%; } thead { background-color: var(--pivoine-bg-darker) !important; border-bottom: 2px solid var(--pivoine-rose) !important; } th { color: var(--pivoine-rose-light) !important; font-weight: 700; padding: 12px !important; text-align: left; } td { color: var(--pivoine-text-primary) !important; padding: 10px 12px !important; border-bottom: 1px solid var(--pivoine-border) !important; } tr:hover { background-color: var(--pivoine-rose-fade) !important; } /* Pagination */ .pagination a, .pagination span { background-color: var(--pivoine-bg-lighter) !important; color: var(--pivoine-text-primary) !important; border: 1px solid var(--pivoine-border) !important; border-radius: 4px !important; padding: 6px 12px !important; margin: 0 4px; display: inline-block; } .pagination a:hover { background-color: var(--pivoine-rose) !important; border-color: var(--pivoine-rose) !important; color: white !important; } .pagination .current { background-color: var(--pivoine-rose) !important; border-color: var(--pivoine-rose) !important; color: white !important; } /* Footer */ footer { background-color: var(--pivoine-bg-darker) !important; border-top: 2px solid var(--pivoine-rose) !important; color: var(--pivoine-text-secondary) !important; padding: 24px 0 !important; margin-top: 48px; } /* Code Blocks */ pre, code { background-color: var(--pivoine-bg-darker) !important; color: var(--pivoine-text-primary) !important; border: 1px solid var(--pivoine-border) !important; border-radius: 4px !important; padding: 12px !important; font-family: "JetBrains Mono", "Fira Code", "Consolas", monospace !important; font-size: 0.9em; } /* Alerts & Messages */ .alert, .message, .notice { border-radius: 6px !important; padding: 12px 16px !important; margin: 16px 0 !important; border-left: 4px solid; } .alert-success, .message-success { background-color: rgba(16, 185, 129, 0.15) !important; border-left-color: var(--pivoine-success) !important; color: var(--pivoine-success) !important; } .alert-warning, .message-warning { background-color: rgba(245, 158, 11, 0.15) !important; border-left-color: var(--pivoine-warning) !important; color: var(--pivoine-warning) !important; } .alert-info, .message-info { background-color: rgba(59, 130, 246, 0.15) !important; border-left-color: var(--pivoine-info) !important; color: var(--pivoine-info) !important; } .alert-error, .message-error { background-color: var(--pivoine-rose-fade) !important; border-left-color: var(--pivoine-rose) !important; color: var(--pivoine-rose-light) !important; } /* User Profile */ .avatar, .user-avatar { border: 3px solid var(--pivoine-rose) !important; border-radius: 50% !important; box-shadow: 0 2px 8px var(--pivoine-rose-glow); } /* Loading States */ .spinner, .loading { border-color: var(--pivoine-border) !important; border-top-color: var(--pivoine-rose) !important; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 12px; height: 12px; } ::-webkit-scrollbar-track { background-color: var(--pivoine-bg-dark); } ::-webkit-scrollbar-thumb { background-color: var(--pivoine-border); border-radius: 6px; border: 2px solid var(--pivoine-bg-dark); } ::-webkit-scrollbar-thumb:hover { background-color: var(--pivoine-rose); } /* Selection */ ::selection { background-color: var(--pivoine-rose-glow) !important; color: white !important; } ::-moz-selection { background-color: var(--pivoine-rose-glow) !important; color: white !important; } /* Responsive Design */ @media (max-width: 768px) { .card, .panel { padding: 12px !important; } button, .btn { padding: 6px 12px !important; font-size: 0.9em !important; } } /* Animations */ @keyframes pivoine-pulse { 0%, 100% { box-shadow: 0 0 0 0 var(--pivoine-rose-glow); } 50% { box-shadow: 0 0 0 8px rgba(206, 39, 91, 0); } } .recording-item:hover, .card:hover { animation: pivoine-pulse 2s ease-in-out infinite; } /* Logo & Branding */ .logo { filter: brightness(0) saturate(100%) invert(47%) sepia(74%) saturate(1845%) hue-rotate(319deg) brightness(93%) contrast(87%); } /* Custom Highlight */ mark, .highlight { background-color: var(--pivoine-rose-fade) !important; color: var(--pivoine-rose-light) !important; padding: 2px 6px; border-radius: 3px; }