Changeset - eaf600434cf5
[Not reviewed]
default
0 3 0
Mads Kiilerich - 8 years ago 2017-11-27 02:55:44
mads@kiilerich.com
less: change markup and styling for the logo shown in the top left corner

Based on work by Dominik Ruf, but in this changeset, the goal is just to
improve markup and styling while keeping exactly the same look and feel. In
that process, it also fixes some browser specific issues that gave odd
spacing/positioning.

All styling (especially the logo image URL) is moved to CSS/LESS, using
background-image styling instead of an img tag.

The logo image is made a :before on the site branding text and will usually
have to align with this text, so we use inline-block to align to the baseline.

We set the right amount of negative margin-bottom so the image can go below the
baseline.

We use a "big enough" negative margin-top to allow the image to bleed outside
the line height and into the 12px top padding.

We assume the background image doesn't need cropping or panning and do thus not
set background-size, background-position, or background-repeat.
3 files changed with 23 insertions and 9 deletions:
0 comments (0 inline, 0 general)
kallithea/public/css/style.css
Show inline comments
 
/*!
 
 * Don't edit the css file directly.
 
 *
 
 * Instead, edit the less file(s) and regenerate the css:
 
 *
 
 * npm --prefix kallithea/public/less install
 
 * npm --prefix kallithea/public/less run less
 
 *
 
 */
 
body {
 
  background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
 
}
 
/* Undo unfortunate Bootstrap default styling */
 
body pre {
 
  display: inherit;
 
  padding: inherit;
 
  margin: inherit;
 
  font-size: inherit;
 
  line-height: inherit;
 
  color: inherit;
 
  word-break: inherit;
 
  word-wrap: inherit;
 
  background-color: inherit;
 
  border: inherit;
 
  border-radius: inherit;
 
  overflow: inherit;
 
}
 
a {
 
  color: #577632;
 
  text-decoration: none;
 
}
 
a:hover {
 
  color: #576622;
 
  text-decoration: underline;
 
}
 
code,
 
.code pre,
 
.linenos pre,
 
div.readme pre,
 
div.formatted-fixed,
 
.CodeMirror .CodeMirror-code pre {
 
  font-size: 12px;
 
  font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 
/* class for texts where newlines should be preserved, for very light-weight ascii art markup (like pull request descriptions) */
 
.formatted-fixed {
 
  white-space: pre-wrap;
 
}
 
.changeset_hash {
 
  font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 
/* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon-ish styling without an actual glyph */
 
i[class^='icon-empty'],
 
i[class^='icon-gravatar'] {
 
  background-repeat: no-repeat;
 
  background-position: center;
 
  display: inline-block;
 
  min-width: 16px;
 
  min-height: 16px;
 
  margin: -2px 0 -4px 0;
 
}
 
.inline-comments-general.show-general-status .hidden.general-only {
 
  display: block !important;
 
}
 
.truncate {
 
  white-space: nowrap;
 
  overflow: hidden;
 
  text-overflow: ellipsis;
 
  -o-text-overflow: ellipsis;
 
  -ms-text-overflow: ellipsis;
 
}
 
.truncate.autoexpand:hover {
 
  overflow: visible;
 
}
 
/* show comment anchors when hovering over panel-heading */
 
a.permalink {
 
  visibility: hidden;
 
}
 
.panel-heading:hover .permalink {
 
  visibility: visible;
 
}
 
.navbar-inverse {
 
  border: none;
 
}
 
.navbar-inverse .navbar-nav > .active > a,
 
.navbar-inverse .navbar-nav > .active > a:hover,
 
.navbar-inverse .navbar-nav > .active > a:focus {
 
  background-color: inherit;
 
}
 
nav.navbar .navbar-brand:hover,
 
nav.navbar .navbar-brand {
 
  font-size: 20px;
 
  padding-top: 12px;
 
  color: white !important;
 
  height: 44px;
 
}
 
nav.navbar {
 
  min-height: 44px;
 
  background-color: #577632;
 
}
 
nav.navbar #logo > .navbar-brand > img {
 
  margin-top: -9px;
 
  margin-right: 5px;
 
/* logo */
 
.navbar-brand .branding:before {
 
  content: "";
 
  display: inline-block;
 
  margin-right: .2em;
 
  background-image: url("../images/kallithea-logo.svg");
 
  width: 140px;
 
  height: 30px;
 
  margin-bottom: -4px;
 
  margin-top: -12px;
 
}
 
/* every direct child of a panel, that is not .panel-heading, should auto
 
 * overflow to prevent overflowing of elements like text boxes and tables */
 
.panel > :not(.panel-heading) {
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 
/* language bars (summary page) */
 
#lang_stats .progress-bar {
 
  min-width: 15px;
 
  border-top-right-radius: 8px;
 
  border-bottom-right-radius: 8px;
 
}
 
#lang_stats td {
 
  padding: 1px 0 !important;
 
}
 
/* every direct child of a main panel, that is not .panel-heading, should auto
 
 * overflow to prevent overflowing of elements like text boxes and tables */
 
#main > .panel > :not(.panel-heading) {
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 
/* use pointer cursor for expand_commit */
 
.expand_commit .icon-align-left {
 
  cursor: pointer;
 
  color: #999;
 
}
 
/* don't break author, date and comment cells into multiple lines in changeset table */
 
table.changesets .author,
 
table.changesets .date,
 
table.changesets .comments {
 
  white-space: nowrap;
 
}
 
/* textareas should be at least 100px high and 400px wide */
 
textarea.form-control {
 
  min-height: 100px;
 
  min-width: 400px;
 
}
 
/* add some space between the code-browser icons and the file names */
 
.browser-dir > i[class^='icon-'],
 
.submodule-dir > i[class^='icon-'],
 
.browser-file > i[class^='icon-'] {
 
  padding-right: 0.3em;
 
}
 
.form-group > label {
 
  float: left;
 
}
 
.dt_repo_pending {
 
  opacity: 0.5;
 
}
 
div.panel-primary {
 
  border: none;
 
}
 
div.panel div.panel-heading {
 
  background-color: #577632;
 
  font-size: 14px;
 
  font-weight: 700;
 
}
 
div.panel.panel-default:last-child {
 
  margin-bottom: 0;
 
}
 
div.panel.panel-default > div.panel-heading {
 
  background: #eee;
 
}
 
#content div.panel div.form div.form-group {
 
  border-bottom: 1px solid #DDD;
 
  clear: both;
 
}
 
#content div.panel ul.pagination {
 
  margin: 10px 0 0 0;
 
}
 
#content div.panel ul.pagination > li > a,
 
#content div.panel ul.pagination > li > span {
 
  background: #ebebeb url("../images/pager.png") repeat-x;
 
  color: #4A4A4A;
 
  font-weight: 700;
 
  border-top: 1px solid #dedede;
 
  border-left: 1px solid #cfcfcf;
 
  border-bottom: 1px solid #c4c4c4;
 
  border-right: 1px solid #cfcfcf;
 
}
 
#content div.panel ul.pagination > li.active > span,
 
#content div.panel ul.pagination > li:hover > a,
 
#content div.panel ul.pagination > li:active > a {
 
  background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
 
  border-top: 1px solid #ccc;
 
  border-left: 1px solid #bebebe;
 
  border-bottom: 1px solid #afafaf;
 
  border-right: 1px solid #bebebe;
 
  color: #515151;
 
}
 
