source: OpenWorkouts-current/ow/static/css/main.css @ d4cabcc

currentfeature/docs
Last change on this file since d4cabcc was d1c4782, checked in by borja <borja@…>, 5 years ago

Show a capture of the workout map, as an image, in the dashboard:

  • Added a view to render the tracking map of a workout full screen
  • Added a small shell script that uses chrome to grabs a screenshot of the full screen map view of a workout, then uses imagemagick convert to crop/resize it and finally saves it in a given location
  • Added a static/maps directory to store maps captures
  • Added static/maps to the boring/ignore file
  • Added a tool in utilities.py to call the shell script that captures the screenshot of the map
  • Added a method to the Workout model, that returns the static path to the workout map capture (valid to use with request.static_url()). If there is no capture yet, call the tool to make one
  • Added code to dashboard.pt to show the capture of the map
  • Added a new parameter to te ow maps js code, allowing us to hide/show the zoom controls of the map when building a new one
  • Property mode set to 100644
File size: 13.8 KB
RevLine 
[affc3f7]1img,legend {
[ad5759b]2    border:0
[affc3f7]3}
4
5legend,td,th {
[ad5759b]6    padding:0
[affc3f7]7}
8
9.add-workout,.button,sub,sup {
[ad5759b]10    position:relative
[affc3f7]11}
12
13.button,.header-content a,.workout-resume ul a,.workout-title a {
[ad5759b]14    text-decoration:none
[affc3f7]15}
16
17@font-face {
[ad5759b]18    font-family:'Open Sans';
19    font-style:normal;
20    font-weight:300;
21    src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTYnF5uFdDttMLvmWuJdhhgs.ttf) format('truetype')
[affc3f7]22}
23
24@font-face {
[ad5759b]25    font-family:'Open Sans';
26    font-style:normal;
27    font-weight:400;
28    src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype')
[affc3f7]29}
30
31@font-face {
[ad5759b]32    font-family:'Open Sans';
33    font-style:normal;
34    font-weight:700;
35    src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzInF5uFdDttMLvmWuJdhhgs.ttf) format('truetype')
[affc3f7]36}
37
38@font-face {
[ad5759b]39    font-family:'Open Sans';
40    font-style:normal;
41    font-weight:800;
42    src:local('Open Sans Extrabold'),local('OpenSans-Extrabold'),url(http://fonts.gstatic.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-honF5uFdDttMLvmWuJdhhgs.ttf) format('truetype')
[affc3f7]43}
44
45@font-face {
[ad5759b]46    font-family:'Open Sans';
47    font-style:italic;
48    font-weight:300;
49    src:local('Open Sans Light Italic'),local('OpenSansLight-Italic'),url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxrfB31yxOzP-czbf6AAKCVo.ttf) format('truetype')
[affc3f7]50}
51
52@font-face {
[ad5759b]53    font-family:'Open Sans';
54    font-style:italic;
55    font-weight:400;
56    src:local('Open Sans Italic'),local('OpenSans-Italic'),url(http://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf) format('truetype')
[affc3f7]57}
58
59@font-face {
[ad5759b]60    font-family:'Open Sans';
61    font-style:italic;
62    font-weight:700;
63    src:local('Open Sans Bold Italic'),local('OpenSans-BoldItalic'),url(http://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxp_TkvowlIOtbR7ePgFOpF4.ttf) format('truetype')
[affc3f7]64}
65
66html {
[ad5759b]67    font-family:sans-serif;
68    -ms-text-size-adjust:100%;
69    -webkit-text-size-adjust:100%;
70    box-sizing:border-box
[affc3f7]71}
72
73article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary {
[ad5759b]74    display:block
[affc3f7]75}
76
77audio,canvas,progress,video {
[ad5759b]78    display:inline-block;
79    vertical-align:baseline
[affc3f7]80}
81
82audio:not([controls]) {
[ad5759b]83    display:none;
84    height:0
[affc3f7]85}
86
87.hide,[hidden],template {
[ad5759b]88    display:none
[affc3f7]89}
90
91a {
[ad5759b]92    background-color:transparent
[affc3f7]93}
94
95a:active,a:hover {
[ad5759b]96    outline:0
[affc3f7]97}
98
99abbr[title] {
[ad5759b]100    border-bottom:1px dotted
[affc3f7]101}
102
103b,optgroup,strong {
[ad5759b]104    font-weight:700
[affc3f7]105}
106
107dfn {
[ad5759b]108    font-style:italic
[affc3f7]109}
110
111h1 {
[ad5759b]112    font-size:2em;
113    margin:.67em 0
[affc3f7]114}
115
116mark {
[ad5759b]117    background:#ff0;
118    color:#000
[affc3f7]119}
120
121small {
[ad5759b]122    font-size:80%
[affc3f7]123}
124
125sub,sup {
[ad5759b]126    font-size:75%;
127    line-height:0;
128    vertical-align:baseline
[affc3f7]129}
130
131sup {
[ad5759b]132    top:-.5em
[affc3f7]133}
134
135sub {
[ad5759b]136    bottom:-.25em
[affc3f7]137}
138
139svg:not(:root) {
[ad5759b]140    overflow:hidden
[affc3f7]141}
142
143figure {
[ad5759b]144    margin:1em 40px
[affc3f7]145}
146
147hr {
[ad5759b]148    box-sizing:content-box;
149    height:0
[affc3f7]150}
151
152pre,textarea {
[ad5759b]153    overflow:auto
[affc3f7]154}
155
156code,kbd,pre,samp {
[ad5759b]157    font-family:monospace,monospace;
158    font-size:1em
[affc3f7]159}
160
161button,input,optgroup,select,textarea {
[ad5759b]162    color:inherit;
163    font:inherit;
164    margin:0
[affc3f7]165}
166
167button {
[ad5759b]168    overflow:visible
[affc3f7]169}
170
171button,select {
[ad5759b]172    text-transform:none
[affc3f7]173}
174
175button,html input[type=button],input[type=reset],input[type=submit] {
[ad5759b]176    -webkit-appearance:button;
177    cursor:pointer
[affc3f7]178}
179
180button[disabled],html input[disabled] {
[ad5759b]181    cursor:default
[affc3f7]182}
183
184button::-moz-focus-inner,input::-moz-focus-inner {
[ad5759b]185    border:0;
186    padding:0
[affc3f7]187}
188
189input {
[ad5759b]190    line-height:normal
[affc3f7]191}
192
193input[type=checkbox],input[type=radio] {
[ad5759b]194    box-sizing:border-box;
195    padding:0
[affc3f7]196}
197
198input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button {
[ad5759b]199    height:auto
[affc3f7]200}
201
202input[type=search] {
[ad5759b]203    -webkit-appearance:textfield;
204    box-sizing:content-box
[affc3f7]205}
206
207input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration {
[ad5759b]208    -webkit-appearance:none
[affc3f7]209}
210
211fieldset {
[ad5759b]212    border:1px solid silver;
213    margin:0 2px;
214    padding:.35em .625em .75em
[affc3f7]215}
216
217table {
[ad5759b]218    border-collapse:collapse;
219    border-spacing:0
[affc3f7]220}
221
222body {
[ad5759b]223    margin:0;
224    font-family:'Open Sans',sans-serif
[affc3f7]225}
226
227*,:after,:before {
[ad5759b]228    box-sizing:inherit
[affc3f7]229}
230
231.button {
[ad5759b]232    box-sizing:border-box;
233    display:inline-block;
234    text-align:center;
235    vertical-align:middle;
236    cursor:pointer;
237    border:1px solid transparent;
238    font-style:normal;
239    white-space:nowrap;
240    text-overflow:ellipsis;
241    padding:.3em 1em;
242    margin:0;
243    overflow:hidden;
244    background:#e1e1e1;
245    color:#151515;
246    font-size:1em;
247    line-height:1.25;
248    max-width:100%
[affc3f7]249}
250
251.login-content {
[ad5759b]252    background-image:url(../media/img/back-01.jpg);
253    background-size:cover;
254    display:-webkit-flex;
255    display:-ms-flexbox;
256    display:flex;
257    -webkit-justify-content:center;
258    -ms-flex-pack:center;
259    justify-content:center;
260    -webkit-align-items:center;
261    -ms-flex-align:center;
262    align-items:center;
263    min-height:300px;
264    padding:1em 0;
265    transition:all 250ms ease-in-out
[affc3f7]266}
267
268@media (min-width:1024px) {
[ad5759b]269    .login-content {
[affc3f7]270        min-height:550px
[ad5759b]271    }
[affc3f7]272
273
274}
275
276@media (min-width:1440px) {
[ad5759b]277    .login-content {
[affc3f7]278        min-height:650px
[ad5759b]279    }
[affc3f7]280
281
282}
283
284.login-content .message {
[ad5759b]285    padding:.5em;
286    margin:0;
287    text-align:center;
288    font-size:13px;
289    font-size:.8125rem
[affc3f7]290}
291
292.login-content .message.message-error {
[ad5759b]293    color:#fff;
294    background-color:red
[affc3f7]295}
296
297.login-content form {
[ad5759b]298    width:100%;
299    max-width:350px
[affc3f7]300}
301
302.login-content legend {
[ad5759b]303    display:none
[affc3f7]304}
305
306.login-content fieldset {
[ad5759b]307    border:none;
308    background-color:rgba(21,21,21,.6);
309    border-radius:6px;
310    padding:2em
[affc3f7]311}
312
313.login-content fieldset>div {
[ad5759b]314    margin-bottom:1.5em
[affc3f7]315}
316
317.login-content input {
[ad5759b]318    width:100%;
319    padding:.5em .75em;
320    border:1px solid transparent;
321    border-radius:2px
[affc3f7]322}
323
324.login-content input:focus {
[ad5759b]325    border-color:#EE4056
[affc3f7]326}
327
328.login-content label {
[ad5759b]329    display:block;
330    font-size:14px;
331    font-size:.875rem;
332    color:#959595;
333    margin-bottom:.25em
[affc3f7]334}
335
336.login-content .button {
[ad5759b]337    transition:all .5s ease-in-out;
338    background-color:#EE4056;
339    color:#fff;
340    margin-bottom:1em;
341    text-transform:uppercase
[affc3f7]342}
343
344.login-content .button:hover {
[ad5759b]345    background-color:#e6152f
[affc3f7]346}
347
348.signup-content {
[ad5759b]349    background-image:url(../media/img/signup-01.jpg);
350    background-size:cover;
351    display:-webkit-flex;
352    display:-ms-flexbox;
353    display:flex;
354    -webkit-justify-content:center;
355    -ms-flex-pack:center;
356    justify-content:center;
357    -webkit-align-items:center;
358    -ms-flex-align:center;
359    align-items:center;
360    min-height:300px;
361    padding:1em 0;
362    transition:all 250ms ease-in-out
[affc3f7]363}
364
365@media (min-width:1024px) {
[ad5759b]366    .signup-content {
[affc3f7]367        min-height:550px
[ad5759b]368    }
[affc3f7]369
370
371}
372
373@media (min-width:1440px) {
[ad5759b]374    .signup-content {
[affc3f7]375        min-height:650px
[ad5759b]376    }
[affc3f7]377
378
379}
380
381.signup-content form {
[ad5759b]382    width:100%;
383    max-width:40%
[affc3f7]384}
385
386.signup-content ul.error li {
[ad5759b]387    color:#fff;
388    background-color:red
[affc3f7]389}
390
391.signup-content legend {
[ad5759b]392    display:none
[affc3f7]393}
394
395.signup-content fieldset {
[ad5759b]396    border:none;
397    background-color:rgba(21,21,21,.6);
398    border-radius:6px;
399    padding:2em
[affc3f7]400}
401
402.signup-content fieldset>div {
[ad5759b]403    margin-bottom:1.5em
[affc3f7]404}
405
406.signup-content input {
[ad5759b]407    width:100%;
408    padding:.5em .75em;
409    border:1px solid transparent;
410    border-radius:2px
[affc3f7]411}
412
413.signup-content input:focus {
[ad5759b]414    border-color:#EE4056
[affc3f7]415}
416
417.signup-content label {
[ad5759b]418    display:block;
419    font-size:14px;
420    font-size:.875rem;
421    color:#959595;
422    margin-bottom:.25em
[affc3f7]423}
424
425.signup-content .button {
[ad5759b]426    transition:all .5s ease-in-out;
427    background-color:#EE4056;
428    color:#fff;
429    margin-bottom:1em;
430    text-transform:uppercase
[affc3f7]431}
432
433.logo span,.workout-title:before {
[ad5759b]434    transition:all 250ms ease-in-out
[affc3f7]435}
436
437.logo-open,.logo:hover span {
[ad5759b]438    color:#EE4056
[affc3f7]439}
440
441.header-content .description,.logo {
[ad5759b]442    margin:0
[affc3f7]443}
444
445.signup-content .button:hover {
[ad5759b]446    background-color:#e6152f
[affc3f7]447}
448
449.header-content {
[ad5759b]450    padding:1em 1.5em
[affc3f7]451}
452
453.logo {
[ad5759b]454    font-size:24px;
455    font-size:1.5rem;
456    line-height:1em;
457    font-weight:800;
458    text-transform:uppercase;
459    display:inline-block
[affc3f7]460}
461
462.logo-open {
[ad5759b]463    display:block
[affc3f7]464}
465
466.logo-outs,.logo-work {
[ad5759b]467    color:#f8b5be
[affc3f7]468}
469
470.nav-site {
[ad5759b]471    font-size:13px;
472    font-size:.8125rem
[affc3f7]473}
474
475.nav-site ul {
[ad5759b]476    list-style-type:none;
477    padding:0;
478    margin:0;
479    display:-webkit-flex;
480    display:-ms-flexbox;
481    display:flex;
482    -webkit-flex-direction:row;
483    -ms-flex-direction:row;
484    flex-direction:row;
485    -webkit-justify-content:space-between;
486    -ms-flex-pack:justify;
487    justify-content:space-between
[affc3f7]488}
489
490.nav-site li {
[ad5759b]491    border-left:1px solid #e1e1e1;
492    -webkit-flex-grow:1;
493    -ms-flex-positive:1;
494    flex-grow:1;
495    text-align:center
[affc3f7]496}
497
498.nav-site a {
[ad5759b]499    color:#959595;
500    padding:1.25em;
501    display:block
[affc3f7]502}
503
504.nav-site .is-active a,.nav-site a:hover {
[ad5759b]505    color:#151515
[affc3f7]506}
507
508.add-workout>a {
[ad5759b]509    color:#EE4056
[affc3f7]510}
511
512.add-workout>a:before {
[ad5759b]513    content:"+";
514    font-weight:800;
515    font-size:32px;
516    font-size:2rem;
517    line-height:0;
518    position:relative;
519    top:8px
[affc3f7]520}
521
522.add-workout:hover:after,.bike:before {
[ad5759b]523    content:""
[affc3f7]524}
525
526.add-workout>a span {
[ad5759b]527    display:none
[affc3f7]528}
529
530.add-workout>a:hover {
[ad5759b]531    background-color:#EE4056;
532    color:#fff
[affc3f7]533}
534
535.add-workout:hover:after {
[ad5759b]536    position:absolute;
537    background-color:#fff;
538    bottom:-1px;
539    width:100%;
540    height:1px;
541    display:block;
542    z-index:20
[affc3f7]543}
544
545.add-workout:hover ul {
[ad5759b]546    display:inline-block
[affc3f7]547}
548
549.add-workout ul {
[ad5759b]550    display:none;
551    -webkit-flex-direction:column;
552    -ms-flex-direction:column;
553    flex-direction:column;
554    position:absolute;
555    background-color:rgba(255,255,255,.95);
556    right:-1px;
557    border:1px solid #e1e1e1;
558    width:153px;
559    z-index:10;
[affc3f7]560}
561
562.add-workout ul li {
[ad5759b]563    border-left:transparent;
564    text-align:left
[affc3f7]565}
566
567.add-workout ul a:hover {
[ad5759b]568    background-color:#fbfbfb
[affc3f7]569}
570
571.description {
[ad5759b]572    font-size:14px;
573    font-size:.875rem;
574    font-weight:300;
575    letter-spacing:.025em;
576    color:#959595
[affc3f7]577}
578
579.is-login .header-content {
[ad5759b]580    border-bottom:1px solid #e1e1e1;
581    display:-webkit-flex;
582    display:-ms-flexbox;
583    display:flex;
584    padding:0 1.5em;
585    -webkit-justify-content:space-between;
586    -ms-flex-pack:justify;
587    justify-content:space-between;
588    -webkit-align-items:center;
589    -ms-flex-align:center;
590    align-items:center
[affc3f7]591}
592
593.is-login .description {
[ad5759b]594    display:none
[affc3f7]595}
596
597.is-login .logo-open {
[ad5759b]598    display:inline-block
[affc3f7]599}
600
601.workout-content {
[ad5759b]602    padding:2em 1em
[affc3f7]603}
604
605@media (min-width:480px) {
[ad5759b]606    .workout-content {
[affc3f7]607        padding:2em 6em
[ad5759b]608    }
[affc3f7]609
610
611}
612
613.workout-list {
[ad5759b]614    margin-right:2em
[affc3f7]615}
616
617.workout-list>h2 {
[ad5759b]618    font-weight:300;
619    margin:0 0 1.5em
[affc3f7]620}
621
622.workout-resume {
[ad5759b]623    max-width:540px;
624    padding:1.5em 0;
625    position:relative
[affc3f7]626}
627
628@media (min-width:800px) {
[ad5759b]629    .workout-content {
[affc3f7]630        display:-webkit-flex;
631        display:-ms-flexbox;
632        display:flex;
633        -webkit-justify-content:space-between;
634        -ms-flex-pack:justify;
635        justify-content:space-between
[ad5759b]636    }
[affc3f7]637
[ad5759b]638    .workout-resume {
[affc3f7]639        padding-left:2em;
640        border-left:1px solid #e1e1e1;
641        transition:all 250ms ease-in-out
[ad5759b]642    }
[affc3f7]643
644
645}
646
647.workout-resume:hover {
[ad5759b]648    border-color:#151515
[affc3f7]649}
650
651.workout-resume:hover .workout-title:before {
[ad5759b]652    color:#151515
[affc3f7]653}
654
655.workout-resume ul {
[ad5759b]656    padding:0;
657    list-style-type:none;
658    font-size:13px;
659    font-size:.8125rem
[affc3f7]660}
661
662.workout-resume ul a {
[ad5759b]663    display:block
[affc3f7]664}
665
666.bike:before {
[ad5759b]667    display:block;
668    width:30px;
669    height:30px;
670    background-image:url(../media/img/bike.svg);
671    background-size:100%
[affc3f7]672}
673
674.workout-title {
[ad5759b]675    font-size:14px;
676    font-size:.875rem;
677    margin:0;
678    position:relative
[affc3f7]679}
680
681.workout-title:before {
[ad5759b]682    content:"▶";
683    position:absolute;
684    left:-3.25em;
685    top:.35em;
686    color:#e1e1e1;
687    font-size:10px;
688    font-size:.625rem
[affc3f7]689}
690
691.workout-title a {
[ad5759b]692    color:#151515
[affc3f7]693}
694
695.workout-title a:hover {
[ad5759b]696    color:#EE4056
[affc3f7]697}
698
699.workout-info {
[ad5759b]700    display:-webkit-flex;
701    display:-ms-flexbox;
702    display:flex;
703    -webkit-align-items:center;
704    -ms-flex-align:center;
705    align-items:center;
706    margin:.25em 0
[affc3f7]707}
708
709.workout-info li {
[ad5759b]710    color:#959595
[affc3f7]711}
712
713.workout-info li:after {
[ad5759b]714    content:"|";
715    margin:0 .5em
[affc3f7]716}
717
718.workout-info li:last-child:after {
[ad5759b]719    content:"";
720    margin:0
[affc3f7]721}
722
723.workout-intro {
[ad5759b]724    font-size:13px;
725    font-size:.8125rem;
726    color:#151515
[affc3f7]727}
728
729.workout-options {
[ad5759b]730    display:inline-block;
731    border:1px solid #e1e1e1;
732    margin-bottom:0;
733    border-radius:4px
[affc3f7]734}
735
736.workout-options li {
[ad5759b]737    display:inline-block;
738    border-right:1px solid #e1e1e1
[affc3f7]739}
740
741.workout-options li:last-child {
[ad5759b]742    border-right:none
[affc3f7]743}
744
745.workout-options a {
[ad5759b]746    color:#959595;
747    padding:.5em .75em
[affc3f7]748}
749
750.workout-options a:hover {
[ad5759b]751    color:#151515
[affc3f7]752}
753
[d1c4782]754.workout-map img {
755    width: 100%;
756}
757
[affc3f7]758.owo-del a:hover {
[ad5759b]759    color:red
[affc3f7]760}
761
762.workout-aside {
[ad5759b]763    width:100%
[affc3f7]764}
765
[2d91474]766.workout-activity-tree {
767    padding:0;
768    list-style-type: none;
769    transition:all 250ms ease-in-out
[ad5759b]770                   list-style-type:none;
[2d91474]771    font-size:13px;
772    font-size:.8125rem;
773    color: #959595;
774}
775
776.workout-activity-tree a {
777    text-decoration: none;
778    background-color: transparent;
779    outline: 0;
780    color: #959595;
781}
782
783
784.workout-activity-tree li a.viewing-year {
785    font-size: 17px;
786    color: #151515;
787}
788
789.workout-activity-tree ul.hidden {
790    display: none;
791}
792
793.workout-activity-tree-year {
794    list-style-type: none;
795    padding: 0;
796    padding-left: 15px;
797    font-size:13px;
798    font-size:.8125rem;
799    color: #959595;
800}
801
802.workout-activity-tree-year a {
803    text-decoration: none;
804    background-color: transparent;
805    outline: 0;
806    color: #959595;
807}
808
809
810.workout-activity-tree-year li a.viewing-month {
811    font-size: 17px;
812    color: #151515;
813}
814
815.workout-activity-tree-month {
816    list-style-type: none;
817    padding: 0;
818    padding-left: 15px;
819    font-size:13px;
820    font-size:.8125rem
821    color: #959595;
822}
823
824.workout-activity-tree-month a {
825    text-decoration: none;
826    background-color: transparent;
827    outline: 0;
828    color: #959595;
829}
830
831
832
[affc3f7]833@media (min-width:800px) {
[ad5759b]834    .workout-aside {
[affc3f7]835        max-width:300px;
836        padding-left:1.5em;
837        border-left:1px solid #e1e1e1
[ad5759b]838    }
[affc3f7]839
840
841}
Note: See TracBrowser for help on using the repository browser.