diff --git a/web/packages/extension/assets/css/form.css b/web/packages/extension/assets/css/form.css new file mode 100644 index 000000000000..e0fbd2c386e0 --- /dev/null +++ b/web/packages/extension/assets/css/form.css @@ -0,0 +1,98 @@ +.form-element { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 5px; +} + +.form-element .form-label { + font-weight: bold; +} + +.form-element .form-group { + display: flex; + flex-direction: column; + gap: 5px; +} + +.form-type-number { + width: 60px; +} + +.form-type-text { + width: 124px; +} + +/* Switch - Based on "Pure CSS Slider Checkboxes": https://codepen.io/Qvcool/pen/bdzVYW */ + +.form-type-switch { + position: relative; +} + +.form-type-switch input { + margin: 1px 0 0; + cursor: pointer; + opacity: 0; + position: absolute; + z-index: 1; + top: 0; + left: 0; + background: red; + width: 40px; + height: 20px; +} + +.form-type-switch, +.form-type-switch .slider, +.form-type-switch .slider::before { + height: 20px; +} + +.form-type-switch .slider { + position: relative; + padding-left: 46px; +} + +.form-type-switch .slider::before, +.form-type-switch .slider::after { + position: absolute; + border-radius: 10px; + transition: + background-color 0.3s, + left 0.3s; +} + +.form-type-switch .slider::before { + content: ""; + color: #fff; + box-sizing: border-box; + padding-left: 23px; + font-size: 12px; + line-height: 20px; + background-color: #888; + left: 0; + top: 0; + height: 20px; + width: 40px; + border-radius: 10px; +} + +.form-type-switch .slider::after { + content: ""; + letter-spacing: 20px; + background: #fff; + left: 1px; + top: 1px; + height: 18px; + width: 18px; +} + +.form-type-switch input:checked + .slider::before { + background-color: var(--ruffle-orange); + content: ""; + padding-left: 6px; +} + +.form-type-switch input:checked + .slider::after { + left: 21px; +} diff --git a/web/packages/extension/assets/css/options.css b/web/packages/extension/assets/css/options.css index e199d4c77eff..ebeea6d659d6 100644 --- a/web/packages/extension/assets/css/options.css +++ b/web/packages/extension/assets/css/options.css @@ -12,12 +12,224 @@ padding: 24px 32px; } -#advanced-options { - color: var(--ruffle-orange); - font-size: 28px; - margin: 8px auto 0; +hr { + border: none; + height: 1px; + background-color: #546da3; + margin: 20px 0; + width: 100%; } #reset-settings { - margin: 0 auto; + display: block; + margin-left: auto; + margin-right: auto; +} + +.option-title { + border-bottom: 2px solid var(--ruffle-light-blue); + padding-bottom: 8px; + margin-block-end: 10px; + font-size: 1.2em; + color: var(--ruffle-orange); +} + +.option-description { + opacity: 0.8; + margin-block: 15px; + margin-left: 5px; +} + +/* Per-site settings */ + +#per-site-list { + display: flex; + flex-direction: column; + gap: 8px; +} + +.per-site-entry { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px; + border-radius: 8px; + background: var(--ruffle-dark-blue); +} + +.per-site-entry .site-domain { + font-weight: bold; +} + +#site-entry-new { + display: block; + margin: 10px 0 10px auto; +} + +/* Modal */ + +.modal-open { + overflow: hidden; +} + +.modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgb(0 0 0 / 70%); + display: none; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.modal-content { + background: var(--ruffle-blue); + border: 2px solid var(--ruffle-light-blue); + padding: 25px; + border-radius: 8px; + width: 90%; + max-width: 800px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 5px 15px rgb(0 0 0 / 50%); + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-header h3 { + margin: 0; + color: var(--ruffle-orange); +} + +.modal-close-btn { + font-size: 1.5rem; + cursor: pointer; + border: none; + background: none; + color: #aaa; +} + +.modal-body { + margin-top: 20px; +} + +.modal-footer { + margin-top: 25px; + display: flex; + gap: 10px; + justify-content: flex-end; +} + +/* Modal Scrollbar */ + +:root { + --scrollbar-width: 8px; + --scrollbar-track: rgb(255 255 255 / 10%); + --scrollbar-thumb: rgb(255 255 255 / 30%); + --scrollbar-thumb-hover: rgb(255 255 255 / 50%); + --scrollbar-border-radius: 4px; +} + +/* Webkit browsers (Chrome, Safari, Edge) */ +.modal-content::-webkit-scrollbar { + width: var(--scrollbar-width); + height: var(--scrollbar-width); +} + +.modal-content::-webkit-scrollbar-track { + background: var(--scrollbar-track); + border-radius: var(--scrollbar-border-radius); +} + +.modal-content::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb); + border-radius: var(--scrollbar-border-radius); + transition: background-color 0.2s ease; +} + +.modal-content::-webkit-scrollbar-thumb:hover { + background: var(--scrollbar-thumb-hover); +} + +.modal-content::-webkit-scrollbar-corner { + background: var(--scrollbar-track); +} + +.modal-content::-webkit-scrollbar-button { + display: none; +} + +/* Sections */ + +.settings-section > * { + padding-bottom: 15px; +} + +.settings-section > :last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; +} + +.settings-section-title { + font-size: 1.1em; + font-weight: bold; + color: var(--ruffle-orange); + margin-bottom: 10px; +} + +/* Per-site override options */ + +.settings-option { + display: grid; + grid-template-columns: 40px 1fr; + align-items: start; + gap: 15px; + border-bottom: 1px solid var(--ruffle-light-blue); +} + +.settings-option-toggle { + margin: auto 0; +} + +.settings-option:last-child { + border-bottom: none; +} + +.settings-option .settings-option-control.settings-option-disabled { + pointer-events: none; + opacity: 0.5; +} + +/* Per-site override option label and description */ + +.settings-option-control { + display: flex; + flex-direction: column; + gap: 5px; +} + +.settings-option-control small { + font-size: 0.8em; + color: #ccc; + opacity: 0.8; +} + +.settings-row { + display: flex; + justify-content: space-between; + align-items: center; +} + +.settings-row label { + font-weight: bold; } diff --git a/web/packages/extension/assets/options.html b/web/packages/extension/assets/options.html index 6431a4121f44..e5da4af34303 100644 --- a/web/packages/extension/assets/options.html +++ b/web/packages/extension/assets/options.html @@ -7,6 +7,7 @@