.metatag {
 
  display: inline-block;
 
  margin-right: 1px;
 
  border-radius: 4px 4px 4px 4px;
 
  border: solid 1px #9CF;
 
  padding: 2px 3px 2px 3px !important;
 
  background-color: #DEF;
 
}
 
.metatag[data-tag="dead"] {
 
  background-color: #E44;
 
}
 
.metatag[data-tag="stale"] {
 
  background-color: #EA4;
 
}
 
.metatag[data-tag="featured"] {
 
  background-color: #AEA;
 
}
 
.metatag[data-tag="requires"] {
 
  background-color: #9CF;
 
}
 
.metatag[data-tag="recommends"] {
 
  background-color: #BDF;
 
}
 
.metatag[data-tag="lang"] {
 
  background-color: #FAF474;
 
}
 
.metatag[data-tag="license"] {
 
  border: solid 1px #9CF;
 
  background-color: #DEF;
 
}
 
.metatag[data-tag="see"] {
 
  border: solid 1px #CBD;
 
  background-color: #EDF;
 
}
 
a.metatag[data-tag="license"]:hover {
 
  background-color: #577632;
 
  color: #FFF;
 
  text-decoration: none;
 
}
 
#perms .perm_tag {
 
  position: relative;
 
  top: -2px;
 
  margin-left: 3px;
 
  padding: 3px 3px 1px 3px;
 
  font-size: 10px;
 
  font-weight: bold;
 
  text-transform: uppercase;
 
  white-space: nowrap;
 
  border-radius: 3px;
 
}
 
#perms .perm_tag.admin {
 
  background-color: #B94A48;
 
  color: #ffffff;
 
}
 
#perms .perm_tag.write {
 
  background-color: #DB7525;
 
  color: #ffffff;
 
}
 
#perms .perm_tag.read {
 
  background-color: #468847;
 
  color: #ffffff;
 
}
 
#perms .perm_tag.none {
 
  background-color: #bfbfbf;
 
  color: #ffffff;
 
}
 
.mergetag {
 
  padding: 1px 3px 1px 3px;
 
  background-color: #fca062;
 
  font-size: 10px;
 
  color: #ffffff;
 
  text-transform: uppercase;
 
  white-space: nowrap;
 
  border-radius: 3px;
 
  margin-right: 2px;
 
}
 
.parent {
 
  color: #666666;
 
  clear: both;
 
}
 
.logtags {
 
  line-height: 2.2em;
 
}
 
.phasetag,
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag,
 
.repotag,
 
.branchtag,
 
.logtags .tagtag,
 
.logtags .booktag {
 
  margin: 0px 2px;
 
}
 
.phasetag,
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag,
 
.repotag,
 
.branchtag,
 
.tagtag,
 
.booktag,
 
.spantag {
 
  padding: 1px 3px 1px 3px;
 
  font-size: 10px;
 
  color: #577632;
 
  white-space: nowrap;
 
  border-radius: 4px;
 
  border: 1px solid #d9e8f8;
 
  line-height: 1.5em;
 
}
 
table#changesets .phasetag,
 
table#changesets .bumpedtag,
 
table#changesets .divergenttag,
 
table#changesets .extincttag,
 
table#changesets .unstabletag,
 
table#changesets .branchtag,
 
table#changesets .tagtag,
 
table#changesets .booktag {
 
  margin: 1.1em 0;
 
  margin-right: 0.5em;
 
}
 
.phasetag,
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag,
 
.repotag,
 
.branchtag,
 
.tagtag,
 
.booktag {
 
  float: left;
 
  display: inline-block;
 
}
 
.logtags .phasetag,
 
.logtags .bumpedtag,
 
.logtags .divergenttag,
 
.logtags .extincttag,
 
.logtags .unstabletag,
 
.logtags .branchtag,
 
.logtags .tagtag,
 
.logtags .booktag,
 
.mergetag,
 
.merge {
 
  float: right;
 
  line-height: 1em;
 
  margin: 1px 1px !important;
 
  display: block;
 
}
 
.repotag {
 
  border-color: #56A546;
 
  color: #46A546;
 
  font-size: 8px;
 
  text-transform: uppercase;
 
}
 
#context-bar .repotag,
 
.repo-icons .repotag {
 
  border-color: white;
 
  color: white;
 
  margin-top: 3px;
 
}
 
.repo-icons .repotag {
 
  margin-top: 0px;
 
  padding-top: 0px;
 
  padding-bottom: 0px;
 
}
 
.booktag {
 
  border-color: #46A546;
 
  color: #46A546;
 
}
 
.tagtag {
 
  border-color: #62cffc;
 
  color: #62cffc;
 
}
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag {
 
  background-color: #f00;
 
  border-color: #600;
 
  color: #fff;
 
}
 
.phasetag {
 
  border-color: #1F14CE;
 
  color: #1F14CE;
 
}
 
.logtags .branchtag a:hover,
 
.logtags .branchtag a,
 
.branchtag a,
 
.branchtag a:hover {
 
  text-decoration: none;
 
  color: inherit;
 
}
 
.logtags .tagtag {
 
  padding: 1px 3px 1px 3px;
 
  background-color: #62cffc;
 
  font-size: 10px;
 
  color: #ffffff;
 
  white-space: nowrap;
 
  border-radius: 3px;
 
}
 
.tagtag a,
 
.tagtag a:hover,
 
.logtags .tagtag a,
 
.logtags .tagtag a:hover {
 
  text-decoration: none;
 
  color: inherit;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag,
 
.logtags .booktag,
 
.logtags .booktag {
 
  padding: 1px 3px 1px 3px;
 
  background-color: #46A546;
 
  font-size: 10px;
 
  color: #ffffff;
 
  white-space: nowrap;
 
  border-radius: 3px;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag a,
 
.right .logtags .booktag,
 
.logtags .booktag a {
 
  color: #ffffff;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag a:hover,
 
.logtags .booktag,
 
.logtags .booktag a:hover,
 
.booktag a,
 
.booktag a:hover {
 
  text-decoration: none;
 
  color: inherit;
 
}
 
#footer {
 
  background-color: #577632;
 
  margin-bottom: 0;
 
}
 
#footer > span {
 
  color: #FFF;
 
  font-weight: 700;
 
}
 
#footer .navbar-link {
 
  color: #FFF;
 
}
 
#login .panel-body .icon-lock {
 
  font-size: 100px;
 
  color: #DDD;
 
  margin-left: -15px;
 
  z-index: 1;
 
}
 
.user-menu {
 
  padding: 0 !important;
 
}
 
#quick_login {
 
  width: 330px;
 
  min-height: 110px;
 
  padding: 0;
 
  position: absolute;
 
  right: 0;
 
  color: #fff;
 
  background-color: #577632;
 
  background-repeat: repeat-x;
 
  background-image: linear-gradient(to bottom, #577632, #577632);
 
  z-index: 999;
 
  border-radius: 0px 0px 4px 4px;
 
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
  overflow: hidden;
 
}
 
#quick_login .form {
 
  margin: 15px;
 
}
 
#quick_login h4 {
 
  color: #fff;
 
  margin-bottom: 10px;
 
}
 
#quick_login input#username,
 
#quick_login input#password {
 
  display: block;
 
  margin: 5px 0 10px;
 
}
 
