279 lines
5.2 KiB
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;
|
||
|
|
}
|