Feature #19097 » 0001-Responsive-layout.patch
| app/helpers/application_helper.rb | ||
|---|---|---|
| 337 | 337 |
{ :value => project_path(:id => p, :jump => current_menu_item) }
|
| 338 | 338 |
end |
| 339 |
content_tag( :span, nil, :class => 'jump-box-arrow') + |
|
| 339 | 340 |
select_tag('project_quick_jump_box', options, :onchange => 'if (this.value != \'\') { window.location = this.value; }')
|
| 340 | 341 |
end |
| 341 | 342 |
end |
| ... | ... | |
| 1256 | 1257 |
# Returns the javascript tags that are included in the html layout head |
| 1257 | 1258 |
def javascript_heads |
| 1258 |
tags = javascript_include_tag('jquery-1.11.1-ui-1.11.0-ujs-3.1.3', 'application')
|
|
| 1259 |
tags = javascript_include_tag('jquery-1.11.1-ui-1.11.0-ujs-3.1.3', 'application', 'responsive')
|
|
| 1259 | 1260 |
unless User.current.pref.warn_on_leaving_unsaved == '0' |
| 1260 | 1261 |
tags << "\n".html_safe + javascript_tag("$(window).load(function(){ warnLeavingUnsaved('#{escape_javascript l(:text_warn_on_leaving_unsaved)}'); });")
|
| 1261 | 1262 |
end |
| app/views/layouts/base.html.erb | ||
|---|---|---|
| 3 | 3 |
<head> |
| 4 | 4 |
<meta charset="utf-8" /> |
| 5 | 5 |
<title><%= html_title %></title> |
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
| 6 | 7 |
<meta name="description" content="<%= Redmine::Info.app_name %>" /> |
| 7 | 8 |
<meta name="keywords" content="issue,bug,tracker" /> |
| 8 | 9 |
<%= csrf_meta_tag %> |
| 9 | 10 |
<%= favicon %> |
| 10 |
<%= stylesheet_link_tag 'jquery/jquery-ui-1.11.0', 'application', :media => 'all' %> |
|
| 11 |
<%= stylesheet_link_tag 'jquery/jquery-ui-1.11.0', 'application', 'responsive', :media => 'all' %>
|
|
| 11 | 12 |
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> |
| 12 | 13 |
<%= javascript_heads %> |
| 13 | 14 |
<%= heads_for_theme %> |
| ... | ... | |
| 17 | 18 |
</head> |
| 18 | 19 |
<body class="<%= body_css_classes %>"> |
| 19 | 20 |
<div id="wrapper"> |
| 21 | ||
| 22 |
<div class="flyout-menu js-flyout-menu"> |
|
| 23 | ||
| 24 | ||
| 25 |
<% if User.current.logged? || !Setting.login_required? %> |
|
| 26 |
<div class="flyout-menu__search"> |
|
| 27 |
<%= form_tag({:controller => 'search', :action => 'index', :id => @project}, :method => :get ) do %>
|
|
| 28 |
<%= hidden_field_tag(controller.default_search_scope, 1, :id => nil) if controller.default_search_scope %> |
|
| 29 |
<%= label_tag 'flyout-search', '⚲'.html_safe, :class => 'search-magnifier search-magnifier--flyout' %> |
|
| 30 |
<%= text_field_tag 'q', @question, :id => 'flyout-search', :class => 'small js-search-input', :placeholder => l(:label_search) %> |
|
| 31 |
<% end %> |
|
| 32 |
</div> |
|
| 33 |
<% end %> |
|
| 34 | ||
| 35 |
<% if User.current.logged? %> |
|
| 36 |
<div class="flyout-menu__avatar <% if !Setting.gravatar_enabled? %>flyout-menu__avatar--no-avatar<% end %>"> |
|
| 37 |
<% if Setting.gravatar_enabled? %> |
|
| 38 |
<%= link_to(avatar(User.current, :size => "80"), user_path(User.current)) %> |
|
| 39 |
<% end %> |
|
| 40 |
<%= link_to_user(User.current, :format => :username) %> |
|
| 41 |
</div> |
|
| 42 |
<% end %> |
|
| 43 | ||
| 44 |
<% if display_main_menu?(@project) %> |
|
| 45 |
<h3><%= l(:label_project) %></h3> |
|
| 46 |
<span class="js-project-menu"></span> |
|
| 47 |
<% end %> |
|
| 48 | ||
| 49 |
<h3><%= l(:label_general) %></h3> |
|
| 50 |
<span class="js-general-menu"></span> |
|
| 51 | ||
| 52 |
<span class="js-sidebar flyout-menu__sidebar"></span> |
|
| 53 | ||
| 54 |
<h3><%= l(:label_profile) %></h3> |
|
| 55 |
<span class="js-profile-menu"></span> |
|
| 56 | ||
| 57 |
</div> |
|
| 58 | ||
| 20 | 59 |
<div id="wrapper2"> |
| 21 | 60 |
<div id="wrapper3"> |
| 22 | 61 |
<div id="top-menu"> |
| ... | ... | |
| 28 | 67 |
</div> |
| 29 | 68 |
<div id="header"> |
| 69 | ||
| 70 |
<a href="#" class="mobile-toggle-button js-flyout-menu-toggle-button"></a> |
|
| 71 | ||
| 30 | 72 |
<% if User.current.logged? || !Setting.login_required? %> |
| 31 | 73 |
<div id="quick-search"> |
| 32 | 74 |
<%= form_tag({:controller => 'search', :action => 'index', :id => @project}, :method => :get ) do %>
|
| public/javascripts/responsive.js | ||
|---|---|---|
| 1 |
// generic layout specific responsive stuff goes here |
|
| 2 | ||
| 3 |
function openFlyout() {
|
|
| 4 |
$('html').addClass('flyout-is-active');
|
|
| 5 |
$('#wrapper2').on('click', function(e){
|
|
| 6 |
e.preventDefault(); |
|
| 7 |
e.stopPropagation(); |
|
| 8 |
closeFlyout(); |
|
| 9 |
}); |
|
| 10 |
} |
|
| 11 | ||
| 12 |
function closeFlyout() {
|
|
| 13 |
$('html').removeClass('flyout-is-active');
|
|
| 14 |
$('#wrapper2').off('click');
|
|
| 15 |
} |
|
| 16 | ||
| 17 | ||
| 18 |
function isMobile() {
|
|
| 19 |
return $('.js-flyout-menu-toggle-button').is(":visible");
|
|
| 20 |
} |
|
| 21 | ||
| 22 |
function setupFlyout() {
|
|
| 23 |
var mobileInit = false, |
|
| 24 |
desktopInit = false; |
|
| 25 | ||
| 26 |
/* click handler for mobile menu toggle */ |
|
| 27 |
$('.js-flyout-menu-toggle-button').on('click', function(e) {
|
|
| 28 |
e.preventDefault(); |
|
| 29 |
e.stopPropagation(); |
|
| 30 |
if($('html').hasClass('flyout-is-active')) {
|
|
| 31 |
closeFlyout(); |
|
| 32 |
} else {
|
|
| 33 |
openFlyout(); |
|
| 34 |
} |
|
| 35 |
}); |
|
| 36 | ||
| 37 |
/* bind resize handler */ |
|
| 38 |
$(window).resize(function() {
|
|
| 39 |
initMenu(); |
|
| 40 |
}) |
|
| 41 | ||
| 42 |
/* menu init function for dom detaching and appending on mobile / desktop view */ |
|
| 43 |
function initMenu() {
|
|
| 44 | ||
| 45 |
var _initMobileMenu = function() {
|
|
| 46 |
/* only init mobile menu, if it hasn't been done yet */ |
|
| 47 |
if(!mobileInit) {
|
|
| 48 | ||
| 49 |
$('#main-menu > ul').detach().appendTo('.js-project-menu');
|
|
| 50 |
$('#top-menu > ul').detach().appendTo('.js-general-menu');
|
|
| 51 |
$('#sidebar > *').detach().appendTo('.js-sidebar');
|
|
| 52 |
$('#account ul').detach().appendTo('.js-profile-menu');
|
|
| 53 | ||
| 54 |
mobileInit = true; |
|
| 55 |
desktopInit = false; |
|
| 56 |
} |
|
| 57 |
} |
|
| 58 | ||
| 59 |
var _initDesktopMenu = function() {
|
|
| 60 |
if(!desktopInit) {
|
|
| 61 | ||
| 62 |
$('.js-project-menu > ul').detach().appendTo('#main-menu');
|
|
| 63 |
$('.js-general-menu ul').detach().appendTo('#top-menu');
|
|
| 64 |
$('.js-sidebar > *').detach().appendTo('#sidebar');
|
|
| 65 |
$('.js-profile-menu ul').detach().appendTo('#account');
|
|
| 66 | ||
| 67 |
desktopInit = true; |
|
| 68 |
mobileInit = false; |
|
| 69 |
} |
|
| 70 |
} |
|
| 71 | ||
| 72 |
if(isMobile()) {
|
|
| 73 |
_initMobileMenu(); |
|
| 74 |
} else {
|
|
| 75 |
_initDesktopMenu(); |
|
| 76 |
} |
|
| 77 |
} |
|
| 78 | ||
| 79 |
// init menu on page load |
|
| 80 |
initMenu(); |
|
| 81 |
} |
|
| 82 | ||
| 83 |
$(document).ready(setupFlyout); |
|
| public/stylesheets/responsive.css | ||
|---|---|---|
| 1 |
/*----------------------------------------*\ |
|
| 2 |
RESPONSIVE CSS |
|
| 3 |
\*----------------------------------------*/ |
|
| 4 | ||
| 5 | ||
| 6 |
/* |
|
| 7 | ||
| 8 |
CONTENTS |
|
| 9 | ||
| 10 |
A) BASIC MOBILE RESETS |
|
| 11 |
B) HEADER & TOP MENUS |
|
| 12 |
C) MAIN CONTENT & SIDEBAR |
|
| 13 |
D) TOGGLE BUTTON & FLYOUT MENU |
|
| 14 | ||
| 15 |
*/ |
|
| 16 | ||
| 17 | ||
| 18 |
/* Hide new elements (toggle button and flyout menu) above 900px */ |
|
| 19 |
.mobile-toggle-button, |
|
| 20 |
.flyout-menu |
|
| 21 |
{
|
|
| 22 |
display: none; |
|
| 23 |
} |
|
| 24 | ||
| 25 |
/* |
|
| 26 |
redmine's body is set to min-width: 900px |
|
| 27 |
add first breakpoint here and start adding responsiveness |
|
| 28 |
*/ |
|
| 29 | ||
| 30 |
@media all and (max-width: 899px) |
|
| 31 |
{
|
|
| 32 |
/*----------------------------------------*\ |
|
| 33 |
A) BASIC MOBILE RESETS |
|
| 34 |
\*----------------------------------------*/ |
|
| 35 | ||
| 36 |
/* |
|
| 37 |
apply natural border box, see: http://www.paulirish.com/2012/box-sizing-border-box-ftw/ |
|
| 38 |
this helps us to better deal with percentages and padding / margin |
|
| 39 |
*/ |
|
| 40 |
*, |
|
| 41 |
*:before, |
|
| 42 |
*:after |
|
| 43 |
{
|
|
| 44 |
-webkit-box-sizing: border-box; |
|
| 45 |
-moz-box-sizing: border-box; |
|
| 46 |
box-sizing: border-box; |
|
| 47 |
} |
|
| 48 | ||
| 49 |
body, |
|
| 50 |
html |
|
| 51 |
{
|
|
| 52 |
height: 100%; |
|
| 53 |
margin: 0; |
|
| 54 |
padding: 0; |
|
| 55 |
} |
|
| 56 | ||
| 57 |
html |
|
| 58 |
{
|
|
| 59 |
overflow-y: auto; /* avoid 2nd scrollbar on desktop */ |
|
| 60 |
} |
|
| 61 | ||
| 62 |
body |
|
| 63 |
{
|
|
| 64 |
overflow-x: hidden; /* hide horizontal overflow */ |
|
| 65 | ||
| 66 |
min-width: 0; /* reset the min-width of 900px */ |
|
| 67 |
} |
|
| 68 | ||
| 69 | ||
| 70 |
body, |
|
| 71 |
input, |
|
| 72 |
select, |
|
| 73 |
textarea, |
|
| 74 |
button |
|
| 75 |
{
|
|
| 76 |
font-size: 14px; /* Set font-size for standard elements to 14px */ |
|
| 77 |
} |
|
| 78 | ||
| 79 | ||
| 80 |
select |
|
| 81 |
{
|
|
| 82 |
max-width: 100%; /* prevent long names within select menues from breaking content */ |
|
| 83 |
} |
|
| 84 | ||
| 85 | ||
| 86 |
#wrapper |
|
| 87 |
{
|
|
| 88 |
position: relative; |
|
| 89 | ||
| 90 |
max-width: 100%; |
|
| 91 |
} |
|
| 92 | ||
| 93 |
#wrapper, |
|
| 94 |
#wrapper2 |
|
| 95 |
{
|
|
| 96 |
margin: 0; |
|
| 97 |
} |
|
| 98 | ||
| 99 |
/*----------------------------------------*\ |
|
| 100 |
B) HEADER & TOP MENUS |
|
| 101 |
\*----------------------------------------*/ |
|
| 102 | ||
| 103 |
#header |
|
| 104 |
{
|
|
| 105 |
width: 100%; |
|
| 106 |
height: 64px; /* the height of our header on mobile */ |
|
| 107 |
min-height: 0; |
|
| 108 |
margin: 0; |
|
| 109 |
padding: 0; |
|
| 110 | ||
| 111 |
border: none; |
|
| 112 |
background-color: #628db6; |
|
| 113 |
} |
|
| 114 | ||
| 115 |
/* Hide project name on mobile (project name is still visible in select menu) */ |
|
| 116 |
#header h1 |
|
| 117 |
{
|
|
| 118 |
display: none !important; |
|
| 119 |
} |
|
| 120 | ||
| 121 |
/* reset #header a color for mobile toggle button */ |
|
| 122 |
#header a.mobile-toggle-button |
|
| 123 |
{
|
|
| 124 |
color: #f8f8f8; |
|
| 125 |
} |
|
| 126 | ||
| 127 | ||
| 128 |
/* Hide top-menu and main-menu on mobile, because it's placed in our flyout menu */ |
|
| 129 |
#top-menu, |
|
| 130 |
#header #main-menu |
|
| 131 |
{
|
|
| 132 |
display: none; |
|
| 133 |
} |
|
| 134 | ||
| 135 |
/* the quick search within header holding search form and #project_quick_jump_box box*/ |
|
| 136 |
#header #quick-search |
|
| 137 |
{
|
|
| 138 |
float: none; |
|
| 139 |
clear: none; /* there are themes which set clear property, this resets it */ |
|
| 140 | ||
| 141 |
max-width: 100%; /* reset max-width */ |
|
| 142 |
margin: 0; |
|
| 143 | ||
| 144 |
background: inherit; |
|
| 145 |
} |
|
| 146 | ||
| 147 |
/* this represents the dropdown arrow to left of the mobile project menu */ |
|
| 148 |
#header .jump-box-arrow:before |
|
| 149 |
{
|
|
| 150 |
/* set a font-size in order to achive same result in different themes */ |
|
| 151 |
font-family: Verdana, sans-serif; |
|
| 152 |
font-size: 2em; |
|
| 153 |
line-height: 64px; |
|
| 154 | ||
| 155 |
position: absolute; |
|
| 156 |
left: 0; |
|
| 157 | ||
| 158 |
width: 2em; |
|
| 159 |
padding: 0 .5em; |
|
| 160 |
/* achieve dropdwon arrow by scaling a caret character */ |
|
| 161 | ||
| 162 |
content: '^'; |
|
| 163 |
-webkit-transform: scale(1,-.8); |
|
| 164 |
-ms-transform: scale(1,-.8); |
|
| 165 |
transform: scale(1,-.8); |
|
| 166 |
text-align: right; |
|
| 167 |
pointer-events: none; |
|
| 168 | ||
| 169 |
opacity: .6; |
|
| 170 |
} |
|
| 171 | ||
| 172 |
/* styles for combobox within quick-search (#project_quick_jump_box) */ |
|
| 173 |
#header #quick-search select |
|
| 174 |
{
|
|
| 175 |
font-size: 1.5em; |
|
| 176 |
font-weight: bold; |
|
| 177 |
line-height: 1.2; |
|
| 178 | ||
| 179 |
position: absolute; |
|
| 180 |
top: 15px; |
|
| 181 |
left: 0; |
|
| 182 | ||
| 183 |
float: left; |
|
| 184 | ||
| 185 |
width: 100%; |
|
| 186 |
max-width: 100%; |
|
| 187 |
height: 2em; |
|
| 188 |
height: 35px; |
|
| 189 |
padding: 5px; |
|
| 190 |
padding-right: 72px; |
|
| 191 |
padding-left: 50px; |
|
| 192 | ||
| 193 |
text-indent: .01px; |
|
| 194 | ||
| 195 |
color: inherit; |
|
| 196 |
border: 0; |
|
| 197 |
-webkit-border-radius: 0; |
|
| 198 |
border-radius: 0; |
|
| 199 |
background: none; |
|
| 200 |
-webkit-box-shadow: none; |
|
| 201 |
box-shadow: none; |
|
| 202 |
/* hide default browser arrow */ |
|
| 203 | ||
| 204 |
-webkit-appearance: none; |
|
| 205 |
-moz-appearance: none; |
|
| 206 |
} |
|
| 207 | ||
| 208 |
#header #quick-search form |
|
| 209 |
{
|
|
| 210 |
display: none; |
|
| 211 |
} |
|
| 212 | ||
| 213 |
/*----------------------------------------*\ |
|
| 214 |
C) MAIN CONTENT & SIDEBAR |
|
| 215 |
\*----------------------------------------*/ |
|
| 216 | ||
| 217 |
#main |
|
| 218 |
{
|
|
| 219 |
padding: 0; |
|
| 220 |
} |
|
| 221 | ||
| 222 |
#main.nosidebar #content, |
|
| 223 |
div#content |
|
| 224 |
{
|
|
| 225 |
width: 100%; |
|
| 226 |
min-height: 0; /* reset min-height of #content */ |
|
| 227 |
margin: 0; |
|
| 228 |
} |
|
| 229 | ||
| 230 | ||
| 231 |
/* hide sidebar and sidebar switch panel, since it's placed in mobile flyout menu */ |
|
| 232 |
#sidebar, |
|
| 233 |
#sidebar-switch-panel |
|
| 234 |
{
|
|
| 235 |
display: none; |
|
| 236 |
} |
|
| 237 | ||
| 238 |
.splitcontentleft |
|
| 239 |
{
|
|
| 240 |
width: 100%; /* use full width */ |
|
| 241 |
} |
|
| 242 | ||
| 243 |
.splitcontentright |
|
| 244 |
{
|
|
| 245 |
width: 100%; /* use full width */ |
|
| 246 |
} |
|
| 247 | ||
| 248 |
/*----------------------------------------*\ |
|
| 249 |
D) TOGGLE BUTTON & FLYOUT MENU |
|
| 250 |
\*----------------------------------------*/ |
|
| 251 | ||
| 252 |
/* Mobile toggle button */ |
|
| 253 | ||
| 254 |
.mobile-toggle-button |
|
| 255 |
{
|
|
| 256 |
font-size: 42px; |
|
| 257 |
line-height: 64px; |
|
| 258 | ||
| 259 |
position: relative; |
|
| 260 |
z-index: 10; |
|
| 261 | ||
| 262 |
display: block; /* remove display: none; of non-mobile version */ |
|
| 263 |
float: right; |
|
| 264 | ||
| 265 |
width: 60px; |
|
| 266 |
height: 64px; |
|
| 267 |
margin-top: 0; |
|
| 268 | ||
| 269 |
text-align: center; |
|
| 270 | ||
| 271 |
border-left: 1px solid #ddd; |
|
| 272 |
} |
|
| 273 | ||
| 274 |
.mobile-toggle-button:hover, |
|
| 275 |
.mobile-toggle-button:active |
|
| 276 |
{
|
|
| 277 |
text-decoration: none; |
|
| 278 |
} |
|
| 279 | ||
| 280 |
.mobile-toggle-button:after |
|
| 281 |
{
|
|
| 282 |
font-family: Verdana, sans-serif; |
|
| 283 | ||
| 284 |
display: block; |
|
| 285 | ||
| 286 |
margin-top: -3px; |
|
| 287 | ||
| 288 |
content: '\2261'; |
|
| 289 |
} |
|
| 290 | ||
| 291 |
/* search magnifier icon */ |
|
| 292 |
.search-magnifier |
|
| 293 |
{
|
|
| 294 |
font-family: Verdana; |
|
| 295 | ||
| 296 |
cursor: pointer; |
|
| 297 |
-webkit-transform: rotate(-45deg); |
|
| 298 |
-moz-transform: rotate(45deg); |
|
| 299 |
-o-transform: rotate(45deg); |
|
| 300 | ||
| 301 |
color: #bbb; |
|
| 302 |
} |
|
| 303 | ||
| 304 |
.search-magnifier--flyout |
|
| 305 |
{
|
|
| 306 |
font-size: 25px; |
|
| 307 |
line-height: 54px; |
|
| 308 | ||
| 309 |
position: absolute; |
|
| 310 |
z-index: 1; |
|
| 311 |
left: 12px; |
|
| 312 |
} |
|
| 313 | ||
| 314 | ||
| 315 |
/* Flyout Menu */ |
|
| 316 | ||
| 317 |
.flyout-menu |
|
| 318 |
{
|
|
| 319 |
position: absolute; |
|
| 320 |
right: -250px; |
|
| 321 | ||
| 322 |
display: block; /* remove display: none; of non-mobile version */ |
|
| 323 |
overflow-x: hidden; |
|
| 324 | ||
| 325 |
width: 250px; |
|
| 326 |
height: 100%; |
|
| 327 |
margin: 0; /* reset margin for themes that define it */ |
|
| 328 |
padding: 0; /* reset padding for themes that define it */ |
|
| 329 | ||
| 330 |
color: white; |
|
| 331 |
background-color: #3e5b76; |
|
| 332 |
} |
|
| 333 | ||
| 334 | ||
| 335 |
/* avoid zoom on search input focus for ios devices */ |
|
| 336 |
.flyout-menu input[type='text'] |
|
| 337 |
{
|
|
| 338 |
font-size: 16px; |
|
| 339 |
} |
|
| 340 | ||
| 341 |
.flyout-menu h3 |
|
| 342 |
{
|
|
| 343 |
font-size: 11px; |
|
| 344 |
line-height: 19px; |
|
| 345 | ||
| 346 |
height: 20px; |
|
| 347 |
margin: 0; |
|
| 348 |
padding: 0; |
|
| 349 | ||
| 350 |
letter-spacing: .1em; |
|
| 351 |
text-transform: uppercase; |
|
| 352 | ||
| 353 |
color: white; |
|
| 354 |
border-top: 1px solid #506a83; |
|
| 355 |
border-bottom: 1px solid #506a83; |
|
| 356 |
background-color: #628db6; |
|
| 357 |
} |
|
| 358 | ||
| 359 |
.flyout-menu h4 |
|
| 360 |
{
|
|
| 361 |
color: white; |
|
| 362 |
} |
|
| 363 | ||
| 364 |
.flyout-menu h3, |
|
| 365 |
.flyout-menu h4, |
|
| 366 |
.flyout-menu > p, |
|
| 367 |
.flyout-menu > a, |
|
| 368 |
.flyout-menu ul li a, |
|
| 369 |
.flyout-menu__search, |
|
| 370 |
.flyout-menu__sidebar > div, |
|
| 371 |
.flyout-menu__sidebar > p, |
|
| 372 |
.flyout-menu__sidebar > a, |
|
| 373 |
.flyout-menu__sidebar > form, |
|
| 374 |
.flyout-menu > div, |
|
| 375 |
.flyout-menu > form |
|
| 376 |
{
|
|
| 377 |
padding-left: 8px; |
|
| 378 |
} |
|
| 379 | ||
| 380 |
.flyout-menu .flyout-menu__avatar |
|
| 381 |
{
|
|
| 382 |
margin-top: -1px; /* move avatar up 1px */ |
|
| 383 |
padding-left: 0; |
|
| 384 |
} |
|
| 385 | ||
| 386 |
.flyout-menu__sidebar > form |
|
| 387 |
{
|
|
| 388 |
display: block; |
|
| 389 |
} |
|
| 390 | ||
| 391 |
.flyout-menu__sidebar > form h3 |
|
| 392 |
{
|
|
| 393 |
margin-left: -8px; |
|
| 394 |
} |
|
| 395 | ||
| 396 |
.flyout-menu__sidebar > form label |
|
| 397 |
{
|
|
| 398 |
display: inline-block; |
|
| 399 | ||
| 400 |
margin: 8px 0; |
|
| 401 |
} |
|
| 402 | ||
| 403 |
.flyout-menu__sidebar > form br br |
|
| 404 |
{
|
|
| 405 |
display: none; |
|
| 406 |
} |
|
| 407 | ||
| 408 |
.flyout-menu ul |
|
| 409 |
{
|
|
| 410 |
margin: 0; |
|
| 411 |
padding: 0; |
|
| 412 | ||
| 413 |
list-style: none; |
|
| 414 |
} |
|
| 415 | ||
| 416 |
.flyout-menu ul li a |
|
| 417 |
{
|
|
| 418 |
line-height: 40px; |
|
| 419 | ||
| 420 |
display: block; |
|
| 421 |
overflow: hidden; |
|
| 422 | ||
| 423 |
height: 40px; |
|
| 424 | ||
| 425 |
white-space: nowrap; |
|
| 426 |
text-overflow: ellipsis; |
|
| 427 | ||
| 428 |
border-top: 1px solid rgba(255,255,255,.1); |
|
| 429 |
} |
|
| 430 | ||
| 431 |
.flyout-menu ul li:first-child a |
|
| 432 |
{
|
|
| 433 |
line-height: 39px; |
|
| 434 | ||
| 435 |
height: 39px; |
|
| 436 | ||
| 437 |
border-top: none; |
|
| 438 |
} |
|
| 439 | ||
| 440 |
.flyout-menu a |
|
| 441 |
{
|
|
| 442 |
color: white; |
|
| 443 |
} |
|
| 444 | ||
| 445 |
.flyout-menu ul li a:hover |
|
| 446 |
{
|
|
| 447 |
text-decoration: none; |
|
| 448 |
} |
|
| 449 | ||
| 450 |
.flyout-menu ul li a.new-object, |
|
| 451 |
.new-object ~ .menu-children |
|
| 452 |
{
|
|
| 453 |
display: none; |
|
| 454 |
} |
|
| 455 | ||
| 456 |
/* Left flyout search container */ |
|
| 457 |
.flyout-menu__search |
|
| 458 |
{
|
|
| 459 |
line-height: 54px; |
|
| 460 | ||
| 461 |
height: 64px; |
|
| 462 |
padding-top: 3px; |
|
| 463 |
padding-right: 8px; |
|
| 464 |
} |
|
| 465 | ||
| 466 |
.flyout-menu__search input[type='text'] |
|
| 467 |
{
|
|
| 468 |
line-height: 2; |
|
| 469 | ||
| 470 |
width: 100%; |
|
| 471 |
height: 38px; |
|
| 472 |
padding-left: 27px; |
|
| 473 | ||
| 474 |
vertical-align: middle; |
|
| 475 | ||
| 476 |
border: none; |
|
| 477 |
-webkit-border-radius: 3px; |
|
| 478 |
border-radius: 3px; |
|
| 479 |
background-color: #fff; |
|
| 480 |
} |
|
| 481 | ||
| 482 |
.flyout-menu__avatar |
|
| 483 |
{
|
|
| 484 |
display: -webkit-box; |
|
| 485 |
display: -webkit-flex; |
|
| 486 |
display: -ms-flexbox; |
|
| 487 |
display: flex; |
|
| 488 | ||
| 489 |
width: 100%; |
|
| 490 | ||
| 491 |
border-top: 1px solid rgba(255,255,255,.1); |
|
| 492 |
} |
|
| 493 | ||
| 494 | ||
| 495 |
.flyout-menu__avatar img.gravatar |
|
| 496 |
{
|
|
| 497 |
width: 40px; |
|
| 498 |
height: 40px; |
|
| 499 |
padding: 0; |
|
| 500 | ||
| 501 |
vertical-align: top; |
|
| 502 | ||
| 503 |
border-width: 0; |
|
| 504 |
} |
|
| 505 | ||
| 506 |
.flyout-menu__avatar a |
|
| 507 |
{
|
|
| 508 |
line-height: 40px; |
|
| 509 | ||
| 510 |
height: auto; |
|
| 511 |
height: 40px; |
|
| 512 | ||
| 513 |
text-decoration: none; |
|
| 514 | ||
| 515 |
color: white; |
|
| 516 |
} |
|
| 517 | ||
| 518 |
/* avatar */ |
|
| 519 |
.flyout-menu__avatar a:first-child |
|
| 520 |
{
|
|
| 521 |
line-height: 0; |
|
| 522 | ||
| 523 |
width: 40px; |
|
| 524 |
padding: 0; |
|
| 525 |
} |
|
| 526 | ||
| 527 |
.flyout-menu__avatar .user |
|
| 528 |
{
|
|
| 529 |
padding-left: 15px; |
|
| 530 |
} |
|
| 531 | ||
| 532 |
/* user link when no avatar is present */ |
|
| 533 |
.flyout-menu__avatar--no-avatar a.user |
|
| 534 |
{
|
|
| 535 |
line-height: 40px; |
|
| 536 | ||
| 537 |
padding-left: 8px; |
|
| 538 |
} |
|
| 539 | ||
| 540 | ||
| 541 |
.flyout-is-active body |
|
| 542 |
{
|
|
| 543 |
overflow: hidden; /* for body not to have scrollbars when left flyout menu is active */ |
|
| 544 |
} |
|
| 545 | ||
| 546 |
html.flyout-is-active |
|
| 547 |
{
|
|
| 548 |
overflow: hidden; |
|
| 549 |
} |
|
| 550 | ||
| 551 | ||
| 552 |
.flyout-is-active #wrapper |
|
| 553 |
{
|
|
| 554 |
right: 250px; /* when left flyout is active, move body to the right (same amount like flyout-menu's width) */ |
|
| 555 | ||
| 556 |
height: 100%; |
|
| 557 |
} |
|
| 558 | ||
| 559 |
.flyout-is-active .mobile-toggle-button:after |
|
| 560 |
{
|
|
| 561 |
content: '\00D7'; /* close glyph */ |
|
| 562 |
} |
|
| 563 | ||
| 564 |
.flyout-is-active #wrapper2 |
|
| 565 |
{
|
|
| 566 | ||
| 567 |
/* |
|
| 568 |
* only relevant for devices with cursor when flyout it active, in order to show, |
|
| 569 |
* that whole wrapper content is clickable and closes flyout menu |
|
| 570 |
*/ |
|
| 571 |
cursor: pointer; |
|
| 572 |
} |
|
| 573 | ||
| 574 | ||
| 575 |
#admin-menu |
|
| 576 |
{
|
|
| 577 |
padding-left: 0; |
|
| 578 |
} |
|
| 579 | ||
| 580 |
#admin-menu li |
|
| 581 |
{
|
|
| 582 |
padding-bottom: 0; |
|
| 583 |
} |
|
| 584 | ||
| 585 |
#admin-menu a, |
|
| 586 |
#admin-menu a.selected |
|
| 587 |
{
|
|
| 588 |
line-height: 40px; |
|
| 589 | ||
| 590 |
padding: 0; |
|
| 591 |
padding-left: 32px !important; |
|
| 592 | ||
| 593 |
background-position: 8px 50%; |
|
| 594 |
} |
|
| 595 |
} |
|
- « Previous
- 1
- …
- 14
- 15
- 16
- Next »