#quick_login .password_forgotten a,
 
#quick_login .register a {
 
  padding: 0 !important;
 
  line-height: 25px !important;
 
  float: left;
 
  clear: both;
 
}
 
#quick_login .submit {
 
  float: right;
 
}
 
#quick_login .submit input#sign_in {
 
  margin-top: 5px;
 
}
 
#quick_login > .pull-left {
 
  width: 170px;
 
}
 
#quick_login > .pull-right {
 
  width: 140px;
 
}
 
#quick_login .full_name {
 
  color: #FFFFFF;
 
  font-weight: bold;
 
  padding: 3px 3px 3px 15px;
 
}
 
#quick_login .big_gravatar {
 
  padding: 15px 0px 0px 15px;
 
}
 
#quick_login .notifications {
 
  padding: 2px 0px 0px 15px;
 
  color: #FFFFFF;
 
  font-weight: bold;
 
  line-height: 10px !important;
 
}
 
#quick_login .notifications a,
 
#quick_login .unread a {
 
  color: #FFFFFF;
 
  display: block;
 
  padding: 0px !important;
 
}
 
#quick_login .notifications a:hover,
 
#quick_login .unread a:hover {
 
  background-color: inherit !important;
 
}
 
#quick_login .email,
 
#quick_login .unread {
 
  color: #FFFFFF;
 
  padding: 3px 3px 3px 15px;
 
}
 
#quick_login div.form div.form-group {
 
  padding: 5px;
 
}
 
#quick_login div.form div.form-group > label {
 
  color: #fff;
 
  padding-bottom: 3px;
 
}
 
#quick_login div.form div.form-group > div input {
 
  width: 236px;
 
  background: #FFF;
 
  border-top: 1px solid #b3b3b3;
 
  border-left: 1px solid #b3b3b3;
 
  border-right: 1px solid #eaeaea;
 
  border-bottom: 1px solid #eaeaea;
 
  color: #000;
 
  font-size: 11px;
 
  margin: 0;
 
  padding: 5px 7px 4px;
 
}
 
#quick_login div.form div.buttons {
 
  clear: both;
 
  overflow: hidden;
 
  text-align: right;
 
  margin: 0;
 
  padding: 5px 14px 0px 5px;
 
}
 
#quick_login div.form div.links {
 
  clear: both;
 
  overflow: hidden;
 
  margin: 10px 0 0;
 
  padding: 0 0 2px;
 
}
 
#quick_login ol.links {
 
  display: block;
 
  font-weight: bold;
 
  list-style: none outside none;
 
  text-align: right;
 
}
 
#quick_login ol.links li {
 
  line-height: 27px;
 
  margin: 0;
 
  padding: 0;
 
  color: #fff;
 
  display: block;
 
  float: none !important;
 
}
 
#quick_login ol.links li a {
 
  color: #fff;
 
  display: block;
 
  padding: 2px;
 
}
 
#quick_login ol.links li a:HOVER {
 
  background-color: inherit !important;
 
}
 
#register div.form div.form-group > label {
 
  width: 135px;
 
  float: left;
 
  text-align: right;
 
  margin: 2px 10px 0 0;
 
  padding: 5px 0 0 5px;
 
}
 
#register div.form div.form-group > div input {
 
  width: 300px;
 
}
 
#register div.form div.buttons {
 
  border-top: 1px solid #DDD;
 
  margin: 0;
 
  padding: 10px 0 0 145px;
 
}
 
#journal .journal_user {
 
  color: #747474;
 
  font-size: 14px;
 
  font-weight: bold;
 
  height: 30px;
 
}
 
#journal .journal_user.deleted {
 
  color: #747474;
 
  font-size: 14px;
 
  font-weight: normal;
 
  height: 30px;
 
  font-style: italic;
 
}
 
#journal .journal_icon {
 
  clear: both;
 
  float: left;
 
  padding-right: 4px;
 
  padding-top: 3px;
 
}
 
#journal .journal_action {
 
  padding-top: 4px;
 
  min-height: 2px;
 
  float: left;
 
}
 
#journal .journal_action_params {
 
  clear: left;
 
  padding-left: 22px;
 
}
 
#journal .date {
 
  clear: both;
 
  color: #777777;
 
  font-size: 11px;
 
  padding-left: 22px;
 
}
 
#journal .journal_repo_name {
 
  font-weight: bold;
 
  font-size: 1.1em;
 
}
 
#journal .compare_view {
 
  padding: 5px 0px 5px 0px;
 
  width: 95px;
 
}
 
.trending_language_tbl,
 
.trending_language_tbl td {
 
  border: 0 !important;
 
  margin: 0 !important;
 
  padding: 0 !important;
 
}
 
.trending_language_tbl,
 
.trending_language_tbl tr {
 
  border-spacing: 1px;
 
}
 
h3.files_location {
 
  font-size: 1.8em;
 
  font-weight: 700;
 
  border-bottom: none !important;
 
  margin: 10px 0 !important;
 
}
 
.file_history {
 
  padding-top: 10px;
 
  font-size: 16px;
 
}
 
.file_author {
 
  float: left;
 
}
 
.file_author .item {
 
  float: left;
 
  padding: 5px;
 
  color: #888;
 
}
 
.changeset_id {
 
  color: #666666;
 
  margin-right: -3px;
 
}
 
.changeset-logical-index {
 
  color: #666666;
 
  font-style: italic;
 
  font-size: 85%;
 
  padding-right: 0.5em;
 
  text-align: right;
 
}
 
#changeset_compare_view_content .compare_view_commits {
 
  width: auto !important;
 
}
 
#changeset_compare_view_content .compare_view_commits td {
 
  padding: 0px 0px 0px 12px !important;
 
}
 
td.author {
 
  overflow: hidden;
 
  text-overflow: ellipsis;
 
  white-space: nowrap;
 
  max-width: 210px;
 
}
 
#graph_nodes {
 
  position: absolute;
 
  width: 100px;
 
}
 
#graph_content,
 
#graph_content_pr,
 
#graph .container_header {
 
  margin-left: 100px;
 
}
 
#graph_content {
 
  position: relative;
 
}
 
table#updaterevs-table tr.mergerow,
 
table#updaterevs-table tr.out-of-range,
 
table#changesets tr.mergerow,
 
table#changesets tr.out-of-range {
 
  opacity: 0.6;
 
}
 
table#changesets tr > td {
 
  height: 31px;
 
  border-color: #cdcdcd;
 
  text-align: left;
 
}
 
table#changesets tr > td.checkbox-column {
 
  width: 14px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.status {
 
  width: 14px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.hash {
 
  width: 100px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.date {
 
  width: auto !important;
 
  color: #666;
 
  font-size: 10px;
 
  white-space: nowrap;
 
}
 
table#changesets tr > td.mid {
 
  width: 100%;
 
  padding: 0;
 
}
 
table#changesets .log-container {
 
  position: relative;
 
  margin-top: 8px;
 
}
 
table#changesets tr #singlerange,
 
table#changesets tr .changeset_range {
 
  float: left;
 
  margin: 2px 0;
 
}
 
table#changesets tr > td.author img {
 
  vertical-align: middle;
 
}
 
table#changesets tr > td.author .user {
 
  color: #444444;
 
}
 
table#changesets tr > td.mid .message,
 
