mekari_lvsg 0.1.0.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +30 -0
  4. data/Rakefile +22 -0
  5. data/app/assets/config/mekari_lvsg_manifest.js +2 -0
  6. data/app/assets/javascripts/mekari_lvsg/mekari.js.erb +19 -0
  7. data/app/assets/javascripts/mekari_lvsg/ms_base.js +2 -0
  8. data/app/assets/javascripts/mountain_view/styleguide.js +3 -0
  9. data/app/assets/javascripts/pages/demo.js +4 -0
  10. data/app/assets/stylesheets/mekari_lvsg/components.scss +21 -0
  11. data/app/assets/stylesheets/mekari_lvsg/mekari.css.erb +22 -0
  12. data/app/assets/stylesheets/mekari_lvsg/ms_base.less +3 -0
  13. data/app/assets/stylesheets/mekari_lvsg/ms_base/legacy_variables.less +20 -0
  14. data/app/assets/stylesheets/mekari_lvsg/ms_base/plugins/jquery.daterangepicker.less +4 -0
  15. data/app/assets/stylesheets/mekari_lvsg/ms_base/typography.less +23 -0
  16. data/app/assets/stylesheets/mekari_lvsg/ms_base/variables.less +71 -0
  17. data/app/assets/stylesheets/mekari_lvsg/theme.css +4 -0
  18. data/app/assets/stylesheets/mekari_lvsg/variables.scss +37 -0
  19. data/app/assets/stylesheets/mountain_view/override.less +5 -0
  20. data/app/components/footer/_footer.html.slim +35 -0
  21. data/app/components/footer/footer.js +0 -0
  22. data/app/components/footer/footer.less +150 -0
  23. data/app/components/footer/footer.yml +21 -0
  24. data/app/components/header/_header.html.slim +39 -0
  25. data/app/components/header/header.js +0 -0
  26. data/app/components/header/header.less +132 -0
  27. data/app/components/header/header.yml +80 -0
  28. data/app/components/header/header_component.rb +13 -0
  29. data/app/controllers/mekari_lvsg/application_controller.rb +5 -0
  30. data/app/helpers/mekari_lvsg/application_helper.rb +4 -0
  31. data/app/jobs/mekari_lvsg/application_job.rb +4 -0
  32. data/app/mailers/mekari_lvsg/application_mailer.rb +6 -0
  33. data/app/models/mekari_lvsg/application_record.rb +5 -0
  34. data/app/views/layouts/mekari_lvsg/application.html.slim +13 -0
  35. data/app/views/mountain_view/extra_pages/buttons.html.slim +0 -0
  36. data/app/views/mountain_view/extra_pages/colors.html.slim +0 -0
  37. data/app/views/mountain_view/extra_pages/device_width.html.slim +17 -0
  38. data/app/views/mountain_view/extra_pages/grid.html.slim +0 -0
  39. data/config/routes.rb +4 -0
  40. data/lib/mekari_lvsg.rb +8 -0
  41. data/lib/mekari_lvsg/engine.rb +56 -0
  42. data/lib/mekari_lvsg/version.rb +3 -0
  43. data/lib/mountain_view/presenter/view_context_extension.rb +15 -0
  44. data/lib/tasks/mekari_lvsg_tasks.rake +4 -0
  45. metadata +283 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5d787270215c233df5e24bd4c77e991462b79d8248c022ac887445fd528967b1
