diff options
author | polwex <polwex@sortug.com> | 2025-09-17 21:45:18 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-09-17 21:45:18 +0700 |
commit | 985fa2f7c99832cdf3c3351d2273c8fd05402b78 (patch) | |
tree | bc727486a89ad05e588754f8de8b1096400a3d31 /front/src/styles/Settings.css | |
parent | f0df4c7297a05bd592d8717b8997284c80fd0500 (diff) |
basic comms working
Diffstat (limited to 'front/src/styles/Settings.css')
-rw-r--r-- | front/src/styles/Settings.css | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/front/src/styles/Settings.css b/front/src/styles/Settings.css new file mode 100644 index 0000000..bb1f46e --- /dev/null +++ b/front/src/styles/Settings.css @@ -0,0 +1,339 @@ +.settings-page { + max-width: 800px; + margin: 0 auto; + padding: 20px; +} + +.settings-header { + margin-bottom: 30px; + padding-bottom: 20px; + border-bottom: 1px solid var(--color-border); +} + +.settings-header h1 { + margin: 0 0 8px 0; + color: var(--color-text); + font-size: 32px; + font-weight: 600; +} + +.settings-header p { + margin: 0; + color: var(--color-text-secondary); + font-size: 16px; +} + +.settings-content { + display: flex; + flex-direction: column; + gap: 24px; +} + +/* Settings Sections */ +.settings-section { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: 12px; + overflow: hidden; +} + +.section-header { + display: flex; + align-items: center; + gap: 12px; + padding: 20px 24px; + background: var(--color-background); + border-bottom: 1px solid var(--color-border); +} + +.section-header h2 { + margin: 0; + color: var(--color-text); + font-size: 20px; + font-weight: 600; +} + +.section-content { + padding: 0; +} + +/* Setting Items */ +.setting-item { + display: flex; + justify-content: space-between; + align-items: flex-start; + padding: 24px; + gap: 20px; +} + +.setting-item:not(:last-child) { + border-bottom: 1px solid var(--color-border-light); +} + +.setting-info { + flex: 1; + min-width: 0; +} + +.setting-info label { + display: block; + margin-bottom: 4px; + color: var(--color-text); + font-size: 16px; + font-weight: 500; +} + +.setting-info p { + margin: 0; + color: var(--color-text-secondary); + font-size: 14px; + line-height: 1.4; +} + +.setting-control { + flex-shrink: 0; + display: flex; + align-items: center; + gap: 12px; +} + +/* Key Display */ +.key-display { + display: flex; + align-items: center; + gap: 12px; + width: 100%; + max-width: 400px; +} + +.pubkey { + flex: 1; + padding: 10px 12px; + background: var(--color-background); + border: 1px solid var(--color-border); + border-radius: 6px; + color: var(--color-text); + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; + font-size: 12px; + word-break: break-all; + line-height: 1.3; + min-width: 0; +} + +.cycle-btn { + display: flex; + align-items: center; + gap: 6px; + padding: 10px 16px; + background: var(--color-primary); + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: opacity 0.2s; + white-space: nowrap; +} + +.cycle-btn:hover:not(:disabled) { + opacity: 0.9; +} + +.cycle-btn:disabled { + opacity: 0.6; + cursor: not-allowed; +} + +/* Relay Management */ +.relay-list { + width: 100%; + max-width: 500px; +} + +.no-relays { + display: flex; + flex-direction: column; + align-items: center; + padding: 30px 20px; + text-align: center; + color: var(--color-text-muted); +} + +.no-relays p { + margin: 12px 0 0 0; + color: var(--color-text-muted); +} + +.relay-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px 16px; + background: var(--color-background); + border: 1px solid var(--color-border); + border-radius: 8px; + margin-bottom: 8px; + transition: border-color 0.2s; +} + +.relay-item:hover { + border-color: var(--color-primary); +} + +.relay-info { + flex: 1; + min-width: 0; +} + +.relay-url { + display: block; + color: var(--color-text); + font-size: 14px; + font-weight: 500; + word-break: break-all; + margin-bottom: 2px; +} + +.relay-status { + display: inline-block; + color: var(--color-success); + font-size: 12px; + padding: 2px 6px; + background: var(--color-surface); + border-radius: 3px; + border: 1px solid var(--color-success); +} + +.remove-relay-btn { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + background: var(--color-error); + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 16px; + font-weight: bold; + transition: opacity 0.2s; + flex-shrink: 0; +} + +.remove-relay-btn:hover { + opacity: 0.8; +} + +/* Add Relay Form */ +.add-relay-form { + margin-top: 16px; + padding-top: 16px; + border-top: 1px solid var(--color-border-light); +} + +.relay-input-group { + display: flex; + gap: 8px; + width: 100%; +} + +.relay-input { + flex: 1; + padding: 10px 12px; + border: 1px solid var(--color-border); + border-radius: 6px; + background: var(--color-background); + color: var(--color-text); + font-size: 14px; +} + +.relay-input:focus { + outline: none; + border-color: var(--color-primary); +} + +.relay-input::placeholder { + color: var(--color-text-muted); +} + +.add-relay-btn { + display: flex; + align-items: center; + gap: 6px; + padding: 10px 16px; + background: var(--color-primary); + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: opacity 0.2s; + white-space: nowrap; +} + +.add-relay-btn:hover:not(:disabled) { + opacity: 0.9; +} + +.add-relay-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .settings-page { + padding: 16px; + } + + .setting-item { + flex-direction: column; + align-items: stretch; + gap: 16px; + } + + .setting-control { + width: 100%; + justify-content: stretch; + } + + .key-display { + max-width: none; + flex-direction: column; + align-items: stretch; + gap: 8px; + } + + .pubkey { + text-align: center; + } + + .relay-input-group { + flex-direction: column; + } + + .section-header { + padding: 16px 20px; + } + + .setting-item { + padding: 20px; + } +} + +@media (max-width: 480px) { + .settings-header h1 { + font-size: 28px; + } + + .section-header h2 { + font-size: 18px; + } + + .settings-page { + padding: 12px; + } +}
\ No newline at end of file |