#graph_content_pr .compare_view_commits .message {
 
  white-space: nowrap;
 
  padding: 0;
 
  overflow: hidden;
 
}
 
#graph_content_pr .compare_view_commits .message {
 
  padding: 0 !important;
 
}
 
table#changesets tr > td.mid .message.expanded,
 
#graph_content_pr .compare_view_commits .message.expanded {
 
  height: auto;
 
  overflow: initial;
 
}
 
table#changesets tr .extra-container {
 
  display: block;
 
  position: absolute;
 
  top: -15px;
 
  right: 0;
 
  padding-left: 5px;
 
  background: #FFFFFF;
 
  height: 41px;
 
}
 
#pull_request_overview .comments-container,
 
#changeset_compare_view_content .comments-container,
 
table#changesets .comments-container,
 
#shortlog_data .comments-container,
 
table#changesets .logtags {
 
  display: block;
 
  float: left;
 
  overflow: hidden;
 
  padding: 0;
 
  margin: 0;
 
  white-space: nowrap;
 
}
 
table#changesets .comments-container {
 
  margin: 0.8em 0;
 
  margin-right: 0.5em;
 
}
 
table#changesets .tagcontainer {
 
  width: 80px;
 
  position: relative;
 
  float: right;
 
  height: 100%;
 
  top: 7px;
 
  margin-left: 0.5em;
 
}
 
table#changesets .logtags {
 
  min-width: 80px;
 
  height: 1.1em;
 
  position: absolute;
 
  left: 0px;
 
  width: auto;
 
  top: 0px;
 
}
 
table#changesets .logtags.tags {
 
  top: 14px;
 
}
 
table#changesets .logtags:hover {
 
  overflow: visible;
 
  position: absolute;
 
  width: auto;
 
  right: 0;
 
  left: initial;
 
}
 
table#changesets .logtags .booktag,
 
table#changesets .logtags .tagtag {
 
  float: left;
 
  line-height: 1em;
 
  margin-bottom: 1px;
 
  margin-right: 1px;
 
  padding: 1px 3px;
 
  font-size: 10px;
 
}
 
table#changesets tr > td.mid .message a:hover {
 
  text-decoration: none;
 
}
 
#updaterevs-graph {
 
  position: absolute;
 
  width: 40px;
 
}
 
#updaterevs-table {
 
  margin-left: 40px !important;
 
}
 
.issue-tracker-link {
 
  color: #3F6F9F;
 
  font-weight: bold !important;
 
}
 
/* changeset statuses (must be the same name as the status) */
 
.changeset-status-not_reviewed {
 
  color: #bababa;
 
}
 
.changeset-status-approved {
 
  color: #81ba51;
 
}
 
.changeset-status-rejected {
 
  color: #d06060;
 
}
 
.changeset-status-under_review {
 
  color: #ffc71e;
 
}
 
.pull-right .changes {
 
  clear: both;
 
}
 
.pull-right .changes .changed_total {
 
  display: block;
 
  float: right;
 
  text-align: center;
 
  min-width: 45px;
 
  cursor: pointer;
 
  color: #444444;
 
  background: #FEA;
 
  border-radius: 0px 0px 0px 6px;
 
  padding: 1px;
 
}
 
.pull-right .changes .added,
 
.pull-right .changes .changed,
 
.pull-right .changes .deleted {
 
  color: #444444;
 
}
 
.pull-right .changes .added {
 
  background: #CFC;
 
}
 
.pull-right .changes .changed {
 
  background: #FEA;
kallithea/public/less/style.less
Show inline comments
 
/*!
 
 * Don't edit the css file directly.
 
 *
 
 * Instead, edit the less file(s) and regenerate the css:
 
 *
 
 * npm --prefix kallithea/public/less install
 
 * npm --prefix kallithea/public/less run less
 
 *
 
 */
 

	
 
body {
 
  background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
 
}
 
/* Undo unfortunate Bootstrap default styling */
 
body pre {
 
  display: inherit;
 
  padding: inherit;
 
  margin: inherit;
 
  font-size: inherit;
 
  line-height: inherit;
 
  color: inherit;
 
  word-break: inherit;
 
  word-wrap: inherit;
 
  background-color: inherit;
 
  border: inherit;
 
  border-radius: inherit;
 
  overflow: inherit;
 
}
 

	
 
a {
 
  color: #577632;
 
  text-decoration: none;
 
}
 
a:hover {
 
  color: #576622;
 
  text-decoration: underline;
 
}
 
code,
 
.code pre,
 
.linenos pre,
 
div.readme pre,
 
div.formatted-fixed,
 
.CodeMirror .CodeMirror-code pre {
 
  font-size: 12px;
 
  font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
/* class for texts where newlines should be preserved, for very light-weight ascii art markup (like pull request descriptions) */
 
.formatted-fixed {
 
  white-space: pre-wrap;
 
}
 

	
 
.changeset_hash {
 
  font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
/* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon-ish styling without an actual glyph */
 
i[class^='icon-empty'],
 
i[class^='icon-gravatar'] {
 
  background-repeat: no-repeat;
 
  background-position: center;
 
  display: inline-block;
 
  min-width: 16px;
 
  min-height: 16px;
 
  margin: -2px 0 -4px 0;
 
}
 

	
 
.inline-comments-general.show-general-status .hidden.general-only {
 
  display: block !important;
 
}
 
.truncate {
 
  white-space: nowrap;
 
  overflow: hidden;
 
  text-overflow: ellipsis;
 
  -o-text-overflow: ellipsis;
 
  -ms-text-overflow: ellipsis;
 
}
 
.truncate.autoexpand:hover {
 
  overflow: visible;
 
}
 

	
 
/* show comment anchors when hovering over panel-heading */
 
a.permalink {
 
  visibility: hidden;
 
}
 
.panel-heading:hover .permalink {
 
  visibility: visible;
 
}
 

	
 
.navbar-inverse {
 
  border: none;
 
}
 
.navbar-inverse .navbar-nav > .active > a,
 
.navbar-inverse .navbar-nav > .active > a:hover,
 
.navbar-inverse .navbar-nav > .active > a:focus {
 
  background-color: inherit;
 
}
 
nav.navbar .navbar-brand:hover,
 
nav.navbar .navbar-brand {
 
  font-size: 20px;
 
  padding-top: 12px;
 
  color: white !important;
 
  height: 44px;
 
}
 
nav.navbar {
 
  min-height: 44px;
 
  background-color: #577632;
 
}
 
nav.navbar #logo > .navbar-brand > img {
 
  margin-top: -9px;
 
  margin-right: 5px;
 

	
 
/* logo */
 
.navbar-brand .branding {
 
  &:before {
 
    content: "";
 
    display: inline-block;
 
    margin-right: .2em;
 
    background-image: url("../images/kallithea-logo.svg");
 
    width: 140px;
 
    height: 30px;
 
    margin-bottom: -4px;
 
    margin-top: -12px;
 
  }
 
}
 

	
 
/* every direct child of a panel, that is not .panel-heading, should auto
 
 * overflow to prevent overflowing of elements like text boxes and tables */
 
.panel > :not(.panel-heading){
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 

	
 
/* language bars (summary page) */
 
#lang_stats {
 
  .progress-bar {
 
    min-width: 15px;
 
    border-top-right-radius: 8px;
 
    border-bottom-right-radius: 8px;
 
  }
 
  td {
 
    padding: 1px 0 !important;
 
  }
 
}
 

	
 
/* every direct child of a main panel, that is not .panel-heading, should auto
 
 * overflow to prevent overflowing of elements like text boxes and tables */
 
#main > .panel > :not(.panel-heading) {
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 

	
 
/* use pointer cursor for expand_commit */
 
.expand_commit .icon-align-left {
 
  cursor: pointer;
 
  color: #999;
 
}
 

	
 
/* don't break author, date and comment cells into multiple lines in changeset table */
 
table.changesets {
 
  .author,
 
  .date,
 
  .comments {
 
    white-space: nowrap;
 
  }
 
}
 

	
 
/* textareas should be at least 100px high and 400px wide */
 
textarea.form-control {
 
  min-height: 100px;
 
  min-width: 400px;
 
}
 

	
 
/* add some space between the code-browser icons and the file names */
 
.browser-dir > i[class^='icon-'],
 
.submodule-dir > i[class^='icon-'],
 
.browser-file > i[class^='icon-'] {
 
  padding-right: 0.3em;
 
}
 

	
 
.form-group > label {
 
  float: left;
 
}
 
.dt_repo_pending {
 
  opacity: 0.5;
 
}
 

	
 
div.panel-primary {
 
  border: none;
 
}
 
div.panel div.panel-heading {
 
  background-color: #577632;
 
  font-size: 14px;
 
  font-weight: 700;
 
}
 
div.panel.panel-default:last-child {
 
  margin-bottom: 0;
 
}
 
div.panel.panel-default > div.panel-heading {
 
  background: #eee;
 
}
 

	
 
#content div.panel div.form div.form-group {
 
  border-bottom: 1px solid #DDD;
 
  clear: both;
 
}
 

	
 
#content div.panel ul.pagination {
 
  margin: 10px 0 0 0;
 
}
 
#content div.panel ul.pagination > li > a,
 
#content div.panel ul.pagination > li > span {
 
  background: #ebebeb url("../images/pager.png") repeat-x;
 
  color: #4A4A4A;
 
  font-weight: 700;
 
  border-top: 1px solid #dedede;
 
  border-left: 1px solid #cfcfcf;
 
  border-bottom: 1px solid #c4c4c4;
 
  border-right: 1px solid #cfcfcf;
 
}
 
