|
16 | 16 | <v-list-item> |
17 | 17 | <v-list-item-content> |
18 | 18 | <v-textarea |
19 | | - label="Input" |
| 19 | + label="Text input" |
20 | 20 | v-model="text" |
21 | 21 | @input="render" |
22 | 22 | outlined |
23 | 23 | ></v-textarea> |
24 | 24 |
|
25 | | - <v-container class="font pa-0 mb-8"> |
| 25 | + <v-container class="font pa-0 mb-4"> |
26 | 26 | <v-subheader class="mb-2">Font</v-subheader> |
27 | 27 |
|
28 | | - <v-row class="mx-0 my-2"> |
| 28 | + <v-row class="mx-0 mt-2 mb-6"> |
29 | 29 | {{ selectedFontName }} |
30 | 30 | </v-row> |
31 | 31 |
|
32 | | - <v-row class="mx-0 my-4"> |
33 | | - <v-btn-toggle |
34 | | - mandatory |
35 | | - small |
36 | | - > |
37 | | - <v-btn small @click="useCustomFont = false"> |
38 | | - <v-icon small >mdi-format-list-bulleted</v-icon> |
39 | | - </v-btn> |
40 | | - <v-btn small @click="useCustomFont = true"> |
41 | | - <v-icon small >mdi-paperclip</v-icon> |
42 | | - </v-btn> |
43 | | - </v-btn-toggle> |
44 | | - </v-row> |
45 | | - |
46 | 32 | <template v-if="!useCustomFont"> |
47 | | - <v-subheader class="mb-2">Default fonts</v-subheader> |
| 33 | + <v-subheader class="mb-1">Default fonts</v-subheader> |
48 | 34 | <v-select |
49 | 35 | class="mt-1" |
50 | 36 | :items="fonts" |
|
53 | 39 | v-model="selectedFontName" |
54 | 40 | @input="selectFont" |
55 | 41 | ></v-select> |
| 42 | + <v-btn |
| 43 | + class="pl-0" |
| 44 | + x-small |
| 45 | + plain |
| 46 | + href="https://gitlab.com/oskay/svg-fonts" |
| 47 | + target="_blank" |
| 48 | + >Improve these fonts<v-icon class="ml-0" x-small right> mdi-pencil </v-icon></v-btn |
| 49 | + > |
| 50 | + |
56 | 51 | </template> |
57 | 52 | <template v-else> |
58 | 53 | <v-subheader class="mb-2">Load custom SVG font file</v-subheader> |
|
66 | 61 | @change="loadLocalFont" |
67 | 62 | ></v-file-input> |
68 | 63 | </template> |
| 64 | + |
| 65 | + <v-row class="mx-0 mt-2 mb-1" justify="center"> |
| 66 | + <v-btn-toggle |
| 67 | + mandatory |
| 68 | + small |
| 69 | + > |
| 70 | + <v-btn small @click="useCustomFont = false"> |
| 71 | + <v-icon small >mdi-format-list-bulleted</v-icon> |
| 72 | + </v-btn> |
| 73 | + <v-btn small @click="useCustomFont = true"> |
| 74 | + <v-icon small >mdi-paperclip</v-icon> |
| 75 | + </v-btn> |
| 76 | + </v-btn-toggle> |
| 77 | + </v-row> |
69 | 78 | </v-container> |
| 79 | + |
| 80 | + <v-btn v-if="!showFontSmoothing" class="mb-2" small block text @click="showFontSmoothing = true">smoothing (experimental)</v-btn> |
| 81 | + <template v-else> |
| 82 | + <div class="mt-2 mb-0"> |
| 83 | + <v-subheader class="mb-2">Smoothing (experimental)</v-subheader> |
| 84 | + |
| 85 | + <v-checkbox |
| 86 | + @change="applyFontSettings(true)" |
| 87 | + v-model="enableFontSimplification" |
| 88 | + label="Simplify" |
| 89 | + dense |
| 90 | + class="ma-0" |
| 91 | + ></v-checkbox> |
| 92 | + <div v-if="enableFontSimplification"> |
| 93 | + <v-subheader>Simplify Deviation</v-subheader> |
| 94 | + <v-slider |
| 95 | + @input="applyFontSettings(true)" |
| 96 | + v-model="simplifyFactor" |
| 97 | + step="1" |
| 98 | + max="30" |
| 99 | + min="0" |
| 100 | + > |
| 101 | + <template v-slot:append> |
| 102 | + <v-text-field |
| 103 | + v-model="simplifyFactor" |
| 104 | + class="mt-0 pt-0" |
| 105 | + type="number" |
| 106 | + style="width: 45px" |
| 107 | + dense |
| 108 | + ></v-text-field> |
| 109 | + </template> |
| 110 | + </v-slider> |
| 111 | + </div> |
| 112 | + </div> |
| 113 | + <div class="mt-0"> |
| 114 | + <v-checkbox |
| 115 | + @change="applyFontSettings(true)" |
| 116 | + v-model="enableFontSmoothing" |
| 117 | + label="Smooth" |
| 118 | + dense |
| 119 | + class="ma-0" |
| 120 | + ></v-checkbox> |
| 121 | + |
| 122 | + <v-select |
| 123 | + v-if="enableFontSmoothing" |
| 124 | + @input="applyFontSettings(true)" |
| 125 | + :items="smoothingTypes" |
| 126 | + label="Smooth Type" |
| 127 | + v-model="smoothingType" |
| 128 | + ></v-select> |
| 129 | + |
| 130 | + <div v-if="enableFontSmoothing && smoothingType == 'catmull-rom'"> |
| 131 | + <v-subheader>Smooth amount</v-subheader> |
| 132 | + <v-slider |
| 133 | + @input="applyFontSettings(true)" |
| 134 | + v-model="smoothingFactor" |
| 135 | + step="0.01" |
| 136 | + max="1" |
| 137 | + min="0.01" |
| 138 | + > |
| 139 | + <template v-slot:append> |
| 140 | + <v-text-field |
| 141 | + v-model="smoothingFactor" |
| 142 | + class="mt-0 pt-0" |
| 143 | + type="number" |
| 144 | + style="width: 45px" |
| 145 | + dense |
| 146 | + ></v-text-field> |
| 147 | + </template> |
| 148 | + </v-slider> |
| 149 | + </div> |
| 150 | + </div> |
| 151 | + </template> |
| 152 | + |
| 153 | + <v-divider class="mt-1 mb-6"></v-divider> |
| 154 | + |
70 | 155 | <div> |
71 | 156 | <v-subheader>Scale</v-subheader> |
72 | 157 | <v-slider |
|
109 | 194 | </template> |
110 | 195 | </v-slider> |
111 | 196 | </div> |
112 | | - <div> |
113 | | - <v-checkbox |
114 | | - @change="applyFontSettings(true)" |
115 | | - v-model="enableFontSimplification" |
116 | | - label="Simplify (experimental)" |
117 | | - dense |
118 | | - class="ma-0" |
119 | | - ></v-checkbox> |
120 | | - <div v-if="enableFontSimplification"> |
121 | | - <v-subheader>Simplify Deviation</v-subheader> |
122 | | - <v-slider |
123 | | - @input="applyFontSettings(true)" |
124 | | - v-model="simplifyFactor" |
125 | | - step="1" |
126 | | - max="30" |
127 | | - min="0" |
128 | | - > |
129 | | - <template v-slot:append> |
130 | | - <v-text-field |
131 | | - v-model="simplifyFactor" |
132 | | - class="mt-0 pt-0" |
133 | | - type="number" |
134 | | - style="width: 45px" |
135 | | - dense |
136 | | - ></v-text-field> |
137 | | - </template> |
138 | | - </v-slider> |
139 | | - </div> |
140 | | - </div> |
141 | | - <div> |
142 | | - <v-checkbox |
143 | | - @change="applyFontSettings(true)" |
144 | | - v-model="enableFontSmoothing" |
145 | | - label="Smooth (experimental)" |
146 | | - dense |
147 | | - class="ma-0" |
148 | | - ></v-checkbox> |
149 | | - |
150 | | - <v-select |
151 | | - v-if="enableFontSmoothing" |
152 | | - @input="applyFontSettings(true)" |
153 | | - :items="smoothingTypes" |
154 | | - label="Smooth Type" |
155 | | - v-model="smoothingType" |
156 | | - ></v-select> |
157 | | - |
158 | | - <div v-if="enableFontSmoothing && smoothingType == 'catmull-rom'"> |
159 | | - <v-subheader>Smooth amount</v-subheader> |
160 | | - <v-slider |
161 | | - @input="applyFontSettings(true)" |
162 | | - v-model="smoothingFactor" |
163 | | - step="0.01" |
164 | | - max="1" |
165 | | - min="0.01" |
166 | | - > |
167 | | - <template v-slot:append> |
168 | | - <v-text-field |
169 | | - v-model="smoothingFactor" |
170 | | - class="mt-0 pt-0" |
171 | | - type="number" |
172 | | - style="width: 45px" |
173 | | - dense |
174 | | - ></v-text-field> |
175 | | - </template> |
176 | | - </v-slider> |
177 | | - </div> |
178 | | - </div> |
| 197 | + |
| 198 | + <!-- <v-divider class="mt-0 mb-6"></v-divider> --> |
179 | 199 |
|
180 | 200 | <v-btn color="primary" block elevation="2" @click="exportSVG" |
181 | 201 | >Download SVG</v-btn |
|
185 | 205 | </v-list> |
186 | 206 | <template v-slot:append> |
187 | 207 | <v-divider></v-divider> |
188 | | - <v-btn |
189 | | - large |
190 | | - plain |
191 | | - href="https://gitlab.com/oskay/svg-fonts" |
192 | | - target="_blank" |
193 | | - >Improve these fonts<v-icon right> mdi-pencil </v-icon></v-btn |
194 | | - > |
195 | 208 | <v-btn |
196 | 209 | large |
197 | 210 | plain |
@@ -266,6 +279,7 @@ export default { |
266 | 279 | customFont: null, |
267 | 280 | strokeWeight: 1, |
268 | 281 | fontScale: 1, |
| 282 | + showFontSmoothing: false, |
269 | 283 | enableFontSimplification: false, |
270 | 284 | simplifyFactor: 0, |
271 | 285 | enableFontSmoothing: false, |
|
0 commit comments