woople-theme 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +20 -0
  3. data/Rakefile +37 -0
  4. data/app/assets/images/woople-theme/certification/missing.png +0 -0
  5. data/app/assets/images/woople-theme/certification/red-icon.png +0 -0
  6. data/app/assets/images/woople-theme/certification/red-icon2x.png +0 -0
  7. data/app/assets/images/woople-theme/completed-triangle.png +0 -0
  8. data/app/assets/images/woople-theme/completed-triangle2x.png +0 -0
  9. data/app/assets/images/woople-theme/icons/menu.png +0 -0
  10. data/app/assets/images/woople-theme/icons/menu2x.png +0 -0
  11. data/app/assets/images/woople-theme/icons/search.png +0 -0
  12. data/app/assets/images/woople-theme/icons/search2x.png +0 -0
  13. data/app/assets/images/woople-theme/icons/sortASC.png +0 -0
  14. data/app/assets/images/woople-theme/icons/sortASC2x.png +0 -0
  15. data/app/assets/images/woople-theme/icons/sortDESC.png +0 -0
  16. data/app/assets/images/woople-theme/icons/sortDESC2x.png +0 -0
  17. data/app/assets/images/woople-theme/icons/thumbs_down.png +0 -0
  18. data/app/assets/images/woople-theme/icons/thumbs_down2x.png +0 -0
  19. data/app/assets/images/woople-theme/icons/thumbs_up.png +0 -0
  20. data/app/assets/images/woople-theme/icons/thumbs_up2x.png +0 -0
  21. data/app/assets/images/woople-theme/logo.png +0 -0
  22. data/app/assets/images/woople-theme/missing-profile.png +0 -0
  23. data/app/assets/images/woople-theme/missing.png +0 -0
  24. data/app/assets/images/woople-theme/rails.png +0 -0
  25. data/app/assets/images/woople-theme/star-icon.png +0 -0
  26. data/app/assets/images/woople-theme/star-icon2x.png +0 -0
  27. data/app/assets/javascripts/woople-theme/theme.js +39 -0
  28. data/app/assets/stylesheets/woople-theme/base.css.less +101 -0
  29. data/app/assets/stylesheets/woople-theme/buttons.css.less +38 -0
  30. data/app/assets/stylesheets/woople-theme/colours.css.less +29 -0
  31. data/app/assets/stylesheets/woople-theme/content-item.css.less +157 -0
  32. data/app/assets/stylesheets/woople-theme/content.css.less +38 -0
  33. data/app/assets/stylesheets/woople-theme/course.css.less +47 -0
  34. data/app/assets/stylesheets/woople-theme/framework.css +5 -0
  35. data/app/assets/stylesheets/woople-theme/framework/index.css.less +8 -0
  36. data/app/assets/stylesheets/woople-theme/framework/responsive.css.less +1 -0
  37. data/app/assets/stylesheets/woople-theme/grid.css.less +38 -0
  38. data/app/assets/stylesheets/woople-theme/index.css.less +20 -0
  39. data/app/assets/stylesheets/woople-theme/legacy.css.less +28 -0
  40. data/app/assets/stylesheets/woople-theme/menu.css.less +132 -0
  41. data/app/assets/stylesheets/woople-theme/modal.css.less +56 -0
  42. data/app/assets/stylesheets/woople-theme/outline.css.less +117 -0
  43. data/app/assets/stylesheets/woople-theme/page-header.css.less +48 -0
  44. data/app/assets/stylesheets/woople-theme/pagination.css.less +31 -0
  45. data/app/assets/stylesheets/woople-theme/profile.css.less +120 -0
  46. data/app/assets/stylesheets/woople-theme/responsive.css.less +1 -0
  47. data/app/assets/stylesheets/woople-theme/theme-retina.css +44 -0
  48. data/app/assets/stylesheets/woople-theme/theme.css +8 -0
  49. data/app/assets/stylesheets/woople-theme/variables.css.less +68 -0
  50. data/app/helpers/javascript_helper.rb +5 -0
  51. data/app/helpers/theme_helper.rb +36 -0
  52. data/app/presenters/content_image.rb +7 -0
  53. data/app/presenters/content_item_presenter.rb +14 -0
  54. data/app/presenters/menu_link_presenter.rb +52 -0
  55. data/app/presenters/menu_presenter.rb +7 -0
  56. data/app/presenters/menu_section_presenter.rb +19 -0
  57. data/app/presenters/outline_download_presenter.rb +7 -0
  58. data/app/presenters/outline_presenter.rb +43 -0
  59. data/app/presenters/outline_video_presenter.rb +45 -0
  60. data/app/presenters/page_header_presenter.rb +6 -0
  61. data/app/presenters/profile_presenter.rb +9 -0
  62. data/app/presenters/theme_presentation.rb +51 -0
  63. data/app/views/layouts/theme.html.erb +43 -0
  64. data/app/views/woople-theme/_content_item.html.erb +28 -0
  65. data/app/views/woople-theme/_content_item_header.html.erb +7 -0
  66. data/app/views/woople-theme/_menu.html.erb +15 -0
  67. data/app/views/woople-theme/_outline.html.erb +19 -0
  68. data/app/views/woople-theme/_outline_download.html.erb +6 -0
  69. data/app/views/woople-theme/_outline_video.html.erb +13 -0
  70. data/app/views/woople-theme/_page_header.html.erb +8 -0
  71. data/app/views/woople-theme/_profile.html.erb +20 -0
  72. data/app/views/woople-theme/_video_modal.html.erb +20 -0
  73. data/config/locales/en.yml +18 -0
  74. data/config/routes.rb +2 -0
  75. data/lib/tasks/woople-theme_tasks.rake +4 -0
  76. data/lib/woople-theme.rb +5 -0
  77. data/lib/woople-theme/configuration.rb +23 -0
  78. data/lib/woople-theme/engine.rb +14 -0
  79. data/lib/woople-theme/version.rb +3 -0
  80. metadata +196 -0
