From 63b7b32e9c1997ade1688f11778ff564405daff5 Mon Sep 17 00:00:00 2001 From: antelle Date: Wed, 25 Nov 2020 18:20:53 +0100 Subject: [PATCH] fontawesome 5 --- Gruntfile.js | 7 - app/resources/svg/google-drive.svg | 1 - app/resources/svg/onedrive.svg | 1 - app/resources/svg/usb-token.svg | 1 - app/scripts/comp/app/chal-resp-calculator.js | 4 +- app/scripts/const/icon-map.js | 28 +-- app/scripts/const/links.js | 1 + app/scripts/hbs-helpers/index.js | 1 - app/scripts/hbs-helpers/svg.js | 9 - app/scripts/models/attachment-model.js | 2 +- .../models/external/yubikey-otp-model.js | 2 +- app/scripts/models/menu/menu-model.js | 2 +- app/scripts/storage/impl/storage-gdrive.js | 2 +- app/scripts/storage/impl/storage-onedrive.js | 2 +- app/scripts/storage/storage-base.js | 1 - .../views/auto-type/auto-type-select-view.js | 2 +- app/scripts/views/details/details-view.js | 16 +- app/scripts/views/fields/field-view.js | 4 +- app/scripts/views/icon-select-view.js | 6 +- app/scripts/views/list-search-view.js | 24 +-- app/scripts/views/open-view.js | 12 +- .../views/settings/settings-about-view.js | 1 + .../views/settings/settings-file-view.js | 3 +- app/styles/areas/_details.scss | 2 +- app/styles/areas/_open.scss | 26 +-- app/styles/areas/_settings.scss | 6 +- app/styles/base/_base.scss | 1 + app/styles/base/_buttons.scss | 10 - app/styles/base/_icon-font.scss | 181 ++++++++++++++++++ app/styles/common/_fx.scss | 18 ++ app/styles/common/_modal.scss | 5 - app/styles/main.scss | 1 - app/templates/details/details-attachment.hbs | 2 +- app/templates/details/details-history.hbs | 6 +- app/templates/details/details.hbs | 2 +- app/templates/footer.hbs | 6 +- app/templates/generator-presets.hbs | 2 +- app/templates/generator.hbs | 2 +- app/templates/grp.hbs | 4 +- app/templates/icon-select.hbs | 2 +- app/templates/import-csv.hbs | 2 +- app/templates/list-empty.hbs | 2 +- app/templates/list-search.hbs | 2 +- app/templates/modal.hbs | 2 - app/templates/open-chal-resp.hbs | 2 +- app/templates/open-config.hbs | 2 +- app/templates/open.hbs | 16 +- app/templates/settings/settings-about.hbs | 11 +- app/templates/settings/settings-file.hbs | 7 +- app/templates/settings/settings-help.hbs | 4 +- app/templates/settings/settings.hbs | 2 +- app/templates/storage-file-list.hbs | 2 +- app/templates/tag.hbs | 4 +- build/loaders/fontawesome-loader.js | 108 +++++++++++ build/loaders/scss-add-icons-loader.js | 23 +++ build/webpack.config.js | 17 +- graphics/svg/keeweb.svg | 1 + graphics/svg/onedrive.svg | 1 + graphics/svg/usb-token.svg | 1 + grunt.tasks.js | 1 - package-lock.json | 127 +++++++++++- package.json | 5 +- 62 files changed, 571 insertions(+), 179 deletions(-) delete mode 100644 app/resources/svg/google-drive.svg delete mode 100644 app/resources/svg/onedrive.svg delete mode 100644 app/resources/svg/usb-token.svg delete mode 100644 app/scripts/hbs-helpers/svg.js create mode 100644 app/styles/base/_icon-font.scss create mode 100644 build/loaders/fontawesome-loader.js create mode 100644 build/loaders/scss-add-icons-loader.js create mode 100644 graphics/svg/keeweb.svg create mode 100644 graphics/svg/onedrive.svg create mode 100644 graphics/svg/usb-token.svg diff --git a/Gruntfile.js b/Gruntfile.js index f5c701d9..75d5d6f9 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -111,13 +111,6 @@ module.exports = function (grunt) { expand: true, nonull: true }, - fonts: { - src: 'node_modules/font-awesome/fonts/fontawesome-webfont.*', - dest: 'tmp/fonts/', - nonull: true, - expand: true, - flatten: true - }, 'desktop-html': { src: 'dist/index.html', dest: 'tmp/desktop/app/index.html', diff --git a/app/resources/svg/google-drive.svg b/app/resources/svg/google-drive.svg deleted file mode 100644 index cd8dd52a..00000000 --- a/app/resources/svg/google-drive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/resources/svg/onedrive.svg b/app/resources/svg/onedrive.svg deleted file mode 100644 index e179dfa7..00000000 --- a/app/resources/svg/onedrive.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/resources/svg/usb-token.svg b/app/resources/svg/usb-token.svg deleted file mode 100644 index cd68b129..00000000 --- a/app/resources/svg/usb-token.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/scripts/comp/app/chal-resp-calculator.js b/app/scripts/comp/app/chal-resp-calculator.js index a2460c54..4d4fa6a9 100644 --- a/app/scripts/comp/app/chal-resp-calculator.js +++ b/app/scripts/comp/app/chal-resp-calculator.js @@ -150,7 +150,7 @@ const ChalRespCalculator = { header: Locale.yubiKeyNoKeyHeader, body: Locale.yubiKeyNoKeyBody.replace('{}', serial), buttons: [Alerts.buttons.cancel], - iconSvg: 'usb-token', + icon: 'usb-token', cancel: () => { logger.info('No key alert closed'); @@ -173,7 +173,7 @@ const ChalRespCalculator = { header: Locale.yubiKeyTouchRequestedHeader, body: Locale.yubiKeyTouchRequestedBody.replace('{}', serial), buttons: [Alerts.buttons.cancel], - iconSvg: 'usb-token', + icon: 'usb-token', cancel: () => { logger.info('Touch alert closed'); diff --git a/app/scripts/const/icon-map.js b/app/scripts/const/icon-map.js index 1079d691..5d86beb7 100644 --- a/app/scripts/const/icon-map.js +++ b/app/scripts/const/icon-map.js @@ -3,10 +3,10 @@ const IconMap = [ 'globe', 'exclamation-triangle', 'server', - 'thumb-tack', + 'thumbtack', 'comments-o', 'puzzle-piece', - 'pencil-square-o', + 'edit', 'plug', 'newspaper-o', 'paperclip', @@ -22,13 +22,13 @@ const IconMap = [ 'cog', 'clipboard', 'paper-plane-o', - 'television', + 'tv', 'bolt', 'inbox', - 'floppy-o', - 'hdd-o', - 'dot-circle-o', - 'expeditedssl', + 'save', + 'hdd', + 'dot-circle', + 'user-lock', 'terminal', 'print', 'map-signs', @@ -38,11 +38,11 @@ const IconMap = [ 'archive', 'credit-card', 'windows', - 'clock-o', + 'clock', 'search', 'flask', 'gamepad', - 'trash-o', + 'trash', 'sticky-note-o', 'ban', 'question-circle', @@ -53,19 +53,19 @@ const IconMap = [ 'unlock-alt', 'lock', 'check', - 'pencil', - 'picture-o', + 'pencil-alt', + 'image', 'book', 'list-alt', 'user-secret', - 'cutlery', + 'utensils', 'home', - 'star-o', + 'star', 'linux', 'map-pin', 'apple', 'wikipedia-w', - 'usd', + 'dollar-sign', 'calendar', 'mobile' ]; diff --git a/app/scripts/const/links.js b/app/scripts/const/links.js index eadc7d7e..665fbc6d 100644 --- a/app/scripts/const/links.js +++ b/app/scripts/const/links.js @@ -6,6 +6,7 @@ const Links = { BetaWebApp: 'https://beta.keeweb.info', License: 'https://github.com/keeweb/keeweb/blob/master/LICENSE', LicenseApache: 'https://opensource.org/licenses/Apache-2.0', + LicenseLinkCCBY40: 'https://creativecommons.org/licenses/by/4.0/', UpdateDesktop: 'https://github.com/keeweb/keeweb/releases/download/v{ver}/UpdateDesktop.zip', ReleaseNotes: 'https://github.com/keeweb/keeweb/blob/master/release-notes.md#release-notes', SelfHostedDropbox: 'https://github.com/keeweb/keeweb#self-hosting', diff --git a/app/scripts/hbs-helpers/index.js b/app/scripts/hbs-helpers/index.js index 0a916cfa..a7b23692 100644 --- a/app/scripts/hbs-helpers/index.js +++ b/app/scripts/hbs-helpers/index.js @@ -4,4 +4,3 @@ import 'hbs-helpers/ifeq'; import 'hbs-helpers/ifneq'; import 'hbs-helpers/ifemptyoreq'; import 'hbs-helpers/res'; -import 'hbs-helpers/svg'; diff --git a/app/scripts/hbs-helpers/svg.js b/app/scripts/hbs-helpers/svg.js deleted file mode 100644 index 8a5e6288..00000000 --- a/app/scripts/hbs-helpers/svg.js +++ /dev/null @@ -1,9 +0,0 @@ -import Handlebars from 'hbs'; - -Handlebars.registerHelper('svg', (name, cls) => { - const icon = require(`svg/${name}.svg`).default; - if (typeof cls === 'string') { - return `i').addClass('fa-spinner fa-spin'); + this.$el.find('.icon-select__icon-download>i').addClass('fa-spinner spin'); this.$el .find('.icon-select__icon-download') .removeClass('icon-select__icon--download-error'); @@ -62,7 +62,7 @@ class IconSelectView extends View { img.onload = () => { this.setSpecialImage(img, 'download'); this.$el.find('.icon-select__icon-download img').remove(); - this.$el.find('.icon-select__icon-download>i').removeClass('fa-spinner fa-spin'); + this.$el.find('.icon-select__icon-download>i').removeClass('fa-spinner spin'); this.$el .find('.icon-select__icon-download') .addClass('icon-select__icon--custom-selected') @@ -71,7 +71,7 @@ class IconSelectView extends View { }; img.onerror = (e) => { logger.error('Favicon download error: ' + url, e); - this.$el.find('.icon-select__icon-download>i').removeClass('fa-spinner fa-spin'); + this.$el.find('.icon-select__icon-download>i').removeClass('fa-spinner spin'); this.$el .find('.icon-select__icon-download') .removeClass('icon-select__icon--custom-selected') diff --git a/app/scripts/views/list-search-view.js b/app/scripts/views/list-search-view.js index 0b259908..2ceedb78 100644 --- a/app/scripts/views/list-search-view.js +++ b/app/scripts/views/list-search-view.js @@ -39,64 +39,64 @@ class ListSearchView extends View { this.sortOptions = [ { value: 'title', - icon: 'sort-alpha-asc', + icon: 'sort-alpha-down', loc: () => StringFormat.capFirst(Locale.title) + ' ' + this.addArrow(Locale.searchAZ) }, { value: '-title', - icon: 'sort-alpha-desc', + icon: 'sort-alpha-down-alt', loc: () => StringFormat.capFirst(Locale.title) + ' ' + this.addArrow(Locale.searchZA) }, { value: 'website', - icon: 'sort-alpha-asc', + icon: 'sort-alpha-down', loc: () => StringFormat.capFirst(Locale.website) + ' ' + this.addArrow(Locale.searchAZ) }, { value: '-website', - icon: 'sort-alpha-desc', + icon: 'sort-alpha-down-alt', loc: () => StringFormat.capFirst(Locale.website) + ' ' + this.addArrow(Locale.searchZA) }, { value: 'user', - icon: 'sort-alpha-asc', + icon: 'sort-alpha-down', loc: () => StringFormat.capFirst(Locale.user) + ' ' + this.addArrow(Locale.searchAZ) }, { value: '-user', - icon: 'sort-alpha-desc', + icon: 'sort-alpha-down-alt', loc: () => StringFormat.capFirst(Locale.user) + ' ' + this.addArrow(Locale.searchZA) }, { value: 'created', - icon: 'sort-numeric-asc', + icon: 'sort-numeric-down', loc: () => Locale.searchCreated + ' ' + this.addArrow(Locale.searchON) }, { value: '-created', - icon: 'sort-numeric-desc', + icon: 'sort-numeric-down-alt', loc: () => Locale.searchCreated + ' ' + this.addArrow(Locale.searchNO) }, { value: 'updated', - icon: 'sort-numeric-asc', + icon: 'sort-numeric-down', loc: () => Locale.searchUpdated + ' ' + this.addArrow(Locale.searchON) }, { value: '-updated', - icon: 'sort-numeric-desc', + icon: 'sort-numeric-down-alt', loc: () => Locale.searchUpdated + ' ' + this.addArrow(Locale.searchNO) }, { value: '-attachments', - icon: 'sort-amount-desc', + icon: 'sort-amount-down', loc: () => Locale.searchAttachments }, - { value: '-rank', icon: 'sort-amount-desc', loc: () => Locale.searchRank } + { value: '-rank', icon: 'sort-amount-down', loc: () => Locale.searchRank } ]; this.sortIcons = {}; this.sortOptions.forEach((opt) => { diff --git a/app/scripts/views/open-view.js b/app/scripts/views/open-view.js index a2b10f6e..42f6ffac 100644 --- a/app/scripts/views/open-view.js +++ b/app/scripts/views/open-view.js @@ -162,20 +162,16 @@ class OpenView extends View { getLastOpenFiles() { return this.model.fileInfos.map((fileInfo) => { - let icon = 'file-text'; + let icon = 'file-alt'; const storage = Storage[fileInfo.storage]; if (storage && storage.icon) { icon = storage.icon; } - if (storage && storage.iconSvg) { - icon = null; - } return { id: fileInfo.id, name: fileInfo.name, path: this.getDisplayedPath(fileInfo), - icon, - iconSvg: storage ? storage.iconSvg : undefined + icon }; }); } @@ -807,7 +803,7 @@ class OpenView extends View { Alerts.alert({ header: Locale.openSelectFile, body: Locale.openSelectFileBody, - icon: storage.icon || 'files-o', + icon: storage.icon || 'file-alt-o', buttons: [{ result: '', title: Locale.alertCancel }], esc: '', click: '', @@ -1064,7 +1060,7 @@ class OpenView extends View { Alerts.alert({ header: Locale.openChalRespHeader, - iconSvg: 'usb-token', + icon: 'usb-token', buttons: [{ result: '', title: Locale.alertCancel }], esc: '', click: '', diff --git a/app/scripts/views/settings/settings-about-view.js b/app/scripts/views/settings/settings-about-view.js index 8bcef3ac..8237433d 100644 --- a/app/scripts/views/settings/settings-about-view.js +++ b/app/scripts/views/settings/settings-about-view.js @@ -12,6 +12,7 @@ class SettingsAboutView extends View { version: RuntimeInfo.version, licenseLink: Links.License, licenseLinkApache: Links.LicenseApache, + licenseLinkCCBY40: Links.LicenseLinkCCBY40, repoLink: Links.Repo, donationLink: Links.Donation, isDesktop: Features.isDesktop diff --git a/app/scripts/views/settings/settings-file-view.js b/app/scripts/views/settings/settings-file-view.js index 7213d752..61bc20e1 100644 --- a/app/scripts/views/settings/settings-file-view.js +++ b/app/scripts/views/settings/settings-file-view.js @@ -85,7 +85,6 @@ class SettingsFileView extends View { storageProviders.push({ name: prv.name, icon: prv.icon, - iconSvg: prv.iconSvg, own: name === fileStorage, backup: prv.backup }); @@ -337,7 +336,7 @@ class SettingsFileView extends View { Alerts.alert({ header: '', body: '', - icon: storage.icon || 'files-o', + icon: storage.icon || 'file-alt-o', buttons: [Alerts.buttons.ok, Alerts.buttons.cancel], esc: '', opaque: true, diff --git a/app/styles/areas/_details.scss b/app/styles/areas/_details.scss index f25d873c..8dc22902 100644 --- a/app/styles/areas/_details.scss +++ b/app/styles/areas/_details.scss @@ -327,7 +327,7 @@ } &:before { @include position(absolute, 0 0 null null); - @include fa-icon(); + @include fa-icon; cursor: pointer; padding: 0.3em $base-padding-h; } diff --git a/app/styles/areas/_open.scss b/app/styles/areas/_open.scss index d4c870a7..a05a9b47 100644 --- a/app/styles/areas/_open.scss +++ b/app/styles/areas/_open.scss @@ -36,8 +36,7 @@ outline: focused-outline(); } } - &-i, - &-svg { + &-i { font-size: 4em; } &-text { @@ -46,15 +45,8 @@ color: var(--medium-color); } } - &-svg { - line-height: 0; - > svg { - @include size(1em); - } - } @include mobile() { - &-i, - &-svg { + &-i { font-size: 4.6em; } &-text { @@ -62,8 +54,7 @@ } .open__icons--lower & { margin: 14px; - &-i, - &-svg { + &-i { font-size: 4.2em; margin-bottom: 0.1em; } @@ -105,6 +96,8 @@ right: 0; } color: var(--muted-color); + line-height: 3em; + height: 3em; > i { font-size: 3em; @include mobile { @@ -304,13 +297,8 @@ } &-icon { width: 2em; - &--svg > svg { - vertical-align: middle; - @include size(1em); - path { - fill: var(--muted-color); - } - } + position: relative; + top: 0.1em; } &-text { flex-grow: 1; diff --git a/app/styles/areas/_settings.scss b/app/styles/areas/_settings.scss index 6a757a1c..3fac120d 100644 --- a/app/styles/areas/_settings.scss +++ b/app/styles/areas/_settings.scss @@ -142,16 +142,12 @@ display: inline-block; margin-right: $base-padding-h; text-align: center; - > i, - > svg { + > i { display: block; font-size: 3em; padding: $base-padding-px; margin: auto; } - > svg { - @include size(1em); - } &:hover { transition: color $base-duration $base-timing; color: var(--medium-color); diff --git a/app/styles/base/_base.scss b/app/styles/base/_base.scss index ab487a81..cf987f6e 100644 --- a/app/styles/base/_base.scss +++ b/app/styles/base/_base.scss @@ -7,6 +7,7 @@ @import 'colors'; @import 'variables'; @import 'media'; +@import 'icon-font'; @import 'body'; @import 'grid-settings'; @import 'buttons'; diff --git a/app/styles/base/_buttons.scss b/app/styles/base/_buttons.scss index 6dcab6eb..275b075d 100644 --- a/app/styles/base/_buttons.scss +++ b/app/styles/base/_buttons.scss @@ -85,13 +85,3 @@ } } } - -.svg-btn { - svg path { - transition: fill $base-duration $base-timing; - fill: var(--text-color); - } - &:hover svg path { - fill: var(--medium-color); - } -} diff --git a/app/styles/base/_icon-font.scss b/app/styles/base/_icon-font.scss new file mode 100644 index 00000000..e5c788c5 --- /dev/null +++ b/app/styles/base/_icon-font.scss @@ -0,0 +1,181 @@ +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url('fontawesome.woff2') format('woff2'); +} + +@mixin fa-icon { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; + font-style: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + display: inline-block; +} + +.fa { + @include fa-icon; +} + +$fa-glyph-counter: 61440; // 0xf000 + +@function next-fa-glyph() { + $fa-glyph-counter: $fa-glyph-counter + 1 !global; + + $lo-part: $fa-glyph-counter % 256; + $hi-part: ($fa-glyph-counter - $lo-part) / 256; + $hex-num-str: str-slice(#{rgb($hi-part, $lo-part, 1)}, 2, 5); + + $glyph: unquote('"\\#{$hex-num-str}"'); + + @return $glyph; +} + +// icons listed below will be automatically added to the generated icon font, see build/loaders/fontawesome-loader.js +// if the icon has "-o" suffix, it will be used from the "regular" font, otherwise from "solid" or "brands" +// -o is used because it's similar to an empty bullet and this used to be a convention in fontawesome 4 + +$fa-var-square: next-fa-glyph(); +$fa-var-square-o: next-fa-glyph(); +$fa-var-check-square-o: next-fa-glyph(); +$fa-var-bookmark: next-fa-glyph(); +$fa-var-bookmark-o: next-fa-glyph(); +$fa-var-eye: next-fa-glyph(); +$fa-var-eye-slash: next-fa-glyph(); +$fa-var-bolt: next-fa-glyph(); +$fa-var-unlock: next-fa-glyph(); +$fa-var-lock: next-fa-glyph(); +$fa-var-check: next-fa-glyph(); +$fa-var-times: next-fa-glyph(); +$fa-var-folder: next-fa-glyph(); +$fa-var-folder-open: next-fa-glyph(); +$fa-var-ban: next-fa-glyph(); +$fa-var-dropbox: next-fa-glyph(); +$fa-var-google-drive: next-fa-glyph(); +$fa-var-plus: next-fa-glyph(); +$fa-var-ellipsis-h: next-fa-glyph(); +$fa-var-ellipsis-v: next-fa-glyph(); +$fa-var-magic: next-fa-glyph(); +$fa-var-cog: next-fa-glyph(); +$fa-var-server: next-fa-glyph(); +$fa-var-file-alt: next-fa-glyph(); +$fa-var-file-alt-o: next-fa-glyph(); +$fa-var-file-code-o: next-fa-glyph(); +$fa-var-file-pdf-o: next-fa-glyph(); +$fa-var-file-archive-o: next-fa-glyph(); +$fa-var-file-word-o: next-fa-glyph(); +$fa-var-file-excel-o: next-fa-glyph(); +$fa-var-file-powerpoint-o: next-fa-glyph(); +$fa-var-file-image-o: next-fa-glyph(); +$fa-var-file-video-o: next-fa-glyph(); +$fa-var-file-audio-o: next-fa-glyph(); +$fa-var-onedrive: next-fa-glyph(); +$fa-var-question: next-fa-glyph(); +$fa-var-sign-out-alt: next-fa-glyph(); +$fa-var-sync-alt: next-fa-glyph(); +$fa-var-level-down-alt: next-fa-glyph(); +$fa-var-tag: next-fa-glyph(); +$fa-var-tags: next-fa-glyph(); +$fa-var-th-large: next-fa-glyph(); +$fa-var-trash: next-fa-glyph(); +$fa-var-trash-alt: next-fa-glyph(); +$fa-var-keyboard-o: next-fa-glyph(); +$fa-var-puzzle-piece: next-fa-glyph(); +$fa-var-usb: next-fa-glyph(); +$fa-var-info: next-fa-glyph(); +$fa-var-info-circle: next-fa-glyph(); +$fa-var-key: next-fa-glyph(); +$fa-var-globe: next-fa-glyph(); +$fa-var-exclamation-triangle: next-fa-glyph(); +$fa-var-thumbtack: next-fa-glyph(); +$fa-var-comments-o: next-fa-glyph(); +$fa-var-edit: next-fa-glyph(); +$fa-var-plug: next-fa-glyph(); +$fa-var-newspaper-o: next-fa-glyph(); +$fa-var-paperclip: next-fa-glyph(); +$fa-var-camera: next-fa-glyph(); +$fa-var-wifi: next-fa-glyph(); +$fa-var-link: next-fa-glyph(); +$fa-var-battery-three-quarters: next-fa-glyph(); +$fa-var-bars: next-fa-glyph(); +$fa-var-barcode: next-fa-glyph(); +$fa-var-certificate: next-fa-glyph(); +$fa-var-bullseye: next-fa-glyph(); +$fa-var-desktop: next-fa-glyph(); +$fa-var-envelope-o: next-fa-glyph(); +$fa-var-clipboard: next-fa-glyph(); +$fa-var-paper-plane-o: next-fa-glyph(); +$fa-var-tv: next-fa-glyph(); +$fa-var-inbox: next-fa-glyph(); +$fa-var-save: next-fa-glyph(); +$fa-var-hdd: next-fa-glyph(); +$fa-var-dot-circle: next-fa-glyph(); +$fa-var-user-lock: next-fa-glyph(); +$fa-var-terminal: next-fa-glyph(); +$fa-var-print: next-fa-glyph(); +$fa-var-map-signs: next-fa-glyph(); +$fa-var-flag-checkered: next-fa-glyph(); +$fa-var-wrench: next-fa-glyph(); +$fa-var-laptop: next-fa-glyph(); +$fa-var-archive: next-fa-glyph(); +$fa-var-credit-card: next-fa-glyph(); +$fa-var-windows: next-fa-glyph(); +$fa-var-clock: next-fa-glyph(); +$fa-var-search: next-fa-glyph(); +$fa-var-flask: next-fa-glyph(); +$fa-var-gamepad: next-fa-glyph(); +$fa-var-sticky-note-o: next-fa-glyph(); +$fa-var-question-circle: next-fa-glyph(); +$fa-var-cube: next-fa-glyph(); +$fa-var-folder-o: next-fa-glyph(); +$fa-var-folder-open-o: next-fa-glyph(); +$fa-var-database: next-fa-glyph(); +$fa-var-unlock-alt: next-fa-glyph(); +$fa-var-pencil-alt: next-fa-glyph(); +$fa-var-image: next-fa-glyph(); +$fa-var-book: next-fa-glyph(); +$fa-var-list-alt: next-fa-glyph(); +$fa-var-user-secret: next-fa-glyph(); +$fa-var-utensils: next-fa-glyph(); +$fa-var-home: next-fa-glyph(); +$fa-var-star: next-fa-glyph(); +$fa-var-linux: next-fa-glyph(); +$fa-var-map-pin: next-fa-glyph(); +$fa-var-apple: next-fa-glyph(); +$fa-var-wikipedia-w: next-fa-glyph(); +$fa-var-dollar-sign: next-fa-glyph(); +$fa-var-calendar: next-fa-glyph(); +$fa-var-mobile: next-fa-glyph(); +$fa-var-spinner: next-fa-glyph(); +$fa-var-minus-circle: next-fa-glyph(); +$fa-var-keeweb: next-fa-glyph(); +$fa-var-copy: next-fa-glyph(); +$fa-var-clone: next-fa-glyph(); +$fa-var-chevron-down: next-fa-glyph(); +$fa-var-chevron-left: next-fa-glyph(); +$fa-var-qrcode: next-fa-glyph(); +$fa-var-sort-alpha-down: next-fa-glyph(); +$fa-var-sort-alpha-down-alt: next-fa-glyph(); +$fa-var-sort-numeric-down: next-fa-glyph(); +$fa-var-sort-numeric-down-alt: next-fa-glyph(); +$fa-var-sort-amount-down: next-fa-glyph(); +$fa-var-language: next-fa-glyph(); +$fa-var-circle: next-fa-glyph(); +$fa-var-circle-o: next-fa-glyph(); +$fa-var-arrow-circle-left: next-fa-glyph(); +$fa-var-cloud-download-alt: next-fa-glyph(); +$fa-var-caret-down: next-fa-glyph(); +$fa-var-long-arrow-alt-left: next-fa-glyph(); +$fa-var-long-arrow-alt-right: next-fa-glyph(); +$fa-var-github-alt: next-fa-glyph(); +$fa-var-code: next-fa-glyph(); +$fa-var-html5: next-fa-glyph(); +$fa-var-chrome: next-fa-glyph(); +$fa-var-firefox-browser: next-fa-glyph(); +$fa-var-safari: next-fa-glyph(); +$fa-var-opera: next-fa-glyph(); +$fa-var-edge: next-fa-glyph(); +$fa-var-twitter: next-fa-glyph(); +$fa-var-paint-brush: next-fa-glyph(); +$fa-var-at: next-fa-glyph(); diff --git a/app/styles/common/_fx.scss b/app/styles/common/_fx.scss index 2b4fa531..f8e82020 100644 --- a/app/styles/common/_fx.scss +++ b/app/styles/common/_fx.scss @@ -25,6 +25,24 @@ animation: shake 50s cubic-bezier(0.36, 0.07, 0.19, 0.97) 0s; } +.rotate-90, +.fa.rotate-90:before { + transform: rotate(90deg); +} + +.spin { + animation: spin 2s linear infinite; +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + @keyframes flip3d { from { transform: rotateY(0); diff --git a/app/styles/common/_modal.scss b/app/styles/common/_modal.scss index 941382da..d19155d5 100644 --- a/app/styles/common/_modal.scss +++ b/app/styles/common/_modal.scss @@ -30,11 +30,6 @@ &__icon { font-size: $modal-icon-size; text-align: center; - &--svg { - fill: var(--text-color); - width: 1.4em; - align-self: center; - } } &__header { user-select: text; diff --git a/app/styles/main.scss b/app/styles/main.scss index 67e6c266..bf00cae9 100644 --- a/app/styles/main.scss +++ b/app/styles/main.scss @@ -1,7 +1,6 @@ $fa-font-path: '~font-awesome/fonts'; @import '~normalize.css/normalize'; -@import '~font-awesome/scss/font-awesome'; @import '~pikaday/scss/pikaday'; @import '~bourbon'; diff --git a/app/templates/details/details-attachment.hbs b/app/templates/details/details-attachment.hbs index 3a9d8e0b..0f311fd3 100644 --- a/app/templates/details/details-attachment.hbs +++ b/app/templates/details/details-attachment.hbs @@ -1,6 +1,6 @@
- {{res 'detHistoryReturn'}} + {{res 'detHistoryReturn'}}
diff --git a/app/templates/details/details-history.hbs b/app/templates/details/details-history.hbs index b070f482..5fa246ff 100644 --- a/app/templates/details/details-history.hbs +++ b/app/templates/details/details-history.hbs @@ -1,13 +1,13 @@
- {{res 'detHistoryReturn'}} + {{res 'detHistoryReturn'}}
{{res 'detHistoryClickPoint'}}
-
-
+
+
diff --git a/app/templates/details/details.hbs b/app/templates/details/details.hbs index c5d1c2ef..f41b025b 100644 --- a/app/templates/details/details.hbs +++ b/app/templates/details/details.hbs @@ -47,7 +47,7 @@ {{#if deleted~}} {{~else~}} - + {{~/if~}}
diff --git a/app/templates/footer.hbs b/app/templates/footer.hbs index b88985a0..9240532e 100644 --- a/app/templates/footer.hbs +++ b/app/templates/footer.hbs @@ -4,9 +4,9 @@ data-file-id="{{file.id}}" id="footer__db--{{file.id}}"> {{file.name}} {{#if file.syncing~}} - + {{~else if file.syncError~}} - {{~else if file.modified~}} @@ -25,5 +25,5 @@ {{/if}}
- +
diff --git a/app/templates/generator-presets.hbs b/app/templates/generator-presets.hbs index db1fb539..11189d7a 100644 --- a/app/templates/generator-presets.hbs +++ b/app/templates/generator-presets.hbs @@ -1,6 +1,6 @@
- {{res 'retToApp'}} + {{res 'retToApp'}}
diff --git a/app/templates/generator.hbs b/app/templates/generator.hbs index c3d7e6b9..97f0742e 100644 --- a/app/templates/generator.hbs +++ b/app/templates/generator.hbs @@ -1,6 +1,6 @@
{{res 'genLen'}}: {{opt.length}} - + {{#unless showToggleButton}}