~starkingdoms/starkingdoms

ref: 993dbfb19a766a87e680efa85c17012233b7aed1 starkingdoms/starkingdoms-client/src/components/ui/Button.svelte -rw-r--r-- 1.3 KiB
993dbfb1 — core ci work 5 1 year, 8 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<script lang="ts">
  let clazz: string = "";
  export { clazz as class };
  export let id: string = "";
  export let disabled = false;
  export let style = "";
  export let variant = "normal";
  export let selected = false;
</script>

<button
  {id}
  class="btn-{variant} {clazz}"
  {disabled}
  on:click
  on:focus
  {style}
  class:btn-disabled={disabled}
  class:btn-selected={selected}>
  <slot />
</button>

<style lang="scss">
  %standard {
    appearance: none;
    background: transparent;
    color: var(--text);
    padding: 0.675em 1em;
    border-radius: 0.25rem;
    cursor: text;
    transition: 0.1s ease-in-out;
  }

  %standard-hover {
    cursor: pointer;
  }

  .btn-normal {
    @extend %standard;
    border: 2px solid var(--links);
  }
  .btn-normal:hover {
    @extend %standard-hover;
    background-color: var(--links-transparent);
  }
  .btn-selected {
    background-color: var(--links-semitransparent);
  }

  .btn-danger {
    @extend %standard;
    border: 2px solid var(--error);
  }
  .btn-danger:hover {
    @extend %standard-hover;
    background-color: var(--error-transparent);
  }

  .btn-disabled {
    @extend %standard;
    border: 2px solid gray;
    color: rgba(205, 214, 244, 60);
  }
  .btn-disabled:hover {
    background-color: transparent;
    cursor: not-allowed;
  }
</style>