diff options
Diffstat (limited to 'app/javascript/styles')
-rw-r--r-- | app/javascript/styles/application.scss | 1 | ||||
-rw-r--r-- | app/javascript/styles/components.scss | 218 | ||||
-rw-r--r-- | app/javascript/styles/emoji_picker.scss | 197 |
3 files changed, 233 insertions, 183 deletions
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss index f418ba699..0eb6ac6d8 100644 --- a/app/javascript/styles/application.scss +++ b/app/javascript/styles/application.scss @@ -15,6 +15,7 @@ @import 'accounts'; @import 'stream_entries'; @import 'components'; +@import 'emoji_picker'; @import 'about'; @import 'tables'; @import 'admin'; diff --git a/app/javascript/styles/components.scss b/app/javascript/styles/components.scss index e0a310b6c..abf5cfd5b 100644 --- a/app/javascript/styles/components.scss +++ b/app/javascript/styles/components.scss @@ -390,17 +390,11 @@ .compose-form__autosuggest-wrapper { position: relative; - .emoji-picker__dropdown { + .emoji-picker-dropdown { position: absolute; right: 5px; top: 5px; - &.dropdown--active::after { - border-color: transparent transparent $base-border-color; - bottom: -1px; - right: 8px; - } - ::-webkit-scrollbar-track:hover, ::-webkit-scrollbar-track:active { background-color: rgba($base-overlay-background, 0.3); @@ -2583,197 +2577,55 @@ button.icon-button.active i.fa-retweet { animation-direction: alternate; } -.emoji-dialog { - width: 245px; - height: 270px; +.emoji-picker-dropdown__menu { background: $simple-background-color; - box-sizing: border-box; + position: absolute; + box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); border-radius: 4px; - overflow: hidden; - position: relative; - box-shadow: 0 0 8px rgba($base-shadow-color, 0.2); - - .emojione { - margin: 0; - width: 100%; - height: auto; - } - - .emoji-dialog-header { - padding: 0 10px; - - ul { - padding: 0; - margin: 0; - list-style: none; - } - - li { - display: inline-block; - box-sizing: border-box; - padding: 10px 5px; - cursor: pointer; - border-bottom: 2px solid transparent; - - .emoji { - width: 18px; - height: 18px; - } - - img, - svg { - width: 18px; - height: 18px; - filter: grayscale(100%); - } - - &:hover { - img, - svg { - filter: grayscale(0); - } - } - - &.active { - border-bottom-color: $ui-highlight-color; - - img, - svg { - filter: grayscale(0); - } - } - } - } - - .emoji-row { - box-sizing: border-box; - overflow-y: hidden; - padding-left: 10px; - - .emoji { - display: inline-block; - padding: 2.5px; - border-radius: 4px; - } - } - - .emoji-category-header { - box-sizing: border-box; - overflow-y: hidden; - padding: 10px 8px 10px 16px; - display: table; - - > * { - display: table-cell; - vertical-align: middle; - } - } + margin-top: 5px; - .emoji-category-title { - font-size: 12px; - text-transform: uppercase; - font-weight: 500; - color: darken($ui-secondary-color, 18%); - cursor: default; + .emoji-mart-scroll { + transition: opacity 200ms ease; } - .emoji-category-heading-decoration { - text-align: right; + &.selecting .emoji-mart-scroll { + opacity: 0.5; } +} - .modifiers { - list-style: none; - padding: 0; - margin: 0; - vertical-align: middle; - white-space: nowrap; - margin-top: 4px; - - li { - display: inline-block; - padding: 0 2px; - - &:last-of-type { - padding-right: 0; - } - } - - .modifier { - display: inline-block; - border-radius: 10px; - width: 15px; - height: 15px; - position: relative; - cursor: pointer; - - &.active::after { - content: ""; - display: block; - position: absolute; - width: 7px; - height: 7px; - border-radius: 10px; - border: 2px solid $base-border-color; - top: 2px; - left: 2px; - } - } - } +.emoji-picker-dropdown__modifiers { + position: absolute; + top: 60px; + right: 11px; + cursor: pointer; +} - .emoji-search-wrapper { - padding: 10px; - border-bottom: 1px solid lighten($ui-secondary-color, 4%); - } +.emoji-picker-dropdown__modifiers__menu { + position: absolute; + z-index: 4; + top: -4px; + left: -8px; + background: $simple-background-color; + border-radius: 4px; + box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); + overflow: hidden; - .emoji-search { - font-size: 14px; - font-weight: 400; - padding: 7px 9px; - font-family: inherit; + button { display: block; - width: 100%; - background: rgba($ui-secondary-color, 0.3); - color: darken($ui-secondary-color, 18%); - border: 1px solid $ui-secondary-color; - border-radius: 4px; - } - - .emoji-categories-wrapper { - position: absolute; - top: 42px; - bottom: 0; - left: 0; - right: 0; - } - - .emoji-search-wrapper + .emoji-categories-wrapper { - top: 93px; - } - - .emoji-row .emoji { - img, - svg { - transition: transform 60ms ease-in-out; - } - - &:hover { - background: lighten($ui-secondary-color, 3%); + cursor: pointer; + border: 0; + padding: 4px 8px; + background: transparent; - img, - svg { - transform: translateZ(0) scale(1.2); - } + &:hover, + &:focus, + &:active { + background: rgba($ui-secondary-color, 0.4); } } - .emoji { - width: 22px; + .emoji-mart-emoji { height: 22px; - cursor: pointer; - - &:focus { - outline: 0; - } } } diff --git a/app/javascript/styles/emoji_picker.scss b/app/javascript/styles/emoji_picker.scss new file mode 100644 index 000000000..dbd9dbd97 --- /dev/null +++ b/app/javascript/styles/emoji_picker.scss @@ -0,0 +1,197 @@ +.emoji-mart { + &, + * { + box-sizing: border-box; + line-height: 1.15; + } + + font-size: 13px; + display: inline-block; + color: $ui-base-color; + + .emoji-mart-emoji { + padding: 6px; + } +} + +.emoji-mart-bar { + border: 0 solid darken($ui-secondary-color, 8%); + + &:first-child { + border-bottom-width: 1px; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + background: $ui-secondary-color; + } + + &:last-child { + border-top-width: 1px; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + display: none; + } +} + +.emoji-mart-anchors { + display: flex; + justify-content: space-between; + padding: 0 6px; + color: $ui-primary-color; + line-height: 0; +} + +.emoji-mart-anchor { + position: relative; + flex: 1; + text-align: center; + padding: 12px 4px; + overflow: hidden; + transition: color .1s ease-out; + cursor: pointer; + + &:hover { + color: darken($ui-primary-color, 4%); + } +} + +.emoji-mart-anchor-selected { + color: darken($ui-highlight-color, 3%); + + &:hover { + color: darken($ui-highlight-color, 3%); + } + + .emoji-mart-anchor-bar { + bottom: 0; + } +} + +.emoji-mart-anchor-bar { + position: absolute; + bottom: -3px; + left: 0; + width: 100%; + height: 3px; + background-color: darken($ui-highlight-color, 3%); +} + +.emoji-mart-anchors { + i { + display: inline-block; + width: 100%; + max-width: 22px; + } + + svg { + fill: currentColor; + max-height: 18px; + } +} + +.emoji-mart-scroll { + overflow-y: scroll; + height: 270px; + padding: 0 6px 6px; + background: $simple-background-color; +} + +.emoji-mart-search { + padding: 10px; + padding-right: 45px; + background: $simple-background-color; + + input { + font-size: 14px; + font-weight: 400; + padding: 7px 9px; + font-family: inherit; + display: block; + width: 100%; + background: rgba($ui-secondary-color, 0.3); + color: $ui-primary-color; + border: 1px solid $ui-secondary-color; + border-radius: 4px; + + &::-moz-focus-inner { + border: 0; + } + + &::-moz-focus-inner, + &:focus, + &:active { + outline: 0 !important; + } + } +} + +.emoji-mart-category .emoji-mart-emoji { + cursor: pointer; + + span { + z-index: 1; + position: relative; + text-align: center; + } + + &:hover::before { + z-index: 0; + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba($ui-secondary-color, 0.7); + border-radius: 100%; + } +} + +.emoji-mart-category-label { + z-index: 2; + position: relative; + position: -webkit-sticky; + position: sticky; + top: 0; + + span { + display: block; + width: 100%; + font-weight: 500; + padding: 5px 6px; + background: $simple-background-color; + } +} + +.emoji-mart-emoji { + position: relative; + display: inline-block; + font-size: 0; + + span { + width: 22px; + height: 22px; + } +} + +.emoji-mart-no-results { + font-size: 14px; + text-align: center; + padding-top: 70px; + color: $ui-primary-color; + + .emoji-mart-category-label { + display: none; + } + + .emoji-mart-no-results-label { + margin-top: .2em; + } + + .emoji-mart-emoji:hover::before { + content: none; + } +} + +.emoji-mart-preview { + display: none; +} |