mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-23 00:11:28 -07:00
feat(controller): add inline remap modal with descriptor-based bindings (#21)
This commit is contained in:
@@ -1105,6 +1105,197 @@ iframe[id^='yomitan-popup'] {
|
||||
color: #ff8f8f;
|
||||
}
|
||||
|
||||
.controller-select-field {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
margin-bottom: 12px;
|
||||
font-size: 13px;
|
||||
color: rgba(255, 255, 255, 0.88);
|
||||
}
|
||||
|
||||
.controller-select-field select {
|
||||
min-height: 38px;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.14);
|
||||
border-radius: 8px;
|
||||
background: rgba(10, 14, 20, 0.9);
|
||||
color: rgba(255, 255, 255, 0.94);
|
||||
}
|
||||
|
||||
.controller-select-summary {
|
||||
margin-bottom: 12px;
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
}
|
||||
|
||||
.controller-config-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height: 400px;
|
||||
overflow-y: auto;
|
||||
margin-bottom: 12px;
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
|
||||
}
|
||||
|
||||
.controller-config-group {
|
||||
margin-top: 14px;
|
||||
padding-bottom: 6px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: rgba(120, 190, 255, 0.9);
|
||||
}
|
||||
|
||||
.controller-config-group:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.controller-config-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 8px 10px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
transition: background 120ms ease;
|
||||
}
|
||||
|
||||
.controller-config-row:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.controller-config-row:hover {
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
}
|
||||
|
||||
.controller-config-row.expanded {
|
||||
background: rgba(100, 180, 255, 0.06);
|
||||
border-color: rgba(100, 180, 255, 0.15);
|
||||
}
|
||||
|
||||
.controller-config-label {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
font-size: 13px;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
|
||||
.controller-config-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.controller-config-badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.02em;
|
||||
background: rgba(100, 180, 255, 0.12);
|
||||
color: rgba(100, 180, 255, 0.95);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.controller-config-badge.disabled {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
.controller-config-edit-icon {
|
||||
font-size: 14px;
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
transition: color 120ms ease;
|
||||
}
|
||||
|
||||
.controller-config-row:hover .controller-config-edit-icon {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.controller-config-edit-panel {
|
||||
overflow: hidden;
|
||||
animation: configEditSlideIn 180ms ease-out;
|
||||
border-bottom: 1px solid rgba(100, 180, 255, 0.12);
|
||||
background: rgba(100, 180, 255, 0.04);
|
||||
}
|
||||
|
||||
@keyframes configEditSlideIn {
|
||||
from { max-height: 0; opacity: 0; }
|
||||
to { max-height: 120px; opacity: 1; }
|
||||
}
|
||||
|
||||
.controller-config-edit-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.controller-config-edit-hint {
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.controller-config-edit-hint.learning {
|
||||
color: rgba(100, 180, 255, 0.95);
|
||||
animation: configLearnPulse 1.2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes configLearnPulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.6; }
|
||||
}
|
||||
|
||||
.controller-config-edit-actions {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.btn-learn {
|
||||
padding: 5px 14px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(100, 180, 255, 0.4);
|
||||
background: rgba(100, 180, 255, 0.15);
|
||||
color: rgba(100, 180, 255, 0.95);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 120ms ease;
|
||||
}
|
||||
|
||||
.btn-learn:hover {
|
||||
background: rgba(100, 180, 255, 0.25);
|
||||
}
|
||||
|
||||
.btn-learn.active {
|
||||
border-color: rgba(100, 180, 255, 0.7);
|
||||
background: rgba(100, 180, 255, 0.25);
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
padding: 5px 12px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.12);
|
||||
background: transparent;
|
||||
color: rgba(255, 255, 255, 0.55);
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
transition: background 120ms ease, color 120ms ease;
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
.controller-debug-content {
|
||||
position: relative;
|
||||
width: min(760px, 94%);
|
||||
|
||||
Reference in New Issue
Block a user