diff --git a/CHANGELOG.md b/CHANGELOG.md index 3df25cdb2c..9c300ced97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 4.1.0 (unreleased) +* Replaces PNG icons with FontAwesome icon font [#1342](https://github.com/AlchemyCMS/alchemy_cms/pull/1342) by [tvdeyen](https://github.com/tvdeyen) * Remove pleaseWait overlay from links with GET requests [#1343](https://github.com/AlchemyCMS/alchemy_cms/pull/1343) by [tvdeyen](https://github.com/tvdeyen) * Removed fixed table headers from admin resource tables [#1339](https://github.com/AlchemyCMS/alchemy_cms/pull/1339) by [tvdeyen](https://github.com/tvdeyen) * Removed Bourbon Sass library [#1339](https://github.com/AlchemyCMS/alchemy_cms/pull/1339) by [tvdeyen](https://github.com/tvdeyen) diff --git a/app/assets/fonts/alchemy/icons.eot b/app/assets/fonts/alchemy/icons.eot deleted file mode 100755 index 74b1e0813c..0000000000 Binary files a/app/assets/fonts/alchemy/icons.eot and /dev/null differ diff --git a/app/assets/fonts/alchemy/icons.svg b/app/assets/fonts/alchemy/icons.svg deleted file mode 100755 index 0f9a13f7b0..0000000000 --- a/app/assets/fonts/alchemy/icons.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/assets/fonts/alchemy/icons.ttf b/app/assets/fonts/alchemy/icons.ttf deleted file mode 100755 index ee00ecbdaa..0000000000 Binary files a/app/assets/fonts/alchemy/icons.ttf and /dev/null differ diff --git a/app/assets/fonts/alchemy/icons.woff b/app/assets/fonts/alchemy/icons.woff deleted file mode 100755 index c7c5668b73..0000000000 Binary files a/app/assets/fonts/alchemy/icons.woff and /dev/null differ diff --git a/app/assets/images/alchemy/icon.svg b/app/assets/images/alchemy/icon.svg index 17f4623b33..7cef460b0d 100644 --- a/app/assets/images/alchemy/icon.svg +++ b/app/assets/images/alchemy/icon.svg @@ -1,14 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/app/assets/images/alchemy/icons.png b/app/assets/images/alchemy/icons.png deleted file mode 100644 index c4e2a0e291..0000000000 Binary files a/app/assets/images/alchemy/icons.png and /dev/null differ diff --git a/app/assets/images/alchemy/ui-icons_666666_256x240.png b/app/assets/images/alchemy/ui-icons_666666_256x240.png deleted file mode 100644 index a32c57d80b..0000000000 Binary files a/app/assets/images/alchemy/ui-icons_666666_256x240.png and /dev/null differ diff --git a/app/assets/javascripts/alchemy/alchemy.base.js.coffee b/app/assets/javascripts/alchemy/alchemy.base.js.coffee index eee46b61d7..71272ecf6d 100644 --- a/app/assets/javascripts/alchemy/alchemy.base.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.base.js.coffee @@ -62,10 +62,10 @@ $.extend Alchemy, removePicture: (selector) -> $form_field = $(selector) $element = $form_field.closest(".element-editor") - if $form_field + if $form_field[0] $form_field.val "" $form_field.prev().remove() - $form_field.parent().addClass "missing" + $form_field.parent().html '' Alchemy.setElementDirty $element false diff --git a/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee b/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee index a55b9d50d5..cc294c14bb 100644 --- a/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee @@ -140,7 +140,7 @@ class window.Alchemy.Dialog error_header = "#{xhr.statusText} (#{xhr.status})" error_body = "Please check log and try again." $errorDiv = $("
") - $errorDiv.append "" + $errorDiv.append Alchemy.messageIcon(error_type) $errorDiv.append "

#{error_header}

" $errorDiv.append "

#{error_body}

" @dialog_body.html $errorDiv @@ -171,7 +171,7 @@ class window.Alchemy.Dialog @dialog_body = $('
') @dialog_header = $('
') @dialog_title = $('
') - @close_button = $('') + @close_button = $('') @dialog_title.text(@options.title) @dialog_header.append(@dialog_title) @dialog_header.append(@close_button) @@ -272,3 +272,13 @@ window.Alchemy.watchForDialogs = (scope = '#alchemy') -> @form.submit() return false + +# Returns a FontAwesome icon for given message type +# +window.Alchemy.messageIcon = (messageType) -> + icon_class = switch messageType + when "warning", "warn", "alert" then "exclamation" + when "notice" then "check" + when "error" then "bug" + else messageType + "" diff --git a/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee b/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee index 0b5989d54d..46360457ea 100644 --- a/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee @@ -12,9 +12,6 @@ $.extend Alchemy, setElementDirty: (element) -> $element = $(element) $element.addClass('dirty') - $element - .find('> .element-header .icon[class*="element_"]') - .addClass('element_dirty') window.onbeforeunload = @pageUnload pageUnload: -> @@ -23,7 +20,6 @@ $.extend Alchemy, setElementClean: (element) -> $element = $(element) $element.removeClass('dirty') - $element.find('> .element-header .icon').removeClass('element_dirty') $element.find('> .element-content .dirty').removeClass('dirty') window.onbeforeunload = undefined diff --git a/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee b/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee index b7c2b44ccc..385dd5b27c 100644 --- a/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee @@ -138,7 +138,7 @@ Alchemy.ElementEditors = toggleFold: (id, callback) -> spinner = new Alchemy.Spinner('small') spinner.spin("#element_#{id} > .element-header .ajax-folder") - $("#element_#{id}_folder").hide() + $("#element_#{id}_folder .icon").hide() $.post Alchemy.routes.fold_admin_element_path(id), => callback.call() if callback? return @@ -194,7 +194,7 @@ Alchemy.ElementEditors = # Click event handler for element toggle icon. onClickToggle: (e) -> - id = $(e.target).data('element-toggle') + id = $(e.currentTarget).data('element-toggle') @toggle(id) e.preventDefault() e.stopPropagation() diff --git a/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee b/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee index 1e797db5e2..69bec7b7f9 100644 --- a/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee @@ -12,7 +12,7 @@ Alchemy.ToolbarButton = (options) -> e.preventDefault() options.onClick(e) false - $lnk.append "" + $lnk.append "" $btn.append $lnk $btn.append "
" $btn diff --git a/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee b/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee index b273fc50f2..fff1185057 100644 --- a/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee @@ -9,7 +9,7 @@ Alchemy.FileProgress = (file) -> @$fileProgressElement = $('
') # Append Cancel Button - @$fileProgressCancel = $('') + @$fileProgressCancel = $('') @$fileProgressElement.append @$fileProgressCancel # Append Filename diff --git a/app/assets/javascripts/alchemy/alchemy.growler.js.coffee b/app/assets/javascripts/alchemy/alchemy.growler.js.coffee index 96e3acac6a..6f7605f6c3 100644 --- a/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.growler.js.coffee @@ -4,8 +4,7 @@ Alchemy.Growler = build: (message, flash_type) -> $flash_container = $("
") - icon_class = (if flash_type is "notice" then "tick" else flash_type) - $flash_container.append "" + $flash_container.append Alchemy.messageIcon(flash_type) $flash_container.append message $("#flash_notices").append $flash_container $("#flash_notices").show() diff --git a/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee b/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee index 2abf9b0959..e6635f3391 100644 --- a/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +++ b/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee @@ -44,7 +44,7 @@ class window.Alchemy.ImageOverlay extends Alchemy.Dialog @dialog = $('
') @dialog_body = $('
') @close_button = $(' - + ') @dialog.append(@close_button) @dialog.append(@dialog_body) diff --git a/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee b/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee index fa7fb3707d..108e36b426 100644 --- a/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +++ b/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee @@ -43,7 +43,7 @@ Alchemy.PreviewWindow = _hideSpinner: -> @spinner.stop() - @reload.html('') + @reload.html('') _bindReloadButton: -> $reload = $('#reload_preview_button') diff --git a/app/assets/stylesheets/alchemy/_defaults.scss b/app/assets/stylesheets/alchemy/_defaults.scss index ca5ae8abd6..f801d007b5 100644 --- a/app/assets/stylesheets/alchemy/_defaults.scss +++ b/app/assets/stylesheets/alchemy/_defaults.scss @@ -1,4 +1,3 @@ @import "alchemy/variables"; @import "alchemy/mixins"; @import "alchemy/extends"; -@import "alchemy/icon-font"; diff --git a/app/assets/stylesheets/alchemy/_mixins.scss b/app/assets/stylesheets/alchemy/_mixins.scss index e34beb4969..6207358c35 100644 --- a/app/assets/stylesheets/alchemy/_mixins.scss +++ b/app/assets/stylesheets/alchemy/_mixins.scss @@ -144,7 +144,7 @@ box-shadow: $shadow; } -@mixin tag-base($margin: 2*$default-margin 0, $padding: $default-padding 4*$default-padding $default-padding 6*$default-padding) { +@mixin tag-base($margin: 2*$default-margin 0, $padding: $default-padding 3*$default-padding) { padding: $padding; margin: $margin; background-color: $medium-gray; @@ -153,12 +153,11 @@ border-radius: $default-border-radius; &:before { - position: absolute; - left: 8px; - top: 8px; - font-family: 'Alchemy Icons'; - @extend .icon-tag:before; - line-height: 8px; + content: fa-content($fa-var-tag); + font-family: 'Font Awesome 5 Free'; + font-weight: 900; + font-size: 0.8em; + padding-right: 2*$default-padding; } } diff --git a/app/assets/stylesheets/alchemy/_variables.scss b/app/assets/stylesheets/alchemy/_variables.scss index 7165b8097c..03ddf074ed 100644 --- a/app/assets/stylesheets/alchemy/_variables.scss +++ b/app/assets/stylesheets/alchemy/_variables.scss @@ -1,4 +1,5 @@ -$text-color: #333333; +$text-color: rgba(39, 47, 69, 0.8); +$icon-color: rgba(51, 59, 81, 0.75); $muted-text-color: rgba(0, 0, 0, 0.5); $light-blue: #cddce5; // #c6dbe7 $blue: darken($light-blue, 15%); @@ -76,3 +77,5 @@ $header-height: 29px !default; $text-shadow-light: rgba($white, 0.5) 0 0 4px !default; $transition-duration: 200ms !default; $transition-easing: linear !default; + +$addon-icon-opacity: 0.85; diff --git a/app/assets/stylesheets/alchemy/admin.scss b/app/assets/stylesheets/alchemy/admin.scss index 23e8f350b6..0a85d41b9f 100644 --- a/app/assets/stylesheets/alchemy/admin.scss +++ b/app/assets/stylesheets/alchemy/admin.scss @@ -4,6 +4,9 @@ *= require_self */ +@import "fontawesome/fontawesome"; +@import "fontawesome/fa-regular"; +@import "fontawesome/fa-solid"; @import "alchemy/defaults"; @import "alchemy/archive"; @import "alchemy/navigation"; @@ -23,7 +26,6 @@ @import "alchemy/hints"; @import "alchemy/icons"; @import "alchemy/image_library"; -@import "alchemy/modules"; @import "alchemy/notices"; @import "alchemy/pagination"; @import "alchemy/preview_window"; diff --git a/app/assets/stylesheets/alchemy/archive.scss b/app/assets/stylesheets/alchemy/archive.scss index 7425b309a4..adf7d94269 100644 --- a/app/assets/stylesheets/alchemy/archive.scss +++ b/app/assets/stylesheets/alchemy/archive.scss @@ -108,7 +108,7 @@ div.assign_image_list_image { position: absolute; background-color: white; top: $default-padding; - padding: $default-padding/2; + padding: 2px 3px; z-index: 10; display: none; @@ -131,10 +131,6 @@ div.assign_image_list_image { &.delete { right: $default-padding; - - a { - background: image-url('alchemy/icons.png') no-repeat -63px -72px; - } } a { @@ -218,12 +214,12 @@ div#filter_bar { overflow-y: auto; li { - @include tag-base; display: block; &:first-child { margin-top: 0 } a { + @include tag-base; text-decoration: none; display: block; } @@ -231,9 +227,11 @@ div#filter_bar { &:hover { background-color: $very-light-blue } &.active { - background-color: $dark-gray; - a, &:before { color: $light-gray } + a { + background-color: $dark-gray; + color: $light-gray + } } } } @@ -326,26 +324,15 @@ div#filter_bar { } .tag { + @include tag-base( + $margin: $default-margin/2 0, + $padding: $default-padding 2*$default-padding $default-padding + ); display: inline-block; vertical-align: middle; - border-radius: $default-border-radius; - padding: $default-padding 2*$default-padding $default-padding 4*$default-padding; - margin: $default-margin/2 0; - background-color: rgba($medium-gray, 0.85); color: $text-color; - overflow: hidden; - position: relative; pointer-events: none; font-size: 10px; - - &:before { - position: absolute; - left: $default-padding; - top: 2*$default-padding; - font-family: 'Alchemy Icons'; - @extend .icon-tag:before; - line-height: 6px; - } } .tags .list .tag { diff --git a/app/assets/stylesheets/alchemy/buttons.scss b/app/assets/stylesheets/alchemy/buttons.scss index ddfa37697f..e4ecf3c416 100644 --- a/app/assets/stylesheets/alchemy/buttons.scss +++ b/app/assets/stylesheets/alchemy/buttons.scss @@ -7,20 +7,12 @@ button, input[type="submit"], a.button, input.button { vertical-align: inherit; line-height: 4*$default-padding; font-size: inherit; - - &.with_icon { - padding: $default-padding 3*$default-padding $default-padding 6px; - } } - &.with_icon { - padding: 6px 18px 6px 6px; - - span.icon { - margin-top: -$default-margin; - margin-right: $default-margin; - height: 14px; - } + &.with_icon .icon { + position: relative; + top: -1px; + margin-right: $default-margin; } &.icon_only { @@ -50,23 +42,7 @@ button, input[type="submit"], a.button, input.button { padding: 3px; overflow: hidden; text-align: center; - - .icon { - display: inline-block; - vertical-align: middle; - margin-top: -2px; - } - - .old_icon { - position: relative; - background-repeat: no-repeat; - width: 22px; - height: 20px; - display: inline-block; - vertical-align: middle; - top: -1px; - left: -1px; - } + text-shadow: none; img { position: absolute; @@ -90,16 +66,7 @@ button, input[type="submit"], a.button, input.button { .icon { position: absolute; top: 50%; - height: 8px; transform: translateX(-50%) translateY(-50%); - - &:before { - line-height: 10px; - } - - &.delete-small { - background-position: -4px -76px; - } } &:hover { @@ -109,16 +76,6 @@ button, input[type="submit"], a.button, input.button { } } - &.old_icon { - width: 20px; - height: 19px; - - img { - top: 0; - left: 1px; - } - } - &.disabled { span { diff --git a/app/assets/stylesheets/alchemy/clipboard.scss b/app/assets/stylesheets/alchemy/clipboard.scss index 1effa61230..b8369aeba5 100644 --- a/app/assets/stylesheets/alchemy/clipboard.scss +++ b/app/assets/stylesheets/alchemy/clipboard.scss @@ -18,14 +18,9 @@ background-color: $medium-gray; } - .icon { - vertical-align: text-bottom; + > .icon { margin-right: $default-padding; } - - .float_right .icon { - margin-right: 0; - } } } } diff --git a/app/assets/stylesheets/alchemy/dialogs.scss b/app/assets/stylesheets/alchemy/dialogs.scss index 8cffc088f9..24a4439aa0 100644 --- a/app/assets/stylesheets/alchemy/dialogs.scss +++ b/app/assets/stylesheets/alchemy/dialogs.scss @@ -150,11 +150,6 @@ position: absolute; z-index: 1; cursor: pointer; - - .icon.close.small { - line-height: 1; - vertical-align: text-top; - } } .alchemy-dialog-close { @@ -162,10 +157,6 @@ right: 2*$default-padding; padding: 0 $default-padding; color: inherit; - - .icon.close.small { - font-size: 16px; - } } .alchemy-dialog-body { diff --git a/app/assets/stylesheets/alchemy/elements.scss b/app/assets/stylesheets/alchemy/elements.scss index c10860e57a..d6f10b14e0 100644 --- a/app/assets/stylesheets/alchemy/elements.scss +++ b/app/assets/stylesheets/alchemy/elements.scss @@ -64,18 +64,8 @@ .element.icon { position: absolute; - top: 0; - left: 0; - } - - .icon { - position: absolute; - right: 0; - bottom: 0; - - &.element_dirty { - background-position: -160px -166px; - } + top: 3px; + left: 1px; } } @@ -88,7 +78,7 @@ width: 16px; height: 16px; right: 8px; - top: 8px; + top: 10px; .error_icon { float: left; @@ -117,10 +107,8 @@ text-decoration: none; overflow: hidden; text-align: center; - font-weight: bold; line-height: 104px; border-radius: $default-border-radius; - font-size: 40px; background-color: $light-gray; &:hover { @@ -128,12 +116,11 @@ } .icon { - font-size: 30px; - width: 30px; - height: 30px; + font-size: 20px; position: absolute; - top: 48px; - left: 44px; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } } } @@ -257,7 +244,7 @@ > .hint-with-icon { position: absolute; right: 32px; - top: 8px; + top: 10px; .hint-bubble { left: auto; @@ -361,25 +348,6 @@ } } -.expand_element, -.fold_element { - background-image: image-url('alchemy/icons.png'); - background-repeat: no-repeat; - height: 16px; - width: 16px; - text-decoration: none; - display: block; - margin: 1px; -} - -.expand_element { - background-position: -160px -72px; -} - -.fold_element { - background-position: -192px -72px; -} - .droppable_element_placeholder { height: 36px; border: 1px dotted $button-border-color; @@ -398,7 +366,7 @@ > a, > span.icon { float: left; - margin: 0 $default-margin/2; + margin: -1px $default-margin/2; width: 18px; height: 18px; } @@ -412,7 +380,7 @@ border: 1px solid $button-border-color; bottom: 1px; margin-right: 2px; - width: 18px; + width: 20px; height: 18px; margin-left: 0; @@ -456,9 +424,7 @@ border-color: $error_border_color } - .thumbnail_background.missing:before { - font-family: 'Alchemy Icons'; - @extend .icon-pictures:before; + .thumbnail_background .icon { font-size: 48px; color: $medium-gray; vertical-align: top; @@ -514,18 +480,11 @@ } .file_icon { + display: inline-block; text-align: center; float: left; - line-height: 25px; width: 24px; - - .icon { - margin: $default-margin; - } - - .assign_file { - background-position: -480px -40px; - } + padding: 6px 4px; } .file_name { @@ -533,8 +492,8 @@ overflow: hidden; float: left; max-width: 80%; - line-height: $default-form-field-height; - font-size: 10px; + line-height: 28px; + font-size: 90%; text-overflow: ellipsis; } } @@ -548,18 +507,8 @@ a { text-decoration: none; - width: 16px; - height: 16px; - margin: 5px $default-margin; + padding: 6px $default-margin; float: left; - - &.assign_file { - background: image-url('alchemy/icons.png') -512px -40px; - } - - &.edit_file { - background: image-url('alchemy/icons.png') -160px -167px; - } } } @@ -633,7 +582,7 @@ select.long { label { display: block; margin-bottom: 2px; - font-size: 10px; + font-size: 90%; text-shadow: #fff5e1 1px 1px 0; line-height: 15px; text-indent: 1px; @@ -744,8 +693,8 @@ textarea.has_tinymce { .content_editor .hint-with-icon, .content_editor .with-hint, -.element-handle .warning { - margin-left: 0; +.element-handle .hint-with-icon { + margin: 0; > .hint-bubble { left: -7px; @@ -757,7 +706,7 @@ textarea.has_tinymce { } } -.content_editor .hint-with-icon { +.element-handle .hint-with-icon { top: -1px; } diff --git a/app/assets/stylesheets/alchemy/flash.scss b/app/assets/stylesheets/alchemy/flash.scss index ced820c5ea..7e866063b5 100644 --- a/app/assets/stylesheets/alchemy/flash.scss +++ b/app/assets/stylesheets/alchemy/flash.scss @@ -10,12 +10,12 @@ div#flash_notices { padding-right: 24px; &:before { + content: fa-content($fa-var-times); position: absolute; right: 2*$default-padding; - top: 2*$default-padding; - @extend .icon-cross:before; - font-size: 14px; - font-family: 'Alchemy Icons'; + top: 11px; + font-size: 10px; + font-family: 'Font Awesome 5 Free'; } } } @@ -28,14 +28,14 @@ div.flash { border-width: 1px; border-style: solid; z-index: 1000; - margin: $default-margin; + margin: $default-margin $default-margin 2*$default-margin; position: relative; min-height: 1.3em; word-break: break-all; - span.icon { + .icon { position: absolute; - top: 8px; + top: 10px; left: 8px; } diff --git a/app/assets/stylesheets/alchemy/frame.scss b/app/assets/stylesheets/alchemy/frame.scss index 53bb4c0d79..9bf229aaae 100644 --- a/app/assets/stylesheets/alchemy/frame.scss +++ b/app/assets/stylesheets/alchemy/frame.scss @@ -74,7 +74,6 @@ div#overlay_text_box { a { display: inline-block; - vertical-align: middle; &:hover { text-decoration: none; @@ -139,6 +138,7 @@ div#overlay_text_box { border-bottom: $default-border; .select2-container { + height: $default-form-field-height; margin-top: -3px; padding-right: 2*$default-padding; } @@ -157,25 +157,11 @@ div#overlay_text_box { .select2-arrow { width: 14px; border-left: none; - - b { - color: $muted-text-color; - - &:before { - position: absolute; - top: 50%; - transform: translateY(-50%); - } - } } } .select2-dropdown-open { background-color: $main-menu-bg-color; - - .select2-choice .select2-arrow b { - background-position: -20px -5px; - } } .current-user-name { diff --git a/app/assets/stylesheets/alchemy/icon-font.scss b/app/assets/stylesheets/alchemy/icon-font.scss deleted file mode 100644 index 95b463d9b7..0000000000 --- a/app/assets/stylesheets/alchemy/icon-font.scss +++ /dev/null @@ -1,75 +0,0 @@ -@font-face { - font-family: 'Alchemy Icons'; - src: font-url('alchemy/icons.eot?sgh5oh'); - src: font-url('alchemy/icons.eot?#iefixsgh5oh') format('embedded-opentype'), - font-url('alchemy/icons.ttf?sgh5oh') format('truetype'), - font-url('alchemy/icons.woff?sgh5oh') format('woff'), - font-url('alchemy/icons.svg?sgh5oh#Alchemy-Icons') format('svg'); - font-weight: normal; - font-style: normal; -} - -.icon-angle-double-right, -.icon-angle-left, -.icon-angle-right, -.icon-plus, -.icon-minus, -.icon-cross, -.icon-plus-2, -.icon-minus-2, -.icon-pencil, -.icon-tag, -.icon-info, -.icon-warning, -.icon-checkmark, -.icon-ccw, -.icon-trash, -.icon-cross-2, -.icon-pictures, -.icon-menu, -.icon-magnifying-glass, -.icon-fullscreen-exit, -.icon-help, -.icon-fullscreen, -.icon-cog { - font-family: 'Alchemy Icons'; - speak: none; - font-size: 12px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-decoration: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 16px; - color: #666; - text-align: center; - line-height: 1; - display: inline-block; - vertical-align: middle; -} - -.icon-angle-double-right:before { content: "\f101" } -.icon-angle-left:before { content: "\f104" } -.icon-angle-right:before { content: "\f105" } -.icon-plus:before { content: "\e000" } -.icon-minus:before { content: "\e001" } -.icon-cross:before { content: "\e004" } -.icon-plus-2:before { content: "\e005" } -.icon-minus-2:before { content: "\e006" } -.icon-pencil:before { content: "\e007" } -.icon-tag:before { content: "\e034" } -.icon-info:before { content: "\e008" } -.icon-warning:before { content: "\e009" } -.icon-checkmark:before { content: "\e00a" } -.icon-ccw:before { content: "\e00b" } -.icon-trash:before { content: "\f014" } -.icon-cross-2:before { content: "\e00e" } -.icon-pictures:before { content: "\e00f" } -.icon-menu:before { content: "\e010" } -.icon-magnifying-glass:before { content: "\e011" } -.icon-fullscreen-exit:before { content: "\e01e" } -.icon-help:before { content: "\e00c" } -.icon-fullscreen:before { content: "\e01d" } -.icon-cog:before { content: "\f013" } diff --git a/app/assets/stylesheets/alchemy/icons.scss b/app/assets/stylesheets/alchemy/icons.scss index c2bae85073..87118f9291 100644 --- a/app/assets/stylesheets/alchemy/icons.scss +++ b/app/assets/stylesheets/alchemy/icons.scss @@ -1,345 +1,11 @@ .icon { - display: inline-block; - vertical-align: middle; - background: image-url('alchemy/icons.png') no-repeat; - width: 16px; - height: 16px; + color: $icon-color; - &.add { - background: none; - @extend .icon-plus-2; - line-height: 1em; - font-size: 19px; - } - - &.add_page { - background-position: -96px -40px; - } - - &.archive { - background-position: -416px -136px; - } - - &.audio { - background-position: -192px -136px; - } - - &.back { - background: none; - line-height: 14px; - font-size: 20px; - font-weight: bold; - color: #666; - - &:before { - content: '\00ab'; - } + &.disabled { + opacity: 0.3; } &.blank { background: transparent; } - - &.clipboard { - background-position: -288px -104px; - - &.full { - background-position: -320px -104px; - } - } - - &.close { - background-position: -416px -39px; - - &.small { - background: none; - @extend .icon-cross; - line-height: 1; - } - } - - &.collapse.small { - background-position: -512px -106px; - } - - &.configure_page { - background-position: -320px -40px; - } - - &.copy_page { - background-position: -544px -40px; - } - - &.create { - background-position: -191px -168px; - } - - &.crop { - background-position: -256px -72px; - } - - &.delete_page { - background-position: -64px -40px; - } - - &.delete-small { - background-position: -1px -72px; - } - - &.destroy { - background-position: -224px -169px; - } - - &.edit { - background-position: -160px -168px; - } - - &.element, &.clipboard_elements { - background-position: -224px -72px; - } - - &.element_draft { - background-position: 1px -70px; - } - - &.element-hide { - background-position: -416px -168px; - } - - &.element_public { - background-position: -94px -166px; - } - - &.element_window { - background-position: -512px -72px; - } - - &.element_copy { - background-position: -128px -72px; - } - - &.cut { - background-position: -97px -72px; - } - - &.error { - background-position: -32px -168px; - } - - &.excel { - background-position: -353px -136px; - } - - &.expand.small { - background-position: -498px -106px; - } - - &.false { - background-image: none; - } - - &.file { - background-position: 0 -40px; - } - - &.file_delete { - background-position: -64px -40px; - } - - &.file_download, &.download { - background-position: -480px -136px; - } - - &.file_edit { - background-position: -32px -40px; - } - - &.file_change { - background-position: -512px -40px; - } - - &.flash { - background-position: -256px -136px; - } - - &.flush { - background-position: -352px -39px; - } - - &.questionmark, &.hint { - background-position: -447px -105px; - } - - &.image { - background-position: -224px -136px; - } - - &.info { - background-position: -64px -168px; - } - - &.language { - background-position: 0 -120px; - } - - &.language_add { - background-position: -47px -120px; - } - - &.language_delete { - background-position: -16px -120px; - } - - &.language_edit { - background-position: -32px -120px; - } - - &.link { - background-position: -320px -72px; - } - - &.new_element { - background-position: -384px -40px; - } - - &.offline { - background-position: -255px -105px; - } - - &.online { - background-position: -224px -105px; - } - - &.page, &.clipboard_pages { - background-position: 0 -40px; - } - - &.pdf { - background-position: -161px -136px; - } - - &.preview_window { - background-position: -448px -40px; - } - - &.psd { - background-position: -128px -136px; - } - - &.publish { - background-position: -64px -136px; - } - - &.remove { - background-position: -63px -72px; - } - - &.rtf { - background-position: -320px -136px; - } - - &.search { - background: none; - padding-top: 2px; - @extend .icon-magnifying-glass; - } - - &.select_all { - background-position: -256px -168px; - } - - &.settings { - background-position: -320px -40px; - } - - &.sort { - background-position: -128px -168px; - } - - &.swap_picture { - background-position: -288px -72px; - } - - &.sync, &.reload { - background-position: -96px -136px; - } - - &.tag_add { - background-position: -384px -168px; - } - - &.tag { - background-position: -288px -168px; - } - - &.tag_label { - background: none; - @extend .icon-tag; - } - - &.tag_edit { - background-position: -352px -168px; - } - - &.tag_delete { - background-position: -320px -168px; - } - - &.text { - background-position: -448px -136px; - } - - &.tick, &.true, &.notice, &.ok { - background-position: -32px -73px; - } - - &.trash { - background-position: -352px -104px; - - &.full { - background-position: -384px -104px; - } - } - - &.unlink { - background-position: -352px -72px; - } - - &.upload { - background-position: 0 -136px; - } - - &.vcard { - background-position: -416px -104px; - } - - &.video { - background-position: -288px -136px; - } - - &.visit_page { - background-position: -31px -135px; - } - - &.warning, &.warn, &.alert { - background-position: 0 -168px; - - &.inline { vertical-align: text-bottom; } - } - - &.word { - background-position: -385px -136px; - } - - &.zoom-equal { - background-position: -448px -72px; - } - - &.zoom-in { - background-position: -480px -72px; - } - - &.zoom-out { - background-position: -416px -72px; - } } diff --git a/app/assets/stylesheets/alchemy/image_library.scss b/app/assets/stylesheets/alchemy/image_library.scss index 96fb6427d0..dd5b70cf04 100644 --- a/app/assets/stylesheets/alchemy/image_library.scss +++ b/app/assets/stylesheets/alchemy/image_library.scss @@ -41,7 +41,7 @@ $image-overlay-transition-easing: ease-in; .picture-overlay-handle { right: 0; - .icon-angle-double-right { + .icon { transform: rotate(180deg) translate(50%, 50%); } } @@ -66,8 +66,8 @@ $image-overlay-transition-easing: ease-in; cursor: pointer; transition: right $image-overlay-transition-duration $image-overlay-transition-easing; - .icon.close.small { - font-size: 32px; + .icon { + font-size: 24px; color: $medium-gray; text-shadow: 0 0 $default-padding $text-color; transition: color $image-overlay-transition-duration linear; @@ -121,7 +121,7 @@ $image-overlay-transition-easing: ease-in; right: $image-overlay-form-width; cursor: pointer; - .icon-angle-double-right { + .icon { position: absolute; top: 50%; left: 50%; @@ -224,20 +224,19 @@ $image-overlay-transition-easing: ease-in; &:hover { background-color: rgba(0,0,0, 0.3); - .icon-angle-left, - .icon-angle-right { + .icon { color: $white; text-shadow: none; } } } - .icon-angle-left, - .icon-angle-right { + .icon { font-size: 48px; color: $medium-gray; text-shadow: 0 0 $default-padding $text-color; transition: all $image-overlay-transition-duration linear; + vertical-align: middle; } .previous-picture { diff --git a/app/assets/stylesheets/alchemy/jquery-ui.scss b/app/assets/stylesheets/alchemy/jquery-ui.scss index 5c0379d64c..817aacaf7b 100644 --- a/app/assets/stylesheets/alchemy/jquery-ui.scss +++ b/app/assets/stylesheets/alchemy/jquery-ui.scss @@ -74,18 +74,6 @@ cursor: default !important; } -/* Icons -----------------------------------*/ - -/* states and images */ - -.ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - /* Misc visuals ----------------------------------*/ @@ -253,790 +241,6 @@ background-image: none; } -/* Icons -----------------------------------*/ - -/* states and images */ - -.ui-icon { - width: 16px; - height: 16px; - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-widget-content .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-widget-header .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-state-default .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-state-active .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-state-highlight .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { - background-image: image-url('alchemy/ui-icons_666666_256x240.png'); -} - -/* positioning */ - -.ui-icon-carat-1-n { - background-position: 0 0; -} - -.ui-icon-carat-1-ne { - background-position: -16px 0; -} - -.ui-icon-carat-1-e { - background-position: -32px 0; -} - -.ui-icon-carat-1-se { - background-position: -48px 0; -} - -.ui-icon-carat-1-s { - background-position: -64px 0; -} - -.ui-icon-carat-1-sw { - background-position: -80px 0; -} - -.ui-icon-carat-1-w { - background-position: -96px 0; -} - -.ui-icon-carat-1-nw { - background-position: -112px 0; -} - -.ui-icon-carat-2-n-s { - background-position: -128px 0; -} - -.ui-icon-carat-2-e-w { - background-position: -144px 0; -} - -.ui-icon-triangle-1-n { - background-position: 0 -16px; -} - -.ui-icon-triangle-1-ne { - background-position: -16px -16px; -} - -.ui-icon-triangle-1-e { - background-position: -32px -16px; -} - -.ui-icon-triangle-1-se { - background-position: -48px -16px; -} - -.ui-icon-triangle-1-s { - background-position: -64px -16px; -} - -.ui-icon-triangle-1-sw { - background-position: -80px -16px; -} - -.ui-icon-triangle-1-w { - background-position: -96px -16px; -} - -.ui-icon-triangle-1-nw { - background-position: -112px -16px; -} - -.ui-icon-triangle-2-n-s { - background-position: -128px -16px; -} - -.ui-icon-triangle-2-e-w { - background-position: -144px -16px; -} - -.ui-icon-arrow-1-n { - background-position: 0 -32px; -} - -.ui-icon-arrow-1-ne { - background-position: -16px -32px; -} - -.ui-icon-arrow-1-e { - background-position: -32px -32px; -} - -.ui-icon-arrow-1-se { - background-position: -48px -32px; -} - -.ui-icon-arrow-1-s { - background-position: -64px -32px; -} - -.ui-icon-arrow-1-sw { - background-position: -80px -32px; -} - -.ui-icon-arrow-1-w { - background-position: -96px -32px; -} - -.ui-icon-arrow-1-nw { - background-position: -112px -32px; -} - -.ui-icon-arrow-2-n-s { - background-position: -128px -32px; -} - -.ui-icon-arrow-2-ne-sw { - background-position: -144px -32px; -} - -.ui-icon-arrow-2-e-w { - background-position: -160px -32px; -} - -.ui-icon-arrow-2-se-nw { - background-position: -176px -32px; -} - -.ui-icon-arrowstop-1-n { - background-position: -192px -32px; -} - -.ui-icon-arrowstop-1-e { - background-position: -208px -32px; -} - -.ui-icon-arrowstop-1-s { - background-position: -224px -32px; -} - -.ui-icon-arrowstop-1-w { - background-position: -240px -32px; -} - -.ui-icon-arrowthick-1-n { - background-position: 0 -48px; -} - -.ui-icon-arrowthick-1-ne { - background-position: -16px -48px; -} - -.ui-icon-arrowthick-1-e { - background-position: -32px -48px; -} - -.ui-icon-arrowthick-1-se { - background-position: -48px -48px; -} - -.ui-icon-arrowthick-1-s { - background-position: -64px -48px; -} - -.ui-icon-arrowthick-1-sw { - background-position: -80px -48px; -} - -.ui-icon-arrowthick-1-w { - background-position: -96px -48px; -} - -.ui-icon-arrowthick-1-nw { - background-position: -112px -48px; -} - -.ui-icon-arrowthick-2-n-s { - background-position: -128px -48px; -} - -.ui-icon-arrowthick-2-ne-sw { - background-position: -144px -48px; -} - -.ui-icon-arrowthick-2-e-w { - background-position: -160px -48px; -} - -.ui-icon-arrowthick-2-se-nw { - background-position: -176px -48px; -} - -.ui-icon-arrowthickstop-1-n { - background-position: -192px -48px; -} - -.ui-icon-arrowthickstop-1-e { - background-position: -208px -48px; -} - -.ui-icon-arrowthickstop-1-s { - background-position: -224px -48px; -} - -.ui-icon-arrowthickstop-1-w { - background-position: -240px -48px; -} - -.ui-icon-arrowreturnthick-1-w { - background-position: 0 -64px; -} - -.ui-icon-arrowreturnthick-1-n { - background-position: -16px -64px; -} - -.ui-icon-arrowreturnthick-1-e { - background-position: -32px -64px; -} - -.ui-icon-arrowreturnthick-1-s { - background-position: -48px -64px; -} - -.ui-icon-arrowreturn-1-w { - background-position: -64px -64px; -} - -.ui-icon-arrowreturn-1-n { - background-position: -80px -64px; -} - -.ui-icon-arrowreturn-1-e { - background-position: -96px -64px; -} - -.ui-icon-arrowreturn-1-s { - background-position: -112px -64px; -} - -.ui-icon-arrowrefresh-1-w { - background-position: -128px -64px; -} - -.ui-icon-arrowrefresh-1-n { - background-position: -144px -64px; -} - -.ui-icon-arrowrefresh-1-e { - background-position: -160px -64px; -} - -.ui-icon-arrowrefresh-1-s { - background-position: -176px -64px; -} - -.ui-icon-arrow-4 { - background-position: 0 -80px; -} - -.ui-icon-arrow-4-diag { - background-position: -16px -80px; -} - -.ui-icon-extlink { - background-position: -32px -80px; -} - -.ui-icon-newwin { - background-position: -48px -80px; -} - -.ui-icon-refresh { - background: none !important; - @extend .icon-ccw; - - &:before { - text-indent: 0; - position: absolute; - right: 4px; - top: 3px; - } -} - -.ui-icon-fullscreen { - background: none !important; - position: relative; - @extend .icon-fullscreen; - - &:before { - text-indent: 0; - position: absolute; - right: 2px; - top: 2px; - font-size: 10px; - } -} - -.ui-icon-exit-fullscreen { - background: none !important; - position: relative; - @extend .icon-fullscreen-exit; - - &:before { - text-indent: 0; - position: absolute; - right: 1px; - top: 2px; - } -} - -.ui-icon-shuffle { - background-position: -80px -80px; -} - -.ui-icon-transfer-e-w { - background-position: -96px -80px; -} - -.ui-icon-transferthick-e-w { - background-position: -112px -80px; -} - -.ui-icon-folder-collapsed { - background-position: 0 -96px; -} - -.ui-icon-folder-open { - background-position: -16px -96px; -} - -.ui-icon-document { - background-position: -32px -96px; -} - -.ui-icon-document-b { - background-position: -48px -96px; -} - -.ui-icon-note { - background-position: -64px -96px; -} - -.ui-icon-mail-closed { - background-position: -80px -96px; -} - -.ui-icon-mail-open { - background-position: -96px -96px; -} - -.ui-icon-suitcase { - background-position: -112px -96px; -} - -.ui-icon-comment { - background-position: -128px -96px; -} - -.ui-icon-person { - background-position: -144px -96px; -} - -.ui-icon-print { - background-position: -160px -96px; -} - -.ui-icon-trash { - background-position: -176px -96px; -} - -.ui-icon-locked { - background-position: -192px -96px; -} - -.ui-icon-unlocked { - background-position: -208px -96px; -} - -.ui-icon-bookmark { - background-position: -224px -96px; -} - -.ui-icon-tag { - background-position: -240px -96px; -} - -.ui-icon-home { - background-position: 0 -112px; -} - -.ui-icon-flag { - background-position: -16px -112px; -} - -.ui-icon-calendar { - background-position: -32px -112px; -} - -.ui-icon-cart { - background-position: -48px -112px; -} - -.ui-icon-pencil { - background-position: -64px -112px; -} - -.ui-icon-clock { - background-position: -80px -112px; -} - -.ui-icon-disk { - background-position: -96px -112px; -} - -.ui-icon-calculator { - background-position: -112px -112px; -} - -.ui-icon-zoomin { - background-position: -128px -112px; -} - -.ui-icon-zoomout { - background-position: -144px -112px; -} - -.ui-icon-search { - background-position: -160px -112px; -} - -.ui-icon-wrench { - background-position: -176px -112px; -} - -.ui-icon-gear { - background-position: -192px -112px; -} - -.ui-icon-heart { - background-position: -208px -112px; -} - -.ui-icon-star { - background-position: -224px -112px; -} - -.ui-icon-link { - background-position: -240px -112px; -} - -.ui-icon-cancel { - background-position: 0 -128px; -} - -.ui-icon-plus { - background-position: -16px -128px; -} - -.ui-icon-plusthick { - background-position: -32px -128px; -} - -.ui-icon-minus { - background-position: -48px -128px; -} - -.ui-icon-minusthick { - background-position: -64px -128px; -} - -.ui-icon-close { - background-position: -80px -128px; -} - -.ui-icon-closethick { - background: none !important; - position: relative; - @extend .icon-cross; - - &:before { - text-indent: 0; - position: absolute; - left: 1px; - top: 3px; - font-size: 16px; - } -} - -.ui-icon-key { - background-position: -112px -128px; -} - -.ui-icon-lightbulb { - background-position: -128px -128px; -} - -.ui-icon-scissors { - background-position: -144px -128px; -} - -.ui-icon-clipboard { - background-position: -160px -128px; -} - -.ui-icon-copy { - background-position: -176px -128px; -} - -.ui-icon-contact { - background-position: -192px -128px; -} - -.ui-icon-image { - background-position: -208px -128px; -} - -.ui-icon-video { - background-position: -224px -128px; -} - -.ui-icon-script { - background-position: -240px -128px; -} - -.ui-icon-alert { - background-position: 0 -144px; -} - -.ui-icon-info { - background-position: -16px -144px; -} - -.ui-icon-notice { - background-position: -32px -144px; -} - -.ui-icon-help { - background-position: -48px -144px; -} - -.ui-icon-check { - background-position: -64px -144px; -} - -.ui-icon-bullet { - background-position: -80px -144px; -} - -.ui-icon-radio-off { - background-position: -96px -144px; -} - -.ui-icon-radio-on { - background-position: -112px -144px; -} - -.ui-icon-pin-w { - background-position: -128px -144px; -} - -.ui-icon-pin-s { - background-position: -144px -144px; -} - -.ui-icon-play { - background-position: 0 -160px; -} - -.ui-icon-pause { - background-position: -16px -160px; -} - -.ui-icon-seek-next { - background-position: -32px -160px; -} - -.ui-icon-seek-prev { - background-position: -48px -160px; -} - -.ui-icon-seek-end { - background-position: -64px -160px; -} - -.ui-icon-seek-start { - background-position: -80px -160px; -} - -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ - -.ui-icon-seek-first { - background-position: -80px -160px; -} - -.ui-icon-stop { - background-position: -96px -160px; -} - -.ui-icon-eject { - background-position: -112px -160px; -} - -.ui-icon-volume-off { - background-position: -128px -160px; -} - -.ui-icon-volume-on { - background-position: -144px -160px; -} - -.ui-icon-power { - background-position: 0 -176px; -} - -.ui-icon-signal-diag { - background-position: -16px -176px; -} - -.ui-icon-signal { - background-position: -32px -176px; -} - -.ui-icon-battery-0 { - background-position: -48px -176px; -} - -.ui-icon-battery-1 { - background-position: -64px -176px; -} - -.ui-icon-battery-2 { - background-position: -80px -176px; -} - -.ui-icon-battery-3 { - background-position: -96px -176px; -} - -.ui-icon-circle-plus { - background-position: 0 -192px; -} - -.ui-icon-circle-minus { - background-position: -16px -192px; -} - -.ui-icon-circle-close { - background-position: -32px -192px; -} - -.ui-icon-circle-triangle-e { - background-position: -48px -192px; -} - -.ui-icon-circle-triangle-s { - background-position: -64px -192px; -} - -.ui-icon-circle-triangle-w { - background-position: -80px -192px; -} - -.ui-icon-circle-triangle-n { - background-position: -96px -192px; -} - -.ui-icon-circle-arrow-e { - background-position: -112px -192px; -} - -.ui-icon-circle-arrow-s { - background-position: -128px -192px; -} - -.ui-icon-circle-arrow-w { - background-position: -144px -192px; -} - -.ui-icon-circle-arrow-n { - background-position: -160px -192px; -} - -.ui-icon-circle-zoomin { - background-position: -176px -192px; -} - -.ui-icon-circle-zoomout { - background-position: -192px -192px; -} - -.ui-icon-circle-check { - background-position: -208px -192px; -} - -.ui-icon-circlesmall-plus { - background-position: 0 -208px; -} - -.ui-icon-circlesmall-minus { - background-position: -16px -208px; -} - -.ui-icon-circlesmall-close { - background-position: -32px -208px; -} - -.ui-icon-squaresmall-plus { - background-position: -48px -208px; -} - -.ui-icon-squaresmall-minus { - background-position: -64px -208px; -} - -.ui-icon-squaresmall-close { - background-position: -80px -208px; -} - -.ui-icon-grip-dotted-vertical { - background-position: 0 -224px; -} - -.ui-icon-grip-dotted-horizontal { - background-position: -16px -224px; -} - -.ui-icon-grip-solid-vertical { - background-position: -32px -224px; -} - -.ui-icon-grip-solid-horizontal { - background-position: -48px -224px; -} - -.ui-icon-gripsmall-diagonal-se { - background-position: -64px -224px; -} - -.ui-icon-grip-diagonal-se { - background-position: -80px -224px; -} - /* Misc visuals ----------------------------------*/ diff --git a/app/assets/stylesheets/alchemy/modules.scss b/app/assets/stylesheets/alchemy/modules.scss deleted file mode 100644 index 02179fae42..0000000000 --- a/app/assets/stylesheets/alchemy/modules.scss +++ /dev/null @@ -1,27 +0,0 @@ -span.module.dashboard { - background-position: -240px 0; -} - -span.module.pages { - background-position: -40px 0; -} - -span.module.library { - background-position: -120px 0; -} - -span.module.languages { - background-position: -200px 0; -} - -span.module.sites { - background-position: -316px 0; -} - -span.module.tags { - background-position: -280px 0; -} - -span.module.exit { - background-position: -160px 0; -} diff --git a/app/assets/stylesheets/alchemy/navigation.scss b/app/assets/stylesheets/alchemy/navigation.scss index 16830290f5..bd8e227d68 100644 --- a/app/assets/stylesheets/alchemy/navigation.scss +++ b/app/assets/stylesheets/alchemy/navigation.scss @@ -63,16 +63,18 @@ @include truncate($main-menu-entry-max-width); } - a { - text-shadow: $text-shadow-light; + img, .icon { + width: 24px; } - img, .module.icon { + img { border-style: none; height: 24px; - width: 24px; - display: inline-block; - vertical-align: middle; + vertical-align: -0.6em; + } + + .icon { + vertical-align: -0.15em; } } diff --git a/app/assets/stylesheets/alchemy/notices.scss b/app/assets/stylesheets/alchemy/notices.scss index 689d50cbdb..f507720989 100644 --- a/app/assets/stylesheets/alchemy/notices.scss +++ b/app/assets/stylesheets/alchemy/notices.scss @@ -16,10 +16,10 @@ h1, h2 { margin-top: 0 } - span.icon { + .icon { position: absolute; left: 8px; - top: 8px; + top: 10px; } &.footnote { diff --git a/app/assets/stylesheets/alchemy/search.scss b/app/assets/stylesheets/alchemy/search.scss index db55075dc3..d4c5235613 100644 --- a/app/assets/stylesheets/alchemy/search.scss +++ b/app/assets/stylesheets/alchemy/search.scss @@ -4,11 +4,13 @@ height: 29px; } -.search_field .icon, -.js_filter_field_box .icon { - position: absolute; - left: 8px; - top: 8px; +.search_field, +.js_filter_field_box { + .fa-search { + position: absolute; + left: 8px; + top: 9px; + } } .js_filter_field_box { @@ -36,14 +38,13 @@ .search_field_clear, .js_filter_field_clear { display: none; - width: 16px; - height: 16px; - line-height: 16px; - @extend .icon-cross; position: absolute; - right: 8px; top: 7px; - text-decoration: none !important; + right: 8px; + width: 16px; + height: 16px; + line-height: 14px; + text-align: center; } #tags_tag_list { diff --git a/app/assets/stylesheets/alchemy/selects.scss b/app/assets/stylesheets/alchemy/selects.scss index d190f3ade0..4c7e73f0a7 100644 --- a/app/assets/stylesheets/alchemy/selects.scss +++ b/app/assets/stylesheets/alchemy/selects.scss @@ -35,24 +35,22 @@ select { border-left: 1px solid #CACACA; b { - @extend .icon-menu; + @extend .fas; + @extend .fa-fw; background-image: none; + opacity: $addon-icon-opacity; &:before { - position: relative; - top: 5px; - left: 1px; + content: fa-content($fa-var-caret-down); + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } } } } - &.select2-dropdown-open { - .select2-choice .select2-arrow b { - background-position: -17px 0px; - } - } - &.medium { width: $medium-select-box-width; } @@ -114,14 +112,24 @@ select { background-image: none; border: 0 none; box-shadow: none; + color: $text-color; } .select2-search-choice-close { + @extend .fas; + @extend .fa-fw; left: auto; - right: 4px; - top: 6px; + right: 5px; + top: 5px; background: none; - @extend .icon-cross; + font-size: 11px; + text-decoration: none; + + &:before { + @extend .fa-xs; + content: fa-content($fa-var-times); + opacity: $addon-icon-opacity; + } &:hover { color: $text-color; @@ -140,10 +148,17 @@ select { } } -.tag_list { +.tag_list, .autocomplete_tag_list { .select2-container.select2-container-multi { .select2-search-choice { - @include tag-base($margin: 4px, $padding: 4px 24px); + padding: 0; + + div { + @include tag-base( + $padding: $default-padding 6*$default-padding $default-padding 3*$default-padding, + $margin: 0 + ); + } } } } diff --git a/app/assets/stylesheets/alchemy/sitemap.scss b/app/assets/stylesheets/alchemy/sitemap.scss index 183a55f01e..b444352d46 100644 --- a/app/assets/stylesheets/alchemy/sitemap.scss +++ b/app/assets/stylesheets/alchemy/sitemap.scss @@ -34,20 +34,6 @@ &.inactive { color: #656565; } - - :hover { - text-decoration: underline; - - &:after { - content: ''; - width: 16px; - height: 16px; - float: left; - margin-right: $default-margin; - background: image-url('alchemy/icons.png') -160px -168px; - margin-top: $default-margin; - } - } } .redirect_url { @@ -110,7 +96,6 @@ } .sitemap_sitename { - height: $sitemap-line-height; line-height: $sitemap-line-height; overflow: hidden; } @@ -119,11 +104,11 @@ @extend .left-rounded-border; position: relative; width: 32px; - height: $sitemap-line-height; - line-height: $sitemap-line-height - 2px; + line-height: $sitemap-line-height; float: left; padding: 0 2*$default-padding; background-color: rgba(#fff, .75); + text-align: center; } .sitemap_right_tools { @@ -163,37 +148,13 @@ &.sorting { padding-top: 100px; - .page.icon { cursor: move } - } - - .locked .page.icon { - background-position: -32px -40px; - } - - .page.icon.not-allowed { - &:after { - content: ''; - position: absolute; - bottom: -2px; - right: -1px; - width: 8px; - height: 8px; - background: image-url('alchemy/icons.png') -5px -77px; - } - } - - .page_status .icon { - vertical-align: middle; + .page_icon { cursor: move } } .page_folder { - @extend .icon; position: absolute; left: -23px; - top: 8px; - - &.collapsed { @extend .icon.expand.small } - &.folded { @extend .icon.collapse.small } + top: 0; } .placeholder { @@ -236,45 +197,12 @@ } } -#header .page_status_and_name .page_status { +.page_status_and_name .page_status { margin-left: 2px; - line-height: 1; - vertical-align: text-bottom; } .page_status { display: inline-block; - - .icon { - vertical-align: text-bottom; - - &.restricted { - background-position: -256px -39px; - } - - &.not_restricted { - background-position: -288px -39px; - opacity: 0.3; - } - - &.visible { - background-position: -128px -39px; - } - - &.not_visible { - background-position: -160px -39px; - opacity: 0.3; - } - - &.public { - background-position: -192px -39px; - } - - &.not_public { - background-position: -224px -39px; - opacity: 0.3; - } - } } #create_language_tree_form { @@ -318,7 +246,7 @@ margin: 0; padding: 0 24px 8px 8px; - .page.icon { cursor: default } + .page_icon { cursor: default } } } diff --git a/app/assets/stylesheets/alchemy/tables.scss b/app/assets/stylesheets/alchemy/tables.scss index fbbfb47331..7697745be6 100644 --- a/app/assets/stylesheets/alchemy/tables.scss +++ b/app/assets/stylesheets/alchemy/tables.scss @@ -15,10 +15,13 @@ table { &.wrap-text { white-space: normal !important; } -} -.list td:first-child, .list th:first-child { - border-left: 1px solid $medium-gray + &.icon { + width: 16px; + background-color: transparent; + padding: $default-padding; + text-align: center; + } } .list th { @@ -89,29 +92,9 @@ td.heading { text-decoration: underline; } -.list td.icon, .list th.icon { - background-color: $light-gray; - background-image: none; - border-left: 0 none; - padding: 0; - border-right: 1px solid $medium-gray; - text-align: center; - display: table-cell; // reset the .icon display: inline-block -} - .list .tools .icon, .list td.icon .icon { - display: inline-block; - vertical-align: middle; - width: 16px; - height: 16px; @extend .disable-user-select; - background-repeat: no-repeat; margin: 0 $default-margin; - text-indent: -100px; -} - -.list td.icon .icon { - margin: $default-margin 2*$default-margin 0; } .list tr:hover td { @@ -122,15 +105,6 @@ td, th { &.center, &.boolean { text-align: center; - - .icon.false { - @extend .false; - } - - .icon.true { - @extend .icon; - @extend .true; - } } &.right { diff --git a/app/assets/stylesheets/alchemy/toolbar.scss b/app/assets/stylesheets/alchemy/toolbar.scss index 609cd4e239..2a7974132b 100644 --- a/app/assets/stylesheets/alchemy/toolbar.scss +++ b/app/assets/stylesheets/alchemy/toolbar.scss @@ -20,24 +20,6 @@ margin: 3px $default-margin 0 0; padding: 0; } - - .button { - width: 25px; - height: 21px; - text-decoration: none; - float: right; - border-width: 0; - border-style: none; - font-size: 0; - padding: 0; - background-repeat: no-repeat; - background-position: 0 0; - - &:active { - text-decoration: none; - background-position: 0 -21px; - } - } } .toolbar_buttons { @@ -62,6 +44,15 @@ } } } + + .icon_button { + line-height: 26px; + + .icon { + font-size: 1.25em; + text-shadow: 0 0 1px rgba(#fff, 0.75); + } + } } .toolbar_spacer { @@ -79,24 +70,6 @@ #overlay_toolbar { @extend %gradiated-toolbar; border-bottom: $default-border; - - .button { - width: 25px; - height: 21px; - text-decoration: none; - float: right; - border-width: 0; - border-style: none; - font-size: 0; - padding: 0; - background-repeat: no-repeat; - background-position: 0 0; - - &:active { - text-decoration: none; - background-position: 0 -21px; - } - } } .button_group { diff --git a/app/assets/stylesheets/alchemy/trash.scss b/app/assets/stylesheets/alchemy/trash.scss index cfed2f18d6..143d6bdbd7 100644 --- a/app/assets/stylesheets/alchemy/trash.scss +++ b/app/assets/stylesheets/alchemy/trash.scss @@ -3,4 +3,6 @@ overflow-x: hidden; overflow-y: auto; margin-bottom: 1em; + + .ajax-folder { display: none } } diff --git a/app/assets/stylesheets/alchemy/upload.scss b/app/assets/stylesheets/alchemy/upload.scss index c11584b9b3..fe750d283c 100644 --- a/app/assets/stylesheets/alchemy/upload.scss +++ b/app/assets/stylesheets/alchemy/upload.scss @@ -129,11 +129,10 @@ } .progress-cancel { - @extend .icon-cross; - width: 16px; - height: 16px; position: absolute; top: 8px; right: 4px; + width: 16px; + height: 16px; } } diff --git a/app/helpers/alchemy/admin/base_helper.rb b/app/helpers/alchemy/admin/base_helper.rb index d5a6dd0de7..9085636fe0 100644 --- a/app/helpers/alchemy/admin/base_helper.rb +++ b/app/helpers/alchemy/admin/base_helper.rb @@ -105,7 +105,7 @@ def js_filter_field(items, options = {}) content_tag(:div, class: 'js_filter_field_box') do concat text_field_tag(nil, nil, options) concat render_icon(:search) - concat link_to('', '', class: 'js_filter_field_clear', title: Alchemy.t(:click_to_show_all)) + concat link_to(render_icon(:times, size: 'xs'), '', class: 'js_filter_field_clear', title: Alchemy.t(:click_to_show_all)) concat content_tag(:label, Alchemy.t(:search), for: options[:id]) end end @@ -191,7 +191,7 @@ def delete_button(url, options = {}, html_options = {}) options = { title: Alchemy.t('Delete'), message: Alchemy.t('Are you sure?'), - icon: 'destroy' + icon: :minus }.merge(options) button_with_confirm( render_icon(options[:icon]), @@ -227,7 +227,7 @@ def max_image_count # == Example # # <%= toolbar_button( - # icon: 'create', + # icon: :plus, # label: 'Create', # url: new_resource_path, # title: 'Create Resource', @@ -288,7 +288,7 @@ def toolbar_button(options = {}) # <% toolbar( # buttons: [ # { - # icon: 'create', + # icon: :plus, # label: label_title, # url: new_resource_path, # title: label_title, @@ -385,7 +385,7 @@ def alchemy_datepicker(object, method, html_options = {}) def render_hint_for(element) return unless element.has_hint? content_tag :span, class: 'hint-with-icon' do - render_icon(:questionmark) + + render_icon('question-circle') + content_tag(:span, element.hint.html_safe, class: 'hint-bubble') end end @@ -421,15 +421,15 @@ def link_url_regexp # # == Example # - # <%= hint_with_tooltip('Page layout is missing', class: 'warning icon') %> + # <%= hint_with_tooltip('Page layout is missing', icon: 'info') %> # # @param text [String] - The text displayed in the tooltip - # @param html_options [Hash] - Options passed to the wrapper `content_tag` + # @param icon: 'exclamation-triangle' [String] - Icon name # - def hint_with_tooltip(text, html_options = {}) - css_class = "#{html_options[:class]} with-hint" - content_tag :span, html_options.merge(class: css_class) do - content_tag(:span, text, class: 'hint-bubble') + # @return [String] + def hint_with_tooltip(text, icon: 'exclamation-triangle') + content_tag :span, class: 'hint-with-icon' do + render_icon(icon) + content_tag(:span, text, class: 'hint-bubble') end end @@ -437,8 +437,7 @@ def hint_with_tooltip(text, html_options = {}) # that explains the user that the page layout is missing def page_layout_missing_warning hint_with_tooltip( - Alchemy.t(:page_definition_missing), - class: 'inline warning icon' + Alchemy.t(:page_definition_missing) ) end diff --git a/app/helpers/alchemy/admin/contents_helper.rb b/app/helpers/alchemy/admin/contents_helper.rb index 66b5ff4956..bbdb7dfd3d 100644 --- a/app/helpers/alchemy/admin/contents_helper.rb +++ b/app/helpers/alchemy/admin/contents_helper.rb @@ -23,8 +23,7 @@ def render_content_name(content) warning("Content #{content.name} is missing its definition") icon = hint_with_tooltip( - Alchemy.t(:content_definition_missing), - class: 'inline warning icon' + Alchemy.t(:content_definition_missing) ) content_name = "#{icon} #{content_name}".html_safe diff --git a/app/helpers/alchemy/base_helper.rb b/app/helpers/alchemy/base_helper.rb index 31564aa7aa..81c4e124f0 100644 --- a/app/helpers/alchemy/base_helper.rb +++ b/app/helpers/alchemy/base_helper.rb @@ -20,9 +20,24 @@ def warning(message, text = nil) end end - # Returns an icon - def render_icon(icon_class) - content_tag('span', '', class: "icon #{icon_class}") + # Render a Fontawesome icon + # + # @param icon_class [String] Fontawesome icon name + # @param size: nil [String] Fontawesome icon size + # @param transform: nil [String] Fontawesome transform style + # + # @return [String] + def render_icon(icon_class, options = {}) + options = {style: 'solid'}.merge(options) + classes = [ + "icon fa-fw", + "fa-#{icon_class}", + "fa#{options[:style].first}", + options[:size] ? "fa-#{options[:size]}" : nil, + options[:transform] ? "fa-#{options[:transform]}" : nil, + options[:class] + ].compact + content_tag('i', nil, class: classes) end # Returns a div with an icon and the passed content @@ -36,10 +51,11 @@ def render_icon(icon_class) # <% end %> # def render_message(type = :info, msg = nil, &blk) + icon_class = message_icon_class(type) if block_given? - content_tag :div, render_icon(type) + capture(&blk), class: "#{type} message" + content_tag :div, render_icon(icon_class) + capture(&blk), class: "#{type} message" else - content_tag :div, render_icon(type) + msg, class: "#{type} message" + content_tag :div, render_icon(icon_class) + msg, class: "#{type} message" end end @@ -66,5 +82,19 @@ def page_or_find(page) page end end + + # Returns the FontAwesome icon name for given message type + # + # @param message_type [String] The message type. One of +warning+, +info+, +notice+, +error+ + # @return [String] The FontAwesome icon name + def message_icon_class(message_type) + case message_type.to_s + when 'warning', 'warn', 'alert' then 'exclamation' + when 'notice' then 'check' + when 'error' then 'bug' + else + message_type + end + end end end diff --git a/app/models/alchemy/attachment.rb b/app/models/alchemy/attachment.rb index 2939fb2f04..575e5f3503 100644 --- a/app/models/alchemy/attachment.rb +++ b/app/models/alchemy/attachment.rb @@ -98,30 +98,24 @@ def extension # def icon_css_class case file_mime_type - when "application/x-shockwave-flash" - then "flash" - when "image/x-psd" - then "psd" - when "text/plain" - then "text" - when "application/rtf" - then "rtf" when "application/pdf" - then "pdf" + then "file-pdf" when "application/msword" - then "word" - when "application/vnd.ms-excel" - then "excel" + then "file-word" + when *TEXT_FILE_TYPES + then "file-alt" + when *EXCEL_FILE_TYPES + then "file-excel" when *VCARD_FILE_TYPES - then "vcard" + then "address-card" when *ARCHIVE_FILE_TYPES - then "archive" + then "file-archive" when *AUDIO_FILE_TYPES - then "audio" + then "file-audio" when *IMAGE_FILE_TYPES - then "image" + then "file-image" when *VIDEO_FILE_TYPES - then "video" + then "file-video" else "file" end diff --git a/app/views/alchemy/admin/attachments/_attachment.html.erb b/app/views/alchemy/admin/attachments/_attachment.html.erb index 935d2a8ad9..84b6b99d39 100644 --- a/app/views/alchemy/admin/attachments/_attachment.html.erb +++ b/app/views/alchemy/admin/attachments/_attachment.html.erb @@ -1,6 +1,6 @@ - <%= render_icon attachment.icon_css_class %> + <%= render_icon attachment.icon_css_class, style: 'regular', size: 'lg' %> <% if can?(:show, attachment) %> @@ -26,7 +26,7 @@ <% if can?(:show, attachment) %> <%= link_to_dialog( - render_icon(:info), + render_icon('info-circle'), alchemy.admin_attachment_path(attachment), { title: attachment.name, @@ -38,13 +38,10 @@ ) %> <% end %> <% if can?(:download, attachment) %> - <%= link_to( - "", + <%= link_to render_icon(:download), alchemy.download_admin_attachment_path(attachment), title: Alchemy.t("download_file", filename: attachment.file_name), - class: "icon file_download", - target: "_blank" - ) %> + target: "_blank" %> <% end %> <% if can?(:edit, attachment) %> <%= render 'alchemy/admin/attachments/replace_button', @@ -53,8 +50,7 @@ file_attribute: 'file' %> <% end %> <% if can?(:destroy, attachment) %> - <%= link_to_confirm_dialog( - "", + <%= link_to_confirm_dialog render_icon(:minus), Alchemy.t(:confirm_to_delete_file), alchemy.admin_attachment_path( id: attachment, @@ -62,22 +58,16 @@ page: params[:page], per_page: params[:per_page] ), - { - class: 'icon file_delete', - title: Alchemy.t(:delete_file) - } - ) %> + title: Alchemy.t(:delete_file) %> <% end %> <% if can?(:edit, attachment) %> - <%= link_to_dialog("", + <%= link_to_dialog render_icon(:edit), alchemy.edit_admin_attachment_path(attachment, q: params[:q], page: params[:page]), { title: Alchemy.t(:rename_file), size: '500x250' }, - class: 'icon file_edit', - title: Alchemy.t(:rename_file) - ) %> + title: Alchemy.t(:rename_file) %> <% end %> diff --git a/app/views/alchemy/admin/attachments/_replace_button.html.erb b/app/views/alchemy/admin/attachments/_replace_button.html.erb index 9ff3696017..addaf6453d 100644 --- a/app/views/alchemy/admin/attachments/_replace_button.html.erb +++ b/app/views/alchemy/admin/attachments/_replace_button.html.erb @@ -4,7 +4,7 @@ name: "#{f.object_name}[#{file_attribute}]", id: "replace_#{dom_id(object)}" %> <%= label_tag "replace_#{dom_id(object)}", title: Alchemy.t(:replace_file) do %> - <%= render_icon :file_change %> + <%= render_icon :sync %> <% end %> <% end %> diff --git a/app/views/alchemy/admin/attachments/_tag_list.html.erb b/app/views/alchemy/admin/attachments/_tag_list.html.erb index 3fd2b78744..85a0885710 100644 --- a/app/views/alchemy/admin/attachments/_tag_list.html.erb +++ b/app/views/alchemy/admin/attachments/_tag_list.html.erb @@ -6,7 +6,7 @@ <% if params[:tagged_with].present? %> <%= link_to( - render_icon('delete-small') + Alchemy.t('Remove tag filter'), + render_icon(:times, size: 'xs') + Alchemy.t('Remove tag filter'), url_for(search_filter_params.except(:tagged_with)), remote: request.xhr?, class: 'button small with_icon' diff --git a/app/views/alchemy/admin/attachments/show.html.erb b/app/views/alchemy/admin/attachments/show.html.erb index 776c3b648e..fefd29153c 100644 --- a/app/views/alchemy/admin/attachments/show.html.erb +++ b/app/views/alchemy/admin/attachments/show.html.erb @@ -1,7 +1,7 @@

<%= @attachment.file_name %>

@@ -9,33 +9,32 @@

<%= alchemy.show_attachment_url(@attachment) %>

- <%= render_icon('clipboard full') %> + <%= render_icon(:clipboard, style: 'regular') %>

<%= alchemy.download_attachment_url(@attachment) %>

- <%= render_icon('clipboard full') %> + <%= render_icon(:clipboard, style: 'regular') %>
<% case @attachment.icon_css_class %> -<% when "image" %> +<% when "file-image" %>
<%= image_tag(alchemy.show_attachment_path(@attachment), class: "full_width") %>
-<% when "audio" %> +<% when "file-audio" %>
<%= audio_tag(alchemy.show_attachment_path(@attachment), preload: "none", controls: true, class: "full_width") %>
-<% when "video" %> +<% when "file-video" %>
<%= video_tag(alchemy.show_attachment_path(@attachment), preload: "metadata", controls: true, class: "full_width") %>
-<% when "archive", "file" %> -<% else %> +<% when "file-pdf" %> diff --git a/app/views/alchemy/admin/clipboard/clear.js.erb b/app/views/alchemy/admin/clipboard/clear.js.erb index a7ccdf8eca..8e94bc8b83 100644 --- a/app/views/alchemy/admin/clipboard/clear.js.erb +++ b/app/views/alchemy/admin/clipboard/clear.js.erb @@ -1,3 +1,3 @@ $("#clipboard_items").replaceWith("<%= j render_message { Alchemy.t('No items in your clipboard') } -%>"); -$('#clipboard_button .icon.clipboard').removeClass('full'); +$('#clipboard_button .icon').removeClass('fa-paste').addClass('fa-clipboard'); Alchemy.pleaseWaitOverlay(false); diff --git a/app/views/alchemy/admin/clipboard/index.html.erb b/app/views/alchemy/admin/clipboard/index.html.erb index 91d6170f83..7c2d2bc47d 100644 --- a/app/views/alchemy/admin/clipboard/index.html.erb +++ b/app/views/alchemy/admin/clipboard/index.html.erb @@ -8,14 +8,31 @@ <%- @clipboard_items.each do |item| -%> <% item_class = item.class.name.demodulize.underscore.pluralize %>
  • - <%= render_icon("clipboard_#{item_class}") %> - <%= item.class.to_s == 'Alchemy::Element' ? item.display_name_with_preview_text(60) : item.name %> - <%= link_to(render_icon('delete-small'), alchemy.remove_admin_clipboard_path(remarkable_type: item_class, remarkable_id: item.id), remote: true, method: 'delete', title: Alchemy.t('Remove item from clipboard')) %> + <% if item_class == 'pages' %> + <%= render_icon(:file, style: 'regular') %> + <%= item.name %> + <% else %> + <% if item.public? %> + <%= render_icon('window-maximize', style: 'regular', class: 'element') %> + <% else %> + <%= render_icon('window-close', class: 'element') %> + <% end %> + <%= item.display_name_with_preview_text(60) %> + <% end %> + + <%= link_to render_icon(:times, size: 'xs'), + alchemy.remove_admin_clipboard_path(remarkable_type: item_class, remarkable_id: item.id), + remote: true, method: 'delete', + title: Alchemy.t('Remove item from clipboard') %> +
  • <%- end -%>

    - <%= link_to_confirm_dialog(Alchemy.t('clear clipboard'), Alchemy.t('Do you really want to clear the clipboard?'), alchemy.clear_admin_clipboard_path(remarkable_type: params[:remarkable_type]), class: 'button') %> + <%= link_to_confirm_dialog Alchemy.t('clear clipboard'), + Alchemy.t('Do you really want to clear the clipboard?'), + alchemy.clear_admin_clipboard_path(remarkable_type: params[:remarkable_type]), + class: 'button' %>

    <%- end -%> diff --git a/app/views/alchemy/admin/clipboard/insert.js.erb b/app/views/alchemy/admin/clipboard/insert.js.erb index d8d186693a..94ecfa13a1 100644 --- a/app/views/alchemy/admin/clipboard/insert.js.erb +++ b/app/views/alchemy/admin/clipboard/insert.js.erb @@ -16,4 +16,4 @@ Alchemy.growl('<%= j Alchemy.t("item copied to clipboard", name: @item.class.to_ <% end -%> -$('#clipboard_button .icon.clipboard').addClass('full'); +$('#clipboard_button .icon').removeClass('fa-clipboard').addClass('fa-paste'); diff --git a/app/views/alchemy/admin/clipboard/remove.js.erb b/app/views/alchemy/admin/clipboard/remove.js.erb index a6f1d35aa8..0e42470a84 100644 --- a/app/views/alchemy/admin/clipboard/remove.js.erb +++ b/app/views/alchemy/admin/clipboard/remove.js.erb @@ -3,7 +3,7 @@ $("#clipboard_item_<%= @item.id -%>").remove(); Alchemy.growl('<%= Alchemy.t("item removed from clipboard", :name => @item.class.to_s == "Element" ? @item.display_name_with_preview_text : @item.name) -%>'); <%- if @clipboard.blank? -%> - $('#clipboard_button .icon.clipboard').removeClass('full'); + $('#clipboard_button .icon').removeClass('fa-paste').addClass('fa-clipboard'); $("#clipboard_items").replaceWith("<%= j render_message { Alchemy.t('No items in your clipboard') } %>"); <%- end -%> diff --git a/app/views/alchemy/admin/dashboard/_locked_pages.html.erb b/app/views/alchemy/admin/dashboard/_locked_pages.html.erb index 20a5f5e0fd..3af0b57450 100644 --- a/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +++ b/app/views/alchemy/admin/dashboard/_locked_pages.html.erb @@ -36,7 +36,7 @@ <% if current_alchemy_user.id == page.locked_by %> <%= form_tag(alchemy.unlock_admin_page_path(page, :redirect_to => alchemy.admin_dashboard_url)) do %> <% end %> <% end %> diff --git a/app/views/alchemy/admin/dashboard/index.html.erb b/app/views/alchemy/admin/dashboard/index.html.erb index 758c17b823..77d5c418a3 100644 --- a/app/views/alchemy/admin/dashboard/index.html.erb +++ b/app/views/alchemy/admin/dashboard/index.html.erb @@ -1,7 +1,7 @@ <%= toolbar( buttons: [ { - icon: 'info', + icon: 'info-circle', label: Alchemy.t(:info), url: alchemy.dashboard_info_path, title: Alchemy.t(:info), diff --git a/app/views/alchemy/admin/dashboard/info.html.erb b/app/views/alchemy/admin/dashboard/info.html.erb index f8c5fda5da..0ac3ec6eea 100644 --- a/app/views/alchemy/admin/dashboard/info.html.erb +++ b/app/views/alchemy/admin/dashboard/info.html.erb @@ -5,15 +5,15 @@ <% if can? :update_check, :alchemy_admin_dashboard %>

    - <%= render_icon('warning') %> + <%= render_icon(:exclamation) %> <%= Alchemy.t 'Update available' %> - <%= render_icon('ok') %> + <%= render_icon(:check) %> <%= Alchemy.t 'Alchemy is up to date' %> - <%= render_icon('warning') %> + <%= render_icon(:exclamation) %> <%= Alchemy.t 'Update status unavailable' %>

    @@ -37,7 +37,7 @@ jQuery File Upload
  • - Fugue Icons by Yusuke Kamiyamane + FontAwesome Icons
  • <% end %> diff --git a/app/views/alchemy/admin/elements/_add_picture.html.erb b/app/views/alchemy/admin/elements/_add_picture.html.erb index a65049031f..c5f127b865 100644 --- a/app/views/alchemy/admin/elements/_add_picture.html.erb +++ b/app/views/alchemy/admin/elements/_add_picture.html.erb @@ -1,6 +1,6 @@
    <%= link_to_dialog( - render_icon('add'), + render_icon(:plus), alchemy.admin_pictures_path( element_id: element, options: options diff --git a/app/views/alchemy/admin/elements/_element.html.erb b/app/views/alchemy/admin/elements/_element.html.erb index cc43dbd77d..f4fe538d07 100644 --- a/app/views/alchemy/admin/elements/_element.html.erb +++ b/app/views/alchemy/admin/elements/_element.html.erb @@ -39,7 +39,7 @@ <% end %> <% if element.expanded? %> - <%= link_to_dialog render_icon(:create) + Alchemy.t("New Element"), + <%= link_to_dialog render_icon(:plus, size: 'xs') + Alchemy.t("New Element"), alchemy.new_admin_element_path( parent_element_id: element.id, page_id: element.page.id diff --git a/app/views/alchemy/admin/elements/_element_header.html.erb b/app/views/alchemy/admin/elements/_element_header.html.erb index 72681ca20c..e8f4a0f61b 100644 --- a/app/views/alchemy/admin/elements/_element_header.html.erb +++ b/app/views/alchemy/admin/elements/_element_header.html.erb @@ -1,13 +1,13 @@
    - <%= render_icon(:element) %> <% if element.definition.blank? %> - <%= hint_with_tooltip( - Alchemy.t(:element_definition_missing), - class: 'warning icon' - ) %> + <%= hint_with_tooltip Alchemy.t(:element_definition_missing) %> <% else %> - <%= render_icon("element_#{element.public? ? 'public' : 'draft'}") %> + <% if element.public? %> + <%= render_icon('window-maximize', style: 'regular', class: 'element') %> + <% else %> + <%= render_icon('window-close', class: 'element') %> + <% end %> <% end %> @@ -17,12 +17,12 @@ <%= render_hint_for(element) unless element.trashed? %> - > - <%= link_to '', '#', { - 'data-element-toggle' => element.id, - class: element.folded? ? 'expand_element' : 'fold_element', - title: element.folded? ? Alchemy.t(:show_element_content) : Alchemy.t(:hide_element_content), - id: "element_#{element.id}_folder" - } %> - + <%= link_to '#', { + 'data-element-toggle' => element.id, + title: Alchemy.t(element.folded? ? :show_element_content : :hide_element_content), + id: "element_#{element.id}_folder", + class: "ajax-folder" + } do %> + <%= render_icon element.folded? ? 'plus-square' : 'minus-square' %> + <% end %>
    diff --git a/app/views/alchemy/admin/elements/_element_toolbar.html.erb b/app/views/alchemy/admin/elements/_element_toolbar.html.erb index 1caff80ba3..91cd712c0c 100644 --- a/app/views/alchemy/admin/elements/_element_toolbar.html.erb +++ b/app/views/alchemy/admin/elements/_element_toolbar.html.erb @@ -3,7 +3,7 @@
    <%= link_to( - render_icon(:element_copy), + render_icon(:clone), alchemy.insert_admin_clipboard_path(remarkable_type: remarkable_type, remarkable_id: element.id), remote: true, method: :post, @@ -23,7 +23,7 @@
    <%= link_to( - render_icon(:remove), + render_icon('trash-alt'), alchemy.trash_admin_element_path(element), method: :delete, class: "icon_button", @@ -33,7 +33,7 @@
    <%= link_to( - render_icon('element-hide'), + render_icon('eye-slash'), alchemy.publish_admin_element_path(id: element.id), remote: true, method: :patch, diff --git a/app/views/alchemy/admin/elements/publish.js.erb b/app/views/alchemy/admin/elements/publish.js.erb index d2ecec8e26..3088ff596e 100644 --- a/app/views/alchemy/admin/elements/publish.js.erb +++ b/app/views/alchemy/admin/elements/publish.js.erb @@ -1,14 +1,14 @@ var el = $('.element-editor[data-element-id="<%= @element.id %>"]'); -var icon = el.find('> .element-header > .element-handle .icon:not(.element)'); +var icon = el.find('> .element-header > .element-handle > .icon'); var label = el.find('> .element-toolbar .publish-element-button label'); <%- if @element.public? -%> - icon.removeClass('element_draft'); - icon.addClass('element_public'); + icon.removeClass('fa-window-close fas'); + icon.addClass('fa-window-maximize far'); label.text('<%= Alchemy.t(:hide_element) %>'); <%- else -%> - icon.removeClass('element_public'); - icon.addClass('element_draft'); + icon.removeClass('fa-window-maximize far'); + icon.addClass('fa-window-close fas'); label.text('<%= Alchemy.t(:show_element) %>'); <%- end -%> diff --git a/app/views/alchemy/admin/languages/_language.html.erb b/app/views/alchemy/admin/languages/_language.html.erb index 000d09d978..5a33f3dc39 100644 --- a/app/views/alchemy/admin/languages/_language.html.erb +++ b/app/views/alchemy/admin/languages/_language.html.erb @@ -21,28 +21,23 @@ <%= Alchemy::PageLayout.human_layout_name(language.page_layout) %> - <%= language.public? ? render_icon('true') : '' %> + <%= language.public? ? render_icon(:check) : nil %> - <%= language.default? ? render_icon('true') : '' %> + <%= language.default? ? render_icon(:check) : nil %> <%- if can?(:destroy, language) -%> <%= delete_button resource_path(language) %> <%- end -%> <%- if can?(:edit, language) -%> - <%= link_to_dialog( - '', + <%= link_to_dialog render_icon(:edit), alchemy.edit_admin_language_path(language), { title: Alchemy.t("Edit"), size: "430x415" }, - { - class: "icon edit", - title: Alchemy.t("Edit") - } - ) -%> + title: Alchemy.t("Edit") %> <%- end -%> diff --git a/app/views/alchemy/admin/languages/index.html.erb b/app/views/alchemy/admin/languages/index.html.erb index a92492e9f4..2b93d6dbc3 100644 --- a/app/views/alchemy/admin/languages/index.html.erb +++ b/app/views/alchemy/admin/languages/index.html.erb @@ -3,7 +3,7 @@ <% content_for :toolbar do %>
    <%= render 'alchemy/admin/partials/site_select' %> - <%= toolbar_button icon: 'create', + <%= toolbar_button icon: :plus, label: label_title, url: new_resource_path, title: label_title, diff --git a/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb b/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb index 68cf189678..1adf4b0205 100644 --- a/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +++ b/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb @@ -4,14 +4,14 @@ <% if layoutpage.definition.blank? %> <%= page_layout_missing_warning %> <% else %> - <%= render_icon(:page) %> + <% end %>
    <%- if can?(:configure, layoutpage) -%>
    <%= link_to_dialog( - render_icon('configure_page'), + render_icon(:cog), alchemy.edit_admin_layoutpage_path(layoutpage), { title: Alchemy.t(:edit_page_properties), @@ -24,7 +24,7 @@ <%- if can?(:copy, layoutpage) -%>
    <%= link_to( - render_icon("copy_page"), + render_icon(:copy), alchemy.insert_admin_clipboard_path( remarkable_type: layoutpage.class.name.demodulize.underscore.pluralize, remarkable_id: layoutpage.id @@ -38,7 +38,7 @@ <%- if can?(:destroy, layoutpage) -%>
    <%= link_to_confirm_dialog( - render_icon('delete_page'), + render_icon(:minus), Alchemy.t(:confirm_to_delete_page), url_for( controller: 'pages', diff --git a/app/views/alchemy/admin/layoutpages/index.html.erb b/app/views/alchemy/admin/layoutpages/index.html.erb index fcff34175b..43e7e1e0aa 100644 --- a/app/views/alchemy/admin/layoutpages/index.html.erb +++ b/app/views/alchemy/admin/layoutpages/index.html.erb @@ -3,7 +3,7 @@ <%= render 'alchemy/admin/partials/site_select' %> <%= render 'alchemy/admin/partials/language_tree_select' %> <%= toolbar_button( - icon: 'add_page', + icon: :plus, url: alchemy.new_admin_page_path(parent_id: @layout_root.id, layoutpage: true), hotkey: 'alt+n', dialog_options: { @@ -16,15 +16,16 @@ if_permitted_to: [:create, Alchemy::Page] ) %> <%= toolbar_button( - icon: "clipboard#{clipboard_empty?('pages') ? '' : ' full'}", + icon: clipboard_empty?('pages') ? 'clipboard' : 'paste', url: alchemy.admin_clipboard_path(remarkable_type: 'pages'), dialog_options: { title: Alchemy.t('Clipboard'), size: '380x270' }, title: Alchemy.t('Show clipboard'), - id: "clipboard_button", - label: Alchemy.t('Show clipboard') + link_options: {id: "clipboard_button"}, + label: Alchemy.t('Show clipboard'), + if_permitted_to: [:create, Alchemy::Page] ) %>
    <% end %> diff --git a/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb b/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb index 216d012e9a..9a1dfc516e 100644 --- a/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +++ b/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb @@ -5,7 +5,7 @@ edit_admin_legacy_page_url_path(legacy_page_url, page_id: @page.id), {size: '400x125', title: Alchemy.t('Edit link')}, {title: Alchemy.t(:edit)} %> - <%= link_to_confirm_dialog render_icon(:destroy), + <%= link_to_confirm_dialog render_icon(:minus), Alchemy.t('Are you sure?'), admin_legacy_page_url_path(legacy_page_url, page_id: @page.id), {title: Alchemy.t(:remove)} %> diff --git a/app/views/alchemy/admin/legacy_page_urls/_new.html.erb b/app/views/alchemy/admin/legacy_page_urls/_new.html.erb index 2fa6935105..8375948dbb 100644 --- a/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +++ b/app/views/alchemy/admin/legacy_page_urls/_new.html.erb @@ -12,7 +12,7 @@
    diff --git a/app/views/alchemy/admin/pages/_form.html.erb b/app/views/alchemy/admin/pages/_form.html.erb index 4063025aba..bce647e06b 100644 --- a/app/views/alchemy/admin/pages/_form.html.erb +++ b/app/views/alchemy/admin/pages/_form.html.erb @@ -40,7 +40,7 @@ hint: Alchemy.t('pages.update.comma_seperated') %> <% if @page.taggable? %> -
    +
    <%= f.label :tag_list %> <%= render 'alchemy/admin/partials/autocomplete_tag_list', f: f %>
    diff --git a/app/views/alchemy/admin/pages/_locked_page.html.erb b/app/views/alchemy/admin/pages/_locked_page.html.erb index 87bf6d5da4..db99caed43 100644 --- a/app/views/alchemy/admin/pages/_locked_page.html.erb +++ b/app/views/alchemy/admin/pages/_locked_page.html.erb @@ -7,7 +7,7 @@ <% end %> <%= form_tag(alchemy.unlock_admin_page_path(locked_page), remote: true) do %> <% end %>
    diff --git a/app/views/alchemy/admin/pages/_page.html.erb b/app/views/alchemy/admin/pages/_page.html.erb index 91d28dc5cf..1e93b487ba 100644 --- a/app/views/alchemy/admin/pages/_page.html.erb +++ b/app/views/alchemy/admin/pages/_page.html.erb @@ -4,34 +4,42 @@ <% unless @sorting %> {{#unless root_or_leaf}} <%= link_to( - '', alchemy.fold_admin_page_path(page), remote: true, method: :post, - class: "page_folder {{#if folded}}folded{{else}}collapsed{{/if}}", + class: "page_folder", title: "{{#if folded}}#{Alchemy.t('Show childpages')}{{else}}#{Alchemy.t('Hide childpages')}{{/if}}", id: "fold_button_{{id}}" - ) - %> + ) do %> + {{#if folded}} + + {{else}} + + {{/if}} + <% end %> {{/unless}} <% end %> {{#if definition_missing}} <%= page_layout_missing_warning %> {{else}} {{#if permissions.edit_content}} -
    - {{#if locked}} + {{#if locked}} + + {{locked_notice}} - {{/if}} -
    + + {{else}} + + {{/if}} {{else}} -
    + + <%= Alchemy.t('Your user role does not allow you to edit this page') %> -
    + {{/if}} {{/if}}
    @@ -40,7 +48,7 @@ {{#if permissions.info}}
    <%= link_to_dialog( - render_icon(:info), + render_icon('info-circle'), alchemy.info_admin_page_path(page), { title: Alchemy.t(:page_infos), @@ -50,7 +58,7 @@ {{else}}
    - <%= render_icon(:info) %> + <%= render_icon('info-circle') %> <%= Alchemy.t('Your user role does not allow you to edit this page') %> @@ -59,7 +67,7 @@ {{#if permissions.configure}}
    <%= link_to_dialog( - render_icon(:configure_page), + render_icon(:cog), alchemy.configure_admin_page_path(page), { title: Alchemy.t(:edit_page_properties), @@ -69,7 +77,7 @@ {{else}}
    - <%= render_icon(:configure_page) %> + <%= render_icon(:cog) %> <%= Alchemy.t('Your user role does not allow you to edit this page') %> @@ -78,7 +86,7 @@ {{#if permissions.copy}}
    <%= link_to( - render_icon(:copy_page), + render_icon(:copy), alchemy.insert_admin_clipboard_path( remarkable_type: page.class.name.demodulize.underscore.pluralize, remarkable_id: '__ID__', @@ -89,7 +97,7 @@ {{else}}
    - <%= render_icon(:copy_page) %> + <%= render_icon(:copy) %> <%= Alchemy.t('Your user role does not allow you to edit this page') %> @@ -98,7 +106,7 @@ {{#if permissions.destroy}}
    <%= link_to_confirm_dialog( - render_icon(:delete_page), + render_icon(:minus), Alchemy.t(:confirm_to_delete_page), url_for( controller: 'pages', @@ -109,7 +117,7 @@ {{else}}
    - <%= render_icon(:delete_page) %> + <%= render_icon(:minus) %> <%= Alchemy.t('Your user role does not allow you to edit this page') %> @@ -118,7 +126,7 @@ {{#if permissions.create}}
    <%= link_to_dialog( - render_icon(:add_page), + render_icon(:plus), alchemy.new_admin_page_path(parent_id: '__ID__').gsub('__ID__', '{{id}}'), { title: Alchemy.t(:create_page), @@ -129,7 +137,7 @@ {{else}}
    - <%= render_icon(:add_page) %> + <%= render_icon(:plus) %> <%= Alchemy.t('Your user role does not allow you to edit this page') %> @@ -139,15 +147,15 @@
    - + {{status_titles.public}} - + {{status_titles.visible}} - + {{status_titles.restricted}}
    diff --git a/app/views/alchemy/admin/pages/_page_for_links.html.erb b/app/views/alchemy/admin/pages/_page_for_links.html.erb index 7dd39b10f4..b648cbf712 100644 --- a/app/views/alchemy/admin/pages/_page_for_links.html.erb +++ b/app/views/alchemy/admin/pages/_page_for_links.html.erb @@ -1,12 +1,12 @@
  • - <%= render_icon(:page) %> +
    {{#unless redirects_to_external}}
    - <%= link_to render_icon(:element_window), + <%= link_to render_icon('th-list'), alchemy.list_admin_elements_path(page_id: '__ID__').gsub('__ID__', '{{id}}'), remote: true, data: { @@ -21,13 +21,13 @@
    - + - + - +
    {{urlname}}"> diff --git a/app/views/alchemy/admin/pages/_page_infos.html.erb b/app/views/alchemy/admin/pages/_page_infos.html.erb index 306d84a083..4482354206 100644 --- a/app/views/alchemy/admin/pages/_page_infos.html.erb +++ b/app/views/alchemy/admin/pages/_page_infos.html.erb @@ -1,12 +1,12 @@ - <%= render_icon page.public? ? :public : :not_public %> + <%= render_icon(:compass, transform: 'shrink-2', class: @page.public? ? nil : 'disabled') %> <%= page.status_title(:public) %> - <%= render_icon page.visible? ? :visible : :not_visible %> + <%= render_icon(:eye, transform: 'shrink-2', class: @page.visible? ? nil : 'disabled') %> <%= page.status_title(:visible) %> - <%= render_icon page.restricted? ? :restricted : :not_restricted %> + <%= render_icon(:lock, transform: 'shrink-2', class: @page.restricted? ? nil : 'disabled') %> <%= page.status_title(:restricted) %> diff --git a/app/views/alchemy/admin/pages/edit.html.erb b/app/views/alchemy/admin/pages/edit.html.erb index fa66cf06a2..499c853531 100644 --- a/app/views/alchemy/admin/pages/edit.html.erb +++ b/app/views/alchemy/admin/pages/edit.html.erb @@ -7,7 +7,7 @@
    <%= form_tag alchemy.unlock_admin_page_path(@page, redirect_to: @layoutpage ? alchemy.admin_layoutpages_path : alchemy.admin_pages_path), id: 'unlock_page_form' do %> <% end %> @@ -17,7 +17,7 @@
    <%= form_tag alchemy.visit_admin_page_path(@page), id: 'visit_page_form' do %> <% end %> @@ -25,7 +25,7 @@ <% end %>
    <%= link_to_dialog( - render_icon('info'), + render_icon('info-circle'), alchemy.info_admin_page_path(@page), { title: Alchemy.t(:page_infos), @@ -41,7 +41,7 @@
    <% if @page.layoutpage? %> <%= link_to_dialog( - render_icon('settings'), + render_icon(:cog), alchemy.edit_admin_layoutpage_path(@page), { title: Alchemy.t(:edit_page_properties), @@ -53,7 +53,7 @@ ) %> <% else %> <%= link_to_dialog( - render_icon('settings'), + render_icon(:cog), alchemy.configure_admin_page_path(@page), { title: Alchemy.t(:edit_page_properties), @@ -70,7 +70,7 @@
    <%= form_tag alchemy.publish_admin_page_path(@page), id: 'publish_page_form' do %> <%= button_tag class: 'icon_button', title: Alchemy.t(:explain_publishing) do %> - <%= render_icon('publish') %> + <%= render_icon('cloud-upload-alt') %> <% end %> <% end %> @@ -89,7 +89,7 @@
    - <%= link_to render_icon(:reload), '#', { + <%= link_to render_icon(:redo), nil, { title: Alchemy.t('Reload Preview'), class: 'icon_button', id: 'reload_preview_button' @@ -99,7 +99,7 @@
    - <%= link_to render_icon(:element_window), '', { + <%= link_to render_icon(:bars), nil, { title: Alchemy.t(:hide_elements), class: 'icon_button' } %> @@ -142,7 +142,7 @@ title: '<%= Alchemy.t("New Element") %>', label: '<%= Alchemy.t("New Element") %>', hotkey: 'alt+n', - iconClass: 'new_element', + iconClass: 'plus', onClick: function() { Alchemy.openDialog('<%= alchemy.new_admin_element_path(page_id: @page.id) %>', { title: '<%= Alchemy.t("New Element") %>', @@ -153,7 +153,7 @@ { title: '<%= Alchemy.t("Clipboard") %>', label: '<%= Alchemy.t("Show clipboard") %>', - iconClass: 'clipboard<%= clipboard_empty?("elements") ? "" : " full" %>', + iconClass: '<%= clipboard_empty?("elements") ? "clipboard" : "paste" %>', buttonId: 'clipboard_button', onClick: function() { Alchemy.openDialog('<%= alchemy.admin_clipboard_path(remarkable_type: "elements") %>', { @@ -165,7 +165,7 @@ { title: '<%= Alchemy.t("Show trash") %>', label: '<%= Alchemy.t("Show trash") %>', - iconClass: 'trash<%= trash_empty?("elements") ? "" : " full" %>', + iconClass: 'trash-alt<%= trash_empty?("elements") ? "" : " full" %>', buttonId: 'element_trash_button', onClick: function() { Alchemy.TrashWindow.open(<%= @page.id %>, '<%= Alchemy.t("Trash") %>'); diff --git a/app/views/alchemy/admin/pages/index.html.erb b/app/views/alchemy/admin/pages/index.html.erb index 29ff5d1d6e..346b2d92dd 100644 --- a/app/views/alchemy/admin/pages/index.html.erb +++ b/app/views/alchemy/admin/pages/index.html.erb @@ -5,7 +5,7 @@ <% if can?(:flush, Alchemy::Page) %>
    <%= link_to( - render_icon('flush'), + render_icon(:eraser), alchemy.flush_admin_pages_path, :remote => true, :method => :post, @@ -18,7 +18,7 @@ <% if can?(:sort, Alchemy::Page) %>
    <%= link_to( - render_icon(:sort), + render_icon(:random), alchemy.sort_admin_pages_path, method: :get, class: 'icon_button', @@ -29,7 +29,7 @@ <% end %>
    <%= link_to_dialog( - render_icon("clipboard#{clipboard_empty?('pages') ? '' : ' full'}"), + render_icon(clipboard_empty?('pages') ? :clipboard : :paste), alchemy.admin_clipboard_path(:remarkable_type => 'pages'), { :title => Alchemy.t('Clipboard'), @@ -47,7 +47,7 @@ placeholder: Alchemy.t(:search), id: nil %> <%= render_icon :search %> - <%= link_to('', '#', { + <%= link_to(render_icon(:times, size: 'xs'), '#', { class: "js_filter_field_clear", title: Alchemy.t(:click_to_show_all) }) %> diff --git a/app/views/alchemy/admin/pages/info.html.erb b/app/views/alchemy/admin/pages/info.html.erb index 979888246d..23df444c28 100644 --- a/app/views/alchemy/admin/pages/info.html.erb +++ b/app/views/alchemy/admin/pages/info.html.erb @@ -26,15 +26,15 @@

    - <%= render_icon @page.public? ? :public : :not_public %> + <%= render_icon(:compass, transform: 'shrink-2', class: @page.public? ? nil : 'disabled') %> <%= @page.status_title(:public) %> - <%= render_icon @page.visible? ? :visible : :not_visible %> + <%= render_icon(:eye, transform: 'shrink-2', class: @page.visible? ? nil : 'disabled') %> <%= @page.status_title(:visible) %> - <%= render_icon @page.restricted? ? :restricted : :not_restricted %> + <%= render_icon(:lock, transform: 'shrink-2', class: @page.restricted? ? nil : 'disabled') %> <%= @page.status_title(:restricted) %>

    diff --git a/app/views/alchemy/admin/pages/sort.html.erb b/app/views/alchemy/admin/pages/sort.html.erb index 3b3867505f..f011458fea 100644 --- a/app/views/alchemy/admin/pages/sort.html.erb +++ b/app/views/alchemy/admin/pages/sort.html.erb @@ -1,7 +1,7 @@ <% content_for :toolbar do %>
    <%= link_to alchemy.admin_pages_path, class: 'icon_button' do %> - <%= render_icon :back %> + <%= render_icon 'angle-double-left' %> <% end %>
    diff --git a/app/views/alchemy/admin/pages/unlock.js.erb b/app/views/alchemy/admin/pages/unlock.js.erb index 69b10b6297..52f4f5fbcf 100644 --- a/app/views/alchemy/admin/pages/unlock.js.erb +++ b/app/views/alchemy/admin/pages/unlock.js.erb @@ -1,8 +1,6 @@ (function($) { $('#locked_page_<%= @page.id -%>').remove(); - $('#page_<%= @page.id -%> .sitemap_page').removeClass('locked'); - <%- if @pages_locked_by_user.blank? -%> - $('#locked_pages label').hide(); - <%- end -%> + $('#page_<%= @page.id -%> .sitemap_left_images .with-hint').remove(); + $('#page_<%= @page.id -%> .sitemap_left_images').append('<%= j render_icon(:file, style: 'regular', size: 'lg') %>'); Alchemy.growl('<%= flash[:notice] -%>'); })(jQuery); diff --git a/app/views/alchemy/admin/partials/_flash.html.erb b/app/views/alchemy/admin/partials/_flash.html.erb index bc2002e2cf..7a94803849 100644 --- a/app/views/alchemy/admin/partials/_flash.html.erb +++ b/app/views/alchemy/admin/partials/_flash.html.erb @@ -1,4 +1,4 @@
    - <%= render_icon(flash_type.to_s) %> + <%= render_icon message_icon_class(flash_type) %> <%= message %>
    diff --git a/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb b/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb index 2ceb5798c0..2bc05d0bc8 100644 --- a/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +++ b/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb @@ -4,9 +4,9 @@ <% if navigation["image"] %> <%= image_tag(navigation["image"]) %> <% elsif navigation["icon"] %> - "> + fa-lg fa-fw"> <% else %> - + <% end %> <% end %> diff --git a/app/views/alchemy/admin/partials/_remote_search_form.html.erb b/app/views/alchemy/admin/partials/_remote_search_form.html.erb index ba14f128a5..6016fdbc23 100644 --- a/app/views/alchemy/admin/partials/_remote_search_form.html.erb +++ b/app/views/alchemy/admin/partials/_remote_search_form.html.erb @@ -11,7 +11,7 @@ placeholder: Alchemy.t(:search), class: 'search_input_field', id: nil %> - <%= link_to '', url_for( + <%= link_to render_icon(:times, size: 'xs'), url_for( action: 'index', element_id: @element.blank? ? '' : @element.id, content_id: @content.blank? ? '' : @content.id, diff --git a/app/views/alchemy/admin/partials/_search_form.html.erb b/app/views/alchemy/admin/partials/_search_form.html.erb index 49e3f73e18..380e27d03b 100644 --- a/app/views/alchemy/admin/partials/_search_form.html.erb +++ b/app/views/alchemy/admin/partials/_search_form.html.erb @@ -9,7 +9,7 @@ <% local_assigns.fetch(:additional_query_fields, []).each do |field| %> <%= f.hidden_field field %> <% end %> - <%= link_to '', url, + <%= link_to render_icon(:times, size: 'xs'), url, class: 'search_field_clear', id: 'search_field_clear', title: Alchemy.t(:click_to_show_all), diff --git a/app/views/alchemy/admin/pictures/_archive.html.erb b/app/views/alchemy/admin/pictures/_archive.html.erb index 4460b82580..341335762e 100644 --- a/app/views/alchemy/admin/pictures/_archive.html.erb +++ b/app/views/alchemy/admin/pictures/_archive.html.erb @@ -12,14 +12,14 @@

    <%= Alchemy.t(:edit_selected_pictures) %>

    <%= link_to( - render_icon('edit') + Alchemy.t("Edit"), + render_icon(:edit, size: 'xs') + Alchemy.t("Edit"), edit_multiple_admin_pictures_path, class: 'button with_icon', title: Alchemy.t('Edit multiple pictures'), id: 'edit_multiple_pictures', style: 'float: none' ) %> - <%= button_tag render_icon('destroy') + Alchemy.t("Delete"), 'data-alchemy-confirm' => { + <%= button_tag render_icon(:minus, size: 'xs') + Alchemy.t("Delete"), 'data-alchemy-confirm' => { title: Alchemy.t(:please_confirm), message: Alchemy.t(:confirm_to_delete_images_from_server), ok_label: Alchemy.t("Yes"), @@ -27,7 +27,7 @@ }.to_json, class: 'button with_icon' %>  <%= Alchemy.t(:or) %>  <%= link_to( - render_icon('delete-small') + Alchemy.t("Clear selection"), + render_icon(:times, size: 'xs') + Alchemy.t("Clear selection"), admin_pictures_path( q: params[:q], tagged_with: params[:tagged_with], diff --git a/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb b/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb index 5b32773989..3e77aff867 100644 --- a/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +++ b/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb @@ -17,7 +17,7 @@
    <%= link_to( - render_icon('zoom-out'), + render_icon('search-minus'), alchemy.admin_pictures_path({ size: "small", content_id: @content, @@ -34,7 +34,7 @@
    <%= link_to( - render_icon('zoom-equal'), + render_icon('search'), alchemy.admin_pictures_path({ size: "medium", content_id: @content, @@ -51,7 +51,7 @@
    <%= link_to( - render_icon('zoom-in'), + render_icon('search-plus'), alchemy.admin_pictures_path({ size: "large", content_id: @content, diff --git a/app/views/alchemy/admin/pictures/_picture.html.erb b/app/views/alchemy/admin/pictures/_picture.html.erb index 97c38e9d7f..29789114fa 100644 --- a/app/views/alchemy/admin/pictures/_picture.html.erb +++ b/app/views/alchemy/admin/pictures/_picture.html.erb @@ -5,7 +5,7 @@ <% if picture.deletable? && can?(:destroy, picture) %> <%= link_to_confirm_dialog( - "", + render_icon(:minus), Alchemy.t(:confirm_to_delete_image_from_server), alchemy.admin_picture_path( id: picture, diff --git a/app/views/alchemy/admin/pictures/_tag_list.html.erb b/app/views/alchemy/admin/pictures/_tag_list.html.erb index 03b2080119..0d554dc4fd 100644 --- a/app/views/alchemy/admin/pictures/_tag_list.html.erb +++ b/app/views/alchemy/admin/pictures/_tag_list.html.erb @@ -6,7 +6,7 @@ <% if params[:tagged_with].present? %> <%= link_to( - render_icon('delete-small') + Alchemy.t('Remove tag filter'), + render_icon(:times, size: 'xs') + Alchemy.t('Remove tag filter'), url_for(search_filter_params.except(:tagged_with)), remote: request.xhr?, class: 'button small with_icon' diff --git a/app/views/alchemy/admin/pictures/index.html.erb b/app/views/alchemy/admin/pictures/index.html.erb index 1104f1c398..f96b0f42da 100644 --- a/app/views/alchemy/admin/pictures/index.html.erb +++ b/app/views/alchemy/admin/pictures/index.html.erb @@ -13,7 +13,7 @@
    <%= link_to( - render_icon('zoom-out'), + render_icon('search-minus'), alchemy.admin_pictures_path(size: "small", q: params[:q]), title: Alchemy.t(:small_thumbnails), class: "icon_button" @@ -21,7 +21,7 @@
    <%= link_to( - render_icon('zoom-equal'), + render_icon('search'), alchemy.admin_pictures_path(size: "medium", q: params[:q]), title: Alchemy.t(:medium_thumbnails), class: "icon_button" @@ -29,7 +29,7 @@
    <%= link_to( - render_icon('zoom-in'), + render_icon('search-plus'), alchemy.admin_pictures_path(size: "large", q: params[:q]), title: Alchemy.t(:big_thumbnails), class: "icon_button" @@ -41,8 +41,8 @@
    <%= link_to( - render_icon('select_all'), - '', + render_icon('check-square', style: 'regular'), + nil, id: 'select_all_pictures', class: 'icon_button', 'data-alchemy-hotkey' => 'alt+a' diff --git a/app/views/alchemy/admin/pictures/show.html.erb b/app/views/alchemy/admin/pictures/show.html.erb index 2ea499eb92..471ee2d5c7 100644 --- a/app/views/alchemy/admin/pictures/show.html.erb +++ b/app/views/alchemy/admin/pictures/show.html.erb @@ -14,7 +14,7 @@ ), class: "previous-picture", remote: true do %> - + <% end %> <% end %> <% if @next %> @@ -28,7 +28,7 @@ ), class: "next-picture", remote: true do %> - + <% end %> <% end %>
    @@ -39,5 +39,5 @@
    - +
    diff --git a/app/views/alchemy/admin/resources/_resource.html.erb b/app/views/alchemy/admin/resources/_resource.html.erb index 889befaf76..4b9d88c910 100644 --- a/app/views/alchemy/admin/resources/_resource.html.erb +++ b/app/views/alchemy/admin/resources/_resource.html.erb @@ -2,29 +2,24 @@ <% resource_handler.attributes.each do |attribute| %> <% if attribute[:type] == :boolean %> - <%= render_icon !!resource.send(attribute[:name]) %> + <%= resource.public_send(attribute[:name]) ? render_icon(:check) : nil %> <% else %> <%= render_attribute(resource, attribute) %> <% end %> <% end %> - <% if can?(:destroy, resource) %> + <% if can?(:destroy, resource) %> <%= delete_button resource_path(resource, current_location_params) %> - <% end %> - <% if can?(:edit, resource) %> - <%= link_to_dialog( - '', + <% end %> + <% if can?(:edit, resource) %> + <%= link_to_dialog render_icon(:edit), edit_resource_path(resource, current_location_params), { title: Alchemy.t('Edit'), size: resource_window_size }, - { - class: 'icon edit', - title: Alchemy.t('Edit') - } - ) %> - <% end %> + title: Alchemy.t('Edit') %> + <% end %> diff --git a/app/views/alchemy/admin/resources/_tag_list.html.erb b/app/views/alchemy/admin/resources/_tag_list.html.erb index eefbae19d5..01579717f8 100644 --- a/app/views/alchemy/admin/resources/_tag_list.html.erb +++ b/app/views/alchemy/admin/resources/_tag_list.html.erb @@ -6,7 +6,7 @@ <% if params[:tagged_with].present? %> <%= link_to( - render_icon('delete-small') + Alchemy.t('Remove tag filter'), + render_icon(:times, size: 'xs') + Alchemy.t('Remove tag filter'), url_for(search_filter_params.except(:tagged_with)), remote: request.xhr?, class: 'button small with_icon' diff --git a/app/views/alchemy/admin/resources/index.html.erb b/app/views/alchemy/admin/resources/index.html.erb index d89028bbae..ba059a5547 100644 --- a/app/views/alchemy/admin/resources/index.html.erb +++ b/app/views/alchemy/admin/resources/index.html.erb @@ -3,7 +3,7 @@ <% toolbar( buttons: [ { - icon: 'create', + icon: :plus, label: label_title, url: new_resource_path, title: label_title, diff --git a/app/views/alchemy/admin/sites/index.html.erb b/app/views/alchemy/admin/sites/index.html.erb index 1d29af5545..55a14d4fd3 100644 --- a/app/views/alchemy/admin/sites/index.html.erb +++ b/app/views/alchemy/admin/sites/index.html.erb @@ -3,7 +3,7 @@ <% toolbar( buttons: [ { - icon: 'create', + icon: :plus, label: label_title, url: new_resource_path, title: label_title, diff --git a/app/views/alchemy/admin/tags/_tag.html.erb b/app/views/alchemy/admin/tags/_tag.html.erb index 8bc4871bbc..08d253b627 100644 --- a/app/views/alchemy/admin/tags/_tag.html.erb +++ b/app/views/alchemy/admin/tags/_tag.html.erb @@ -6,25 +6,21 @@ <%= tag.taggings.count %> - <% if can?(:destroy, Alchemy::Tag) %> + <% if can?(:destroy, Alchemy::Tag) %> <%= delete_button admin_tag_path(tag), { message: Alchemy.t(:do_you_really_want_to_delete_this_tag?), - icon: 'tag_delete', + icon: :minus, title: Alchemy.t(:delete_tag) } %> - <% end %> - <% if can?(:edit, Alchemy::Tag) %> - <%= link_to_dialog '', + <% end %> + <% if can?(:edit, Alchemy::Tag) %> + <%= link_to_dialog render_icon(:edit), edit_admin_tag_path(tag), { title: Alchemy.t(:edit_tag), size: '360x410' }, - { - title: Alchemy.t(:edit_tag), - class: 'icon tag_edit' - } - %> - <% end %> + title: Alchemy.t(:edit_tag) %> + <% end %> diff --git a/app/views/alchemy/admin/tags/index.html.erb b/app/views/alchemy/admin/tags/index.html.erb index 13961c08ed..ecddf7eed6 100644 --- a/app/views/alchemy/admin/tags/index.html.erb +++ b/app/views/alchemy/admin/tags/index.html.erb @@ -1,7 +1,7 @@ <%= toolbar( buttons: [ { - icon: 'tag_add', + icon: :plus, label: Alchemy.t('New Tag'), url: alchemy.new_admin_tag_path, title: Alchemy.t('New Tag'), diff --git a/app/views/alchemy/base/500.html.erb b/app/views/alchemy/base/500.html.erb index 52d97a46bb..86a91c7d78 100644 --- a/app/views/alchemy/base/500.html.erb +++ b/app/views/alchemy/base/500.html.erb @@ -1,7 +1,7 @@ <%= toolbar( buttons: [ { - icon: 'back', + icon: 'angle-double-left', url: request.referer || alchemy.admin_dashboard_path, label: Alchemy.t(:back), title: Alchemy.t(:back), diff --git a/app/views/alchemy/essences/_essence_file_editor.html.erb b/app/views/alchemy/essences/_essence_file_editor.html.erb index cc997cebd5..0232fee6d9 100644 --- a/app/views/alchemy/essences/_essence_file_editor.html.erb +++ b/app/views/alchemy/essences/_essence_file_editor.html.erb @@ -1,4 +1,4 @@ -<% dialog_link = link_to_dialog('', +<% dialog_link = link_to_dialog render_icon(:file, style: 'regular'), alchemy.admin_attachments_path( content_id: content.id, only: content.settings_value(:only, local_assigns.fetch(:options, {})), @@ -10,29 +10,26 @@ size: '780x585', padding: false }, - { - class: 'icon assign_file', - title: Alchemy.t(:assign_file) - } -) %> + class: 'file_icon', + title: Alchemy.t(:assign_file) %>
    <%= content_label(content) %>
    -
    <% if content.ingredient %> - <%= render_icon(content.ingredient.icon_css_class) %> +
    + <%= render_icon(content.ingredient.icon_css_class) %> +
    <% else %> <%= dialog_link %> <% end %> -
    <%= content.ingredient.try(:name) || ("←" + Alchemy.t(:assign_file_from_archive)).html_safe %>
    <%= dialog_link %> - <%= link_to_dialog '', + <%= link_to_dialog render_icon(:edit), alchemy.edit_admin_essence_file_path( id: content.essence.id, options: local_assigns.fetch(:options, {}) @@ -41,7 +38,6 @@ title: Alchemy.t(:edit_file_properties), size: '400x215' }, - class: 'edit_file', title: Alchemy.t(:edit_file_properties) %>
    <%= hidden_field_tag content.form_field_name(:attachment_id), diff --git a/app/views/alchemy/essences/_essence_picture_editor.html.erb b/app/views/alchemy/essences/_essence_picture_editor.html.erb index 2ea2842503..a0133ca116 100644 --- a/app/views/alchemy/essences/_essence_picture_editor.html.erb +++ b/app/views/alchemy/essences/_essence_picture_editor.html.erb @@ -7,13 +7,13 @@
    <% if options[:grouped] %> - <%= link_to_confirm_dialog "", Alchemy.t(:confirm_to_delete_image), + <%= link_to_confirm_dialog render_icon(:minus), Alchemy.t(:confirm_to_delete_image), alchemy.admin_essence_picture_path( id: content, options: options ), {title: Alchemy.t(:delete_image)} %> <% else %> - <%= link_to '', '#', + <%= link_to render_icon(:times), '#', onclick: "return Alchemy.removePicture('##{content.form_field_id(:picture_id)}');" %> <% end %> @@ -21,10 +21,12 @@
    <%- end -%>
    -
    +
    <%- if content.ingredient -%> - <%= essence_picture_thumbnail(content, options) %> - <%= hidden_field_tag content.form_field_name(:picture_id), content.ingredient.id %> + <%= essence_picture_thumbnail(content, options) %> + <%= hidden_field_tag content.form_field_name(:picture_id), content.ingredient.id %> + <% else %> + <%= render_icon(:image, style: 'regular') %> <% end %>
    diff --git a/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb b/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb index 0de28876e7..80bfc36d81 100644 --- a/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +++ b/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb @@ -15,7 +15,7 @@ <%= render_icon('crop') %> <%- end -%> -<%= link_to_dialog render_icon('swap_picture'), +<%= link_to_dialog render_icon('file-image', style: 'regular'), alchemy.admin_pictures_path( element_id: content.element, content_id: content.id, diff --git a/app/views/layouts/alchemy/admin.html.erb b/app/views/layouts/alchemy/admin.html.erb index 3d3c639ced..8430b65535 100644 --- a/app/views/layouts/alchemy/admin.html.erb +++ b/app/views/layouts/alchemy/admin.html.erb @@ -57,14 +57,14 @@
    <% if current_alchemy_user %> <%= link_to_dialog( - "#{render_icon('exit module')}".html_safe, + "#{render_icon('sign-out-alt', size: 'lg', class: 'module')}".html_safe, alchemy.leave_admin_path, { size: "300x155", title: Alchemy.t("Leave Alchemy") }, {'data-alchemy-hotkey' => 'alt+q'}) %> <% else %> <%= link_to(alchemy.root_path) do %> - + <% end %> <% end %> diff --git a/config/alchemy/modules.yml b/config/alchemy/modules.yml index 9491a16891..92558be773 100644 --- a/config/alchemy/modules.yml +++ b/config/alchemy/modules.yml @@ -16,7 +16,7 @@ name: 'modules.pages' controller: 'alchemy/admin/pages' action: index - icon: pages + icon: file-alt sub_navigation: - name: 'modules.pages' controller: 'alchemy/admin/pages' @@ -35,7 +35,7 @@ name: 'modules.languages' controller: 'alchemy/admin/languages' action: index - icon: languages + icon: flag - name: sites engine_name: alchemy @@ -44,7 +44,7 @@ name: 'modules.sites' controller: 'alchemy/admin/sites' action: index - icon: sites + icon: bullseye - name: tags engine_name: alchemy @@ -62,7 +62,7 @@ controller: 'alchemy/admin/pictures' action: index name: 'modules.library' - icon: library + icon: archive sub_navigation: - name: 'modules.pictures' controller: 'alchemy/admin/pictures' diff --git a/lib/alchemy/filetypes.rb b/lib/alchemy/filetypes.rb index 3016476fd2..947b55de4c 100644 --- a/lib/alchemy/filetypes.rb +++ b/lib/alchemy/filetypes.rb @@ -16,7 +16,8 @@ module Filetypes "image/jpeg", "image/png", "image/svg+xml", - "image/tiff" + "image/tiff", + "image/x-psd" ] VCARD_FILE_TYPES = ["text/x-vcard", "application/vcard"] @@ -30,5 +31,16 @@ module Filetypes "video/x-msvideo", "video/x-ms-wmv" ] + + TEXT_FILE_TYPES = [ + "application/rtf", + "text/plain" + ] + + EXCEL_FILE_TYPES = [ + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.ms-excel", + "text/csv" + ] end end diff --git a/spec/features/admin/attachment_assignment_overlay_spec.rb b/spec/features/admin/attachment_assignment_overlay_spec.rb index b8efa18e24..2a41c4c325 100644 --- a/spec/features/admin/attachment_assignment_overlay_spec.rb +++ b/spec/features/admin/attachment_assignment_overlay_spec.rb @@ -14,7 +14,7 @@ scenario "shows only the attachments tagged with the selected tag" do visit alchemy.edit_admin_page_path(a_page) - within "#element_area div[data-element-name='download'] .file_icon" do + within "div[data-element-name='download'] .essence_file_tools" do click_on "Assign a file" end diff --git a/spec/features/admin/page_editing_feature_spec.rb b/spec/features/admin/page_editing_feature_spec.rb index 0fcbe98f17..866519f474 100644 --- a/spec/features/admin/page_editing_feature_spec.rb +++ b/spec/features/admin/page_editing_feature_spec.rb @@ -143,7 +143,7 @@ context "when updating the name" do it "saves the name" do visit alchemy.admin_pages_path - find(".sitemap_page[name='#{a_page.name}'] .icon.configure_page").click + find(".sitemap_page[name='#{a_page.name}'] .icon.fa-cog").click expect(page).to have_selector(".alchemy-dialog-overlay.open") within(".alchemy-dialog.modal") do find("input#page_name").set("name with some %!x^)'([@!{}]|/?\:# characters") diff --git a/spec/features/admin/resources_integration_spec.rb b/spec/features/admin/resources_integration_spec.rb index 2458080a77..c9b347a548 100644 --- a/spec/features/admin/resources_integration_spec.rb +++ b/spec/features/admin/resources_integration_spec.rb @@ -14,7 +14,7 @@ def reload_event_class describe "index view" do it "should have a button for creating a new resource items" do visit '/admin/events' - expect(page).to have_selector('#toolbar div.button_with_label a.icon_button span.icon.create') + expect(page).to have_selector('#toolbar div.button_with_label a.icon_button .icon.fa-plus') end it "should list existing items" do diff --git a/spec/helpers/alchemy/admin/base_helper_spec.rb b/spec/helpers/alchemy/admin/base_helper_spec.rb index 4910415f3c..098aa5f06e 100644 --- a/spec/helpers/alchemy/admin/base_helper_spec.rb +++ b/spec/helpers/alchemy/admin/base_helper_spec.rb @@ -241,5 +241,23 @@ module Alchemy end end end + + describe '#hint_with_tooltip' do + subject { helper.hint_with_tooltip('My hint') } + + it 'renders a warning icon with hint text wrapped in tooltip', :aggregate_failures do + is_expected.to have_css 'span.hint-with-icon i.fa-exclamation-triangle' + is_expected.to have_css 'span.hint-with-icon span.hint-bubble' + is_expected.to have_content 'My hint' + end + + context 'with icon set to info' do + subject { helper.hint_with_tooltip('My hint', icon: 'info') } + + it 'renders an info icon instead' do + is_expected.to have_css 'i.fa-info' + end + end + end end end diff --git a/spec/helpers/alchemy/admin/contents_helper_spec.rb b/spec/helpers/alchemy/admin/contents_helper_spec.rb index cac66d8e3d..05e765b739 100644 --- a/spec/helpers/alchemy/admin/contents_helper_spec.rb +++ b/spec/helpers/alchemy/admin/contents_helper_spec.rb @@ -30,7 +30,7 @@ before { expect(content).to receive(:definition).and_return({}) } it "renders a warning with tooltip" do - is_expected.to have_selector('span.warning.with-hint .hint-bubble') + is_expected.to have_selector('.hint-with-icon .hint-bubble') is_expected.to have_content('Intro') end end diff --git a/spec/helpers/alchemy/admin/pages_helper_spec.rb b/spec/helpers/alchemy/admin/pages_helper_spec.rb index 17f06ddce2..72cf16c0c4 100644 --- a/spec/helpers/alchemy/admin/pages_helper_spec.rb +++ b/spec/helpers/alchemy/admin/pages_helper_spec.rb @@ -18,7 +18,7 @@ end end - context 'when page is persited' do + context 'when page is persisted' do before { page.save! } context 'with page layout existing' do @@ -33,7 +33,7 @@ end it 'displays icon with warning and tooltip' do - is_expected.to have_selector '.warning.icon.with-hint .hint-bubble' + is_expected.to have_selector '.hint-with-icon .hint-bubble' end end end diff --git a/spec/helpers/alchemy/base_helper_spec.rb b/spec/helpers/alchemy/base_helper_spec.rb index 03cc1f29ed..d8148e8b86 100644 --- a/spec/helpers/alchemy/base_helper_spec.rb +++ b/spec/helpers/alchemy/base_helper_spec.rb @@ -2,16 +2,58 @@ module Alchemy describe BaseHelper do + describe "#render_icon" do + subject { helper.render_icon(:info, options) } + + let(:options) { Hash.new } + + it 'renders a solid fontawesome icon with fixed width' do + is_expected.to have_css 'i.icon.fa-info.fas.fa-fw' + end + + context 'with style set to regular' do + let(:options) { {style: 'regular'} } + + it 'renders a regular fontawesome icon' do + is_expected.to have_css 'i.far' + end + end + + context 'with size set to xs' do + let(:options) { {size: 'xs'} } + + it 'renders a extra small fontawesome icon' do + is_expected.to have_css 'i.fa-xs' + end + end + + context 'with transform option given' do + let(:options) { {transform: 'flip-horizontal'} } + + it 'renders a transformed fontawesome icon' do + is_expected.to have_css 'i.fa-flip-horizontal' + end + end + + context 'with class option given' do + let(:options) { {class: 'disabled'} } + + it 'renders a fontawesome icon with additional css class' do + is_expected.to have_css 'i.disabled' + end + end + end + describe "#render_message" do context "if no argument is passed" do it "should render a div with an info icon and the given content" do - expect(helper.render_message{ content_tag(:p, "my notice") }).to match(/
    <\/span>

    my notice/) + expect(helper.render_message{ content_tag(:p, "my notice") }).to match(/

    <\/i>

    my notice/) end end context "if an argument is passed" do it "should render the passed argument as the css classname for the icon container" do - expect(helper.render_message(:error){ content_tag(:p, "my notice") }).to match(/

    /) + expect(helper.render_message(:error){ content_tag(:p, "my notice") }).to match(/
    /) end end end @@ -40,5 +82,37 @@ module Alchemy end end end + + describe '#message_icon_class' do + subject { helper.message_icon_class(message_type) } + + context 'when `warning`, `warn` or `alert` message type is given' do + %w(warning warn alert).each do |type| + let(:message_type) { type } + + it { is_expected.to eq 'exclamation' } + end + end + + context 'when `notice` message type is given' do + let(:message_type) { 'notice' } + + it { is_expected.to eq 'check' } + end + + context 'when `error` message type is given' do + let(:message_type) { 'error' } + + it { is_expected.to eq 'bug' } + end + + context 'when unknown message type is given' do + let(:message_type) { 'info' } + + it 'returns the given message type as icon name' do + is_expected.to eq 'info' + end + end + end end end diff --git a/spec/models/alchemy/attachment_spec.rb b/spec/models/alchemy/attachment_spec.rb index 1bf2e81cca..68e3265f43 100644 --- a/spec/models/alchemy/attachment_spec.rb +++ b/spec/models/alchemy/attachment_spec.rb @@ -100,122 +100,91 @@ module Alchemy end end - describe 'css classes' do + describe '#icon_css_class' do + subject { attachment.icon_css_class } + context 'mp3 file' do - subject { stub_model(Attachment, file_mime_type: 'audio/mpeg') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'audio/mpeg') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("audio") } - end + it { is_expected.to eq("file-audio") } end context 'video file' do - subject { stub_model(Attachment, file_mime_type: 'video/mpeg') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'video/mpeg') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("video") } - end + it { is_expected.to eq("file-video") } end context 'png file' do - subject { stub_model(Attachment, file_mime_type: 'image/png') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'image/png') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("image") } - end + it { is_expected.to eq("file-image") } end - context 'vcf file' do - subject { stub_model(Attachment, file_mime_type: 'application/vcard') } + context 'vcard file' do + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/vcard') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("vcard") } - end + it { is_expected.to eq("address-card") } end context 'zip file' do - subject { stub_model(Attachment, file_mime_type: 'application/zip') } - - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("archive") } - end - end - - context 'flash file' do - subject { stub_model(Attachment, file_mime_type: 'application/x-shockwave-flash') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/zip') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("flash") } - end + it { is_expected.to eq("file-archive") } end context 'photoshop file' do - subject { stub_model(Attachment, file_mime_type: 'image/x-psd') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'image/x-psd') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("psd") } - end + it { is_expected.to eq("file-image") } end context 'text file' do - subject { stub_model(Attachment, file_mime_type: 'text/plain') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'text/plain') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("text") } - end + it { is_expected.to eq("file-alt") } end context 'rtf file' do - subject { stub_model(Attachment, file_mime_type: 'application/rtf') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/rtf') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("rtf") } - end + it { is_expected.to eq("file-alt") } end context 'pdf file' do - subject { stub_model(Attachment, file_mime_type: 'application/pdf') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/pdf') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("pdf") } - end + it { is_expected.to eq("file-pdf") } end context 'word file' do - subject { stub_model(Attachment, file_mime_type: 'application/msword') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/msword') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("word") } - end + it { is_expected.to eq("file-word") } end context 'excel file' do - subject { stub_model(Attachment, file_mime_type: 'application/vnd.ms-excel') } + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/vnd.ms-excel') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("excel") } - end + it { is_expected.to eq("file-excel") } + end + + context 'xlsx file' do + let(:attachment) { stub_model(Attachment, file_mime_type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') } + + it { is_expected.to eq("file-excel") } + end + + context 'csv file' do + let(:attachment) { stub_model(Attachment, file_mime_type: 'text/csv') } + + it { is_expected.to eq("file-excel") } end context 'unknown file' do - subject { stub_model(Attachment, file_mime_type: '') } + let(:attachment) { stub_model(Attachment, file_mime_type: '') } - describe '#icon_css_class' do - subject { super().icon_css_class } - it { is_expected.to eq("file") } - end + it { is_expected.to eq("file") } end end diff --git a/spec/views/essences/essence_file_editor_spec.rb b/spec/views/essences/essence_file_editor_spec.rb index fe3941f560..74ca5b2042 100644 --- a/spec/views/essences/essence_file_editor_spec.rb +++ b/spec/views/essences/essence_file_editor_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'alchemy/essences/_essence_editor_view' do +describe 'alchemy/essences/_essence_file_editor' do let(:attachment) { build_stubbed(:alchemy_attachment) } let(:essence) { build_stubbed(:alchemy_essence_file, attachment: attachment) } let(:content) { build_stubbed(:alchemy_content, essence: essence) } @@ -25,24 +25,32 @@ end it "renders a link to open the attachment library overlay" do - is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}']") + within '.essence_file_tools' do + is_expected.to have_selector("a[href='/admin/attachments?content_id=#{content.id}']") + end end it "renders a link to edit the essence" do - is_expected.to have_selector("a.edit_file[href='/admin/essence_files/#{essence.id}/edit']") + within '.essence_file_tools' do + is_expected.to have_selector("a[href='/admin/essence_files/#{essence.id}/edit']") + end end context 'with content settings `only`' do it "renders a link to open the attachment library overlay with only pdfs" do - expect(content).to receive(:settings).at_least(:once).and_return({only: 'pdf'}) - is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}&only=pdf']") + within '.essence_file_tools' do + expect(content).to receive(:settings).at_least(:once).and_return({only: 'pdf'}) + is_expected.to have_selector("a[href='/admin/attachments?content_id=#{content.id}&only=pdf']") + end end end context 'with content settings `except`' do it "renders a link to open the attachment library overlay without pdfs" do - expect(content).to receive(:settings).at_least(:once).and_return({except: 'pdf'}) - is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}&except=pdf']") + within '.essence_file_tools' do + expect(content).to receive(:settings).at_least(:once).and_return({except: 'pdf'}) + is_expected.to have_selector("a[href='/admin/attachments?content_id=#{content.id}&except=pdf']") + end end end end diff --git a/spec/views/essences/essence_picture_editor_spec.rb b/spec/views/essences/essence_picture_editor_spec.rb index 3db68e7425..9df5f970ca 100644 --- a/spec/views/essences/essence_picture_editor_spec.rb +++ b/spec/views/essences/essence_picture_editor_spec.rb @@ -37,8 +37,8 @@ context "with settings[:deletable] being nil" do it 'should not render a button to link and unlink the picture' do - is_expected.to have_selector("a .icon.link") - is_expected.to have_selector("a .icon.unlink") + is_expected.to have_selector("a .icon.fa-link") + is_expected.to have_selector("a .icon.fa-unlink") end end @@ -48,13 +48,13 @@ end it 'should not render a button to link and unlink the picture' do - is_expected.to_not have_selector("a .icon.link") - is_expected.to_not have_selector("a .icon.unlink") + is_expected.to_not have_selector("a .icon.fa-link") + is_expected.to_not have_selector("a .icon.fa-unlink") end it 'but renders the disabled link and unlink icons' do - is_expected.to have_selector(".icon.link") - is_expected.to have_selector(".icon.unlink") + is_expected.to have_selector(".icon.fa-link") + is_expected.to have_selector(".icon.fa-unlink") end end @@ -74,7 +74,7 @@ end it 'shows disabled cropping link' do - is_expected.to have_selector('a.disabled .icon.crop') + is_expected.to have_selector('a.disabled .icon.fa-crop') end end end diff --git a/vendor/assets/fonts/fa-regular-400.eot b/vendor/assets/fonts/fa-regular-400.eot new file mode 100644 index 0000000000..acd09edf88 Binary files /dev/null and b/vendor/assets/fonts/fa-regular-400.eot differ diff --git a/vendor/assets/fonts/fa-regular-400.svg b/vendor/assets/fonts/fa-regular-400.svg new file mode 100644 index 0000000000..fdaf256dd8 --- /dev/null +++ b/vendor/assets/fonts/fa-regular-400.svg @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/fonts/fa-regular-400.ttf b/vendor/assets/fonts/fa-regular-400.ttf new file mode 100644 index 0000000000..1a09a74feb Binary files /dev/null and b/vendor/assets/fonts/fa-regular-400.ttf differ diff --git a/vendor/assets/fonts/fa-regular-400.woff b/vendor/assets/fonts/fa-regular-400.woff new file mode 100644 index 0000000000..c76f98251d Binary files /dev/null and b/vendor/assets/fonts/fa-regular-400.woff differ diff --git a/vendor/assets/fonts/fa-regular-400.woff2 b/vendor/assets/fonts/fa-regular-400.woff2 new file mode 100644 index 0000000000..4cd7573f57 Binary files /dev/null and b/vendor/assets/fonts/fa-regular-400.woff2 differ diff --git a/vendor/assets/fonts/fa-solid-900.eot b/vendor/assets/fonts/fa-solid-900.eot new file mode 100644 index 0000000000..6154a9c68c Binary files /dev/null and b/vendor/assets/fonts/fa-solid-900.eot differ diff --git a/vendor/assets/fonts/fa-solid-900.svg b/vendor/assets/fonts/fa-solid-900.svg new file mode 100644 index 0000000000..516446ccba --- /dev/null +++ b/vendor/assets/fonts/fa-solid-900.svg @@ -0,0 +1,1413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/fonts/fa-solid-900.ttf b/vendor/assets/fonts/fa-solid-900.ttf new file mode 100644 index 0000000000..e2b9c72d1f Binary files /dev/null and b/vendor/assets/fonts/fa-solid-900.ttf differ diff --git a/vendor/assets/fonts/fa-solid-900.woff b/vendor/assets/fonts/fa-solid-900.woff new file mode 100644 index 0000000000..1730c2d2dc Binary files /dev/null and b/vendor/assets/fonts/fa-solid-900.woff differ diff --git a/vendor/assets/fonts/fa-solid-900.woff2 b/vendor/assets/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000000..f652aabc74 Binary files /dev/null and b/vendor/assets/fonts/fa-solid-900.woff2 differ diff --git a/vendor/assets/stylesheets/fontawesome/_animated.scss b/vendor/assets/stylesheets/fontawesome/_animated.scss new file mode 100644 index 0000000000..7c7c0e173c --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_animated.scss @@ -0,0 +1,20 @@ +// Animated Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + animation: fa-spin 1s infinite steps(8); +} + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} diff --git a/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss b/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss new file mode 100644 index 0000000000..c8c4274c40 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss @@ -0,0 +1,20 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + border: solid .08em $fa-border-color; + border-radius: .1em; + padding: .2em .25em .15em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} diff --git a/vendor/assets/stylesheets/fontawesome/_core.scss b/vendor/assets/stylesheets/fontawesome/_core.scss new file mode 100644 index 0000000000..7fd37f855c --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_core.scss @@ -0,0 +1,16 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} diff --git a/vendor/assets/stylesheets/fontawesome/_fixed-width.scss b/vendor/assets/stylesheets/fontawesome/_fixed-width.scss new file mode 100644 index 0000000000..5b33eb49aa --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + text-align: center; + width: (20em / 16); +} diff --git a/vendor/assets/stylesheets/fontawesome/_icons.scss b/vendor/assets/stylesheets/fontawesome/_icons.scss new file mode 100644 index 0000000000..bfd2b4694d --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_icons.scss @@ -0,0 +1,792 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); } +.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); } +.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); } +.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); } +.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); } +.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); } +.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); } +.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); } +.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); } +.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); } +.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); } +.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); } +.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); } +.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); } +.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); } +.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); } +.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); } +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); } +.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); } +.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); } +.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); } +.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); } +.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); } +.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); } +.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); } +.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); } +.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); } +.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); } +.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); } +.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); } +.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); } +.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); } +.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); } +.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); } +.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); } +.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); } +.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); } +.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); } +.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); } +.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); } +.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); } +.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); } +.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); } +.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); } +.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); } +.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); } +.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); } +.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); } +.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); } +.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); } +.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); } +.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); } +.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); } +.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); } +.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); } +.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); } +.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); } +.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); } +.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); } +.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); } +.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); } +.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); } +.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); } +.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); } +.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); } +.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); } +.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); } +.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); } +.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); } +.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); } +.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); } +.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); } +.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); } +.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); } +.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); } +.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); } +.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); } +.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); } +.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); } +.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); } +.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); } +.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); } +.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); } +.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); } +.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); } +.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); } +.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); } +.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); } +.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); } +.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); } +.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); } +.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); } +.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); } +.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); } +.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); } +.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); } +.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); } +.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); } +.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); } +.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); } +.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); } +.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); } +.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); } +.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); } +.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); } +.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); } +.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); } +.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); } +.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); } +.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); } +.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); } +.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); } +.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); } +.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); } +.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); } +.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); } +.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); } +.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); } +.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); } +.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); } +.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); } +.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); } +.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); } +.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); } +.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); } +.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); } +.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); } +.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); } +.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); } +.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); } +.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); } +.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); } +.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); } +.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); } +.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); } +.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); } +.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); } +.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); } +.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); } +.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); } +.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); } +.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); } +.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); } +.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); } +.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); } +.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); } +.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); } +.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); } +.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); } +.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); } +.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); } +.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); } +.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); } +.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); } +.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); } +.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); } +.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); } +.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); } +.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); } +.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); } +.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); } +.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); } +.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); } +.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); } +.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); } +.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); } +.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); } +.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); } +.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); } +.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); } +.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); } +.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); } +.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); } +.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); } +.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); } +.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); } +.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); } +.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); } +.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); } +.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); } +.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); } +.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); } +.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); } +.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); } +.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); } +.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); } +.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); } +.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); } +.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); } +.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); } +.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); } +.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); } +.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); } +.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); } +.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); } +.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); } +.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); } +.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); } +.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); } +.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); } +.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); } +.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); } +.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); } +.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); } +.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); } +.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); } +.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); } +.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); } +.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); } +.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); } +.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); } +.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); } +.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); } +.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); } +.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); } +.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); } +.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); } +.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); } +.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); } +.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); } +.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); } +.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); } +.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); } +.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); } +.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); } +.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); } +.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); } +.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); } +.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); } +.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); } +.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); } +.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); } +.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); } +.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); } +.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); } +.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); } +.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); } +.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); } +.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); } +.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); } +.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); } +.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); } +.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); } +.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); } +.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } +.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); } +.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); } +.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); } +.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); } +.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); } +.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); } +.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); } +.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); } +.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); } +.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); } +.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); } +.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); } +.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); } +.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); } +.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); } +.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); } +.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); } +.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); } +.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); } +.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); } +.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); } +.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); } +.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); } +.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); } +.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); } +.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); } +.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); } +.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); } +.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); } +.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); } +.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); } +.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); } +.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); } +.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); } +.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); } +.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); } +.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); } +.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); } +.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); } +.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); } +.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); } +.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); } +.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); } +.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); } +.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); } +.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); } +.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); } +.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); } +.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); } +.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); } +.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); } +.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); } +.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); } +.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); } +.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); } +.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); } +.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); } +.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); } +.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); } +.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); } +.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); } +.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); } +.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); } +.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); } +.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); } +.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); } +.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); } +.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); } +.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); } +.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); } +.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); } +.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); } +.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); } +.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); } +.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); } +.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); } +.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); } +.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); } +.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); } +.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); } +.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); } +.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); } +.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); } +.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); } +.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); } +.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); } +.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); } +.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); } +.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); } +.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); } +.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); } +.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); } +.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); } +.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); } +.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); } +.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); } +.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); } +.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); } +.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); } +.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); } +.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); } +.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); } +.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); } +.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); } +.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); } +.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); } +.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); } +.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); } +.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); } +.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); } +.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); } +.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); } +.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); } +.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); } +.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); } +.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); } +.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); } +.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); } +.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); } +.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); } +.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); } +.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); } +.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); } +.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); } +.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); } +.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); } +.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); } +.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); } +.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } +.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); } +.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); } +.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); } +.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); } +.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); } +.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); } +.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); } +.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); } +.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); } +.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); } +.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); } +.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); } +.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); } +.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); } +.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); } +.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); } +.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); } +.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); } +.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); } +.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); } +.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); } +.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); } +.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); } +.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); } +.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); } +.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); } +.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); } +.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); } +.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); } +.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); } +.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); } +.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); } +.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); } +.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); } +.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); } +.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); } +.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); } +.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); } +.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); } +.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); } +.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); } +.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); } +.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); } +.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); } +.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); } +.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); } +.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); } +.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); } +.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); } +.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); } +.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); } +.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); } +.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); } +.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); } +.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); } +.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); } +.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); } +.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); } +.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); } +.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); } +.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); } +.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); } +.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); } +.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); } +.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); } +.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); } +.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); } +.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); } +.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); } +.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); } +.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); } +.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); } +.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); } +.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); } +.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); } +.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); } +.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); } +.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); } +.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); } +.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); } +.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); } +.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); } +.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); } +.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); } +.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); } +.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); } +.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); } +.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); } +.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); } +.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); } +.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); } +.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); } +.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); } +.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); } +.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); } +.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); } +.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); } +.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); } +.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); } +.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); } +.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); } +.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); } +.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); } +.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); } +.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); } +.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); } +.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); } +.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); } +.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); } +.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); } +.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); } +.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); } +.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); } +.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); } +.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); } +.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); } +.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); } +.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); } +.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); } +.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); } +.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); } +.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); } +.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); } +.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); } +.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); } +.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); } +.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); } +.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); } +.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); } +.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); } +.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); } +.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); } +.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); } +.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); } +.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); } +.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); } +.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); } +.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); } +.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); } +.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); } +.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); } +.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); } +.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); } +.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); } +.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); } +.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); } +.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); } +.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); } +.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); } +.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); } +.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); } +.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); } +.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); } +.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); } +.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); } +.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); } +.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); } +.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); } +.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); } +.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); } +.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); } +.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); } +.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); } +.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); } +.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); } +.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); } +.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); } +.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); } +.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); } +.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); } +.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); } +.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); } +.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); } +.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); } +.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); } +.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); } +.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); } +.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); } +.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); } +.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); } +.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); } +.#{$fa-css-prefix}-rendact:before { content: fa-content($fa-var-rendact); } +.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); } +.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); } +.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); } +.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); } +.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); } +.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); } +.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); } +.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); } +.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); } +.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); } +.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); } +.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); } +.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); } +.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); } +.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); } +.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); } +.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); } +.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); } +.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); } +.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); } +.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); } +.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); } +.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); } +.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); } +.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); } +.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); } +.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); } +.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); } +.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); } +.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); } +.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); } +.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); } +.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); } +.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); } +.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); } +.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); } +.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); } +.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); } +.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); } +.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); } +.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); } +.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); } +.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); } +.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); } +.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); } +.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); } +.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); } +.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); } +.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); } +.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); } +.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); } +.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); } +.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); } +.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); } +.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); } +.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); } +.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); } +.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); } +.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); } +.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); } +.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); } +.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); } +.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); } +.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); } +.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); } +.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); } +.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); } +.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); } +.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); } +.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); } +.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); } +.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); } +.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); } +.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); } +.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); } +.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); } +.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); } +.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); } +.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); } +.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); } +.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); } +.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); } +.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); } +.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); } +.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); } +.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); } +.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); } +.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); } +.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); } +.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); } +.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); } +.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); } +.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); } +.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); } +.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); } +.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); } +.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); } +.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); } +.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); } +.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); } +.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); } +.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); } +.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); } +.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); } +.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); } +.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); } +.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); } +.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); } +.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); } +.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); } +.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); } +.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); } +.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); } +.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); } +.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); } +.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); } +.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); } +.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); } +.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); } +.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); } +.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); } +.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); } +.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); } +.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); } +.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); } +.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); } +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); } +.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); } +.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); } +.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); } +.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); } +.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); } +.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); } +.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); } +.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); } +.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); } +.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); } +.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); } +.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); } +.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); } +.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); } +.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); } +.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); } +.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); } +.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); } +.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); } +.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); } +.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); } +.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); } +.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); } +.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); } +.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); } +.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); } +.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); } +.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); } +.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); } +.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); } +.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); } +.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); } +.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); } +.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); } +.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); } +.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); } +.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); } +.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); } +.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); } +.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); } +.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); } +.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); } +.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); } +.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); } +.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); } +.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); } +.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); } +.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); } +.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); } +.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); } +.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); } +.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); } +.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); } +.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); } +.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); } +.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); } +.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); } +.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); } +.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); } +.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); } +.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); } +.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); } +.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); } +.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); } +.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); } +.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); } +.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); } +.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); } +.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); } +.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); } +.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); } +.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); } +.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); } +.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); } +.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); } +.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); } +.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); } +.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); } +.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); } +.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); } +.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); } +.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); } +.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); } +.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); } +.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); } +.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); } +.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); } +.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); } +.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); } +.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); } +.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); } +.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); } +.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); } +.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); } +.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); } +.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); } +.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); } +.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); } +.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); } +.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); } +.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); } +.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); } +.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); } diff --git a/vendor/assets/stylesheets/fontawesome/_larger.scss b/vendor/assets/stylesheets/fontawesome/_larger.scss new file mode 100644 index 0000000000..27c2ad5fc4 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_larger.scss @@ -0,0 +1,23 @@ +// Icon Sizes +// ------------------------- + +// makes the font 33% larger relative to the icon container +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -.0667em; +} + +.#{$fa-css-prefix}-xs { + font-size: .75em; +} + +.#{$fa-css-prefix}-sm { + font-size: .875em; +} + +@for $i from 1 through 10 { + .#{$fa-css-prefix}-#{$i}x { + font-size: $i * 1em; + } +} diff --git a/vendor/assets/stylesheets/fontawesome/_list.scss b/vendor/assets/stylesheets/fontawesome/_list.scss new file mode 100644 index 0000000000..8ebf33333c --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_list.scss @@ -0,0 +1,18 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + list-style-type: none; + margin-left: $fa-li-width * 5/4; + padding-left: 0; + + > li { position: relative; } +} + +.#{$fa-css-prefix}-li { + left: -$fa-li-width; + position: absolute; + text-align: center; + width: $fa-li-width; + line-height: inherit; +} diff --git a/vendor/assets/stylesheets/fontawesome/_mixins.scss b/vendor/assets/stylesheets/fontawesome/_mixins.scss new file mode 100644 index 0000000000..06e549b69f --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_mixins.scss @@ -0,0 +1,57 @@ +// Mixins +// -------------------------- + +@mixin fa-icon { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -15%; +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; + } +} diff --git a/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss b/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss new file mode 100644 index 0000000000..995bc4cc70 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss @@ -0,0 +1,23 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } +.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root { + .#{$fa-css-prefix}-rotate-90, + .#{$fa-css-prefix}-rotate-180, + .#{$fa-css-prefix}-rotate-270, + .#{$fa-css-prefix}-flip-horizontal, + .#{$fa-css-prefix}-flip-vertical { + filter: none; + } +} diff --git a/vendor/assets/stylesheets/fontawesome/_screen-reader.scss b/vendor/assets/stylesheets/fontawesome/_screen-reader.scss new file mode 100644 index 0000000000..5d0ab262f1 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only; } +.sr-only-focusable { @include sr-only-focusable; } diff --git a/vendor/assets/stylesheets/fontawesome/_stacked.scss b/vendor/assets/stylesheets/fontawesome/_stacked.scss new file mode 100644 index 0000000000..6c09d84cd1 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_stacked.scss @@ -0,0 +1,31 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2em; +} + +.#{$fa-css-prefix}-stack-1x, +.#{$fa-css-prefix}-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} + +.#{$fa-css-prefix}-stack-1x { + line-height: inherit; +} + +.#{$fa-css-prefix}-stack-2x { + font-size: 2em; +} + +.#{$fa-css-prefix}-inverse { + color: $fa-inverse; +} diff --git a/vendor/assets/stylesheets/fontawesome/_variables.scss b/vendor/assets/stylesheets/fontawesome/_variables.scss new file mode 100644 index 0000000000..d2c4d474c2 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/_variables.scss @@ -0,0 +1,805 @@ +// Variables +// -------------------------- + +$fa-font-path: "../webfonts" !default; +$fa-font-size-base: 16px !default; +$fa-css-prefix: fa !default; +$fa-version: "5.0.2" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: 2em !default; + +// Convenience function used to set content property +@function fa-content($fa-var) { + @return unquote("\"#{ $fa-var }\""); +} + +$fa-var-500px: \f26e; +$fa-var-accessible-icon: \f368; +$fa-var-accusoft: \f369; +$fa-var-address-book: \f2b9; +$fa-var-address-card: \f2bb; +$fa-var-adjust: \f042; +$fa-var-adn: \f170; +$fa-var-adversal: \f36a; +$fa-var-affiliatetheme: \f36b; +$fa-var-algolia: \f36c; +$fa-var-align-center: \f037; +$fa-var-align-justify: \f039; +$fa-var-align-left: \f036; +$fa-var-align-right: \f038; +$fa-var-amazon: \f270; +$fa-var-amazon-pay: \f42c; +$fa-var-ambulance: \f0f9; +$fa-var-american-sign-language-interpreting: \f2a3; +$fa-var-amilia: \f36d; +$fa-var-anchor: \f13d; +$fa-var-android: \f17b; +$fa-var-angellist: \f209; +$fa-var-angle-double-down: \f103; +$fa-var-angle-double-left: \f100; +$fa-var-angle-double-right: \f101; +$fa-var-angle-double-up: \f102; +$fa-var-angle-down: \f107; +$fa-var-angle-left: \f104; +$fa-var-angle-right: \f105; +$fa-var-angle-up: \f106; +$fa-var-angrycreative: \f36e; +$fa-var-angular: \f420; +$fa-var-app-store: \f36f; +$fa-var-app-store-ios: \f370; +$fa-var-apper: \f371; +$fa-var-apple: \f179; +$fa-var-apple-pay: \f415; +$fa-var-archive: \f187; +$fa-var-arrow-alt-circle-down: \f358; +$fa-var-arrow-alt-circle-left: \f359; +$fa-var-arrow-alt-circle-right: \f35a; +$fa-var-arrow-alt-circle-up: \f35b; +$fa-var-arrow-circle-down: \f0ab; +$fa-var-arrow-circle-left: \f0a8; +$fa-var-arrow-circle-right: \f0a9; +$fa-var-arrow-circle-up: \f0aa; +$fa-var-arrow-down: \f063; +$fa-var-arrow-left: \f060; +$fa-var-arrow-right: \f061; +$fa-var-arrow-up: \f062; +$fa-var-arrows-alt: \f0b2; +$fa-var-arrows-alt-h: \f337; +$fa-var-arrows-alt-v: \f338; +$fa-var-assistive-listening-systems: \f2a2; +$fa-var-asterisk: \f069; +$fa-var-asymmetrik: \f372; +$fa-var-at: \f1fa; +$fa-var-audible: \f373; +$fa-var-audio-description: \f29e; +$fa-var-autoprefixer: \f41c; +$fa-var-avianex: \f374; +$fa-var-aviato: \f421; +$fa-var-aws: \f375; +$fa-var-backward: \f04a; +$fa-var-balance-scale: \f24e; +$fa-var-ban: \f05e; +$fa-var-bandcamp: \f2d5; +$fa-var-barcode: \f02a; +$fa-var-bars: \f0c9; +$fa-var-bath: \f2cd; +$fa-var-battery-empty: \f244; +$fa-var-battery-full: \f240; +$fa-var-battery-half: \f242; +$fa-var-battery-quarter: \f243; +$fa-var-battery-three-quarters: \f241; +$fa-var-bed: \f236; +$fa-var-beer: \f0fc; +$fa-var-behance: \f1b4; +$fa-var-behance-square: \f1b5; +$fa-var-bell: \f0f3; +$fa-var-bell-slash: \f1f6; +$fa-var-bicycle: \f206; +$fa-var-bimobject: \f378; +$fa-var-binoculars: \f1e5; +$fa-var-birthday-cake: \f1fd; +$fa-var-bitbucket: \f171; +$fa-var-bitcoin: \f379; +$fa-var-bity: \f37a; +$fa-var-black-tie: \f27e; +$fa-var-blackberry: \f37b; +$fa-var-blind: \f29d; +$fa-var-blogger: \f37c; +$fa-var-blogger-b: \f37d; +$fa-var-bluetooth: \f293; +$fa-var-bluetooth-b: \f294; +$fa-var-bold: \f032; +$fa-var-bolt: \f0e7; +$fa-var-bomb: \f1e2; +$fa-var-book: \f02d; +$fa-var-bookmark: \f02e; +$fa-var-braille: \f2a1; +$fa-var-briefcase: \f0b1; +$fa-var-btc: \f15a; +$fa-var-bug: \f188; +$fa-var-building: \f1ad; +$fa-var-bullhorn: \f0a1; +$fa-var-bullseye: \f140; +$fa-var-buromobelexperte: \f37f; +$fa-var-bus: \f207; +$fa-var-buysellads: \f20d; +$fa-var-calculator: \f1ec; +$fa-var-calendar: \f133; +$fa-var-calendar-alt: \f073; +$fa-var-calendar-check: \f274; +$fa-var-calendar-minus: \f272; +$fa-var-calendar-plus: \f271; +$fa-var-calendar-times: \f273; +$fa-var-camera: \f030; +$fa-var-camera-retro: \f083; +$fa-var-car: \f1b9; +$fa-var-caret-down: \f0d7; +$fa-var-caret-left: \f0d9; +$fa-var-caret-right: \f0da; +$fa-var-caret-square-down: \f150; +$fa-var-caret-square-left: \f191; +$fa-var-caret-square-right: \f152; +$fa-var-caret-square-up: \f151; +$fa-var-caret-up: \f0d8; +$fa-var-cart-arrow-down: \f218; +$fa-var-cart-plus: \f217; +$fa-var-cc-amazon-pay: \f42d; +$fa-var-cc-amex: \f1f3; +$fa-var-cc-apple-pay: \f416; +$fa-var-cc-diners-club: \f24c; +$fa-var-cc-discover: \f1f2; +$fa-var-cc-jcb: \f24b; +$fa-var-cc-mastercard: \f1f1; +$fa-var-cc-paypal: \f1f4; +$fa-var-cc-stripe: \f1f5; +$fa-var-cc-visa: \f1f0; +$fa-var-centercode: \f380; +$fa-var-certificate: \f0a3; +$fa-var-chart-area: \f1fe; +$fa-var-chart-bar: \f080; +$fa-var-chart-line: \f201; +$fa-var-chart-pie: \f200; +$fa-var-check: \f00c; +$fa-var-check-circle: \f058; +$fa-var-check-square: \f14a; +$fa-var-chevron-circle-down: \f13a; +$fa-var-chevron-circle-left: \f137; +$fa-var-chevron-circle-right: \f138; +$fa-var-chevron-circle-up: \f139; +$fa-var-chevron-down: \f078; +$fa-var-chevron-left: \f053; +$fa-var-chevron-right: \f054; +$fa-var-chevron-up: \f077; +$fa-var-child: \f1ae; +$fa-var-chrome: \f268; +$fa-var-circle: \f111; +$fa-var-circle-notch: \f1ce; +$fa-var-clipboard: \f328; +$fa-var-clock: \f017; +$fa-var-clone: \f24d; +$fa-var-closed-captioning: \f20a; +$fa-var-cloud: \f0c2; +$fa-var-cloud-download-alt: \f381; +$fa-var-cloud-upload-alt: \f382; +$fa-var-cloudscale: \f383; +$fa-var-cloudsmith: \f384; +$fa-var-cloudversify: \f385; +$fa-var-code: \f121; +$fa-var-code-branch: \f126; +$fa-var-codepen: \f1cb; +$fa-var-codiepie: \f284; +$fa-var-coffee: \f0f4; +$fa-var-cog: \f013; +$fa-var-cogs: \f085; +$fa-var-columns: \f0db; +$fa-var-comment: \f075; +$fa-var-comment-alt: \f27a; +$fa-var-comments: \f086; +$fa-var-compass: \f14e; +$fa-var-compress: \f066; +$fa-var-connectdevelop: \f20e; +$fa-var-contao: \f26d; +$fa-var-copy: \f0c5; +$fa-var-copyright: \f1f9; +$fa-var-cpanel: \f388; +$fa-var-creative-commons: \f25e; +$fa-var-credit-card: \f09d; +$fa-var-crop: \f125; +$fa-var-crosshairs: \f05b; +$fa-var-css3: \f13c; +$fa-var-css3-alt: \f38b; +$fa-var-cube: \f1b2; +$fa-var-cubes: \f1b3; +$fa-var-cut: \f0c4; +$fa-var-cuttlefish: \f38c; +$fa-var-d-and-d: \f38d; +$fa-var-dashcube: \f210; +$fa-var-database: \f1c0; +$fa-var-deaf: \f2a4; +$fa-var-delicious: \f1a5; +$fa-var-deploydog: \f38e; +$fa-var-deskpro: \f38f; +$fa-var-desktop: \f108; +$fa-var-deviantart: \f1bd; +$fa-var-digg: \f1a6; +$fa-var-digital-ocean: \f391; +$fa-var-discord: \f392; +$fa-var-discourse: \f393; +$fa-var-dochub: \f394; +$fa-var-docker: \f395; +$fa-var-dollar-sign: \f155; +$fa-var-dot-circle: \f192; +$fa-var-download: \f019; +$fa-var-draft2digital: \f396; +$fa-var-dribbble: \f17d; +$fa-var-dribbble-square: \f397; +$fa-var-dropbox: \f16b; +$fa-var-drupal: \f1a9; +$fa-var-dyalog: \f399; +$fa-var-earlybirds: \f39a; +$fa-var-edge: \f282; +$fa-var-edit: \f044; +$fa-var-eject: \f052; +$fa-var-ellipsis-h: \f141; +$fa-var-ellipsis-v: \f142; +$fa-var-ember: \f423; +$fa-var-empire: \f1d1; +$fa-var-envelope: \f0e0; +$fa-var-envelope-open: \f2b6; +$fa-var-envelope-square: \f199; +$fa-var-envira: \f299; +$fa-var-eraser: \f12d; +$fa-var-erlang: \f39d; +$fa-var-ethereum: \f42e; +$fa-var-etsy: \f2d7; +$fa-var-euro-sign: \f153; +$fa-var-exchange-alt: \f362; +$fa-var-exclamation: \f12a; +$fa-var-exclamation-circle: \f06a; +$fa-var-exclamation-triangle: \f071; +$fa-var-expand: \f065; +$fa-var-expand-arrows-alt: \f31e; +$fa-var-expeditedssl: \f23e; +$fa-var-external-link-alt: \f35d; +$fa-var-external-link-square-alt: \f360; +$fa-var-eye: \f06e; +$fa-var-eye-dropper: \f1fb; +$fa-var-eye-slash: \f070; +$fa-var-facebook: \f09a; +$fa-var-facebook-f: \f39e; +$fa-var-facebook-messenger: \f39f; +$fa-var-facebook-square: \f082; +$fa-var-fast-backward: \f049; +$fa-var-fast-forward: \f050; +$fa-var-fax: \f1ac; +$fa-var-female: \f182; +$fa-var-fighter-jet: \f0fb; +$fa-var-file: \f15b; +$fa-var-file-alt: \f15c; +$fa-var-file-archive: \f1c6; +$fa-var-file-audio: \f1c7; +$fa-var-file-code: \f1c9; +$fa-var-file-excel: \f1c3; +$fa-var-file-image: \f1c5; +$fa-var-file-pdf: \f1c1; +$fa-var-file-powerpoint: \f1c4; +$fa-var-file-video: \f1c8; +$fa-var-file-word: \f1c2; +$fa-var-film: \f008; +$fa-var-filter: \f0b0; +$fa-var-fire: \f06d; +$fa-var-fire-extinguisher: \f134; +$fa-var-firefox: \f269; +$fa-var-first-order: \f2b0; +$fa-var-firstdraft: \f3a1; +$fa-var-flag: \f024; +$fa-var-flag-checkered: \f11e; +$fa-var-flask: \f0c3; +$fa-var-flickr: \f16e; +$fa-var-fly: \f417; +$fa-var-folder: \f07b; +$fa-var-folder-open: \f07c; +$fa-var-font: \f031; +$fa-var-font-awesome: \f2b4; +$fa-var-font-awesome-alt: \f35c; +$fa-var-font-awesome-flag: \f425; +$fa-var-fonticons: \f280; +$fa-var-fonticons-fi: \f3a2; +$fa-var-fort-awesome: \f286; +$fa-var-fort-awesome-alt: \f3a3; +$fa-var-forumbee: \f211; +$fa-var-forward: \f04e; +$fa-var-foursquare: \f180; +$fa-var-free-code-camp: \f2c5; +$fa-var-freebsd: \f3a4; +$fa-var-frown: \f119; +$fa-var-futbol: \f1e3; +$fa-var-gamepad: \f11b; +$fa-var-gavel: \f0e3; +$fa-var-gem: \f3a5; +$fa-var-genderless: \f22d; +$fa-var-get-pocket: \f265; +$fa-var-gg: \f260; +$fa-var-gg-circle: \f261; +$fa-var-gift: \f06b; +$fa-var-git: \f1d3; +$fa-var-git-square: \f1d2; +$fa-var-github: \f09b; +$fa-var-github-alt: \f113; +$fa-var-github-square: \f092; +$fa-var-gitkraken: \f3a6; +$fa-var-gitlab: \f296; +$fa-var-gitter: \f426; +$fa-var-glass-martini: \f000; +$fa-var-glide: \f2a5; +$fa-var-glide-g: \f2a6; +$fa-var-globe: \f0ac; +$fa-var-gofore: \f3a7; +$fa-var-goodreads: \f3a8; +$fa-var-goodreads-g: \f3a9; +$fa-var-google: \f1a0; +$fa-var-google-drive: \f3aa; +$fa-var-google-play: \f3ab; +$fa-var-google-plus: \f2b3; +$fa-var-google-plus-g: \f0d5; +$fa-var-google-plus-square: \f0d4; +$fa-var-google-wallet: \f1ee; +$fa-var-graduation-cap: \f19d; +$fa-var-gratipay: \f184; +$fa-var-grav: \f2d6; +$fa-var-gripfire: \f3ac; +$fa-var-grunt: \f3ad; +$fa-var-gulp: \f3ae; +$fa-var-h-square: \f0fd; +$fa-var-hacker-news: \f1d4; +$fa-var-hacker-news-square: \f3af; +$fa-var-hand-lizard: \f258; +$fa-var-hand-paper: \f256; +$fa-var-hand-peace: \f25b; +$fa-var-hand-point-down: \f0a7; +$fa-var-hand-point-left: \f0a5; +$fa-var-hand-point-right: \f0a4; +$fa-var-hand-point-up: \f0a6; +$fa-var-hand-pointer: \f25a; +$fa-var-hand-rock: \f255; +$fa-var-hand-scissors: \f257; +$fa-var-hand-spock: \f259; +$fa-var-handshake: \f2b5; +$fa-var-hashtag: \f292; +$fa-var-hdd: \f0a0; +$fa-var-heading: \f1dc; +$fa-var-headphones: \f025; +$fa-var-heart: \f004; +$fa-var-heartbeat: \f21e; +$fa-var-hire-a-helper: \f3b0; +$fa-var-history: \f1da; +$fa-var-home: \f015; +$fa-var-hooli: \f427; +$fa-var-hospital: \f0f8; +$fa-var-hotjar: \f3b1; +$fa-var-hourglass: \f254; +$fa-var-hourglass-end: \f253; +$fa-var-hourglass-half: \f252; +$fa-var-hourglass-start: \f251; +$fa-var-houzz: \f27c; +$fa-var-html5: \f13b; +$fa-var-hubspot: \f3b2; +$fa-var-i-cursor: \f246; +$fa-var-id-badge: \f2c1; +$fa-var-id-card: \f2c2; +$fa-var-image: \f03e; +$fa-var-images: \f302; +$fa-var-imdb: \f2d8; +$fa-var-inbox: \f01c; +$fa-var-indent: \f03c; +$fa-var-industry: \f275; +$fa-var-info: \f129; +$fa-var-info-circle: \f05a; +$fa-var-instagram: \f16d; +$fa-var-internet-explorer: \f26b; +$fa-var-ioxhost: \f208; +$fa-var-italic: \f033; +$fa-var-itunes: \f3b4; +$fa-var-itunes-note: \f3b5; +$fa-var-jenkins: \f3b6; +$fa-var-joget: \f3b7; +$fa-var-joomla: \f1aa; +$fa-var-js: \f3b8; +$fa-var-js-square: \f3b9; +$fa-var-jsfiddle: \f1cc; +$fa-var-key: \f084; +$fa-var-keyboard: \f11c; +$fa-var-keycdn: \f3ba; +$fa-var-kickstarter: \f3bb; +$fa-var-kickstarter-k: \f3bc; +$fa-var-korvue: \f42f; +$fa-var-language: \f1ab; +$fa-var-laptop: \f109; +$fa-var-laravel: \f3bd; +$fa-var-lastfm: \f202; +$fa-var-lastfm-square: \f203; +$fa-var-leaf: \f06c; +$fa-var-leanpub: \f212; +$fa-var-lemon: \f094; +$fa-var-less: \f41d; +$fa-var-level-down-alt: \f3be; +$fa-var-level-up-alt: \f3bf; +$fa-var-life-ring: \f1cd; +$fa-var-lightbulb: \f0eb; +$fa-var-line: \f3c0; +$fa-var-link: \f0c1; +$fa-var-linkedin: \f08c; +$fa-var-linkedin-in: \f0e1; +$fa-var-linode: \f2b8; +$fa-var-linux: \f17c; +$fa-var-lira-sign: \f195; +$fa-var-list: \f03a; +$fa-var-list-alt: \f022; +$fa-var-list-ol: \f0cb; +$fa-var-list-ul: \f0ca; +$fa-var-location-arrow: \f124; +$fa-var-lock: \f023; +$fa-var-lock-open: \f3c1; +$fa-var-long-arrow-alt-down: \f309; +$fa-var-long-arrow-alt-left: \f30a; +$fa-var-long-arrow-alt-right: \f30b; +$fa-var-long-arrow-alt-up: \f30c; +$fa-var-low-vision: \f2a8; +$fa-var-lyft: \f3c3; +$fa-var-magento: \f3c4; +$fa-var-magic: \f0d0; +$fa-var-magnet: \f076; +$fa-var-male: \f183; +$fa-var-map: \f279; +$fa-var-map-marker: \f041; +$fa-var-map-marker-alt: \f3c5; +$fa-var-map-pin: \f276; +$fa-var-map-signs: \f277; +$fa-var-mars: \f222; +$fa-var-mars-double: \f227; +$fa-var-mars-stroke: \f229; +$fa-var-mars-stroke-h: \f22b; +$fa-var-mars-stroke-v: \f22a; +$fa-var-maxcdn: \f136; +$fa-var-medapps: \f3c6; +$fa-var-medium: \f23a; +$fa-var-medium-m: \f3c7; +$fa-var-medkit: \f0fa; +$fa-var-medrt: \f3c8; +$fa-var-meetup: \f2e0; +$fa-var-meh: \f11a; +$fa-var-mercury: \f223; +$fa-var-microchip: \f2db; +$fa-var-microphone: \f130; +$fa-var-microphone-slash: \f131; +$fa-var-microsoft: \f3ca; +$fa-var-minus: \f068; +$fa-var-minus-circle: \f056; +$fa-var-minus-square: \f146; +$fa-var-mix: \f3cb; +$fa-var-mixcloud: \f289; +$fa-var-mizuni: \f3cc; +$fa-var-mobile: \f10b; +$fa-var-mobile-alt: \f3cd; +$fa-var-modx: \f285; +$fa-var-monero: \f3d0; +$fa-var-money-bill-alt: \f3d1; +$fa-var-moon: \f186; +$fa-var-motorcycle: \f21c; +$fa-var-mouse-pointer: \f245; +$fa-var-music: \f001; +$fa-var-napster: \f3d2; +$fa-var-neuter: \f22c; +$fa-var-newspaper: \f1ea; +$fa-var-nintendo-switch: \f418; +$fa-var-node: \f419; +$fa-var-node-js: \f3d3; +$fa-var-npm: \f3d4; +$fa-var-ns8: \f3d5; +$fa-var-nutritionix: \f3d6; +$fa-var-object-group: \f247; +$fa-var-object-ungroup: \f248; +$fa-var-odnoklassniki: \f263; +$fa-var-odnoklassniki-square: \f264; +$fa-var-opencart: \f23d; +$fa-var-openid: \f19b; +$fa-var-opera: \f26a; +$fa-var-optin-monster: \f23c; +$fa-var-osi: \f41a; +$fa-var-outdent: \f03b; +$fa-var-page4: \f3d7; +$fa-var-pagelines: \f18c; +$fa-var-paint-brush: \f1fc; +$fa-var-palfed: \f3d8; +$fa-var-paper-plane: \f1d8; +$fa-var-paperclip: \f0c6; +$fa-var-paragraph: \f1dd; +$fa-var-paste: \f0ea; +$fa-var-patreon: \f3d9; +$fa-var-pause: \f04c; +$fa-var-pause-circle: \f28b; +$fa-var-paw: \f1b0; +$fa-var-paypal: \f1ed; +$fa-var-pen-square: \f14b; +$fa-var-pencil-alt: \f303; +$fa-var-percent: \f295; +$fa-var-periscope: \f3da; +$fa-var-phabricator: \f3db; +$fa-var-phoenix-framework: \f3dc; +$fa-var-phone: \f095; +$fa-var-phone-square: \f098; +$fa-var-phone-volume: \f2a0; +$fa-var-pied-piper: \f2ae; +$fa-var-pied-piper-alt: \f1a8; +$fa-var-pied-piper-pp: \f1a7; +$fa-var-pinterest: \f0d2; +$fa-var-pinterest-p: \f231; +$fa-var-pinterest-square: \f0d3; +$fa-var-plane: \f072; +$fa-var-play: \f04b; +$fa-var-play-circle: \f144; +$fa-var-playstation: \f3df; +$fa-var-plug: \f1e6; +$fa-var-plus: \f067; +$fa-var-plus-circle: \f055; +$fa-var-plus-square: \f0fe; +$fa-var-podcast: \f2ce; +$fa-var-pound-sign: \f154; +$fa-var-power-off: \f011; +$fa-var-print: \f02f; +$fa-var-product-hunt: \f288; +$fa-var-pushed: \f3e1; +$fa-var-puzzle-piece: \f12e; +$fa-var-python: \f3e2; +$fa-var-qq: \f1d6; +$fa-var-qrcode: \f029; +$fa-var-question: \f128; +$fa-var-question-circle: \f059; +$fa-var-quora: \f2c4; +$fa-var-quote-left: \f10d; +$fa-var-quote-right: \f10e; +$fa-var-random: \f074; +$fa-var-ravelry: \f2d9; +$fa-var-react: \f41b; +$fa-var-rebel: \f1d0; +$fa-var-recycle: \f1b8; +$fa-var-red-river: \f3e3; +$fa-var-reddit: \f1a1; +$fa-var-reddit-alien: \f281; +$fa-var-reddit-square: \f1a2; +$fa-var-redo: \f01e; +$fa-var-redo-alt: \f2f9; +$fa-var-registered: \f25d; +$fa-var-rendact: \f3e4; +$fa-var-renren: \f18b; +$fa-var-reply: \f3e5; +$fa-var-reply-all: \f122; +$fa-var-replyd: \f3e6; +$fa-var-resolving: \f3e7; +$fa-var-retweet: \f079; +$fa-var-road: \f018; +$fa-var-rocket: \f135; +$fa-var-rocketchat: \f3e8; +$fa-var-rockrms: \f3e9; +$fa-var-rss: \f09e; +$fa-var-rss-square: \f143; +$fa-var-ruble-sign: \f158; +$fa-var-rupee-sign: \f156; +$fa-var-safari: \f267; +$fa-var-sass: \f41e; +$fa-var-save: \f0c7; +$fa-var-schlix: \f3ea; +$fa-var-scribd: \f28a; +$fa-var-search: \f002; +$fa-var-search-minus: \f010; +$fa-var-search-plus: \f00e; +$fa-var-searchengin: \f3eb; +$fa-var-sellcast: \f2da; +$fa-var-sellsy: \f213; +$fa-var-server: \f233; +$fa-var-servicestack: \f3ec; +$fa-var-share: \f064; +$fa-var-share-alt: \f1e0; +$fa-var-share-alt-square: \f1e1; +$fa-var-share-square: \f14d; +$fa-var-shekel-sign: \f20b; +$fa-var-shield-alt: \f3ed; +$fa-var-ship: \f21a; +$fa-var-shirtsinbulk: \f214; +$fa-var-shopping-bag: \f290; +$fa-var-shopping-basket: \f291; +$fa-var-shopping-cart: \f07a; +$fa-var-shower: \f2cc; +$fa-var-sign-in-alt: \f2f6; +$fa-var-sign-language: \f2a7; +$fa-var-sign-out-alt: \f2f5; +$fa-var-signal: \f012; +$fa-var-simplybuilt: \f215; +$fa-var-sistrix: \f3ee; +$fa-var-sitemap: \f0e8; +$fa-var-skyatlas: \f216; +$fa-var-skype: \f17e; +$fa-var-slack: \f198; +$fa-var-slack-hash: \f3ef; +$fa-var-sliders-h: \f1de; +$fa-var-slideshare: \f1e7; +$fa-var-smile: \f118; +$fa-var-snapchat: \f2ab; +$fa-var-snapchat-ghost: \f2ac; +$fa-var-snapchat-square: \f2ad; +$fa-var-snowflake: \f2dc; +$fa-var-sort: \f0dc; +$fa-var-sort-alpha-down: \f15d; +$fa-var-sort-alpha-up: \f15e; +$fa-var-sort-amount-down: \f160; +$fa-var-sort-amount-up: \f161; +$fa-var-sort-down: \f0dd; +$fa-var-sort-numeric-down: \f162; +$fa-var-sort-numeric-up: \f163; +$fa-var-sort-up: \f0de; +$fa-var-soundcloud: \f1be; +$fa-var-space-shuttle: \f197; +$fa-var-speakap: \f3f3; +$fa-var-spinner: \f110; +$fa-var-spotify: \f1bc; +$fa-var-square: \f0c8; +$fa-var-stack-exchange: \f18d; +$fa-var-stack-overflow: \f16c; +$fa-var-star: \f005; +$fa-var-star-half: \f089; +$fa-var-staylinked: \f3f5; +$fa-var-steam: \f1b6; +$fa-var-steam-square: \f1b7; +$fa-var-steam-symbol: \f3f6; +$fa-var-step-backward: \f048; +$fa-var-step-forward: \f051; +$fa-var-stethoscope: \f0f1; +$fa-var-sticker-mule: \f3f7; +$fa-var-sticky-note: \f249; +$fa-var-stop: \f04d; +$fa-var-stop-circle: \f28d; +$fa-var-stopwatch: \f2f2; +$fa-var-strava: \f428; +$fa-var-street-view: \f21d; +$fa-var-strikethrough: \f0cc; +$fa-var-stripe: \f429; +$fa-var-stripe-s: \f42a; +$fa-var-studiovinari: \f3f8; +$fa-var-stumbleupon: \f1a4; +$fa-var-stumbleupon-circle: \f1a3; +$fa-var-subscript: \f12c; +$fa-var-subway: \f239; +$fa-var-suitcase: \f0f2; +$fa-var-sun: \f185; +$fa-var-superpowers: \f2dd; +$fa-var-superscript: \f12b; +$fa-var-supple: \f3f9; +$fa-var-sync: \f021; +$fa-var-sync-alt: \f2f1; +$fa-var-table: \f0ce; +$fa-var-tablet: \f10a; +$fa-var-tablet-alt: \f3fa; +$fa-var-tachometer-alt: \f3fd; +$fa-var-tag: \f02b; +$fa-var-tags: \f02c; +$fa-var-tasks: \f0ae; +$fa-var-taxi: \f1ba; +$fa-var-telegram: \f2c6; +$fa-var-telegram-plane: \f3fe; +$fa-var-tencent-weibo: \f1d5; +$fa-var-terminal: \f120; +$fa-var-text-height: \f034; +$fa-var-text-width: \f035; +$fa-var-th: \f00a; +$fa-var-th-large: \f009; +$fa-var-th-list: \f00b; +$fa-var-themeisle: \f2b2; +$fa-var-thermometer-empty: \f2cb; +$fa-var-thermometer-full: \f2c7; +$fa-var-thermometer-half: \f2c9; +$fa-var-thermometer-quarter: \f2ca; +$fa-var-thermometer-three-quarters: \f2c8; +$fa-var-thumbs-down: \f165; +$fa-var-thumbs-up: \f164; +$fa-var-thumbtack: \f08d; +$fa-var-ticket-alt: \f3ff; +$fa-var-times: \f00d; +$fa-var-times-circle: \f057; +$fa-var-tint: \f043; +$fa-var-toggle-off: \f204; +$fa-var-toggle-on: \f205; +$fa-var-trademark: \f25c; +$fa-var-train: \f238; +$fa-var-transgender: \f224; +$fa-var-transgender-alt: \f225; +$fa-var-trash: \f1f8; +$fa-var-trash-alt: \f2ed; +$fa-var-tree: \f1bb; +$fa-var-trello: \f181; +$fa-var-tripadvisor: \f262; +$fa-var-trophy: \f091; +$fa-var-truck: \f0d1; +$fa-var-tty: \f1e4; +$fa-var-tumblr: \f173; +$fa-var-tumblr-square: \f174; +$fa-var-tv: \f26c; +$fa-var-twitch: \f1e8; +$fa-var-twitter: \f099; +$fa-var-twitter-square: \f081; +$fa-var-typo3: \f42b; +$fa-var-uber: \f402; +$fa-var-uikit: \f403; +$fa-var-umbrella: \f0e9; +$fa-var-underline: \f0cd; +$fa-var-undo: \f0e2; +$fa-var-undo-alt: \f2ea; +$fa-var-uniregistry: \f404; +$fa-var-universal-access: \f29a; +$fa-var-university: \f19c; +$fa-var-unlink: \f127; +$fa-var-unlock: \f09c; +$fa-var-unlock-alt: \f13e; +$fa-var-untappd: \f405; +$fa-var-upload: \f093; +$fa-var-usb: \f287; +$fa-var-user: \f007; +$fa-var-user-circle: \f2bd; +$fa-var-user-md: \f0f0; +$fa-var-user-plus: \f234; +$fa-var-user-secret: \f21b; +$fa-var-user-times: \f235; +$fa-var-users: \f0c0; +$fa-var-ussunnah: \f407; +$fa-var-utensil-spoon: \f2e5; +$fa-var-utensils: \f2e7; +$fa-var-vaadin: \f408; +$fa-var-venus: \f221; +$fa-var-venus-double: \f226; +$fa-var-venus-mars: \f228; +$fa-var-viacoin: \f237; +$fa-var-viadeo: \f2a9; +$fa-var-viadeo-square: \f2aa; +$fa-var-viber: \f409; +$fa-var-video: \f03d; +$fa-var-vimeo: \f40a; +$fa-var-vimeo-square: \f194; +$fa-var-vimeo-v: \f27d; +$fa-var-vine: \f1ca; +$fa-var-vk: \f189; +$fa-var-vnv: \f40b; +$fa-var-volume-down: \f027; +$fa-var-volume-off: \f026; +$fa-var-volume-up: \f028; +$fa-var-vuejs: \f41f; +$fa-var-weibo: \f18a; +$fa-var-weixin: \f1d7; +$fa-var-whatsapp: \f232; +$fa-var-whatsapp-square: \f40c; +$fa-var-wheelchair: \f193; +$fa-var-whmcs: \f40d; +$fa-var-wifi: \f1eb; +$fa-var-wikipedia-w: \f266; +$fa-var-window-close: \f410; +$fa-var-window-maximize: \f2d0; +$fa-var-window-minimize: \f2d1; +$fa-var-window-restore: \f2d2; +$fa-var-windows: \f17a; +$fa-var-won-sign: \f159; +$fa-var-wordpress: \f19a; +$fa-var-wordpress-simple: \f411; +$fa-var-wpbeginner: \f297; +$fa-var-wpexplorer: \f2de; +$fa-var-wpforms: \f298; +$fa-var-wrench: \f0ad; +$fa-var-xbox: \f412; +$fa-var-xing: \f168; +$fa-var-xing-square: \f169; +$fa-var-y-combinator: \f23b; +$fa-var-yahoo: \f19e; +$fa-var-yandex: \f413; +$fa-var-yandex-international: \f414; +$fa-var-yelp: \f1e9; +$fa-var-yen-sign: \f157; +$fa-var-yoast: \f2b1; +$fa-var-youtube: \f167; diff --git a/vendor/assets/stylesheets/fontawesome/fa-regular.scss b/vendor/assets/stylesheets/fontawesome/fa-regular.scss new file mode 100644 index 0000000000..6313c48846 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/fa-regular.scss @@ -0,0 +1,22 @@ +/*! + * Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com + * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: font-url('fa-regular-400.eot'); + src: font-url('fa-regular-400.eot?#iefix') format('embedded-opentype'), + font-url('fa-regular-400.woff2') format('woff2'), + font-url('fa-regular-400.woff') format('woff'), + font-url('fa-regular-400.ttf') format('truetype'), + font-url('fa-regular-400.svg#fontawesome') format('svg'); +} + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} diff --git a/vendor/assets/stylesheets/fontawesome/fa-solid.scss b/vendor/assets/stylesheets/fontawesome/fa-solid.scss new file mode 100644 index 0000000000..90aceced91 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/fa-solid.scss @@ -0,0 +1,23 @@ +/*! + * Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com + * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + src: font-url('fa-solid-900.eot'); + src: font-url('fa-solid-900.eot?#iefix') format('embedded-opentype'), + font-url('fa-solid-900.woff2') format('woff2'), + font-url('fa-solid-900.woff') format('woff'), + font-url('fa-solid-900.ttf') format('truetype'), + font-url('fa-solid-900.svg#fontawesome') format('svg'); +} + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} diff --git a/vendor/assets/stylesheets/fontawesome/fontawesome.scss b/vendor/assets/stylesheets/fontawesome/fontawesome.scss new file mode 100644 index 0000000000..04eb879a43 --- /dev/null +++ b/vendor/assets/stylesheets/fontawesome/fontawesome.scss @@ -0,0 +1,16 @@ +/*! + * Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com + * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; +@import 'mixins'; +@import 'core'; +@import 'larger'; +@import 'fixed-width'; +@import 'list'; +@import 'bordered-pulled'; +@import 'animated'; +@import 'rotated-flipped'; +@import 'stacked'; +@import 'icons'; +@import 'screen-reader';