Style binding options and property categories
This commit is contained in:
parent
8d8caa9ff5
commit
6b7a3d1d7e
|
@ -4,6 +4,9 @@
|
||||||
export let onChange = value => {}
|
export let onChange = value => {}
|
||||||
export let options = []
|
export let options = []
|
||||||
export let initialValue = ""
|
export let initialValue = ""
|
||||||
|
export let styleBindingProperty = ""
|
||||||
|
|
||||||
|
$: bindOptionToStyle = !!styleBindingProperty
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
if (!value && !!initialValue) {
|
if (!value && !!initialValue) {
|
||||||
|
@ -17,6 +20,14 @@
|
||||||
{value}
|
{value}
|
||||||
on:change={ev => onChange(ev.target.value)}>
|
on:change={ev => onChange(ev.target.value)}>
|
||||||
{#each options as { value, label }}
|
{#each options as { value, label }}
|
||||||
<option value={value || label}>{label}</option>
|
{#if bindOptionToStyle}
|
||||||
|
<option
|
||||||
|
style={`${styleBindingProperty}: ${value || label};`}
|
||||||
|
value={value || label}>
|
||||||
|
{label}
|
||||||
|
</option>
|
||||||
|
{:else}
|
||||||
|
<option value={value || label}>{label}</option>
|
||||||
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -41,25 +41,76 @@ export const size = {
|
||||||
minHeight: { label: "Min H", control: Input },
|
minHeight: { label: "Min H", control: Input },
|
||||||
maxWidth: { label: "Max W", control: Input },
|
maxWidth: { label: "Max W", control: Input },
|
||||||
maxHeight: { label: "Max H", control: Input },
|
maxHeight: { label: "Max H", control: Input },
|
||||||
overflow: { control: Input }, //custom
|
overflow: {
|
||||||
|
control: OptionSelect,
|
||||||
|
options: [
|
||||||
|
{ label: "visible" },
|
||||||
|
{ label: "auto" },
|
||||||
|
{ label: "hidden" },
|
||||||
|
{ label: "auto" },
|
||||||
|
{ label: "scroll" },
|
||||||
|
],
|
||||||
|
}, //custom
|
||||||
}
|
}
|
||||||
|
|
||||||
export const position = {
|
export const position = {
|
||||||
position: { control: Input },
|
position: {
|
||||||
|
control: OptionSelect,
|
||||||
|
options: [
|
||||||
|
{ label: "static" },
|
||||||
|
{ label: "relative" },
|
||||||
|
{ label: "fixed" },
|
||||||
|
{ label: "absolute" },
|
||||||
|
{ label: "sticky" },
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export const typography = {
|
export const typography = {
|
||||||
font: { control: Input },
|
fontFamily: {
|
||||||
weight: { control: Input },
|
label: "Font",
|
||||||
size: { control: Input },
|
control: OptionSelect,
|
||||||
|
options: [
|
||||||
|
{ label: "initial" },
|
||||||
|
{ label: "Times New Roman" },
|
||||||
|
{ label: "Georgia" },
|
||||||
|
{ label: "Arial" },
|
||||||
|
{ label: "Arial Black" },
|
||||||
|
{ label: "Comic Sans MS" },
|
||||||
|
{ label: "Impact" },
|
||||||
|
{ label: "Lucida Sans Unicode" },
|
||||||
|
],
|
||||||
|
styleBindingProperty: "font-family",
|
||||||
|
},
|
||||||
|
fontWeight: {
|
||||||
|
label: "weight",
|
||||||
|
control: OptionSelect,
|
||||||
|
options: [
|
||||||
|
{ label: "normal" },
|
||||||
|
{ label: "bold" },
|
||||||
|
{ label: "bolder" },
|
||||||
|
{ label: "lighter" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
fontSize: { label: "size", control: Input },
|
||||||
lineHeight: { label: "Line H", control: Input },
|
lineHeight: { label: "Line H", control: Input },
|
||||||
color: {
|
color: {
|
||||||
control: OptionSelect,
|
control: OptionSelect,
|
||||||
options: [{ label: "red" }, { label: "blue" }, { label: "green" }],
|
options: [{ label: "red" }, { label: "blue" }, { label: "green" }],
|
||||||
},
|
},
|
||||||
align: { control: Input }, //custom
|
textAlign: {
|
||||||
transform: { control: Input }, //custom
|
label: "align",
|
||||||
style: { control: Input }, //custom
|
control: OptionSelect,
|
||||||
|
options: [
|
||||||
|
{ label: "initial" },
|
||||||
|
{ label: "left" },
|
||||||
|
{ label: "right" },
|
||||||
|
{ label: "center" },
|
||||||
|
{ label: "justify" },
|
||||||
|
],
|
||||||
|
}, //custom
|
||||||
|
textTransform: { label: "transform", control: Input }, //custom
|
||||||
|
fontStyle: { label: "style", control: Input }, //custom
|
||||||
}
|
}
|
||||||
|
|
||||||
export const background = {
|
export const background = {
|
||||||
|
@ -68,10 +119,10 @@ export const background = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const border = {
|
export const border = {
|
||||||
radius: { control: Input },
|
borderRadius: { label: "radius", control: Input },
|
||||||
width: { control: Input }, //custom
|
borderWidth: { label: "width", control: Input }, //custom
|
||||||
color: { control: Input },
|
borderColor: { label: "color", control: Input },
|
||||||
style: { control: Input },
|
borderStyle: { label: "style", control: Input },
|
||||||
}
|
}
|
||||||
|
|
||||||
export const effects = {
|
export const effects = {
|
||||||
|
|
Loading…
Reference in New Issue