rails_app_generator 0.0.5 → 0.0.8
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/.rubocop.yml +1 -0
- data/.vscode/settings.json +3 -0
- data/CHANGELOG.md +23 -0
- data/README.md +9 -0
- data/after_templates/README.md +3 -0
- data/after_templates/___base_template.rb +1 -0
- data/after_templates/___r7_hotwire.rb +1 -0
- data/after_templates/rag_bootstrap/application-yield.html.erb +5 -0
- data/after_templates/rag_bootstrap/application.html.erb +4 -0
- data/after_templates/rag_bootstrap/component-cards-fancy.css +84 -0
- data/after_templates/rag_bootstrap/component-cards-fancy.html +80 -0
- data/after_templates/rag_bootstrap/component-cards-staff.css +90 -0
- data/after_templates/rag_bootstrap/component-cards-staff.html +140 -0
- data/after_templates/rag_bootstrap/component-cards-styled.html +31 -0
- data/after_templates/rag_bootstrap/component-footer.html +34 -0
- data/after_templates/rag_bootstrap/component-hero.html +15 -0
- data/after_templates/rag_bootstrap/component-nav.html +36 -0
- data/after_templates/rag_bootstrap/custom-bootstrap-import.scss +5 -0
- data/after_templates/rag_bootstrap/custom-using-css.css +3 -0
- data/after_templates/rag_bootstrap/custom-using-scss.scss +5 -0
- data/after_templates/rag_bootstrap/manifest.js +3 -0
- data/after_templates/rag_bootstrap.rb +1 -0
- data/after_templates/rag_simple.rb +25 -0
- data/after_templates/rag_tailwind.rb +74 -0
- data/exe/rag +41 -0
- data/lib/rails_app_generator/add_on.rb +73 -0
- data/lib/rails_app_generator/addons/annotate.rb +15 -0
- data/lib/rails_app_generator/addons/continuous_integration.rb +14 -0
- data/lib/rails_app_generator/addons/devise.rb +50 -0
- data/lib/rails_app_generator/addons/docker.rb +14 -0
- data/lib/rails_app_generator/addons/docker_compose.rb +13 -0
- data/lib/rails_app_generator/addons/dotenv.rb +13 -0
- data/lib/rails_app_generator/addons/factory_bot.rb +19 -0
- data/lib/rails_app_generator/addons/foreman.rb +15 -0
- data/lib/rails_app_generator/addons/generators.rb +31 -0
- data/lib/rails_app_generator/addons/high_voltage.rb +15 -0
- data/lib/rails_app_generator/addons/inline_svg.rb +11 -0
- data/lib/rails_app_generator/addons/irbrc.rb +13 -0
- data/lib/rails_app_generator/addons/lograge.rb +13 -0
- data/lib/rails_app_generator/addons/pundit.rb +16 -0
- data/lib/rails_app_generator/addons/rspec.rb +17 -0
- data/lib/rails_app_generator/addons/rubocop.rb +13 -0
- data/lib/rails_app_generator/addons/scaffold.rb +15 -0
- data/lib/rails_app_generator/addons/services.rb +13 -0
- data/lib/rails_app_generator/addons/sidekiq.rb +18 -0
- data/lib/rails_app_generator/addons/stimulus.rb +15 -0
- data/lib/rails_app_generator/addons/stimulus_components.rb +33 -0
- data/lib/rails_app_generator/addons/tailwind.rb +22 -0
- data/lib/rails_app_generator/addons/views.rb +21 -0
- data/lib/rails_app_generator/app_builder.rb +7 -5
- data/lib/rails_app_generator/app_generator.rb +187 -99
- data/lib/rails_app_generator/context.rb +75 -0
- data/lib/rails_app_generator/dependencies.rb +34 -0
- data/lib/rails_app_generator/notes/a1.txt +1 -1
- data/lib/rails_app_generator/notes/a2.txt +1 -1
- data/lib/rails_app_generator/notes/kw01-b.txt +86 -0
- data/lib/rails_app_generator/notes/kw01.txt +91 -0
- data/lib/rails_app_generator/options/map_option_string.rb +2 -0
- data/lib/rails_app_generator/options/rails_options.rb +52 -32
- data/lib/rails_app_generator/starter.rb +17 -8
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +5 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/rag-add-some-pages.json +11 -0
- data/profiles/rag-bootstrap.json +12 -0
- data/profiles/rag-simple.json +11 -0
- data/profiles/rag-tailwind.json +12 -0
- data/templates/README.md.erb +43 -0
- data/templates/addons/annotate/auto_annotate_models.rake +60 -0
- data/templates/addons/continuous_integration/.github/workflows/build.yml.erb +49 -0
- data/templates/addons/devise/app/views/devise/confirmations/new.html.erb +24 -0
- data/templates/addons/devise/app/views/devise/passwords/edit.html.erb +34 -0
- data/templates/addons/devise/app/views/devise/passwords/new.html.erb +23 -0
- data/templates/addons/devise/app/views/devise/registrations/edit.html.erb +62 -0
- data/templates/addons/devise/app/views/devise/registrations/new.html.erb +45 -0
- data/templates/addons/devise/app/views/devise/sessions/new.html.erb +33 -0
- data/templates/addons/devise/app/views/devise/shared/_error_messages.html.erb +15 -0
- data/templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb +5 -0
- data/templates/addons/devise/app/views/devise/shared/_links.html.erb +25 -0
- data/templates/addons/devise/app/views/devise/unlocks/new.html.erb +22 -0
- data/templates/addons/docker/.dockerignore.erb +51 -0
- data/templates/addons/docker/Dockerfile.erb +45 -0
- data/templates/addons/docker_compose/docker-compose.yml.erb +21 -0
- data/templates/addons/dotenv/.env.development.erb +3 -0
- data/templates/addons/foreman/.foreman.erb +1 -0
- data/templates/addons/foreman/Procfile.dev.erb +7 -0
- data/templates/addons/foreman/Procfile.erb +4 -0
- data/templates/addons/generators/lib/generators/rails/navigation/USAGE +6 -0
- data/templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb +16 -0
- data/templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb +12 -0
- data/templates/addons/high_voltage/config/initializers/high_voltage.rb +6 -0
- data/templates/addons/irbrc/.irbrc.erb +13 -0
- data/templates/addons/lograge/config/initializers/lograge.rb +5 -0
- data/templates/addons/pundit/app/controllers/authorized_controller.rb.erb +10 -0
- data/templates/addons/pundit/app/policies/application_policy.rb +57 -0
- data/templates/addons/rspec/spec/rails_helper.rb +26 -0
- data/templates/addons/rspec/spec/spec_helper.rb +61 -0
- data/templates/addons/rubocop/.rubocop.yml.erb +37 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb +39 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb +34 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb +18 -0
- data/templates/addons/services/app/services/application_service.rb +15 -0
- data/templates/app_x/controllers/authorized_controller.rb.erb +10 -0
- data/templates/app_x/controllers/errors_controller.rb.erb +24 -0
- data/templates/app_x/javascript/images/checkmark.svg +1 -0
- data/templates/app_x/javascript/images/logo.svg +1 -0
- data/templates/app_x/javascript/stylesheets/components.scss +206 -0
- data/templates/app_x/views/errors/internal_error.html.erb +14 -0
- data/templates/app_x/views/errors/not_found.html.erb +14 -0
- data/templates/app_x/views/errors/unacceptable.html.erb +14 -0
- data/templates/app_x/views/layouts/application.html.erb.tt +30 -0
- data/templates/app_x/views/pages/home.html.erb.tt +20 -0
- data/templates/app_x/views/shared/_flashes.html.erb.tt +12 -0
- data/templates/app_x/views/shared/_footer.html.erb.tt +21 -0
- data/templates/app_x/views/shared/_navbar.html.erb.tt +55 -0
- data/templates/app_x/workers/application_worker.rb +5 -0
- metadata +207 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 41476a3a9b133970991c3fbf3562c102ba8249f5b682233f20d84884fb8af678
|
|
4
|
+
data.tar.gz: 3a9cf1a5878bbee17e0cfff3c6facac2c8af128bd940ce5bdc6bd5894b6c8cf3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5c88ba2a2ea096fd88795844acd1437af6cc87398f63002ad34dfe99576284ef8ede1e6f34c57b1fe7be9b4fccf174d25211a9084ee8691004c7ed243bc6c061
|
|
7
|
+
data.tar.gz: 0a16711784c631424eea1d80174697b1e04df33d8803b0963e23b76f70c625ceaa05815b665c81ea78c6958872676632187d487e160e1781e90b914d93a1ef00
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## [0.0.7](https://github.com/klueless-io/rails_app_generator/compare/v0.0.6...v0.0.7) (2022-07-22)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add support for profiles and after templates ([1ecf4ab](https://github.com/klueless-io/rails_app_generator/commit/1ecf4abef1bc0f45928a33319ed9db8bebe1c27a))
|
|
7
|
+
|
|
8
|
+
## [0.0.6](https://github.com/klueless-io/rails_app_generator/compare/v0.0.5...v0.0.6) (2022-07-21)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* add a bunch of addons ([b781af6](https://github.com/klueless-io/rails_app_generator/commit/b781af66d7fe7d7dcd2550577166213deefc06c6))
|
|
14
|
+
* add a bunch of addons ([d9a85b7](https://github.com/klueless-io/rails_app_generator/commit/d9a85b7b32c2c25577d98b4b3be9aab7947ff6e9))
|
|
15
|
+
* update template paths in app_generator ([9b28a5e](https://github.com/klueless-io/rails_app_generator/commit/9b28a5ee58535a761581e619eb01dc3059a79948))
|
|
16
|
+
|
|
17
|
+
## [0.0.5](https://github.com/klueless-io/rails_app_generator/compare/v0.0.4...v0.0.5) (2022-07-19)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* add console output capture ([0d66a3b](https://github.com/klueless-io/rails_app_generator/commit/0d66a3ba19c2adbd0f2c0747b8212e7e628c22ba))
|
|
23
|
+
|
|
1
24
|
## [0.0.4](https://github.com/klueless-io/rails_app_generator/compare/v0.0.3...v0.0.4) (2022-07-19)
|
|
2
25
|
|
|
3
26
|
|
data/README.md
CHANGED
|
@@ -22,6 +22,15 @@ Or install it yourself as:
|
|
|
22
22
|
gem install rails_app_generator
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
You can use rails_app_generator to create Rails 7 applications
|
|
28
|
+
You can use rails_app_generator with ruby 2.7 or 3.1
|
|
29
|
+
|
|
30
|
+
Rails new uses a batteries included approach, this means that you get everything and if you don't want a feature you need to turn it off explicitly using --skip-feature
|
|
31
|
+
I hope to change the focus in this project so that you get very minimal installation and then you turn on what you want explicitly.
|
|
32
|
+
Templates for rails are separated from templates for addons
|
|
33
|
+
|
|
25
34
|
## Stories
|
|
26
35
|
|
|
27
36
|
### Main Story
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<%= stylesheet_link_tag "custom-using-css" %>
|
|
2
|
+
<%= stylesheet_link_tag "custom-using-scss" %>
|
|
3
|
+
<%= stylesheet_link_tag "custom-component" %>
|
|
4
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Cards 1 : Source: https://codepen.io/donho_zamo/pen/YzXzPXZ
|
|
2
|
+
|
|
3
|
+
/*---- Main Style ----*/
|
|
4
|
+
#cards_landscape_wrap-2{
|
|
5
|
+
text-align: center;
|
|
6
|
+
background: #F7F7F7;
|
|
7
|
+
}
|
|
8
|
+
#cards_landscape_wrap-2 .container{
|
|
9
|
+
padding-top: 80px;
|
|
10
|
+
padding-bottom: 100px;
|
|
11
|
+
}
|
|
12
|
+
#cards_landscape_wrap-2 a{
|
|
13
|
+
text-decoration: none;
|
|
14
|
+
outline: none;
|
|
15
|
+
}
|
|
16
|
+
#cards_landscape_wrap-2 .card-flyer {
|
|
17
|
+
border-radius: 5px;
|
|
18
|
+
}
|
|
19
|
+
#cards_landscape_wrap-2 .card-flyer .image-box{
|
|
20
|
+
background: #ffffff;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.50);
|
|
23
|
+
border-radius: 5px;
|
|
24
|
+
}
|
|
25
|
+
#cards_landscape_wrap-2 .card-flyer .image-box img{
|
|
26
|
+
-webkit-transition:all .9s ease;
|
|
27
|
+
-moz-transition:all .9s ease;
|
|
28
|
+
-o-transition:all .9s ease;
|
|
29
|
+
-ms-transition:all .9s ease;
|
|
30
|
+
width: 100%;
|
|
31
|
+
height: 200px;
|
|
32
|
+
}
|
|
33
|
+
#cards_landscape_wrap-2 .card-flyer:hover .image-box img{
|
|
34
|
+
opacity: 0.7;
|
|
35
|
+
-webkit-transform:scale(1.15);
|
|
36
|
+
-moz-transform:scale(1.15);
|
|
37
|
+
-ms-transform:scale(1.15);
|
|
38
|
+
-o-transform:scale(1.15);
|
|
39
|
+
transform:scale(1.15);
|
|
40
|
+
}
|
|
41
|
+
#cards_landscape_wrap-2 .card-flyer .text-box{
|
|
42
|
+
text-align: center;
|
|
43
|
+
}
|
|
44
|
+
#cards_landscape_wrap-2 .card-flyer .text-box .text-container{
|
|
45
|
+
padding: 30px 18px;
|
|
46
|
+
}
|
|
47
|
+
#cards_landscape_wrap-2 .card-flyer{
|
|
48
|
+
background: #FFFFFF;
|
|
49
|
+
margin-top: 50px;
|
|
50
|
+
-webkit-transition: all 0.2s ease-in;
|
|
51
|
+
-moz-transition: all 0.2s ease-in;
|
|
52
|
+
-ms-transition: all 0.2s ease-in;
|
|
53
|
+
-o-transition: all 0.2s ease-in;
|
|
54
|
+
transition: all 0.2s ease-in;
|
|
55
|
+
box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.40);
|
|
56
|
+
}
|
|
57
|
+
#cards_landscape_wrap-2 .card-flyer:hover{
|
|
58
|
+
background: #fff;
|
|
59
|
+
box-shadow: 0px 15px 26px rgba(0, 0, 0, 0.50);
|
|
60
|
+
-webkit-transition: all 0.2s ease-in;
|
|
61
|
+
-moz-transition: all 0.2s ease-in;
|
|
62
|
+
-ms-transition: all 0.2s ease-in;
|
|
63
|
+
-o-transition: all 0.2s ease-in;
|
|
64
|
+
transition: all 0.2s ease-in;
|
|
65
|
+
margin-top: 50px;
|
|
66
|
+
}
|
|
67
|
+
#cards_landscape_wrap-2 .card-flyer .text-box p{
|
|
68
|
+
margin-top: 10px;
|
|
69
|
+
margin-bottom: 0px;
|
|
70
|
+
padding-bottom: 0px;
|
|
71
|
+
font-size: 14px;
|
|
72
|
+
letter-spacing: 1px;
|
|
73
|
+
color: #000000;
|
|
74
|
+
}
|
|
75
|
+
#cards_landscape_wrap-2 .card-flyer .text-box h6{
|
|
76
|
+
margin-top: 0px;
|
|
77
|
+
margin-bottom: 4px;
|
|
78
|
+
font-size: 18px;
|
|
79
|
+
font-weight: bold;
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
font-family: 'Roboto Black', sans-serif;
|
|
82
|
+
letter-spacing: 1px;
|
|
83
|
+
color: #00acc1;
|
|
84
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!-- Topic Cards -->
|
|
2
|
+
<div id="cards_landscape_wrap-2">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
|
|
6
|
+
<a href="">
|
|
7
|
+
<div class="card-flyer">
|
|
8
|
+
<div class="text-box">
|
|
9
|
+
<div class="image-box">
|
|
10
|
+
<img src="https://cdn.pixabay.com/photo/2018/03/30/15/11/deer-3275594_960_720.jpg" alt="" />
|
|
11
|
+
</div>
|
|
12
|
+
<div class="text-container">
|
|
13
|
+
<h6>Title 01</h6>
|
|
14
|
+
<p>
|
|
15
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the
|
|
16
|
+
industry's standard dummy text ever since the 1500s.
|
|
17
|
+
</p>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</a>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
|
|
24
|
+
<a href="">
|
|
25
|
+
<div class="card-flyer">
|
|
26
|
+
<div class="text-box">
|
|
27
|
+
<div class="image-box">
|
|
28
|
+
<img src="https://cdn.pixabay.com/photo/2018/04/09/19/55/low-poly-3305284_960_720.jpg" alt="" />
|
|
29
|
+
</div>
|
|
30
|
+
<div class="text-container">
|
|
31
|
+
<h6>Title 02</h6>
|
|
32
|
+
<p>
|
|
33
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the
|
|
34
|
+
industry's standard dummy text ever since the 1500s.
|
|
35
|
+
</p>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</a>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
|
|
42
|
+
<a href="">
|
|
43
|
+
<div class="card-flyer">
|
|
44
|
+
<div class="text-box">
|
|
45
|
+
<div class="image-box">
|
|
46
|
+
<img src="https://cdn.pixabay.com/photo/2018/04/06/13/46/poly-3295856_960_720.png" alt="" />
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="text-container">
|
|
50
|
+
<h6>Title 03</h6>
|
|
51
|
+
<p>
|
|
52
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the
|
|
53
|
+
industry's standard dummy text ever since the 1500s.
|
|
54
|
+
</p>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</a>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
|
|
61
|
+
<a href="">
|
|
62
|
+
<div class="card-flyer">
|
|
63
|
+
<div class="text-box">
|
|
64
|
+
<div class="image-box">
|
|
65
|
+
<img src="https://cdn.pixabay.com/photo/2018/03/30/15/12/dog-3275593_960_720.jpg" alt="" />
|
|
66
|
+
</div>
|
|
67
|
+
<div class="text-container">
|
|
68
|
+
<h6>Title 04</h6>
|
|
69
|
+
<p>
|
|
70
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the
|
|
71
|
+
industry's standard dummy text ever since the 1500s.
|
|
72
|
+
</p>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</a>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Cards 2 - Source: https://codepen.io/design007/pen/KKmbZzm
|
|
2
|
+
|
|
3
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
|
|
4
|
+
@import url('https://use.fontawesome.com/releases/v5.13.0/css/all.css');
|
|
5
|
+
:root {
|
|
6
|
+
--font3: 'Roboto', sans-serif;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.h1,
|
|
10
|
+
h1 {
|
|
11
|
+
font-size: 1.5rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.container-fluid {
|
|
15
|
+
max-width: 1400px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.card {
|
|
19
|
+
background: #fff;
|
|
20
|
+
box-shadow: 0 6px 10px rgba(0, 0, 0, 0.08), 0 0 6px rgba(0, 0, 0, 0.05);
|
|
21
|
+
border: 1;
|
|
22
|
+
border-radius: 1rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.img-hover-zoom--colorize img {
|
|
26
|
+
border-radius: 50%;
|
|
27
|
+
width: 150px;
|
|
28
|
+
height: auto;
|
|
29
|
+
margin-top: 20px;
|
|
30
|
+
padding: 1px;
|
|
31
|
+
transition: transform 0.5s;
|
|
32
|
+
filter: grayscale(100%);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.img-hover-zoom--colorize:hover img {
|
|
36
|
+
filter: grayscale(0);
|
|
37
|
+
transform: scale(1.05);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.card h5 {
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
height: 80px;
|
|
43
|
+
font-weight: 300;
|
|
44
|
+
font-size: 1rem;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.card h5 a {
|
|
48
|
+
color: black;
|
|
49
|
+
text-decoration: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.role {
|
|
53
|
+
color: #7a7a7a;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.box {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.fab {
|
|
63
|
+
font-size: 1.5rem;
|
|
64
|
+
color: darkgray;
|
|
65
|
+
transition: transform 0.5s;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.fab:hover {
|
|
69
|
+
color: black;
|
|
70
|
+
transform: scale(1.1);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.card h2 {
|
|
74
|
+
font-size: 1rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* MEDIA */
|
|
78
|
+
|
|
79
|
+
@media only screen and (min-width: 1200px) {
|
|
80
|
+
.img-hover-zoom--colorize img {
|
|
81
|
+
width: 200px;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@media only screen and (min-width: 1200px) {
|
|
86
|
+
.h1,
|
|
87
|
+
h1 {
|
|
88
|
+
font-size: 2rem;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
<div class="container p-5">
|
|
2
|
+
<div class="row row-cols-1 row-cols-xs-2 row-cols-sm-2 row-cols-lg-4 g-3">
|
|
3
|
+
<div class="col">
|
|
4
|
+
<div class="card h-100 shadow-sm">
|
|
5
|
+
<div class="text-center">
|
|
6
|
+
<div class="img-hover-zoom img-hover-zoom--colorize">
|
|
7
|
+
<img
|
|
8
|
+
class="shadow"
|
|
9
|
+
src="https://source.unsplash.com/rDEOVtE7vOs/600x600"
|
|
10
|
+
alt="Another Image zoom-on-hover effect"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="card-body">
|
|
16
|
+
<div class="clearfix mb-3"></div>
|
|
17
|
+
|
|
18
|
+
<div class="my-2 text-center">
|
|
19
|
+
<h1>Mia Wallace</h1>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="mb-3">
|
|
22
|
+
<h2 class="text-uppercase text-center role">Senior Frontend Developer</h2>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="box">
|
|
25
|
+
<div>
|
|
26
|
+
<ul class="list-inline">
|
|
27
|
+
<li class="list-inline-item"><i class="fab fa-github"></i></li>
|
|
28
|
+
<li class="list-inline-item"><i class="fab fa-linkedin-in"></i></li>
|
|
29
|
+
<li class="list-inline-item"><i class="fab fa-instagram"></i></li>
|
|
30
|
+
<li class="list-inline-item"><i class="fab fa-twitter"></i></li>
|
|
31
|
+
</ul>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="col">
|
|
38
|
+
<div class="card h-100 shadow-sm">
|
|
39
|
+
<div class="text-center">
|
|
40
|
+
<div class="img-hover-zoom img-hover-zoom--colorize">
|
|
41
|
+
<img
|
|
42
|
+
class="shadow"
|
|
43
|
+
src="https://source.unsplash.com/XHVpWcr5grQ/600x600"
|
|
44
|
+
alt="Another Image zoom-on-hover effect"
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="card-body">
|
|
50
|
+
<div class="clearfix mb-3"></div>
|
|
51
|
+
|
|
52
|
+
<div class="my-2 text-center">
|
|
53
|
+
<h1>Vincent Vega</h1>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="mb-3">
|
|
56
|
+
<h2 class="text-uppercase text-center role">SEO Specialist</h2>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="box">
|
|
59
|
+
<div>
|
|
60
|
+
<ul class="list-inline">
|
|
61
|
+
<li class="list-inline-item"><i class="fab fa-github"></i></li>
|
|
62
|
+
<li class="list-inline-item"><i class="fab fa-linkedin-in"></i></li>
|
|
63
|
+
<li class="list-inline-item"><i class="fab fa-instagram"></i></li>
|
|
64
|
+
<li class="list-inline-item"><i class="fab fa-twitter"></i></li>
|
|
65
|
+
</ul>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="col">
|
|
72
|
+
<div class="card h-100 shadow-sm">
|
|
73
|
+
<div class="text-center">
|
|
74
|
+
<div class="img-hover-zoom img-hover-zoom--colorize">
|
|
75
|
+
<img
|
|
76
|
+
class="shadow"
|
|
77
|
+
src="https://source.unsplash.com/n4KewLKFOZw/600x600"
|
|
78
|
+
alt="Another Image zoom-on-hover effect"
|
|
79
|
+
/>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<div class="card-body">
|
|
84
|
+
<div class="clearfix mb-3"></div>
|
|
85
|
+
|
|
86
|
+
<div class="my-2 text-center">
|
|
87
|
+
<h1>Mr. Wolf</h1>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="mb-3">
|
|
90
|
+
<h2 class="text-uppercase text-center role">DIGITAL MARKETING SPECIALIST</h2>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="box">
|
|
93
|
+
<div>
|
|
94
|
+
<ul class="list-inline">
|
|
95
|
+
<li class="list-inline-item"><i class="fab fa-github"></i></li>
|
|
96
|
+
<li class="list-inline-item"><i class="fab fa-linkedin-in"></i></li>
|
|
97
|
+
<li class="list-inline-item"><i class="fab fa-instagram"></i></li>
|
|
98
|
+
<li class="list-inline-item"><i class="fab fa-twitter"></i></li>
|
|
99
|
+
</ul>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="col">
|
|
106
|
+
<div class="card h-100 shadow-sm">
|
|
107
|
+
<div class="text-center">
|
|
108
|
+
<div class="img-hover-zoom img-hover-zoom--colorize">
|
|
109
|
+
<img
|
|
110
|
+
class="shadow"
|
|
111
|
+
src="https://source.unsplash.com/B4TjXnI0Y2c/600x600"
|
|
112
|
+
alt="Another Image zoom-on-hover effect"
|
|
113
|
+
/>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<div class="card-body">
|
|
118
|
+
<div class="clearfix mb-3"></div>
|
|
119
|
+
|
|
120
|
+
<div class="my-2 text-center">
|
|
121
|
+
<h1>O-Ren Ishii</h1>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="mb-3">
|
|
124
|
+
<h2 class="text-uppercase text-center role">Web Developer</h2>
|
|
125
|
+
</div>
|
|
126
|
+
<div class="box">
|
|
127
|
+
<div>
|
|
128
|
+
<ul class="list-inline">
|
|
129
|
+
<li class="list-inline-item"><i class="fab fa-github"></i></li>
|
|
130
|
+
<li class="list-inline-item"><i class="fab fa-linkedin-in"></i></li>
|
|
131
|
+
<li class="list-inline-item"><i class="fab fa-instagram"></i></li>
|
|
132
|
+
<li class="list-inline-item"><i class="fab fa-twitter"></i></li>
|
|
133
|
+
</ul>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<div class="m-4">
|
|
2
|
+
<div class="row row-cols-1 row-cols-md-3 g-3">
|
|
3
|
+
<div class="col">
|
|
4
|
+
<!-- Card with default left text alignment -->
|
|
5
|
+
<div class="card">
|
|
6
|
+
<div class="card-body card1">
|
|
7
|
+
<h3 class="card-title">Bootstrap @import</h3>
|
|
8
|
+
<p class="card-text">Use standard SAAS transpiling</p>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="col">
|
|
13
|
+
<!-- Card with center text alignment -->
|
|
14
|
+
<div class="card text-center">
|
|
15
|
+
<div class="card-body card2">
|
|
16
|
+
<h3 class="card-title">CSS</h3>
|
|
17
|
+
<p class="card-text">Using plain CSS files</p>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="col">
|
|
22
|
+
<!-- Card with right text alignment -->
|
|
23
|
+
<div class="card text-end">
|
|
24
|
+
<div class="card-body card3">
|
|
25
|
+
<h3 class="card-title">SCSS</h3>
|
|
26
|
+
<p class="card-text">Using SASS/SCSS files</p>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<footer class="bg-dark text-center text-white">
|
|
2
|
+
<!-- Grid container -->
|
|
3
|
+
<div class="container p-4 pb-0">
|
|
4
|
+
<!-- Section: Social media -->
|
|
5
|
+
<section class="mb-4">
|
|
6
|
+
<!-- Facebook -->
|
|
7
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-facebook-f"></i></a>
|
|
8
|
+
|
|
9
|
+
<!-- Twitter -->
|
|
10
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-twitter"></i></a>
|
|
11
|
+
|
|
12
|
+
<!-- Google -->
|
|
13
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-google"></i></a>
|
|
14
|
+
|
|
15
|
+
<!-- Instagram -->
|
|
16
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-instagram"></i></a>
|
|
17
|
+
|
|
18
|
+
<!-- Linkedin -->
|
|
19
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-linkedin-in"></i></a>
|
|
20
|
+
|
|
21
|
+
<!-- Github -->
|
|
22
|
+
<a class="btn btn-outline-light btn-floating m-1" href="#!" role="button"><i class="fab fa-github"></i></a>
|
|
23
|
+
</section>
|
|
24
|
+
<!-- Section: Social media -->
|
|
25
|
+
</div>
|
|
26
|
+
<!-- Grid container -->
|
|
27
|
+
|
|
28
|
+
<!-- Copyright -->
|
|
29
|
+
<div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.2)">
|
|
30
|
+
© 2020 Copyright:
|
|
31
|
+
<a class="text-white" href="https://mdbootstrap.com/">MDBootstrap.com</a>
|
|
32
|
+
</div>
|
|
33
|
+
<!-- Copyright -->
|
|
34
|
+
</footer>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<div class="px-4 pt-5 my-5 text-center border-bottom">
|
|
2
|
+
<h1 class="display-4 fw-bold">Centered screenshot</h1>
|
|
3
|
+
<div class="col-lg-6 mx-auto">
|
|
4
|
+
<p class="lead mb-4">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
|
|
5
|
+
<div class="d-grid gap-2 d-sm-flex justify-content-sm-center mb-5">
|
|
6
|
+
<button type="button" class="btn btn-primary btn-lg px-4 me-sm-3" data-bs-toggle="modal" data-bs-target="#exampleModal">Click Me</button>
|
|
7
|
+
<%= link_to 'People', people_path, class: "btn btn-outline-secondary btn-lg px-4" %>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="overflow-hidden" style="max-height: 30vh;">
|
|
11
|
+
<div class="container px-5">
|
|
12
|
+
<img src="https://getbootstrap.com/docs/5.0/examples/heroes/bootstrap-themes.png" class="img-fluid border rounded-3 shadow-lg mb-4" alt="Example image" width="700" height="500" loading="lazy">
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
|
2
|
+
<div class="container-fluid">
|
|
3
|
+
<a class="navbar-brand" href="#">Navbar</a>
|
|
4
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
|
5
|
+
<span class="navbar-toggler-icon"></span>
|
|
6
|
+
</button>
|
|
7
|
+
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
|
8
|
+
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
|
9
|
+
<li class="nav-item">
|
|
10
|
+
<a class="nav-link active" aria-current="page" href="#">Home</a>
|
|
11
|
+
</li>
|
|
12
|
+
<li class="nav-item">
|
|
13
|
+
<a class="nav-link" href="#">Link</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li class="nav-item dropdown">
|
|
16
|
+
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
17
|
+
Dropdown
|
|
18
|
+
</a>
|
|
19
|
+
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
|
20
|
+
<li><a class="dropdown-item" href="#">Action</a></li>
|
|
21
|
+
<li><a class="dropdown-item" href="#">Another action</a></li>
|
|
22
|
+
<li><hr class="dropdown-divider"></li>
|
|
23
|
+
<li><a class="dropdown-item" href="#">Something else here</a></li>
|
|
24
|
+
</ul>
|
|
25
|
+
</li>
|
|
26
|
+
<li class="nav-item">
|
|
27
|
+
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
|
|
28
|
+
</li>
|
|
29
|
+
</ul>
|
|
30
|
+
<form class="d-flex">
|
|
31
|
+
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
|
|
32
|
+
<button class="btn btn-outline-success" type="submit">Search</button>
|
|
33
|
+
</form>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</nav>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Rails 7 with Bootstrap CSS and custom CSS
|
|
4
|
+
# https://www.youtube.com/watch?v=tYr8yn7yRKw
|
|
5
|
+
|
|
6
|
+
require 'pry'
|
|
7
|
+
|
|
8
|
+
self.local_template_path = File.join(File.dirname(__FILE__), 'rag_simple')
|
|
9
|
+
|
|
10
|
+
gac 'base rails 7 image created'
|
|
11
|
+
|
|
12
|
+
def application_html
|
|
13
|
+
<<-HTML
|
|
14
|
+
<div class="container">
|
|
15
|
+
<div class="row">
|
|
16
|
+
<%= yield %>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
HTML
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
gsub_file 'app/views/layouts/application.html.erb' , %( <%= yield %>), application_html
|
|
23
|
+
|
|
24
|
+
# after_bundle do
|
|
25
|
+
# end
|