rails_app_generator 0.1.28 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/generators/project-plan.rb +6 -3
  3. data/.rubocop.yml +2 -1
  4. data/CHANGELOG.md +29 -0
  5. data/after_templates/addons/acts_as_list/_.rb +0 -14
  6. data/after_templates/addons/mini_magick/_.rb +1 -1
  7. data/after_templates/application/printspeak/_.rb +55 -0
  8. data/after_templates/{rag_tailwind/component-section-begin.html → application/printspeak/app/assets/images/.keep} +0 -0
  9. data/after_templates/application/printspeak/app/assets/images/about/1.jpg +0 -0
  10. data/after_templates/application/printspeak/app/assets/images/about/2.jpg +0 -0
  11. data/after_templates/application/printspeak/app/assets/images/about/3.jpg +0 -0
  12. data/after_templates/application/printspeak/app/assets/images/about/4.jpg +0 -0
  13. data/after_templates/application/printspeak/app/assets/images/close-icon.svg +1 -0
  14. data/after_templates/application/printspeak/app/assets/images/header-bg.jpg +0 -0
  15. data/after_templates/application/printspeak/app/assets/images/logos/facebook.svg +34 -0
  16. data/after_templates/application/printspeak/app/assets/images/logos/google.svg +35 -0
  17. data/after_templates/application/printspeak/app/assets/images/logos/ibm.svg +24 -0
  18. data/after_templates/application/printspeak/app/assets/images/logos/microsoft.svg +42 -0
  19. data/after_templates/application/printspeak/app/assets/images/map-image.png +0 -0
  20. data/after_templates/application/printspeak/app/assets/images/navbar-logo.svg +1 -0
  21. data/after_templates/application/printspeak/app/assets/images/portfolio/1.jpg +0 -0
  22. data/after_templates/application/printspeak/app/assets/images/portfolio/2.jpg +0 -0
  23. data/after_templates/application/printspeak/app/assets/images/portfolio/3.jpg +0 -0
  24. data/after_templates/application/printspeak/app/assets/images/portfolio/4.jpg +0 -0
  25. data/after_templates/application/printspeak/app/assets/images/portfolio/5.jpg +0 -0
  26. data/after_templates/application/printspeak/app/assets/images/portfolio/6.jpg +0 -0
  27. data/after_templates/application/printspeak/app/assets/images/portfolio/alphagraphics.jpeg +0 -0
  28. data/after_templates/application/printspeak/app/assets/images/portfolio/brochure-transformed.jpeg +0 -0
  29. data/after_templates/application/printspeak/app/assets/images/portfolio/brochure.jpeg +0 -0
  30. data/after_templates/application/printspeak/app/assets/images/portfolio/kwikkopy.png +0 -0
  31. data/after_templates/application/printspeak/app/assets/images/portfolio/kwikkopy2.png +0 -0
  32. data/after_templates/application/printspeak/app/assets/images/printspeak-logo.svg +19 -0
  33. data/after_templates/application/printspeak/app/assets/images/team/1.jpg +0 -0
  34. data/after_templates/application/printspeak/app/assets/images/team/2.jpg +0 -0
  35. data/after_templates/application/printspeak/app/assets/images/team/3.jpg +0 -0
  36. data/after_templates/application/printspeak/app/assets/stylesheets/application.bootstrap.scss +3 -0
  37. data/after_templates/application/printspeak/app/assets/stylesheets/home/_global.scss +52 -0
  38. data/after_templates/application/printspeak/app/assets/stylesheets/home/_variables.scss +8 -0
  39. data/after_templates/application/printspeak/app/assets/stylesheets/home/components/_buttons.scss +24 -0
  40. data/after_templates/application/printspeak/app/assets/stylesheets/home/components/_navbar.scss +92 -0
  41. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_contact.scss +71 -0
  42. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_footer.scss +9 -0
  43. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_masthead.scss +52 -0
  44. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_portfolio.scss +108 -0
  45. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_team.scss +24 -0
  46. data/after_templates/application/printspeak/app/assets/stylesheets/home/sections/_timeline.scss +214 -0
  47. data/after_templates/application/printspeak/app/assets/stylesheets/home/styles.scss +24 -0
  48. data/after_templates/application/printspeak/app/assets/stylesheets/home/variables/_colors.scss +15 -0
  49. data/after_templates/application/printspeak/app/assets/stylesheets/home/variables/_typography.scss +54 -0
  50. data/after_templates/application/printspeak/app/controllers/home_controller.rb +7 -0
  51. data/after_templates/application/printspeak/app/views/home/index.html.erb +321 -0
  52. data/after_templates/application/printspeak/app/views/layouts/_alerts.html.erb +2 -0
  53. data/after_templates/application/printspeak/app/views/layouts/_footer.html.erb +16 -0
  54. data/after_templates/application/printspeak/app/views/layouts/_navbar.html.erb +14 -0
  55. data/after_templates/application/printspeak/app/views/layouts/application.html.erb +29 -0
  56. data/after_templates/{rag_printspeak → application/printspeak/app/views}/page/_footer.html.erb +0 -0
  57. data/after_templates/{rag_printspeak → application/printspeak/app/views}/page/architecture.html.erb +0 -0
  58. data/after_templates/{rag_printspeak → application/printspeak/app/views}/page/blog.html.erb +0 -0
  59. data/after_templates/{rag_printspeak → application/printspeak/app/views}/page/faq.html.erb +0 -0
  60. data/after_templates/application/printspeak/app/views/page/page_controller.rb +27 -0
  61. data/after_templates/{rag_printspeak → application/printspeak/app/views}/page/readme.html.erb +0 -0
  62. data/after_templates/application/printspeak/db/seeds.rb +16 -0
  63. data/after_templates/printspeak_bak/_.rb +36 -0
  64. data/after_templates/{rag_printspeak → printspeak_bak}/application_controller.rb +0 -0
  65. data/after_templates/{rag_printspeak → printspeak_bak}/faq.html.erb +0 -0
  66. data/after_templates/{rag_printspeak → printspeak_bak}/layouts/_footer.html.erb +0 -0
  67. data/after_templates/{rag_printspeak → printspeak_bak}/layouts/_head.html.erb +0 -0
  68. data/after_templates/{rag_printspeak → printspeak_bak}/layouts/_navbar.html.erb +0 -0
  69. data/after_templates/{rag_printspeak → printspeak_bak}/layouts/application.html.erb +0 -0
  70. data/after_templates/printspeak_bak/page/_footer.html.erb +184 -0
  71. data/after_templates/printspeak_bak/page/architecture.html.erb +33 -0
  72. data/after_templates/printspeak_bak/page/blog.html.erb +44 -0
  73. data/after_templates/printspeak_bak/page/faq.html.erb +2 -0
  74. data/after_templates/{rag_printspeak → printspeak_bak}/page/home.html.erb +0 -0
  75. data/after_templates/{rag_printspeak → printspeak_bak}/page/page_controller.rb +0 -0
  76. data/after_templates/printspeak_bak/page/readme.html.erb +49 -0
  77. data/after_templates/{rag_bootstrap.rb → rag/bootstrap/_.rb} +1 -1
  78. data/after_templates/{rag_bootstrap → rag/bootstrap}/application-yield.html.erb +0 -0
  79. data/after_templates/{rag_bootstrap → rag/bootstrap}/application.html.erb +0 -0
  80. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-fancy.css +0 -0
  81. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-fancy.html +0 -0
  82. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-staff.css +0 -0
  83. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-staff.html +0 -0
  84. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-styled.html +0 -0
  85. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-footer.html +0 -0
  86. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-hero.html +0 -0
  87. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-modal.html +0 -0
  88. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-nav.html +0 -0
  89. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-bootstrap-import.scss +0 -0
  90. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-using-css.css +0 -0
  91. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-using-scss.scss +0 -0
  92. data/after_templates/{rag_bootstrap → rag/bootstrap}/manifest.js +0 -0
  93. data/after_templates/{rag_devise.rb → rag/devise/_.rb} +1 -1
  94. data/after_templates/{rag_devise → rag/devise}/application.html.erb +0 -0
  95. data/after_templates/{rag_devise → rag/devise}/application_controller.rb +0 -0
  96. data/after_templates/{rag_devise → rag/devise}/config/initializers/devise_turbo.rb +0 -0
  97. data/after_templates/{rag_devise → rag/devise}/layouts/_alerts.html.erb +0 -0
  98. data/after_templates/{rag_devise → rag/devise}/layouts/_footer.html.erb +0 -0
  99. data/after_templates/{rag_devise → rag/devise}/layouts/_navbar.html.erb +0 -0
  100. data/after_templates/{rag_devise → rag/devise}/layouts/application.html.erb +0 -0
  101. data/after_templates/{rag_devise → rag/devise}/post/_post.html.erb +0 -0
  102. data/after_templates/{rag_devise → rag/devise}/post/post.rb +0 -0
  103. data/after_templates/{rag_devise → rag/devise}/post/posts_controller.rb +0 -0
  104. data/after_templates/{rag_devise → rag/devise}/seed_data.rb +0 -0
  105. data/after_templates/{rag_devise → rag/devise}/turbo_controller.rb +0 -0
  106. data/after_templates/{rag_devise → rag/devise}/user.rb +0 -0
  107. data/after_templates/{rag_import_map.rb → rag/import_map/_.rb} +1 -1
  108. data/after_templates/{rag_import_map → rag/import_map}/component-sortable.html +0 -0
  109. data/after_templates/{rag_import_map → rag/import_map}/home.css +0 -0
  110. data/after_templates/{rag_import_map → rag/import_map}/position_controller.js +0 -0
  111. data/after_templates/{rag_simple.rb → rag/simple/_.rb} +1 -1
  112. data/after_templates/{rag_tailwind.rb → rag/tailwind/_.rb} +1 -1
  113. data/after_templates/{rag_tailwind → rag/tailwind}/component-cta.html +0 -0
  114. data/after_templates/{rag_tailwind → rag/tailwind}/component-faq.html +0 -0
  115. data/after_templates/{rag_tailwind → rag/tailwind}/component-footer.html +0 -0
  116. data/after_templates/{rag_tailwind → rag/tailwind}/component-hero.html +0 -0
  117. data/after_templates/{rag_tailwind → rag/tailwind}/component-nav.html +0 -0
  118. data/after_templates/{rag_tailwind/component-section-end.html → rag/tailwind/component-section-begin.html} +0 -0
  119. data/after_templates/{rag_tailwind_emulating_bootstrap/home/index.html.erb → rag/tailwind/component-section-end.html} +0 -0
  120. data/after_templates/{rag_tailwind_daisyui.rb → rag/tailwind_daisyui/_.rb} +1 -1
  121. data/after_templates/{rag_tailwind_daisyui → rag/tailwind_daisyui}/index.html.erb +0 -0
  122. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/Procfile.dev +0 -0
  123. data/after_templates/{rag_tailwind_emulating_bootstrap.rb → rag/tailwind_emulating_bootstrap/_.rb} +1 -1
  124. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application.html.erb +0 -0
  125. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application.tailwind.css +0 -0
  126. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application_controller.rb +0 -0
  127. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/_example.html.erb +0 -0
  128. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/bootstrap.html.erb +0 -0
  129. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/home_controller.rb +0 -0
  130. data/after_templates/rag/tailwind_emulating_bootstrap/home/index.html.erb +0 -0
  131. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/tailwind.html.erb +0 -0
  132. data/after_templates/{rag_tailwind_hotwire.rb → rag/tailwind_hotwire/_.rb} +1 -1
  133. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/controller.rb +0 -0
  134. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/helper.rb +0 -0
  135. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/increment.html.erb +0 -0
  136. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/index.html +0 -0
  137. data/after_templates/{rag_tailwind_hotwire_flash.rb → rag/tailwind_hotwire_flash/_.rb} +1 -1
  138. data/after_templates/{rag_tailwind_hotwire_form.rb → rag/tailwind_hotwire_form/_.rb} +1 -1
  139. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_contact.html.erb +0 -0
  140. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_count.html.erb +0 -0
  141. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_flash.html.erb +0 -0
  142. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_form.html.erb +0 -0
  143. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_list.html.erb +0 -0
  144. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.html.erb +0 -0
  145. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.js +0 -0
  146. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.tailwind.css +0 -0
  147. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application_helper.rb +0 -0
  148. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/contact.rb +0 -0
  149. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/contacts_controller.rb +0 -0
  150. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/create.turbo_stream.erb +0 -0
  151. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/edit.html.erb +0 -0
  152. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/index.html.erb +0 -0
  153. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/new.html.erb +0 -0
  154. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/show.html.erb +0 -0
  155. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/update.turbo_stream.erb +0 -0
  156. data/after_templates/{rag_tailwind_hotwire_form_search.rb → rag/tailwind_hotwire_form_search/_.rb} +1 -3
  157. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_contact.html.erb +0 -0
  158. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_count.html.erb +0 -0
  159. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_flash.html.erb +0 -0
  160. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_form.html.erb +0 -0
  161. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_list.html.erb +0 -0
  162. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_theme_changer.html.erb +0 -0
  163. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.html.erb +0 -0
  164. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.js +0 -0
  165. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.tailwind.css +0 -0
  166. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application_helper.rb +0 -0
  167. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/contact.rb +0 -0
  168. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/contacts_controller.rb +0 -0
  169. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/create.turbo_stream.erb +0 -0
  170. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/edit.html.erb +0 -0
  171. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/index.html.erb +0 -0
  172. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/new.html.erb +0 -0
  173. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/search_controller.js +0 -0
  174. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/show.html.erb +0 -0
  175. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/theme_changer_controller.js +0 -0
  176. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/update.turbo_stream.erb +0 -0
  177. data/docs/last_run/app_generator_class.json +430 -0
  178. data/docs/last_run/app_generator_data.json +49 -0
  179. data/docs/last_run/rails_options_class.json +430 -0
  180. data/docs/last_run/rails_options_data.json +57 -0
  181. data/docs/project-plan/project.drawio +49 -46
  182. data/docs/project-plan/project_todo.svg +1 -1
  183. data/exe/rag +2 -0
  184. data/lib/rails_app_generator/addons/annotate.rb +0 -3
  185. data/lib/rails_app_generator/addons/twilio_ruby.rb +13 -0
  186. data/lib/rails_app_generator/app_generator.rb +37 -162
  187. data/lib/rails_app_generator/cli/profile.rb +3 -1
  188. data/lib/rails_app_generator/configuration/rag_configuration.rb +18 -0
  189. data/lib/rails_app_generator/configuration/rag_configuration_extension.rb +14 -0
  190. data/lib/rails_app_generator/options/build_option.rb +14 -9
  191. data/lib/rails_app_generator/options/options_builder.rb +57 -9
  192. data/lib/rails_app_generator/options/rails_options.rb +6 -68
  193. data/lib/rails_app_generator/rag_initializer.rb +252 -0
  194. data/lib/rails_app_generator/util.rb +26 -0
  195. data/lib/rails_app_generator/version.rb +1 -1
  196. data/lib/rails_app_generator.rb +4 -1
  197. data/package-lock.json +2 -2
  198. data/package.json +1 -1
  199. data/profiles/addons/mini_magick.json +2 -1
  200. data/profiles/application/printspeak.json +12 -0
  201. data/profiles/default/printspeak.json +12 -0
  202. data/profiles/{rag-printspeak.json → printspeak.json} +3 -2
  203. data/profiles/{rag-bootstrap.json → rag/bootstrap.json} +1 -1
  204. data/profiles/{rag-devise.json → rag/devise.json} +1 -1
  205. data/profiles/{rag-import-map.json → rag/import-map.json} +1 -1
  206. data/profiles/{rag-simple.json → rag/simple.json} +3 -2
  207. data/profiles/{rag-tailwind-daisyui.json → rag/tailwind-daisyui.json} +1 -1
  208. data/profiles/{rag-tailwind-emulating-bootstrap.json → rag/tailwind-emulating-bootstrap.json} +2 -3
  209. data/profiles/{rag-tailwind-hotwire-flash.json → rag/tailwind-hotwire-flash.json} +1 -1
  210. data/profiles/{rag-tailwind-hotwire-form-search.json → rag/tailwind-hotwire-form-search.json} +1 -1
  211. data/profiles/{rag-tailwind-hotwire-form.json → rag/tailwind-hotwire-form.json} +1 -1
  212. data/profiles/{rag-tailwind-hotwire.json → rag/tailwind-hotwire.json} +1 -1
  213. data/profiles/{rag-tailwind.json → rag/tailwind.json} +3 -2
  214. data/tasks/profile.thor +1 -1
  215. data/templates/thor_task/addon/addon.tt +2 -6
  216. data/templates/thor_task/profile/after_template.rb +1 -0
  217. metadata +208 -130
  218. data/after_templates/rag_printspeak.rb +0 -36
  219. data/profiles/rag-add-some-pages.json +0 -11
  220. data/profiles/rag-sample.json +0 -13
