commit 8395114c5a3ddae320745cf1e308acecfc04937c
parent 0da18dc081326b04229bf71f1f3b19c59ec87373
Author: George Francis <georgedoescode@gmail.com>
Date: Tue, 7 Jul 2020 07:54:43 +0100
add initial prop for squircle fill to keep things in sync, start adding detail toggle
Diffstat:
3 files changed, 44 insertions(+), 14 deletions(-)
diff --git a/src/components/GeneratorControls.vue b/src/components/GeneratorControls.vue
@@ -7,11 +7,26 @@ export default {
components: {
VSwatches,
},
+ props: {
+ initialFill: {
+ type: String,
+ required: true,
+ },
+ },
+
data() {
return {
- color: '#1f2933',
+ fill: this.initialFill,
};
},
+ watch: {
+ fill(newVal) {
+ this.$emit('controls-changed', {
+ id: 'fill',
+ value: newVal,
+ });
+ },
+ },
methods: {
handleControlChange(e) {
this.$emit('controls-changed', e.target);
@@ -53,23 +68,24 @@ export default {
<div class="generator-controls__swatch">
<input
id="colorHex"
- v-model="color"
+ v-model="fill"
class="generator-conrols__swatch-text"
type="text"
name="colorHex"
/>
<VSwatches
- v-model="color"
+ v-model="fill"
:trigger-style="{
- width: '48px',
- height: '32px',
- borderRadius: '0 8px 8px 0',
+ width: '64px',
+ height: '48px',
+ borderRadius: '0 16px 16px 0',
}"
/>
</div>
<label for="quality" class="generator-controls__label">
- Quality
+ Detail
</label>
+ <div class="generator-controls__detail"></div>
</div>
</div>
</template>
@@ -116,9 +132,9 @@ export default {
align-items: center;
justify-content: space-between;
padding-left: var(--spacing-3);
- height: var(--spacing-5);
+ height: var(--spacing-6);
background: var(--grey-000);
- border-radius: 8px;
+ border-radius: 12px;
}
.generator-conrols__swatch-text {
@@ -126,6 +142,13 @@ export default {
background: transparent;
outline: none;
width: 100%;
+ text-transform: uppercase;
+}
+
+.generator-controls__detail {
+ height: var(--spacing-5);
+ border: 1px solid var(--grey-200);
+ border-radius: 8px;
}
@media only screen and (max-width: 48rem) {
@@ -135,7 +158,7 @@ export default {
}
.generator-controls__inputs {
- grid-row-gap: var(--spacing-4);
+ grid-row-gap: var(--spacing-5);
}
.generator-controls__label {
diff --git a/src/components/GeneratorPreview.vue b/src/components/GeneratorPreview.vue
@@ -6,13 +6,17 @@ export default {
type: Array,
required: true,
},
+ fill: {
+ type: String,
+ required: true,
+ },
},
};
</script>
<template>
<div class="generator-preview">
- <svg viewBox="0 0 200 200" preserveAspectRatio>
+ <svg viewBox="0 0 200 200" preserveAspectRatio :fill="fill">
<polygon :points="points" transform="translate(100 100)" />
</svg>
</div>
@@ -50,7 +54,6 @@ export default {
left: 0;
width: 100%;
height: 100%;
- fill: var(--grey-900);
}
@media only screen and (max-width: 48rem) {
diff --git a/src/components/TheGenerator.vue b/src/components/TheGenerator.vue
@@ -15,6 +15,7 @@ export default {
squircleOpts: {
curvature: 8,
scale: 50,
+ fill: '#1f2933',
},
points: [],
};
@@ -58,8 +59,11 @@ export default {
<template>
<div class="generator">
- <GeneratorPreview :points="points" />
- <GeneratorControls @controls-changed="handleControlChange" />
+ <GeneratorPreview :points="points" :fill="squircleOpts.fill" />
+ <GeneratorControls
+ :initial-fill="squircleOpts.fill"
+ @controls-changed="handleControlChange"
+ />
<GeneratorExportOptions class="generator__export-opts" />
</div>
</template>