#content div.panel ul.pagination > li.active > span,
 
#content div.panel ul.pagination > li:hover > a,
 
#content div.panel ul.pagination > li:active > a {
 
  background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
 
  border-top: 1px solid #ccc;
 
  border-left: 1px solid #bebebe;
 
  border-bottom: 1px solid #afafaf;
 
  border-right: 1px solid #bebebe;
 
  color: #515151;
 
}
 

	
 
@import "kallithea-tags.less";
 

	
 
#footer {
 
  background-color: #577632;
 
  margin-bottom: 0;
 
}
 
#footer > span {
 
  color: #FFF;
 
  font-weight: 700;
 
}
 
#footer .navbar-link {
 
  color: #FFF;
 
}
 

	
 
#login .panel-body .icon-lock {
 
  font-size: 100px;
 
  color: #DDD;
 
  margin-left: -15px;
 
  z-index: 1;
 
}
 
.user-menu {
 
  padding: 0 !important;
 
}
 
#quick_login {
 
  width: 330px;
 
  min-height: 110px;
 
  padding: 0;
 
  position: absolute;
 
  right: 0;
 
  color: #fff;
 
  background-color: #577632;
 
  background-repeat: repeat-x;
 
  background-image: linear-gradient(to bottom, #577632, #577632);
 
  z-index: 999;
 
  border-radius: 0px 0px 4px 4px;
 
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
  overflow: hidden;
 
}
 
#quick_login .form {
 
  margin: 15px;
 
}
 
#quick_login h4 {
 
  color: #fff;
 
  margin-bottom: 10px;
 
}
 
#quick_login input#username,
 
#quick_login input#password {
 
  display: block;
 
  margin: 5px 0 10px;
 
}
 
#quick_login .password_forgotten a,
 
#quick_login .register a {
 
  padding: 0 !important;
 
  line-height: 25px !important;
 
  float: left;
 
  clear: both;
 
}
 
#quick_login .submit {
 
  float: right;
 
}
 
#quick_login .submit input#sign_in {
 
  margin-top: 5px;
 
}
 
#quick_login > .pull-left {
 
  width: 170px;
 
}
 
#quick_login > .pull-right {
 
  width: 140px;
 
}
 
#quick_login .full_name {
 
  color: #FFFFFF;
 
  font-weight: bold;
 
  padding: 3px 3px 3px 15px;
 
}
 
#quick_login .big_gravatar {
 
  padding: 15px 0px 0px 15px;
 
}
 
#quick_login .notifications {
 
  padding: 2px 0px 0px 15px;
 
  color: #FFFFFF;
 
  font-weight: bold;
 
  line-height: 10px !important;
 
}
 
#quick_login .notifications a,
 
#quick_login .unread a {
 
  color: #FFFFFF;
 
  display: block;
 
  padding: 0px !important;
 
}
 
#quick_login .notifications a:hover,
 
#quick_login .unread a:hover {
 
  background-color: inherit !important;
 
}
 
#quick_login .email,
 
#quick_login .unread {
 
  color: #FFFFFF;
 
  padding: 3px 3px 3px 15px;
 
}
 
#quick_login div.form div.form-group {
 
  padding: 5px;
 
}
 
#quick_login div.form div.form-group > label {
 
  color: #fff;
 
  padding-bottom: 3px;
 
}
 
#quick_login div.form div.form-group > div input {
 
  width: 236px;
 
  background: #FFF;
 
  border-top: 1px solid #b3b3b3;
 
  border-left: 1px solid #b3b3b3;
 
  border-right: 1px solid #eaeaea;
 
  border-bottom: 1px solid #eaeaea;
 
  color: #000;
 
  font-size: 11px;
 
  margin: 0;
 
  padding: 5px 7px 4px;
 
}
 
#quick_login div.form div.buttons {
 
  clear: both;
 
  overflow: hidden;
 
  text-align: right;
 
  margin: 0;
 
  padding: 5px 14px 0px 5px;
 
}
 
#quick_login div.form div.links {
 
  clear: both;
 
  overflow: hidden;
 
  margin: 10px 0 0;
 
  padding: 0 0 2px;
 
}
 
#quick_login ol.links {
 
  display: block;
 
  font-weight: bold;
 
  list-style: none outside none;
 
  text-align: right;
 
}
 
#quick_login ol.links li {
 
  line-height: 27px;
 
  margin: 0;
 
  padding: 0;
 
  color: #fff;
 
  display: block;
 
  float: none !important;
 
}
 
#quick_login ol.links li a {
 
  color: #fff;
 
  display: block;
 
  padding: 2px;
 
}
 
#quick_login ol.links li a:HOVER {
 
  background-color: inherit !important;
 
}
 
#register div.form div.form-group > label {
 
  width: 135px;
 
  float: left;
 
  text-align: right;
 
  margin: 2px 10px 0 0;
 
  padding: 5px 0 0 5px;
 
}
 
#register div.form div.form-group > div input {
 
  width: 300px;
 
}
 
