Edgewall Software

TracDev/Proposals/ThemePlugins: theming.3.patch

File theming.3.patch, 72.9 KB (added by Armin Ronacher, 5 years ago)

another version of the patch, this time with "TracTheme?", "JinjaTheme?" and "CustomTheme?". Not all areas are themed since i truncated all css files before in order to clean them up

  • setup.py

     
    8585        trac.web.auth = trac.web.auth 
    8686        trac.wiki.macros = trac.wiki.macros 
    8787        trac.wiki.web_ui = trac.wiki.web_ui 
     88        trac.themes = trac.web.theming 
    8889    """, 
    8990) 
  • trac/htdocs/css/admin.css

     
    1 #content.admin h1 { float: left; } 
    2  
    3 #tabs { background: #f7f7f0; border: 1px solid black; 
    4   border-color: #ccc #666 #666 #ccc; clear: left; 
    5   margin: 1em 0 2em; padding: .5em 0 0; float: left; width: 12em; 
    6 } 
    7 #tabs ul { list-style: none; margin: 0 0 .5em; padding: 0; } 
    8 #tabs li { color: #999; font-size: 90%; font-weight: bold; margin: 0; 
    9   padding: 0.1em 5px; 
    10 } 
    11 #tabs li li { color: #000; font-size: 110%; font-weight: normal; 
    12   margin: 0 -3px; padding: 1px 0 1px 10px; 
    13 } 
    14 #tabs li li.active { background: #ddc; border: 1px solid; 
    15   border-color: #ccc #000 #666 #ccc; padding: 0 0 0 9px; 
    16 } 
    17 #tabs :link, #tabs :visited { border: none; display: block } 
    18 #tabs :link:hover, #tabs :visited:hover { background: transparent; 
    19   color: #000; 
    20 } 
    21  
    22 #tabcontent { padding: 0.4em 2em; margin-left: 12em; min-height: 300px; } 
    23 #tabcontent h2 { color: #333; margin-top: 0; } 
    24 p.help { color: #666; font-size: 90%; margin: 1em .5em .5em; } 
    25  
    26 #enumlist tbody td { vertical-align: middle; } 
    27  
    28 form.addnew { clear: right; float: right; margin: -2em 0 4em; width: 33% } 
    29 form.mod { margin-top: 1em; } 
    30 form.mod .field { margin: .5em 0; } 
    31 form .field em { color: #888; font-size: smaller } 
    32 form .field .disabled em { color: #d7d7d7 } 
    33  
    34 table.listing { clear: none; width: 64% } 
    35 table.listing .sel, table.listing .default { text-align: center; width: 1% } 
    36  
    37 /* Plugins panel */ 
    38 form#addplug { width: 35% } 
    39 .plugin { background: #f7f7f7; border: 1px solid #d7d7d7; margin: 0 0 2em; 
    40   padding: 2px .5em; text-align: left; width: 60%; 
    41 } 
    42 .plugin h3 { background: url(../expanded.png) 0 50% no-repeat; 
    43   margin: .5em 0 0; padding-left: 16px; 
    44 } 
    45 .collapsed h3 { background-image: url(../collapsed.png); } 
    46 .plugin .buttons { margin-top: 0; text-align: right } 
    47 .plugin .uninstall { margin-top: -2em; padding: 0 } 
    48 .plugin .summary, .plugin .info { color: #999; font-size: 80%; 
    49   padding-left: 16px; 
    50 } 
    51 .plugin .summary { margin: -.5em 0 .5em } 
    52 .plugin .info { margin: 1em 0 .5em; } 
    53 .plugin .info dt { float: left; width: 7em; } 
    54 .plugin .info dd { padding: 0; margin: 0; } 
    55 .plugin .listing { width: 100% } 
    56 .collapsed .info, .collapsed .listing, .collapsed .update { display: none } 
    57 .plugin .listing td { background: #fff } 
    58 .plugin .listing .name p { color: #999; font-size: 80%; margin: 0 } 
    59  
    60 /* Perm Panel */ 
    61 #permlist div { width: 13em; float: left; } 
    62 fieldset tr.field th { text-align: right; } 
  • trac/htdocs/css/trac.css

     
    1 body { background: #fff; color: #000; margin: 10px; padding: 0; } 
    2 body, th, td { 
    3  font: normal 13px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif; 
     1/* anchor links */ 
     2#x-trac .anchor:link, #x-trac .anchor:visited { 
     3    border: none; 
     4    font-size: .8em; 
     5    vertical-align: text-top; 
    46} 
    5 h1, h2, h3, h4 { 
    6  font-family: Arial,Verdana,'Bitstream Vera Sans',Helvetica,sans-serif; 
    7  font-weight: bold; 
    8  letter-spacing: -0.018em; 
    9  page-break-after: avoid; 
     7#x-trac * > .anchor:link, * > #x-trac .anchor:visited { 
     8    visibility: hidden; 
    109} 
    11 h1 { font-size: 19px; margin: .15em 1em 0.5em 0 } 
    12 h2 { font-size: 16px } 
    13 h3 { font-size: 14px } 
    14 hr { border: none;  border-top: 1px solid #ccb; margin: 2em 0 } 
    15 address { font-style: normal } 
    16 img { border: none } 
    17 tt { white-space: pre } 
    18  
    19 .underline { text-decoration: underline } 
    20 ol.loweralpha { list-style-type: lower-alpha } 
    21 ol.upperalpha { list-style-type: upper-alpha } 
    22 ol.lowerroman { list-style-type: lower-roman } 
    23 ol.upperroman { list-style-type: upper-roman } 
    24 ol.arabic     { list-style-type: decimal } 
    25  
    26 /* Link styles */ 
    27 :link, :visited { 
    28  text-decoration: none; 
    29  color: #b00; 
    30  border-bottom: 1px dotted #bbb; 
     10#x-trac h1:hover .anchor, #x-trac h2:hover .anchor, #x-trac h3:hover .anchor, 
     11#x-trac h4:hover .anchor, #x-trac h5:hover .anchor, #x-trac h6:hover .anchor { 
     12    visibility: visible; 
    3113} 
    32 :link:hover, :visited:hover { background-color: #eee; color: #555 } 
    33 h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited, 
    34 h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited { 
    35  color: inherit; 
    36 } 
    3714 
    38 /* Heading anchors */ 
    39 .anchor:link, .anchor:visited { 
    40  border: none; 
    41  color: #d7d7d7; 
    42  font-size: .8em; 
    43  vertical-align: text-top; 
    44 } 
    45 * > .anchor:link, * > .anchor:visited { 
    46  visibility: hidden; 
    47 } 
    48 h1:hover .anchor, h2:hover .anchor, h3:hover .anchor, 
    49 h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { 
    50  visibility: visible; 
    51 } 
    52  
    53 @media screen { 
    54  a.ext-link .icon { 
    55   background: url(../extlink.gif) left center no-repeat; 
    56   padding-left: 16px; 
    57  } 
    58  * html a.ext-link .icon { display: inline-block; } 
    59 } 
    60  
    61 /* Forms */ 
    62 input, textarea, select { margin: 2px } 
    63 input, select { vertical-align: middle } 
    64 input[type=button], input[type=submit], input[type=reset] { 
    65  background: #eee; 
    66  color: #222; 
    67  border: 1px outset #ccc; 
    68  padding: .1em .5em; 
    69 } 
    70 input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover { 
    71  background: #ccb; 
    72 } 
    73 input[type=button][disabled], input[type=submit][disabled], 
    74 input[type=reset][disabled] { 
    75  background: #f6f6f6; 
    76  border-style: solid; 
    77  color: #999; 
    78 } 
    79 input[type=text], input.textwidget, textarea { border: 1px solid #d7d7d7 } 
    80 input[type=text], input.textwidget { padding: .25em .5em } 
    81 input[type=text]:focus, input.textwidget:focus, textarea:focus { 
    82  border: 1px solid #886; 
    83 } 
    84 option { border-bottom: 1px dotted #d7d7d7 } 
    85 fieldset { border: 1px solid #d7d7d7; padding: .5em; margin: 1em 0 } 
    86 form p.hint { color: #666; font-size: 85%; font-style: italic; margin: .5em 0; 
    87   padding-left: 1em; 
    88 } 
    89 fieldset.iefix { 
    90   background: transparent; 
    91   border: none; 
    92   padding: 0; 
    93   margin: 0; 
    94 } 
    95 * html fieldset.iefix { width: 98% } 
    96 fieldset.iefix p { margin: 0 } 
    97 legend { color: #999; padding: 0 .25em; font-size: 90%; font-weight: bold } 
    98 label.disabled { color: #d7d7d7 } 
    99 .buttons { margin: .5em .5em .5em 0 } 
    100 .buttons form, .buttons form div { display: inline } 
    101 .buttons input { margin: 1em .5em .1em 0 } 
    102 .inlinebuttons input {  
    103  font-size: 70%; 
    104  border-width: 1px; 
    105  border-style: dotted; 
    106  margin: 0; 
    107  padding: 0.1em; 
    108  background: none; 
    109 } 
    110  
    111 /* Header */ 
    112 #header hr { display: none } 
    113 #header h1 { margin: 1.5em 0 -1.5em; } 
    114 #header img { border: none; margin: 0 0 -3em } 
    115 #header :link, #header :visited, #header :link:hover, #header :visited:hover { 
    116  background: transparent; 
    117  color: #555; 
    118  margin-bottom: 2px; 
    119  border: none; 
    120 } 
    121 #header h1 :link:hover, #header h1 :visited:hover { color: #000 } 
    122  
    123 /* Quick search */ 
    124 #search { 
    125  clear: both; 
    126  font-size: 10px; 
    127  height: 2.2em; 
    128  margin: 0 0 1em; 
    129  text-align: right; 
    130 } 
    131 #search input { font-size: 10px } 
    132 #search label { display: none } 
    133  
    134 /* Navigation */ 
    135 .nav h2, .nav hr { display: none } 
    136 .nav ul { font-size: 10px; list-style: none; margin: 0; text-align: right } 
    137 .nav li { 
    138  border-right: 1px solid #d7d7d7; 
    139  display: inline; 
    140  padding: 0 .75em; 
    141  white-space: nowrap; 
    142 } 
    143 .nav li.last { border-right: none } 
    144  
    145 /* Main navigation bar */ 
    146 #mainnav { 
    147  background: #f7f7f7 url(../topbar_gradient.png) 0 0; 
    148  border: 1px solid #000; 
    149  font: normal 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; 
    150  margin: .66em 0 .33em; 
    151  padding: .2em 0; 
    152 } 
    153 #mainnav li { border-right: none; padding: .25em 0 } 
    154 #mainnav :link, #mainnav :visited { 
    155  background: url(../dots.gif) 0 0 no-repeat; 
    156  border-right: 1px solid #fff; 
    157  border-bottom: none; 
    158  border-left: 1px solid #555; 
    159  color: #000; 
    160  padding: .2em 20px; 
    161 } 
    162 * html #mainnav :link, * html #mainnav :visited { background-position: 1px 0 } 
    163 #mainnav :link:hover, #mainnav :visited:hover { 
    164  background-color: #ccc; 
    165  border-right: 1px solid #ddd; 
    166 } 
    167 #mainnav .active :link, #mainnav .active :visited { 
    168  background: #333 url(../topbar_gradient2.png) 0 0 repeat-x; 
    169  border-top: none; 
    170  border-right: 1px solid #000; 
    171  color: #eee; 
    172  font-weight: bold; 
    173 } 
    174 #mainnav .active :link:hover, #mainnav .active :visited:hover { 
    175  border-right: 1px solid #000; 
    176 } 
    177  
    178 /* Context-dependent navigation links */ 
    179 #ctxtnav { height: 1em } 
    180 #ctxtnav li ul { 
    181  background: #f7f7f7; 
    182  color: #ccc; 
    183  border: 1px solid; 
    184  padding: 0; 
    185  display: inline; 
    186  margin: 0; 
    187 } 
    188 #ctxtnav li li { padding: 0; } 
    189 #ctxtnav li li :link, #ctxtnav li li :visited { padding: 0 1em } 
    190 #ctxtnav li li :link:hover, #ctxtnav li li :visited:hover { 
    191  background: #bba; 
    192  color: #fff; 
    193 } 
    194  
    195 /* Alternate links */ 
    196 #altlinks { clear: both; text-align: center } 
    197 #altlinks h3 { font-size: 12px; letter-spacing: normal; margin: 0 } 
    198 #altlinks ul { list-style: none; margin: 0; padding: 0 0 1em } 
    199 #altlinks li { 
    200  border-right: 1px solid #d7d7d7; 
    201  display: inline; 
    202  font-size: 11px; 
    203  line-height: 1.5; 
    204  padding: 0 1em; 
    205  white-space: nowrap; 
    206 } 
    207 #altlinks li.last { border-right: none } 
    208 #altlinks li :link, #altlinks li :visited { 
    209  background-repeat: no-repeat; 
    210  color: #666; 
    211  border: none; 
    212  padding: 0 0 2px; 
    213 } 
    214 #altlinks li a.ics { background-image: url(../ics.png); padding-left: 22px } 
    215 #altlinks li a.rss { background-image: url(../feed.png); padding-left: 20px } 
    216  
    217 /* Footer */ 
    218 #footer { 
    219   clear: both; 
    220   color: #bbb; 
    221   font-size: 10px; 
    222   border-top: 1px solid; 
    223   height: 31px; 
    224   padding: .25em 0; 
    225 } 
    226 #footer :link, #footer :visited { color: #bbb; } 
    227 #footer hr { display: none } 
    228 #footer #tracpowered { border: 0; float: left } 
    229 #footer #tracpowered:hover { background: transparent } 
    230 #footer p { margin: 0 } 
    231 #footer p.left { 
    232   float: left; 
    233   margin-left: 1em; 
    234   padding: 0 1em; 
    235   border-left: 1px solid #d7d7d7; 
    236   border-right: 1px solid #d7d7d7; 
    237 } 
    238 #footer p.right { 
    239   float: right; 
    240   text-align: right; 
    241 } 
    242  
    243 #content { padding-bottom: 2em; position: relative } 
    244  
    245 #help { 
    246  clear: both; 
    247  color: #999; 
    248  font-size: 90%; 
    249  margin: 1em; 
    250  text-align: right; 
    251 } 
    252 #help :link, #help :visited { cursor: help } 
    253 #help hr { display: none } 
    254  
    255 /* Page preferences form */ 
    256 #prefs { 
    257  background: #f7f7f0; 
    258  border: 1px outset #998; 
    259  float: right; 
    260  font-size: 9px; 
    261  padding: .8em; 
    262  position: relative; 
    263  margin: 0 1em 1em; 
    264 } 
    265 * html #prefs { width: 26em } /* Set width only for IE */ 
    266 #prefs input, #prefs select { font-size: 9px; vertical-align: middle } 
    267 #prefs fieldset { 
    268  background: transparent; 
    269  border: none; 
    270  margin: .5em; 
    271  padding: 0; 
    272 } 
    273 #prefs fieldset legend { 
    274  background: transparent; 
    275  color: #000; 
    276  font-size: 9px; 
    277  font-weight: normal; 
    278  margin: 0 0 0 -1.5em; 
    279  padding: 0; 
    280 } 
    281 #prefs .buttons { text-align: right } 
    282  
    283 /* Version information (browser, wiki, attachments) */ 
    284 #info { 
    285  margin: 1em 0 0 0; 
    286  background: #f7f7f0; 
    287  border: 1px solid #d7d7d7; 
    288  border-collapse: collapse; 
    289  border-spacing: 0; 
    290  clear: both; 
    291  width: 100%; 
    292 } 
    293 #info th, #info td { font-size: 85%; padding: 2px .5em; vertical-align: top } 
    294 #info th { font-weight: bold; text-align: left; white-space: nowrap } 
    295 #info td.message { width: 100% } 
    296 #info .message ul { padding: 0; margin: 0 2em } 
    297 #info .message p { margin: 0; padding: 0 } 
    298  
    299 /* Wiki */ 
    300 .wikipage { padding-left: 18px } 
    301 .wikipage h1, .wikipage h2, .wikipage h3 { margin-left: -18px } 
    302  
    303 a.missing:link, a.missing:visited, span.missing { color: #998 } 
    304 a.missing:link, a.missing:visited { background: #fafaf0 } 
    305 a.missing:hover { color: #000 } 
    306 a.closed:link, a.closed:visited { text-decoration: line-through } 
    307 span.closed { text-decoration: line-through } 
    308  
    309 dl.wiki dt { font-weight: bold } 
    310 dl.compact dt { float: left; padding-right: .5em } 
    311 dl.compact dd { margin: 0; padding: 0 } 
    312  
    313 pre.wiki, pre.literal-block { 
    314  background: #f7f7f7; 
    315  border: 1px solid #d7d7d7; 
    316  margin: 1em 1.75em; 
    317  padding: .25em; 
    318  overflow: auto; 
    319 } 
    320  
    321 blockquote.citation {  
    322  margin: -0.6em 0; 
    323  border-style: solid;  
    324  border-width: 0 0 0 2px;  
    325  padding-left: .5em; 
    326  border-color: #b44;  
    327 } 
    328 .citation blockquote.citation { border-color: #4b4; } 
    329 .citation .citation blockquote.citation { border-color: #44b; } 
    330 .citation .citation .citation blockquote.citation { border-color: #c55; } 
    331  
    332 table.wiki { 
    333  border: 2px solid #ccc; 
    334  border-collapse: collapse; 
    335  border-spacing: 0; 
    336 } 
    337 table.wiki td { border: 1px solid #ccc;  padding: .1em .25em; } 
    338  
    339 .wikitoolbar { 
    340  border: solid #d7d7d7; 
    341  border-width: 1px 1px 1px 0; 
    342  height: 18px; 
    343  width: 234px; 
    344 } 
    345 .wikitoolbar :link, .wikitoolbar :visited { 
    346  background: transparent url(../edit_toolbar.png) no-repeat; 
    347  border: 1px solid #fff; 
    348  border-left-color: #d7d7d7; 
    349  cursor: default; 
    350  display: block; 
    351  float: left; 
    352  width: 24px; 
    353  height: 16px; 
    354 } 
    355 .wikitoolbar :link:hover, .wikitoolbar :visited:hover { 
    356  background-color: transparent; 
    357  border: 1px solid #fb2; 
    358 } 
    359 .wikitoolbar a#em { background-position: 0 0 } 
    360 .wikitoolbar a#strong { background-position: 0 -16px } 
    361 .wikitoolbar a#heading { background-position: 0 -32px } 
    362 .wikitoolbar a#link { background-position: 0 -48px } 
    363 .wikitoolbar a#code { background-position: 0 -64px } 
    364 .wikitoolbar a#hr { background-position: 0 -80px } 
    365 .wikitoolbar a#np { background-position: 0 -96px } 
    366 .wikitoolbar a#br { background-position: 0 -112px } 
    367 .wikitoolbar a#img { background-position: 0 -128px } 
    368  
    369 /* Styles for the form for adding attachments. */ 
    370 #attachment .field { margin-top: 1.3em } 
    371 #attachment label { padding-left: .2em } 
    372 #attachment fieldset { margin-top: 2em } 
    373 #attachment fieldset .field { float: left; margin: 0 1em .5em 0 } 
    374 #attachment .options { float: left; padding: 0 0 1em 1em } 
    375 #attachment br { clear: left } 
    376 .attachment #preview { margin-top: 1em } 
    377  
    378 /* Styles for the list of attachments. */ 
    379 #attachments { border: 1px outset #996; padding: 1em } 
    380 #attachments .attachments { margin-left: 2em; padding: 0 } 
    381 #attachments dt { display: list-item; list-style: square; } 
    382 #attachments dd { font-style: italic; margin-left: 0; padding-left: 0; } 
    383  
    384 /* Styles for tabular listings such as those used for displaying directory 
    385    contents and report results. */ 
    386 table.listing { 
    387  clear: both; 
    388  border-bottom: 1px solid #d7d7d7; 
    389  border-collapse: collapse; 
    390  border-spacing: 0; 
    391  margin-top: 1em; 
    392  width: 100%; 
    393 } 
    394 table.listing th { text-align: left; padding: 0 1em .1em 0; font-size: 12px } 
    395 table.listing thead { background: #f7f7f0 } 
    396 table.listing thead th { 
    397  border: 1px solid #d7d7d7; 
    398  border-bottom-color: #999; 
    399  font-size: 11px; 
    400  font-weight: bold; 
    401  padding: 2px .5em; 
    402  vertical-align: bottom; 
    403 } 
    404 table.listing thead th :link:hover, table.listing thead th :visited:hover { 
    405  background-color: transparent; 
    406 } 
    407 table.listing thead th a { border: none; padding-right: 12px } 
    408 table.listing th.asc a, table.listing th.desc a { font-weight: bold } 
    409 table.listing th.asc a, table.listing th.desc a { 
    410  background-position: 100% 50%; 
    411  background-repeat: no-repeat; 
    412 } 
    413 table.listing th.asc a { background-image: url(../asc.png) } 
    414 table.listing th.desc a { background-image: url(../desc.png) } 
    415 table.listing tbody td, table.listing tbody th { 
    416  border: 1px dotted #ddd; 
    417  padding: .33em .5em; 
    418  vertical-align: top; 
    419 } 
    420 table.listing tbody td a:hover, table.listing tbody th a:hover { 
    421  background-color: transparent; 
    422 } 
    423 table.listing tbody tr { border-top: 1px solid #ddd } 
    424 table.listing tbody tr.even { background-color: #fcfcfc } 
    425 table.listing tbody tr.odd { background-color: #f7f7f7 } 
    426 table.listing tbody tr:hover { background: #eed !important } 
    427  
    428 /* Styles for the page history table 
    429    (extends the styles for "table.listing") */ 
    430 #fieldhist td { padding: 0 .5em } 
    431 #fieldhist td.date, #fieldhist td.diff, #fieldhist td.version, 
    432 #fieldhist td.author { 
    433  white-space: nowrap; 
    434 } 
    435 #fieldhist td.version { text-align: center } 
    436 #fieldhist td.comment { width: 100% } 
    437  
    438 /* Auto-completion interface */ 
    439 .suggestions { background: #fff; border: 1px solid #886; color: #222; } 
    440 .suggestions ul { 
    441   font-family: sans-serif; 
    442   max-height: 20em; 
    443   min-height: 3em; 
    444   list-style: none; 
    445   margin: 0; 
    446   overflow: auto; 
    447   padding: 0; 
    448   width: 440px; 
    449 } 
    450 * html .suggestions ul { height: 10em; } 
    451 .suggestions li { background: #fff; cursor: pointer; padding: 2px 5px } 
    452 .suggestions li.selected { background: #b9b9b9 } 
    453  
    454 /* Styles for the error page (and rst errors) */ 
    455 #content.error .message, div.system-message { 
    456  background: #fdc; 
    457  border: 2px solid #d00; 
    458  color: #500; 
    459  padding: .5em; 
    460  margin: 1em 0; 
    461 } 
    462 #content.error pre, div.system-message pre { 
    463   margin-left: 1em; 
    464   overflow: auto; 
    465 } 
    466 div.system-message p { margin: 0; } 
    467 div.system-message p.system-message-title { font-weight: bold; } 
    468  
    469 #content.error #newticket form { display: inline; } 
    470 #content.error #newticket textarea { display: none; } 
    471  
    472 #content.error #systeminfo { margin: 1em; width: auto; } 
    473 #content.error #systeminfo th { font-weight: bold; text-align: right; } 
    474  
    475 #content.error #traceback { margin-left: 1em; } 
    476 #content.error #traceback :link, #content.error #traceback :visited { 
    477   border: none; 
    478 } 
    479 #content.error #tbtoggle { font-size: 80%; } 
    480 #content.error #traceback div { margin-left: 1em; } 
    481 #content.error #traceback h3 { font-size: 95%; margin: .5em 0 0; } 
    482 #content.error #traceback :link var, #content.error #traceback :visited var { 
    483   font-family: monospace; 
    484   font-style: normal; 
    485   font-weight: bold; 
    486 } 
    487 #content.error #traceback span.file { color: #666; font-size: 85%; } 
    488 #content.error #traceback ul { list-style: none; margin: .5em 0; padding: 0; } 
    489 #content.error #traceback ol { 
    490   border: 1px dotted #d7d7d7; 
    491   color: #999; 
    492   font-size: 85%; 
    493   line-height: 1; 
    494   margin: .5em 0; 
    495 } 
    496 #content.error #traceback ol li { white-space: pre; } 
    497 #content.error #traceback ol li.current { background: #e6e6e6; color: #333; } 
    498 #content.error #traceback ol li code { color: #666; } 
    499 #content.error #traceback ol li.current code { color: #000; } 
    500 #content.error #traceback table { margin: .5em 0 1em;  } 
    501 #content.error #traceback th, #content.error #traceback td { 
    502   font-size: 85%; padding: 1px; 
    503 } 
    504 #content.error #traceback th var { 
    505   font-family: monospace; 
    506   font-style: normal; 
    507 } 
    508 #content.error #traceback td code { white-space: pre; } 
    509 #content.error #traceback pre { font-size: 95%; } 
    510  
    511 /* Styles for search word highlighting */ 
    512 @media screen { 
    513  .searchword0 { background: #ff9 } 
    514  .searchword1 { background: #cfc } 
    515  .searchword2 { background: #cff } 
    516  .searchword3 { background: #ccf } 
    517  .searchword4 { background: #fcf } 
    518 } 
    519  
    520 @media print { 
    521  #header, #altlinks, #footer, #help { display: none } 
    522  .nav, form, .buttons form, form .buttons, form .inlinebuttons { 
    523    display: none; 
    524  } 
    525  form.printableform { display: block } 
    526 } 
     15/* alternative link icons */ 
     16#x-trac #altlinks li a.ics { background-image: url(../ics.png); padding-left: 22px } 
     17#x-trac #altlinks li a.rss { background-image: url(../feed.png); padding-left: 20px } 
  • trac/htdocs/css/changeset.css

     
    1 /* Changeset overview */ 
    2 #overview .files { padding-top: 1em } 
    3 #overview .files ul { margin: 0; padding: 0 } 
    4 #overview .files li { list-style-type: none } 
    5 #overview .files li .comment { display: none } 
    6 #overview .files li div { 
    7  border: 1px solid #999; 
    8  float: left; 
    9  margin: .2em .5em 0 0; 
    10  overflow: hidden; 
    11  width: .8em; height: .8em; 
    12 } 
    13 #overview div.add div, #overview div.cp div, #overview div.mv div { 
    14  border: 0; 
    15  margin: 0; 
    16  float: right; 
    17  width: .35em;  
    18 } 
    19  
    20 #overview .changeset { padding: 0 0 1px } 
    21 #overview dd.changeset p { 
    22  margin-bottom: 0; 
    23  margin-top: 0; 
    24 } 
    25 #overview .files { padding: 1px 0 } 
    26  
    27 .diff ul.props { 
    28  font-size: 90%; 
    29  list-style: disc; 
    30  margin: .5em 0 0; 
    31  padding: 0 .5em 1em 2em; 
    32 } 
    33 .diff ul.props li { margin: 0; padding: 0 } 
    34  
    35 #title dl { display: inline; font-size: 110% } 
    36 #title dt {  
    37  display: inline;  
    38  font-size: 110%; 
    39  font-weight: bold; 
    40  margin-left: 3em; 
    41 } 
    42 #title dd { display: inline; margin-left: 0.4em } 
  • trac/htdocs/css/wiki.css

     
    1 @import url(code.css); 
    2  
    3 /* Styles for the page editing form */ 
    4 #edit #rows { float: right; font-size: 80% } 
    5 #edit #rows select { font-size: 90% } 
    6 #edit #text { clear: both; width: 100% } 
    7 #edit .wikitoolbar { float: left; } 
    8 #changeinfo { padding: .5em } 
    9 #changeinfo .field { float: left; margin: 0 1em .5em 0 } 
    10 #changeinfo br { clear: left } 
    11 #changeinfo .options { padding: 0 0 1em 1em } 
    12 #changeinfo .options, #changeinfo .buttons { clear: left } 
    13 #delete, #save { margin-left: 6em } 
    14 #preview { 
    15  background: #f4f4f4 url(../draft.png); 
    16  margin: 1em 0 2em; 
    17  overflow: auto; 
    18 } 
    19 #template { vertical-align: middle; padding-top: 1em; } 
    20  
    21 /* Diff view */ 
    22 #overview .multi { color: #999 } 
    23 #overview .ipnr { color: #999; font-size: 80% } 
    24 #overview .comment { padding: 1em 0 0 } 
    25  
    26 @media print {  
    27  th.diff, td.diff { display: none } 
    28 } 
    29  
    30 /* Styles for the TracGuideToc wikimacro */ 
    31 .wiki-toc { 
    32  padding: .5em 1em; 
    33  margin: 0 0 2em 1em; 
    34  float: right; 
    35  border: 1px outset #ddc; 
    36  background: #ffd; 
    37  font-size: 85%; 
    38  position: relative; 
    39 } 
    40 .wiki-toc h4 { font-size: 12px; margin: 0 } 
    41 .wiki-toc ul, .wiki-toc ol { list-style: none; padding: 0; margin: 0 } 
    42 .wiki-toc ul ul, .wiki-toc ol ol { padding-left: 1.2em } 
    43 .wiki-toc li { margin: 0; padding: 0 } 
    44 .wiki-toc .active { background: #ff9; position: relative; } 
  • trac/htdocs/css/search.css

     
    1 #content.search .filters { color: #333; font-size: 85%; } 
    2  
    3 #content.search form { margin: 1em 0 0 } 
    4 #content.search form p { margin: .5em 0 } 
    5 #content.search hr { clear: left; margin-bottom: 0 } 
    6 #content.search #notfound { margin: 2em; font-size: 110% } 
    7  
    8 #content.search h2 .numresults { color: #666; font-size: 90%; } 
    9 #content.search #results { margin-right: 3em } 
    10 #content.search #results dt { margin: 1.5em 0 0 } 
    11 #content.search #results dt a { color: #33c } 
    12 #content.search #results dd { font-size: 80%; margin: 0; padding: 0 } 
    13 #content.search #results .author, #results .date { color: #090; } 
    14  
    15 #content.search #quickjump { font-style: italic; font-weight: bold; } 
    16  
    17 #content.search .paging { margin: 0 0 2em; padding: .5em 0 0; 
    18   font-size: 85%; line-height: 2em; text-align: center; 
    19 } 
    20 #content.search .paging span { color: #666; padding: 0; } 
    21 #content.search .paging :link, #content.search .paging :visited { 
    22   background: #999; border: 1px solid #666; color: #fff; padding: .1em .3em; 
    23 } 
    24 #content.search .paging :link:hover, #content.search .paging :visited:hover { 
    25   background: #666; border-color: #333; 
    26 } 
    27 #content.search .paging .previous :link, 
    28 #content.search .paging .previous :visited, 
    29 #content.search .paging .next :link, 
    30 #content.search .paging .next :visited { 
    31   background: transparent; border: none; color: #666; font-size: 150%; 
    32   font-weight: bold; 
    33 } 
    34 #content.search .paging .previous :link:hover, 
    35 #content.search .paging .previous :visited:hover, 
    36 #content.search .paging .next :link:hover, 
    37 #content.search .paging .next :visited:hover { 
    38   background: transparent; color: #000; 
    39 } 
  • trac/htdocs/css/timeline.css

     
    1 /* Timeline */ 
    2  
    3 * html #prefs { width: 34em } /* Set width only for IE */ 
    4 #prefs fieldset label { display: block } 
    5 #prefs .buttons { margin-top: -1.6em } 
    6  
    7 h2 { 
    8  background: #f7f7f7; 
    9  border-bottom: 1px solid #d7d7d7; 
    10  font-size: 105%; 
    11  margin: 2em 0 .5em; 
    12 } 
    13 dl { line-height: 1.3em; margin-left: 1em } 
    14 dt { background: 3px 4px no-repeat; padding: 0 } 
    15 dt :link, dt :visited { 
    16  background: 3px 3px no-repeat; 
    17  border: none; 
    18  color: #000; 
    19  padding: 0 4px 2px 22px; 
    20 } 
    21 dt>:link, dt>:visited { 
    22  /* Hide from IE/Win */ 
    23  background-position: 3px 4px; 
    24  display: block; 
    25 } 
    26 dt :link:hover, dt :visited:hover { background-color: #eed; color: #000 } 
    27 dt em { 
    28  border-bottom: 1px dotted #bbb; 
    29  color: #b00; 
    30  font-style: normal; 
    31  text-decoration: none; 
    32 } 
    33 dt .time { color: #999; font-size: 80%; } 
    34 dt .author { color: #666; } 
    35 dt.highlight { background-color: #ffa; }  
    36 dd {  
    37  font-size: 80%; 
    38  margin: 0 0 .75em 5.5em; 
    39  padding: 0; 
    40  color: #776; 
    41 } 
    42  
    43 /* Apply icon background-image twice to avoid hover-flicker in IE/Win */ 
    44 dt.changeset, dt.changeset a { background-image: url(../changeset.png) !important } 
    45 dt.newticket, dt.newticket a { background-image: url(../newticket.png) !important } 
    46 dt.editedticket, dt.editedticket a { background-image: url(../editedticket.png) !important } 
    47 dt.closedticket, dt.closedticket a { background-image: url(../closedticket.png) !important } 
    48 dt.wiki, dt.wiki a { background-image: url(../wiki.png) !important } 
    49 dt.milestone, dt.milestone a { background-image: url(../milestone.png) !important } 
    50 dt.attachment, dt.attachment a { background-image: url(../attachment.png) !important } 
    51  
    52 /* styles for the 'changeset_long_messages' option */ 
    53 dd.changeset p { margin: 0; padding: 0 } 
    54 dd.changeset ul { padding-left: 15px; } 
    55  
    56 /* Styles for the 'changeset_show_files' option */ 
    57 dd.changeset .changes { color: #aaa; font-size: 90%; } 
    58 dd.changeset ul.changes {  
    59  padding-left: 0; 
    60  list-style-type: none; 
    61 } 
    62 dd.changeset .changes li div { 
    63  border: 1px solid #999; 
    64  float: left; 
    65  margin: .5em .5em 0 0; 
    66  overflow: hidden; 
    67  width: .8em; height: .8em; 
    68 } 
    69 dd.changeset .changes li span {  
    70  float: left; 
    71  margin-right: .8em; 
    72 } 
    73 dd.changeset .changes .add     { background: #bfb } 
    74 dd.changeset .changes .delete  { background: #f88 } 
    75 dd.changeset .changes .edit    { background: #fd8 } 
    76 dd.changeset .changes .copy    { background: #88f } 
    77 dd.changeset .changes .move    { background: #ccc } 
  • trac/htdocs/css/diff.css

     
    1 /* Diff preferences */ 
    2 #prefs fieldset { margin: 1em .5em .5em; padding: .5em 1em 0 } 
    3  
    4 /* Diff/change overview */ 
    5 #overview { line-height: 130%; margin-top: 1em; padding: .5em } 
    6 #overview dt.property { 
    7  font-weight: bold; 
    8  padding-right: .25em; 
    9  position: absolute; 
    10  left: 0; 
    11  text-align: right; 
    12  width: 7.75em; 
    13 } 
    14 #overview dd { margin-left: 8em } 
    15  
    16 #overview .message { padding: 1em 0 1px } 
    17 #overview dd.message p, #overview dd.message ul, #overview dd.message ol, 
    18 #overview dd.message pre { margin-bottom: 1em; margin-top: 0; } 
    19  
    20 /* Colors for change types */ 
    21 #chglist .edit, #overview .mod, .diff .legend .mod { background: #fd8 } 
    22 #chglist .delete, #overview .rem, .diff .legend .rem { background: #f88 } 
    23 #chglist .add, #overview .add, .diff .legend .add { background: #bfb } 
    24 #chglist .copy, #overview .cp, .diff .legend .cp { background: #88f } 
    25 #chglist .move, #overview .mv, .diff .legend .mv { background: #ccc } 
    26 #chglist .unknown { background: #fff } 
    27  
    28 /* Legend for diff and file colors */ 
    29 .legend { 
    30  font-size: 9px; 
    31  line-height: 1em; 
    32  padding: .5em 0; 
    33 } 
    34 .legend h3 { display: none; } 
    35 .legend dt { 
    36  background: #fff; 
    37  border: 1px solid #999; 
    38  float: left; 
    39  margin: .1em .5em .1em 0; 
    40  overflow: hidden; 
    41  width: .8em; height: .8em; 
    42 } 
    43 .legend dl { 
    44  display: inline; 
    45  padding: 0; 
    46  margin: 0; 
    47  margin-right: .5em; 
    48 } 
    49 .legend dd { 
    50  display: inline; 
    51  float: left; 
    52  padding: 0; 
    53  margin: 0; 
    54  margin-right: 2em; 
    55 } 
    56  
    57 #diff-legend { 
    58  float: left; 
    59  clear: right; 
    60  margin: 1em .5em; 
    61 } 
    62  
    63 #file-legend dd { margin-left: 0; } 
    64  
    65 /* Styles for the list of diffs */ 
    66 .diff ul.entries { clear: both; margin: 0; padding: 0 } 
    67  
    68 .diff li.entry { 
    69  background: #f7f7f7; 
    70  border: 1px solid #d7d7d7; 
    71  list-style-type: none; 
    72  margin: 0 0 2em; 
    73  padding: 2px; 
    74  position: relative; 
    75  width: 100%; 
    76 } 
    77 .diff h2 { 
    78  color: #333; 
    79  font-size: 14px; 
    80  letter-spacing: normal; 
    81  margin: 0 auto; 
    82  padding: .1em 0 .25em .5em; 
    83 } 
    84 .diff h2 .switch { color: #999; float: right; font-size: 75%; 
    85   line-height: 1.6; 
    86 } 
    87 .diff h2 .switch span { border-left: 1px solid #ccc; cursor: pointer; 
    88   padding: 0 1em; 
    89 } 
    90 .diff h2 .switch span:first-child { border: none; } 
    91 .diff h2 .switch span.active { color: #333; cursor: default; } 
    92  
    93 /* Styles for the actual diff tables (side-by-side and inline) */ 
    94 .diff table { 
    95  border: 1px solid #ddd; 
    96  border-spacing: 0; 
    97  border-top: 0; 
    98  empty-cells: show; 
    99  font-size: 12px; 
    100  line-height: 130%; 
    101  padding: 0; 
    102  margin: 0 auto; 
    103  table-layout: fixed; 
    104  width: 100%; 
    105 } 
    106 .diff table col.lineno { width: 4em } 
    107 .diff table th { 
    108  border-right: 1px solid #d7d7d7; 
    109  border-bottom: 1px solid #998; 
    110  font-size: 11px; 
    111 } 
    112 .diff table thead th { 
    113  background: #eee; 
    114  border-top: 1px solid #d7d7d7; 
    115  color: #999; 
    116  padding: 0 .25em; 
    117  text-align: center; 
    118  white-space: nowrap; 
    119 } 
    120 .diff table tbody th { 
    121  background: #eed; 
    122  color: #886; 
    123  font-weight: normal; 
    124  padding: 0 .5em; 
    125  text-align: right; 
    126  vertical-align: top; 
    127 } 
    128 .diff table tbody td { 
    129  background: #fff; 
    130  font: normal 11px monospace; 
    131  overflow: visible; 
    132  padding: 1px 2px; 
    133  vertical-align: top; 
    134 } 
    135 .diff table tbody.skipped td { 
    136  background: #f7f7f7; 
    137  border: 1px solid #d7d7d7; 
    138 } 
    139 .diff td ins, .diff td del {text-decoration: none;} 
    140  
    141 /* Styles for the inline diff */ 
    142 .diff table.inline tbody.mod td.l, .diff table.inline tbody.rem td.l { 
    143  background: #fdd; 
    144  border-color: #c00; 
    145  border-style: solid; 
    146  border-width: 0 1px 0 1px; 
    147 } 
    148 .diff table.inline tbody.mod td.r, .diff table.inline tbody.add td.r { 
    149  background: #dfd; 
    150  border-color: #0a0; 
    151  border-style: solid; 
    152  border-width: 0 1px 0 1px; 
    153 } 
    154 .diff table.inline tbody.mod tr.first td.l, 
    155 .diff table.inline tbody.rem tr.first td.l { border-top-width: 1px } 
    156 .diff table.inline tbody.mod tr.last td.l, 
    157 .diff table.inline tbody.rem tr.last td.l { border-bottom-width: 1px } 
    158 .diff table.inline tbody.mod tr.first td.r, 
    159 .diff table.inline tbody.add tr.first td.r { border-top-width: 1px } 
    160 .diff table.inline tbody.mod tr.last td.r, 
    161 .diff table.inline tbody.add tr.last td.r { border-bottom-width: 1px } 
    162 .diff table.inline tbody.mod td del {  
    163  background: #e99;  
    164  color: #000; 
    165 } 
    166 .diff table.inline tbody.mod td ins {  
    167  background: #9e9;  
    168  color: #000; 
    169 } 
    170  
    171 /* Styles for the side-by-side diff */ 
    172 .diff table.sidebyside colgroup.content { width: 50% } 
    173 .diff table.sidebyside tbody.mod td.l { background: #fe9 } 
    174 .diff table.sidebyside tbody.mod td.r { background: #fd8 } 
    175 .diff table.sidebyside tbody.add td.l { background: #dfd } 
    176 .diff table.sidebyside tbody.add td.r { background: #cfc } 
    177 .diff table.sidebyside tbody.rem td.l { background: #f88 } 
    178 .diff table.sidebyside tbody.rem td.r { background: #faa } 
    179 .diff table.sidebyside tbody.mod del, .diff table.sidebyside tbody.mod ins { 
    180  background: #fc0;  
    181 } 
    182  
    183 /* Styles for the plain-text diff view */ 
    184 .diff pre { background: #fff; border: 1px solid #ddd; font-size: 85%; 
    185   margin: 0; 
    186 } 
  • trac/htdocs/css/tracstyle.css

     
     1/** 
     2 * Colors / Backgrounds for the default design 
     3 */ 
     4 
     5/* Global Styles */ 
     6body, th, td { 
     7    font: normal 13px 'Verdana', 'Arial', 'Bitstream Vera Sans', 'Helvetica', sans-serif; 
     8} 
     9h1, h2, h3, h4 { 
     10    font-family: 'Arial', 'Verdana', 'Bitstream Vera Sans', 'Helvetica', sans-serif; 
     11    font-weight: bold; 
     12    letter-spacing: -0.018em; 
     13    page-break-after: avoid; 
     14} 
     15 
     16h1 { font-size: 19px; margin: .15em 1em 0.5em 0 } 
     17h2 { font-size: 16px } 
     18h3 { font-size: 14px } 
     19hr { border: none;  border-top: 1px solid #ccb; margin: 2em 0 } 
     20 
     21address { font-style: normal } 
     22 
     23img { border: none } 
     24 
     25tt { white-space: pre } 
     26 
     27.underline { text-decoration: underline } 
     28ol.loweralpha { list-style-type: lower-alpha } 
     29ol.upperalpha { list-style-type: upper-alpha } 
     30ol.lowerroman { list-style-type: lower-roman } 
     31ol.upperroman { list-style-type: upper-roman } 
     32ol.arabic     { list-style-type: decimal } 
     33 
     34:link, :visited { 
     35    text-decoration: none; 
     36    color: #b00; 
     37    border-bottom: 1px dotted #bbb; 
     38} 
     39:link:hover, :visited:hover { background-color: #eee; color: #555 } 
     40h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited, 
     41h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited { 
     42    color: inherit; 
     43} 
     44 
     45a.ext-link .icon { 
     46    background: url(../extlink.gif) left center no-repeat; 
     47    padding-left: 16px; 
     48} 
     49 
     50* html a.ext-link .icon { display: inline-block; } 
     51 
     52/* Anchors */ 
     53.anchor:link, .anchor:visited { 
     54    color: #d7d7d7; 
     55} 
     56 
     57/* Forms */ 
     58input, textarea, select { margin: 2px } 
     59input, select { vertical-align: middle } 
     60input[type=button], input[type=submit], input[type=reset] { 
     61    background: #eee; 
     62    color: #222; 
     63    border: 1px outset #ccc; 
     64    padding: .1em .5em; 
     65} 
     66input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover { 
     67    background: #ccb; 
     68} 
     69input[type=button][disabled], input[type=submit][disabled], 
     70input[type=reset][disabled] { 
     71    background: #f6f6f6; 
     72    border-style: solid; 
     73    color: #999; 
     74} 
     75input[type=text], input.textwidget, textarea { border: 1px solid #d7d7d7 } 
     76input[type=text], input.textwidget { padding: .25em .5em } 
     77input[type=text]:focus, input.textwidget:focus, textarea:focus { 
     78    border: 1px solid #886; 
     79} 
     80option { border-bottom: 1px dotted #d7d7d7 } 
     81fieldset { border: 1px solid #d7d7d7; padding: .5em; margin: 1em 0 } 
     82form p.hint { color: #666; font-size: 85%; font-style: italic; margin: .5em 0; 
     83    padding-left: 1em; 
     84} 
     85fieldset.iefix { 
     86    background: transparent; 
     87    border: none; 
     88    padding: 0; 
     89    margin: 0; 
     90} 
     91* html fieldset.iefix { width: 98% } 
     92fieldset.iefix p { margin: 0 } 
     93legend { color: #999; padding: 0 .25em; font-size: 90%; font-weight: bold } 
     94label.disabled { color: #d7d7d7 } 
     95.buttons { margin: .5em .5em .5em 0 } 
     96.buttons form, .buttons form div { display: inline } 
     97.buttons input { margin: 1em .5em .1em 0 } 
     98.inlinebuttons input {  
     99    font-size: 70%; 
     100    border-width: 1px; 
     101    border-style: dotted; 
     102    margin: 0; 
     103    padding: 0.1em; 
     104    background: none; 
     105} 
     106 
     107/* Header */ 
     108#header hr { display: none } 
     109#header h1 { margin: 1.5em 0 -1.5em; } 
     110#header img { border: none; margin: 0 0 -3em } 
     111#header :link, #header :visited, #header :link:hover, #header :visited:hover { 
     112    background: transparent; 
     113    color: #555; 
     114    margin-bottom: 2px; 
     115    border: none; 
     116} 
     117#header h1 :link:hover, #header h1 :visited:hover { color: #000 } 
     118 
     119/* Footer */ 
     120#footer { 
     121    clear: both; 
     122    color: #bbb; 
     123    font-size: 10px; 
     124    border-top: 1px solid; 
     125    height: 31px; 
     126    padding: .25em 0; 
     127} 
     128#footer :link, #footer :visited { color: #bbb; } 
     129#footer hr { display: none } 
     130#footer #tracpowered { border: 0; float: left } 
     131#footer #tracpowered:hover { background: transparent } 
     132#footer p { margin: 0 } 
     133#footer p.left { 
     134    float: left; 
     135    margin-left: 1em; 
     136    padding: 0 1em; 
     137    border-left: 1px solid #d7d7d7; 
     138    border-right: 1px solid #d7d7d7; 
     139} 
     140#footer p.right { 
     141    float: right; 
     142    text-align: right; 
     143} 
     144 
     145/* Search Form */ 
     146#search { 
     147    clear: both; 
     148    font-size: 10px; 
     149    height: 2.2em; 
     150    margin: 0 0 1em; 
     151    text-align: right; 
     152} 
     153#search input { font-size: 10px } 
     154#search label { display: none } 
     155 
     156/* Navigation Bars */ 
     157.nav h2, .nav hr { 
     158    display: none; 
     159} 
     160.nav ul { 
     161    font-size: 10px; 
     162    list-style: none; 
     163    margin: 0; 
     164    text-align: right; 
     165} 
     166.nav li { 
     167    border-right: 1px solid #d7d7d7; 
     168    display: inline; 
     169    padding: 0 .75em; 
     170    white-space: nowrap; 
     171} 
     172.nav li.last { 
     173    border-right: none; 
     174} 
     175 
     176#mainnav { 
     177    background: #f7f7f7 url(../topbar_gradient.png) 0 0; 
     178    border: 1px solid #000; 
     179    font: normal 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; 
     180    margin: .66em 0 .33em; 
     181    padding: .2em 0; 
     182} 
     183#mainnav li { border-right: none; padding: .25em 0 } 
     184#mainnav :link, #mainnav :visited { 
     185    background: url(../dots.gif) 0 0 no-repeat; 
     186    border-right: 1px solid #fff; 
     187    border-bottom: none; 
     188    border-left: 1px solid #555; 
     189    color: #000; 
     190    padding: .2em 20px; 
     191} 
     192* html #mainnav :link, * html #mainnav :visited { background-position: 1px 0 } 
     193#mainnav :link:hover, #mainnav :visited:hover { 
     194    background-color: #ccc; 
     195    border-right: 1px solid #ddd; 
     196} 
     197#mainnav .active :link, #mainnav .active :visited { 
     198    background: #333 url(../topbar_gradient2.png) 0 0 repeat-x; 
     199    border-top: none; 
     200    border-right: 1px solid #000; 
     201    color: #eee; 
     202    font-weight: bold; 
     203} 
     204#mainnav .active :link:hover, #mainnav .active :visited:hover { 
     205    border-right: 1px solid #000; 
     206} 
     207 
     208/* alternative formats */ 
     209#altlinks { clear: both; text-align: center } 
     210#altlinks h3 { font-size: 12px; letter-spacing: normal; margin: 0 } 
     211#altlinks ul { list-style: none; margin: 0; padding: 0 0 1em } 
     212#altlinks li { 
     213    border-right: 1px solid #d7d7d7; 
     214    display: inline; 
     215    font-size: 11px; 
     216    line-height: 1.5; 
     217    padding: 0 1em; 
     218    white-space: nowrap; 
     219} 
     220#altlinks li.last { border-right: none } 
     221#altlinks li :link, #altlinks li :visited { 
     222    background-repeat: no-repeat; 
     223    color: #666; 
     224    border: none; 
     225    padding: 0 0 2px; 
     226} 
  • trac/htdocs/css/code.css

     
    1 div.code { 
    2  background: #f7f7f7; 
    3  border: 1px solid #d7d7d7; 
    4  margin: 1em 1.75em; 
    5  padding: .25em; 
    6  overflow: auto 
    7 } 
    8  
    9 div.code pre { margin: 0; } 
    10  
    11 table.code { 
    12  border: 1px solid #ddd; 
    13  border-spacing: 0; 
    14  border-top: 0; 
    15  empty-cells: show; 
    16  font-size: 12px; 
    17  line-height: 130%; 
    18  padding: 0; 
    19  margin: 0 auto; 
    20  table-layout: fixed; 
    21  width: 100%; 
    22 } 
    23 table.code th { 
    24  border-right: 1px solid #d7d7d7; 
    25  border-bottom: 1px solid #998; 
    26  font-size: 11px; 
    27 } 
    28 table.code th.lineno { width: 4em } 
    29 table.code thead th { 
    30  background: #eee; 
    31  border-top: 1px solid #d7d7d7; 
    32  color: #999; 
    33  padding: 0 .25em; 
    34  text-align: center; 
    35  white-space: nowrap; 
    36 } 
    37 table.code tbody th { 
    38  background: #eed; 
    39  color: #886; 
    40  font-weight: normal; 
    41  padding: 0 .5em; 
    42  text-align: right; 
    43  vertical-align: top; 
    44 } 
    45 table.code tbody th :link, table.code tbody th :visited { 
    46  border: none; 
    47  color: #886; 
    48  text-decoration: none; 
    49 } 
    50 table.code tbody th :link:hover, table.code tbody th :visited:hover { 
    51  color: #000; 
    52 } 
    53 table.code td { 
    54  font: normal 11px monospace; 
    55  overflow: hidden; 
    56  padding: 1px 2px; 
    57  vertical-align: top; 
    58 } 
    59 table.code tr.hilite th { 
    60  background: #ccf; 
    61 } 
    62 table.code tr.hilite td { 
    63  background: #ddf; 
    64 } 
    65 .image-file { background: #eee; padding: .3em } 
    66 .image-file img { background: url(../imggrid.png) } 
    67  
    68 /* Default */ 
    69 .code-block span { font-family: monospace; } 
    70  
    71 /* Comments */ 
    72 .code-comment, .css_comment, .c_comment, .c_commentdoc, .c_commentline, 
    73 .c_commentlinedoc, .h_comment,.pl_commentline, .p_commentblock, 
    74 .p_commentline, .hphp_comment, .hphp_commentblock, .hphp_commentline, 
    75 .yaml_comment { 
    76  color: #998;  
    77  font-style: italic; 
    78 } 
    79  
    80 /* Language keyword */ 
    81 .code-keyword, .pl_word  { color: #789; font-weight: bold } 
    82  
    83 /* Type */ 
    84 .code-type, .c_word, .c_word2, .p_classname, .hphp_classname{ 
    85  color: #468; 
    86  font-weight: bold; 
    87 } 
    88  
    89 /* Function */ 
    90 .code-func, .p_defname { 
    91  color: #900; 
    92  font-weight: bold; 
    93  border-bottom: none; 
    94 } 
    95  
    96 /* Pre-processor */ 
    97 .code-prep, .c_preprocessor, .pl_preprocessor, .yaml_identifier { 
    98  color: #999; 
    99  font-weight: bold; 
    100 } 
    101  
    102 /* Language construct */ 
    103 .code-lang, .p_word { color: #000; font-weight: bold } 
    104  
    105 /* String */ 
    106 .code-string, .c_string, .c_stringeol, .css_doublestring, .css_singlestring, 
    107 .h_singlestring, .h_doublestring, .pl_string, .pl_string_q, .pl_string_qq, 
    108 .pl_string_qr, .pl_string_qw, .pl_string_qx, .pl_backticks, .pl_character, 
    109 .p_string, .p_stringeol, .hphp_string, .hphp_stringeol, .hphp_triple, 
    110 .hphp_tripledouble, .p_character, .p_triple, .p_tripledouble { 
    111  color: #b84; 
    112  font-weight: normal; 
    113 } 
    114  
    115 /* Variable name */ 
    116 .code-var { color: #f9f } 
    117  
    118 /* SilverCity-specific styles */ 
    119 .css_id, .css_class, .css_pseudoclass, .css_tag { color: #900000 } 
    120 .css_directive { color: #009000; font-weight: bold } 
    121 .css_important { color: blue } 
    122 .css_operator { color: #000090; font-weight: bold } 
    123 .css_tag { font-weight: bold } 
    124 .css_unknown_identifier, .css_unknown_pseudoclass { color: red } 
    125 .css_value { color: navy } 
    126 .c_commentdockeyword { color: navy; font-weight: bold } 
    127 .c_commentdockeyworderror { color: red; font-weight: bold } 
    128 .c_character, .c_regex, .c_uuid, .c_verbatim { color: olive } 
    129 .c_number { color: #099 } 
    130 .h_asp { color: #ff0 } 
    131 .h_aspat { color: #ffdf00 } 
    132 .h_attribute { color: teal } 
    133 .h_attributeunknown { color: red } 
    134 .h_cdata { color: #373 } 
    135 .h_entity { color: purple } 
    136 .h_number { color: #099 } 
    137 .h_other { color: purple } 
    138 .h_script, .h_tag, .h_tagend { color: navy } 
    139 .h_tagunknown { color: red } 
    140 .h_xmlend, .h_xmlstart { color: blue } 
    141 .pl_datasection { color: olive } 
    142 .pl_error { color: red; font-weight: bold } 
    143 .pl_hash { color: #000 } 
    144 .pl_here_delim, .pl_here_q, .pl_here_qq, .pl_here_qx, .pl_longquote { color: olive } 
    145 .pl_number { color: #099 } 
    146 .pl_pod { font-style: italic } 
    147 .pl_regex, .pl_regsubst { color: olive } 
    148 .p_number { color: #099 } 
    149 .hphp_character { color: olive } 
    150 .hphp_defname { color: #099; font-weight: bold } 
    151 .hphp_number { color: #099 } 
    152 .hphp_word { color: navy; font-weight: bold } 
    153 .yaml_document { color: gray; font-style: italic } 
    154 .yaml_keyword { color: #808 } 
    155 .yaml_number { color: #800 } 
    156 .yaml_reference { color: #088 } 
    157 .v_comment { color: gray; font-style: italic } 
    158 .v_commentline, .v_commentlinebang { color: red; font-style: italic } 
    159 .v_number, .v_preprocessor { color: #099 } 
    160 .v_string, .v_stringeol { color: olive } 
    161 .v_user{ color: blue; font-weight: bold } 
    162 .v_word, .v_word3 { color: navy; font-weight: bold } 
    163 .v_word2 { color: green; font-weight: bold } 
  • trac/htdocs/css/about.css

     
    11/* About page */ 
    2 #content.about p.copyright { color: #999; font-size: 90%; } 
    3 #content.about h2 { margin-top: 2em; } 
    4 #content.about table { margin-top: 0; width: auto; } 
    5 #content.about table th, #content.about table td { font-size: 90%; } 
     2#x-trac #content.about p.copyright { color: #999; font-size: 90%; } 
     3#x-trac #content.about h2 { margin-top: 2em; } 
     4#x-trac #content.about table { margin-top: 0; width: auto; } 
     5#x-trac #content.about table th, #x-trac #content.about table td { font-size: 90%; } 
    66 
    7 #content.about th { background: #f7f7f0; font-weight: bold; text-align: right; 
    8   vertical-align: top; 
     7#x-trac #content.about th { 
     8    background: #f7f7f0; 
     9    font-weight: bold; 
     10    text-align: right; 
     11    vertical-align: top; 
    912} 
    1013 
    11 #content.about #config th { text-align: left; } 
    12 #content.about #config th.section { text-align: right; } 
    13 #content.about #config th, #content.about #config td { border: 1px solid #ddd; 
    14   padding: 3px; 
     14#x-trac #content.about #config th { text-align: left; } 
     15#x-trac #content.about #config th.section { text-align: right; } 
     16#x-trac #content.about #config th, #x-trac #content.about #config td { 
     17    border: 1px solid #ddd; 
     18    padding: 3px; 
    1519} 
    16 #content.about #config td.value { font-family: monospace; } 
    17 #content.about #config tr.modified td.value { font-weight: bold; } 
    18 #content.about #config td.doc { padding: 3px 1em; } 
     20#x-trac #content.about #config td.value { font-family: monospace; } 
     21#x-trac #content.about #config tr.modified td.value { font-weight: bold; } 
     22#x-trac #content.about #config td.doc { padding: 3px 1em; } 
  • trac/htdocs/css/report.css

     
    1 @import url(code.css); 
    2  
    3 h1 .numrows, h2 .numrows { 
    4  margin-left: 1em; 
    5  color: #999;  
    6  font-size: 65%;  
    7  font-weight: normal;  
    8 } 
    9 h2 { 
    10  background: #f7f7f7; 
    11  border-bottom: 1px solid #d7d7d7; 
    12  margin: 2em 0 0; 
    13  padding: 0 .33em; 
    14 } 
    15 #report-descr { margin: 0 2em; font-size: 90% } 
    16 #report-notfound { margin: 2em; font-size: 110% } 
    17 #content.report .field { margin: 1em 0; } 
    18 #content.report .field label { padding-bottom: .3em; } 
    19  
    20 #query { clear: right } 
    21 #query fieldset, #query fieldset input, #query fieldset select { font-size: 11px } 
    22 #query fieldset { margin-top: 1em } 
    23 #query .option, #query .option input, #query .option select { font-size: 11px } 
    24 #query .option { float: left; line-height: 2em; margin: .9em 2.5em 0 .5em; padding: 0 0 .1em } 
    25 #query .buttons { float: right; margin-top: .5em } 
    26 #query .buttons input { margin: .5em } 
    27 #query hr { clear: both; margin: 0; visibility: hidden } 
    28  
    29 #filters table { width: 100% } 
    30 #filters tr { height: 2em } 
    31 #filters th, #filters td { padding: 0 .2em; vertical-align: middle } 
    32 #filters th { font-size: 11px; text-align: right; white-space: nowrap; } 
    33 #filters td label { font-size: 11px } 
    34 #filters td.mode { text-align: right } 
    35 #filters td.filter { width: 100% } 
    36 #filters td.filter label { padding-right: 1em } 
    37 #filters td.actions { text-align: right; white-space: nowrap } 
    38  
    39 /* Styles for the report list and the report results table 
    40    (extends the styles for "table.listing") */ 
    41 .reports td.title { width: 100% } 
    42 .reports tbody td :link, .reports tbody td :visited, 
    43 .tickets tbody td :link, .tickets tbody td :visited { display: block } 
    44 .tickets { border-bottom: none } 
    45 .tickets thead th { text-transform: capitalize; white-space: nowrap; } 
    46 .tickets tbody td, .reports tbody td { padding: .1em .5em !important } 
    47 .tickets tbody td a, .reports tbody td a { border-bottom: none } 
    48 .tickets tbody td.id :link, .tickets tbody td.id :visited { 
    49  font-weight: bold; 
    50 } 
    51 .tickets tbody tr:hover { background: #eed; color: #000 } 
    52 .tickets tr.color1-odd  { background: #fdc; border-color: #e88; color: #a22 } 
    53 .tickets tr.color1-even { background: #fed; border-color: #e99; color: #a22 } 
    54 .tickets tr.color2-odd  { background: #ffb; border-color: #eea; color: #880 } 
    55 .tickets tr.color2-even { background: #ffd; border-color: #dd8; color: #880 } 
    56 .tickets tr.color3-odd  { background: #fbfbfb; border-color: #ddd; color: #444 } 
    57 .tickets tr.color3-even { background: #f6f6f6; border-color: #ccc; color: #333 } 
    58 .tickets tr.color4-odd { background: #e7ffff; border-color: #cee; color: #099 } 
    59 .tickets tr.color4-even { background: #dff; border-color: #bee; color: #099 } 
    60 .tickets tr.color5-odd { background: #e7eeff; border-color: #cde; color: #469 } 
    61 .tickets tr.color5-even { background: #dde7ff; border-color: #cde; color: #469 } 
    62 .tickets tr.color6-odd  { background: #f0f0f0; border-color: #ddd; color: #888 } 
    63 .tickets tr.color6-even { background: #f7f7f7; border-color: #ddd; color: #888 } 
    64 .tickets tr.color6-odd a, .color6-even a { color: #b66 } 
    65 .tickets tbody tr.fullrow td, .tickets tbody td.fullrow { 
    66  border: none; 
    67  color: #333; 
    68  background: transparent; 
    69  padding: 0 1em 2em 2em !important; 
    70  font-size: 85%; 
    71 } 
    72 .tickets tbody tr.fullrow:hover { background: transparent !important } 
    73 .tickets .fullrow :link, .tickets .fullrow :visited { display: inline } 
    74 .tickets .fullrow .meta { color: #999; margin-bottom: -.5em; margin-left: -1em } 
    75 .tickets .fullrow hr { display: none } 
    76  
    77 /* Query results table */ 
    78 table.tickets tbody tr.added td { font-weight: bold } 
    79 table.tickets tbody tr.changed td { font-style: italic } 
    80 table.tickets tbody tr.removed td { color: #999 } 
    81 table.tickets tbody tr.prio1 { background: #fdc; border-color: #e88 } 
    82 table.tickets tbody tr.even.prio1 { background: #fed; border-color: #e99 } 
    83 table.tickets tbody tr.prio2 { background: #ffb; border-color: #eea } 
    84 table.tickets tbody tr.even.prio2 { background: #ffd; border-color: #dd8 } 
    85 table.tickets tbody tr.prio3  { background: #fbfbfb; border-color: #ddd } 
    86 table.tickets tbody tr.even.prio3 { background: #f6f6f6; border-color: #ccc } 
    87 table.tickets tbody tr.prio4 { background: #e7ffff; border-color: #cee } 
    88 table.tickets tbody tr.even.prio4 { background: #dff; border-color: #bee } 
    89 table.tickets tbody tr.prio5 { background: #e7eeff; border-color: #cde } 
    90 table.tickets tbody tr.even.prio5 { background: #dde7ff } 
    91 table.tickets tbody tr.prio6 { background: #f0f0f0; border-color: #ddd } 
    92 table.tickets tbody tr.even.prio6 { background: #f7f7f7 } 
  • trac/htdocs/css/jinjastyle.css

     
     1/** 
     2 * Colors / Backgrounds for the default design 
     3 */ 
     4 
     5/* Global Styles */ 
     6 
     7a.ext-link .icon { 
     8    background: url(../extlink.gif) left center no-repeat; 
     9    padding-left: 16px; 
     10} 
     11 
     12* html a.ext-link .icon { display: inline-block; } 
     13 
     14/* Anchors */ 
     15.anchor:link, .anchor:visited { 
     16    color: #d7d7d7; 
     17    text-decoration: none; 
     18} 
     19.anchor:hover { 
     20    background-color: #eee; 
     21} 
     22 
     23/* Forms */ 
     24input, textarea, select { margin: 2px } 
     25input, select { vertical-align: middle } 
     26input[type=button], input[type=submit], input[type=reset] { 
     27    background: #eee; 
     28    color: #222; 
     29    border: 1px outset #ccc; 
     30    padding: .1em .5em; 
     31} 
     32input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover { 
     33    background: #ccb; 
     34} 
     35input[type=button][disabled], input[type=submit][disabled], 
     36input[type=reset][disabled] { 
     37    background: #f6f6f6; 
     38    border-style: solid; 
     39    color: #999; 
     40} 
     41input[type=text], input.textwidget, textarea { border: 1px solid #d7d7d7 } 
     42input[type=text], input.textwidget { padding: .25em .5em } 
     43input[type=text]:focus, input.textwidget:focus, textarea:focus { 
     44    border: 1px solid #886; 
     45} 
     46option { border-bottom: 1px dotted #d7d7d7 } 
     47fieldset { border: 1px solid #d7d7d7; padding: .5em; margin: 1em 0 } 
     48form p.hint { color: #666; font-size: 85%; font-style: italic; margin: .5em 0; 
     49    padding-left: 1em; 
     50} 
     51fieldset.iefix { 
     52    background: transparent; 
     53    border: none; 
     54    padding: 0; 
     55    margin: 0; 
     56} 
     57* html fieldset.iefix { width: 98% } 
     58fieldset.iefix p { margin: 0 } 
     59legend { color: #999; padding: 0 .25em; font-size: 90%; font-weight: bold } 
     60label.disabled { color: #d7d7d7 } 
     61.buttons { margin: .5em .5em .5em 0 } 
     62.buttons form, .buttons form div { display: inline } 
     63.buttons input { margin: 1em .5em .1em 0 } 
     64.inlinebuttons input {  
     65    font-size: 70%; 
     66    border-width: 1px; 
     67    border-style: dotted; 
     68    margin: 0; 
     69    padding: 0.1em; 
     70    background: none; 
     71} 
     72 
     73/* Navigation Bars */ 
     74.nav h2, .nav hr { 
     75    display: none; 
     76} 
     77#mainnav ul { 
     78    font-size: 13px; 
     79    list-style: none; 
     80    margin: 0; 
     81    text-align: right; 
     82} 
     83#mainnav li { 
     84    border-right: 1px solid #d7d7d7; 
     85    display: inline; 
     86    padding: 0 .75em; 
     87    white-space: nowrap; 
     88} 
     89#mainnav li.last { 
     90    border-right: none; 
     91} 
     92 
     93#ctxtnav ul { 
     94    float: right; 
     95    font-size: 12px; 
     96    margin: 40px 0 0 30px; 
     97    padding: 10px 10px 10px 20px; 
     98    border: 1px solid #ccc; 
     99    background-color: #f2f2f2; 
     100} 
     101 
     102#ctxtnav li { 
     103    padding: 0; 
     104    margin: 0; 
     105} 
     106 
     107/* alternative formats */ 
     108#altlinks { clear: both; text-align: center } 
     109#altlinks h3 { font-size: 12px; letter-spacing: normal; margin: 0 } 
     110#altlinks ul { list-style: none; margin: 0; padding: 0 0 1em } 
     111#altlinks li { 
     112    border-right: 1px solid #d7d7d7; 
     113    display: inline; 
     114    font-size: 11px; 
     115    line-height: 1.5; 
     116    padding: 0 1em; 
     117    white-space: nowrap; 
     118} 
     119#altlinks li.last { border-right: none } 
     120#altlinks li :link, #altlinks li :visited { 
     121    background-repeat: no-repeat; 
     122    color: #666; 
     123    border: none; 
     124    padding: 0 0 2px; 
     125} 
  • trac/htdocs/css/prefs.css

     
    1 #content.prefs #tabs { list-style: none; margin: 2em 1em 0; padding: 1px; } 
    2 #content.prefs #tabs li { background: #e6e6e6; border: 1px solid; 
    3   border-color: #ccc #666 #ccc #ccc; color: #666; position: relative; 
    4   bottom: -1px; float: left; font-size: 90%; margin: 0 .5em; 
    5   padding: .2em 1em .3em; 
    6 } 
    7 #content.prefs #tabs :link, #content.prefs #tabs :visited { 
    8   border: none; color: #999; 
    9 } 
    10 #content.prefs #tabs :link:hover, #content.prefs #tabs :visited:hover { 
    11   background: transparent; color: #333; 
    12 } 
    13 #content.prefs #tabs li.active { background: #fff; 
    14   border-bottom: 1px solid #fff; 
    15 } 
    16 #content.prefs #tabs #tab_advanced { float: right; } 
    17 #content.prefs #tabcontent { background: url(../vgradient.png) 0 1px repeat-x; 
    18   border-top: 1px solid #ccc; clear: left; padding: 20px 5px; 
    19 } 
    20 * html #content.prefs #tabcontent { padding-top: 0; } 
    21  
    22 #content.prefs div.field { margin-bottom: 1em; } 
    23 #content.prefs tr.field th { text-align: right; vertical-align: middle; 
    24   white-space: nowrap; 
    25 } 
  • trac/htdocs/css/roadmap.css

     
    1 /* General styles for the progress bars */ 
    2 table.progress { 
    3  border: 1px solid #d7d7d7; 
    4  border-collapse: collapse; 
    5  border-spacing: 0; 
    6  float: left; 
    7  margin: 0; 
    8  padding: 0; 
    9  empty-cells: show; 
    10 } 
    11 table.progress a, table.progress :link, table.progress :visited, 
    12 table.progress :link:hover, table.progress :visited:hover { 
    13  border: none; 
    14  display: block; 
    15  width: 100%; 
    16  height: 1.2em; 
    17  padding: 0; 
    18  margin: 0; 
    19  text-decoration: none 
    20 } 
    21 table.progress td { background: #fff; padding: 0 } 
    22 table.progress td.closed { background: #bae0ba } 
    23 table.progress td :hover { background: none } 
    24 p.percent { font-size: 10px; line-height: 2.4em; margin: 0.9em 0 0 } 
    25  
    26 /* Styles for the roadmap view */ 
    27 ul.milestones { margin: 2em 0 0; padding: 0 } 
    28 li.milestone { list-style: none; margin-bottom: 4em } 
    29 .milestone .info { white-space: nowrap } 
    30 .milestone .info h2 { 
    31  background: #f7f7f7; 
    32  border-bottom: 1px solid #d7d7d7; 
    33  margin: 0; 
    34 } 
    35 .milestone .info h2 :link, .milestone .info h2 :visited { 
    36  color: #000; 
    37  display: block; 
    38  border-bottom: none; 
    39 } 
    40 .milestone .info h2 :link:hover, .milestone .info h2 :visited:hover { 
    41  color: #000; 
    42 } 
    43 .milestone .info h2 em { color: #b00; font-style: normal } 
    44 .milestone .info .date { 
    45  color: #888; 
    46  font-size: 11px; 
    47  font-style: italic; 
    48  margin: 0; 
    49 } 
    50 .milestone .info .progress { margin: 1em 1em 0; width: 40em; max-width: 70% } 
    51 .milestone .info dl { 
    52  font-size: 10px; 
    53  font-style: italic; 
    54  margin: 0 1em 2em; 
    55  white-space: nowrap; 
    56 } 
    57 .milestone .info dt { display: inline; margin-left: .5em } 
    58 .milestone .info dd { display: inline; margin: 0 1em 0 .5em } 
    59 .milestone .description { margin-left: 1em } 
    60  
    61 /* Styles for the milestone view */ 
    62 .milestone .date { color: #888; font-style: italic; margin: 0 } 
    63 .milestone .description { margin: 1em 0 2em } 
    64  
    65 /* Styles for the milestone statistics table */ 
    66 #stats { float: right; margin: 0 0 2em 2em; width: 400px; max-width: 40% } 
    67 #stats legend { white-space: nowrap } 
    68 #stats table { border-collapse: collapse; width: 100% } 
    69 #stats th, #stats td { font-size: 10px; padding: 0; white-space: nowrap } 
    70 #stats th { text-align: right; } 
    71 #stats th :link, #stats th :visited { border: none } 
    72 #stats td { padding-left: 0.5em; width: 100% } 
    73 #stats td table.progress { margin: 3px 4px 3px 0 } 
    74 #stats td table.progress td { padding: 0 } 
    75 #stats td p.percent { line-height: 1.2em; margin-top: 3px } 
    76  
    77 /* Styles for the milestone edit form */ 
    78 #edit fieldset { margin: 1em 0 } 
    79 #edit em { color: #888; font-size: smaller } 
    80 #edit .disabled em { color: #d7d7d7 } 
    81 #edit .field { margin-top: 1.3em } 
    82 #edit label { padding-left: .2em } 
    83 #edit textarea#description { width: 97% } 
  • trac/htdocs/css/browser.css

     
    1 #prefs { margin-top: -0.6em } 
    2 * html #prefs { width: 34em } /* Set width only for IE */ 
    3 #prefs fieldset { margin: 0; } 
    4 #prefs fieldset label { display: block } 
    5 #prefs .buttons { margin-top: -2.3em } 
    6 #prefs .choice {  
    7  float: left;  
    8  margin: 0 .6em 0 .3em; 
    9  border-right: 1px dotted #d7d7d7; 
    10 } 
    11  
    12 #file-legend { margin-top: 3em; } 
    13  
    14 /* Browser */ 
    15 h1 { margin: 0; padding: 0 0 .5em } 
    16 h1 :link, h1 :visited, h1 .filename { border: none; padding: 0 .2em } 
    17 h1 :link, h1 :visited { color: #b00 } 
    18 h1 .first:link, h1 .first:visited { color: #998 } 
    19 h1 .sep { color: #666; padding: 0 .1em } 
    20  
    21 #jumprev, #jumploc { float: right; font-size: 10px; margin: 0 0 0.6em } 
    22 #jumprev form, #jumploc form { margin: 0 } 
    23 #jumprev input, #jumploc select, #jumploc input {  
    24   font-size: 10px;  
    25   margin: 0;  
    26 } 
    27 #jumploc div.buttons { margin: 0;} 
    28 #jumploc { margin-right: 2em;} 
    29  
    30 /* Browser file annotations */ 
    31 table.code { border-collapse: collapse; } 
    32 table.code th.blame { width: 5em; } 
    33 table.code th.blame a { color: #ddd; } 
    34  
    35 div.message {  
    36   background: #ccf; 
    37   border: 2px ridge #999; 
    38   margin: 0; 
    39   padding: 8px;  
    40   /* Note: border width and padding must be compensated for in the placement */ 
    41 } 
    42  
    43 /* Styles for the directory entries table 
    44    (extends the styles for "table.listing") */ 
    45 #dirlist { margin-top: 0 } 
    46 #dirlist td.rev, #dirlist td.age, #dirlist td.change { 
    47  color: #888; 
    48  white-space: nowrap; 
    49  vertical-align: baseline; 
    50 } 
    51 #dirlist td.rev { 
    52  font-family: monospace; 
    53  letter-spacing: -0.08em; 
    54  font-size: 90%; 
    55  text-align: right; 
    56 } 
    57 #dirlist td.size {   
    58  color: #888; 
    59  white-space: nowrap; 
    60  text-align: right; 
    61  vertical-align: middle; 
    62  font-size: 70%; 
    63 } 
    64 #dirlist td.age { 
    65  border-width: 0 0 2px 0; 
    66  border-style: solid; 
    67  font-size: 85%; 
    68 } 
    69 #dirlist td.name { width: 100% } 
    70 #dirlist td.name a, #dirlist td.name span { 
    71  background-position: 0% 50%; 
    72  background-repeat: no-repeat; 
    73  padding-left: 20px; 
    74 } 
    75 #dirlist td.name a.parent { background-image: url(../parent.png) } 
    76 #dirlist td.name a.dir { background-image: url(../folder.png) } 
    77 #dirlist td.name a.file { background-image: url(../file.png) } 
    78 #dirlist td.name a, #dirlist td.rev a { border-bottom: none; display: block } 
    79 #dirlist td.rev { text-align: right } 
    80 #dirlist td.change { font-size: 85%; vertical-align: middle; white-space: nowrap } 
    81  
    82 /* Style for the ''View Changes'' button and the diff preparation form */ 
    83 #anydiff { margin: 0 0 1em; float: left } 
    84 #anydiff form, #anydiff div, #anydiff h2 { display: inline } 
    85 #anydiff form th { text-align: right } 
    86 #anydiff input {  vertical-align: baseline; margin: 0 -0.5em 0 1em } 
    87 @media print { 
    88  #anydiff form { display:  none } 
    89 } 
    90  
    91 /* Log */ 
    92 tr.diff input { padding: 0 1em; margin: 0 } 
    93  
    94 @media print {  
    95  th.diff, td.diff { display: none } 
    96 } 
    97  
    98 /* Styles for the revision log table (extends the styles for "table.listing") */ 
    99 #chglist { margin-top: 0 } 
    100 #chglist td.change span {  
    101  border: 1px solid #999; 
    102  display: block; 
    103  margin: .2em .5em 0 0; 
    104  width: .8em; height: .8em; 
    105 } 
    106 #chglist td.diff { white-space: nowrap } 
    107 #chglist td.change .comment { display: none } 
    108 #chglist td.old_path { font-style: italic } 
    109 #chglist td.date { 
    110  font-size: 85%; 
    111  vertical-align: top; 
    112  padding-top: 0.55em; 
    113  white-space: nowrap; 
    114 } 
    115 #chglist td.author { font-size: 85%; vertical-align: top; padding-top: 0.55em } 
    116 #chglist td.rev, #chglist td.chgset {  
    117  font-family: monospace;   
    118  letter-spacing: -0.08em; 
    119  font-size: 90%; 
    120  text-align: right;  
    121 } 
    122 #chglist td.rev a, #chglist td.chgset a { border-bottom: none } 
    123 #chglist td.summary {  
    124  width: 100%;  
    125  font-size: 85%;  
    126  vertical-align: middle;  
    127  white-space: nowrap  
    128 } 
    129 #chglist .verbose td.summary { 
    130  border: none; 
    131  color: #333; 
    132  padding: .5em 1em 1em 2em; 
    133  font-size: 90%;  
    134  white-space: normal  
    135 } 
    136  
    137 #chglist td.summary * { margin-top: 0; margin-bottom: 0 } 
    138  
    139 #paging { margin: 1em 0 } 
    140  
    141 /* Styles for the revision info in the file view (see also trac.css) */ 
    142 #info { margin: 0; } 
    143 #info .props { 
    144  color: #666; 
    145  list-style: square; 
    146  margin: 0 0 .4em 1.6em; 
    147  padding: 0; 
    148 } 
    149 #info .props li { padding: 0; overflow: auto; } 
    150  
    151 /* Styles for the HTML preview */ 
    152 #preview { background: #fff; clear: both; margin: 0 } 
    153 #preview .code-block { border-top: 1px solid #999; margin: 0 } 
    154 #preview .image-file { overflow: hidden } 
    155 #preview .image-file img { max-width: 100% } 
  • trac/htdocs/css/ticket.css

     
    1 @import url(code.css); 
    2  
    3 #content.ticket { width: 700px; max-width: 100% } 
    4  
    5 #newticket #field-description { width: 100% } 
    6 #newticket #properties { width: 100% } 
    7  
    8 #ticket { 
    9  background: #ffd; 
    10  border: 1px outset #996; 
    11  margin-top: 1em; 
    12  padding: .5em 1em; 
    13  position: relative; 
    14 } 
    15  
    16 div#ticket.ticketdraft { 
    17  background: #f4f4f4 url(../draft.png); 
    18 } 
    19 .ticketdraft { 
    20  background: #f4f4f4 url(../draft.png); 
    21  border: 1px outset #996; 
    22  padding: 0 .2em; 
    23 } 
    24  
    25 h1 .status { color: #444; text-transform: lowercase; } 
    26 #ticket h2.summary { margin: 0 0 .8em 0 } 
    27 #ticket .date { color: #996; float: right; font-size: 85%; position: relative } 
    28 #ticket .date p { margin: 0 } 
    29  
    30 #ticket table.properties { 
    31  border-top: 1px solid #dd9; 
    32  border-collapse: collapse; 
    33  table-layout: fixed; 
    34  width: 100%; 
    35 } 
    36 #ticket table.properties tr { border-bottom: 1px dotted #eed } 
    37 #ticket table.properties td, #ticket table.properties th { 
    38  font-size: 80%; 
    39  padding: .5em 1em; 
    40  vertical-align: top; 
    41 } 
    42 #ticket table.properties th { 
    43  color: #663; 
    44  font-weight: normal; 
    45  text-align: left; 
    46  width: 20%; 
    47 } 
    48 #ticket table.properties td { width: 30% } 
    49 #ticket table.properties .description { border-top: 1px solid #dd9 } 
    50  
    51  
    52 #ticket .description h3 { 
    53  border-bottom: 1px solid #dd9; 
    54  color: #663; 
    55  font-size: 100%; 
    56  font-weight: normal; 
    57 } 
    58 #ticket .description h3 .lastmod { 
    59  font-size: 90%; 
    60 } 
    61 #ticket .inlinebuttons {  
    62  float: right; 
    63  position: relative; 
    64  bottom: 0.3em; 
    65 } 
    66  
    67 #changelog { border: 1px outset #996; padding: 1em } 
    68 #changelog h3 { 
    69  border-bottom: 1px solid #d7d7d7; 
    70  color: #999; 
    71  font-size: 100%; 
    72  font-weight: normal; 
    73 } 
    74 #changelog .threading, #changelog .inlinebuttons { 
    75  float: right; 
    76  position: relative; 
    77  bottom: 0.3em; 
    78 } 
    79  
    80 #changelog .changes { list-style: square; margin-left: 2em; padding: 0 } 
    81 #changelog .comment { margin-left: 2em } 
    82  
    83 form .field { margin-top: .75em; width: 100% } 
    84 form #comment { width: 100% } 
    85  
    86 #properties { white-space: nowrap; line-height: 160%; padding: .5em } 
    87 #properties table { border-spacing: 0; width: 100%; } 
    88 #properties table th { 
    89  padding: .4em; 
    90  text-align: right; 
    91  width: 20%; 
    92  vertical-align: top; 
    93 } 
    94 #properties table th.col2 { border-left: 1px dotted #d7d7d7 } 
    95 #properties table td { vertical-align: middle; width: 30% } 
    96 #properties table td.fullrow { vertical-align: middle; width: 80% } 
    97  
    98 #action { line-height: 2em } 
    99  
    100 fieldset.radio { border: none; margin: 0; padding: 0 } 
    101 fieldset.radio legend { 
    102  color: #000; 
    103  float: left; 
    104  font-size: 100%; 
    105  font-weight: normal; 
    106  padding: 0 1em 0 0; 
    107 } 
    108 fieldset.radio label { padding-right: 1em } 
  • trac/templates/trac_site.html

     
     1<html xmlns="http://www.w3.org/1999/xhtml" 
     2      xmlns:py="http://genshi.edgewall.org/" 
     3      xmlns:xi="http://www.w3.org/2001/XInclude" py:strip=""> 
     4  <head py:match="head"> 
     5    ${select('*')} 
     6    <link rel="stylesheet" href="${trac.theme.get_chrome_url('css/tracstyle.css')}" /> 
     7  </head> 
     8  <body py:match="body"> 
     9    <div id="banner"> 
     10      <div id="header" py:choose=""> 
     11        <a py:when="chrome.logo.src" id="logo" href="${chrome.logo.link}"><img 
     12          src="${chrome.logo.src}" alt="${chrome.logo.alt}" /></a> 
     13        <h1 py:otherwise=""><a href="${chrome.logo.link}">${project.name}</a></h1> 
     14      </div> 
     15      ${select('form[@id="search"]')} 
     16      ${select('div[@id="metanav"]')} 
     17    </div> 
     18    ${select('div[@id="mainnav"]')} 
     19 
     20    <div id="main"> 
     21      <div id="x-trac"> 
     22        ${select('div[@id="main"]/*')} 
     23        ${select('div[@id="altlinks"]')} 
     24      </div> 
     25    </div> 
     26 
     27    ${select('div[@id="footer"]')} 
     28  </body> 
     29</html> 
  • trac/templates/layout.html

     
    3636  </div> 
    3737 
    3838  <body py:match="body"> 
    39     <div id="banner"> 
    40       <div id="header" py:choose=""> 
    41         <a py:when="chrome.logo.src" id="logo" href="${chrome.logo.link}"><img 
    42           src="${chrome.logo.src}" alt="${chrome.logo.alt}" /></a> 
    43         <h1 py:otherwise=""><a href="${chrome.logo.link}">${project.name}</a></h1> 
    44       </div> 
    45       <form py:if="'SEARCH_VIEW' in perm" id="search" 
    46             action="${href.search()}" method="get"><div> 
    47         <label for="proj-search">Search:</label> 
    48         <input type="text" id="proj-search" name="q" size="18" accesskey="f" value="" /> 
    49         <input type="submit" value="Search" /> 
    50         <input type="hidden" name="wiki" value="on" /> 
    51         <input type="hidden" name="changeset" value="on" /> 
    52         <input type="hidden" name="ticket" value="on" /> 
    53       </div></form> 
    54       ${navigation('metanav')} 
    55     </div> 
     39     
     40    <form py:if="'SEARCH_VIEW' in perm" id="search" 
     41          action="${href.search()}" method="get"><div> 
     42      <label for="proj-search">Search:</label> 
     43      <input type="text" id="proj-search" name="q" size="18" accesskey="f" value="" /> 
     44      <input type="submit" value="Search" /> 
     45      <input type="hidden" name="wiki" value="on" /> 
     46      <input type="hidden" name="changeset" value="on" /> 
     47      <input type="hidden" name="ticket" value="on" /> 
     48    </div></form> 
     49     
     50    ${navigation('metanav')} 
    5651    ${navigation('mainnav')} 
    5752 
    5853    <div id="main"> 
     
    6560      </script> 
    6661      <script py:for="script in chrome.late_scripts" 
    6762              type="${script.type}" src="${script.href}"></script> 
     63    </div> 
    6864 
    69       <div id="altlinks" py:if="'alternate' in chrome.links"> 
    70         <h3>Download in other formats:</h3> 
    71         <ul> 
    72           <li py:for="idx, link in enumerate(chrome.links.alternate)" 
    73               class="${first_last(idx, chrome.links.alternate)}"> 
    74             <a rel="nofollow" href="${link.href}" class="${link['class']}" 
    75                py:content="link.title" /> 
    76           </li> 
    77         </ul> 
    78       </div> 
     65    <div id="altlinks" py:if="'alternate' in chrome.links"> 
     66      <h3>Download in other formats:</h3> 
     67      <ul> 
     68        <li py:for="idx, link in enumerate(chrome.links.alternate)" 
     69            class="${first_last(idx, chrome.links.alternate)}"> 
     70          <a rel="nofollow" href="${link.href}" class="${link['class']}" 
     71             py:content="link.title" /> 
     72        </li> 
     73      </ul> 
    7974    </div> 
    8075 
    8176    <div id="footer"><hr/> 
     
    9085    </div> 
    9186  </body> 
    9287 
    93   <xi:include href="site.html"><xi:fallback /></xi:include> 
     88  <xi:include href="${trac.theme.get_theme_site_template()}"><xi:fallback /></xi:include> 
    9489 
    9590</html> 
  • trac/templates/jinja_site.html

     
     1<html xmlns="http://www.w3.org/1999/xhtml" 
     2      xmlns:py="http://genshi.edgewall.org/" 
     3      xmlns:xi="http://www.w3.org/2001/XInclude" py:strip=""> 
     4  <head py:match="head"> 
     5    ${select('*')} 
     6    <link rel="stylesheet" href="http://jinja.pocoo.org/static/style.css" type="text/css" /> 
     7    <link rel="stylesheet" href="${trac.theme.get_chrome_url('css/jinjastyle.css')}" type="text/css" /> 
     8  </head> 
     9  <body py:match="body"> 
     10    <div id="header"> 
     11      <h1><span>Jinja</span></h1> 
     12    </div> 
     13    <ul id="navigation"> 
     14      <li><a href="/">Index</a></li> 
     15      <li><a href="/faq">FAQ</a></li> 
     16      <li><a href="/documentation/">Documentation</a></li> 
     17      <li><a href="/download">Download</a></li> 
     18      <li><a href="/contribute">Contribute</a></li> 
     19      <li class="active"><a href="/trac/">Trac</a></li> 
     20    </ul> 
     21    <div id="content"> 
     22      <div id="contentwrapper"> 
     23        ${select('div[@id="mainnav"]')} 
     24        <div id="x-trac"> 
     25          ${select('div[@id="main"]/*')} 
     26          ${select('div[@id="altlinks"]')} 
     27        </div> 
     28      </div> 
     29    </div> 
     30    <div id="footer"> 
     31      &copy; Copyright 2007 by the <a href="http://www.pocoo.org/">Pocoo</a> Team. 
     32    </div> 
     33  </body> 
     34</html> 
  • trac/web/theming.py

     
     1# -*- coding: utf-8 -*- 
     2# 
     3# Copyright (C) 2004-2007 Edgewall Software 
     4# Copyright (C) 2007 Armin Ronacher <armin.ronacher@active-4.com> 
     5# All rights reserved. 
     6# 
     7# This software is licensed as described in the file COPYING, which 
     8# you should have received as part of this distribution. The terms 
     9# are also available at http://trac.edgewall.org/wiki/TracLicense. 
     10# 
     11# This software consists of voluntary contributions made by many 
     12# individuals. For the exact contribution history, see the revision 
     13# history and logs, available at http://trac.edgewall.org/log/. 
     14# 
     15# Author: Armin Ronacher <armin.ronacher@active-4.com> 
     16 
     17from trac.core import Interface, Component, implements 
     18 
     19 
     20class IThemeProvider(Interface): 
     21    """ 
     22    The interface for all theme providers. Pretty basic, 
     23    just provides the most important things 
     24    """ 
     25 
     26    def get_theme_htdocs_name(): 
     27        """ 
     28        Return the name of the htdocs folder. Every theme 
     29        can implement the `ITemplateProvider` in order to 
     30        get it's own theme folder, however there are two 
     31        special ones: 
     32 
     33        - `common`      the trac htdocs folder 
     34        - `site`        the htdocs folder in the trac instance 
     35        """ 
     36 
     37    def get_theme_site_template(): 
     38        """ 
     39        Return the name of the theme site template that is 
     40        used. The site template places the interface 
     41        elements and overrides them. 
     42        """ 
     43 
     44 
     45class CustomTheme(Component): 
     46    implements(IThemeProvider) 
     47 
     48    # IThemeProvider 
     49    def get_theme_htdocs_id(self): 
     50        return 'site' 
     51 
     52    def get_theme_site_template(self): 
     53        return 'site.html' 
     54 
     55 
     56class TracTheme(Component): 
     57    implements(IThemeProvider) 
     58 
     59    # IThemeProvider 
     60    def get_theme_htdocs_id(self): 
     61        return 'common' 
     62 
     63    def get_theme_site_template(self): 
     64        return 'trac_site.html' 
     65 
     66 
     67class JinjaTheme(Component): 
     68    implements(IThemeProvider) 
     69    #XXX: temporary, just too lazy to create a plugin 
     70 
     71    def get_theme_htdocs_id(self): 
     72        return 'common' 
     73 
     74    def get_theme_site_template(self): 
     75        return 'jinja_site.html' 
     76 
     77 
     78class ThemeController(object): 
     79    """ 
     80    Class passed to the templates in order to help the 
     81    designer. 
     82    """ 
     83 
     84    def __init__(self, req, theme): 
     85        self.req = req 
     86        self.theme = theme 
     87 
     88    def get_chrome_url(self, *files): 
     89        return self.req.href.chrome(self.theme.get_theme_htdocs_id(), *files) 
     90 
     91    def get_theme_site_template(self): 
     92        return self.theme.get_theme_site_template() 
  • trac/web/chrome.py

     
    4343from trac.web.href import Href 
    4444from trac.wiki import IWikiSyntaxProvider 
    4545from trac.wiki.formatter import format_to_html, format_to_oneliner 
     46from trac.web.theming import ThemeController, IThemeProvider 
    4647 
    4748 
    4849def add_link(req, rel, href, title=None, mimetype=None, classname=None): 
     
    165166         
    166167        (''since 0.11'')""") 
    167168 
     169    theme = ExtensionOption('trac', 'theme', 
     170                            IThemeProvider, 'TracTheme', 
     171        """Name of the theme trac should use.""") 
     172 
    168173    auto_reload = Option('trac', 'auto_reload', False, 
    169174        """Automatically reload template files after modification.""") 
    170175 
     
    253258            try: 
    254259                fileobj.write("""<html xmlns="http://www.w3.org/1999/xhtml" 
    255260      xmlns:py="http://genshi.edgewall.org/" py:strip=""> 
    256   <!-- Custom match templates go here --> 
     261  <!-- Custom match templates go here 
     262       If you modify this template you have to set `trac.theme` to 
     263       `CustomTheme` in your trac.ini --> 
    257264</html>""") 
    258265            finally: 
    259266                fileobj.close() 
     
    363370            add_link(fakereq, 'icon', src, mimetype=mimetype) 
    364371            add_link(fakereq, 'shortcut icon', src, mimetype=mimetype) 
    365372 
     373 
    366374        # Logo image 
    367375        chrome['logo'] = self.get_logo_data(req.href) 
    368376 
     
    460468            'version': VERSION, 
    461469            'homepage': 'http://trac.edgewall.org/', # FIXME: use setup data 
    462470            'systeminfo': self.env.systeminfo, 
     471            'theme': ThemeController(req, self.theme) 
    463472        } 
    464473        d['project'] = { 
    465474            'name': self.env.project_name,