Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions internal/vue-sandbox/src/local.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
@use "@fkui/theme-default";
@use "@fkui/theme-default" as theme with (
$global: false
);
@use "@fkui/font-default" as font with (
$global: false
);
@use "@fkui/design";
@use "@fkui/design/lib/fonts.css";
@use "@fkui/font-default";

@include font.font-face;

:root {
@include theme.auto;
@include font.font-family;
}

html,
body {
margin: 0;
padding: 0;
background-color: var(--fkds-color-background-primary);
}
4 changes: 4 additions & 0 deletions internal/vue-sandbox/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { createApp } from "vue";
import "@fkui/icon-lib-default/dist/f";
import {
FormatPlugin,
TestPlugin,
TranslationPlugin,
ValidationPlugin,
config,
setRunningContext,
Expand All @@ -16,6 +18,8 @@ config.popupContainer = "#app";
const app = createApp(App);
app.use(router);
app.use(ValidationPlugin);
app.use(TranslationPlugin);
app.use(FormatPlugin);
app.use(TestPlugin);
app.mount("#app");
setRunningContext(app);
291 changes: 249 additions & 42 deletions internal/vue-sandbox/src/views/DefaultView.vue
Original file line number Diff line number Diff line change
@@ -1,53 +1,260 @@
<!-- eslint-disable vue/component-api-style -- technical debt: should be migrated from options to composition api -->
<script lang="ts">
import { defineComponent } from "vue";
import { FTextField } from "@fkui/vue";
<script setup lang="ts">
import { FButton } from "@fkui/vue";

export default defineComponent({
components: { FTextField },
data() {
return {
awesomeModel: "",
};
},
});
async function asyncOperation(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, 5000));
}
</script>

<template>
<div class="sandbox-root">
<h1>FKUI Sandbox</h1>
<p>
Ett internt paket som innehåller en avskalad Vue-applikation. Applikationen är konsument av övriga
FKUI-paket och innehåller enbart ett tomt exempel.
</p>
<p>
<strong>Ändra och labba gärna här men glöm inte återställa innan merge!</strong>
</p>
<hr />
<f-text-field
id="awesome-field"
v-model="awesomeModel"
v-validation.required.maxLength="{ maxLength: { length: 10 } }"
>
<template #default> Inmatningsfält. </template>
<template #description="{ descriptionClass }">
<span :class="descriptionClass"> Lorem ipsum dolor sit amet. </span>
</template>
</f-text-field>
<div class="root-wrapper">
<span>Alla knappar använder FButton.</span>
<div>
<h2>Primary</h2>
<div>
<f-button variant="primary" size="large">Large</f-button>
<f-button variant="primary" size="medium">Medium</f-button>
<f-button variant="primary" size="small">Small</f-button>
</div>
<div>
<f-button variant="primary" size="large" icon-left="pen">Large</f-button>
<f-button variant="primary" size="medium" icon-left="pen">Medium</f-button>
<f-button variant="primary" size="small" icon-left="pen">Small</f-button>
</div>
<div>
<f-button variant="primary" size="large" icon-right="pen">Large</f-button>
<f-button variant="primary" size="medium" icon-right="pen">Medium</f-button>
<f-button variant="primary" size="small" icon-right="pen">Small</f-button>
</div>
<div>
<f-button variant="primary" size="medium" @click="asyncOperation">Medium Async</f-button>
<f-button variant="primary" size="medium" icon-left="pen" @click="asyncOperation">
Medium Async
</f-button>
<f-button variant="primary" size="medium" icon-right="pen" @click="asyncOperation">
Medium Async
</f-button>
</div>
<div>
<f-button variant="primary" size="large" disabled>Large Disabled</f-button>
<f-button variant="primary" size="medium" disabled>Medium Disabled</f-button>
<f-button variant="primary" size="small" disabled>Small Disabled</f-button>
</div>
<div>
<f-button variant="primary" size="medium" mobile-full-width>Medium MobileFullWidth</f-button>
</div>
</div>
<div>
<h2>Secondary</h2>
<div>
<f-button variant="secondary" size="large">Large</f-button>
<f-button variant="secondary" size="medium">Medium</f-button>
<f-button variant="secondary" size="small">Small</f-button>
</div>
<div>
<f-button variant="secondary" size="large" icon-left="pen">Large</f-button>
<f-button variant="secondary" size="medium" icon-left="pen">Medium</f-button>
<f-button variant="secondary" size="small" icon-left="pen">Small</f-button>
</div>
<div>
<f-button variant="secondary" size="large" icon-right="pen">Large</f-button>
<f-button variant="secondary" size="medium" icon-right="pen">Medium</f-button>
<f-button variant="secondary" size="small" icon-right="pen">Small</f-button>
</div>
<div>
<f-button variant="secondary" size="medium" @click="asyncOperation">Medium Async</f-button>
<f-button variant="secondary" size="medium" icon-left="pen" @click="asyncOperation">
Medium Async
</f-button>
<f-button variant="secondary" size="medium" icon-right="pen" @click="asyncOperation">
Medium Async
</f-button>
</div>
<div>
<f-button variant="secondary" size="large" disabled>Large Disabled</f-button>
<f-button variant="secondary" size="medium" disabled>Medium Disabled</f-button>
<f-button variant="secondary" size="small" disabled>Small Disabled</f-button>
</div>
<div>
<f-button variant="secondary" size="medium" mobile-full-width>Medium MobileFullWidth</f-button>
</div>
</div>
<div>
<h2>Tertiary Standard</h2>
<div>
<f-button variant="tertiary" size="large" tertiary-style="standard">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="standard">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="standard">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="standard" icon-left="pen">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="standard" icon-left="pen">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="standard" icon-left="pen">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="standard" icon-right="pen">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="standard" icon-right="pen">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="standard" icon-right="pen">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="standard" @click="asyncOperation"
>Medium Async</f-button
>
<f-button
variant="tertiary"
size="medium"
tertiary-style="standard"
icon-left="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
<f-button
variant="tertiary"
size="medium"
tertiary-style="standard"
icon-right="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="standard" disabled>Large Disabled</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="standard" disabled>Medium Disabled</f-button>
<f-button variant="tertiary" size="small" tertiary-style="standard" disabled>Small Disabled</f-button>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="standard" mobile-full-width
>Medium MobileFullWidth</f-button
>
</div>

