mountain_view 0.0.1 → 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.
- checksums.yaml +4 -4
- data/README.md +109 -0
- data/app/assets/javascripts/mountain_view/styleguide.js +2 -0
- data/app/assets/javascripts/mountain_view.js.erb +1 -0
- data/app/assets/stylesheets/mountain_view/styleguide.css +126 -0
- data/app/assets/stylesheets/mountain_view.css.erb +2 -1
- data/app/controllers/mountain_view/styleguide_controller.rb +9 -0
- data/app/helpers/mountain_view/component_helper.rb +0 -2
- data/app/helpers/mountain_view/styleguide_helper.rb +14 -0
- data/app/views/layouts/mountain_view.html.erb +30 -0
- data/app/views/mountain_view/styleguide/index.html.erb +8 -0
- data/app/views/mountain_view/styleguide/show.html.erb +19 -0
- data/config/routes.rb +5 -0
- data/lib/mountain_view/engine.rb +10 -0
- data/lib/mountain_view/version.rb +1 -1
- data/test/dummy/app/components/card/_card.html.erb +26 -0
- data/test/dummy/app/components/card/card.css +76 -0
- data/test/dummy/app/components/card/card.js +3 -0
- data/test/dummy/app/components/card/card.yml +33 -0
- data/test/dummy/app/components/header/_header.html.erb +4 -2
- data/test/dummy/app/components/header/header.css +23 -8
- data/test/dummy/app/components/header/header.js +3 -1
- data/test/dummy/app/components/header/header.yml +5 -0
- data/test/dummy/app/views/layouts/application.html.erb +1 -0
- data/test/dummy/config/application.rb +41 -1
- data/test/dummy/config/environment.rb +1 -1
- data/test/dummy/config/environments/development.rb +1 -35
- data/test/dummy/config/environments/production.rb +1 -80
- data/test/dummy/config/environments/test.rb +1 -37
- data/test/dummy/config/initializers/assets.rb +2 -2
- data/test/dummy/config/initializers/cookies_serializer.rb +1 -1
- data/test/dummy/config/initializers/filter_parameter_logging.rb +1 -1
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/dummy/config/routes.rb +4 -2
- data/test/dummy/log/development.log +611 -1338
- data/test/dummy/tmp/cache/assets/development/sprockets/05047392adf909e89a37882b1df46aa8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/056a4da9bcd21e1bc54fc870c1bd1c93 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0848104d612d68babe788b064bb6a773 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0a5bb8ddcf321e88738e02ffb0cd02ef +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0c5cdad092202271d7dcd4a4e9434459 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0ee705b1349b8360286fea9ed4e5e40e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1025fb0f151fc866114ecf98044f10ee +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1358febedd4ca96d2bffd10daf71a841 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13e30b9b47c795b0bf1c24f728ef72bb +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/19cd783e0750e55a88466eaf34cf8ee3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1a3befd27690385985935fbefadee114 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/37f90f006cee6a567571d9ef098f959c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/46844defcba01dc849d9b419893f98cc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4b8ca8528217ffd457d34f6d3c10390e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5288a3be9b42eac33a8c5107b2c1a3e7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6469b6494dfcb7811bd823eb37679edb +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/646c70596539b146a28d3463b52e331d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/676413c50ebcc02f3683f0b74d03cd10 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6b18a41e40b87e9cf56140076eaf8ee7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6d1c1dbe626c83b900adee3270c25207 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7eb84ecf34a4f7e714d58448a8eb10bd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/895678836daa2e7d767a0b18998d3b32 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/90a2a412cf77f0878e811db239c79cbc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9e3fff55e666e905677ea1ec03cbf90c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a18133f41da2aa5e6c4ceeb0912758e4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a668b6ff88911a6fc7ee3ed2bce99925 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/adf63b8c230bec424832f299d6783649 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b9bd83a3b44c1d3d3f3475bd4c0cba7f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c6c9787ab538d56f0bf078335b046968 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c7ee05b0bd8082e947e7f11a52d43d4d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c8918b8c937b226f93f33acabc876a06 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cd2a0221f05ca5fd45fa56d923f36195 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cd456657bdefb4c3249301a5754fdbe2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d6c936f92dce001a74c5de9eff308ea2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d78f431479fa8ad43875544b8c50d206 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fd60d93b12b3001c215f1c6581eca777 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -1
- data/test/helpers/mountain_view/component_helper_test.rb +1 -1
- data/test/mountain_view_test.rb +1 -1
- metadata +95 -46
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1e8f75a6b5b33970fb8e397347caa0a1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/24204f742af588c8166d3160b500d20f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2739c7705f92af2c7a343bd3bec41ebf +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/338f5f4fca22e174ca33d4951da6cb68 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/37643c71fe531f0952e5295acf215a42 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/416150dc3ac35079c94273cc46e90aa6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5384ad85f52d3272dbc64d46ef3876a4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/83cef341260a8fe947a452c98fe4e8e5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9968a5db588ce1b0eccde8ee4aa53070 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ac40b40e96db620ce63bc31ea39a3a00 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/af58a5048930559efe210766e23cb33a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b5fa5190a0392c201224fe65623c6b33 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bd10fd095a0ad299793da5761647e6dd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c85016e7bbd4f3adbb7635d01f85d39b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d066c004d1fd26ae76a61303a7a18145 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f63a83b6b75c46ab79854c53ebe1856a +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dca4fc8566e7c7e8b7b91837b7a7d8964f06e3e4
|
|
4
|
+
data.tar.gz: 331ca8d3d5ce0eb17e749a3260d403660ff426bc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 03154f5aa0096d4050a88fd912ba1f71ce4d5826ed828739104e090605bda7e1f66d1940a008719ea58ee095d4eebbd3ec56b3994ccfa8e9dd49162246c38a4f
|
|
7
|
+
data.tar.gz: b21584d536ab745a423adafafdba71be7cea7c70345725490f424d5ff128eceb84f079fd582f3eac5c3969303d8751c4d163bb4cc173d589bd938333a1010e17
|
data/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Mountain View
|
|
2
|
+
|
|
3
|
+
Mountain View helps you create reusable visual components on your Rails
|
|
4
|
+
Application.
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
Add this line to your application's Gemfile:
|
|
9
|
+
|
|
10
|
+
gem 'mountain_view'
|
|
11
|
+
|
|
12
|
+
Then execute:
|
|
13
|
+
|
|
14
|
+
$ bundle
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
### Directory Structure
|
|
19
|
+
Create components following this directory structure
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
app/
|
|
23
|
+
components/
|
|
24
|
+
header/
|
|
25
|
+
_header.html.erb
|
|
26
|
+
header.css
|
|
27
|
+
header.js
|
|
28
|
+
header.yml
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Component Example
|
|
32
|
+
You can write your own templates on erb, haml or any other templating language.
|
|
33
|
+
Same goes with stylesheets and javascripts. You can use scss, sass or
|
|
34
|
+
coffee-script as long as you have these preprocessors running on your app.
|
|
35
|
+
|
|
36
|
+
```erb
|
|
37
|
+
<!-- app/components/header/_header.html.erb -->
|
|
38
|
+
<div class="header">
|
|
39
|
+
<h1>This is a header component with the title: <%= properties[:title] %></h1>
|
|
40
|
+
<h3>And subtitle <%= properties[:subtitle] %></h3>
|
|
41
|
+
</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Using components on your views
|
|
45
|
+
You can then call your components on any view by using the following
|
|
46
|
+
helper:
|
|
47
|
+
|
|
48
|
+
```erb
|
|
49
|
+
<%= ui_component "header", title: "This is a title", subtitle: "And this is a subtitle" %>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Assets
|
|
53
|
+
You can require all the components CSS and JS automatically by requiring `mountain_view` in you main JS and CSS files.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
//= require mountain_view
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Automatically generated Style Guide
|
|
60
|
+
A style guide will be automatically generated. This styleguide never falls behind and it reflects your components in their latest version.
|
|
61
|
+
|
|
62
|
+
#### Setting up the style guide
|
|
63
|
+
1) Add the following line to your `routes.rb` file.
|
|
64
|
+
```ruby
|
|
65
|
+
mount MountainView::Engine => "/mountain_view"
|
|
66
|
+
```
|
|
67
|
+
2) Create stubs for your components. This stubs will be the examples in the styleguide.
|
|
68
|
+
|
|
69
|
+
E.g: `/app/components/card/card.yml`
|
|
70
|
+
```yml
|
|
71
|
+
-
|
|
72
|
+
:title: "Aspen Snowmass"
|
|
73
|
+
:description: "Aspen Snowmass is a winter resort complex located in Pitkin County in western Colorado in the United States. Owned and operated by the Aspen Skiing Company it comprises four skiing/snowboarding areas on four adjacent mountains in the vicinity of the towns of Aspen and Snowmass Village."
|
|
74
|
+
:link: "http://google.com"
|
|
75
|
+
:image_url: "http://i.imgur.com/QzuIJTo.jpg"
|
|
76
|
+
:data:
|
|
77
|
+
-
|
|
78
|
+
:title: "Elevation"
|
|
79
|
+
:number: '7879ft'
|
|
80
|
+
-
|
|
81
|
+
:title: "Depth"
|
|
82
|
+
:number: '71"'
|
|
83
|
+
-
|
|
84
|
+
:title: "Sunset on the Mountain"
|
|
85
|
+
:description: "Three major ranges of the Alps – the Northern Calcareous Alps, Central Alps, and Southern Calcareous Alps – run west to east through Austria. The Central Alps, which consist largely of a granite base, are the largest and highest ranges in Austria."
|
|
86
|
+
:link: "http://google.com"
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
3) Vist `http://localhost:3000/mountain_view/styleguide`
|
|
90
|
+
|
|
91
|
+
#### Example Style Guide
|
|
92
|
+

