Files
docker-compose/asciinema/theme/custom.css

279 lines
5.2 KiB
CSS

/* Pivoine Rose Custom Theme for Asciinema Server */
/* Primary Color: #CE275B (Pivoine Rose) */
/* Background: Gray tones */
:root {
--pivoine-rose: #CE275B;
--pivoine-rose-dark: #A61E47;
--pivoine-rose-light: #E63368;
--gray-50: #FAFAFA;
--gray-100: #F5F5F5;
--gray-200: #EEEEEE;
--gray-300: #E0E0E0;
--gray-400: #BDBDBD;
--gray-500: #9E9E9E;
--gray-600: #757575;
--gray-700: #616161;
--gray-800: #424242;
--gray-900: #212121;
}
/* Override Bootstrap primary color */
.btn-primary,
.badge-primary,
.bg-primary,
.text-primary,
a.text-primary:hover,
a.text-primary:focus {
background-color: var(--pivoine-rose) !important;
border-color: var(--pivoine-rose) !important;
color: white !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
background-color: var(--pivoine-rose-dark) !important;
border-color: var(--pivoine-rose-dark) !important;
}
/* Links */
a {
color: var(--pivoine-rose);
}
a:hover,
a:focus {
color: var(--pivoine-rose-dark);
}
/* Body and backgrounds */
body {
background-color: var(--gray-100);
color: var(--gray-900);
}
/* Header/Navbar */
.navbar {
background-color: var(--gray-800) !important;
border-bottom: 3px solid var(--pivoine-rose);
}
.navbar-dark .navbar-brand {
color: var(--pivoine-rose) !important;
font-weight: 600;
}
.navbar-dark .navbar-brand:hover {
color: var(--pivoine-rose-light) !important;
}
.navbar-dark .navbar-nav .nav-link {
color: var(--gray-200) !important;
}
.navbar-dark .navbar-nav .nav-link:hover {
color: var(--pivoine-rose) !important;
}
/* Cards and containers */
.card,
.list-group-item {
background-color: white;
border-color: var(--gray-300);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.card-header,
.list-group-item.active {
background-color: var(--gray-800);
border-color: var(--gray-700);
color: white;
}
/* Main content area */
.container,
.container-fluid {
background-color: var(--gray-50);
padding: 2rem 1rem;
}
main {
background-color: white;
border-radius: 4px;
padding: 2rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* Buttons */
.btn {
border-radius: 4px;
font-weight: 500;
transition: all 0.2s ease;
}
.btn-outline-primary {
color: var(--pivoine-rose);
border-color: var(--pivoine-rose);
}
.btn-outline-primary:hover {
background-color: var(--pivoine-rose);
border-color: var(--pivoine-rose);
color: white;
}
.btn-secondary {
background-color: var(--gray-600);
border-color: var(--gray-600);
}
.btn-secondary:hover {
background-color: var(--gray-700);
border-color: var(--gray-700);
}
/* Forms */
.form-control {
border-color: var(--gray-300);
border-radius: 4px;
}
.form-control:focus {
border-color: var(--pivoine-rose);
box-shadow: 0 0 0 0.2rem rgba(206, 39, 91, 0.25);
}
/* Alerts */
.alert-primary {
background-color: rgba(206, 39, 91, 0.1);
border-color: var(--pivoine-rose);
color: var(--pivoine-rose-dark);
}
/* Tables */
.table {
background-color: white;
}
.table thead th {
background-color: var(--gray-100);
border-bottom: 2px solid var(--pivoine-rose);
color: var(--gray-800);
}
.table-striped tbody tr:nth-of-type(odd) {
background-color: var(--gray-50);
}
/* Pagination */
.pagination .page-item.active .page-link {
background-color: var(--pivoine-rose);
border-color: var(--pivoine-rose);
}
.pagination .page-link {
color: var(--pivoine-rose);
}
.pagination .page-link:hover {
color: var(--pivoine-rose-dark);
background-color: var(--gray-100);
}
/* Player/Terminal */
.asciinema-player-wrapper,
.asciinema-terminal {
border-radius: 4px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
/* Footer */
footer {
background-color: var(--gray-800);
color: var(--gray-400);
border-top: 3px solid var(--pivoine-rose);
}
footer a {
color: var(--gray-300);
}
footer a:hover {
color: var(--pivoine-rose);
}
/* Badges */
.badge {
border-radius: 3px;
font-weight: 500;
}
.badge-secondary {
background-color: var(--gray-600);
}
/* Dropdowns */
.dropdown-menu {
border-color: var(--gray-300);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.dropdown-item:hover,
.dropdown-item:focus {
background-color: var(--gray-100);
color: var(--pivoine-rose);
}
/* Loading/Progress */
.progress-bar {
background-color: var(--pivoine-rose);
}
/* Custom recording list */
.recording-item {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.recording-item:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* Logo styling */
.navbar-brand svg,
.navbar-brand img {
filter: brightness(0) saturate(100%) invert(28%) sepia(91%) saturate(2059%) hue-rotate(325deg) brightness(89%) contrast(92%);
transition: filter 0.2s ease;
}
.navbar-brand:hover svg,
.navbar-brand:hover img {
filter: brightness(0) saturate(100%) invert(36%) sepia(96%) saturate(2373%) hue-rotate(329deg) brightness(96%) contrast(87%);
}
/* Responsive adjustments */
@media (max-width: 768px) {
main {
padding: 1rem;
}
.container,
.container-fluid {
padding: 1rem 0.5rem;
}
}
/* Smooth animations */
* {
transition-property: background-color, border-color, color;
transition-duration: 0.15s;
transition-timing-function: ease-in-out;
}
button,
.btn,
a {
transition-property: all;
}