#register div.form div.buttons {
 
  border-top: 1px solid #DDD;
 
  margin: 0;
 
  padding: 10px 0 0 145px;
 
}
 
#journal .journal_user {
 
  color: #747474;
 
  font-size: 14px;
 
  font-weight: bold;
 
  height: 30px;
 
}
 
#journal .journal_user.deleted {
 
  color: #747474;
 
  font-size: 14px;
 
  font-weight: normal;
 
  height: 30px;
 
  font-style: italic;
 
}
 
#journal .journal_icon {
 
  clear: both;
 
  float: left;
 
  padding-right: 4px;
 
  padding-top: 3px;
 
}
 
#journal .journal_action {
 
  padding-top: 4px;
 
  min-height: 2px;
 
  float: left;
 
}
 
#journal .journal_action_params {
 
  clear: left;
 
  padding-left: 22px;
 
}
 
#journal .date {
 
  clear: both;
 
  color: #777777;
 
  font-size: 11px;
 
  padding-left: 22px;
 
}
 
#journal .journal_repo_name {
 
  font-weight: bold;
 
  font-size: 1.1em;
 
}
 
#journal .compare_view {
 
  padding: 5px 0px 5px 0px;
 
  width: 95px;
 
}
 
.trending_language_tbl,
 
.trending_language_tbl td {
 
  border: 0 !important;
 
  margin: 0 !important;
 
  padding: 0 !important;
 
}
 
.trending_language_tbl,
 
.trending_language_tbl tr {
 
  border-spacing: 1px;
 
}
 
h3.files_location {
 
  font-size: 1.8em;
 
  font-weight: 700;
 
  border-bottom: none !important;
 
  margin: 10px 0 !important;
 
}
 
.file_history {
 
  padding-top: 10px;
 
  font-size: 16px;
 
}
 
.file_author {
 
  float: left;
 
}
 
.file_author .item {
 
  float: left;
 
  padding: 5px;
 
  color: #888;
 
}
 
.changeset_id {
 
  color: #666666;
 
  margin-right: -3px;
 
}
 
.changeset-logical-index {
 
  color: #666666;
 
  font-style: italic;
 
  font-size: 85%;
 
  padding-right: 0.5em;
 
  text-align: right;
 
}
 
#changeset_compare_view_content .compare_view_commits {
 
  width: auto !important;
 
}
 
#changeset_compare_view_content .compare_view_commits td {
 
  padding: 0px 0px 0px 12px !important;
 
}
 
td.author {
 
  overflow: hidden;
 
  text-overflow: ellipsis;
 
  white-space: nowrap;
 
  max-width: 210px;
 
}
 
#graph_nodes {
 
  position: absolute;
 
  width: 100px;
 
}
 
#graph_content,
 
#graph_content_pr,
 
#graph .container_header {
 
  margin-left: 100px;
 
}
 
#graph_content {
 
  position: relative;
 
}
 
table#updaterevs-table tr.mergerow,
 
table#updaterevs-table tr.out-of-range,
 
table#changesets tr.mergerow,
 
table#changesets tr.out-of-range {
 
  opacity: 0.6;
 
}
 
table#changesets tr > td {
 
  height: 31px;
 
  border-color: #cdcdcd;
 
  text-align: left;
 
}
 
table#changesets tr > td.checkbox-column {
 
  width: 14px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.status {
 
  width: 14px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.hash {
 
  width: 100px;
 
  font-size: 0.85em;
 
}
 
table#changesets tr > td.date {
 
  width: auto !important;
 
  color: #666;
 
  font-size: 10px;
 
  white-space: nowrap;
 
}
 
table#changesets tr > td.mid {
 
  width: 100%;
 
  padding: 0;
 
}
 
table#changesets .log-container {
 
  position: relative;
 
  margin-top: 8px;
 
}
 
table#changesets tr #singlerange,
 
table#changesets tr .changeset_range {
 
  float: left;
 
  margin: 2px 0;
 
}
 
table#changesets tr > td.author img {
 
  vertical-align: middle;
 
}
 
table#changesets tr > td.author .user {
 
  color: #444444;
 
}
 
table#changesets tr > td.mid .message,
 
#graph_content_pr .compare_view_commits .message {
 
  white-space: nowrap;
 
  padding: 0;
 
  overflow: hidden;
 
}
 
#graph_content_pr .compare_view_commits .message {
 
  padding: 0 !important;
 
}
 
table#changesets tr > td.mid .message.expanded,
 
#graph_content_pr .compare_view_commits .message.expanded {
 
  height: auto;
 
  overflow: initial;
 
}
 
table#changesets tr .extra-container {
 
  display: block;
 
  position: absolute;
 
  top: -15px;
 
  right: 0;
 
  padding-left: 5px;
 
  background: #FFFFFF;
 
  height: 41px;
 
}
 
#pull_request_overview .comments-container,
 
#changeset_compare_view_content .comments-container,
 
table#changesets .comments-container,
 
#shortlog_data .comments-container,
 
table#changesets .logtags {
 
  display: block;
 
  float: left;
 
  overflow: hidden;
 
  padding: 0;
 
  margin: 0;
 
  white-space: nowrap;
 
}
 
table#changesets .comments-container {
 
  margin: 0.8em 0;
 
  margin-right: 0.5em;
 
}
 
table#changesets .tagcontainer {
 
  width: 80px;
 
  position: relative;
 
  float: right;
 
  height: 100%;
 
  top: 7px;
 
  margin-left: 0.5em;
 
}
 
table#changesets .logtags {
 
  min-width: 80px;
 
  height: 1.1em;
 
  position: absolute;
 
  left: 0px;
 
  width: auto;
 
  top: 0px;
 
}
 
table#changesets .logtags.tags {
 
  top: 14px;
 
}
 
table#changesets .logtags:hover {
 
  overflow: visible;
 
  position: absolute;
 
  width: auto;
 
  right: 0;
 
  left: initial;
 
}
 
table#changesets .logtags .booktag,
 
table#changesets .logtags .tagtag {
 
  float: left;
 
  line-height: 1em;
 
  margin-bottom: 1px;
 
  margin-right: 1px;
 
  padding: 1px 3px;
 
  font-size: 10px;
 
}
 
table#changesets tr > td.mid .message a:hover {
 
  text-decoration: none;
 
}
 
#updaterevs-graph {
 
  position: absolute;
 
  width: 40px;
 
}
 
#updaterevs-table {
 
  margin-left: 40px !important;
 
}
 
.issue-tracker-link {
 
  color: #3F6F9F;
 
  font-weight: bold !important;
 
}
 
/* changeset statuses (must be the same name as the status) */
 
.changeset-status-not_reviewed {
 
  color: #bababa;
 
}
 
.changeset-status-approved {
 
  color: #81ba51;
 
}
 
.changeset-status-rejected {
 
  color: #d06060;
 
}
 
.changeset-status-under_review {
 
  color: #ffc71e;
 
}
 
.pull-right .changes {
 
  clear: both;
 
}
 
.pull-right .changes .changed_total {
 
  display: block;
 
  float: right;
 
  text-align: center;
 
  min-width: 45px;
 
  cursor: pointer;
 
  color: #444444;
 
  background: #FEA;
 
  border-radius: 0px 0px 0px 6px;
 
  padding: 1px;
 
}
 
.pull-right .changes .added,
 
.pull-right .changes .changed,
 
