diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-09-11 18:44:14 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-09-11 18:44:14 +0200 |
commit | 2af0f5e64e47c59e575802249983feb8968959b1 (patch) | |
tree | a2d80749d6b297ef05b1893949081b678f9e8677 /src/pages/components | |
parent | chore(Merge): remote-tracking branch 'origin/master' (diff) | |
parent | Translated using Weblate (Arabic) (diff) | |
download | libredirect-2af0f5e64e47c59e575802249983feb8968959b1.zip |
chore(merge): Merge remote-tracking branch 'origin/master'
Following Conflicts have been resolved: README.md src/_locales/bs/messages.json src/_locales/de/messages.json src/_locales/en/messages.json src/_locales/fr/messages.json src/_locales/ko/messages.json src/_locales/nb_NO/messages.json src/_locales/pt/messages.json src/_locales/pt_BR/messages.json src/_locales/sr/messages.json src/_locales/vi/messages.json src/assets/images/libredirect.svg src/assets/javascripts/services.js src/config.json src/manifest.json src/updates/updates.xml
Diffstat (limited to 'src/pages/components')
-rw-r--r-- | src/pages/components/Button.svelte | 35 | ||||
-rw-r--r-- | src/pages/components/Checkbox.svelte | 52 | ||||
-rw-r--r-- | src/pages/components/Input.svelte | 46 | ||||
-rw-r--r-- | src/pages/components/Label.svelte | 18 | ||||
-rw-r--r-- | src/pages/components/Row.svelte | 12 | ||||
-rw-r--r-- | src/pages/components/Select.svelte | 34 |
6 files changed, 197 insertions, 0 deletions
diff --git a/src/pages/components/Button.svelte b/src/pages/components/Button.svelte new file mode 100644 index 00000000..6ae2ba61 --- /dev/null +++ b/src/pages/components/Button.svelte @@ -0,0 +1,35 @@ +<button {...$$restProps} on:click {...$$props}> + <slot></slot> +</button> + +<style> + button { + color: var(--text); + border: none; + text-decoration: none; + cursor: pointer; + font-size: 16px; + font-weight: bold; + transition-duration: 0.1s; + display: inline-flex; + align-items: center; + margin: 7.5px 0; + background-color: var(--bg-secondary); + border-radius: 5px; + padding: 10px; + } + + button:hover:enabled { + color: var(--active); + } + + button:active:enabled { + transform: translateY(1px); + } + + button:disabled { + cursor: not-allowed; + opacity: 0.5; + } + +</style> diff --git a/src/pages/components/Checkbox.svelte b/src/pages/components/Checkbox.svelte new file mode 100644 index 00000000..d42a4f10 --- /dev/null +++ b/src/pages/components/Checkbox.svelte @@ -0,0 +1,52 @@ +<script> + export let checked + export let onChange +</script> + +<input class={document.body.dir} {...$$restProps} bind:checked on:change={onChange} type="checkbox" /> + +<style> + input[type="checkbox"] { + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + width: 46px; + height: 24px; + background-color: var(--light-grey); + border-radius: 50px; + transition: 0.4s; + cursor: pointer; + } + + input[type="checkbox"]:checked { + background-color: var(--active); + } + + input[type="checkbox"]::before { + content: ""; + display: inline-block; + width: 18px; + height: 18px; + box-sizing: border-box; + position: relative; + top: 3px; + left: 3.5px; + background-color: white; + border-radius: 50%; + transition: 0.3s; + } + + input[type="checkbox"]:checked::before { + left: 24px; + } + + input[type="checkbox"].rtl::before { + left: auto; + right: 3.5px; + } + + input[type="checkbox"].rtl:checked::before { + left: auto; + right: 24px; + } +</style> diff --git a/src/pages/components/Input.svelte b/src/pages/components/Input.svelte new file mode 100644 index 00000000..59e584db --- /dev/null +++ b/src/pages/components/Input.svelte @@ -0,0 +1,46 @@ +<script> + export let value +</script> + +<input + {...$$restProps} + bind:value + on:blur + on:change + on:click + on:contextmenu + on:focus + on:keydown + on:keypress + on:keyup + on:mouseover + on:mouseenter + on:mouseleave + on:paste + on:input +/> + +<style> + input { + font-weight: bold; + box-sizing: border-box; + color: var(--text); + font-size: 16px; + padding: 8px; + background-color: var(--bg-secondary); + border: none; + margin: 0; + width: 400px; + border-radius: 3px; + outline-color: var(--active); + } + + input:focus { + outline-color: var(--active); + } + @media (max-width: 715px) { + input { + width: 200px; + } + } +</style> diff --git a/src/pages/components/Label.svelte b/src/pages/components/Label.svelte new file mode 100644 index 00000000..39930cd1 --- /dev/null +++ b/src/pages/components/Label.svelte @@ -0,0 +1,18 @@ +<span> + <slot></slot> +</span> + +<style> + span { + font-size: 18px; + } + + span :global(a) { + color: var(--text); + text-decoration: none; + } + + span :global(a:hover) { + text-decoration: underline; + } +</style> diff --git a/src/pages/components/Row.svelte b/src/pages/components/Row.svelte new file mode 100644 index 00000000..09246d98 --- /dev/null +++ b/src/pages/components/Row.svelte @@ -0,0 +1,12 @@ +<div {...$$restProps} on:click> + <slot></slot> +</div> + +<style> + div { + justify-content: space-between; + display: flex; + align-items: center; + margin: 20px 0; + } +</style> diff --git a/src/pages/components/Select.svelte b/src/pages/components/Select.svelte new file mode 100644 index 00000000..7829c53e --- /dev/null +++ b/src/pages/components/Select.svelte @@ -0,0 +1,34 @@ +<script> + export let values + export let value + export let onChange + export let ariaLabel +</script> + +<select bind:value on:change={onChange} aria-label={ariaLabel} on:change on:contextmenu on:input> + {#each values as option} + <option value={option.value}>{option.name}</option> + {/each} +</select> + +<style> + select { + font-weight: bold; + box-sizing: border-box; + border-style: solid; + border-color: #767676; + color: var(--text); + font-size: 16px; + padding: 8px; + background-color: var(--bg-secondary); + border: none; + margin: 0; + max-width: 500px; + border-radius: 3px; + } + + select:disabled { + opacity: 0.6; + cursor: not-allowed; + } +</style> |