├── LICENSE ├── README.md └── stylesheets └── application.css /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Peter Theill 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A Basecamp theme for Redmine. 2 | 3 | ### INSTALL 4 | 5 | To install, just clone into your Redmine theme dir like so: 6 | 7 | $ cd /path/to/redmine/public/themes 8 | $ git clone http://github.com/theill/redmine-basecamp-theme.git basecamp 9 | 10 | 11 | ### REDMINE 2.1 12 | 13 | Styles are updated based on defect http://www.redmine.org/issues/11880 14 | -------------------------------------------------------------------------------- /stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Basecamp stylesheet, based on "alternate" 3 | * 4 | * author: Peter Theill, Commanigy - http://commanigy.com 5 | * 6 | * @2009-11-16 - fix #3069 7 | * @2009-11-12 - styling "password" fields as well with a simple border (similar to other fields) 8 | * 9 | */ 10 | 11 | @import url(../../../stylesheets/application.css); 12 | 13 | body, #wrapper { background-color:#eee; font-family:"Lucida Grande", verdana, arial, helvetica, sans-serif; } 14 | 15 | a:hover { text-decoration: underline; } 16 | a:hover, a:active { color: #2A5685; } 17 | 18 | #header, #top-menu { margin: 0; } 19 | #header { background-color: #333; padding: 8px 8px 0 8px; height: 5.5em; } 20 | #header h1 { margin: 0 24px; } 21 | #header #quick-search { margin: 0 24px; } 22 | #top-menu { background-color: #000; font-size: 10px; position: relative; padding: 0; height: 21px } 23 | #top-menu ul { padding: 0 21px; } 24 | #top-menu li, #top-menu #loggedas { color: #ddd; line-height: 21px; margin-right: 4px; } 25 | #top-menu li a { color: #999; font-weight: normal; padding:4px 5px; } 26 | #top-menu li a:hover { color: #fff; text-decoration: none; } 27 | #main { background: #EEEEEE; margin: 8px 24px 0px 24px; } 28 | #content, #main.nosidebar #content { background: #fff; border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; overflow: auto; -moz-box-shadow: #bbb 1px 1px 2px; -webkit-box-shadow: 1px 1px 2px #bbb; } 29 | #content { width: 70%; } 30 | #content .wiki img { max-width: 98%; } 31 | #main.nosidebar #content { width: auto; } 32 | #sidebar { width: 26%; } 33 | #footer { background-color:#EEEEEE; border: 0px; clear: left; color:#666666; font-size:9px; margin:4px 0 20px 20px; padding-bottom:15px; text-align:left; } 34 | #footer a:hover { background:#666666 none repeat scroll 0 0; color:#FFFFFF !important;} 35 | #footer a:link, #footer a:visited { color:#666666; } 36 | 37 | /* Headers */ 38 | h1, h2, h3, h4 { font-family: "Lucida Grande",arial,sans-serif; } 39 | h1 { font-size: 24px; font-weight: normal; margin:0pt 0pt 0pt 0.25em; padding:0pt 0pt 10px; text-align:left; } 40 | h2, h3, h4, .wiki h1, .wiki h2, .wiki h3 { border-bottom: 0px;} 41 | 42 | h2, .wiki h1 { background-color: #edf3fe; margin: -6px -10px 10px; padding: 10px 20px; font-size: 14px; color: #000; } 43 | .wiki h1 { font-family:"Trebuchet MS",Verdana,sans-serif; font-weight: bold;} 44 | .wiki h2 { background-color: transparent; } 45 | div.issue div.wiki h3 { text-decoration: underline; } 46 | 47 | h3, h4 { font-weight: normal; } 48 | div.wiki h3, div.wiki h4 { font-weight: bold; } 49 | 50 | #sidebar h3 { border-bottom:1px solid #DCDCDC; padding:6px 8px; } 51 | 52 | div.journal h4 { background-color: #EDF3FE; border-left: 3px solid #9FBFFA; padding: 10px;} 53 | 54 | div.splitcontentleft h2 { background-color: transparent; padding: 0; margin: 20px 0 5px 0; } 55 | 56 | /* Links */ 57 | #sidebar a:hover { background-color:#003399; color:#FFFFFF; text-decoration: none;} 58 | 59 | /* Menu */ 60 | #main-menu { margin: 0 24px; } 61 | #main-menu li a { background-color: #666; font-weight: normal; padding:4px 8px 6px; } 62 | #main-menu li a:hover { background: #999; text-decoration: none; } 63 | #main-menu li a.selected, #main-menu li a.selected:hover { background-color:#EEEEEE; color: #111; font-weight:bold; } 64 | 65 | /* Tables */ 66 | table.list { border: none; } 67 | table.list th { background-color: #fff; } 68 | table.list tbody td, table.list tbody tr td, table.list tbody tr td.checkbox { border-bottom: solid 1px #ddd; font-size: 11px; padding:4px 10px 4px 3px; } 69 | table.list thead th { 70 | border: none; 71 | border-bottom:1px solid #999999; 72 | font-size:9px; 73 | font-weight:normal; 74 | padding:0pt 3px 3px; 75 | text-transform:uppercase; 76 | } 77 | 78 | table.list thead th a { color: #000; } 79 | table.list thead th a:hover { color: #000; } 80 | 81 | /* Issues grid styles by priorities (provided by Wynn Netherland) */ 82 | table.list tr.issue a { color: #333; } 83 | 84 | /*adjust the css according to your priority ids, for Redmine 2.1*/ 85 | tr.odd.priority-8, table.list tbody tr.odd.priority-8:hover { color: #559; } 86 | tr.odd.priority-8 { background: #eaf7ff; } 87 | tr.even.priority-8, table.list tbody tr.even.priority-8:hover { color: #559; } 88 | tr.even.priority-8 { background: #f2faff; } 89 | tr.priority-8 a { color: #559; } 90 | tr.odd.priority-8 td, tr.even.priority-8 td { border-color: #add7f3; } 91 | 92 | tr.odd.priority-7, table.list tbody tr.odd.priority-7:hover { color: #900; font-weight: bold; } 93 | tr.odd.priority-7 { background: #ffc4c4; } 94 | tr.even.priority-7, table.list tbody tr.even.priority-7:hover { color: #900; font-weight: bold; } 95 | tr.even.priority-7 { background: #ffd4d4; } 96 | tr.priority-7 a, tr.priority-7:hover a { color: #900; } 97 | tr.odd.priority-7 td, tr.even.priority-7 td { border-color: #ffb4b4; } 98 | 99 | tr.odd.priority-6, table.list tbody tr.odd.priority-6:hover { color: #900; } 100 | tr.odd.priority-6 { background: #ffc4c4; } 101 | tr.even.priority-6, table.list tbody tr.even.priority-6:hover { color: #900; } 102 | tr.even.priority-6 { background: #ffd4d4; } 103 | tr.priority-6 a { color: #900; } 104 | tr.odd.priority-6 td, tr.even.priority-6 td { border-color: #ffb4b4; } 105 | 106 | tr.odd.priority-5, table.list tbody tr.odd.priority-5:hover { color: #900; } 107 | tr.odd.priority-5 { background: #fee; } 108 | tr.even.priority-5, table.list tbody tr.even.priority-5:hover { color: #900; } 109 | tr.even.priority-5 { background: #fff2f2; } 110 | tr.priority-5 a { color: #900; } 111 | tr.odd.priority-5 td, tr.even.priority-5 td { border-color: #fcc; } 112 | 113 | tr.odd.priority-3, table.list tbody tr.odd.priority-3:hover { color: #559; } 114 | tr.odd.priority-3 { background: #eaf7ff; } 115 | tr.even.priority-3, table.list tbody tr.even.priority-3:hover { color: #559; } 116 | tr.even.priority-3 { background: #f2faff; } 117 | tr.priority-3 a { color: #559; } 118 | tr.odd.priority-3 td, tr.even.priority-3 td { border-color: #add7f3; } 119 | 120 | tr.odd.priority-1, table.list tbody tr.odd.priority-1:hover { color: #559; } 121 | tr.odd.priority-1 { background: #eaf7ff; } 122 | tr.even.priority-1, table.list tbody tr.even.priority-1:hover { color: #559; } 123 | tr.even.priority-1 { background: #f2faff; } 124 | tr.priority-1 a { color: #559; } 125 | tr.odd.priority-1 td, tr.even.priority-1 td { border-color: #add7f3; } 126 | 127 | p.breadcrumb { 128 | background-color:#EEEEEE; 129 | border-bottom:1px solid white; 130 | font-size:0.9em; 131 | margin:-6px -10px 6px; 132 | padding:6px; 133 | text-indent:15px; 134 | } 135 | 136 | /* Fields */ 137 | input[type="text"], input[type="password"], textarea, select { padding: 2px; border: 1px solid #d7d7d7; } 138 | input[type="text"], input[type="password"] { padding: 3px; } 139 | input[type="text"]:focus, input[type="password"]:focus, textarea:focus, select:focus { border: 1px solid #888866; } 140 | option { border-bottom: 1px dotted #d7d7d7; } 141 | input#issue_subject { font-size: 200%; width: 90%; } 142 | 143 | textarea.wiki-edit { font-family: Cambria, Verdana, Serif; font-size: larger; } 144 | 145 | /* Misc */ 146 | .box { background-color: #fcfcfc; } 147 | 148 | .contextual { font-size: 0.9em; font-family:verdana; } 149 | 150 | hr { background:#eee none repeat scroll 0% 0%; } 151 | 152 | div.issue { background: #FFFFEC; } 153 | div.splitcontentleft ol li, div.splitcontentleft ul li, div.wiki ol li, div.wiki ul li { padding: 4px 0; } 154 | div.wiki ul.toc li { padding: 0; } 155 | ol li ol li { list-style-type: lower-alpha; } 156 | ol li ol li ol li { list-style-type: lower-roman; } 157 | --------------------------------------------------------------------------------