FTL component
This commit is contained in:
parent
b18017d753
commit
3c60edc99a
@ -2,5 +2,6 @@ import { defineConfig } from "histoire";
|
|||||||
import { HstSvelte } from "@histoire/plugin-svelte";
|
import { HstSvelte } from "@histoire/plugin-svelte";
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [HstSvelte()],
|
plugins: [HstSvelte()],
|
||||||
|
// setupFile: "./src/histoire.setup.js",
|
||||||
});
|
});
|
||||||
|
1
src/histoire.setup.js
Normal file
1
src/histoire.setup.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import "./lib/style/index.js";
|
@ -10,7 +10,7 @@
|
|||||||
<script>
|
<script>
|
||||||
export let label = "";
|
export let label = "";
|
||||||
export let value = "";
|
export let value = "";
|
||||||
export let placeholder;
|
export let placeholder = label;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
17
src/lib/components/Ftl.story.svelte
Normal file
17
src/lib/components/Ftl.story.svelte
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<Hst.Story>
|
||||||
|
<Ftl {api} />
|
||||||
|
</Hst.Story>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export let Hst;
|
||||||
|
import { logEvent } from "histoire/client";
|
||||||
|
|
||||||
|
const api = {
|
||||||
|
dispatch: {
|
||||||
|
setFtl: (ftl) => logEvent("setFtl", { ftl }),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
import Ftl from "./Ftl.svelte";
|
||||||
|
import GlobalStyle from "./GlobalStyle.svelte";
|
||||||
|
</script>
|
@ -1,4 +1,4 @@
|
|||||||
<ShipItem {mass} {cost}>
|
<ShipItem {...reqs}>
|
||||||
<Field label="FTL drive">
|
<Field label="FTL drive">
|
||||||
{#each types as t (t)}
|
{#each types as t (t)}
|
||||||
<label
|
<label
|
||||||
@ -9,21 +9,19 @@
|
|||||||
</Field>
|
</Field>
|
||||||
</ShipItem>
|
</ShipItem>
|
||||||
|
|
||||||
<script>
|
<script lang="ts">
|
||||||
import { createEventDispatcher } from "svelte";
|
import { getContext } from "svelte";
|
||||||
|
|
||||||
import ShipItem from "../ShipItem/index.svelte";
|
import ShipItem from "./ShipItem.svelte";
|
||||||
import Field from "../Field/index.svelte";
|
import Field from "./Field.svelte";
|
||||||
|
|
||||||
export let type = "none";
|
export let type = "none";
|
||||||
export let cost = 0;
|
export let reqs = { mass: 0, cost: 0 };
|
||||||
export let mass = 0;
|
export let api = getContext("api");
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
|
||||||
|
|
||||||
const change = () => dispatch("change_ftl", type);
|
|
||||||
|
|
||||||
const types = ["none", "standard", "advanced"];
|
const types = ["none", "standard", "advanced"];
|
||||||
|
|
||||||
|
$: api.dispatch.setFtl(type);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
80
src/lib/components/GlobalStyle.svelte
Normal file
80
src/lib/components/GlobalStyle.svelte
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<script>
|
||||||
|
import "@picocss/pico";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style global>
|
||||||
|
@font-face {
|
||||||
|
font-family: "Faktos";
|
||||||
|
font-style: normal;
|
||||||
|
src: url(/fonts/Faktos.ttf) format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Dosis";
|
||||||
|
src: url(/fonts/dosis/Dosis-VariableFont_wght.ttf) format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--main-font-family: "Dosis", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
||||||
|
Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||||
|
|
||||||
|
--font-scale-9: 0.75rem;
|
||||||
|
--font-scale-10: 1em;
|
||||||
|
--font-scale-11: 1.333rem;
|
||||||
|
--font-scale-12: 1.777rem;
|
||||||
|
--font-scale-13: 2.369rem;
|
||||||
|
--font-scale-14: 3.157rem;
|
||||||
|
--font-scale-15: 4.209rem;
|
||||||
|
|
||||||
|
--oxford-blue: hsla(226, 60%, 10%, 1);
|
||||||
|
--royal-blue-dark: hsla(218, 100%, 16%, 1);
|
||||||
|
--indigo-dye: hsla(209, 95%, 24%, 1);
|
||||||
|
--cg-blue: hsla(193, 80%, 35%, 1);
|
||||||
|
--white: hsla(20, 60%, 99%, 1);
|
||||||
|
|
||||||
|
--main-width: 60em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.short {
|
||||||
|
width: 5em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: var(--font-scale-9);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
font-size: var(--font-scale-14);
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: var(--font-scale-12);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: var(--white);
|
||||||
|
color: #333;
|
||||||
|
margin: 0;
|
||||||
|
padding: 8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-family: "Dosis", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||||
|
Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: rgb(0, 100, 200);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: rgb(0, 80, 160);
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,5 +1,5 @@
|
|||||||
import "../../../static/fonts/faktos.css";
|
import "../../../static/fonts/faktos.css";
|
||||||
import "../../../static/fonts/dosis/dosis.css";
|
import "../../../static/fonts/dosis/dosis.css";
|
||||||
import "../../../static/global.css";
|
import "../../../static/global.css";
|
||||||
import 'chota';
|
import "@picocss/pico/css/pico.css";
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
|
Loading…
Reference in New Issue
Block a user