1 @import "bootstrap/less/bootstrap";
2 @import url(http://fonts.googleapis.com/css?family=Lato);
4 @icon-font-path: 'fonts/';
5 @brand-primary: #a24689;
6 @brand-dark: darken(@brand-primary, 6%);
7 @brand-light: lighten(@brand-primary, 10%);
8 @brand-text: saturate(lighten(@brand-primary, 46%), 5%);
10 @headings-font-family: Lato, Arial, sans-serif;
12 @navbar-margin-bottom: 0;
14 @navbar-default-bg: white;
15 @navbar-default-border: 0;
17 // indent level for various items list e.g. dl, fields lists, ...
21 box-sizing: border-box;
28 .document-super:not(.stripe) {
31 .document-super.stripe {
47 color: @brand-primary;
48 background-color: transparent;
49 border-color: @brand-primary;
50 &:hover, &:focus, &:active {
52 background-color: @brand-primary;
53 border-color: @brand-primary;
58 .btn-outline-inverse {
60 background-color: transparent;
61 border-color: @brand-text;
62 &:hover, &:focus, &:active {
63 color: @brand-primary;
65 background-color: #fff;
74 .navbar-nav > li > a {
79 > a:hover:before, &.current a:before {
91 background: @brand-primary;
93 .transition(all 0.3s ease-out);
98 display: inline-block;
102 vertical-align: middle;
103 border-top: 4px solid @gray-light;
104 border-right: 4px solid transparent;
105 border-left: 4px solid transparent;
107 .dropdown-menu > li.current > a.current {
108 background-color: @brand-primary;
113 /* version switcher */
118 display: inline-block;
124 font-family: Lato, Arial, sans-serif;
126 text-decoration: none;
132 // FIXME: protocol-relative urls for remote but absolute for local (file://)?
134 display: inline-block;
137 background-image: url(odoo_logo_rgb.png);
138 background-repeat: no-repeat;
139 background-position: center center;
140 background-size: contain;
141 color: rgba(255, 255, 255, 0);
142 text-decoration: none;
145 text-decoration: none;
146 color: rgb(143, 143, 143);
147 font-family: Lato, Arial, sans-serif;
156 * Scrollspy and affixed enhanced navigation to highlight sections and secondary
157 * sections of docs content.
160 /* By default it's not affixed in mobile views, so undo that */
161 .sphinxsidebarwrapper.affix {
164 @media (min-width: @screen-sm-min) {
165 .sphinxsidebarwrapper {
170 /* Side navigation visibility changes */
171 .sphinxsidebarwrapper {
172 > .nav { // root (contains document categories), always show
174 // hide sub-everything by default
180 // sub-items of a current or active li are shown
186 /* Side navigation graphical styling */
188 @nav-spacing-increment: 5px;
189 @nav-hover-offset: 1px;
190 @nav-hover: @nav-spacing - @nav-hover-offset;
191 @nav-current-offset: 2px;
192 @nav-current: @nav-spacing - @nav-current-offset;
197 .sphinxsidebarwrapper {
206 /* First level of nav */
214 padding-left: @nav-spacing;
218 padding-left: @nav-spacing + @nav-spacing-increment;
220 .nav .nav .nav > li > a {
222 padding-left: @nav-spacing + 2*@nav-spacing-increment;
224 .nav .nav .nav .nav > li > a {
226 padding-left: @nav-spacing + 3*@nav-spacing-increment;
229 /* All levels of nav */
233 padding: 4px @nav-spacing;
237 padding-left: @nav-hover;
238 color: @brand-primary;
239 text-decoration: none;
240 background-color: transparent;
241 border-left: @nav-hover-offset solid @brand-primary;
245 // before scrollspy is applied, need to use current for docs
246 > .current > a, > .current:hover > a, > .current:focus > a,
247 > .active > a, > .active:hover > a, > .active:focus > a {
248 padding-left: @nav-current;
250 color: @brand-primary;
251 background-color: transparent;
252 border-left: @nav-current-offset solid @brand-primary;
256 > li > a:hover, > li > a:focus {
257 padding-left: @nav-hover + @nav-spacing-increment;
259 > .current > a, > .current:hover > a, > .current:focus > a,
260 > .active > a, > .active:hover > a, > .active:focus > a {
261 padding-left: @nav-current + @nav-spacing-increment;
265 padding-bottom: 10px;
272 > li > a:hover, > li > a:focus {
273 padding-left: @nav-hover + 2 * @nav-spacing-increment;
275 > .active > a, > .active:hover > a, > .active:focus > a {
276 padding-left: @nav-current + 2 * @nav-spacing-increment;
280 .nav .nav .nav .nav {
281 > li > a:hover, > li > a:focus {
282 padding-left: @nav-hover + 3 * @nav-spacing-increment;
284 > .active > a, > .active:hover > a, > .active:focus > a {
285 padding-left: @nav-current + 3 * @nav-spacing-increment;
289 /* github link for current document */
290 .sphinxsidebarwrapper > p {
291 margin: 5px 10px 10px;
295 text-decoration: none;
308 background: url(github-link.png) left bottom / 13px no-repeat;
311 background-position: left top;
317 /* Show and affix the side nav when space allows it */
318 @media (min-width: @screen-md-min) {
319 .sphinxsidebarwrapper {
320 .nav .nav > .active > ul {
323 /* Widen the fixed sidebar */
324 &.affix, &.affix-bottom {
328 position: fixed; /* Undo the static from mobile first approach */
332 position: absolute; /* Undo the static from mobile first approach */
334 &.affix-bottom > .nav, &.affix > .nav {
340 @media (min-width: @screen-lg-min) {
341 /* Widen the fixed sidebar again */
342 .sphinxsidebarwrapper.affix-bottom,
343 .sphinxsidebarwrapper.affix {
351 * Separated section of content at the bottom of all pages, save the homepage.
356 padding-bottom: 40px;
360 border-top: 1px solid #e5e5e5;
367 .docs-footer-links li {
371 .docs-footer-links li:first-child {
375 @media (min-width: 768px) {
381 // move [source] link to the right
387 dt:hover > a > .viewcode-link {
391 // either that or overwrite visit_attribution/depart_attribution
392 blockquote p.attribution:extend(blockquote footer) {}
396 font-size: floor((@font-size-base * 3.05));
401 font-size: @font-size-h1;
406 .body > .section > .section {
410 .literal:extend(code) {}
415 border: 1px solid @gray-lighter;
416 border-left-width: 5px;
419 .admonition-title:after {
423 // only "aphorisms" should have the same size as the admonition category
424 &.aphorism > .admonition-title + p,
425 &.exercise > .admonition-title + p {
426 display: inline-block;
430 font-family: @headings-font-family;
431 font-weight: @headings-font-weight;
432 line-height: @headings-line-height;
433 color: @headings-color;
435 font-size: @font-size-h4;
443 border-left-color: @brand-info;
444 > .admonition-title {
449 border-left-color: @brand-warning;
450 > .admonition-title {
451 color: @brand-warning;
455 border-left-color: @brand-danger;
456 > .admonition-title {
457 color: @brand-danger;
461 border-left-color: @gray-light;
462 > .admonition-title {
471 * Generated via Pygments
476 // don't break lines within words
480 .switchable .highlight.with-btn-clipboard pre {
481 // avoid copy button overlapping with even long lines
486 * ZeroClipboard styles
501 background-color: #fff;
502 border: 1px solid #e1e1e8;
503 border-radius: 0 4px 0 4px;
510 background-color: #ffffad;
511 .transition(background-color .5s linear);
522 // Reinstate dd indent, looks horrible and illegible otherwise
523 margin-left: @item-indent;
526 // By default there's (browser) padding on ``ul`` so lists of >1 field are
527 // nicely separated from the section name (e.g. ``Parameters``) but single
528 // fields/items are stuck to it and look horrible. Make everything neatly-ish
529 // aligned. Other option: half and half so list bullets are aligned to text
530 // instead of text to text
532 padding-left: @item-indent;
534 padding-left: @item-indent;
541 // naming collision, rST generates .container nodes with completely different
542 // semantics so go away
543 .section .container {
549 // lighten js namespace/class name
562 margin-bottom: 0.5em;
568 display: -webkit-flex;
570 -webkit-flex-wrap: wrap;
583 color: @link-color !important;
585 margin: 3px !important;
587 background-color: @gray-lighter;
593 @background-right: @gray-dark;
594 @color-right: @gray-lighter;
595 @color-right-code: lighten(#000, 80%);
596 @separator-right: @gray-light;
597 // STRIPE-STYLE PAGES
603 // === columning only on medium+ ===
604 @media (min-width: @screen-md-min) {
607 .section > .force-left {
613 .section > .force-right {
617 .section > .force-right,
618 .section > [class*=highlight] {
625 color: lighten(@link-color, 30%);
629 background-color: @gray;
631 &:not(.highlight-json) .highlight {
632 border-bottom-color: @separator-right;
637 border-top-color: @separator-right;
638 border-bottom-color: @separator-right;
639 border-right-color: @separator-right;
642 // padding leads to overflow scrollbar in safari for no reason I understand,
643 // margin does not have that issue
654 // solarized-ish from https://gist.github.com/qguv/7936275
655 color: @color-right-code;
657 .lineno { color: #586e75 } /* Line Numbers */
658 .c { color: #586e75 } /* Comment */
659 .err { color: @color-right-code } /* Error */
660 .g { color: @color-right-code } /* Generic */
661 .k { color: #859900 } /* Keyword */
662 .l { color: @color-right-code } /* Literal */
663 .n { color: @color-right-code } /* Name */
664 .o { color: #859900 } /* Operator */
665 .x { color: #cb4b16 } /* Other */
666 .p { color: @color-right-code } /* Punctuation */
667 .cm { color: #586e75 } /* Comment.Multiline */
668 .cp { color: #859900 } /* Comment.Preproc */
669 .c1 { color: #586e75 } /* Comment.Single */
670 .cs { color: #859900 } /* Comment.Special */
671 .gd { color: #2aa198 } /* Generic.Deleted */
672 .ge { color: @color-right-code; font-style: italic } /* Generic.Emph */
673 .gr { color: #dc322f } /* Generic.Error */
674 .gh { color: #cb4b16 } /* Generic.Heading */
675 .gi { color: #859900 } /* Generic.Inserted */
676 .go { color: @color-right-code } /* Generic.Output */
677 .gp { color: @color-right-code } /* Generic.Prompt */
678 .gs { color: @color-right-code; font-weight: bold } /* Generic.Strong */
679 .gu { color: #cb4b16 } /* Generic.Subheading */
680 .gt { color: @color-right-code } /* Generic.Traceback */
681 .kc { color: #cb4b16 } /* Keyword.Constant */
682 .kd { color: #268bd2 } /* Keyword.Declaration */
683 .kn { color: #859900 } /* Keyword.Namespace */
684 .kp { color: #859900 } /* Keyword.Pseudo */
685 .kr { color: #268bd2 } /* Keyword.Reserved */
686 .kt { color: #dc322f } /* Keyword.Type */
687 .ld { color: @color-right-code } /* Literal.Date */
688 .m { color: #2aa198 } /* Literal.Number */
689 .s { color: #2aa198 } /* Literal.String */
690 .na { color: @color-right-code } /* Name.Attribute */
691 .nb { color: #B58900 } /* Name.Builtin */
692 .nc { color: #268bd2 } /* Name.Class */
693 .no { color: #cb4b16 } /* Name.Constant */
694 .nd { color: #268bd2 } /* Name.Decorator */
695 .ni { color: #cb4b16 } /* Name.Entity */
696 .ne { color: #cb4b16 } /* Name.Exception */
697 .nf { color: #268bd2 } /* Name.Function */
698 .nl { color: @color-right-code } /* Name.Label */
699 .nn { color: @color-right-code } /* Name.Namespace */
700 .nx { color: @color-right-code } /* Name.Other */
701 .py { color: @color-right-code } /* Name.Property */
702 .nt { color: #268bd2 } /* Name.Tag */
703 .nv { color: #268bd2 } /* Name.Variable */
704 .ow { color: #859900 } /* Operator.Word */
705 .w { color: @color-right-code } /* Text.Whitespace */
706 .mf { color: #2aa198 } /* Literal.Number.Float */
707 .mh { color: #2aa198 } /* Literal.Number.Hex */
708 .mi { color: #2aa198 } /* Literal.Number.Integer */
709 .mo { color: #2aa198 } /* Literal.Number.Oct */
710 .sb { color: #586e75 } /* Literal.String.Backtick */
711 .sc { color: #2aa198 } /* Literal.String.Char */
712 .sd { color: @color-right-code } /* Literal.String.Doc */
713 .s2 { color: #2aa198 } /* Literal.String.Double */
714 .se { color: #cb4b16 } /* Literal.String.Escape */
715 .sh { color: @color-right-code } /* Literal.String.Heredoc */
716 .si { color: #2aa198 } /* Literal.String.Interpol */
717 .sx { color: #2aa198 } /* Literal.String.Other */
718 .sr { color: #dc322f } /* Literal.String.Regex */
719 .s1 { color: #2aa198 } /* Literal.String.Single */
720 .ss { color: #2aa198 } /* Literal.String.Symbol */
721 .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
722 .vc { color: #268bd2 } /* Name.Variable.Class */
723 .vg { color: #268bd2 } /* Name.Variable.Global */
724 .vi { color: #268bd2 } /* Name.Variable.Instance */
725 .il { color: #2aa198 } /* Literal.Number.Integer.Long */
728 // separator above H2
729 .body > .section > .section {
730 border-top: 1px solid @color-right;
732 .section > h1, .section > h2, .section > h3, .section > h4, .section > h5,
737 .section > h1, .section > h2, .section > h3, .section > h4, .section > h5,
738 .section > h6, .section > .section {
755 background: @background-right;
760 // but allow additional line-breaks between "words" to avoid overflow
761 white-space: pre-wrap;
765 background-color: transparent;
767 border-color: @separator-right;
769 border-top-right-radius: 0;
772 background-color: @gray;
773 .transition(background-color .5s linear);
780 width: auto !important;
781 float: none !important;
784 display: -webkit-flex;
786 -webkit-justify-content: flex-end;
787 justify-content: flex-end;
800 background-color: #0f131a;
802 border: 1px solid #333;
803 border-left-width: 0;
806 border-left-width: 1px;
807 border-radius: 0 0 0 5px;
810 border-radius: 0 0 5px 0;
813 background-color: #222;
816 background-color: #333;
821 // === show/hide code snippets ===
823 .switchable > .highlight {
826 // must be final rule of page
827 .only-python, .highlight-python > .highlight {