|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Contributing
|
|
96
|
+
|
|
97
|
+
1. Fork it ([https://github.com/jgnatch/mountain_view/fork](https://github.com/jgnatch/mountain_view/fork))
|
|
98
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
99
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
100
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
101
|
+
5. Create new Pull Request
|
|
102
|
+
|
|
103
|
+
## Team
|
|
104
|
+
|
|
105
|
+
### Current Maintainers
|
|
106
|
+
|
|
107
|
+
* [Esteban Pastorino](https://github.com/kitop)
|
|
108
|
+
* [Ignacio Gutierrez](https://github.com/jgnatch)
|
|
109
|
+
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*= require mountain_view
|
|
3
|
+
*= require mountain_view/prism
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* Eric Meyer's Reset CSS v2.0 - http://cssreset.com */
|
|
7
|
+
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
|
|
8
|
+
|
|
9
|
+
body{
|
|
10
|
+
font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
|
|
11
|
+
padding: 0;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* HEADER */
|
|
16
|
+
.mv-header{
|
|
17
|
+
background: #777;
|
|
18
|
+
padding: 20px;
|
|
19
|
+
}
|
|
20
|
+
.mv-header__logo{
|
|
21
|
+
font-weight: bold;
|
|
22
|
+
color: white;
|
|
23
|
+
font-size: 20px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* FlEX WRAPPER */
|
|
27
|
+
|
|
28
|
+
.mv-flex-wrapper{
|
|
29
|
+
display: flex;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* SIDEBAR */
|
|
33
|
+
.mv-sidebar{
|
|
34
|
+
background: #F7F7F7;
|
|
35
|
+
width: 18%;
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
display: block;
|
|
38
|
+
float: left;
|
|
39
|
+
padding: 30px 20px;
|
|
40
|
+
flex:1;
|
|
41
|
+
min-height: 100vh;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.mv-sidebar h3{
|
|
45
|
+
font-weight: bold;
|
|
46
|
+
font-size: 16px;
|
|
47
|
+
margin-bottom: 25px;
|
|
48
|
+
color: #444;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.mv-sidebar ul{
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.mv-sidebar ul li{
|
|
55
|
+
margin-bottom: 20px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.mv-sidebar ul li a{
|
|
59
|
+
color:#555;
|
|
60
|
+
font-size: 14px;
|
|
61
|
+
text-decoration: none;
|
|
62
|
+
font-weight: 300;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.mv-sidebar ul li a:hover{
|
|
66
|
+
color:#000;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* MAIN */
|
|
70
|
+
.mv-main{
|
|
71
|
+
box-sizing: border-box;
|
|
72
|
+
width: 82%;
|
|
73
|
+
float:left;
|
|
74
|
+
padding: 30px 60px;
|
|
75
|
+
}
|
|
76
|
+
.mv-main__header{
|
|
77
|
+
margin-bottom: 40px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.mv-main__header h1{
|
|
81
|
+
font-weight: 100;
|
|
82
|
+
font-size: 55px;
|
|
83
|
+
color: #333;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.mv-main__description {
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* COMPONENT */
|
|
90
|
+
.mv-component{
|
|
91
|
+
margin-bottom: 150px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.mv-component__item{
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.mv-component__description{
|
|
98
|
+
padding: 25px;
|
|
99
|
+
background: #F7F7F7;
|
|
100
|
+
border: 1px solid #E4E4E4;
|
|
101
|
+
margin-top:30px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.mv-component__description h2{
|
|
105
|
+
font-weight:bold;
|
|
106
|
+
margin-bottom:20px;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.mv-component__description__definition{
|
|
110
|
+
margin-bottom:20px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.mv-component__description__definition code{
|
|
114
|
+
background: none !important;
|
|
115
|
+
font-size:14px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.mv-component__description__properties{
|
|
119
|
+
background: #fff !important;
|
|
120
|
+
border:1px solid #e4e4e4;
|
|
121
|
+
max-height:230px;
|
|
122
|
+
overflow:auto;
|
|
123
|
+
font-size: 13px;
|
|
124
|
+
padding: 30px 20px;
|
|
125
|
+
}
|
|
126
|
+
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
<%
|
|
1
|
+
<% depend_on Rails.root.join('app', 'components') %>
|
|
2
|
+
<% Dir.glob(Rails.root.join('app', 'components', '*')).each do |component_dir|
|
|
2
3
|
component = File.basename component_dir
|
|
3
4
|
require_asset "#{component}/#{component}"
|
|
4
5
|
end %>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module MountainView
|
|
2
|
+
module StyleguideHelper
|
|
3
|
+
def mv_components
|
|
4
|
+
Dir.glob(Rails.root.join("app", "components", "*")).map do |component_dir|
|
|
5
|
+
File.basename component_dir
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def styleguide_stubs(component_name)
|
|
10
|
+
stubs_file = Rails.root.join("app/components/#{component_name}/#{component_name}.yml")
|
|
11
|
+
YAML.load_file stubs_file
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Styleguide</title>
|
|
5
|
+
<%= stylesheet_link_tag 'mountain_view/styleguide', media: 'all', 'data-turbolinks-track' => true %>
|
|
6
|
+
<%= javascript_include_tag 'mountain_view/styleguide', 'data-turbolinks-track' => true %>
|
|
7
|
+
|
|
8
|
+
<%= csrf_meta_tags %>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="mv-header">
|
|
12
|
+
<div class="mv-header__logo">STYLEGUIDE</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="mv-flex-wrapper">
|
|
15
|
+
<div class="mv-sidebar">
|
|
16
|
+
<h3>COMPONENTS</h3>
|
|
17
|
+
<ul>
|
|
18
|
+
<%- mv_components.each do |component| %>
|
|
19
|
+
<li>
|
|
20
|
+
<%= link_to component.capitalize, styleguide_path(id: component) %>
|
|
21
|
+
</li>
|
|
22
|
+
<% end %>
|
|
23
|
+
</ul>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="mv-main">
|
|
26
|
+
<%= yield %>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<div class="mv-main__header">
|
|
2
|
+
<h1><%= @component.capitalize %></h1>
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
<% styleguide_stubs(@component).each_with_index do |component_properties, index| %>
|
|
6
|
+
<div class="mv-component">
|
|
7
|
+
<div class="mv-component__item">
|
|
8
|
+
<%= ui_component @component, component_properties %>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="mv-component__description">
|
|
11
|
+
<h2><%= @component.capitalize %> <%= index + 1 %></h2>
|
|
12
|
+
<div class="mv-component__description__definition">
|
|
13
|
+
<code class="language-ruby"><%= ui_component("<%= @component %>", {properties as below}) %></code>
|
|
14
|
+
</div>
|
|
15
|
+
<%- formatted = JSON.pretty_generate component_properties %>
|
|
16
|
+
<pre class="mv-component__description__properties language-ruby"><code><%= formatted.gsub(/\"(\S+)?\":/, '\1:') %></code></pre>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<% end %>
|
data/config/routes.rb
ADDED
data/lib/mountain_view/engine.rb
CHANGED
|
@@ -3,8 +3,12 @@ require 'rails'
|
|
|
3
3
|
|
|
4
4
|
module MountainView
|
|
5
5
|
class Engine < ::Rails::Engine
|
|
6
|
+
isolate_namespace MountainView
|
|
7
|
+
|
|
6
8
|
initializer "mountain_view.assets" do |app|
|
|
7
9
|
Rails.application.config.assets.paths << app.root.join("app", "components")
|
|
10
|
+
Rails.application.config.assets.precompile += %w( mountain_view/styleguide.css
|
|
11
|
+
mountain_view/styleguide.js )
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
initializer "mountain_view.append_view_paths" do |app|
|
|
@@ -12,5 +16,11 @@ module MountainView
|
|
|
12
16
|
append_view_path app.root.join("app", "components")
|
|
13
17
|
end
|
|
14
18
|
end
|
|
19
|
+
|
|
20
|
+
initializer "mountain_view.add_helpers" do
|
|
21
|
+
ActiveSupport.on_load :action_controller do
|
|
22
|
+
helper MountainView::ComponentHelper
|
|
23
|
+
end
|
|
24
|
+
end
|
|
15
25
|
end
|
|
16
26
|
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<div class="card <%= 'card--no-img' if properties[:image_url].nil? %>">
|
|
2
|
+
<%- if properties[:image_url] %>
|
|
3
|
+
<div class="card__image">
|
|
4
|
+
<a href="<%= properties[:link] %>"><img alt="<%= properties[:title] %>" src="<%= properties[:image_url] %>">
|
|
5
|
+
</a>
|
|
6
|
+
</div>
|
|
7
|
+
<% end %>
|
|
8
|
+
<div class="card__content">
|
|
9
|
+
<h3 class="card__content__title">
|
|
10
|
+
<a href="<%= properties[:link] %>"><%= properties[:title] %></a>
|
|
11
|
+
</h3>
|
|
12
|
+
<%- if properties[:description] %>
|
|
13
|
+
<p><%= properties[:description] %></p>
|
|
14
|
+
<%- end %>
|
|
15
|
+
<div class="card__content__data">
|
|
16
|
+
<%- if properties[:data] && properties[:data].any? %>
|
|
17
|
+
<%- properties[:data].each do |data| %>
|
|
18
|
+
<dl>
|
|
19
|
+
<dt><%= data[:number] %></dt>
|
|
20
|
+
<dd><%= data[:title] %></dd>
|
|
21
|
+
</dl>
|
|
22
|
+
<% end %>
|
|
23
|
+
<% end %>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
.card{
|
|
2
|
+
max-width: 300px;
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
background: #FFF;
|
|
5
|
+
border-radius: 4px;
|
|
6
|
+
margin-bottom: 20px;
|
|
7
|
+
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
|
|
8
|
+
-moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.2);
|
|
9
|
+
-webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
|
|
10
|
+
-o-box-shadow: 0px 0px 4px rgba(0,0,0,0.2);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.card--no-img{
|
|
14
|
+
padding: 20px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.card__image img{
|
|
18
|
+
border-radius: 4px 4px 0 0;
|
|
19
|
+
max-width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.card__content{
|
|
23
|
+
padding: 16px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
.card__content__title{
|
|
28
|
+
font-size: 17px;
|
|
29
|
+
margin:0;
|
|
30
|
+
line-height: 1;
|
|
31
|
+
color:#1D7657;
|
|
32
|
+
font-weight: bold;
|
|
33
|
+
margin-bottom: 10px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.card__content__title a{
|
|
37
|
+
color:#1D7657;
|
|
38
|
+
font-size: 17px;
|
|
39
|
+
margin: 0 0 5px 0;
|
|
40
|
+
line-height: 1;
|
|
41
|
+
text-decoration: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.card__content__title a:hover{
|
|
45
|
+
color:#0B4A34;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.card__content p{
|
|
49
|
+
color: #B2B2B2;
|
|
50
|
+
margin: 0;
|
|
51
|
+
font-size: 13px;
|
|
52
|
+
line-height: 1.5;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
.card__content__data{
|
|
57
|
+
padding: 10px 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.card__content__data dl{
|
|
61
|
+
display: inline-block;
|
|
62
|
+
width: 32%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.card__content__data dl dt{
|
|
66
|
+
font-size: 20px;
|
|
67
|
+
margin-bottom: 6px;
|
|
68
|
+
color: #bbb;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.card__content__data dl dd{
|
|
72
|
+
text-transform: uppercase;
|
|
73
|
+
font-size: 11px;
|
|
74
|
+
color: #888;
|
|
75
|
+
font-weight: bold;
|
|
76
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-
|
|
2
|
+
:title: "Aspen Snowmass"
|
|
3
|
+
:description: "Aspen Snowmass is a winter resort complex located in Pitkin County in western Colorado in the United States. Owned and operated by the Aspen Skiing Company it comprises four skiing/snowboarding areas on four adjacent mountains in the vicinity of the towns of Aspen and Snowmass Village."
|
|
4
|
+
:link: "http://google.com"
|
|
5
|
+
:image_url: "http://i.imgur.com/QzuIJTo.jpg"
|
|
6
|
+
:data:
|
|
7
|
+
-
|
|
8
|
+
:title: "Elevation"
|
|
9
|
+
:number: '7879ft'
|
|
10
|
+
-
|
|
11
|
+
:title: "Depth"
|
|
12
|
+
:number: '71"'
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
-
|
|
16
|
+
:title: "Breckenridge, Colorado"
|
|
17
|
+
:link: "http://facebook.com"
|
|
18
|
+
:image_url: "http://i.imgur.com/w7ZyWPg.jpg"
|
|
19
|
+
:data:
|
|
20
|
+
-
|
|
21
|
+
:title: "Open lifts"
|
|
22
|
+
:number: '30'
|
|
23
|
+
-
|
|
24
|
+
:title: "Base"
|
|
25
|
+
:number: '51"'
|
|
26
|
+
-
|
|
27
|
+
:title: "Top"
|
|
28
|
+
:number: '99"'
|
|
29
|
+
|
|
30
|
+
-
|
|
31
|
+
:title: "Sunset on the Mountain"
|
|
32
|
+
:description: "Three major ranges of the Alps – the Northern Calcareous Alps, Central Alps, and Southern Calcareous Alps – run west to east through Austria. The Central Alps, which consist largely of a granite base, are the largest and highest ranges in Austria."
|
|
33
|
+
:link: "http://google.com"
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<div class="header">
|
|
2
|
-
<h1
|
|
3
|
-
|
|
2
|
+
<h1><%= properties[:title] %></h1>
|
|
3
|
+
<%- if properties[:subtitle] %>
|
|
4
|
+
<h3><%= properties[:subtitle] %></h3>
|
|
5
|
+
<% end %>
|
|
4
6
|
</div>
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
.header {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
font-weight: lighter;
|
|
2
|
+
margin-bottom: 30px;
|
|
3
|
+
font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
|
|
4
|
+
position: relative;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.header h1{
|
|
9
8
|
font-size: 30px;
|
|
10
|
-
|
|
9
|
+
color: #333;
|
|
10
|
+
margin-bottom: 10px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.header h3{
|
|
14
|
+
font-size: 20px;
|
|
15
|
+
font-family: 'Georgia';
|
|
16
|
+
color:#888;
|
|
11
17
|
}
|
|
18
|
+
|
|
19
|
+
.header::after{
|
|
20
|
+
content: " ";
|
|
21
|
+
width: 100px;
|
|
22
|
+
position: absolute;
|
|
23
|
+
bottom: -17px;
|
|
24
|
+
left: 0;
|
|
25
|
+
border-bottom: 5px solid #2C9140;
|
|
26
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "active_support"
|
|
4
|
+
require "action_controller"
|
|
5
|
+
require "action_view"
|
|
6
|
+
require "sprockets/railtie"
|
|
4
7
|
|
|
5
8
|
Bundler.require(*Rails.groups)
|
|
6
9
|
require "mountain_view"
|
|
@@ -18,6 +21,43 @@ module Dummy
|
|
|
18
21
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
|
19
22
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
|
20
23
|
# config.i18n.default_locale = :de
|
|
24
|
+
|
|
25
|
+
# support newer rails without warnings
|
|
26
|
+
config.active_support.test_order = :random rescue nil
|
|
27
|
+
|
|
28
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
|
29
|
+
|
|
30
|
+
# The test environment is used exclusively to run your application's
|
|
31
|
+
# test suite. You never need to work with it otherwise. Remember that
|
|
32
|
+
# your test database is "scratch space" for the test suite and is wiped
|
|
33
|
+
# and recreated between test runs. Don't rely on the data there!
|
|
34
|
+
config.cache_classes = true
|
|
35
|
+
|
|
36
|
+
# Do not eager load code on boot. This avoids loading your whole application
|
|
37
|
+
# just for the purpose of running a single test. If you are using a tool that
|
|
38
|
+
# preloads Rails for running tests, you may have to set it to true.
|
|
39
|
+
config.eager_load = false
|
|
40
|
+
|
|
41
|
+
# Configure static asset server for tests with Cache-Control for performance.
|
|
42
|
+
config.static_cache_control = 'public, max-age=3600'
|
|
43
|
+
|
|
44
|
+
config.assets.enabled = true
|
|
45
|
+
|
|
46
|
+
# Show full error reports and disable caching.
|
|
47
|
+
config.consider_all_requests_local = true
|
|
48
|
+
config.action_controller.perform_caching = false
|
|
49
|
+
|
|
50
|
+
# Raise exceptions instead of rendering exception templates.
|
|
51
|
+
config.action_dispatch.show_exceptions = false
|
|
52
|
+
|
|
53
|
+
# Disable request forgery protection in test environment.
|
|
54
|
+
config.action_controller.allow_forgery_protection = false
|
|
55
|
+
|
|
56
|
+
# Print deprecation notices to the stderr.
|
|
57
|
+
config.active_support.deprecation = :stderr
|
|
58
|
+
|
|
59
|
+
# Raises error for missing translations
|
|
60
|
+
# config.action_view.raise_on_missing_translations = true
|
|
21
61
|
end
|
|
22
62
|
end
|
|
23
63
|
|