feat: add custom Pivoine Rose theme with Bootstrap 4 styling and SVG favicon
This commit is contained in:
278
asciinema/theme/custom.css
Normal file
278
asciinema/theme/custom.css
Normal file
@@ -0,0 +1,278 @@
|
||||
/* 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;
|
||||
}
|
||||
Reference in New Issue
Block a user