giffer

Create .gif images from sites like youtube.com
Log | Files | Refs | LICENSE

commit 3cbeffacbd2da1db0a12d3f8bb91172d8d7905f0
parent 1842541c080dfcfa3857197f4cb66b11d01c5866
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date:   Fri,  9 Nov 2018 18:52:06 +1300

[+] Migrate layout to use semantic ui grid.

Diffstat:
Mcmd/desktop/ui/src/App.vue | 139+++++++++++++++++++++++++++++++++++++------------------------------------------
1 file changed, 65 insertions(+), 74 deletions(-)

diff --git a/cmd/desktop/ui/src/App.vue b/cmd/desktop/ui/src/App.vue @@ -1,62 +1,68 @@ <template> <div id="app"> - <div class="container center"> - <div class="row"> - <h1 class="branding">Giffer</h1> - </div> - <div class="row"> - <sui-form fluid :loading="loading" @submit.prevent="submit"> - <sui-form-field> - <label>url</label> - <input id="url" name="url" type="url" placeholder="https://youtube.com/..." required v-model="form.url"> - </sui-form-field> - <sui-form-field> - <label>start</label> - <input name="start" type="number" placeholder="120" min="0" required v-model="form.start"> - </sui-form-field> - <sui-form-field> - <label>end</label> - <input name="end" type="number" placeholder="170" min="0" required v-model="form.end"> - </sui-form-field> - <sui-form-field> - <label>width</label> - <input name="width" type="number" placeholder="400" min="0" v-model="form.width"> - </sui-form-field> - <sui-form-field> - <label>height</label> - <input name="height" type="number" placeholder="250" min="0" v-model="form.height"> - </sui-form-field> - <sui-form-field> - <label>fps</label> - <input name="fps" type="number" placeholder="24" min="0" v-model="form.fps"> - </sui-form-field> - <sui-form-field> - <label>quality</label> - <sui-dropdown - name="quality" - fluid - placeholder="Select quality" - selection - search - :options="qualities" - v-model="form.quality" + <sui-grid id="my-container" middle aligned> + <sui-grid-row stretched> + <sui-grid-column> + <sui-segment> + <h1>Giffer</h1> + <sui-form + id="main-form" + :loading="loading" + @submit.prevent="submit" > - </sui-dropdown> - </sui-form-field> - <sui-form-field class="form-group"> - <sui-button primary type="submit">Submit</sui-button> - </sui-form-field> - </sui-form> - </div> - <div v-if="link.length > 0" class="row"> + <sui-form-field> + <label>url</label> + <input id="url" name="url" type="url" placeholder="https://youtube.com/..." required v-model="form.url"> + </sui-form-field> + <sui-form-field> + <label>start</label> + <input name="start" type="number" placeholder="120" min="0" required v-model="form.start"> + </sui-form-field> + <sui-form-field> + <label>end</label> + <input name="end" type="number" placeholder="170" min="0" required v-model="form.end"> + </sui-form-field> + <sui-form-field> + <label>width</label> + <input name="width" type="number" placeholder="400" min="0" v-model="form.width"> + </sui-form-field> + <sui-form-field> + <label>height</label> + <input name="height" type="number" placeholder="250" min="0" v-model="form.height"> + </sui-form-field> + <sui-form-field> + <label>fps</label> + <input name="fps" type="number" placeholder="24" min="0" v-model="form.fps"> + </sui-form-field> + <sui-form-field> + <label>quality</label> + <sui-dropdown + name="quality" + fluid + placeholder="Select quality" + selection + search + :options="qualities" + v-model="form.quality" + > + </sui-dropdown> + </sui-form-field> + <sui-form-field class="form-group"> + <sui-button primary type="submit">Submit</sui-button> + </sui-form-field> + </sui-form> + </sui-segment> + </sui-grid-column> + </sui-grid-row> + <sui-grid-row v-if="link.length > 0"> <sui-image :src="link" size="medium" bordered /> - </div> - <div class="row"> + </sui-grid-row> + <sui-grid-row stretched> <pre v-for="(err, ii) in errors" :key="ii" class="errors"> {{err}} </pre> - </div> - </div> + </sui-grid-row> + </sui-grid> </div> </template> @@ -157,24 +163,18 @@ body { right: 0; } -.container { - width: 100%; - height: 100%; +#my-container { display: flex; - flex-wrap: wrap; - flex-direction: column; + align-items: center; justify-content: center; -} - -.row { + height: 100%; width: 100%; - display: flex; - justify-content: center; - margin: auto; + margin: 0; + padding: 10px; } -.branding { - margin: auto; +#main-form { + overflow-y: auto; } .errors { @@ -182,13 +182,4 @@ body { max-height: 20vh; overflow: scroll; } - -.center { - margin: 0; - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); -} </style>