@@ -0,0 +1,38 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ #navigation .outer-content {
5
+ position:relative;
6
+ left:-10px;
7
+ margin-left:0;
8
+
9
+ -webkit-transition: right, -webkit-transform 0.25s;
10
+ -moz-transition: right, -moz-transform 0.25s;
11
+ -ms-transition: right, -ms-transform 0.25s;
12
+ -o-transition: right, -o-transform 0.25s;
13
+ transition: right, transform 0.25s;
14
+
15
+ .translate(0, 0);
16
+
17
+ .content {
18
+ background: @contentBackground;
19
+ .box-shadow();
20
+ }
21
+ }
22
+
23
+ @media (max-width: 768px) {
24
+ #navigation .outer-content {
25
+ left:0;
26
+ right:0;
27
+ width:100%;
28
+ }
29
+
30
+ #navigation:target .outer-content {
31
+ .translate(@contentOffset, 0);
32
+ }
33
+
34
+ .no-csstransform #navigation:target .outer-content {
35
+ left:@contentOffset;
36
+ right:@negativeContentOffset;
37
+ }
38
+ }
@@ -0,0 +1,47 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ #course {
5
+ overflow:hidden;
6
+
7
+ .page-header {
8
+ img {
9
+ .course-image();
10
+ max-width:@imageWidth;
11
+ float:left;
12
+ margin-right:@gridGutterWidth;
13
+ }
14
+
15
+ p, h1 {
16
+ margin-left: @gridGutterWidth + @imageWidth;
17
+ }
18
+ }
19
+
20
+ > header {
21
+ margin:0;
22
+ }
23
+
24
+ header + .outline h2 {
25
+ border-top:0;
26
+ }
27
+ }
28
+
29
+ @media (max-width: 767px) {
30
+ #course {
31
+ .modal-body {
32
+ padding:0;
33
+ .modal-video();
34
+ }
35
+
36
+ .modal-header {
37
+ display:none;
38
+ }
39
+
40
+ .modal-footer {
41
+ padding:0;
42
+ padding-top:@phoneMargin;
43
+ border:none;
44
+ .box-shadow(none);
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,5 @@
1
+ /*
2
+ *= require google-code-prettify/prettify
3
+ *= require twitter/bootstrap
4
+ *= require framework/index
5
+ */
@@ -0,0 +1,8 @@
1
+ .codify .card {
2
+ /* TODO: this should use the bootstrap columns */
3
+ width:500px;
4
+ }
5
+
6
+ .codify .card .face > * {
7
+ height:200px;
8
+ }
@@ -0,0 +1 @@
1
+ @import "twitter/bootstrap/responsive";
@@ -0,0 +1,38 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+ @import "twitter/bootstrap/mixins";
4
+ @import "twitter/bootstrap/variables";
5
+
6
+ @media (max-width: 768px) {
7
+ @woopleColumnWidth: 67px;
8
+
9
+ .woopleColumn(@columns: 1) {
10
+ float: left;
11
+ margin-left: @gridGutterWidth;
12
+ width: (@woopleColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
13
+ }
14
+
15
+ .woopleOffset (@columns) {
16
+ margin-left: (@woopleColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
17
+ }
18
+
19
+ .span1 { .woopleColumn(1); }
20
+ .span2 { .woopleColumn(2); }
21
+ .span3 { .woopleColumn(3); }
22
+ .span4 { .woopleColumn(4); }
23
+ .span5 { .woopleColumn(5); }
24
+ .span6 { .woopleColumn(6); }
25
+ .span7 { .woopleColumn(7); }
26
+ .span8 { .woopleColumn(8); }
27
+ .span9 { .woopleColumn(9); }
28
+
29
+ .offset1 { .woopleOffset(1); }
30
+ .offset2 { .woopleOffset(2); }
31
+ .offset3 { .woopleOffset(3); }
32
+ .offset4 { .woopleOffset(4); }
33
+ .offset5 { .woopleOffset(5); }
34
+ .offset6 { .woopleOffset(6); }
35
+ .offset7 { .woopleOffset(7); }
36
+ .offset8 { .woopleOffset(8); }
37
+ .offset9 { .woopleOffset(9); }
38
+ }
@@ -0,0 +1,20 @@
1
+ /*
2
+ *= require woople-theme/responsive
3
+
4
+ * COMPONENTS
5
+ *= require woople-theme/base
6
+ *= require woople-theme/menu
7
+ *= require woople-theme/content
8
+ *= require woople-theme/profile
9
+ *= require woople-theme/page-header
10
+ *= require woople-theme/outline
11
+ *= require woople-theme/grid
12
+ *= require woople-theme/buttons
13
+ *= require woople-theme/content-item
14
+ *= require woople-theme/pagination
15
+ *= require woople-theme/modal
16
+ *= require woople-theme/legacy
17
+
18
+ * PAGE SPECIFIC STYLES
19
+ *= require woople-theme/course
20
+ */
@@ -0,0 +1,28 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ .no-rgba {
5
+ body {
6
+ background: @legacyBackground;
7
+ }
8
+
9
+ .menu .nav-list > li > a {
10
+ color: @legacyMenuLinkColour;
11
+ }
12
+
13
+ .menu .nav-list > li > a:hover {
14
+ background-color:#75a2db;
15
+ }
16
+
17
+
18
+ .page-header {
19
+ background-color:#f4f5ef;
20
+ }
21
+ }
22
+
23
+ .no-boxshadow {
24
+ .content-item .content-item-image img {
25
+ border:solid 1px @insetContentBorder;
26
+ }
27
+ }
28
+
@@ -0,0 +1,132 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ .menu {
5
+ background: @primary;
6
+ padding-right:10px;
7
+
8
+ .box-shadow();
9
+
10
+ -webkit-transition: right, -webkit-transform 0.25s;
11
+ -moz-transition: right, -moz-transform 0.25s;
12
+ -ms-transition: right, -ms-transform 0.25s;
13
+ -o-transition: right, -o-transform 0.25s;
14
+ transition: right, transform 0.25s;
15
+
16
+ .menu-content {
17
+ position:relative;
18
+ }
19
+
20
+ .nav-list {
21
+ margin-top:10px;
22
+ margin-bottom:30px;
23
+
24
+ .nav-header {
25
+ color:@menuHeadingColour;
26
+ }
27
+
28
+ > li > a {
29
+ color:@menuLinkColour;
30
+ margin-right:-24px;
31
+
32
+ em {
33
+ font-size:1.25em;
34
+ line-height:1.5em;
35
+ display:block;
36
+ font-style:normal;
37
+ }
38
+ }
39
+
40
+ > li > a, .nav-header {
41
+ text-shadow:0 1px 0 rgba(0,0,0,0.5);
42
+ }
43
+
44
+ .active {
45
+ position:relative;
46
+
47
+ > a {
48
+ background-color:@menuActiveColour;
49
+ color:@menuHeadingColour;
50
+ margin-left:-18px;
51
+ text-indent:3px;
52
+ }
53
+
54
+ .badge {
55
+ background-color: @menuActiveLabelColour;
56
+ }
57
+ }
58
+ }
59
+
60
+ .nav > li > a:hover {
61
+ background-color:@menuHoverColour;
62
+ margin-left:-15px;
63
+ text-indent:0;
64
+
65
+ .badge {
66
+ background-color:@menuHoverLabelColour;
67
+ }
68
+ }
69
+
70
+ .cert-status-red {
71
+ width: 25px;
72
+ height: 25px;
73
+ vertical-align:text-top;
74
+ background-image: url('/assets/woople-theme/certification/red-icon.png');
75
+ background-repeat:no-repeat;
76
+ display:inline-block;
77
+ position:absolute;
78
+ left:4px;
79
+ top:-6px;
80
+ }
81
+
82
+ .badge {
83
+ background-color: @menuLabelBackground;
84
+ border-top:solid 1px rgba(255,255,255,0.25);
85
+ .box-shadow(0px 1px rgba(0,0,0,0.25));
86
+ line-height:1em;
87
+ margin-top:4px;
88
+ font-size:11px;
89
+ float:right;
90
+ }
91
+
92
+ .label-icon {
93
+ padding-left:31px;
94
+ position:relative;
95
+
96
+ i {
97
+ position:absolute;
98
+ }
99
+ }
100
+
101
+ }
102
+
103
+ @media (max-width: 768px) {
104
+ #navigation:target {
105
+ .menu {
106
+ .translate(0,0);
107
+ width:@menuWidth;
108
+ }
109
+ }
110
+
111
+ .menu .nav-list > li > a {
112
+ margin-right:-14px;
113
+ }
114
+
115
+ .no-csstransform {
116
+ .container {
117
+ .menu {
118
+ left: -250px;
119
+ }
120
+ }
121
+ }
122
+
123
+ .container {
124
+ .menu {
125
+ padding-right:0;
126
+ position:absolute;
127
+ top:72px;
128
+ margin:0;
129
+ .translate(-250px, 0);
130
+ }
131
+ }
132
+ }
@@ -0,0 +1,56 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ .modal-backdrop {
5
+ opacity:0.5;
6
+ }
7
+
8
+ .modal {
9
+ width:720px;
10
+ margin: -250px 0 0 -360px;
11
+ .border-radius(0);
12
+ background-color:@contentBackground;
13
+ border:none;
14
+ .box-shadow();
15
+
16
+ h3 {
17
+ .content-title();
18
+ margin-bottom:0;
19
+ }
20
+
21
+ .modal-footer {
22
+ background-color:@contentBackground;
23
+
24
+ .btn-group {
25
+ display:inline-block;
26
+ }
27
+
28
+ .btn {
29
+ line-height:16px;
30
+ }
31
+ }
32
+
33
+ .modal-body {
34
+ max-height:initial;
35
+ padding:0;
36
+ background-color:@contentBackground;
37
+
38
+ .modal-video();
39
+ }
40
+ }
41
+
42
+ .icon-thumbs-up {
43
+ width:15px;
44
+ height:16px;
45
+ background:url(/assets/woople-theme/icons/thumbs_up.png) no-repeat;
46
+ }
47
+
48
+ .active .icon-thumbs-up { opacity: 0.5; }
49
+
50
+ .icon-thumbs-down {
51
+ width:15px;
52
+ height:16px;
53
+ background:url(/assets/woople-theme/icons/thumbs_down.png) no-repeat;
54
+ }
55
+
56
+ .active .icon-thumbs-down { opacity: 0.5; }
@@ -0,0 +1,117 @@
1
+ @import "woople-theme/variables.css.less";
2
+ @import "woople-theme/colours.css.less";
3
+
4
+ .outline {
5
+ margin-bottom:20px;
6
+
7
+ h2 {
8
+ .outline-title();
9
+ }
10
+
11
+ .assessment {
12
+ margin-left:@leftColumnOffset;
13
+ margin-top:@contentPadding;
14
+ text-transform:uppercase;
15
+ }
16
+
17
+ .completed {
18
+ .action {
19
+ display:none;
20
+ }
21
+ }
22
+
23
+ .disabled td, p.disabled {
24
+ .opacity(50);
25
+
26
+ a:hover {
27
+ text-decoration:none;
28
+ }
29
+ }
30
+
31
+ tr.disabled {
32
+ &:hover {
33
+ td {
34
+ background:none;
35
+ }
36
+ }
37
+
38
+ td {
39
+ background-color:transparent;
40
+ text-shadow:none;
41
+ color:@primaryTextColour;
42
+
43
+ a {
44
+ color:@primaryTextColour;
45
+ }
46
+
47
+ .action {
48
+ display:none;
49
+ }
50
+ }
51
+ }
52
+
53
+ table {
54
+ margin-bottom:0;
55
+
56
+ th {
57
+ color: @secondaryTextColour;
58
+ }
59
+
60
+ th, td {
61
+ padding:@tableCellPadding;
62
+ border-top:none;
63
+ a {
64
+ color:@primaryTextColour;
65
+ }
66
+ }
67
+
68
+ .count {
69
+ width:75px;
70
+ }
71
+
72
+ th {
73
+ border-top:none;
74
+ }
75
+
76
+ tr > td:first-child, tr > th:first-child {
77
+ padding-left:@contentPadding;
78
+ width:@gridGutterWidth + @imageWidth - (@tableCellPadding * 2);
79
+ }
80
+
81
+ .action {
82
+ display:block;
83
+ }
84
+
85
+ tr:hover {
86
+ td {
87
+ background-color:@highlightBackground;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ @media (max-width: 767px) {
94
+ .outline {
95
+ table {
96
+ tr > td:first-child, tr > th:first-child {
97
+ padding-left:@phoneMargin;
98
+ text-indent:@phoneMargin * 1.5;
99
+
100
+ > *:first-child {
101
+ text-indent:0;
102
+ margin-left:@phoneMargin;
103
+ }
104
+
105
+ }
106
+
107
+ }
108
+
109
+ h2 {
110
+ .outline-title(@phoneLeftColumnOffset);
111
+ }
112
+
113
+ .assessment {
114
+ margin-left:@phoneLeftColumnOffset;
115
+ }
116
+ }
117
+ }