@@ -0,0 +1,92 @@
1
+ //
2
+ // Navbar
3
+ //
4
+
5
+ #mainNav {
6
+ padding-top: 1rem;
7
+ padding-bottom: 1rem;
8
+ background-color: $gray-900;
9
+
10
+ .navbar-toggler {
11
+
12
+ padding: 0.75rem;
13
+ font-size: 0.75rem;
14
+ font-family: $headings-font-family;
15
+ text-transform: uppercase;
16
+ font-weight: $font-weight-bold;
17
+ }
18
+
19
+ .navbar-brand {
20
+ color: $primary;
21
+ font-family: $headings-font-family;
22
+ font-weight: $headings-font-weight;
23
+ letter-spacing: $headings-letter-spacing;
24
+ text-transform: uppercase;
25
+
26
+ img {
27
+ height: 1.5rem;
28
+ }
29
+ }
30
+
31
+ .navbar-nav {
32
+ .nav-item {
33
+ .nav-link {
34
+ font-family: $headings-font-family;
35
+ font-size: 0.95rem;
36
+ color: $white;
37
+ letter-spacing: $headings-letter-spacing;
38
+
39
+ &.active,
40
+ &:hover {
41
+ color: $primary;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ // Responsive styling for screen width equal to or greater than the large breakpoint
49
+ @include media-breakpoint-up(lg) {
50
+ #mainNav {
51
+ padding-top: 1.5rem;
52
+ padding-bottom: 1.5rem;
53
+ border: none;
54
+ background-color: transparent;
55
+ transition: padding-top 0.3s ease-in-out,
56
+ padding-bottom 0.3s ease-in-out;
57
+
58
+ .navbar-brand {
59
+ font-size: 1.5em;
60
+ transition: font-size 0.3s ease-in-out;
61
+
62
+ img {
63
+ height: 2rem;
64
+ transition: height 0.3s ease-in-out;
65
+ }
66
+ }
67
+
68
+ // Styling for when the navbar shrinks on larger screens
69
+ &.navbar-shrink {
70
+ padding-top: 1rem;
71
+ padding-bottom: 1rem;
72
+ background-color: $gray-900;
73
+
74
+ .navbar-brand {
75
+ font-size: 1.25em;
76
+
77
+ svg,
78
+ img {
79
+ height: 1.5rem;
80
+ }
81
+ }
82
+ }
83
+
84
+ .navbar-nav .nav-item {
85
+ margin-right: 1rem;
86
+
87
+ &:last-child {
88
+ margin-right: 0;
89
+ }
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,71 @@
1
+ //
2
+ // Contact section styling
3
+ //
4
+
5
+ section#contact {
6
+ background-color: $gray-900;
7
+ background-image: url("map-image");
8
+ background-repeat: no-repeat;
9
+ background-position: center;
10
+
11
+ .section-heading {
12
+ color: $white;
13
+ }
14
+
15
+ form#contactForm {
16
+ .form-group {
17
+ margin-bottom: $grid-gutter-width;
18
+
19
+ input,
20
+ textarea {
21
+ padding: 1.25rem;
22
+ }
23
+
24
+ input.form-control {
25
+ height: auto;
26
+ }
27
+ }
28
+
29
+ .form-group-textarea {
30
+ height: 100%;
31
+
32
+ textarea {
33
+ height: 100%;
34
+ min-height: 10rem;
35
+ }
36
+ }
37
+
38
+ p.help-block {
39
+ margin: 0;
40
+ }
41
+
42
+ .form-control:focus {
43
+ border-color: $primary;
44
+ box-shadow: none;
45
+ }
46
+
47
+ ::-webkit-input-placeholder {
48
+ font-family: $headings-font-family;
49
+ font-weight: $headings-font-weight;
50
+ color: $gray-400;
51
+ }
52
+
53
+ :-moz-placeholder {
54
+ font-family: $headings-font-family;
55
+ font-weight: $headings-font-weight;
56
+ color: $gray-400;
57
+ }
58
+
59
+ ::-moz-placeholder {
60
+ font-family: $headings-font-family;
61
+ font-weight: $headings-font-weight;
62
+ color: $gray-400;
63
+ }
64
+
65
+ :-ms-input-placeholder {
66
+ font-family: $headings-font-family;
67
+ font-weight: $headings-font-weight;
68
+ color: $gray-400;
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,9 @@
1
+ //
2
+ // Footer section styling
3
+ //
4
+
5
+ .footer {
6
+ text-align: center;
7
+ font-size: 0.9rem;
8
+ font-family: $headings-font-family;
9
+ }
@@ -0,0 +1,52 @@
1
+ //
2
+ // Masthead section styling
3
+ //
4
+
5
+ header.masthead {
6
+ padding-top: 6rem + 4.5rem;
7
+ padding-bottom: 6rem;
8
+ text-align: center;
9
+ color: $white;
10
+ background-image: url("header-bg.jpg");
11
+ background-repeat: no-repeat;
12
+ background-attachment: scroll;
13
+ background-position: center center;
14
+ background-size: cover;
15
+
16
+ .masthead-subheading {
17
+ font-size: 1.5rem;
18
+ font-style: italic;
19
+ line-height: 1.5rem;
20
+ margin-bottom: 25px;
21
+ font-family: $subheadings-font-family;
22
+ }
23
+
24
+ .masthead-heading {
25
+ font-size: 3.25rem;
26
+ font-weight: 700;
27
+ line-height: 3.25rem;
28
+ margin-bottom: 2rem;
29
+ font-family: $headings-font-family;
30
+ }
31
+ }
32
+
33
+ @include media-breakpoint-up(md) {
34
+ header.masthead {
35
+ padding-top: 12.5rem + 4.5rem;
36
+ padding-bottom: 12.5rem;
37
+
38
+ .masthead-subheading {
39
+ font-size: 2.25rem;
40
+ font-style: italic;
41
+ line-height: 2.25rem;
42
+ margin-bottom: 2rem;
43
+ }
44
+
45
+ .masthead-heading {
46
+ font-size: 4.5rem;
47
+ font-weight: 700;
48
+ line-height: 4.5rem;
49
+ margin-bottom: 4rem;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,108 @@
1
+ //
2
+ // Portfolio section styling
3
+ //
4
+
5
+ #portfolio {
6
+ .portfolio-item {
7
+ max-width: 26rem;
8
+ margin-left: auto;
9
+ margin-right: auto;
10
+
11
+ .portfolio-link {
12
+ position: relative;
13
+ display: block;
14
+ margin: 0 auto;
15
+
16
+ .portfolio-hover {
17
+ display: flex;
18
+ position: absolute;
19
+ width: 100%;
20
+ height: 100%;
21
+ background: fade-out($primary, 0.1);
22
+ align-items: center;
23
+ justify-content: center;
24
+ opacity: 0;
25
+ transition: opacity ease-in-out 0.25s;
26
+
27
+ .portfolio-hover-content {
28
+ font-size: 1.25rem;
29
+ color: white;
30
+ }
31
+ }
32
+
33
+ &:hover {
34
+ .portfolio-hover {
35
+ opacity: 1;
36
+ }
37
+ }
38
+ }
39
+
40
+ .portfolio-caption {
41
+ padding: 1.5rem;
42
+ text-align: center;
43
+ background-color: $white;
44
+
45
+ .portfolio-caption-heading {
46
+ font-size: 1.5rem;
47
+ font-family: $headings-font-family;
48
+ font-weight: $headings-font-weight;
49
+ margin-bottom: 0;
50
+ }
51
+
52
+ .portfolio-caption-subheading {
53
+ font-style: italic;
54
+ font-family: $subheadings-font-family;
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ .portfolio-modal {
61
+ .modal-dialog {
62
+ margin: 1rem;
63
+ max-width: 100vw;
64
+ }
65
+
66
+ .modal-content {
67
+ padding-top: 6rem;
68
+ padding-bottom: 6rem;
69
+ text-align: center;
70
+
71
+ h2 {
72
+ font-size: 3rem;
73
+ line-height: 3rem;
74
+ }
75
+
76
+ p.item-intro {
77
+ font-style: italic;
78
+ margin-bottom: 2rem;
79
+ font-family: $subheadings-font-family;
80
+ }
81
+
82
+ p {
83
+ margin-bottom: 2rem;
84
+ }
85
+
86
+ ul.list-inline {
87
+ margin-bottom: 2rem;
88
+ }
89
+
90
+ img {
91
+ margin-bottom: 2rem;
92
+ }
93
+ }
94
+
95
+ .close-modal {
96
+ position: absolute;
97
+ top: 1.5rem;
98
+ right: 1.5rem;
99
+ width: 3rem;
100
+ height: 3rem;
101
+ cursor: pointer;
102
+ background-color: transparent;
103
+
104
+ &:hover {
105
+ opacity: 0.3;
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,24 @@
1
+ //
2
+ // Team section styling
3
+ //
4
+
5
+ .team-member {
6
+ margin-bottom: 3rem;
7
+ text-align: center;
8
+
9
+ img {
10
+ width: 14rem;
11
+ height: 14rem;
12
+ border: 0.5rem solid fade-out($black, 0.9);
13
+ }
14
+
15
+ h4 {
16
+ margin-top: 1.5rem;
17
+ margin-bottom: 0;
18
+ }
19
+ }
20
+
21
+ // Brand images for client section
22
+ .img-brand {
23
+ height: 2.75rem;
24
+ }
@@ -0,0 +1,214 @@
1
+ //
2
+ // Timeline section styling
3
+ //
4
+
5
+ .timeline {
6
+ position: relative;
7
+ padding: 0;
8
+ list-style: none;
9
+
10
+ &:before {
11
+ position: absolute;
12
+ top: 0;
13
+ bottom: 0;
14
+ left: 40px;
15
+ width: 2px;
16
+ margin-left: -1.5px;
17
+ content: "";
18
+ background-color: $gray-200;
19
+ }
20
+
21
+ >li {
22
+ position: relative;
23
+ min-height: 50px;
24
+ margin-bottom: 50px;
25
+
26
+ &:after,
27
+ &:before {
28
+ display: table;
29
+ content: " ";
30
+ }
31
+
32
+ &:after {
33
+ clear: both;
34
+ }
35
+
36
+ .timeline-panel {
37
+ position: relative;
38
+ float: right;
39
+ width: 100%;
40
+ padding: 0 20px 0 100px;
41
+ text-align: left;
42
+
43
+ &:before {
44
+ right: auto;
45
+ left: -15px;
46
+ border-right-width: 15px;
47
+ border-left-width: 0;
48
+ }
49
+
50
+ &:after {
51
+ right: auto;
52
+ left: -14px;
53
+ border-right-width: 14px;
54
+ border-left-width: 0;
55
+ }
56
+ }
57
+
58
+ .timeline-image {
59
+ position: absolute;
60
+ z-index: 100;
61
+ left: 0;
62
+ width: 80px;
63
+ height: 80px;
64
+ margin-left: 0;
65
+ text-align: center;
66
+ color: white;
67
+ border: 7px solid $gray-200;
68
+ border-radius: 100%;
69
+ background-color: $primary;
70
+
71
+ h4 {
72
+ font-size: 10px;
73
+ line-height: 14px;
74
+ margin-top: 12px;
75
+ }
76
+ }
77
+
78
+ &.timeline-inverted>.timeline-panel {
79
+ float: right;
80
+ padding: 0 20px 0 100px;
81
+ text-align: left;
82
+
83
+ &:before {
84
+ right: auto;
85
+ left: -15px;
86
+ border-right-width: 15px;
87
+ border-left-width: 0;
88
+ }
89
+
90
+ &:after {
91
+ right: auto;
92
+ left: -14px;
93
+ border-right-width: 14px;
94
+ border-left-width: 0;
95
+ }
96
+ }
97
+
98
+ &:last-child {
99
+ margin-bottom: 0;
100
+ }
101
+ }
102
+
103
+ .timeline-heading {
104
+ h4 {
105
+ margin-top: 0;
106
+ color: inherit;
107
+
108
+ &.subheading {
109
+ text-transform: none;
110
+ }
111
+ }
112
+ }
113
+
114
+ .timeline-body {
115
+
116
+ >ul,
117
+ >p {
118
+ margin-bottom: 0;
119
+ }
120
+ }
121
+ }
122
+
123
+ @include media-breakpoint-up(md) {
124
+ .timeline {
125
+ &:before {
126
+ left: 50%;
127
+ }
128
+
129
+ >li {
130
+ min-height: 100px;
131
+ margin-bottom: 100px;
132
+
133
+ .timeline-panel {
134
+ float: left;
135
+ width: 41%;
136
+ padding: 0 20px 20px 30px;
137
+ text-align: right;
138
+ }
139
+
140
+ .timeline-image {
141
+ left: 50%;
142
+ width: 100px;
143
+ height: 100px;
144
+ margin-left: -50px;
145
+
146
+ h4 {
147
+ font-size: 13px;
148
+ line-height: 18px;
149
+ margin-top: 16px;
150
+ }
151
+ }
152
+
153
+ &.timeline-inverted>.timeline-panel {
154
+ float: right;
155
+ padding: 0 30px 20px 20px;
156
+ text-align: left;
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ @include media-breakpoint-up(lg) {
163
+ .timeline {
164
+ >li {
165
+ min-height: 150px;
166
+
167
+ .timeline-panel {
168
+ padding: 0 20px 20px;
169
+ }
170
+
171
+ .timeline-image {
172
+ width: 150px;
173
+ height: 150px;
174
+ margin-left: -75px;
175
+
176
+ h4 {
177
+ font-size: 18px;
178
+ line-height: 26px;
179
+ margin-top: 30px;
180
+ }
181
+ }
182
+
183
+ &.timeline-inverted>.timeline-panel {
184
+ padding: 0 20px 20px;
185
+ }
186
+ }
187
+ }
188
+ }
189
+
190
+ @include media-breakpoint-up(xl) {
191
+ .timeline {
192
+ >li {
193
+ min-height: 170px;
194
+
195
+ .timeline-panel {
196
+ padding: 0 20px 20px 100px;
197
+ }
198
+
199
+ .timeline-image {
200
+ width: 170px;
201
+ height: 170px;
202
+ margin-left: -85px;
203
+
204
+ h4 {
205
+ margin-top: 40px;
206
+ }
207
+ }
208
+
209
+ &.timeline-inverted>.timeline-panel {
210
+ padding: 0 100px 20px 20px;
211
+ }
212
+ }
213
+ }
214
+ }
@@ -0,0 +1,24 @@
1
+ //
2
+ // Styles
3
+ //
4
+
5
+ // Import variables
6
+ @import "./variables.scss";
7
+
8
+ // Import Bootstrap
9
+ @import "bootstrap/scss/bootstrap.scss";
10
+
11
+ // Global CSS
12
+ @import "./global.scss";
13
+
14
+ // Components
15
+ @import "./components/buttons.scss";
16
+ @import "./components/navbar.scss";
17
+
18
+ // Sections
19
+ @import "./sections/masthead.scss";
20
+ @import "./sections/portfolio.scss";
21
+ @import "./sections/timeline.scss";
22
+ @import "./sections/team.scss";
23
+ @import "./sections/contact.scss";
24
+ @import "./sections/footer.scss";
@@ -0,0 +1,15 @@
1
+ //
2
+ // Colors
3
+ //
4
+
5
+ // Override Bootstrap color variables
6
+
7
+ $yellow: #ffc800;
8
+
9
+ // Override Bootstrap state colors variables
10
+
11
+ $primary: $yellow;
12
+
13
+ // Override Bootstrap contrast ratio
14
+
15
+ $min-contrast-ratio: 1.5;
@@ -0,0 +1,54 @@
1
+ //
2
+ // Typography
3
+ //
4
+
5
+ // Override the default Bootstrap base font family
6
+ //
7
+ // Roboto Slab is being used below and is brought in
8
+ // via Google fonts in the head of src/pug/index.pug.
9
+ // The fonts listed afterwards are fallbacks.
10
+
11
+ $font-family-base: "Roboto Slab",
12
+ -apple-system,
13
+ BlinkMacSystemFont,
14
+ "Segoe UI",
15
+ Roboto,
16
+ "Helvetica Neue",
17
+ Arial,
18
+ sans-serif,
19
+ "Apple Color Emoji",
20
+ "Segoe UI Emoji",
21
+ "Segoe UI Symbol",
22
+ "Noto Color Emoji";
23
+
24
+ // Override the default Bootstrap headings font family
25
+ //
26
+ // Montserrat is being used below and is brought in
27
+ // via Google fonts in the head of src/pug/index.pug.
28
+ // The fonts listed afterwards are fallbacks.
29
+
30
+ $headings-font-family: "Montserrat",
31
+ -apple-system,
32
+ BlinkMacSystemFont,
33
+ "Segoe UI",
34
+ Roboto,
35
+ "Helvetica Neue",
36
+ Arial,
37
+ sans-serif,
38
+ "Apple Color Emoji",
39
+ "Segoe UI Emoji",
40
+ "Segoe UI Symbol",
41
+ "Noto Color Emoji";
42
+
43
+ // Create a subheadings font family
44
+
45
+ $subheadings-font-family: $font-family-base;
46
+
47
+ // Override Bootstrap default headings variables
48
+
49
+ $headings-font-weight: 700;
50
+ $headings-letter-spacing: 0.0625em;
51
+
52
+ // Override default Bootstrap line height variables
53
+
54
+ $line-height-lg: 1.75;
@@ -0,0 +1,7 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+
5
+ def some_action
6
+ end
7
+ end