4
+ data.tar.gz: 6d71696a897371677884dce7923dffd1f906a3fca4c11bffaccca374de180625
5
+ SHA512:
6
+ metadata.gz: d6bcb110935ee4e5330b6f8d1b3b3843e21feadc6a58e290ed9e83faad9db1ce842d611c873b6672355fa7132967a89c4b62535f4cadf473b5bc27c841c1ca21
7
+ data.tar.gz: 97d94e1ee683d029edd488e41c15b9ee1b47b97a5e87c533aa5cab8e5316513dc08f06a3d4ae7a803450540c8fec1ad40e0915588e11d7aaa063d8416ae61b91
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2019 Edo Muhardo Syafri
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # MekariLvsg
2
+ Sample living style guide by using mounting_view as an engine with semantic-ui.
3
+
4
+ Mekari is just name of my current company, it's not related with company existing repository. So, it's free to use!!
5
+
6
+ ## Usage
7
+ How to use my plugin.
8
+
9
+ ## Installation
10
+ Add this line to your application's Gemfile:
11
+
12
+ ```ruby
13
+ gem 'mekari_lvsg'
14
+ ```
15
+
16
+ And then execute:
17
+ ```bash
18
+ $ bundle
19
+ ```
20
+
21
+ Or install it yourself as:
22
+ ```bash
23
+ $ gem install mekari_lvsg
24
+ ```
25
+
26
+ ## Contributing
27
+ Contribution directions go here.
28
+
29
+ ## License
30
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'MekariLvsg'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+ load 'rails/tasks/statistics.rake'
21
+
22
+ require 'bundler/gem_tasks'
@@ -0,0 +1,2 @@
1
+ //= link_directory ../javascripts/mekari_lvsg .js
2
+ //= link_directory ../stylesheets/mekari_lvsg .css
@@ -0,0 +1,19 @@
1
+ <% require_asset 'mountain_view/styleguide' %>
2
+
3
+ <% if Dir.exist?(MountainView.configuration.components_path) %>
4
+ <% depend_on MountainView.configuration.components_path.to_s %>
5
+ <%
6
+ Dir.glob(MountainView.configuration.components_path.join('*')).each do |component_dir|
7
+ component = File.basename component_dir
8
+ begin
9
+ require_asset "#{component}/#{component}.js"
10
+ rescue Sprockets::FileNotFound
11
+ Rails.logger.debug("MountainView: javascript not found for component '#{component}'")
12
+ end
13
+ end
14
+ %>
15
+ <% else %>
16
+ <% depend_on Rails.root.join('app').to_s %>
17
+ <% end %>
18
+
19
+ <% require_asset 'mekari_lvsg/ms_base' %>
@@ -0,0 +1,2 @@
1
+ //= require lodash/lodash.custom.min
2
+ //= require lazysizes/lazysizes.min
@@ -0,0 +1,3 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require semantic_ui/semantic_ui
@@ -0,0 +1,4 @@
1
+ $(document).ready(function() {
2
+ toggleProductHighlightMobileOnScroll('.section__hide-product-highlight');
3
+ });
4
+
@@ -0,0 +1,21 @@
1
+ @import 'mekari_lvsg/variables';
2
+
3
+ body.pages {
4
+ background-color: $frosty-grey;
5
+ .headtitle {
6
+ @media (min-width: $computerBreakpoint) {
7
+ width: 62.5%;
8
+ }
9
+ }
10
+ }
11
+
12
+ footer {
13
+ background-color: $navy-blue;
14
+ color: $mercury-grey;
15
+ padding-top: 20px;
16
+ padding-bottom: 20px;
17
+ text-align: center;
18
+ a {
19
+ color: $snow-white;
20
+ }
21
+ }
@@ -0,0 +1,22 @@
1
+ <% MountainView.configuration.included_stylesheets.each do |included_stylesheet| %>
2
+ <%= require_asset included_stylesheet %>
3
+ <% end %>
4
+ <% if Dir.exist?(MountainView.configuration.components_path) %>
5
+ <% depend_on MountainView.configuration.components_path.to_s %>
6
+ <%
7
+ Dir.glob(MountainView.configuration.components_path.join('*')).each do |component_dir|
8
+ component = File.basename component_dir
9
+ begin
10
+ require_asset "#{component}/#{component}.css"
11
+ rescue Sprockets::FileNotFound
12
+ Rails.logger.debug("MountainView: stylesheet not found for component '#{component}'")
13
+ end
14
+ end
15
+ %>
16
+ <% else %>
17
+ <% depend_on Rails.root.join('app').to_s %>
18
+ <% end %>
19
+
20
+ /* adding asset here */
21
+ <% require_asset 'mekari_lvsg/ms_base' %>
22
+ <% require_asset 'mekari_lvsg/components' %>
@@ -0,0 +1,3 @@
1
+ @import "ms_base/variables.less";
2
+ @import "ms_base/typography.less";
3
+ @import "ms_base/plugins/jquery.daterangepicker.less";
@@ -0,0 +1,20 @@
1
+ // -------------------
2
+ // Colors
3
+ // -------------------
4
+
5
+ // green
6
+ @mint-green: #8cba00;
7
+
8
+ // blue
9
+ @ash-blue: #6581a1;
10
+ @dark-ash-blue: #34495e;
11
+ @darker-ash-blue: #21364a;
12
+ @sea-blue: #3498db;
13
+
14
+ // grey
15
+ @grey: #bfc6c6;
16
+ @dark-grey: #7f8c8d;
17
+ @darkest-grey: #555555;
18
+
19
+ // red
20
+ @tomato-red: #e74c3c;
@@ -0,0 +1,4 @@
1
+ body .date-picker-wrapper {
2
+ font-family: @pageFont;
3
+ z-index: 2;
4
+ }
@@ -0,0 +1,23 @@
1
+ // Typekit
2
+
3
+ // Rocketship Font
4
+ // Kit ID: cnc8rvf
5
+
6
+ // Domains:
7
+ // localhost,
8
+ // 127.0.0.1,
9
+ // *.moneysmart.co,
10
+ // *.moneysmart.sg,
11
+ // *.moneysmart.hk
12
+
13
+ // Light (27kb), Semi-bold (29kb)
14
+
15
+ @import url("https://use.typekit.net/cnc8rvf.css");
16
+ @import "font-awesome-sprockets";
17
+ @import "font-awesome";
18
+
19
+ // antialias
20
+ body {
21
+ -webkit-font-smoothing: antialiased;
22
+ -moz-osx-font-smoothing: grayscale;
23
+ }
@@ -0,0 +1,71 @@
1
+ // -------------------
2
+ // Fonts
3
+ // -------------------
4
+
5
+ @pageFont: 'sofia-pro', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Fira Sans', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
6
+
7
+ // -------------------
8
+ // Colors
9
+ // -------------------
10
+
11
+ // White
12
+ @snow-white: #fff;
13
+
14
+ // Grey
15
+ @frosty-grey: #f1f1f1;
16
+ @line-grey: #ebebeb;
17
+ @gradient-grey: #f7f7f7;
18
+ @mercury-grey: #ccc;
19
+ @pepper-grey: #333;
20
+ @slate-grey: #808080;
21
+
22
+ // Blue
23
+ @dark-blue: #17324c;
24
+ @marine-blue: #0044dd;
25
+ @marine-shadow: #0025c6;
26
+ @navy-blue: #0036dc;
27
+ @shallow-blue: #6e8ddb;
28
+ @true-blue: #21405f;
29
+
30
+ // Green
31
+ @promo-green: #f0faf0;
32
+ @smart-green: #5ccc5e;
33
+ @text-green: #55c05a;
34
+
35
+ // Yellow
36
+ @epic-yellow: #ffd100;
37
+
38
+ // Red
39
+ @pome-red: #e83819;
40
+ @vibrant-red: #f55335;
41
+ @vivid-tangerine: #ff917d;
42
+
43
+ // Others
44
+ @fresh-cyan: #00d7e1;
45
+ @trusty-peach: #ff917d;
46
+
47
+ // Box Shadows
48
+ @default-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.07);
49
+ @darker-box-shadow: 0 -2px 8px 0 rgba(0, 0, 0, 0.21);
50
+ @hover-box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.14);
51
+
52
+ // Border Shadows
53
+ @light-shadow: rgba(0, 0, 0, 0.1);
54
+
55
+
56
+ // -------------------
57
+ // Responsive
58
+ // -------------------
59
+
60
+ // Breakpoints
61
+ @mobileBreakpoint : 320px;
62
+ @tabletBreakpoint : 768px;
63
+ @computerBreakpoint : 992px;
64
+ @largeMonitorBreakpoint : 1200px;
65
+ @widescreenMonitorBreakpoint : 1920px;
66
+
67
+ // Media Query
68
+ @largestMobileScreen : (@tabletBreakpoint - 1px);
69
+ @largestTabletScreen : (@computerBreakpoint - 1px);
70
+ @largestSmallMonitor : (@largeMonitorBreakpoint - 1px);
71
+ @largestLargeMonitor : (@widescreenMonitorBreakpoint - 1px);
@@ -0,0 +1,4 @@
1
+ /*
2
+ *= require semantic_ui/semantic_ui
3
+ *= require mountain_view/override
4
+ */
@@ -0,0 +1,37 @@
1
+ // Grey
2
+ $frosty-grey: #f1f1f1;
3
+ $gradient-grey: #f7f7f7;
4
+ $line-grey: #ebebeb;
5
+ $mercury-grey: #ccc;
6
+ $pepper-grey: #333;
7
+ $slate-grey: #808080;
8
+
9
+ // Blue
10
+ $marine-blue: #04d;
11
+ $navy-blue: #21364a;
12
+
13
+ $epic-yellow: #ffd100;
14
+ $snow-white: #fff;
15
+
16
+ // Box shadow color
17
+ $box-shadow-color: rgba(0, 0, 0, 0.07);
18
+ $darker-box-shadow: 0 -2px 8px 0 rgba(0, 0, 0, 0.21);
19
+ $darker-bottom-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.21);
20
+
21
+ // Green
22
+ $promo-green: #f0faf0;
23
+ $smart-green: #5ccc5e;
24
+ $text-green: #55c05a;
25
+
26
+ // Screen Size Breakpoints
27
+ $mobileBreakpoint: 320px;
28
+ $tabletBreakpoint: 768px;
29
+ $computerBreakpoint: 992px;
30
+ $largeMonitorBreakpoint: 1200px;
31
+ $widescreenMonitorBreakpoint: 1920px;
32
+
33
+ // Calculated Screen sizes
34
+ $largestMobileScreen: ($tabletBreakpoint - 1px);
35
+ $largestTabletScreen: ($computerBreakpoint - 1px);
36
+ $largestSmallMonitor: ($largeMonitorBreakpoint - 1px);
37
+ $largestLargeMonitor: ($widescreenMonitorBreakpoint - 1px);
@@ -0,0 +1,5 @@
1
+ @import "mekari_lvsg/ms_base/typography";
2
+
3
+ .mv-main {
4
+ background-color: #eee;
5
+ }
@@ -0,0 +1,35 @@
1
+ .footer
2
+ .footer-top
3
+ .ui.container
4
+ .ui.divided.equal.height.stackable.grid
5
+ .footer-top__container.three.wide.column
6
+ .footer-top__logo
7
+ a.logo__link href=(properties[:footer_logo_link])
8
+ = image_tag properties[:footer_logo_path], alt: properties[:footer_logo_alt]
9
+
10
+ .footer-top__container.ten.wide.column
11
+ .footer-top__menu.ui.menu.horizontal.stackable
12
+ - (properties[:footer_nav_items] || []).each do |footer_nav_item|
13
+ .item
14
+ a href=(footer_nav_item[:url]) data-purpose=(footer_nav_item.dig(:data, :purpose))
15
+ = footer_nav_item[:name]
16
+
17
+ .footer-top__container.three.wide.column
18
+ .footer-top__social
19
+ span.social__text = properties[:footer_social]
20
+ a.social__icon target="_blank" href=(properties[:footer_social_fb])
21
+ i.facebook.icon
22
+ a.social__icon target="_blank" href=(properties[:footer_social_tw])
23
+ i.twitter.square.icon
24
+
25
+ .footer-bottom
26
+ .ui.container
27
+ .ui.grid
28
+ .footer-bottom__text.sixteen.wide.column
29
+ | &copy; #{ Date.today.year }&nbsp;
30
+ = properties[:copyright]
31
+ a.footer-bottom__terms target="_blank" href=properties[:term_path]
32
+ = properties[:term_text]
33
+ = properties[:and]
34
+ a.footer-bottom__policy target="_blank" href=properties[:privacy_path]
35
+ = properties[:privacy_text]
File without changes
@@ -0,0 +1,150 @@
1
+ @import "mekari_lvsg/ms_base/variables.less";
2
+
3
+ .footer-top {
4
+ background-color: @true-blue;
5
+
6
+ @media only screen and (min-width: @computerBreakpoint) {
7
+ padding-top: 34px;
8
+ padding-bottom: 38px;
9
+ }
10
+
11
+ @media only screen and (max-width: @largestMobileScreen) {
12
+ padding: 2rem 0;
13
+ }
14
+
15
+ @media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
16
+ padding: 50px 0;
17
+
18
+ &__social {
19
+ display: flex;
20
+ }
21
+ }
22
+
23
+ &__container {
24
+ padding: 1rem;
25
+
26
+ @media only screen and (max-width: @largestTabletScreen) {
27
+ width: 100%;
28
+ }
29
+ }
30
+
31
+ &__menu {
32
+ a {
33
+ color: @snow-white;
34
+ font-size: 16px;
35
+ font-weight: 600;
36
+
37
+ &:hover,
38
+ &:active {
39
+ color: @smart-green;
40
+ }
41
+ }
42
+
43
+ @media only screen and (max-width: @largestMobileScreen) {
44
+ &.ui.menu {
45
+ .item {
46
+ padding: 0 0 12px;
47
+
48
+ &:last-child {
49
+ padding-bottom: 0;
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ @media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
56
+ &.ui.menu {
57
+ .item {
58
+ padding-top: 0;
59
+ padding-bottom: 0;
60
+
61
+ &:first-child {
62
+ padding-left: 0;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ &__social {
70
+ .social {
71
+ &__text {
72
+ color: @mercury-grey;
73
+ font-size: 16px;
74
+ font-weight: 300;
75
+ margin-right: 15px;
76
+ }
77
+ &__icon {
78
+ color: @snow-white;
79
+ font-size: 30px;
80
+ @media only screen and (min-width: @computerBreakpoint) {
81
+ position: relative;
82
+ top: 3px;
83
+ }
84
+ &.active,
85
+ &:hover {
86
+ color: @smart-green;
87
+ }
88
+ }
89
+ }
90
+
91
+ @media only screen and (max-width: @largestMobileScreen) {
92
+ display: flex
93
+ }
94
+
95
+ @media only screen and (min-width: @computerBreakpoint) {
96
+ display: flex;
97
+ align-items: center;
98
+ padding: 8px 0;
99
+ }
100
+ }
101
+ }
102
+
103
+ .footer-bottom {
104
+ background-color: @dark-blue;
105
+ text-align: center;
106
+
107
+ &__text {
108
+ color: @mercury-grey;
109
+ font-size: 16px;
110
+ line-height: 20px;
111
+ font-weight: 300;
112
+
113
+ a {
114
+ color: @snow-white;
115
+ font-weight: 600;
116
+ &:hover,
117
+ &:active {
118
+ color: @smart-green;
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ @media only screen and (min-width: @computerBreakpoint) {
125
+ .footer-bottom {
126
+ &__text {
127
+ margin-bottom: 20px;
128
+ margin-top: 8px;
129
+ }
130
+ }
131
+ }
132
+
133
+ @media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
134
+ .ui.grid {
135
+ .footer-bottom__text.column {
136
+ margin-bottom : 15px;
137
+ }
138
+ }
139
+
140
+ .footer-top {
141
+ .ui > .grid {
142
+ margin: 0;
143
+
144
+ .column {
145
+ padding-top: 0;
146
+ padding-bottom: 0;
147
+ }
148
+ }
149
+ }
150
+ }