source: trunk/web/style/transmission/mobile.scss @ 13755

Last change on this file since 13755 was 13755, checked in by jordan, 9 years ago

(web) #4873 -- fix left margin of the torrent list in the mobile css

File size: 18.3 KB
Line 
1@mixin verticalGradient($topColor, $bottomColor) {
2        background-color: mix($topColor, $bottomColor);
3        background-image: -webkit-gradient(linear, left top, left bottom, from($topColor), to($bottomColor)); 
4        background-image: -webkit-linear-gradient(top, $topColor, $bottomColor); 
5        background-image:    -moz-linear-gradient(top, $topColor, $bottomColor); 
6        background-image:     -ms-linear-gradient(top, $topColor, $bottomColor); 
7        background-image:      -o-linear-gradient(top, $topColor, $bottomColor); 
8        background-image:         linear-gradient(top, $topColor, $bottomColor);
9}
10
11@mixin imageOnVerticalGradient($src, $topColor, $bottomColor) {
12        background-color: mix($topColor, $bottomColor);
13        background-image: url($src); /* fallback */
14        background-image: url($src), -webkit-gradient(linear, left top, left bottom, from($topColor), to($bottomColor)); /* Saf4+, Chrome */
15        background-image: url($src), -webkit-linear-gradient(top, $topColor, $bottomColor); /* Chrome 10+, Saf5.1+ */
16        background-image: url($src), -moz-linear-gradient(top, $topColor, $bottomColor); /* FF3.6+ */
17        background-image: url($src), -ms-linear-gradient(top, $topColor, $bottomColor); /* IE10 */
18        background-image: url($src), -o-linear-gradient(top, $topColor, $bottomColor); /* Opera 11.10+ */
19        background-position: center;
20        background-repeat: no-repeat;
21}
22
23@mixin buttonImage($image-url, $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom) {
24        @include imageOnVerticalGradient($image-url, $idle-color-top, $idle-color-bottom);
25        &:active, &.selected {
26                @include imageOnVerticalGradient($image-url, $active-color-top, $active-color-bottom);
27        }
28}
29
30$nonselected-gradient-top: white;
31$nonselected-gradient-bottom: #BBB;
32$selection-color: #cdcdff;
33$selected-gradient-top: $selection-color;
34$selected-gradient-bottom: white;
35
36@mixin button {
37        cursor: pointer;
38        -moz-user-select: none;
39        -webkit-user-select: none;
40        display: inline-block;
41        border-style: solid;
42        border-color: #aaa;
43        border-width: 1px;
44        padding: 3px;
45}
46
47@mixin roundedBox($radius) {
48        -moz-border-radius: $radius;
49        border-radius: $radius;
50}
51
52@mixin leftRoundedBox($radius) {
53        -moz-border-radius-topleft: $radius;
54        -moz-border-radius-bottomleft: $radius;
55        border-top-left-radius: $radius;
56        border-bottom-left-radius: $radius;
57}
58@mixin rightRoundedBox($radius) {
59        -moz-border-radius-topright: $radius;
60        -moz-border-radius-bottomright: $radius;
61        border-top-right-radius: $radius;
62        border-bottom-right-radius: $radius;
63}
64
65@mixin roundedButton($radius) {
66        @include button;
67        @include roundedBox($radius);
68}
69
70/*--------------------------------------
71 *
72 * G L O B A L
73 *
74 *--------------------------------------*/
75
76html {
77        margin: 0;
78        padding: 0;
79}
80
81body {
82        font: 11px Helvetica, Arial, sans-serif;
83        background: #FFF;
84        text-align: center;
85        margin: 0;
86        padding: 0;
87        width: 100%;
88        overflow-x: hidden;
89        img { border: none; }
90        a { outline: 0; }
91        -webkit-text-size-adjust: none;
92
93        div#torrent_container { min-height: 328px; }
94        div.dialog_container { min-height: 326px; }
95        div#torrent_inspector { min-height: 329px; }
96        &.landscape div#torrent_container {     min-height: 147px; }
97        &.landscape div#dialog_container,
98        &.landscape div#torrent_inspector {     min-height: 143px; }
99}
100
101body.inspector_showing #torrent_filter_bar, body.inspector_showing #torrent_container,
102body.dialog_showing #torrent_filter_bar, body.dialog_showing #torrent_container, body.dialog_showing #torrent_inspector,
103body.prefs_showing #torrent_inspector, body.prefs_showing #torrent_filter_bar, body.prefs_showing #torrent_container,
104body.open_showing #torrent_filter_bar, body.open_showing #torrent_container {
105        display: none !important;
106}
107
108/***
109****
110****  TOOLBAR
111****
112***/
113
114$toolbar-gradient-top: #ddd;
115$toolbar-gradient-bottom: #bbb;
116$toolbar-height: 36px;
117
118div#toolbar
119{
120        width: 100%;
121        height: $toolbar-height;
122        margin: 0px;
123        padding: 2px;
124        border-bottom: 1px solid #AAA;
125        @include verticalGradient($toolbar-gradient-top, $toolbar-gradient-bottom);
126
127        $idle-color-top: $nonselected-gradient-top;
128        $idle-color-bottom: $nonselected-gradient-bottom;
129        $active-color-top: $selected-gradient-top;
130        $active-color-bottom: $selected-gradient-bottom;
131
132        > * {
133                @include button;
134                margin-top: 5px;
135                width: 34px;
136                height: 34px;
137                float: left;
138                border: none;
139                padding: 0px 3px;
140        }
141
142        >div#toolbar-separator {
143                height: 25px;
144                margin-top: 8px;
145                margin-bottom: 5px;
146                border-left: 1px solid #aaa;
147                width: 3px;
148        }
149
150        div#toolbar-open {
151                background: url('images/toolbar-folder.png') no-repeat;
152        }
153        > div#toolbar-remove {
154                background: url('images/toolbar-close.png') no-repeat;
155        }
156        > div#toolbar-start {
157                background: url('images/toolbar-start.png') no-repeat;
158        }
159        > div#toolbar-pause {
160                background: url('images/toolbar-pause.png') no-repeat;
161        }
162        > div#toolbar-start-all {
163                background: url('images/toolbar-start-all.png') no-repeat;
164        }
165        > div#toolbar-pause-all {
166                background: url('images/toolbar-pause-all.png') no-repeat;
167        }
168
169        > div#toolbar-inspector {
170                background: url('images/toolbar-info.png') no-repeat;
171                float: right;
172        }
173
174        > *.disabled {
175                opacity: 0.25;
176        }
177}
178
179/***
180****
181****  STATUSBAR
182****
183***/
184
185$statusbar-gradient-top: #ddd;
186$statusbar-gradient-bottom: #bbb;
187$statusbar-height: 26px;
188
189#statusbar
190{
191        height: $statusbar-height;
192        width: 100%;
193        border-bottom: 1px solid #AAA;
194        overflow: hidden;
195        position: relative;
196        @include verticalGradient($statusbar-gradient-top, $statusbar-gradient-bottom);
197
198        #filter
199        {
200                float: left;
201                margin-left: 5px;
202
203                input#torrent_search {
204                        display: none;
205                }
206
207                #filter-count { margin-left: 8px; }
208        }
209
210        #speed-info
211        {
212                float: right;
213                margin-top: 5px;
214                margin-right: 10px;
215
216                * {
217                        display: inline-block;
218                }
219
220                #speed-up-icon {
221                        margin-left: 8px;
222                        width: 8px;
223                        height: 8px;
224                        background: url('images/arrow-up.png') bottom no-repeat;
225                }
226
227                #speed-dn-icon {
228                        width: 8px;
229                        height: 8px;
230                        background: url('images/arrow-down.png') bottom no-repeat;
231                }
232
233                #speed-up-container, #speed-dn-container {
234                        display: inline;
235                }
236        }
237}
238
239/***
240****
241****  TORRENT CONTAINER
242****
243***/
244
245ul.torrent_list
246{
247        width: 100%;
248        margin: 0;
249        padding: 0;
250        text-align: left;
251        cursor: pointer;
252
253        li.torrent
254        {
255                border-bottom: 1px solid #ccc;
256                padding: 4px 30px 5px 14px;
257                color: #666;
258                background-color: white;
259
260                &.compact { padding: 4px; }
261                &.even { background-color: #F7F7F7; }
262                &.selected { background-color: $selection-color; }
263                &.compact { div.torrent_name { color: black; } }
264
265                // start-stop button
266                a {
267                        display: none;
268                }
269
270                div.torrent_name
271                {
272                        font-size: 1.3em;
273                        font-weight: bold;
274                        overflow: hidden;
275                        text-overflow: ellipsis;
276                        white-space: nowrap;
277                        color: #222;
278                        margin-top: 2px;
279                        margin-bottom: 2px;
280
281                        &.compact { font-size: 1.0em; font-weight: normal; }
282                        &.paused { font-weight: normal; color: #777; }
283                }
284
285                div.torrent_progress_details,
286                div.torrent_peer_details {
287                        clear: left;
288                        overflow: hidden;
289                        text-overflow: ellipsis;
290                        white-space: nowrap;
291                }
292
293                div.torrent_progress_details.error,
294                div.torrent_peer_details.error {
295                        color: #F00;
296                }
297
298                &.selected div.torrent_progress_details.error,
299                &.selected div.torrent_peer_details.error {
300                        color: #FFF;
301                }
302        }
303
304        /**
305         * Progressbar
306         *
307         * Each progressbar has three elemens: a parent container and two children,
308         * complete and incomplete.
309         *
310         * The only thing needed to set the progressbar percentage is to set
311         * the complete child's width as a percentage. This is because incomplete
312         * is pinned to the full width and height of the parent, and complete
313         * is pinned to the left side of the parent and has a higher z-index.
314         *
315         * The progressbar has different colors depending on its state, so there
316         * are five 'decorator' classNames: paused, queued, magnet, leeching, seeding.
317         */
318        div.torrent_progress_bar_container
319        {
320                height: 10px;
321                position: relative;
322
323                &.compact {
324                        width: 50px;
325                        position: absolute;
326                        right: 10px;
327                        margin-top: 2px;
328                        /*float: right;*/
329                }
330                &.full {
331                        margin-top: 2px;
332                        margin-bottom: 5px;
333                }
334        }
335        div.torrent_peer_details.compact
336        {
337                margin-top: 2px;
338                margin-right: 65px; /* leave room on the right for the progressbar */
339                float: right; /* pins it next to progressbar & forces torrent_name to ellipsize when it bumps up against this div */
340        }
341        div.torrent_progress_bar
342        {
343                height: 100%;
344                position: absolute;
345                top: 0px;
346                left: 0px;
347                background-image: url('images/progress.png');
348                background-repeat: repeat-x;
349                border: 1px solid #888;
350
351                &.complete                   { z-index: 2; }
352                &.complete.paused            { background-position: left -30px; border-color: #989898; }
353                &.complete.magnet            { background-position: left -20px; border-color: #CFCFCF; }
354                &.complete.leeching          { background-position: left   0px; border-color: #3D9DEA; }
355                &.complete.leeching.queued   { background-position: left -70px; border-color: #889CA5; }
356                &.complete.seeding           { background-position: left -40px; border-color: #269E30; }
357                &.complete.seeding.queued    { background-position: left -60px; border-color: #8A998D; }
358                &.incomplete                 { z-index: 1; width: 100%; }
359                &.incomplete.paused          { background-position: left -20px; border-color: #CFCFCF; }
360                &.incomplete.magnet          { background-position: left -50px; border-color: #D47778; }
361                &.incomplete.leeching        { background-position: left -20px; border-color: #CFCFCF; }
362                &.incomplete.leeching.queued { background-position: left -80px; border-color: #C4C4C4; }
363                &.incomplete.seeding         { background-position: left -10px; border-color: #29AD35; }
364        }
365}
366
367/***
368****
369****  PREFERENCES
370****
371***/
372
373#prefs-dialog.ui-tabs .ui-tabs-panel {
374        padding: 0px;
375        -moz-user-select: none;
376        -webkit-user-select: none;
377}
378
379.prefs-section
380{
381        margin: 10px;
382        text-align: left;
383
384        > * {
385                padding-top: 8px;
386                padding-left: 8px;
387        }
388
389        .title {
390                font-weight: bold;
391                font-size: larger;
392                padding-left: 0px;
393        }
394
395        .row {
396                .key {
397                        float: left;
398                        padding-top: 3px;
399                        > * { margin-left: 0px; }
400                }
401                .value {
402                        margin-left: 150px;
403                        > * { width: 100%; }
404                }
405        }
406
407        .checkbox-row {
408                > input { margin: 0px; }
409                > label { margin-left: 5px; }
410        }
411
412        #alternative-speed-limits-title {
413                padding-left: 18px;
414                background: transparent url('images/blue-turtle.png') no-repeat;
415        }
416}
417
418/***
419****
420****  TORRENT INSPECTOR
421****
422***/
423
424div#torrent_inspector
425{
426        overflow: auto;
427        text-align: left;
428        padding: 15px;
429        top: 0;
430        position: relative;
431        width: 100%;
432        z-index: 2;
433
434        $idle-color-top: $nonselected-gradient-top;
435        $idle-color-bottom: $nonselected-gradient-bottom;
436        $active-color-top: $selected-gradient-top;
437        $active-color-bottom: $selected-gradient-bottom;
438
439
440        #inspector-tabs-wrapper
441        {
442                width: 100%;
443                overflow: hidden;
444                text-align: center;
445
446                #inspector-tabs
447                {
448                        $border-radius: 5px;
449
450                        display: inline-block;
451
452                        > * {
453                                @include button;
454                                width: 30px;
455                                height: 20px;
456                        }
457
458                        > #inspector-tab-info {
459                                @include leftRoundedBox($border-radius);
460                                @include buttonImage('images/inspector-info.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
461                                border-left-width: 1px;
462                        }
463
464                        > #inspector-tab-peers {
465                                @include buttonImage('images/inspector-peers.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
466                        }
467
468                        > #inspector-tab-trackers {
469                                @include buttonImage('images/inspector-trackers.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
470                        }
471
472                        > #inspector-tab-files {
473                                @include rightRoundedBox($border-radius);
474                                @include buttonImage('images/inspector-files.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
475                        }
476                }
477        }
478
479        #inspector_header
480        {
481                margin-top: 8px;
482
483                #torrent_inspector_name
484                {
485                        font-weight: bold;
486                        font-size: large;
487                }
488        }
489
490        ul.tier_list
491        {
492                margin: 2px 0 8px 0;
493                width: 100%;
494                padding-left: 0px;
495                text-align: left;
496                display: block;
497                cursor: default;
498                list-style-type: none;
499                list-style: none;
500                list-style-image: none;
501                clear: both;
502
503                li {
504                        overflow: hidden;
505                }
506                .tracker_activity {
507                        float: left;
508                        color: #666;
509                        width: 200px;
510                        display: table;
511                        margin-top: 1px;
512                }
513                .tracker_activity div {
514                        padding: 2px;
515                }
516                table {
517                        float: right;
518                        color: #666;
519                }
520                th {
521                        text-align: right;
522                }
523        }
524
525        li.inspector_tracker_entry {
526                padding: 3px 0 3px 2px;
527                display: block;
528
529                &.odd {
530                        background-color: #EEEEEE;
531                }
532        }
533
534        div.tracker_host {
535                font-size: 1.2em;
536                font-weight: bold;
537                color: #222;
538        }
539
540        /* Files Inspector Tab */
541        #inspector_file_list {
542                padding: 0 0 0 0;
543                margin: 0 0 0 0;
544                text-align: left;
545                cursor: default;
546                overflow: hidden;
547        }
548        #inspector_file_list {
549                border-top: 1px solid #888;
550                width: 100%;
551                margin: 6px 0 0 0;
552                padding-top: 6px;
553                padding-bottom: 10px;
554                text-align: left;
555                display: block;
556                cursor: default;
557                list-style-type: none;
558                list-style: none;
559                list-style-image: none;
560                clear: both;
561        }
562        li.inspector_torrent_file_list_entry {
563                padding: 3px 0 3px 2px;
564                display: block;
565                &.skip { color: #666; }
566                &.even { background-color: #F7F7F7; }
567        }
568
569        div.inspector_torrent_file_list_entry_name {
570                font-size: 1.2em;
571                color: black; 
572                display: inline;
573                margin-left: 0px;
574        }
575        li.inspector_torrent_file_list_entry.skip>.inspector_torrent_file_list_entry_name {
576                color: #999;
577        }
578        div.inspector_torrent_file_list_entry_progress {
579                color: #999;
580                margin-left: 20px;
581        }
582
583        ul.single_file li.inspector_torrent_file_list_entry>.file_wanted_control,
584        li.inspector_torrent_file_list_entry.complete>.file_wanted_control {
585                cursor: default;
586        }
587}
588
589/* Peers Inspector Tab */
590#inspector_peers_list {
591        padding: 0 0 0 0;
592        margin: 0 0 0 0;
593        text-align: left;
594        cursor: default;
595        overflow: hidden;
596
597        > div.inspector_group {
598                padding-bottom: 0;
599                margin-bottom: 0;
600        }
601}
602
603table.peer_list {
604        width: 100%;
605        border-collapse: collapse;
606        text-align: left;
607        cursor: default;
608        clear: both;
609        table-layout: fixed;
610
611        .encryptedCol { width: 16px; }
612        .upCol { width: 70px; }
613        .downCol { width: 70px; }
614        .percentCol { width: 30px; padding-right: 5px; text-align: right; }
615        .statusCol { width: 40px; padding-right: 5px; }
616        .addressCol { width: 180px; }
617        .clientCol { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
618}
619
620tr.inspector_peer_entry
621{
622        div.encrypted-peer-cell
623        {
624                width: 16px;
625                height: 16px;
626                background: transparent url('images/lock_icon.png') no-repeat;
627        }
628
629        &.odd
630        {
631                background-color: #EEEEEE;
632        }
633}
634
635/***
636****  File Priority Buttons
637***/
638
639div.file-priority-radiobox
640{
641        $border-radius: 5px;
642
643        display: inline;
644        float: right;
645        margin: 4px;
646        margin-top: 2px;
647
648        > * {
649                @include button;
650                width: 20px;
651                height: 12px;
652        }
653
654        // We have row after row of these buttons, so the flashy colors used in the inspector tabs look harsh here.
655        // Keep the same basic color theme, but look less harsh, by cutting the gradient's color range.
656        $idle-color-top:      mix( $nonselected-gradient-top, $nonselected-gradient-bottom, 80% );
657        $idle-color-bottom:   mix( $nonselected-gradient-top, $nonselected-gradient-bottom, 20% );
658        $active-color-top:    mix( $selected-gradient-top,    $selected-gradient-bottom,    80% );
659        $active-color-bottom: mix( $selected-gradient-top,    $selected-gradient-bottom,    20% );
660
661        > div.low {
662                @include leftRoundedBox($border-radius);
663                @include buttonImage('images/file-priority-low.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
664                border-right-width: 0px;
665        }
666
667        > div.normal {
668                @include buttonImage('images/file-priority-normal.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
669        }
670
671        > div.high {
672                @include rightRoundedBox($border-radius);
673                @include buttonImage('images/file-priority-high.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
674                border-left-width: 0px;
675        }
676}
677
678
679/****
680*****
681*****  MAIN WINDOW FOOTER
682*****
683****/
684
685div.torrent_footer
686{
687        height: 22px;
688        border-top: 1px solid #555;
689        position: relative;
690        width: 100%;
691        z-index: 3;
692
693        @include verticalGradient($statusbar-gradient-top, $statusbar-gradient-bottom);
694
695        > * {
696                position: relative;
697                float: left;
698                margin: 2px 4px;
699                width: 18px;
700                height: 12px;
701                padding: 2px 8px;
702                float: left;
703                border: 1px solid #888;
704                -moz-user-select: none;
705                -webkit-user-select: none;
706        }
707
708        $idle-color-top: $nonselected-gradient-top;
709        $idle-color-bottom: $nonselected-gradient-bottom;
710        $active-color-top: $selected-gradient-top;
711        $active-color-bottom: $selected-gradient-bottom;
712
713        div.main_container,
714        ul#settings_menu {
715                display: none;
716        }
717
718        #prefs-button {
719                @include roundedBox(5px);
720                @include buttonImage('images/wrench.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
721        }
722
723        #turtle-button {
724                @include roundedBox(5px);
725                @include buttonImage('images/turtle.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
726                &:active, &.selected {
727                        @include imageOnVerticalGradient('images/blue-turtle.png', $active-color-top, $active-color-bottom);
728                }
729        }
730
731        #compact-button {
732                @include roundedBox(5px);
733                @include buttonImage('images/compact.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
734        }
735}
736
737/****
738*****
739*****  DIALOGS
740*****
741****/
742
743div#dialog_message.dialog_message {
744        width: 280px;
745        margin: 10px auto 25px;
746        font-size: 13px;
747        line-height: 14px;
748        word-wrap: break-word;
749        overflow: hidden;
750        padding-bottom: 0;
751}
752
753#torrent_upload_file, label[for="torrent_upload_file"]{
754        display:none;
755}
756
757h2.dialog_heading {
758        text-align: center;
759        width: 300px;
760        margin: 0 auto;
761        font-size: 17px;
762}
763
764div.dialog_container a {
765        color: white;
766        padding: 7px 0;
767        background: #222;
768        text-decoration: none;
769        border: 2px solid white;
770        margin: 5px 5px 0;
771        font-weight: bold;
772        -webkit-border-radius: 16px;
773        display: inline-block;
774        width: 90px;
775        font-size: 12px;
776        text-align: center;
777}
778
779#dialog_container div.dialog_window img {
780        margin: 5px auto 12px;
781}
782
783.landscape {
784        div.dialog_container {
785                a#dialog_cancel_button { left: 155px; }
786                a#dialog_confirm_button { right: 110px; }
787                img { float: left !important; margin: 0 0 0 50px; }
788        }
789        h2#dialog_heading.dialog_heading {
790                margin: 5px auto 0;
791                margin-left: 150px;
792                text-align: left;
793        }
794        div#dialog_message.dialog_message {
795                width: 300px;
796                margin: 10px 0 20px 150px;
797                text-align: left;
798        }
799}
800
801
802// no context menu in the mobile version...
803div#torrent_context_menu {
804        display: none;
805}
806
807iframe#torrent_upload_frame {
808        display: block; /* Don't change this : safari forms won't target hidden frames (they open a new window) */
809        position: absolute;
810        top: -1000px;
811        left: -1000px;
812        width: 0px;
813        height: 0px;
814        border: none;
815        padding: 0;
816        margin: 0;
817}
Note: See TracBrowser for help on using the repository browser.