Files
greasyboii/firefox/popup.css
T

322 lines
6.7 KiB
CSS

/* ------------------------------------------------------------------ */
/* GreasyBoii — grease-monkey garage theme, layered on Bootstrap dark */
/* ------------------------------------------------------------------ */
:root {
--gm-bg: #16140f;
--gm-panel: #232019;
--gm-panel-alt: #1b1810;
--gm-panel-border: #4a3f2c;
--gm-amber: #ffb020;
--gm-amber-soft: #ffcf5c;
--gm-amber-deep: #ff8a1e;
--gm-text: #f1e9da;
--gm-text-muted: #b9ac93;
--gm-success: #6fae4a;
--gm-danger: #d9534f;
}
body {
width: 600px;
min-height: 400px;
max-height: 600px;
overflow-y: auto;
background:
radial-gradient(ellipse at top left, rgba(255, 138, 30, 0.08), transparent 55%),
radial-gradient(ellipse at bottom right, rgba(0, 0, 0, 0.5), transparent 60%),
var(--gm-bg);
color: var(--gm-text);
scrollbar-color: var(--gm-amber-deep) var(--gm-bg);
scrollbar-width: thin;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: var(--gm-bg);
}
::-webkit-scrollbar-thumb {
background: var(--gm-panel-border);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--gm-amber-deep);
}
/* ---------------- Brand header ---------------- */
.brand-icon {
width: 32px;
height: 32px;
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6));
}
.brand-title {
font-family: 'Arial Narrow', 'Helvetica Neue Condensed', Arial, sans-serif;
font-weight: 900;
letter-spacing: 0.06em;
text-transform: uppercase;
background: linear-gradient(180deg, var(--gm-amber-soft), var(--gm-amber-deep));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.brand-tagline {
font-size: 0.7rem;
color: var(--gm-text-muted);
letter-spacing: 0.03em;
}
.hazard-strip {
height: 5px;
border-radius: 3px;
background: repeating-linear-gradient(
135deg,
var(--gm-amber) 0 10px,
#171512 10px 20px
);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.4);
}
/* ---------------- Tabs ---------------- */
.nav-tabs {
border-bottom-color: var(--gm-panel-border);
}
.nav-tabs .nav-link {
color: var(--gm-text-muted);
font-weight: 700;
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.04em;
border: none;
border-bottom: 3px solid transparent;
border-radius: 0;
padding-left: 0.25rem;
padding-right: 0.25rem;
margin-right: 1rem;
}
.nav-tabs .nav-link:hover {
color: var(--gm-amber);
border-color: transparent;
}
.nav-tabs .nav-link.active {
color: var(--gm-amber);
background: transparent;
border-bottom-color: var(--gm-amber);
}
/* ---------------- Panels: rule cards + tool cards ---------------- */
.rule-card,
.tool-card {
position: relative;
border: 1px solid var(--gm-panel-border);
border-radius: 0.5rem;
padding: 1rem;
margin-bottom: 0.75rem;
background: linear-gradient(180deg, var(--gm-panel), var(--gm-panel-alt));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 6px rgba(0, 0, 0, 0.4);
}
.rule-card::before,
.rule-card::after,
.tool-card::before,
.tool-card::after {
content: '';
position: absolute;
top: 7px;
width: 6px;
height: 6px;
border-radius: 50%;
background: radial-gradient(circle at 35% 35%, #7a7166, #2a2620);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
}
.rule-card::before,
.tool-card::before {
left: 7px;
}
.rule-card::after,
.tool-card::after {
right: 7px;
}
.rule-card:hover {
border-color: var(--gm-amber-deep);
}
.rule-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.5rem;
}
.rule-name {
font-weight: 700;
font-size: 1.05rem;
color: var(--gm-text);
}
.rule-actions {
display: flex;
gap: 0.5rem;
}
.rule-details {
font-size: 0.875rem;
color: var(--gm-text-muted);
}
.rule-badge {
font-size: 0.7rem;
padding: 0.25rem 0.5rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.02em;
}
/* ---------------- Buttons ---------------- */
.btn-primary {
background: linear-gradient(180deg, var(--gm-amber-soft), var(--gm-amber-deep));
border-color: #c9670f;
color: #201705;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.03em;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 2px 4px rgba(0, 0, 0, 0.35);
}
.btn-primary:hover,
.btn-primary:focus {
background: linear-gradient(180deg, #ffdb7a, #ff9a3a);
border-color: #c9670f;
color: #201705;
}
.btn-primary:active {
background: linear-gradient(180deg, var(--gm-amber-deep), #e8730a);
color: #201705;
}
.btn-outline-light {
border-color: var(--gm-panel-border);
color: var(--gm-text);
}
.btn-outline-light:hover,
.btn-outline-light:focus {
background: var(--gm-amber);
border-color: var(--gm-amber);
color: #201705;
}
/* ---------------- Forms ---------------- */
.font-monospace {
font-family: 'Courier New', monospace;
font-size: 0.875rem;
}
.form-control,
.form-select {
background-color: var(--gm-panel-alt);
border-color: var(--gm-panel-border);
color: var(--gm-text);
}
.form-control:focus,
.form-select:focus {
background-color: var(--gm-panel-alt);
border-color: var(--gm-amber-deep);
color: var(--gm-text);
box-shadow: 0 0 0 0.2rem rgba(255, 138, 30, 0.25);
}
.form-switch .form-check-input {
cursor: pointer;
width: 3rem;
height: 1.5rem;
background-color: #3a2e1c;
border-color: var(--gm-panel-border);
}
.form-switch .form-check-input:checked {
background-color: var(--gm-success);
border-color: var(--gm-success);
}
.power-switch #masterToggleLabel {
font-weight: 700;
text-transform: uppercase;
font-size: 0.7rem;
letter-spacing: 0.05em;
color: var(--gm-text-muted);
}
/* ---------------- Modal ---------------- */
.modal-content {
background: var(--gm-panel);
border: 1px solid var(--gm-panel-border);
}
.modal-header,
.modal-footer {
border-color: var(--gm-panel-border);
}
#modalTitle {
text-transform: uppercase;
letter-spacing: 0.04em;
font-weight: 800;
color: var(--gm-amber);
}
.modal-lg {
max-width: 700px;
}
/* ---------------- Tools tab ---------------- */
.tool-card h6 {
font-weight: 700;
text-transform: uppercase;
font-size: 0.8rem;
letter-spacing: 0.03em;
color: var(--gm-amber);
border-bottom: 1px solid var(--gm-panel-border);
padding-bottom: 0.5rem;
margin-bottom: 0.75rem;
}
.tool-results {
min-height: 1.5rem;
}
.tool-scroll {
max-height: 150px;
overflow-y: auto;
}
/* ---------------- Advanced rule fields ---------------- */
#advancedSection > summary {
cursor: pointer;
user-select: none;
color: var(--gm-amber);
font-weight: 600;
}
#advancedSection .border {
border-color: var(--gm-panel-border) !important;
background: var(--gm-panel-alt);
}
.replacement-row .form-control {
font-size: 0.875rem;
}
.rules-list {
max-height: 450px;
overflow-y: auto;
}