<h2>Tertiary Black</h2>
<div>
<f-button variant="tertiary" size="large" tertiary-style="black">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="black">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="black">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="black" icon-left="pen">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="black" icon-left="pen">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="black" icon-left="pen">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="black" icon-right="pen">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="black" icon-right="pen">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="black" icon-right="pen">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="black" @click="asyncOperation"
>Medium Async</f-button
>
<f-button
variant="tertiary"
size="medium"
tertiary-style="black"
icon-left="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
<f-button
variant="tertiary"
size="medium"
tertiary-style="black"
icon-right="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="black" disabled>Large Disabled</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="black" disabled>Medium Disabled</f-button>
<f-button variant="tertiary" size="small" tertiary-style="black" disabled>Small Disabled</f-button>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="black" mobile-full-width
>Medium MobileFullWidth</f-button
>
</div>

<h2>Tertiary Inverted</h2>
<div class="inverted-wrapper">
<div>
<f-button variant="tertiary" size="large" tertiary-style="inverted">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="inverted">Medium</f-button>
<f-button variant="tertiary" size="small" tertiary-style="inverted">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="inverted" icon-left="pen">Large</f-button>
<f-button variant="tertiary" size="medium" tertiary-style="inverted" icon-left="pen"
>Medium</f-button
>
<f-button variant="tertiary" size="small" tertiary-style="inverted" icon-left="pen">Small</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="inverted" icon-right="pen"
>Large</f-button
>
<f-button variant="tertiary" size="medium" tertiary-style="inverted" icon-right="pen"
>Medium</f-button
>
<f-button variant="tertiary" size="small" tertiary-style="inverted" icon-right="pen"
>Small</f-button
>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="inverted" @click="asyncOperation"
>Medium Async</f-button
>
<f-button
variant="tertiary"
size="medium"
tertiary-style="inverted"
icon-left="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
<f-button
variant="tertiary"
size="medium"
tertiary-style="inverted"
icon-right="pen"
@click="asyncOperation"
>
Medium Async
</f-button>
</div>
<div>
<f-button variant="tertiary" size="large" tertiary-style="inverted" disabled
>Large Disabled</f-button
>
<f-button variant="tertiary" size="medium" tertiary-style="inverted" disabled
>Medium Disabled</f-button
>
<f-button variant="tertiary" size="small" tertiary-style="inverted" disabled
>Small Disabled</f-button
>
</div>
<div>
<f-button variant="tertiary" size="medium" tertiary-style="inverted" mobile-full-width
>Medium MobileFullWidth</f-button
>
</div>
</div>
</div>
</div>
</template>

<style>
.sandbox-root {
width: min(100% - 2rem, 80ch);
margin: auto;
}

h1 {
margin-top: 2rem;
.root-wrapper {
margin: 1rem;
}

hr {
margin-bottom: 2rem;
.inverted-wrapper {
background-color: #333;
padding: 1rem;
}
</style>
Loading
Loading