[MERGE] Forward port branch 9.0 up to 945d9c6fd4

This commit is contained in:
Yannick Tivisse 2016-09-21 10:55:37 +02:00
commit 0469024b3a
234 changed files with 53489 additions and 11546 deletions

View File

@ -12,6 +12,11 @@ file_filter = locale/<lang>/LC_MESSAGES/applications.po
source_file = locale/sources/applications.pot
source_lang = en
[odoo-9-doc.db_management]
file_filter = locale/<lang>/LC_MESSAGES/db_management.po
source_file = locale/sources/db_management.pot
source_lang = en
[odoo-9-doc.crm]
file_filter = locale/<lang>/LC_MESSAGES/crm.po
source_file = locale/sources/crm.pot

View File

@ -127,6 +127,7 @@ latexpdf:
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
cp $(BUILDDIR)/latex/*.pdf $(BUILDDIR)/html/
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex

View File

@ -0,0 +1,23 @@
{# warning: if doc structure change, these rules may have to change as well #}
{# ===== VARIABLES ====== #}
{% set master_doc_short_name = 'User Doc' %}
{% if pagename == master_doc %}
<li><a href="{{ pathto(master_doc) }}" class="active">{{ master_doc_short_name }}</a></li>
{% else %}
{% for parent in parents %}
{% if loop.length > 1%}
{% if loop.first %}
<li><a href="{{ pathto(master_doc) }}">{{ master_doc_short_name }}</a></li>
{% else %}
{% if loop.index == 2 %}
<li><a href="{{ parent.link|e }}">{{parent.title}}</a></li>
{% endif %}
{% endif %}
{% else %}
<li><a href="{{ pathto(master_doc) }}">{{ master_doc_short_name }}</a></li>
{% endif %}
{% endfor %}
<li class="active"><a href="#">{{ meta.get('main-title', title) }}</a></li>
{% endif %}

View File

@ -45,93 +45,213 @@
{%- endblock -%}
{%- block header -%}
<header class="{{ ' '.join(classes) }}">
<figure class="card top">
<span class="card-img" {% if meta['banner'] %}style="background-image: url('{{ pathto('_static/' + meta['banner'], True) }}');"{% endif %}></span>
</figure>
</header>
<nav id="main_navbar" class="navbar {{ ' '.join(classes) }}">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".navbar-main">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<nav class="nav navbar-nav navbar-left">
<li id="main-back">
{# warning: if doc structure change, these rules may have
to change as well #}
{% if pagename.count('/') %}
{# If the current document is an application's content,
link to the application root #}
{% set updoc, _ = pagename.split('/', 1) %}
{% else %}
{# otherwise link to master_doc #}
{% set updoc = master_doc %}
{% endif %}
<a href="{{ pathto(updoc) }}" class="mdi-navigation-arrow-back"></a>
</li>
<li>
<h1 id="main_title">
{{ meta.get('main-title', title) }}
</h1>
</li>
</nav>
<header class="o_main_header o_has_sub_nav o_inverted {{ ' '.join(classes) }}">
<div class="o_main_header_main">
<a class="pull-left o_logo" href="/"></a>
<a href="#" class="o_mobile_menu_toggle visible-xs-block pull-right">
<span class="sr-only">Toggle navigation</span>
<span class="mdi-navigation-menu"></span>
</a>
<div class="o_header_buttons">
<a href="http://www.odoo.com/trial" class="btn btn-primary">Start Now</a>
</div>
<nav class="collapse navbar-collapse navbar-main navbar-right" role="navigation">
{% if languages %}
<ul class="navbar-nav navbar-right nav">
<li class="languages">
<a class="dropdown-toggle" data-toggle="dropdown">
{{ language }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
{% for name, url in languages %}
<li><a href="{{ url }}">{{ name }}</a></li>
{% endfor %}
</ul>
</li>
</ul>
{% endif %}
{{ toctree(titles_only=True, maxdepth=2, includehidden=True, collapse=False, navbar='main') }}
</nav>
<ul class="o_primary_nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle">Apps</a>
<div class="dropdown-menu o_secondary_nav">
<div class="container">
<div class="row">
<div class="col-sm-3 o_website_apps">
<div class="o_nav_app_family">
<span></span> Websites
<div>Build great user experience</div>
</div>
<ul>
<li><a href="https://www.odoo.com/page/website-builder">Website Builder</a></li>
<li><a href="https://www.odoo.com/page/e-commerce">eCommerce</a></li>
<li><a href="https://www.odoo.com/page/blog-engine">Blogs</a></li>
<li><a href="https://www.odoo.com/page/community-builder">Forums</a></li>
<li><a href="https://www.odoo.com/page/slides">Slides</a></li>
<li><a href="https://adspike.odoo.com">SEA</a></li>
</ul>
</div>
<div class="col-sm-3 o_sale_apps">
<div class="o_nav_app_family">
<span></span> Sales
<div>Boost your success rate</div>
</div>
<ul>
<li><a href="https://www.odoo.com/page/sales">Sales</a></li>
<li><a href="https://www.odoo.com/page/crm">CRM</a></li>
<li><a href="https://www.odoo.com/page/billing">Invoicing</a></li>
<li class="dropdown">
<a href="#0" class="dropdown-toggle">Point of Sale</a>
<ul>
<li><a href="https://www.odoo.com/page/point-of-sale">Shops</a></li>
<li><a href="https://www.odoo.com/page/pos-restaurant">Restaurants</a></li>
</ul>
</li>
<li><a href="https://www.odoo.com/page/subscriptions">Subscriptions</a></li>
<li><a href="https://www.odoo.com/page/sign">Sign</a></li>
</ul>
</div>
<div class="col-sm-3 o_operation_apps">
<div class="o_nav_app_family">
<span></span> Operations
<div>It's all about efficiency</div>
</div>
<ul>
<li><a href="https://www.odoo.com/page/accounting/">Accounting</a></li>
<li><a href="https://www.odoo.com/page/project-management/">Project</a></li>
<li class="dropdown">
<a href="#0" class="dropdown-toggle">Human Resources</a>
<ul>
<li><a href="https://www.odoo.com/page/recruitment">Recruitment</a></li>
<li><a href="https://www.odoo.com/page/employees">Employees</a></li>
<li><a href="https://www.odoo.com/page/expenses">Expenses</a></li>
<li><a href="https://www.odoo.com/page/appraisal">Appraisal</a></li>
<li><a href="https://www.odoo.com/page/fleet">Fleet</a></li>
<li><a href="https://www.odoo.com/page/leaves">Leaves</a></li>
</ul>
</li>
<li><a href="https://www.odoo.com/page/warehouse">Inventory</a></li>
<li><a href="https://www.odoo.com/page/purchase">Purchase</a></li>
<li class="dropdown">
<a href="#0" class="dropdown-toggle">Manufacturing</a>
<ul>
<li><a href="https://www.odoo.com/page/manufacturing">MRP</a></li>
<li><a href="https://www.odoo.com/page/plm">PLM</a></li>
<li><a href="https://www.odoo.com/page/maintenance">Maintenance</a></li>
<li><a href="https://www.odoo.com/page/quality">Quality</a></li>
</ul>
</li>
</ul>
</div>
<div class="col-sm-3 o_productivity_apps">
<div class="o_nav_app_family">
<span></span> Productivity Tools
<div>Great Tools = Happy People</div>
</div>
<ul>
<li class="dropdown">
<a href="#0" class="dropdown-toggle">Communication</a>
<ul>
<li><a href="https://www.odoo.com/page/discuss">Discuss</a></li>
<li><a href="https://www.odoo.com/page/discuss-groups">Mailing Lists</a></li>
<li><a href="https://www.odoo.com/page/notes">Notes</a></li>
<li><a href="#">Help desk</a></li>
<li><a href="#">Appointment</a></li>
</ul>
</li>
<li><a href="https://www.odoo.com/page/timesheet">Timesheet</a></li>
<li><a href="https://www.odoo.com/page/email-marketing">Email Marketing</a></li>
<li><a href="https://www.odoo.com/page/events">Events</a></li>
<li><a href="https://www.odoo.com/page/survey">Survey</a></li>
<li><a href="https://www.odoo.com/page/live-chat">Live Chat</a></li>
</ul>
</div>
</div>
</div>
<a href="http://www.odoo.com/apps/modules" class="o_store_link"><i class="fa fa-cube fa-fw"></i> Third party apps</a>
</div>
</li>
<li><a href="https://www.odoo.com/page/tour">Tour</a></li>
<li><a href="https://www.odoo.com/pricing">Pricing</a></li>
<li><a href="https://www.odoo.com/page/docs">Docs</a></li>
</ul>
</div>
</nav>
<nav class="navbar o_sub_nav">
<div class="container">
<div class="navbar-header visible-xs">
<button type="button" class="navbar-toggle collapsed text-left btn-block" data-toggle="collapse" data-target="#o_sub-menu" aria-expanded="false">
Navigate
<span class="mdi-hardware-keyboard-arrow-down pull-right"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="o_sub-menu">
<ol class="o_breadcrumb breadcrumb nav navbar-left">
{% block breadcrumb_desktop %}
{% include "breadcrumb_list.html" %}
{% endblock %}
</ol>
<div class="call-to-action navbar-right hidden-xs">
<a href="http://www.odoo.com/trial" class="btn btn-primary">Start Now</a>
</div>
<ul class="navbar-nav navbar-right nav o_sub_nav_actions">
{% if pagename != master_doc %}
<li class="divider"></li>
{% endif%}
{% block switchers_desktop %}
{% include "switchers_list.html" %}
{% endblock %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if languages or versions %}
<li class="divider"></li>
{% endif %}
{% block sub_menu_desktop %}
{% include "sub-menu_list.html" %}
{% endblock %}
{% if languages or versions %}
<li class="divider"></li>
{% endif %}
</ul>
</div>
</div>
</nav>
</header>
{%- endblock -%}
{%- block content -%}
{% if 'code-column' in meta %}
{% set container = 'container-fluid' %}
{% else %}
{% set container = 'container' %}
{% endif %}
<main class="{{ container }} {{ ' '.join(classes) }}">
{% if pagename != master_doc %}
<div class="row">
{% if 'has-toc' not in meta %}
<aside>
<div class="navbar-aside text-center">
{{ toc }}
{% if github_link %}
<p class="gith-container"><a href="{{ github_link(mode='edit') }}" class="gith-link">
Edit on GitHub
</a></p>
{% endif %}
</div>
</aside>
{% endif %}
<article class="doc-body {% if 'has-toc' in meta %}doc-toc{% endif %}">
{% endif %}
{% block body %} {% endblock %}
{% if pagename != master_doc %}</article>
</div>
<div id="wrap" class="{{' '.join(classes) }}">
{% if meta['banner'] %}
{% set has_banner = 'has_banner' %}
{% endif %}
<div id="mask"></div>
</main>
<figure class="card top {{ has_banner }}">
<span class="card-img" {% if meta['banner'] %}style="background-image: url('{{ pathto('_static/' + meta['banner'], True) }}');"{% endif %}></span>
<div class="container text-center">
<h1> {{ meta.get('main-title', title) }} </h1>
</div>
</figure>
{% if 'code-column' in meta %}
{% set container = 'container-fluid' %}
{% else %}
{% set container = 'container' %}
{% endif %}
<div class="{{ container}} {{ ' '.join(classes) }}">
<main class="container-fluid {{ ' '.join(classes) }}">
{% if pagename != master_doc %}
<div class="row">
{% if 'has-toc' not in meta and not (pagename in toc) %}
<aside>
<div class="navbar-aside text-center">
{{ toc }}
{% if github_link %}
<p class="gith-container"><a href="{{ github_link(mode='edit') }}" class="gith-link">
Edit on GitHub
</a></p>
{% endif %}
</div>
</aside>
{% endif %}
<article class="doc-body {% if 'has-toc' in meta %}doc-toc{% endif %}{% if pagename in toc%}index-category{% endif %}">
{% endif %}
{% block body %} {% endblock %}
{% if pagename != master_doc %}</article>
</div>
{% endif %}
<div id="mask"></div>
</main>
</div>
</div>
<div class="floating_action_container">
<a id="floating_action" class="ripple" href="#">
@ -148,4 +268,76 @@
</ul>
</div>
</div>
<footer>
<div id="footer" class="container">
<span class="o_logo o_logo_inverse center-block o_footer_logo"></span>
<div class="row">
<div class="col-sm-7 col-md-7 col-lg-6">
<div class="row">
<div class="col-xs-6 col-sm-4">
<span class="menu_title">Community</span>
<ul>
<li><a href="https://github.com/odoo/odoo">Github</a></li>
<li><a href="http://www.odoo.com/page/download">Download</a></li>
<li class="divider"></li>
<li><a href="http://runbot.odoo.com/runbot/repo/git-github-com-odoo-enterprise-7">Runbot</a></li>
<li><a href="https://github.com/odoo/odoo/wiki/Translations">Translations</a></li>
<li class="divider"></li>
<li><a href="http://www.odoo.com/page/odoo-community">Mailing Lists</a></li>
<li><a href="http://www.odoo.com/forum/help-1">Forum</a></li>
</ul>
</div>
<div class="col-xs-6 col-sm-4">
<span class="menu_title">Services</span>
<ul>
<li><a href="http://www.odoo.com/pricing">Editions</a></li>
<li><a href="http://www.odoo.com/pricing-online">Cloud Pricing</a></li>
<li><a href="http://www.odoo.com/page/upgrade">Upgrade</a></li>
<li class="divider"></li>
<li><a href="http://www.odoo.com/partners">Find a partner</a></li>
<li><a href="http://www.odoo.com/page/become-a-partner">Become a partner</a></li>
<li class="divider"></li>
<li><a href="http://www.odoo.com/page/education-program">Education</a></li>
<li class="divider"></li>
<li><a href="http://www.odoo.com/page/security">Security</a></li>
</ul>
</div>
<div class="col-sm-4 mb64">
<span class="menu_title">About us</span>
<ul>
<li><a href="http://www.odoo.com/page/about-us">Our company</a></li>
<li><a href="http://www.odoo.com/page/contactus">Contact</a></li>
<li class="divider" />
<li><a href="http://www.odoo.com/event">Events</a></li>
<li><a href="http://www.odoo.com/blog/">Blog</a></li>
<li><a href="http://www.odoo.com/blog/6">Customers</a></li>
<li class="divider" />
<li><a href="http://www.odoo.com/jobs">Jobs</a></li>
</ul>
</div>
</div>
</div>
<div class="col-sm-5 col-md-4 col-md-offset-1 col-lg-5 col-lg-offset-1">
<p>
<small>
Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.
<br/><br/>
Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.
</small>
</p>
</div>
</div>
</div>
<div class="o_footer_bottom">
<div class="container">
<a class="small" href="http://www.odoo.com/page/website-builder">Website made with <span class="o_logo o_logo_inverse o_logo_15"></span></a>
<div class="social-links pull-right">
<a href="http://www.odoo.com/web/about/facebook"><i class="fa fa-facebook"></i></a>
<a href="http://www.odoo.com/web/about/twitter"><i class="fa fa-twitter"></i></a>
<a href="http://www.odoo.com/web/about/linkedin"><i class="fa fa-linkedin"></i></a>
<a href="mailto:info@odoo.com"><i class="fa fa-envelope"></i></a>
</div>
</div>
</div>
</footer>
{%- endblock -%}

View File

@ -48,9 +48,9 @@
display: block;
position: absolute;
border-radius: 100%;
opacity: 1.3;
opacity: 1;
z-index: -1;
background: rgba(0, 0, 0, .2);
background: rgba(0, 0, 0, .05);
pointer-events: none;
.scale(0);
}

View File

@ -0,0 +1,309 @@
// ====== Aside =======
// ======================
.navbar-aside {
position : relative;
overflow : hidden;
font-family : @headings-font-family;
font-size : 0.85em;
line-height : 1.5;
font-weight : @fw_medium;
overflow-y : auto;
height : 100%;
&.affix {
z-index : 2;
top : @w-sub-nav-height - 1;
position : fixed;
backface-visibility: hidden;
@media (max-width:@screen-md-min) {
display: none;
}
}
> ul.list-group {
margin : 0;
z-index : 0;
}
> h3 {
margin : 0;
padding : 15px 0 10px;
text-transform: uppercase;
font-weight : @fw_semibold;
font-size : 16px;
color : @text-color;
overflow-x : hidden;
position : relative;
z-index : 1;
.box-shadow(0 10px 9px -10px #d2d2d2);
}
.logo_box {
width : 100%;
background : rgb(253, 253, 253);
position : relative;
display : block;
padding : 15px 30px 10px;
border-bottom: 1px solid fadeout(@text-color, 90%);
text-align : center;
.box-shadow(inset 0px 0 40px rgba(114, 122, 142, .1));
.logo {
float : left;
width : 90%;
margin : auto auto 10px 5%;
height : 50px;
background-image : url('img/odoo_logo_rgb.png');
background-repeat : no-repeat;
background-position: center center;
background-size : contain;
text-decoration : none;
}
}
.gith-container {
margin : 0;
z-index : 1;
position : relative;
overflow-x: hidden;
.gith-link {
font-weight : 600;
color : @text-color;
text-decoration: none;
display : inline-block;
position : relative;
margin : 10px 0;
.transition(color .2s);
&:hover {
color : @headings-color;
text-decoration: none;
}
&:before {
.size(20px;20px);
.opacity(.5);
content : '';
position : relative;
background-image: url('img/github-square_32.png');
background-size : 100%;
display : inline-block;
vertical-align : middle;
.translate(0;-1px);
.transition(opacity .2s);
}
&:hover, &:focus {
&:before {
.opacity(1);
}
}
}
}
//-- All menu levels
ul {
padding : 0;
position : relative;
margin-bottom: 0 !important;
li {
padding: 0;
margin-bottom: 0;
&:first-child, &:last-child {
// Reset border radius
border-radius: 0;
}
&:first-child {
overflow : hidden;
border-radius: 2px 0 0 0;
}
> a {
display: block;
padding: 5px 15px;
color : @text-color;
&:hover, &:focus {
color: @headings-color;
}
}
}
//-- Inner menu list
ul {
max-height : 0;
background-color: @gray-lighter;
padding-left : 15px;
overflow : hidden;
.transition(max-height 0.3s @o-ease);
}
}
//-- Active lis
li.active {
&, &:hover, &:focus {
border-color: @gray-lighter;
background : transparent;
> a {
color: @headings-color;
}
}
> ul {
max-height: 1000px;
}
}
// First menu level
> ul > li {
border-bottom: 1px solid @gray-lighter;
background : white;
> a {
padding: 10px 15px;
}
&:hover, &:focus {
> a {
box-shadow : inset 5px 0 0 -3px @gray-light;
background-color: transparent;
}
}
&.active, &.active:hover, &.active:focus{
> a {
box-shadow : inset 5px 0 0 -3px @brand-primary;
}
}
&.parent {
> a:after {
content : '\e7c1';
font-family: 'Material-Design-Icons';
opacity : 0.5;
.o-position-absolute(auto, 10px);
}
}
}
}
.floating_action_container {
position: fixed;
right : 8px;
bottom : 8px;
width : auto;
z-index : @zIndex--float_action;
@media (min-width:@screen-md-min) {
display: none;
}
}
#floating_action {
width : 56px;
height : 56px;
display : inline-block;
z-index : 0;
background-color: transparent;
border-radius : 50%;
padding : 16px;
box-shadow : 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05);
background-color: @brand-primary;
.transition(transform 500ms @o-ease);
i {
color: white;
}
&.active {
.transform(~"translateZ(0px) rotateZ(-180deg)");
}
}
#floating_action_menu {
position : absolute;
z-index : 1;
overflow : hidden;
right : 0;
width : 380px;
bottom : 0;
padding : 0;
display : block;
border-radius: 2px;
visibility : hidden;
.transition(all 0.5s);
.box-shadow(0 0 0 transparent);
.content {
margin: 0;
.opacity(0);
li {
border : none;
border-top: 1px solid #DDD;
&:first-child {
border-top: none;
}
}
a {
display : inline-block;
cursor : pointer;
color : @headings-color;
text-decoration: none;
float : left;
width : 100%;
padding : 5px 10px;
}
}
.bubble {
position : absolute;
.size(1px; 1px);
background : @brand-primary;
content : '';
bottom : 28px;
right : 28px;
color : #fff;
border-radius: 50%;
.transition(all 300ms @o-ease);
}
&:before {
.bubble;
background: white;
}
&.active {
display : block;
visibility: visible;
.transition(all 500ms @o-ease);
.bubble, &:before {
.size(1000px; 2000px);
border-radius: 50%;
.opacity(0);
margin-right : -500px;
margin-bottom: -500px;
display : block;
.transition(all .4s @o-ease);
}
&:before {
.opacity(1);
}
.content {
position: relative;
z-index : 1;
.opacity(1);
.transition(all 500ms @ease-material-3);
}
}
}

View File

@ -0,0 +1,304 @@
{
"always-semicolon": true,
"block-indent": 2,
"color-case": "lower",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": false,
"remove-empty-rulesets": true,
"space-after-colon": 1,
"space-after-combinator": 1,
"space-before-selector-delimiter": 0,
"space-between-declarations": "\n",
"space-after-opening-brace": "\n",
"space-before-closing-brace": "\n",
"space-before-colon": 0,
"space-before-combinator": 1,
"space-before-opening-brace": 1,
"strip-spaces": true,
"unitless-zero": true,
"vendor-prefix-align": true,
"sort-order": [
[
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"display",
"float",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"-webkit-box-sizing",
"-moz-box-sizing",
"box-sizing",
"-webkit-appearance",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"overflow",
"overflow-x",
"overflow-y",
"-webkit-overflow-scrolling",
"-ms-overflow-x",
"-ms-overflow-y",
"-ms-overflow-style",
"clip",
"clear",
"font",
"font-family",
"font-size",
"font-style",
"font-weight",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"-webkit-hyphens",
"-moz-hyphens",
"hyphens",
"line-height",
"color",
"text-align",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-decoration",
"text-indent",
"text-justify",
"text-outline",
"-ms-text-overflow",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"text-transform",
"text-wrap",
"-webkit-text-size-adjust",
"-ms-text-size-adjust",
"letter-spacing",
"-ms-word-break",
"word-break",
"word-spacing",
"-ms-word-wrap",
"word-wrap",
"-moz-tab-size",
"-o-tab-size",
"tab-size",
"white-space",
"vertical-align",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"pointer-events",
"-ms-touch-action",
"touch-action",
"cursor",
"visibility",
"zoom",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"-o-user-select",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"background",
"background-color",
"background-image",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"filter:progid:DXImageTransform.Microsoft.gradient",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"filter",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"border",
"border-color",
"border-style",
"border-width",
"border-top",
"border-top-color",
"border-top-style",
"border-top-width",
"border-right",
"border-right-color",
"border-right-style",
"border-right-width",
"border-bottom",
"border-bottom-color",
"border-bottom-style",
"border-bottom-width",
"border-left",
"border-left-color",
"border-left-style",
"border-left-width",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"opacity",
"-ms-interpolation-mode",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction"
]
]
}

View File

@ -0,0 +1,19 @@
{
"adjoining-classes": false,
"box-sizing": false,
"box-model": false,
"compatible-vendor-prefixes": false,
"floats": false,
"font-sizes": false,
"gradients": false,
"important": false,
"known-properties": false,
"outline-none": false,
"qualified-headings": false,
"regex-selectors": false,
"shorthand": false,
"text-indent": false,
"unique-headings": false,
"universal-selector": false,
"unqualified-attributes": false
}

View File

@ -12,7 +12,7 @@
font-weight: @badge-font-weight;
color: @badge-color;
line-height: @badge-line-height;
vertical-align: baseline;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: @badge-bg;

View File

@ -1,3 +1,9 @@
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "variables.less";
@import "mixins.less";
@ -5,7 +11,7 @@
// Reset and dependencies
@import "normalize.less";
@import "print.less";
//@import "glyphicons.less";
@import "glyphicons.less";
// Core CSS
@import "scaffolding.less";

View File

@ -36,6 +36,7 @@
margin-left: -5px; // Offset the first child's margin
&:extend(.clearfix all);
.btn,
.btn-group,
.input-group {
float: left;
@ -172,12 +173,12 @@
border-radius: 0;
}
&:first-child:not(:last-child) {
border-top-right-radius: @border-radius-base;
.border-top-radius(@btn-border-radius-base);
.border-bottom-radius(0);
}
&:last-child:not(:first-child) {
border-bottom-left-radius: @border-radius-base;
.border-top-radius(0);
.border-bottom-radius(@btn-border-radius-base);
}
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {

View File

@ -17,7 +17,7 @@
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
white-space: nowrap;
.button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
.button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
.user-select(none);
&,
@ -47,10 +47,16 @@
&[disabled],
fieldset[disabled] & {
cursor: @cursor-disabled;
pointer-events: none; // Future-proof disabling of clicks
.opacity(.65);
.box-shadow(none);
}
a& {
&.disabled,
fieldset[disabled] & {
pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
}
}
}
@ -126,14 +132,14 @@
.btn-lg {
// line-height: ensure even-numbered height of button next to large input
.button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
.button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
}
.btn-sm {
// line-height: ensure proper height of button next to small input
.button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
.button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
}
.btn-xs {
.button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);
.button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
}

View File

@ -29,7 +29,7 @@
@media all and (transform-3d), (-webkit-transform-3d) {
.transition-transform(~'0.6s ease-in-out');
.backface-visibility(~'hidden');
.perspective(1000);
.perspective(1000px);
&.next,
&.active.right {
@ -101,6 +101,7 @@
color: @carousel-control-color;
text-align: center;
text-shadow: @carousel-text-shadow;
background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
// We can't have this transition here because WebKit cancels the carousel
// animation if you trip this while in the middle of another animation.
@ -130,6 +131,7 @@
.glyphicon-chevron-right {
position: absolute;
top: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
@ -147,7 +149,6 @@
.icon-next {
width: 20px;
height: 20px;
margin-top: -10px;
line-height: 1;
font-family: serif;
}
@ -240,18 +241,18 @@
.glyphicon-chevron-right,
.icon-prev,
.icon-next {
width: 30px;
height: 30px;
margin-top: -15px;
font-size: 30px;
width: (@carousel-control-font-size * 1.5);
height: (@carousel-control-font-size * 1.5);
margin-top: (@carousel-control-font-size / -2);
font-size: (@carousel-control-font-size * 1.5);
}
.glyphicon-chevron-left,
.icon-prev {
margin-left: -15px;
margin-left: (@carousel-control-font-size / -2);
}
.glyphicon-chevron-right,
.icon-next {
margin-right: -15px;
margin-right: (@carousel-control-font-size / -2);
}
}

View File

@ -11,6 +11,7 @@
margin-left: 2px;
vertical-align: middle;
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~"\9"; // IE8
border-right: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
}
@ -184,7 +185,8 @@
// Reverse the caret
.caret {
border-top: 0;
border-bottom: @caret-width-base solid;
border-bottom: @caret-width-base dashed;
border-bottom: @caret-width-base solid ~"\9"; // IE8
content: "";
}
// Different positioning for bottom up menu

View File

@ -56,7 +56,6 @@ input[type="checkbox"] {
line-height: normal;
}
// Set the height of file controls to match text inputs
input[type="file"] {
display: block;
}
@ -133,6 +132,12 @@ output {
// Placeholder
.placeholder();
// Unstyle the caret on `<select>`s in IE10+.
&::-ms-expand {
border: 0;
background-color: transparent;
}
// Disabled and read-only inputs
//
// HTML5 says that controls under a fieldset > legend:first-child won't be
@ -175,13 +180,17 @@ input[type="search"] {
// text within the input to become vertically misaligned. As a workaround, we
// set a pixel line-height that matches the given height of the input, but only
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
//
// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
line-height: @input-height-base;
&.form-control {
line-height: @input-height-base;
}
&.input-sm,
.input-group-sm & {
@ -322,14 +331,26 @@ input[type="checkbox"] {
}
.form-group-sm {
.form-control {
.input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
}
.form-control-static {
height: @input-height-small;
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
line-height: @line-height-small;
border-radius: @input-border-radius-small;
}
select.form-control {
height: @input-height-small;
line-height: @input-height-small;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
height: @input-height-small;
min-height: (@line-height-computed + @font-size-small);
padding: (@padding-small-vertical + 1) @padding-small-horizontal;
font-size: @font-size-small;
line-height: @line-height-small;
}
}
@ -338,14 +359,26 @@ input[type="checkbox"] {
}
.form-group-lg {
.form-control {
.input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
}
.form-control-static {
height: @input-height-large;
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
line-height: @line-height-large;
border-radius: @input-border-radius-large;
}
select.form-control {
height: @input-height-large;
line-height: @input-height-large;
}
textarea.form-control,
select[multiple].form-control {
height: auto;
}
.form-control-static {
height: @input-height-large;
min-height: (@line-height-computed + @font-size-large);
padding: (@padding-large-vertical + 1) @padding-large-horizontal;
font-size: @font-size-large;
line-height: @line-height-large;
}
}
@ -376,12 +409,16 @@ input[type="checkbox"] {
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback {
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: @input-height-large;
height: @input-height-large;
line-height: @input-height-large;
}
.input-sm + .form-control-feedback {
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: @input-height-small;
height: @input-height-small;
line-height: @input-height-small;
@ -402,10 +439,10 @@ input[type="checkbox"] {
.has-feedback label {
& ~ .form-control-feedback {
top: (@line-height-computed + 5); // Height of the `label` and its margin
top: (@line-height-computed + 5); // Height of the `label` and its margin
}
&.sr-only ~ .form-control-feedback {
top: 0;
top: 0;
}
}
@ -550,7 +587,7 @@ input[type="checkbox"] {
// Reposition the icon because it's now within a grid column and columns have
// `position: relative;` on them. Also accounts for the grid gutter padding.
.has-feedback .form-control-feedback {
right: (@grid-gutter-width / 2);
right: floor((@grid-gutter-width / 2));
}
// Form group sizes
@ -560,7 +597,8 @@ input[type="checkbox"] {
.form-group-lg {
@media (min-width: @screen-sm-min) {
.control-label {
padding-top: ((@padding-large-vertical * @line-height-large) + 1);
padding-top: (@padding-large-vertical + 1);
font-size: @font-size-large;
}
}
}
@ -568,6 +606,7 @@ input[type="checkbox"] {
@media (min-width: @screen-sm-min) {
.control-label {
padding-top: (@padding-small-vertical + 1);
font-size: @font-size-small;
}
}
}

View File

@ -32,8 +32,8 @@
}
// Individual icons
.glyphicon-asterisk { &:before { content: "\2a"; } }
.glyphicon-plus { &:before { content: "\2b"; } }
.glyphicon-asterisk { &:before { content: "\002a"; } }
.glyphicon-plus { &:before { content: "\002b"; } }
.glyphicon-euro,
.glyphicon-eur { &:before { content: "\20ac"; } }
.glyphicon-minus { &:before { content: "\2212"; } }

View File

@ -29,6 +29,10 @@
width: 100%;
margin-bottom: 0;
&:focus {
z-index: 3;
}
}
}
@ -79,18 +83,18 @@
text-align: center;
background-color: @input-group-addon-bg;
border: 1px solid @input-group-addon-border-color;
border-radius: @border-radius-base;
border-radius: @input-border-radius;
// Sizing
&.input-sm {
padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small;
border-radius: @border-radius-small;
border-radius: @input-border-radius-small;
}
&.input-lg {
padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large;
border-radius: @border-radius-large;
border-radius: @input-border-radius-large;
}
// Nuke default margins from checkboxes and radios to vertically center within.
@ -160,6 +164,7 @@
&:last-child {
> .btn,
> .btn-group {
z-index: 2;
margin-left: -1px;
}
}

View File

@ -4,7 +4,8 @@
.jumbotron {
padding: @jumbotron-padding (@jumbotron-padding / 2);
padding-top: @jumbotron-padding;
padding-bottom: @jumbotron-padding;
margin-bottom: @jumbotron-padding;
color: @jumbotron-color;
background-color: @jumbotron-bg;
@ -27,6 +28,8 @@
.container &,
.container-fluid & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
}
.container {
@ -34,7 +37,8 @@
}
@media screen and (min-width: @screen-sm-min) {
padding: (@jumbotron-padding * 1.6) 0;
padding-top: (@jumbotron-padding * 1.6);
padding-bottom: (@jumbotron-padding * 1.6);
.container &,
.container-fluid & {
@ -44,7 +48,7 @@
h1,
.h1 {
font-size: (@font-size-base * 4.5);
font-size: @jumbotron-heading-font-size;
}
}
}

View File

@ -38,12 +38,13 @@
}
// Linked list items
// Interactive list items
//
// Use anchor elements instead of `li`s or `div`s to create linked list items.
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
// Includes an extra `.active` modifier class for showing selected items.
a.list-group-item {
a.list-group-item,
button.list-group-item {
color: @list-group-link-color;
.list-group-item-heading {
@ -59,6 +60,11 @@ a.list-group-item {
}
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item {
// Disabled state
&.disabled,

View File

@ -19,6 +19,11 @@
.media-object {
display: block;
// Fix collapse in webkit from max-width: 100% and display: table-cell.
&.img-thumbnail {
max-width: none;
}
}
.media-right,

View File

@ -11,6 +11,7 @@
@import "mixins/responsive-visibility.less";
@import "mixins/size.less";
@import "mixins/tab-focus.less";
@import "mixins/reset-text.less";
@import "mixins/text-emphasis.less";
@import "mixins/text-overflow.less";
@import "mixins/vendor-prefixes.less";

View File

@ -2,7 +2,8 @@
.bg-variant(@color) {
background-color: @color;
a&:hover {
a&:hover,
a&:focus {
background-color: darken(@color, 10%);
}
}

View File

@ -8,15 +8,31 @@
background-color: @background;
border-color: @border;
&:hover,
&:focus,
&.focus,
&.focus {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 25%);
}
&:hover {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
}
&:active,
&.active,
.open > .dropdown-toggle& {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
&:hover,
&:focus,
&.focus {
color: @color;
background-color: darken(@background, 17%);
border-color: darken(@border, 25%);
}
}
&:active,
&.active,
@ -26,12 +42,9 @@
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
&.focus {
background-color: @background;
border-color: @border;
}

View File

@ -19,8 +19,8 @@
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
padding-left: ceil((@grid-gutter-width / 2));
padding-right: floor((@grid-gutter-width / 2));
}
}
.col(1); // kickstart it

View File

@ -6,15 +6,15 @@
.container-fixed(@gutter: @grid-gutter-width) {
margin-right: auto;
margin-left: auto;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
padding-left: floor((@gutter / 2));
padding-right: ceil((@gutter / 2));
&:extend(.clearfix all);
}
// Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) {
margin-left: (@gutter / -2);
margin-right: (@gutter / -2);
margin-left: ceil((@gutter / -2));
margin-right: floor((@gutter / -2));
&:extend(.clearfix all);
}

View File

@ -1,12 +1,12 @@
// CSS image replacement
//
// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
// mixins being reused as classes with the same name, this doesn't hold up. As
// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
//
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
// Deprecated as of v3.0.1 (will be removed in v4)
// Deprecated as of v3.0.1 (has been removed in v4)
.hide-text() {
font: ~"0/0" a;
color: transparent;

View File

@ -5,7 +5,8 @@
color: @color;
background-color: @background;
a& {
a&,
button& {
color: @color;
.list-group-item-heading {

View File

@ -1,11 +1,12 @@
// Pagination
.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
> li {
> a,
> span {
padding: @padding-vertical @padding-horizontal;
font-size: @font-size;
line-height: @line-height;
}
&:first-child {
> a,

View File

@ -0,0 +1,18 @@
.reset-text() {
font-family: @font-family-base;
// We deliberately do NOT reset font-size.
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: @line-height-base;
text-align: left; // Fallback for where `start` is not supported
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
}

View File

@ -4,7 +4,7 @@
// More easily include all the states for responsive-utilities.less.
.responsive-visibility() {
display: block !important;
table& { display: table; }
table& { display: table !important; }
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }

View File

@ -2,7 +2,8 @@
.text-emphasis-variant(@color) {
color: @color;
a&:hover {
a&:hover,
a&:focus {
color: darken(@color, 10%);
}
}

View File

@ -1,7 +1,7 @@
// Vendor Prefixes
//
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
// Autoprefixer in our Gruntfile. They will be removed in v4.
// Autoprefixer in our Gruntfile. They have been removed in v4.
// - Animations
// - Backface visibility
@ -54,7 +54,7 @@
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`
.backface-visibility(@visibility){
.backface-visibility(@visibility) {
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;

View File

@ -79,7 +79,7 @@
.modal-header {
padding: @modal-title-padding;
border-bottom: 1px solid @modal-header-border-color;
min-height: (@modal-title-padding + @modal-title-line-height);
&:extend(.clearfix all);
}
// Close icon
.modal-header .close {

View File

@ -1,9 +1,9 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
// user zoom.
// 2. Prevent iOS and IE text size adjust after device orientation change,
// without disabling user zoom.
//
html {
@ -71,7 +71,7 @@ audio:not([controls]) {
//
// Address `[hidden]` styling not present in IE 8/9/10.
// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
//
[hidden],
@ -91,7 +91,8 @@ a {
}
//
// Improve readability when focused and also mouse hovered in all browsers.
// Improve readability of focused elements when they are also in an
// active/hover state.
//
a:active,
@ -209,7 +210,6 @@ figure {
//
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
@ -350,15 +350,12 @@ input[type="number"]::-webkit-outer-spin-button {
//
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
// (include `-moz` to future-proof).
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
//
input[type="search"] {
-webkit-appearance: textfield; // 1
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; // 2
box-sizing: content-box;
box-sizing: content-box; //2
}
//

View File

@ -40,6 +40,7 @@
> li > span {
&:hover,
&:focus {
z-index: 2;
color: @pagination-hover-color;
background-color: @pagination-hover-bg;
border-color: @pagination-hover-border;
@ -51,7 +52,7 @@
&,
&:hover,
&:focus {
z-index: 2;
z-index: 3;
color: @pagination-active-color;
background-color: @pagination-active-bg;
border-color: @pagination-active-border;
@ -79,10 +80,10 @@
// Large
.pagination-lg {
.pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
.pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
}
// Small
.pagination-sm {
.pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
.pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
}

View File

@ -76,6 +76,7 @@
.border-top-radius((@panel-border-radius - 1));
}
}
// Add border bottom radius for last one
&:last-child {
.list-group-item:last-child {
@ -84,6 +85,11 @@
}
}
}
> .panel-heading + .panel-collapse > .list-group {
.list-group-item:first-child {
.border-top-radius(0);
}
}
}
// Collapse space between when there's no additional content.
.panel-heading + .list-group {

View File

@ -11,12 +11,11 @@
display: none;
max-width: @popover-max-width;
padding: 1px;
// Reset font and text properties given new insertion method
font-family: @font-family-base;
// Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
.reset-text();
font-size: @font-size-base;
font-weight: normal;
line-height: @line-height-base;
text-align: left;
background-color: @popover-bg;
background-clip: padding-box;
border: 1px solid @popover-fallback-border-color;
@ -24,9 +23,6 @@
border-radius: @border-radius-large;
.box-shadow(0 5px 10px rgba(0,0,0,.2));
// Overrides for proper insertion
white-space: normal;
// Offset the popover to account for the popover arrow
&.top { margin-top: -@popover-arrow-width; }
&.right { margin-left: @popover-arrow-width; }

View File

@ -67,12 +67,6 @@
}
// Bootstrap specific changes start
//
// Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
// Once fixed, we can just straight up remove this.
select {
background: #fff !important;
}
// Bootstrap components
.navbar {

View File

@ -155,8 +155,7 @@ hr {
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
// for traditionally non-focusable elements with role="button"
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
// Upstream patch for normalize.css submitted: https://github.com/necolas/normalize.css/pull/379 - remove this fix once that is merged
[role="button"] {
cursor: pointer;
}
}

View File

@ -1,3 +1,8 @@
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
//
// Load core variables and mixins
@ -28,6 +33,12 @@
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
}
&.disabled,
&[disabled],
fieldset[disabled] & {
.box-shadow(none);
}
.badge {
text-shadow: none;
}
@ -53,10 +64,17 @@
}
&.disabled,
&:disabled,
&[disabled] {
background-color: darken(@btn-color, 12%);
background-image: none;
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
background-color: darken(@btn-color, 12%);
background-image: none;
}
}
}
@ -132,7 +150,7 @@
.navbar-inverse {
#gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
border-radius: @navbar-border-radius;
.navbar-nav > .open > a,
.navbar-nav > .active > a {
#gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));

View File

@ -8,11 +8,11 @@
position: absolute;
z-index: @zindex-tooltip;
display: block;
// Reset font and text properties given new insertion method
font-family: @font-family-base;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
.reset-text();
font-size: @font-size-small;
font-weight: normal;
line-height: 1.4;
.opacity(0);
&.in { .opacity(@tooltip-opacity); }
@ -28,7 +28,6 @@
padding: 3px 8px;
color: @tooltip-color;
text-align: center;
text-decoration: none;
background-color: @tooltip-bg;
border-radius: @border-radius-base;
}

View File

@ -211,7 +211,7 @@ dd {
&:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
}
@media (min-width: @grid-float-breakpoint) {
@media (min-width: @dl-horizontal-breakpoint) {
dt {
float: left;
width: (@dl-horizontal-offset - 20);

View File

@ -170,6 +170,11 @@
@btn-link-disabled-color: @gray-light;
// Allows for customizing button radius independently from global border radius
@btn-border-radius-base: @border-radius-base;
@btn-border-radius-large: @border-radius-large;
@btn-border-radius-small: @border-radius-small;
//== Forms
//
@ -383,7 +388,7 @@
@navbar-default-toggle-border-color: #ddd;
// Inverted navbar
//=== Inverted navbar
// Reset inverted navbar basics
@navbar-inverse-color: lighten(@gray-light, 15%);
@navbar-inverse-bg: #222;
@ -484,6 +489,7 @@
@jumbotron-bg: @gray-lighter;
@jumbotron-heading-color: inherit;
@jumbotron-font-size: ceil((@font-size-base * 1.5));
@jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
//== Form states and alerts
@ -857,5 +863,7 @@
@page-header-border-color: @gray-lighter;
//** Width of horizontal description list titles
@dl-horizontal-offset: @component-offset-horizontal;
//** Point at which .dl-horizontal becomes horizontal
@dl-horizontal-breakpoint: @grid-float-breakpoint;
//** Horizontal line color.
@hr-border: @gray-lighter;

View File

@ -1,333 +1,343 @@
(function ($) {
var log = function(data){
return console.log(data);
}
var update_page = function () {
$(document).ready(function () {
var
$header = $("header"),
$main_navbar = $("#main_navbar"),
$navbar_aside = $(".navbar-aside"),
$navClone = null,
$floating_action = $("#floating_action"),
$floating_action_menu = $("#floating_action_menu"),
$body = $("body"),
$main = $("main"), // remove
$aside = $("aside"),
$mask = $("#mask"),
$title = $("#main_title"),
$cardTop = $(".card.top")
$cover_img = $(".card.top .card-img"),
ripples = $(".ripple"),
$main_back = $("#main-back");
// ======= Define variables =======
// =================================
// -- Screen resolutions
var screen_md = 992;
var titleZoom = 1.5,
Hgap = 60;
// -- Window, window's properties
var $win = $(window),
win_w = $win.width();
var nav_h = $main_navbar.height(),
wW = $(window).width(),
titleOffset = ($main.offset().left - $main_back.outerWidth())-15;
if($main.hasClass("index")){Hgap = 0}
var img_h = $cover_img.height() - Hgap;
$navbar_aside.find("li").has("ul").addClass("parent");
// -- Main elements
var $body = $('body'),
$header = $body.find('> header'),
$sub_nav = $header.find(".o_sub_nav");
$wrap = $body.find('> #wrap'),
$card_top = $wrap.find('> .card.top'),
$card_top_t = $card_top.find('> .container'),
$main = $wrap.find('main'),
$footer = $body.find('> footer');
if ($main.hasClass("index")){
$main.find("#index .index-tree > .row").each(function(){
var childs = $(this).find(".col-md-3");
if(childs.length == 2){
childs.removeClass("col-md-3").addClass("col-md-6");
}
if(childs.length == 3){
childs.removeClass("col-md-3").addClass("col-md-4");
}
})
$(".floating_action_container").remove();
}
// -- Floating action
var $mask = $body.find('#mask'),
$float = $body.find("#floating_action"),
$float_menu = $body.find("#floating_action_menu");
var resize_aside = function(){
var navbar_aside_data = $navbar_aside[0].getBoundingClientRect();
var $navClone_ul = $navClone.find("> ul");
var $navbar_aside_ul = $navbar_aside.find("> ul");
var maxH = $(window).height() - 45;
maxH_ul = maxH - ($navClone_ul.position().top + 45);
$navClone.css({
"width": navbar_aside_data.width,
"left": navbar_aside_data .left,
"height": maxH
})
$navClone_ul.add($navbar_aside_ul).css("max-height",maxH_ul)
}
// -- Elements' heights
var body_h = $body.height(),
header_h = $header.outerHeight(),
sub_nav_h = $sub_nav.height();
var resize = function() {
nav_h = $main_navbar.height();
wW = $(window).width();
titleOffset = $main.offset().left - $main_back.outerWidth();
if($main.hasClass("index")){Hgap = 0}
img_h = $cover_img.height() - Hgap;
if($navClone != null){
resize_aside();
}
header_layout();
}
// -- Aside
var $aside = $main.find('aside'),
has_aside = $aside.length > 0,
$aside_nav = undefined;
aside_links = undefined;
var header_layout = function () {
var wTop = $(window).scrollTop();
var r = (wTop)/(img_h - 50);
function rat() {
if(r<0) return 0;
if(r>1) return 1;
return Number(r.toString().match(/^\d+(?:\.\d{0,2})?/));
}
var ratio = rat();
if (wW >= 768) {
$title.css({"font-size": "", "position": "", 'transform':'scale('+(1-(titleZoom-1)*ratio)+')'});
if( (img_h - wTop) > 0 ){
$main_navbar[0].style.cssText += "; height: " + (img_h - wTop)+ "px;";
$cover_img[0].style.cssText += "; opacity: " + (0.8-ratio) + ";";
}
if (titleOffset > 0) {
$main_back.css("margin-right", titleOffset);
} else {
$main_back.css("margin-right", "");
}
if (ratio == 1) {
$main_navbar.css("height","").add($header).addClass("stacked");
} else {
$main_navbar.add($header).removeClass("stacked");
}
if ($navClone != null && ($aside.css("display") != "none" )) {
var gap = $aside.offset().top - 45;
if((wTop > gap)) {
$navClone.removeClass("hidden");
$navbar_aside.addClass("invisible");
resize_aside();
// ScrollSpy
// if(!($navClone.hasClass("binded"))){
// $body.scrollspy({target: "#navClone", offset: 100 });
// $navClone.addClass("binded");
// $body.scrollspy('refresh');
// }
} else {
$navClone.addClass("hidden");
$navbar_aside.removeClass("invisible");
if (has_aside) {
$aside_nav = $aside.find('> .navbar-aside');
aside_links = $aside_nav.find("li > a");
}
}
} else {
// ======= Affix =================
// ===============================
function set_affix(body_h) {
var aside_offset = $aside.offset().top - sub_nav_h,
aside_width = $aside.width(),
main_bottom = 40;
$cover_img.css("opacity","");
$title.css({
"position": "relative",
"height" : "",
"transform":"",
"font-size": 18
});
$main_navbar.addClass("stacked").css({
"height":"",
"margin": 0
})
}
};
header_layout();
var floating_menu_layout = function () {
var lis = $navbar_aside.find("> ul > li").clone(true)
.addClass("ripple")
.css({
position: 'relative',
overflow: 'hidden'
});
lis.find("ul").remove().end()
.find("a").removeClass("ripple").on("click", function () {
floating_menu_toggle();
});
$floating_action_menu.find(".content").empty().append(lis);
}
floating_menu_layout();
var floating_menu_toggle = function () {
$floating_action.toggleClass("active");
setTimeout(function () {
$floating_action_menu.toggleClass("active");
$mask.toggleClass("active");
}, 300);
};
var scroll_to = function(el_list) {
var offset = 80;
el_list.each(function () {
var $link = $(this),
href = $link.attr("href");
$link.on("click", function () {
var val = $(href).offset().top - 60;
$('html, body').animate({
scrollTop: val
}, 600);
log(el_list)
$navClone.find("li").removeClass("active");
$link.parents("li").addClass("active");
return false;
})
})
}
var ripple_animation = function(el_list) {
el_list.each(function () {
var btn = $(this);
btn
.css({
position: 'relative',
overflow: 'hidden'
})
.bind('mousedown', function (e) {
var ripple;
if (btn.find('.inner-ripple').length === 0) {
ripple = $('<span class="inner-ripple"/>');
btn.prepend(ripple);
} else {
ripple = btn.find('.inner-ripple');
}
ripple.removeClass('inner-ripple-animated');
if (!ripple.height() && !ripple.width()) {
var diameter = Math.max(btn.outerWidth(), btn.outerHeight());
ripple.css({
height: diameter,
width: diameter
$aside_nav.css('width', aside_width);
$aside_nav.affix({
target: window,
offset: {
top : aside_offset,
bottom : main_bottom
}
});
}
var x = e.pageX - btn.offset().left - ripple.width() / 2;
var y = e.pageY - btn.offset().top - ripple.height() / 2;
ripple .css({top: y + 'px', left: x + 'px'}) .addClass('inner-ripple-animated');
setTimeout(function () {
ripple.removeClass('inner-ripple-animated');
}, 351);
};
// ======= Footer animations =====
// ===============================
var footer_animation = function () {
var footer_effect = $main.outerHeight() >= $win.outerHeight();
if (!footer_effect) {
footer_stop();
return;
};
$footer.toggleClass('o_footer_effect', footer_effect);
$body.css('padding-bottom', $footer.outerHeight());
var checkIfSearch = function(e) {
if ((e.ctrlKey || e.metaKey) && String.fromCharCode(e.which).toLowerCase() === 'f') {
footer_stop();
}
};
$win.on('keydown.footer', function(e) {
checkIfSearch(e);
});
};
var footer_stop = function() {
$footer.removeClass('o_footer_effect');
$body.css('padding-bottom', 0);
$win.off('keydown.footer');
};
// ======= Docs Functions ==========
// =================================
// -- Layouting
var layouting = function () {
if ($main.hasClass("index")) {
$main.find("#index .index-tree > .row").each(function() {
var childs = $(this).find(".col-md-3");
if (childs.length == 2) {
childs.removeClass("col-md-3").addClass("col-md-6");
}
if (childs.length == 3) {
childs.removeClass("col-md-3").addClass("col-md-4");
}
})
$(".floating_action_container").remove();
}
if (has_aside) { $aside_nav.find("li").has("ul").addClass("parent"); };
}
// -- Float action menu
var floating_menu_layout = function() {
var lis = $aside_nav.find("> ul > li").clone(true)
.addClass("ripple")
.css({
position: 'relative',
overflow: 'hidden'
});
lis.find("ul").remove().end()
.find("a").removeClass("ripple").on("click", function() {
floating_menu_toggle();
});
$float_menu.find(".content").empty().append(lis);
$float.add($mask).on("click", function () {
floating_menu_toggle();
return false;
});
}
var floating_menu_toggle = function() {
$float.toggleClass("active");
setTimeout(function() {
$float_menu.toggleClass("active");
$mask.toggleClass("active");
}, 300);
};
// -- Scroll To
var scroll_to = function(el_list) {
var offset = 80;
el_list.each(function() {
var $link = $(this),
href = $link.attr("href");
$link.on("click", function() {
var val = $(href).offset().top - 60;
$('html, body').animate({
scrollTop: val
}, 400);
$aside_nav.find("li").removeClass("active");
$link.parents("li").addClass("active");
window.location.hash = $link.prop('hash');
return false;
})
})
}
// -- Ripple buttons
var ripple_animation = function(el_list) {
el_list.each(function() {
var btn = $(this);
btn
.css({
position: 'relative',
overflow: 'hidden'
})
.bind('mousedown', function(e) {
var ripple;
if (btn.find('.inner-ripple').length === 0) {
ripple = $('<span class="inner-ripple"/>');
btn.prepend(ripple);
} else {
ripple = btn.find('.inner-ripple');
}
ripple.removeClass('inner-ripple-animated');
if (!ripple.height() && !ripple.width()) {
var diameter = Math.max(btn.outerWidth(), btn.outerHeight());
ripple.css({
height: diameter,
width: diameter
});
}
var x = e.pageX - btn.offset().left - ripple.width() / 2;
var y = e.pageY - btn.offset().top - ripple.height() / 2;
ripple.css({
top: y + 'px',
left: x + 'px'
}).addClass('inner-ripple-animated');
setTimeout(function() {
ripple.removeClass('inner-ripple-animated');
}, 351);
});
});
};
// -- Cards animation
var cards_animate = function(type, speed) {
type = type || 'in';
speed = speed || 2000;
var $container = $("main.index"),
$cards = $container.find(".card"),
$titles = $container.find("h2");
$cards.each(function() {
var $card = $(this),
cardOffset = this.getBoundingClientRect(),
offset = cardOffset.left * 0.8 + cardOffset.top,
delay = parseFloat(offset / speed).toFixed(2);
$card.css("transition-delay", delay + "s");
});
if (type === "in") {
$titles.fadeTo(0, 0);
$titles.fadeTo(1000, 1);
$container.addClass("animating");
} else {
$titles.fadeTo(300, 0);
$container.removeClass("animating");
}
};
// -- Header buttons
var header_buttons = function () {
var timer;
$header.on('click', '.o_primary_nav .dropdown-toggle', function(e) {
e.preventDefault();
var $a = $(this);
clearTimeout(timer);
$a.parent().toggleClass('open');
$a.closest('ul').toggleClass('o_sub_opened', $a.parent().hasClass('open'));
if ($a.closest('.o_primary_nav').children('.open').length > 0) {
$header.addClass("o_sub_opened");
} else {
timer = setTimeout(function() {
$header.removeClass("o_sub_opened");
}, 200);
}
});
$header.on('click', '.o_primary_nav .o_secondary_nav', function(e) {
if (e.target === e.currentTarget) {
$header.find('.open').removeClass('open');
$header.find('.o_sub_opened').andSelf().removeClass('o_sub_opened');
}
});
// -- Mobile menu opening
$header.on('click', '.o_mobile_menu_toggle', function(e) {
e.preventDefault();
$(this).find('i').toggleClass('fa-bars fa-times');
$header.toggleClass('o_mobile_menu_opened');
});
};
var card_top_animation = function (win_top){
var scrollFactor = 1.6,
bannerHeight = Math.max(450, $card_top.outerHeight(true) - 60),
top = Math.min(win_top, bannerHeight/scrollFactor),
base_value = top * (scrollFactor - 1),
opacity = top/bannerHeight * scrollFactor;
$card_top.css('transform', 'translateY(' + base_value + 'px)');
$card_top_t.css({
'transform' : 'translateY( -' + ( base_value - (top/2)) + 'px)',
'opacity' : 1 - opacity
});
}
$(".content-switcher").each(function(index, switcher) {
var $switcher = $(switcher),
$links = $switcher.find('> ul > li'),
$tabs = $switcher.find('> .tabs > *'),
$all = $links.add($tabs);
function select(index) {
$all.removeClass('active');
$links.eq(index).add($tabs.eq(index)).addClass('active');
}
select(0);
$switcher.on('click', '> ul > li', function() {
select($(this).index());
return false;
});
});
// ======= Onload ==================
// =================================
// -- Call default functions
layouting();
cards_animate();
header_buttons();
ripple_animation($(".ripple"));
if (has_aside) {
floating_menu_layout();
scroll_to(aside_links);
ripple_animation(aside_links);
}
// -- Conditionally call specific functions according to resolution
if (win_w >= screen_md){
footer_animation();
if (has_aside) {
$win.load(function (){
// wait until page load before affix
body_h = $body.height();
set_affix(body_h);
})
}
};
// ======= On resize ==============
// ================================
// Update properties and conditionally call functions according to resolution
$win.on('resize', function () {
win_w = $win.width();
body_h = $body.height();
if (win_w >= screen_md){
footer_animation();
if (has_aside) { set_affix(body_h); };
} else {
footer_stop();
};
});
// ======= On scroll ==============
// ================================
$win.on('scroll', function () {
if (win_w >= screen_md) {
var win_top = $win.scrollTop();
header_h = $header.outerHeight();
$header.toggleClass('o_scrolled', win_top > header_h);
card_top_animation(win_top);
} else {
$card_top.css('transform', '');
}
});
});
}
var aside_layout = function () {
if ($navbar_aside.length > 0) {
var navbar_aside_data = $navbar_aside[0].getBoundingClientRect();
if ($navClone == null) { // build affix menu
$navClone = $navbar_aside.clone().attr("id","navClone").appendTo($body);
//force repainting
$navClone[0].style.display='none';
setTimeout(function () {
$navClone[0].offsetHeight;
$navClone[0].style.display='';
}, 10);
$navClone.addClass("affix hidden");
ripple_animation($navClone.find("li > a"));
scroll_to($navClone.find("li > a"));
$navClone.css({
"width": navbar_aside_data.width,
"left": navbar_aside_data .left
})
$(window).trigger("resize");
//$body.scrollspy('refresh');
} // End - build affix menu
}
};
aside_layout();
var cards_animate = function (type, speed) {
type = type || 'in';
speed = speed || 2000;
var $container = $(".container.index"),
$cards = $container.find(".card"),
$titles = $container.find("h2");
$cards.each(function () {
var $card = $(this),
cardOffset = this.getBoundingClientRect(),
offset = cardOffset.left * 0.8 + cardOffset.top,
delay = parseFloat(offset / speed).toFixed(2);
$card.css("transition-delay", delay + "s");
});
if (type === "in") {
$titles.fadeTo(0, 0);
$titles.fadeTo(1000, 1);
$container.addClass("animating");
} else {
$titles.fadeTo(300, 0);
$container.removeClass("animating");
}
};
cards_animate();
// BIND EVENTS
$floating_action.on("click", function () {
floating_menu_toggle();
return false;
});
$mask.on("click", function () {
floating_menu_toggle();
return false;
});
$(".content-switcher").each(function (index, switcher) {
var $switcher = $(switcher),
$links = $switcher.find('> ul > li'),
$tabs = $switcher.find('> .tabs > *'),
$all = $links.add($tabs);
function select(index) {
$all.removeClass('active');
$links.eq(index).add($tabs.eq(index)).addClass('active');
}
select(0);
$switcher.on('click', '> ul > li', function () {
select($(this).index());
return false;
});
});
$(window)
.on("scroll", function () {
header_layout();
//aside_layout();
})
.on("resize", function () {
resize();
header_layout();
//aside_layout();
})
.trigger("scroll");
//Ripples
ripple_animation(ripples);
};
$(document).ready(function () {
update_page();
});
})(jQuery);

View File

@ -0,0 +1,95 @@
// Based on http://www.odoo.com/openerp_website/static/src/less/footer.less
// ========================================================================
body > footer {
font-size: 14px;
position: relative;
width: 100%;
height: auto;
min-height: @footer-heigth;
background-color: @footer-bg-color;
color: @gray;
z-index: 1;
@media screen and (min-width: @screen-md-min) {
&.o_footer_effect {
.o-position-absolute(auto, 0, 0, 0);
position: fixed;
z-index: 0;
}
}
.o_footer_logo {
margin-bottom: 3em;
margin-top: 3em;
}
a {
color: @footer-text;
&:hover, &:active, &:focus {
color: white;
}
}
.dropdown-menu a {
color: @dropdown-link-color;
&:hover, &:focus {
color: @dropdown-link-hover-color;
}
&:active {
color: @dropdown-link-active-color;
}
}
.divider {
margin: 10px 0;
}
ul, ol {
list-style: none;
padding-left: 0;
}
span.menu_title {
font-weight: @fw_semibold;
color: white;
+ ul {
margin-top: 10px;
}
}
.o_language_selector, .o_country_selector {
display: inline-block;
.opacity(0.8);
a {
font-size: 0.9em;
font-weight: bold;
}
img {
max-height: 20px;
margin-right: 10px;
vertical-align: bottom;
}
&:hover {
.opacity(1);
}
}
.o_country_selector {
float: right;
}
hr {
border-top-color: lighten(@footer-bg-color, 10%);
}
.o_footer_bottom {
background-color: @footer-bottom-bg-color;
color: @footer-text;
padding: 1em 0;
margin-top: 3em;
a {
.opacity(0.6);
&:hover {
.opacity(1);
}
}
.social-links .fa {
margin-left: 20px;
}
}
}

View File

@ -0,0 +1,834 @@
// Based on http://www.odoo.com/openerp_website/static/src/less/header.less
// ========================================================================
// ============= MIXINS
.o-top-menu-links() {
&:not(.btn) {
display: inline-block;
padding: 0 20px;
font-weight: @fw_semibold;
text-transform: uppercase;
@media screen and (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
font-size: 11px;
&:not(.dropdown-toggle) {
padding: 0 10px;
}
}
}
}
.o-white-header() {
background-color: @w-header-white;
color: @header-link-normal;
.deep-1();
.o_logo {
background-position: 0 0;
}
> .o_main_header_main > .o_primary_nav > li.dropdown > a {
&::before, &::after {
background-color: @header-link-normal;
box-shadow: 0 1px 1px fade(@header-link-normal,10%);
}
}
}
// ============= MAIN HEADER
#oe_main_menu_navbar ~ #wrapwrap .o_main_header {
&.o_has_sub_nav.o_scrolled {
top: 34px - (@w-header-height + 1);
}
}
.o_main_header {
@secondary-menu-animation-duration-opening: 500ms;
@secondary-menu-animation-duration-closing: @secondary-menu-animation-duration-opening * 2/3;
position: fixed;
width: 100%;
height: @w-header-height;
z-index: 2;
background-color: fade(white, 60%);
color: @header-link-normal;
font-family: @headings-font-family;
font-size: 12px;
.transition(all .2s ease);
.transition-property(~'background, box-shadow' );
.translate3d(auto, auto, 0);
a:focus, a:active, a:focus:active {
outline: none;
}
.btn-primary {
color: white!important;
font-size: inherit!important;
font-weight: @fw_bold;
text-transform: uppercase;
}
> .o_main_header_main {
.container(); // FIXME Remove this once the web_editor "container container" rule is fixed.
height: 100%;
a {
color: inherit;
&:hover, &:focus {
color: saturate(@header-link-normal, 10%);
}
}
.o_logo {
margin: 15px 0;
.size(63px, 20px);
background-size: cover;
}
> .o_primary_nav {
@w-header-arrow-length: 10px;
@media (min-width: @screen-sm-min) {
height: 100%;
&:before {
content: "";
background: transparent;
z-index: -1;
visibility: hidden;
box-shadow: 0 1px 0 transparent;
.size( 100%, @w-header-height);
.o-position-absolute(0,0);
.transition(~'background @{secondary-menu-animation-duration-opening} @{o-ease} 0ms, visibility 0ms linear @{secondary-menu-animation-duration-opening}, box-shadow @{secondary-menu-animation-duration-opening} linear 0ms' );
}
&.o_sub_opened:before {
visibility: visible;
background: @w-header-white;
box-shadow: 0 1px 0 @gray-lighter;
.transition(~'background @{secondary-menu-animation-duration-opening} @{o-ease} 0ms, visibility 0ms linear 0s, box-shadow @{secondary-menu-animation-duration-opening} linear 0ms');
}
}
margin: 0 auto;
padding: 0;
text-align: center;
white-space: nowrap;
.dropdown {
position: static;
> a {
position: relative;
.backface-visibility(hidden);
&::before, &::after {
content: "";
display: block;
.o-position-absolute(50%, 0);
.o-transform-origin(50%, 50%);
.o-transition(all, 300ms);
width: @w-header-arrow-length;
height: 1px;
background-color: @headings-color;
box-shadow: 0 1px 1px fade(@headings-color, 10%);
}
&::before {
.rotate(45deg);
right: @w-header-arrow-length / sqrt(2) - 1;
}
&::after {
.rotate(-45deg);
}
}
&.open > a {
color: @odoo-brand-primary!important;
font-weight: @fw_semibold;
&::before, &::after {
background-color: @odoo-brand-primary!important;
box-shadow: 0 1px 1px fade(@odoo-brand-primary, 10%);
right: @w-header-arrow-length / sqrt(2) / 2;
}
&::before {
.rotate(-45deg);
}
&::after {
.rotate(45deg);
}
}
> .dropdown-menu {
border: none;
border-radius: 0;
margin: 0;
}
}
> li {
display: inline-block;
> a {
height: 100%;
line-height: @w-header-height;
.o-top-menu-links();
}
&.dropdown > a {
margin-right: @w-header-arrow-length * 2;
}
// Secondary nav animation
@media (min-width: @screen-sm-min) {
&.open > .o_secondary_nav {
visibility: visible;
background-color: white;
.translate(0, 0);
.transition(~'transform @{secondary-menu-animation-duration-opening} @{o-ease} 0ms, visibility 0ms linear 0ms, background-color 0ms linear @{secondary-menu-animation-duration-opening}');
.container > .row > div {
opacity: 1;
.translate(0, 0);
&:nth-child(1) {
.transition-delay(@secondary-menu-animation-duration-opening * 1/5);
}
&:nth-child(2) {
.transition-delay(@secondary-menu-animation-duration-opening * 2/5);
}
&:nth-child(3) {
.transition-delay(@secondary-menu-animation-duration-opening * 3/5);
}
&:nth-child(4) {
.transition-delay(@secondary-menu-animation-duration-opening * 4/5);
}
}
.o_store_link {
max-height: @w-header-height;
.o-transition(max-height, @secondary-menu-animation-duration-opening, @o-ease, @secondary-menu-animation-duration-opening * 3/5);
}
&::before {
opacity: 0.5;
}
}
}
}
.o_secondary_nav {
@w-li-link-height: 30px;
@w-li-link-animation-time: 300ms;
@w-menu-gutter-increase: 60px;
width: 100%;
padding: 15px 0 (@w-header-height + 15);
box-shadow: 0 3px 6px fade(black, 5%);
@media (min-width: @screen-md-min) { // Change gutter width for that case
> .container > .row {
margin-left: (@grid-gutter-width + @w-menu-gutter-increase) / -2;
margin-right: (@grid-gutter-width + @w-menu-gutter-increase) / -2;
> div {
padding-left: (@grid-gutter-width + @w-menu-gutter-increase) / 2;
padding-right: (@grid-gutter-width + @w-menu-gutter-increase) / 2;
}
}
}
> .container > .row > div {
font-size: 16px;
overflow: hidden;
@media (min-width: @screen-sm-min) {
height: 340px;
padding-top: 10px;
+ div {
border-left: 1px solid @gray-lighter;
}
}
ul {
position: relative;
list-style: none;
padding: 0;
> li {
height: @w-li-link-height;
.o-transition(all, @w-li-link-animation-time, @o-ease, @w-li-link-animation-time/3);
.transition-property(~'height, opacity');
> a {
display: block;
height: 100%;
line-height: @w-li-link-height;
font-weight: @fw_medium;
font-size: 1.4rem;
}
&.dropdown {
&:not(.open) > a {
&::before, &::after {
.o-transform-origin((@w-header-arrow-length * 0.8), 50%);
width: @w-header-arrow-length * 0.8;
right: 0;
}
}
> ul {
.o-position-absolute(@w-li-link-height, 0, 0, 0);
.translate(100%, 0);
.opacity(0);
.o-transition(all, @w-li-link-animation-time, @o-ease, 0);
}
&.open > ul {
.translate(0, 0);
.opacity(1);
.o-transition(all, @w-li-link-animation-time, @o-ease, @w-li-link-animation-time/3);
}
}
}
&.o_sub_opened > li:not(.open) {
opacity: 0;
height: 0 !important;
overflow: hidden;
.o-transition(all, @w-li-link-animation-time, @o-ease, 0);
}
}
.o_nav_app_family {
text-align: center;
font-weight: @fw_medium;
line-height: 2;
.o-no-select();
> span {
.o-retina-bg("apps_families_s.png", 0px, 50%);
display: none;
}
@media (min-width: @screen-sm-min) {
> span {
display: block;
margin: 0 auto;
background-size: auto 100%;
width: 51px;
height: 50px;
}
> div {
font-size: 0.7em;
font-weight: @fw_medium;
line-height: 1.5;
color: @text-color;
margin-bottom: 1.3em;
}
}
}
@media (min-width: @screen-sm-min) {
&.o_website_apps {
a:hover, a:focus, .o_nav_app_family {
color: @color-beta;
}
}
&.o_sale_apps {
a:hover, a:focus, .o_nav_app_family {
color: @color-gamma;
}
.o_nav_app_family > span {
background-position: -60px 50%;
}
}
&.o_operation_apps {
a:hover, a:focus, .o_nav_app_family {
color: @color-delta;
}
.o_nav_app_family > span {
background-position: -120px 50%;
}
}
&.o_productivity_apps {
a:hover, a:focus, .o_nav_app_family {
color: @color-epsilon;
}
.o_nav_app_family > span {
background-position: -181px 50%;
}
}
}
}
> .o_store_link {
.o-position-absolute(auto, 0, 0, 0);
overflow: hidden;
display: block;
height: @w-header-height;
line-height: @w-header-height;
border-top: 1px solid @gray-lighter;
text-align: center;
font-size: 12px;
font-weight: @fw_semibold;
}
@media (min-width: @screen-sm-min) {
// Animation
display: block;
background-color: @w-header-white;
visibility: hidden;
z-index: -2;
.translate(0, -115%);
.transition(~'transform @{secondary-menu-animation-duration-closing} @{o-ease} 0ms, visibility 0ms linear @{secondary-menu-animation-duration-closing}, background-color 0ms linear 0ms');
.container > .row > div {
opacity: 0;
.translate(0, -30%);
.o-transition(all, @secondary-menu-animation-duration-opening, @o-ease, 0ms);
}
.o_store_link {
max-height: 0;
.o-transition(max-height, @secondary-menu-animation-duration-opening/2, @o-ease, 0s);
}
// Overlay
&::before {
content: "";
.o-position-absolute(100%, 0, -1000px, 0);
display: block;
background-color: #000;
opacity: 0;
.o-transition(opacity, @secondary-menu-animation-duration-opening, @o-ease);
}
}
}
}
.o_header_buttons {
height: 100%;
line-height: @w-header-height;
float: right;
> * {
display: inline-block;
float: left;
}
a {
.o-top-menu-links();
&.dropdown-toggle {
padding: 0 10px;
}
&.o_my_cart {
padding: 0;
.my_cart_quantity {
font-family: sans-serif;
border-radius: 100%;
font-weight: bold;
font-size: 90%;
padding: 4px 0;
min-width: 19px;
text-align: center;
display: inline-block;
}
}
}
.btn-primary {
margin-top: 9px;
}
> .dropdown {
margin: 0 5px;
@media screen and (min-width: @screen-md-min) {
margin: 0 15px;
}
&, .dropdown-toggle {
height: 100%;
}
> .dropdown-menu {
left: auto;
right: 0;
li a {
padding-top: 5px;
padding-bottom: 5px;
color: @text-color;
}
}
}
}
}
> .o_sub_nav {
min-height: @w-sub-nav-height;
border: 1px solid fade(black, 5%);
border-width: 1px 0;
background-color: fade(white, 80%);
> .container {
.navbar-header {
height: @w-sub-nav-height - 2;
line-height: @w-sub-nav-height - 2;
font-weight: @fw_semibold;
color: @text-color;
overflow: hidden;
.o_app_name_logo,
.o_app_name_title {
.translate(-61px, 0);
.o-transition(transform, 400ms);
}
&:hover {
color: @headings-color;
}
.o_app_name_logo {
.o_logo();
.o_logo_15();
vertical-align: middle;
margin: auto 5px 3px 0;
}
.o_app_name_title {
color: inherit;
vertical-align: middle;
display: inline-block;
span{
margin-right: 5px;
}
}
}
.nav {
margin-right: -15px; // gutter's right compensation
}
.nav > li {
margin-left: 20px;
height: @w-sub-nav-height - 2;
line-height: @w-sub-nav-height - 2;
> a {
height: 100%;
line-height: @w-sub-nav-height - 2;
padding: 0;
font-size: 12px;
font-weight: @fw_medium;
color: @text-color;
&:hover, &:focus {
color: @headings-color;
background-color: transparent;
}
}
&.active > a {
color: @headings-color;
font-weight: @fw_semibold;
}
}
.call-to-action {
line-height: @w-sub-nav-height - 4;
overflow: hidden;
width: 100%;
max-width: 0px;
transform-origin: 0 0;
.transition(max-width 0.3s ease 0ms);
> a {
margin-left: 35px;
font-weight: @fw_semibold;
padding: (@padding-base-vertical - 2px) @padding-base-horizontal;
line-height: 1.4em;
font-size: 12px!important;
}
}
}
}
&.o_inverted:not(.o_scrolled) > .o_sub_nav {
.transition( 0.3s background-color);
background-color: fade(white, 5%);
border-color: fade(white, 10%);
.nav > li > a,
.o_app_name_title {
color: fade(white, 90%);
&:hover, &:focus {
color: white;
}
}
}
@media (min-width: @screen-sm-min) {
// Top menu styles
// --------------------------------
&.o_has_sub_nav {
position: absolute;
&.o_scrolled {
position: fixed;
top: -(@w-header-height + 1);
}
}
&.o_inverted {
background-color: transparent;
color: white;
a:hover, a:focus {
color: inherit;
}
.o_logo {
.o_logo_inverse;
}
.o_main_header_main > .o_primary_nav > li.dropdown > a {
&::before, &::after {
background-color: white;
box-shadow: 0 1px 1px fade(white, 10%);
}
}
}
> .o_main_header_main > .o_header_buttons {
.dropdown.open {
background-color: @w-header-white;
color: @header-link-normal;
.dropdown-menu {
background-color: @w-header-white;
margin-top: 0;
border: none;
border-radius: 0;
.deep-1();
text-align: left;
min-width: 100%;
padding-bottom: @w-header-height/4;
> li > a {
display: block;
color: @header-link-normal;
float: none;
text-transform: none;
font-weight: normal;
}
}
}
}
}
&.o_scrolled:not(.o_transparent_blocked), &.o_sub_opened {
.o-white-header();
}
&.o_scrolled .o_sub_nav {
background: @w-header-white;
> .container {
.navbar-header > span{
.translate(0, 0);
}
.call-to-action {
max-width: 133px;
}
}
}
&.o_sub_opened .o_sub_nav {
display: none;
}
}
@media (max-width: @screen-xs-max) {
.o_main_header {
@mobile-dark: #25252D;
@mobile-light: #33343D;
position: relative;
height: auto;
min-height: @w-header-height;
.o-white-header();
> .o_main_header_main {
position: relative;
> .o_primary_nav, .o_header_buttons {
display: none;
}
> .o_mobile_menu_toggle {
.o-position-absolute(0, 0);
width: @w-header-height;
line-height: @w-header-height;
font-size: @w-header-height/3;
text-align: center;
}
}
> .o_sub_nav {
display: none;
}
&.o_mobile_menu_opened {
> .o_main_header_main {
margin: 0;
> .o_header_buttons {
float: none;
background-color: @mobile-dark;
padding: 0 (@grid-gutter-width/2);
box-sizing: content-box;
margin: @w-header-height (-@grid-gutter-width/2) 0;
display: block;
text-align: center;
.size(100%, auto);
> * {
overflow: visible!important;
color: @w-header-white;
float: none;
display: inline;
> a:not(.btn) {
display: initial!important;
}
.dropdown-toggle {
color: @w-header-white!important;
}
.dropdown-menu {
position: relative;
line-height: 2;
background: fade(white, 5%);
width: 100%;
margin: 0 (-@grid-gutter-width/2) 0;
box-sizing: content-box;
padding: 5px (@grid-gutter-width/2);
> li > a {
float: none;
display: block;
margin-bottom: 5px;
padding: 10px;
color: @w-header-white!important;
font-size: 0.8em;
&:hover {
background: fade(white, 5%);
}
}
}
}
}
> .o_primary_nav {
display: block;
background-color: @mobile-dark;
color: white;
margin: 0 (-@grid-gutter-width/2) 0;
padding: 0;
float: none;
white-space: normal;
a:hover, a:focus, a:active {
color: white;
}
li {
border: 0 solid @mobile-light;
border-width: 1px 5px 0;
}
> li {
width: 100%;
padding: 0 @grid-gutter-width/2;
&.dropdown {
padding: 0;
> a {
display: none;
}
> .dropdown-menu {
position: static;
display: block;
background-color: transparent;
box-shadow: none;
}
> .o_secondary_nav {
padding: 0;
> .container > .row > div {
padding: 0;
ul {
list-style-type: none;
> li {
height: @w-header-height;
padding: 0 @grid-gutter-width/2;
border-width: 1px 0 0;
> a {
line-height: @w-header-height;
}
&.dropdown.open {
height: auto;
border: none;
> ul {
position: static;
}
}
}
}
> .o_nav_app_family {
height: @w-header-height;
line-height: @w-header-height;
background-color: @mobile-light;
> * {
display: none;
}
&::after {
content: "(Apps)";
}
}
}
> .o_store_link {
position: relative;
border: 0 solid @mobile-light;
border-width: 14px 0 0;
padding-top: 14px;
line-height: 1.5;
height: 60px;
}
}
&::after {
content: "";
display: inline-block;
width: 100%;
height: 20px;
margin-bottom: -5px; // FIXME don't know why
background-color: @mobile-light;
}
}
}
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1254px" height="200px" viewBox="0 0 1254 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<!-- Generator: Sketch 3.3.3 (12081) - http://www.bohemiancoding.com/sketch -->
<title>odoo_logo</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="odoo_logo" sketch:type="MSArtboardGroup">
<g id="odoo_logo_rgb" sketch:type="MSLayerGroup" transform="translate(0.000000, 1.000000)">
<path d="M550.5,198.865327 C592.197499,198.865327 626,165.062825 626,123.365327 C626,81.667828 592.197499,47.8653266 550.5,47.8653266 C508.802501,47.8653266 475,81.667828 475,123.365327 C475,165.062825 508.802501,198.865327 550.5,198.865327 Z M550.5,167.865327 C575.076671,167.865327 595,147.941998 595,123.365327 C595,98.7886553 575.076671,78.8653266 550.5,78.8653266 C525.923329,78.8653266 506,98.7886553 506,123.365327 C506,147.941998 525.923329,167.865327 550.5,167.865327 Z" id="Oval-3" fill="#888888" sketch:type="MSShapeGroup"></path>
<path d="M390.5,198.865327 C432.197499,198.865327 466,165.062825 466,123.365327 C466,81.667828 432.197499,47.8653266 390.5,47.8653266 C348.802501,47.8653266 315,81.667828 315,123.365327 C315,165.062825 348.802501,198.865327 390.5,198.865327 Z M390.5,167.865327 C415.076671,167.865327 435,147.941998 435,123.365327 C435,98.7886553 415.076671,78.8653266 390.5,78.8653266 C365.923329,78.8653266 346,98.7886553 346,123.365327 C346,147.941998 365.923329,167.865327 390.5,167.865327 Z" id="Oval-2" fill="#888888" sketch:type="MSShapeGroup"></path>
<g id="D" transform="translate(157.000000, 0.000000)" fill="#888888" sketch:type="MSShapeGroup">
<g id="d-+-Rectangle-1">
<path d="M151.130367,122.770274 C151.131897,122.968444 151.132663,123.166796 151.132663,123.365327 C151.132663,165.062825 117.330162,198.865327 75.6326633,198.865327 C33.9351647,198.865327 0.132663317,165.062825 0.132663317,123.365327 C0.132663317,81.667828 33.9351647,47.8653266 75.6326633,47.8653266 C92.7270283,47.8653266 108.494494,53.5464573 121.149994,63.1236518 L121.149994,15.0040777 C121.149994,6.71755439 127.863901,0 136.149994,0 C144.434265,0 151.149994,6.72381102 151.149994,15.0040777 L151.149994,121.995922 C151.149994,122.255634 151.143399,122.513804 151.130367,122.770274 L151.130367,122.770274 Z M75.6326633,167.865327 C100.209335,167.865327 120.132663,147.941998 120.132663,123.365327 C120.132663,98.7886553 100.209335,78.8653266 75.6326633,78.8653266 C51.055992,78.8653266 31.1326633,98.7886553 31.1326633,123.365327 C31.1326633,147.941998 51.055992,167.865327 75.6326633,167.865327 Z" id="d"></path>
</g>
</g>
<path d="M76.1924623,198.697487 C117.889961,198.697487 151.692462,164.894986 151.692462,123.197487 C151.692462,81.4999888 117.889961,47.6974874 76.1924623,47.6974874 C34.4949637,47.6974874 0.692462312,81.4999888 0.692462312,123.197487 C0.692462312,164.894986 34.4949637,198.697487 76.1924623,198.697487 Z M75.5,168 C100.076671,168 120,148.076671 120,123.5 C120,98.9233286 100.076671,79 75.5,79 C50.9233286,79 31,98.9233286 31,123.5 C31,148.076671 50.9233286,168 75.5,168 Z" id="Oval-1" fill="#9C5789" sketch:type="MSShapeGroup"></path>
</g>
<g id="odoo_logo_white" sketch:type="MSLayerGroup" transform="translate(627.000000, 1.000000)" fill="#FFFFFF">
<path d="M550.5,198.865327 C592.197499,198.865327 626,165.062825 626,123.365327 C626,81.667828 592.197499,47.8653266 550.5,47.8653266 C508.802501,47.8653266 475,81.667828 475,123.365327 C475,165.062825 508.802501,198.865327 550.5,198.865327 Z M550.5,167.865327 C575.076671,167.865327 595,147.941998 595,123.365327 C595,98.7886553 575.076671,78.8653266 550.5,78.8653266 C525.923329,78.8653266 506,98.7886553 506,123.365327 C506,147.941998 525.923329,167.865327 550.5,167.865327 Z" id="Oval-3" sketch:type="MSShapeGroup"></path>
<path d="M390.5,198.865327 C432.197499,198.865327 466,165.062825 466,123.365327 C466,81.667828 432.197499,47.8653266 390.5,47.8653266 C348.802501,47.8653266 315,81.667828 315,123.365327 C315,165.062825 348.802501,198.865327 390.5,198.865327 Z M390.5,167.865327 C415.076671,167.865327 435,147.941998 435,123.365327 C435,98.7886553 415.076671,78.8653266 390.5,78.8653266 C365.923329,78.8653266 346,98.7886553 346,123.365327 C346,147.941998 365.923329,167.865327 390.5,167.865327 Z" id="Oval-2" sketch:type="MSShapeGroup"></path>
<g id="D" transform="translate(157.000000, 0.000000)" sketch:type="MSShapeGroup">
<g id="d-+-Rectangle-1">
<path d="M151.130367,122.770274 C151.131897,122.968444 151.132663,123.166796 151.132663,123.365327 C151.132663,165.062825 117.330162,198.865327 75.6326633,198.865327 C33.9351647,198.865327 0.132663317,165.062825 0.132663317,123.365327 C0.132663317,81.667828 33.9351647,47.8653266 75.6326633,47.8653266 C92.7270283,47.8653266 108.494494,53.5464573 121.149994,63.1236518 L121.149994,15.0040777 C121.149994,6.71755439 127.863901,0 136.149994,0 C144.434265,0 151.149994,6.72381102 151.149994,15.0040777 L151.149994,121.995922 C151.149994,122.255634 151.143399,122.513804 151.130367,122.770274 L151.130367,122.770274 Z M75.6326633,167.865327 C100.209335,167.865327 120.132663,147.941998 120.132663,123.365327 C120.132663,98.7886553 100.209335,78.8653266 75.6326633,78.8653266 C51.055992,78.8653266 31.1326633,98.7886553 31.1326633,123.365327 C31.1326633,147.941998 51.055992,167.865327 75.6326633,167.865327 Z" id="d"></path>
</g>
</g>
<path d="M76.1924623,198.697487 C117.889961,198.697487 151.692462,164.894986 151.692462,123.197487 C151.692462,81.4999888 117.889961,47.6974874 76.1924623,47.6974874 C34.4949637,47.6974874 0.692462312,81.4999888 0.692462312,123.197487 C0.692462312,164.894986 34.4949637,198.697487 76.1924623,198.697487 Z M75.5,168 C100.076671,168 120,148.076671 120,123.5 C120,98.9233286 100.076671,79 75.5,79 C50.9233286,79 31,98.9233286 31,123.5 C31,148.076671 50.9233286,168 75.5,168 Z" id="Oval-1" sketch:type="MSShapeGroup"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -14,7 +14,6 @@
position: absolute;
width: 43%;
height: 100%;
//z-index: 0;
top: 0;
right: 0;
}
@ -24,60 +23,22 @@ body, header {
position: relative;
}
// @screen-xs : 480px;
// @screen-sm : 768px;
// @screen-md : 992px;
// @screen-lg : 1200px;
// Index layout
#wrap {
> .container.index {
background-color: @gray-lightest;
width: 100%;
position: relative;
// @w-size-small : 480px;
// @w-size-medium : 992px;
// @w-size-large : 1170px;
// @w-size-xlarge : 1440px;
#main_navbar{
.container-fluid {
// @media screen and (min-width: @w-size-medium){
// padding: 0;
// }
.navbar-header {
li { float:left}
> .index {
.container;
}
}
// .navbar-nav {
// @media screen and (max-width: @w-size-medium){
// margin: 0;
// }
// }
}
header{
@media (min-width:@screen-sm) {
margin-bottom: -50px;
}
}
.card.top {
height: 0;
margin-bottom: 0;
overflow: hidden;
position: relative;
padding-top: 50%;
padding-bottom: 15%;
@media (min-width:@screen-sm) {
padding-top: 30%;
}
@media (min-width:@w-size-medium) {
padding-top: 10%;
padding-bottom: 15%;
}
}
#main_title {
margin: 10px;
@media (min-width:@w-size-medium) {
@media (min-width:@screen-md-min) {
margin: 0 0 9px 0;
}
}
@ -108,14 +69,15 @@ main{
padding:0;
display:block;
float:left;
@media (max-width:@w-size-medium) {
@media (max-width:@screen-md-min) {
display: none;
}
}
article.doc-body {
background: @doc_paper;
padding: 30px;
@media (min-width: @w-size-medium) {
border-left: 1px solid @gray-lighter;
padding: 15px 30px;
@media (min-width: @screen-md-min) {
width: 75%;
&.doc-toc {
width: 100%;
@ -129,13 +91,15 @@ main{
}
main.has_code_col{
width: 100%;
.container;
aside {
display: none;
}
article.doc-body {
width: 100%;
> *{
max-width: 100%;
}
@ -146,7 +110,7 @@ main.has_code_col{
width: 100%;
}
@media (min-width: @w-size-large) {
@media (min-width: @screen-lg-min) {
width: 100%;
padding-right: 0;
&:before {
@ -154,7 +118,8 @@ main.has_code_col{
}
section {
> * {
width: 55.633333%;
width: 54.633333%;
max-width: 600px;
float: left;
clear: left;
}
@ -168,9 +133,17 @@ main.has_code_col{
float: none;
clear: none;
margin-right: 15px;
margin-left: 56%;
margin-left: 57%;
.content-switcher{
margin-top:0;
> ul {
margin-bottom: 0;
}
> ul > li {
color: @gray-light;
}
}
}
}
@ -220,7 +193,7 @@ article.doc-toc .toctree-wrapper > ul > li > span {
.code-field-body{
display: block;
padding-left: 15px;
@media screen and (min-width: @w-size-medium ){
@media screen and (min-width: @screen-md-min){
display: table-cell;
padding-left: 0;
}
@ -228,7 +201,7 @@ article.doc-toc .toctree-wrapper > ul > li > span {
.code-field-name{
width:auto;
display:block;
@media screen and (min-width: @w-size-medium ){
@media screen and (min-width: @screen-md-min){
width:20%;
padding-right: 20px;
display: table-cell;

View File

@ -1,4 +1,196 @@
// Mixins
// ================================================
// ================ Mixins =======================
// ================================================
// Utilities
// ------------------------------------------------------------------
.o-no-select {
pointer-events: none;
cursor: default;
&, & * {
&::selection {
background: transparent;
}
&::-moz-selection {
background: transparent;
}
}
}
.o-position-absolute(@top: auto, @right: auto, @bottom: auto, @left: auto) {
position: absolute;
top: @top;
left: @left;
bottom: @bottom;
right: @right;
}
.o-transform-origin(@x: 50%, @y: 50%, @z: 0) {
-ms-transform-origin: @x @y @z;
-webkit-transform-origin: @x @y @z;
-moz-transform-origin: @x @y @z;
transform-origin: @x @y @z;
}
.o-transition(@property: all, @duration: 0s, @timing-function: ease, @transition-delay: 0s) {
-webkit-transition: @property @duration @timing-function @transition-delay;
-moz-transition: @property @duration @timing-function @transition-delay;
-o-transition: @property @duration @timing-function @transition-delay;
transition: @property @duration @timing-function @transition-delay;
}
// Backgrounds
// ------------------------------------------------------------------
.o-svg-bg(@file_name,@file_ext,@x:50%, @y:50%, @repeat: no-repeat, @folder: '') {
@std-url: url("img/@{folder}@{file_name}.@{file_ext}");
@svg-url: url("img/@{folder}@{file_name}.svg");
background-image: @std-url;
background-image: @svg-url;
background-position: @x @y;
background-repeat: @repeat;
}
.o-retina-bg(@img,@x:50%, @y:50%, @repeat: no-repeat, @folder: '') {
@std-url: url("img/@{folder}@{img}");
background-image: @std-url;
background-position: @x @y;
background-repeat: @repeat;
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
@2x-url: url("img/@{folder}@{website-2x-prefix}@{img}");
background-image: @2x-url;
}
}
.o-gradient(@deg: 99deg , @startColor: @o-violet-dark, @endColor: @o-violet-darker, @startOffset: 10%, @endOffset: 90%) {
background: mix(@startColor, @endColor);
background: -webkit-linear-gradient(@deg, @startColor @startOffset, @endColor @endOffset);
background: -moz-linear-gradient(@deg, @startColor @startOffset, @endColor @endOffset);
background: -ms-linear-gradient(@deg, @startColor @startOffset, @endColor @endOffset);
background: -o-linear-gradient(@deg, @startColor @startOffset, @endColor @endOffset);
background: linear-gradient(@deg, @startColor @startOffset, @endColor @endOffset);
}
// Logos
// ------------------------------------------------------------------
.o-logo-size(@height) {
@ratio: 3.135;
.size((@height * @ratio), @height);
background-size: auto @height;
}
.generate-logo-classes(@n, @i: 15) when (@i =< @n) {
.o_logo_@{i} {
.o-logo-size(@i*1px)
}
.generate-logo-classes(@n, (@i * 2));
}
.o_logo {
.o-svg-bg("odoo_logo","png", 0, 0, no-repeat, "logos/" );
display: inline-block;
.o-logo-size(30px); // 30px height is default size
&.center-block,
&.o_logo_responsive_half {
position: relative;
margin-left: auto;
margin-right: auto;
display: block;
}
&.o_logo_responsive {
background-size: cover;
width: 100%;
height: 0;
padding-bottom: 31.9%;
}
&.o_logo_responsive_half {
background-size: cover;
width: 50%;
height: 0;
padding-bottom: 15.94%;
}
}
// Generate Logo's sizes classes
// heights: 15 - 30 - 60 - 120 - 240
// ------------------------------------------------------------------
.generate-logo-classes(240);
&.o_logo_inverse {
background-position: 100% 0;
&.o_logo_15.center-block {
background-position: 102% 0;
}
}
// Elevation Shadows
// Visual cue indicating the amount of separation between surfaces.
// An objects elevation determines the appearance of its shadow.
// ------------------------------------------------------------------
.deep-1-shadow() {
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
}
.deep-2-shadow() {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
}
.deep-3-shadow() {
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
}
.deep-4-shadow() {
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
}
.deep-5-shadow() {
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
}
.deep-transition() {
.o-transition(box-shadow, 0.3s, @o-ease);
}
.deep-1() {
.deep-1-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-2-shadow();
}
}
.deep-2() {
.deep-2-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-3-shadow();
}
}
.deep-3() {
.deep-3-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-4-shadow();
}
}
.deep-4() {
.deep-4-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-5-shadow();
}
}
.deep-5() {
.deep-5-shadow();
}
.transform(@args) {
-webkit-transform : @args;
-moz-transform : @args;
@ -7,27 +199,121 @@
transform : @args;
}
.antialiased{
-moz-osx-font-smoothing : grayscale;
-webkit-font-smoothing : antialiased;
text-rendering : geometricPrecision;
//-- Material Design Icons
.mdi-icon(@content) {
font-family: 'Material-Design-Icons';
content: @content;
display: inline-block;
text-rendering: geometricPrecision;
font-size: 1em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.mdi-icon {
font-family: 'Material-Design-Icons';
display: inline-block;
text-rendering: geometricPrecision;
.antialiased;
}
.keyframes(@name; @arguments) {
@-moz-keyframes @name { @arguments(); }
@-webkit-keyframes @name { @arguments(); }
@keyframes @name { @arguments(); }
}
//-- Documentation Dropdown style
.o-doc-dropdown {
> a.dropdown-toggle {
padding: 0 5px 0 10px;
&:after {
.mdi-icon( "\e7c1");
@media screen and (max-width: @screen-xs-max) {
font-size: 1.5em
}
}
}
&.open {
z-index: 1;
position: relative;
background-color: @gray-light;
color: @header-link-normal;
@media screen and (min-width: @screen-sm-min){
background-color: @w-header-white;
}
.dropdown-toggle {
color: @header-link-normal;
&:hover {
color: @headings-color;
}
}
.dropdown-menu {
margin-top: 0;
border: none;
border-radius: 0;
text-align: left;
min-width: 100%;
background-color: @w-header-white;
padding-bottom: @w-header-height/4;
.deep-1();
> li > a {
font-size: 12px;
display: block;
color: @header-link-normal;
float: none;
text-transform: none;
font-weight: @fw_medium;
@media screen and (max-width: @screen-xs-max) {
padding-left: 10px;
}
}
> li.active > a {
color: white;
background-color: desaturate(@brand-primary, 40%);
}
@media screen and (max-width: @screen-xs-max) {
position: static;
}
@media screen and (min-width: @screen-sm-min) {
background-color: @w-header-white;
}
}
}
&.o_dropdown_mobile_nav {
margin-left: 0;
> .dropdown-toggle {
&:after {
.o-position-absolute(0, 0);
}
}
.o_breadcrumb_dropdown_menu > li{
> a {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
> a:before {
content: "|";
margin-right: 0.5em;
}
&:nth-child(1) > a:before {
display: none;
}
&:nth-child(2) > a:before {
padding-left: 0.5em;
}
&:nth-child(3) > a:before {
padding-left: 1em;
}
}
}
}
// Shadows
@ -36,23 +322,21 @@
.shadow-none {
.box-shadow(none);
}
.shadow-0 {
.box-shadow(0 1px 4px rgba(0, 0, 0, 0.1));
.deep-1 {
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
}
.shadow-1 {
box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12);
.deep-2 {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
}
.shadow-2 {
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.23), 0 3px 12px rgba(0, 0, 0, 0.16);
.deep-3 {
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
}
.shadow-3 {
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.23), 0 10px 40px rgba(0, 0, 0, 0.19);
.deep-4 {
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
}
.shadow-4 {
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.22), 0 14px 56px rgba(0, 0, 0, 0.25);
}
.shadow-5 {
box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3);
.deep-5 {
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
}
// overwrite bootstrap inline forcing

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,129 +1,58 @@
@import url(https://fonts.googleapis.com/css?family=Lato:300,400,900,300italic,400italic);
// =============================================================================
// Typography
@font-size-base: 16px;
@text-color: @doc_text;
// =============================================================================
@headings-font-family : Lato, sans-serif;
@headings-color : @doc_heading;
@headings-font-weight : 400;
//** Global textual link color.
a {.transition(color 0.1s linear); }
@link-color: darken(@doc_accent,10%);
@link-hover-color: @doc_violet;
@link-hover-decoration: underline;
#navClone, .navbar-aside {
font-size: 0.875em;
line-height: 1.642857143em;
}
main article {
a{
font-weight: bold;
}
/* Sanitation */
hr {
margin: -1px 0;
border-top: 1px solid @doc_bg;
}
ul ul, ol ol, ul ol, ol ul {
margin-top: 0;
margin-bottom: 0;
margin-left: .5em;
padding-left: .5em;
}
ul, ol {
padding-left: 1em;
margin-left: .5em;
li {
margin-top: .5em;
p {margin:0;}
pre, .highlight{ display: inline; border-radius: 0}
pre{
font-size: .8em;
padding: 0.3em .5em;
}
}
}
.alert, .doc-content {
pre{
font-size: .8em;
padding: 0.3em .5em;
}
}
b, strong, em, small, code {
line-height: 1;
}
sup, sub {
vertical-align: baseline;
position: relative;
top: -0.4em;
}
sub {
top: 0.4em;
}
// Font rendering
// ----------------------------------------
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@media screen and (min-width: 992px) {
.doc-body {
// Headings
// ----------------------------------------
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
text-rendering: geometricPrecision;
letter-spacing: -0.01em;
line-height: 1.4;
p, ul, ol, table, blockquote {
margin-top: 1em;
margin-bottom: 1em;
@media (min-width: @screen-lg-min) {
.has_code_col .doc-aside &{
color: white;
}
}
}
pre{
margin-top: .1em;
margin-bottom: 0em;
h1, h2, .h1, .h2 {
margin-top: @line-height-computed * 1.5;
font-weight: @fw_light;
b, strong, a {
font-weight: @fw_regular;
}
}
/* Sanitation */
hr {
border: 1px solid;
margin: -1px 0;
h3, .h3, h4, .h4, h5, h6, .h5, .h6 {
font-weight: @fw_regular;
b, strong, a {
font-weight: @fw_medium;
}
ul ul, ol ol, ul ol, ol ul {
margin-top: 0;
margin-bottom: 0;
}
h4, .h4, h5, h6, .h5, .h6 {
margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 3);
}
// Lists
// ----------------------------------------
ul, ol {
&:not(:empty) {
margin-bottom: (@line-height-computed / 2);
}
ul, ol {
padding-left: 1em;
margin-left: .5em;
li {
margin-top: .5em;
p { margin:.5em 0;}
pre, .highlight{ display: inline; border-radius: 0}
pre{
font-size: .8em;
padding: 0.3em .5em;
&:not(:empty) {
margin-bottom: (@line-height-computed / 3);
}
}
}
.alert, .doc-content {
pre{
font-size: .8em;
padding: 0.3em .5em;
}
}
b, strong, em, small, code {
line-height: 1;
}
sup, sub {
vertical-align: baseline;
position: relative;
top: -0.4em;
}
sub {
top: 0.4em;
}
}
}

View File

@ -1,6 +1,139 @@
// Based on http://www.odoo.com/openerp_website/static/src/less/variables.less
// ============================================================================
// Prefixes
// ==============================================
@website-2x-prefix : "2x_";
// Odoo Colours
// ==============================================
@odoo-brand-optional : #21b799;
@odoo-brand-primary : #9E588B;
//== Odoo Colours
@o-violet-dark : #875A7B;
@o-violet-darker : #62495B;
@o-inverse : #47738F;
@o-inverse-dark : #5B7687;
@o-inverse-darker : #485761;
//== Grayscale
@gray-lightest : #F9F9F9;
@gray-lighter : #F2F2F2;
@gray-light : #dcddde;
@gray : #888888;
@gray-dark : #6B6D70;
@gray-darker : #282F33;
@gray-darkest : darken(saturate(@gray-darker, 1%), 3%);
//== UI Colors
@brand-primary : @odoo-brand-optional;
@brand-success : #50AF51;
@brand-info : #4B9EB6;
@brand-warning : #F0AD4E;
@brand-danger : #D9534F;
//== Apps' Families Colours
@color-alpha : @brand-primary;
@color-alpha-dark : #18856F;
@color-alpha-light : #26D1AF;
@color-alpha-lightest : #2AEBC4;
@color-beta : #5B899E;
@color-beta-dark : #3D5D6B;
@color-beta-light : #699FB8;
@color-beta-lightest : #77B5D1;
@color-gamma : #E46F78;
@color-gamma-dark : #B0565C;
@color-gamma-light : #FC7C84;
@color-gamma-lightest : #FC959C;
@color-delta : #5C5B80;
@color-delta-dark : #37364D;
@color-delta-light : #6E6D99;
@color-delta-lightest : #807FB3;
@color-epsilon : #D5653E;
@color-epsilon-dark : #A34E2F;
@color-epsilon-light : #F07346;
@color-epsilon-lightest : #FF8D63;
@doc_paper_dark : @gray-lighter;
@doc_paper : #fff;
@doc_exercise : #938E94;
@doc_code-bg : @gray-darkest;
@doc_lime : #CDDC39;
@doc_orange : #FF5722;
@doc_cyan : #0097A7;
// Typography
// ===============================================
//== Fonts
@import url(https://fonts.googleapis.com/css?family=Work+Sans:300,400,500,600,700&subset=latin,latin-ext);
//== Font sizes/weigths
@font-size-base : 15px;
@fw_light : 300;
@fw_regular : 400;
@fw_medium : 500;
@fw_semibold : 600;
@fw_bold : 700;
//== Paragraphs
@font-family-base : -apple-system, BlinkMacSystemFont, Helvetica, "Helvetica Neue", Arial, sans-serif;
@text-color : saturate(@gray-dark, 5%);
//== Headings
@headings-color : saturate(@gray-darker, 15%);
@headings-font-family : "Work Sans", sans-serif;
@headings-font-weight : @fw_light;
@headings-small-color : @headings-color;
@display1-size : 6rem;
@display2-size : 5.5rem;
@display3-size : 4.5rem;
@display4-size : 3.5rem;
//== Global textual link color.
@link-color : @o-violet-dark;
@link-hover-color : desaturate(@odoo-brand-primary, 10%);
@link-hover-decoration : none;
//== Mute color.
@text-muted : @gray;
// Layouting
// ===============================================
@body-bg: @gray-lightest;
//== Header
@w-header-height : 50px;
@w-sub-nav-height : 40px;
@w-header-white : #FCFCFC;
@header-link-normal : darken(@text-color,5%);
//== Footer
@footer-heigth : 300px;
@footer-bg-color : @gray-darker;
@footer-bottom-bg-color : @gray-darkest;
@footer-text : @gray-light;
@footer-text-mute : @gray;
// ==========================
// == Variables =============
// == Docs Variables ========
// ==========================
// Z-Index Scale (private vars)
@ -21,50 +154,8 @@
@zIndex--main: 0;
@zIndex--mask: @zIndex-7;
@zIndex--header: 100;
@zIndex--float_action: @zIndex-8;
@zIndex--toggle_side_menu: @zIndex-8;
@zIndex--dev: none;
// Colors
// --------------------------------------------------
// Base Colors
@doc_accent : #21b799;
@doc_violet : #9E588B;
@doc_exercise: #938E94;
@doc_success : #50AF51;
@doc_info : #4B9EB6;
@doc_warning : #F0AD4E;
@doc_danger : #D9534F;
@doc_bg : #DDDFE4;
@doc_bg : #E5E5E5;
@doc_paper : #fff;
@doc_paper_dark: #F4F4F4;
@doc_code-bg : #21242A;
@doc_lime : #CDDC39;
@doc_orange : #FF5722;
@doc_cyan : #0097A7;
// Typography
@doc_text : #232B41;
@doc_heading : #393F4F;
// Bootstrap Branding Colors
@brand-success: @doc_success;
@brand-info: @doc_info;
@brand-warning: @doc_warning;
@brand-danger: @doc_danger;
// Layout
@body-bg: @doc_bg;
// Cards
@ -73,16 +164,9 @@
@card_margin-bottom: 20px;
// Media Queries
// --------------------------------------------------
@w-size-small : 480px;
@w-size-medium : 992px;
@w-size-large : 1170px;
@w-size-xlarge : 1440px;
// Easing Curves
@ease-material: cubic-bezier(.55, 0, .1, 1);
@ease-material-2: cubic-bezier(0.215, 0.61, 0.355, 1);
@ease-material-3: cubic-bezier(0.4, 0, 0.2, 1);
// --------------------------------------------------
@o-ease : cubic-bezier(.55,0,.1,1);
@ease-material-2 : cubic-bezier(0.215, 0.61, 0.355, 1);
@ease-material-3 : cubic-bezier(0.4, 0, 0.2, 1);

View File

@ -0,0 +1,8 @@
{# note: if odoo.com/page/docs sub-menu's structure change, these links have to change as well #}
<li><a href="http://www.odoo.com/documentation/user/9.0/index.html">User</a></li>
<li><a href="http://www.odoo.com/documentation/9.0/index.html">Developer</a></li>
<li><a href="http://www.odoo.com/documentation/9.0/api_integration.html">API</a></li>
<li><a href="http://www.odoo.com/documentation/9.0/setup/install.html">Installation</a></li>
<li><a href="http://www.odoo.com/page/odoo-white-paper">White Papers</a></li>
<li><a href="http://www.odoo.com/page/legal">Legal</a></li>

View File

@ -0,0 +1,25 @@
{% if languages %}
<li class="languages dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
{{ language }}
</a>
<ul class="dropdown-menu" role="menu">
{% for name, url in languages %}
<li><a href="{{ url }}">{{ name }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% if versions %}
<li class="versions dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
{{ version }}
</a>
<ul class="dropdown-menu" role="menu">
{% for name, url in versions %}
<li><a href="{{ url }}">{{ name }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Some files were not shown because too many files have changed in this diff Show More