diff --git a/core/assets/vendor/hint.css/hint.css b/core/assets/vendor/hint.css/hint.css new file mode 100644 index 0000000..03ee7e2 --- /dev/null +++ b/core/assets/vendor/hint.css/hint.css @@ -0,0 +1,295 @@ +/*! Hint.css - v1.3.2 - 2014-05-18 +* http://kushagragour.in/lab/hint/ +* Copyright (c) 2014 Kushagra Gour; Licensed MIT */ + +/*-------------------------------------*\ + HINT.css - A CSS tooltip library +\*-------------------------------------*/ +/** + * HINT.css is a tooltip library made in pure CSS. + * + * Source: https://github.com/chinchang/hint.css + * Demo: http://kushagragour.in/lab/hint/ + * + * Release under The MIT License + * + */ +/** + * source: hint-core.scss + * + * Defines the basic styling for the tooltip. + * Each tooltip is made of 2 parts: + * 1) body (:after) + * 2) arrow (:before) + * + * Classes added: + * 1) hint + */ +.hint, [data-hint] { + position: relative; + display: inline-block; + /** + * tooltip arrow + */ + /** + * tooltip body + */ } + .hint:before, .hint:after, [data-hint]:before, [data-hint]:after { + position: absolute; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + visibility: hidden; + opacity: 0; + z-index: 1000000; + pointer-events: none; + -webkit-transition: 0.3s ease; + -moz-transition: 0.3s ease; + transition: 0.3s ease; + -webkit-transition-delay: 0ms; + -moz-transition-delay: 0ms; + transition-delay: 0ms; } + .hint:hover:before, .hint:hover:after, .hint:focus:before, .hint:focus:after, [data-hint]:hover:before, [data-hint]:hover:after, [data-hint]:focus:before, [data-hint]:focus:after { + visibility: visible; + opacity: 1; } + .hint:hover:before, .hint:hover:after, [data-hint]:hover:before, [data-hint]:hover:after { + -webkit-transition-delay: 100ms; + -moz-transition-delay: 100ms; + transition-delay: 100ms; } + .hint:before, [data-hint]:before { + content: ''; + position: absolute; + background: transparent; + border: 6px solid transparent; + z-index: 1000001; } + .hint:after, [data-hint]:after { + content: attr(data-hint); + background: #383838; + color: white; + text-shadow: 0 -1px 0px black; + padding: 8px 10px; + font-size: 12px; + line-height: 12px; + white-space: nowrap; + box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3); } + +/** + * source: hint-position.scss + * + * Defines the positoning logic for the tooltips. + * + * Classes added: + * 1) hint--top + * 2) hint--bottom + * 3) hint--left + * 4) hint--right + */ +/** + * set default color for tooltip arrows + */ +.hint--top:before { + border-top-color: #383838; } + +.hint--bottom:before { + border-bottom-color: #383838; } + +.hint--left:before { + border-left-color: #383838; } + +.hint--right:before { + border-right-color: #383838; } + +/** + * top tooltip + */ +.hint--top:before { + margin-bottom: -12px; } +.hint--top:after { + margin-left: -18px; } +.hint--top:before, .hint--top:after { + bottom: 100%; + left: 50%; } +.hint--top:hover:after, .hint--top:hover:before, .hint--top:focus:after, .hint--top:focus:before { + -webkit-transform: translateY(-8px); + -moz-transform: translateY(-8px); + transform: translateY(-8px); } + +/** + * bottom tooltip + */ +.hint--bottom:before { + margin-top: -12px; } +.hint--bottom:after { + margin-left: -18px; } +.hint--bottom:before, .hint--bottom:after { + top: 100%; + left: 50%; } +.hint--bottom:hover:after, .hint--bottom:hover:before, .hint--bottom:focus:after, .hint--bottom:focus:before { + -webkit-transform: translateY(8px); + -moz-transform: translateY(8px); + transform: translateY(8px); } + +/** + * right tooltip + */ +.hint--right:before { + margin-left: -12px; + margin-bottom: -6px; } +.hint--right:after { + margin-bottom: -14px; } +.hint--right:before, .hint--right:after { + left: 100%; + bottom: 50%; } +.hint--right:hover:after, .hint--right:hover:before, .hint--right:focus:after, .hint--right:focus:before { + -webkit-transform: translateX(8px); + -moz-transform: translateX(8px); + transform: translateX(8px); } + +/** + * left tooltip + */ +.hint--left:before { + margin-right: -12px; + margin-bottom: -6px; } +.hint--left:after { + margin-bottom: -14px; } +.hint--left:before, .hint--left:after { + right: 100%; + bottom: 50%; } +.hint--left:hover:after, .hint--left:hover:before, .hint--left:focus:after, .hint--left:focus:before { + -webkit-transform: translateX(-8px); + -moz-transform: translateX(-8px); + transform: translateX(-8px); } + +/** + * source: hint-color-types.scss + * + * Contains tooltips of various types based on color differences. + * + * Classes added: + * 1) hint--error + * 2) hint--warning + * 3) hint--info + * 4) hint--success + * + */ +/** + * Error + */ +.hint--error:after { + background-color: #b34e4d; + text-shadow: 0 -1px 0px #592726; } +.hint--error.hint--top:before { + border-top-color: #b34e4d; } +.hint--error.hint--bottom:before { + border-bottom-color: #b34e4d; } +.hint--error.hint--left:before { + border-left-color: #b34e4d; } +.hint--error.hint--right:before { + border-right-color: #b34e4d; } + +/** + * Warning + */ +.hint--warning:after { + background-color: #c09854; + text-shadow: 0 -1px 0px #6c5328; } +.hint--warning.hint--top:before { + border-top-color: #c09854; } +.hint--warning.hint--bottom:before { + border-bottom-color: #c09854; } +.hint--warning.hint--left:before { + border-left-color: #c09854; } +.hint--warning.hint--right:before { + border-right-color: #c09854; } + +/** + * Info + */ +.hint--info:after { + background-color: #3986ac; + text-shadow: 0 -1px 0px #193b4d; } +.hint--info.hint--top:before { + border-top-color: #3986ac; } +.hint--info.hint--bottom:before { + border-bottom-color: #3986ac; } +.hint--info.hint--left:before { + border-left-color: #3986ac; } +.hint--info.hint--right:before { + border-right-color: #3986ac; } + +/** + * Success + */ +.hint--success:after { + background-color: #458746; + text-shadow: 0 -1px 0px #1a321a; } +.hint--success.hint--top:before { + border-top-color: #458746; } +.hint--success.hint--bottom:before { + border-bottom-color: #458746; } +.hint--success.hint--left:before { + border-left-color: #458746; } +.hint--success.hint--right:before { + border-right-color: #458746; } + +/** + * source: hint-always.scss + * + * Defines a persisted tooltip which shows always. + * + * Classes added: + * 1) hint--always + * + */ +.hint--always:after, .hint--always:before { + opacity: 1; + visibility: visible; } +.hint--always.hint--top:after, .hint--always.hint--top:before { + -webkit-transform: translateY(-8px); + -moz-transform: translateY(-8px); + transform: translateY(-8px); } +.hint--always.hint--bottom:after, .hint--always.hint--bottom:before { + -webkit-transform: translateY(8px); + -moz-transform: translateY(8px); + transform: translateY(8px); } +.hint--always.hint--left:after, .hint--always.hint--left:before { + -webkit-transform: translateX(-8px); + -moz-transform: translateX(-8px); + transform: translateX(-8px); } +.hint--always.hint--right:after, .hint--always.hint--right:before { + -webkit-transform: translateX(8px); + -moz-transform: translateX(8px); + transform: translateX(8px); } + +/** + * source: hint-rounded.scss + * + * Defines rounded corner tooltips. + * + * Classes added: + * 1) hint--rounded + * + */ +.hint--rounded:after { + border-radius: 4px; } + +/** + * source: hint-effects.scss + * + * Defines various transition effects for the tooltips. + * + * Classes added: + * 1) hint--no-animate + * 2) hint--bounce + * + */ +.hint--no-animate:before, .hint--no-animate:after { + -webkit-transition-duration: 0ms; + -moz-transition-duration: 0ms; + transition-duration: 0ms; } + +.hint--bounce:before, .hint--bounce:after { + -webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); + -moz-transition: opacity 0.3s ease, visibility 0.3s ease, -moz-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); + transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } diff --git a/core/core.libraries.yml b/core/core.libraries.yml index cd03cd3..673f83e 100644 --- a/core/core.libraries.yml +++ b/core/core.libraries.yml @@ -281,6 +281,13 @@ html5shiv: js: assets/vendor/html5shiv/html5.js: { every_page: true, weight: -22, browsers: { IE: 'lte IE 8', '!IE': false } } +hint.css: + remote: https://github.com/chinchang/hint.css + version: 1.3.1 + css: + component: + assets/vendor/hint.css/hint.css: { } + jquery: remote: https://github.com/jquery/jquery version: 2.1.0 diff --git a/core/modules/shortcut/css/shortcut.theme.css b/core/modules/shortcut/css/shortcut.theme.css index e251f62..9984ae1 100644 --- a/core/modules/shortcut/css/shortcut.theme.css +++ b/core/modules/shortcut/css/shortcut.theme.css @@ -27,33 +27,3 @@ display: inline-block; margin-left: 0.3em; } -.add-or-remove-shortcuts .text { - background: #000000; - background: rgba(0, 0, 0, 0.5); - border-radius: 5px; - padding: 0 5px; - color: #ffffff; - display: inline-block; - margin-left: 0.3em; - opacity: 0; - -ms-transform: translateY(-12px); - -moz-transform: translateY(-12px); - -webkit-transform: translateY(-12px); - transform: translateY(-12px); - -webkit-transition: all 200ms ease-out; - -moz-transition: all 200ms ease-out; - transition: all 200ms ease-out; - -ms-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -.add-or-remove-shortcuts a:hover .text, -.add-or-remove-shortcuts a:focus .text { - opacity: 1; - -o-transform: translateY(-2px); - -ms-transform: translateY(-2px); - -moz-transform: translateY(-2px); - -webkit-transform: translateY(-2px); - transform: translateY(-2px); -} diff --git a/core/modules/shortcut/shortcut.module b/core/modules/shortcut/shortcut.module index 6b516d1..5776787 100644 --- a/core/modules/shortcut/shortcut.module +++ b/core/modules/shortcut/shortcut.module @@ -374,13 +374,13 @@ function shortcut_preprocess_page(&$variables) { $link_mode = isset($shortcut_id) ? "remove" : "add"; if ($link_mode == "add") { - $link_text = shortcut_set_switch_access() ? t('Add to %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->label())) : t('Add to shortcuts'); + $link_text = shortcut_set_switch_access() ? t('Add to @shortcut_set shortcuts', array('@shortcut_set' => $shortcut_set->label())) : t('Add to shortcuts'); $route_name = 'shortcut.link_add_inline'; $route_parameters = array('shortcut_set' => $shortcut_set->id()); } else { $query['id'] = $shortcut_id; - $link_text = shortcut_set_switch_access() ? t('Remove from %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->label())) : t('Remove from shortcuts'); + $link_text = shortcut_set_switch_access() ? t('Remove from @shortcut_set shortcuts', array('@shortcut_set' => $shortcut_set->label())) : t('Remove from shortcuts'); $route_name = 'shortcut.link_delete'; $route_parameters = array('shortcut' => $shortcut_id); } @@ -390,14 +390,22 @@ function shortcut_preprocess_page(&$variables) { '#attached' => array( 'library' => array( 'shortcut/drupal.shortcut', + 'core/hint.css', ), ), '#prefix' => '', ); } diff --git a/core/themes/seven/css/components/seven.hint.css b/core/themes/seven/css/components/seven.hint.css new file mode 100644 index 0000000..5fb7895 --- /dev/null +++ b/core/themes/seven/css/components/seven.hint.css @@ -0,0 +1,13 @@ +.hint:before, +[data-hint]:before { + border-right-color: #000000; + border-right-color: rgba(0, 0, 0, 0.5); +} +.hint:after, +[data-hint]:after { + background: #000000; + background: rgba(0, 0, 0, 0.5); + border-radius: 5px; + box-shadow: none; + text-shadow: none; +} diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme index b04d2d5..240775d 100644 --- a/core/themes/seven/seven.theme +++ b/core/themes/seven/seven.theme @@ -13,6 +13,8 @@ use Drupal\Component\Utility\String; * Implements hook_preprocess_HOOK() for page templates. */ function seven_preprocess_page(&$variables) { + $theme_path = drupal_get_path('theme', 'seven'); + /** @var \Drupal\Core\Page\HtmlPage $page_object */ $page_object = $variables['page']['#page']; $attributes = $page_object->getBodyAttributes(); @@ -34,6 +36,10 @@ function seven_preprocess_page(&$variables) { '#theme' => 'menu_local_tasks', '#secondary' => isset($variables['tabs']['#secondary']) ? $variables['tabs']['#secondary'] : '', ); + + if (theme_get_setting('shortcut_module_link')) { + $variables['title_suffix']['add_or_remove_shortcut']['#attached']['css'] = array($theme_path . '/css/components/seven.hint.css'); + } } /**