.pull-right .changes .deleted {
 
  color: #444444;
 
}
 
.pull-right .changes .added {
 
  background: #CFC;
 
}
 
.pull-right .changes .changed {
 
  background: #FEA;
 
}
 
.pull-right .changes .deleted {
 
  background: #FAA;
 
}
 
.panel .search div.search_path {
 
  background: none repeat scroll 0 0 #EEE;
 
  border: 1px solid #CCC;
 
  color: blue;
 
  margin-bottom: 10px;
 
  padding: 10px 0;
 
}
 
.panel .search div.search_path div.link {
 
  font-weight: 700;
 
  margin-left: 25px;
 
}
 
.panel .search div.search_path div.link a {
 
  color: #577632;
 
  cursor: pointer;
 
  text-decoration: none;
 
}
 
@import "yui-ac.less";
 

	
 
#repo_size {
 
  display: block;
 
  margin-top: 4px;
 
  color: #666;
 
  float: right;
 
}
 
.currently_following {
 
  padding-left: 10px;
 
  padding-bottom: 5px;
 
}
 
#switch_repos {
 
  position: absolute;
 
  height: 25px;
 
  z-index: 1;
 
}
 
#switch_repos select {
 
  min-width: 150px;
 
  max-height: 250px;
 
  z-index: 1;
 
}
 
.breadcrumbs {
 
  border: medium none;
 
  color: #FFF;
 
  font-weight: 700;
 
  font-size: 14px;
 
}
 
table#permissions_manage span.private_repo_msg {
 
  font-size: 0.8em;
 
  opacity: 0.6;
 
}
 
table#permissions_manage td.private_repo_msg {
 
  font-size: 0.8em;
 
}
 
table#permissions_manage tr#add_perm_input td {
 
  vertical-align: middle;
 
}
 
div.gravatar {
 
  float: left;
 
  background-color: #FFF;
 
  margin-right: 0.7em;
 
  padding: 1px 1px 1px 1px;
 
  line-height: 0;
 
  border-radius: 3px;
 
}
 
div.gravatar img {
 
  border-radius: 2px;
 
}
 
#content div.panel div.panel-heading div.search {
 
  border-left: 1px solid #576622;
 
}
 
#content div.panel div.panel-heading div.search > div input {
 
  border: 1px solid #576622;
 
}
 
.panel-body.settings > ul.nav-stacked {
 
  float: left;
 
  width: 150px;
 
  padding-right: 35px;
 
  color: #393939;
 
  font-weight: 700;
 
}
 
.panel-body.settings .nav-pills > li {
 
  padding: 0 !important;
 
}
 
.panel-body.settings .nav-pills > li > a {
 
  border-radius: 4px;
 
  padding: 10px;
 
  display: block;
 
  position: relative;
 
  color: inherit;
 
}
 
.panel-body.settings > ul.nav-stacked li.active > a,
 
.panel-body.settings > ul.nav-stacked li.active:hover > a {
 
  color: #fff;
 
  background-color: #577632;
 
}
 
.panel-body.settings > ul.nav-stacked li:hover > a {
 
  text-decoration: none;
 
  background-color: #eee;
 
}
 
.panel-body.settings > div,
 
.panel-body.settings > form {
 
  float: left;
 
  width: 750px;
 
  margin: 0;
 
}
 
.panel-body.no-padding {
 
  padding: 0;
 
}
 
.panel-body ~ .panel-body {
 
  padding-top: 0;
 
}
 
.panel-body.no-padding ~ .panel-body {
 
  padding-top: 15px;
 
}
 
.panel-body > :last-child {
 
  margin-bottom: 0;
 
}
 
.panel-body.settings .text-muted {
 
  margin: 5px 0;
 
}
 
/* No white Bootstrap buttons */
 
body .btn.btn-default {
 
  background-color: #DADADA;
 
  background-repeat: repeat-x;
 
  background-image: linear-gradient(to bottom, #F4F4F4, #DADADA);
 
  border-top: 1px solid #DDD;
 
  border-left: 1px solid #c6c6c6;
 
  border-right: 1px solid #DDD;
 
  border-bottom: 1px solid #c6c6c6;
 
}
 
body .btn.btn-default:hover {
 
  background-image: none;
 
}
 
/* use our link color for btn-link */
 
.btn-link {
 
  color: #577632;
 
}
 
ins,
 
div.options a:hover {
 
  text-decoration: none;
 
}
 
img,
 
nav.navbar #quick li a:hover span.normal,
 
#clone_url,
 
#clone_url_id {
 
  border: none;
 
}
 
img.icon,
 
.right .merge img {
 
  vertical-align: bottom;
 
}
 
#content div.panel div.panel-heading ul.links,
 
#content div.panel div.message div.dismiss {
 
  float: right;
 
  margin: 0;
 
  padding: 0;
 
}
 
nav.navbar #home,
 
#content div.panel ul.left,
 
#content div.panel ol.left,
 
div#commit_history,
 
div#legend_data,
 
div#legend_container,
 
div#legend_choices {
 
  float: left;
 
}
 

	
 
/* set size for statistics charts */
 
#commit_history {
 
  width: 450px;
 
  height: 300px;
 
}
 
#overview {
 
  clear: both;
 
  width: 450px;
 
  height: 100px;
 
}
 

	
 
#content #left #menu ul.closed,
 
#content #left #menu li ul.collapsed,
 
.yui-tt-shadow {
 
  display: none;
 
}
 
#content #left #menu ul.opened,
 
#content #left #menu li ul.expanded {
 
  display: block !important;
 
}
 

	
 
@import "kallithea-select2.less";
 

	
 
#content div.panel ol.lower-roman,
 
#content div.panel ol.upper-roman,
 
#content div.panel ol.lower-alpha,
 
#content div.panel ol.upper-alpha,
 
#content div.panel ol.decimal {
 
  margin: 10px 24px 10px 44px;
 
}
 
/* formencode htmlfill adds 'error' to failing input fields */
 
#content div.panel div.form div.form-group > div input.error,
 
#login div.form div.form-group > div input.error,
 
#register div.form div.form-group > div input.error {
 
  background: #FBE3E4;
 
  border-top: 1px solid #e1b2b3;
 
  border-left: 1px solid #e1b2b3;
 
  border-right: 1px solid #FBC2C4;
 
  border-bottom: 1px solid #FBC2C4;
 
}
 
/* formencode htmlfill injects 'error-message' */
 
#content div.panel div.form div.form-group span.error-message,
 
#login div.form div.form-group span.error-message,
 
#register div.form div.form-group span.error-message {
 
  display: inline-block;
 
  color: red;
 
  margin: 4px 0 0;
