Structural cleanup based on thermo-nuclear code quality review: - Extract shared color-picker.css and color-popover.css from badges.css (611→85 lines) - Extract shared lib/presets.js for preset CRUD used by popup and popover - Unify dark mode to single applyDarkModeClass on <html>, removing 4 scattered functions - Fix stale closure in startPostObserver, data-driven reload key check - Remove dead exports, getHelpers wrapper, duplicated colorToHex - Replace DOM expando properties with state array in popup.js Net: -318 lines of duplication, no file over 401 lines. Co-authored-by: Cursor <cursoragent@cursor.com>
221 lines
3.3 KiB
CSS
221 lines
3.3 KiB
CSS
* {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
width: 320px;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
font-size: 13px;
|
|
color: #1a1a1a;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.popup-container {
|
|
padding: 16px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 16px;
|
|
margin-bottom: 12px;
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid #e0e0e0;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.section {
|
|
margin-bottom: 16px;
|
|
padding-bottom: 12px;
|
|
border-bottom: 1px solid #f0f0f0;
|
|
}
|
|
|
|
.section:last-child {
|
|
border-bottom: none;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.toggle-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
}
|
|
|
|
label {
|
|
display: block;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
select {
|
|
width: 100%;
|
|
padding: 4px 8px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
font-size: 13px;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
fieldset {
|
|
border: 1px solid #e0e0e0;
|
|
border-radius: 4px;
|
|
padding: 8px 12px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
legend {
|
|
font-weight: 600;
|
|
font-size: 12px;
|
|
padding: 0 4px;
|
|
}
|
|
|
|
fieldset label {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 4px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
fieldset .rt-color-swatch {
|
|
width: 40px;
|
|
height: 24px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
fieldset input[type="text"] {
|
|
width: 80px;
|
|
padding: 2px 6px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
font-size: 12px;
|
|
font-family: monospace;
|
|
}
|
|
|
|
.btn-secondary {
|
|
background: #f0f0f0;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
padding: 4px 10px;
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
background: #e0e0e0;
|
|
}
|
|
|
|
.btn-danger {
|
|
background: #d9534f;
|
|
color: white;
|
|
border: 1px solid #c9302c;
|
|
border-radius: 3px;
|
|
padding: 6px 12px;
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
width: 100%;
|
|
}
|
|
|
|
.btn-danger:hover {
|
|
background: #c9302c;
|
|
}
|
|
|
|
.subreddit-entry {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
margin-bottom: 6px;
|
|
padding: 6px;
|
|
background: #fafafa;
|
|
border: 1px solid #e0e0e0;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.subreddit-entry input[type="text"] {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.subreddit-entry .btn-remove {
|
|
background: none;
|
|
border: none;
|
|
color: #999;
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
padding: 0 4px;
|
|
}
|
|
|
|
.subreddit-entry .btn-remove:hover {
|
|
color: #d9534f;
|
|
}
|
|
|
|
.section-hint {
|
|
font-size: 11px;
|
|
color: #888;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.subreddit-entry-header {
|
|
display: flex;
|
|
gap: 4px;
|
|
align-items: center;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.subreddit-entry-header input[type="text"] {
|
|
flex: 1;
|
|
min-width: 0;
|
|
padding: 2px 6px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
font-size: 12px;
|
|
font-family: monospace;
|
|
}
|
|
|
|
.subreddit-entry-mode {
|
|
display: flex;
|
|
gap: 4px;
|
|
align-items: center;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.subreddit-entry-mode select {
|
|
width: auto;
|
|
padding: 2px 6px;
|
|
font-size: 11px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.subreddit-entry-colors {
|
|
display: flex;
|
|
gap: 4px;
|
|
align-items: center;
|
|
}
|
|
|
|
.subreddit-entry-colors .rt-color-swatch {
|
|
width: 40px;
|
|
height: 24px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* --- Popup-specific preset bar --- */
|
|
.rt-preset-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
margin-top: 4px;
|
|
}
|