mirror of
https://github.com/ankitects/anki.git
synced 2025-11-10 14:47:12 -05:00
Simplify General Toolbar structure
This commit is contained in:
parent
773f431bb8
commit
bf433f13be
11 changed files with 69 additions and 93 deletions
|
|
@ -1,10 +0,0 @@
|
|||
<style lang="scss">
|
||||
ul {
|
||||
padding-inline-start: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ul>
|
||||
<slot />
|
||||
</ul>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
<style lang="scss">
|
||||
div {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
position: sticky;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
padding: 2px;
|
||||
|
||||
background: var(--bg-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
<div>
|
||||
<slot />
|
||||
</div>
|
||||
|
|
@ -1,34 +1,55 @@
|
|||
<script lang="typescript">
|
||||
import ButtonItem from "./ButtonItem.svelte";
|
||||
type Buttons =
|
||||
| { component: SvelteComponent; [...arg: string]: unknown }
|
||||
| Buttons[];
|
||||
|
||||
export let buttons: Buttons;
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
ul {
|
||||
display: inline-block;
|
||||
padding-inline-start: 0;
|
||||
|
||||
margin-left: 0.25rem;
|
||||
margin-right: 0.25rem;
|
||||
padding-inline-start: 0;
|
||||
margin-bottom: 0;
|
||||
|
||||
& :global(button) {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
& > :global(li:nth-child(1) button) {
|
||||
margin-left: 0px;
|
||||
border-top-left-radius: 0.35rem;
|
||||
border-bottom-left-radius: 0.35rem;
|
||||
}
|
||||
|
||||
& > :global(li:nth-last-child(1) button) {
|
||||
border-top-right-radius: 0.35rem;
|
||||
border-bottom-right-radius: 0.35rem;
|
||||
li {
|
||||
display: inline-block;
|
||||
margin-bottom: 2px;
|
||||
|
||||
&:nth-child(1) {
|
||||
margin-left: 0.25rem;
|
||||
|
||||
& > :global(button) {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-last-child(1) {
|
||||
margin-right: 0.25rem;
|
||||
|
||||
& > :global(button) {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<ButtonItem>
|
||||
<ul>
|
||||
<slot />
|
||||
{#each buttons as button}
|
||||
<li>
|
||||
{#if Array.isArray(button)}
|
||||
<svelte:self buttons={button} />
|
||||
{:else}
|
||||
<svelte:component this={button.component} {...button} />
|
||||
{/if}
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
</ButtonItem>
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
<style lang="scss">
|
||||
li {
|
||||
display: inline-block;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<li>
|
||||
<slot />
|
||||
</li>
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
<script lang="typescript">
|
||||
import ButtonItem from "./ButtonItem.svelte";
|
||||
|
||||
export let className: string;
|
||||
export let onChange: (event: ChangeEvent) => void;
|
||||
</script>
|
||||
|
|
@ -28,8 +26,6 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
<ButtonItem>
|
||||
<button>
|
||||
<span class={className}> <input type="color" on:change={onChange} /> </span>
|
||||
</button>
|
||||
</ButtonItem>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
</script>
|
||||
|
||||
<script lang="typescript">
|
||||
import ButtonItem from "./ButtonItem.svelte";
|
||||
import InnerButton from "./InnerButton.svelte";
|
||||
|
||||
export let className = "";
|
||||
|
|
@ -50,8 +49,6 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<ButtonItem>
|
||||
<InnerButton {className} {active} {onClick}>
|
||||
{@html icon}
|
||||
</InnerButton>
|
||||
</ButtonItem>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
<script lang="typescript">
|
||||
import ButtonBarOuter from "./ButtonBarOuter.svelte";
|
||||
import ButtonBar from "./ButtonBar.svelte";
|
||||
import ButtonGroup from "./ButtonGroup.svelte";
|
||||
|
||||
import LabelButton from "./LabelButton.svelte";
|
||||
|
|
@ -48,14 +46,21 @@
|
|||
console.log(nightMode);
|
||||
</script>
|
||||
|
||||
<ButtonBarOuter>
|
||||
<ButtonBar>
|
||||
{#each buttons as group}
|
||||
<ButtonGroup>
|
||||
{#each group as button}
|
||||
<svelte:component this={button.component} {...button} />
|
||||
{/each}
|
||||
</ButtonGroup>
|
||||
{/each}
|
||||
</ButtonBar>
|
||||
</ButtonBarOuter>
|
||||
<style lang="scss">
|
||||
div {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
position: sticky;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
padding: 2px;
|
||||
|
||||
background: var(--bg-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
<div>
|
||||
<ButtonGroup {buttons} />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
<script lang="typescript">
|
||||
import ButtonItem from "./ButtonItem.svelte";
|
||||
import InnerButton from "./InnerButton.svelte";
|
||||
|
||||
export let className = "";
|
||||
|
|
@ -7,8 +6,6 @@
|
|||
export let onClick: (event: ClickEvent) => void;
|
||||
</script>
|
||||
|
||||
<ButtonItem>
|
||||
<InnerButton {className} {onClick}>
|
||||
{@html icon}
|
||||
</InnerButton>
|
||||
</ButtonItem>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
<script lang="typescript">
|
||||
import ButtonItem from "./ButtonItem.svelte";
|
||||
|
||||
export let label: string;
|
||||
</script>
|
||||
|
||||
|
|
@ -20,6 +18,4 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
<ButtonItem>
|
||||
<button type="button" class="btn btn-secondary" on:click> {label} </button>
|
||||
</ButtonItem>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ anki-editable {
|
|||
overflow: auto;
|
||||
padding: 6px;
|
||||
|
||||
/* Fit bootstraps .rounded */
|
||||
border-radius: 0.25rem;
|
||||
|
||||
&:empty::after {
|
||||
content: "\a";
|
||||
white-space: pre;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export class EditingArea extends HTMLDivElement {
|
|||
constructor() {
|
||||
super();
|
||||
this.attachShadow({ mode: "open" });
|
||||
this.className = "field";
|
||||
this.className = "field rounded";
|
||||
|
||||
const rootStyle = document.createElement("link");
|
||||
rootStyle.setAttribute("rel", "stylesheet");
|
||||
|
|
|
|||
Loading…
Reference in a new issue