kallithea/templates/base/root.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
    <head>
 
        <title><%block name="title"/><%block name="branding_title"/></title>
 
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 
        <meta name="robots" content="index, nofollow"/>
 
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 
        <link rel="icon" href="${h.url('/images/favicon.ico')}" type="image/x-icon" />
 

	
 
        ## CSS ###
 
        <link rel="stylesheet" type="text/css" href="${h.url('/css/jquery.dataTables.css', ver=c.kallithea_version)}"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/js/select2/select2.css', ver=c.kallithea_version)}"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/css/bootstrap.css', ver=c.kallithea_version)}"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/js/select2/select2-bootstrap.css', ver=c.kallithea_version)}"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.kallithea_version)}"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.kallithea_version)}" media="screen"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/css/contextbar.css', ver=c.kallithea_version)}" media="screen"/>
 
        <link rel="stylesheet" type="text/css" href="${h.url('/fontello/css/kallithea.css', ver=c.kallithea_version)}">
 
        <%block name="css_extra"/>
 

	
 
        ## JAVASCRIPT ##
 
        <script type="text/javascript">
 
            ## JS translations map
 
            var TRANSLATION_MAP = {
 
                'Cancel': ${h.jshtml(_("Cancel"))},
 
                'Retry': ${h.jshtml(_("Retry"))},
 
                'Submitting ...': ${h.jshtml(_("Submitting ..."))},
 
                'Unable to post': ${h.jshtml(_("Unable to post"))},
 
                'Add Another Comment': ${h.jshtml(_("Add Another Comment"))},
 
                'Stop following this repository': ${h.jshtml(_('Stop following this repository'))},
 
                'Start following this repository': ${h.jshtml(_('Start following this repository'))},
 
                'Group': ${h.jshtml(_('Group'))},
 
                'Loading ...': ${h.jshtml(_('Loading ...'))},
 
                'loading ...': ${h.jshtml(_('loading ...'))},
 
                'Search truncated': ${h.jshtml(_('Search truncated'))},
 
                'No matching files': ${h.jshtml(_('No matching files'))},
 
                'Open New Pull Request from {0}': ${h.jshtml(_('Open New Pull Request from {0}'))},
 
                'Open New Pull Request for {0} &rarr; {1}': ${h.js(_('Open New Pull Request for {0} &rarr; {1}'))},
 
                'Show Selected Changesets {0} &rarr; {1}': ${h.js(_('Show Selected Changesets {0} &rarr; {1}'))},
 
                'Selection Link': ${h.jshtml(_('Selection Link'))},
 
                'Collapse Diff': ${h.jshtml(_('Collapse Diff'))},
 
                'Expand Diff': ${h.jshtml(_('Expand Diff'))},
 
                'No revisions': ${h.jshtml(_('No revisions'))},
 
                'Type name of user or member to grant permission': ${h.jshtml(_('Type name of user or member to grant permission'))},
 
                'Failed to revoke permission': ${h.jshtml(_('Failed to revoke permission'))},
 
                'Confirm to revoke permission for {0}: {1} ?': ${h.jshtml(_('Confirm to revoke permission for {0}: {1} ?'))},
 
                'Enabled': ${h.jshtml(_('Enabled'))},
 
                'Disabled': ${h.jshtml(_('Disabled'))},
 
                'Select changeset': ${h.jshtml(_('Select changeset'))},
 
                'Specify changeset': ${h.jshtml(_('Specify changeset'))},
 
                'MSG_SORTASC': ${h.jshtml(_('Click to sort ascending'))},
 
                'MSG_SORTDESC': ${h.jshtml(_('Click to sort descending'))},
 
                'MSG_EMPTY': ${h.jshtml(_('No records found.'))},
 
                'MSG_ERROR': ${h.jshtml(_('Data error.'))},
 
                'MSG_LOADING': ${h.jshtml(_('Loading...'))}
 
            };
 
            var _TM = TRANSLATION_MAP;
 

	
 
            var TOGGLE_FOLLOW_URL  = ${h.js(h.url('toggle_following'))};
 

	
 
            var REPO_NAME = "";
 
            %if hasattr(c, 'repo_name'):
 
                var REPO_NAME = ${h.js(c.repo_name)};
 
            %endif
 

	
 
            var _authentication_token = ${h.js(h.authentication_token())};
 
        </script>
 
        <script type="text/javascript" src="${h.url('/js/yui.2.9.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/jquery.min.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/jquery.dataTables.min.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/bootstrap.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/select2/select2.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/native.history.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript" src="${h.url('/js/base.js', ver=c.kallithea_version)}"></script>
 
        ## EXTRA FOR JS
 
        <%block name="js_extra"/>
 
        <script type="text/javascript">
 
            (function(window,undefined){
 
                var History = window.History; // Note: We are using a capital H instead of a lower h
 
                if ( !History.enabled ) {
 
                     // History.js is disabled for this browser.
 
                     // This is because we can optionally choose to support HTML4 browsers or not.
 
                    return false;
 
                }
 
            })(window);
 

	
 
            $(document).ready(function(){
 
              tooltip_activate();
 
              show_more_event();
 
              // routes registration
 
              pyroutes.register('home', ${h.js(h.url('home'))}, []);
 
              pyroutes.register('new_gist', ${h.js(h.url('new_gist'))}, []);
 
              pyroutes.register('gists', ${h.js(h.url('gists'))}, []);
 
              pyroutes.register('new_repo', ${h.js(h.url('new_repo'))}, []);
 

	
 
              pyroutes.register('summary_home', ${h.js(h.url('summary_home', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('changelog_home', ${h.js(h.url('changelog_home', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('files_home', ${h.js(h.url('files_home', repo_name='%(repo_name)s',revision='%(revision)s',f_path='%(f_path)s'))}, ['repo_name', 'revision', 'f_path']);
 
              pyroutes.register('edit_repo', ${h.js(h.url('edit_repo', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('edit_repo_perms', ${h.js(h.url('edit_repo_perms', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('pullrequest_home', ${h.js(h.url('pullrequest_home', repo_name='%(repo_name)s'))}, ['repo_name']);
 

	
 
              pyroutes.register('toggle_following', ${h.js(h.url('toggle_following'))});
 
              pyroutes.register('changeset_info', ${h.js(h.url('changeset_info', repo_name='%(repo_name)s', revision='%(revision)s'))}, ['repo_name', 'revision']);
 
              pyroutes.register('changeset_home', ${h.js(h.url('changeset_home', repo_name='%(repo_name)s', revision='%(revision)s'))}, ['repo_name', 'revision']);
 
              pyroutes.register('repo_size', ${h.js(h.url('repo_size', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('repo_refs_data', ${h.js(h.url('repo_refs_data', repo_name='%(repo_name)s'))}, ['repo_name']);
 
              pyroutes.register('users_and_groups_data', ${h.js(h.url('users_and_groups_data'))}, []);
 
             });
 
        </script>
 

	
 
        <%block name="head_extra"/>
 
    </head>
 
    <body>
 
      <nav class="navbar navbar-inverse mainmenu">
 
          <div class="navbar-header" id="logo">
 
            <a class="navbar-brand" href="${h.url('home')}">
 
                <img class="pull-left" src="${h.url('/images/kallithea-logo.svg')}" alt="Kallithea"/>
 
                  %if c.site_name:
 
                    <span class="branding">${c.site_name}</span>
 
                  %endif
 
            </a>
 
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
 
              <span class="sr-only">Toggle navigation</span>
 
              <span class="icon-bar"></span>
 
              <span class="icon-bar"></span>
 
              <span class="icon-bar"></span>
 
            </button>
 
          </div>
 
          <div id="navbar" class="navbar-collapse collapse">
 
            <%block name="header_menu"/>
 
          </div>
 
      </nav>
 

	
 
      ${next.body()}
 

	
 
      %if c.ga_code:
 
      ${h.literal(c.ga_code)}
 
      %endif
 
    </body>
 
</html>
0 comments (0 inline, 0 general)