A starkingdoms-client/src/components/ui/Button.svelte => starkingdoms-client/src/components/ui/Button.svelte +28 -0
@@ 0,0 1,28 @@
+<script lang="ts">
+ let clazz: string = "";
+ export { clazz as class };
+ export let id: string = "";
+ export let disabled = false;
+ export let style = "";
+</script>
+
+<button {id} class="btn {clazz}" {disabled} on:click on:focus {style}>
+ <slot />
+</button>
+
+<style lang="scss">
+ .btn {
+ appearance: none;
+ background: transparent;
+ color: var(--text);
+ padding: 0.675em 1em;
+ border-radius: 0.25rem;
+ cursor: text;
+ border: 2px solid var(--links);
+ transition: 0.1s ease-in-out;
+ }
+ .btn:hover {
+ cursor: pointer;
+ background-color: var(--links-transparent);
+ }
+</style>
M => +3 -7
@@ 3,6 3,7 @@
import MovableIcon from "../../icons/MovableIcon.svelte";
import ChevronDown from "../../icons/ChevronDown.svelte";
import ChevronUp from "../../icons/ChevronUp.svelte";
import Button from "./Button.svelte";
let clazz = "";
export { clazz as class };
@@ 87,13 88,13 @@
{title}
</h1>
{#if minimizable}
<button class="hdrbtn" on:click|preventDefault={toggleMinimized}>
<Button class="hdrbtn" on:click={toggleMinimized}>
{#if minimized}
<ChevronDown class="hdrbtn-icon" />
{:else}
<ChevronUp class="hdrbtn-icon" />
{/if}
</button>
</Button>
{/if}
</div>
{/if}
@@ 124,16 125,11 @@
}
:global(.hdrbtn) {
cursor: pointer;
position: absolute;
width: 2rem;
height: 2rem;
right: 1em;
top: 1em;
border: 1px solid var(--links);
border-radius: 0.25rem;
appearance: none;
background: transparent;
}
:global(.hdrbtn-icon) {
M starkingdoms-client/src/css/form.scss => starkingdoms-client/src/css/form.scss +0 -10
@@ 22,16 22,6 @@
max-width: 100%;
}
-.btn {
- @extend %form-element-shared;
- border: 2px solid var(--links);
- transition: 0.1s ease-in-out;
-}
-.btn:hover {
- cursor: pointer;
- background-color: var(--links-transparent);
-}
-
.textentry {
@extend %form-element-shared;
}
M starkingdoms-client/src/pages/Home.svelte => starkingdoms-client/src/pages/Home.svelte +2 -1
@@ 7,6 7,7 @@
import HeartIcon from "../icons/HeartIcon.svelte";
import WarningIcon from "../icons/WarningIcon.svelte";
import Popup from "../components/ui/Popup.svelte";
+ import Button from "../components/ui/Button.svelte";
let config = DEFAULT_CONFIG;
// Top-level await. Sets the default config, and overwrites it when the new config is avail. Thanks reactivity!
@@ 81,7 82,7 @@
{/each}
</select>
- <button id="launch-btn" class="btn">Launch!</button>
+ <Button style="width: 100%; max-width: 100%;">Launch!</Button>
<span bind:this={nonprod_warning} class="server-danger hidden">
<WarningIcon class="server-danger-icon" />