beyond_canvas 0.11.2.pre → 0.15.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -20
  3. data/app/assets/images/icons/checkbox_checked.svg +1 -0
  4. data/app/assets/images/icons/checkbox_unchecked.svg +1 -0
  5. data/app/assets/images/icons/file.svg +1 -0
  6. data/app/assets/images/icons/flash_checkbox.svg +1 -0
  7. data/app/assets/images/icons/flash_close.svg +1 -0
  8. data/app/assets/images/icons/flash_error.svg +1 -0
  9. data/app/assets/images/icons/flash_info.svg +1 -0
  10. data/app/assets/images/icons/flash_warning.svg +1 -0
  11. data/app/assets/images/icons/radiobutton_checked.svg +1 -0
  12. data/app/assets/images/icons/radiobutton_unchecked.svg +1 -0
  13. data/app/assets/javascripts/beyond_canvas/base.js +94 -0
  14. data/app/assets/stylesheets/beyond_canvas/base.scss +28 -0
  15. data/app/assets/stylesheets/beyond_canvas/components/_actions.scss +6 -0
  16. data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +112 -0
  17. data/app/assets/stylesheets/beyond_canvas/components/_cards.scss +34 -0
  18. data/app/assets/stylesheets/beyond_canvas/components/_comments.scss +6 -0
  19. data/app/assets/stylesheets/beyond_canvas/components/_containers.scss +37 -0
  20. data/app/assets/stylesheets/beyond_canvas/components/_flash.scss +66 -0
  21. data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +43 -0
  22. data/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +143 -0
  23. data/app/assets/stylesheets/beyond_canvas/components/_layouts.scss +7 -0
  24. data/app/assets/stylesheets/beyond_canvas/components/_links.scss +17 -0
  25. data/app/assets/stylesheets/beyond_canvas/components/_main.scss +39 -0
  26. data/app/assets/stylesheets/beyond_canvas/components/_margins.scss +9 -0
  27. data/app/assets/stylesheets/beyond_canvas/components/_markdown.scss +74 -0
  28. data/app/assets/stylesheets/beyond_canvas/components/_notices.scss +58 -0
  29. data/app/assets/stylesheets/beyond_canvas/components/_relative.scss +3 -0
  30. data/app/assets/stylesheets/beyond_canvas/components/_spinner.scss +48 -0
  31. data/app/assets/stylesheets/beyond_canvas/components/_tables.scss +31 -0
  32. data/app/assets/stylesheets/beyond_canvas/components/_texts.scss +7 -0
  33. data/app/assets/stylesheets/beyond_canvas/mailer.scss +5 -0
  34. data/app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss +6 -0
  35. data/app/assets/stylesheets/beyond_canvas/settings/{_reset_css.sass → _reset_css.scss} +29 -21
  36. data/app/assets/stylesheets/beyond_canvas/settings/_typography.scss +67 -0
  37. data/app/assets/stylesheets/beyond_canvas/settings/_variables.scss +171 -0
  38. data/app/assets/stylesheets/beyond_canvas/utilities/_functions.scss +15 -0
  39. data/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss +24 -0
  40. data/app/controllers/beyond_canvas/application_controller.rb +2 -2
  41. data/app/controllers/beyond_canvas/system_controller.rb +24 -0
  42. data/app/controllers/concerns/beyond_canvas/locale_management.rb +18 -20
  43. data/app/controllers/concerns/beyond_canvas/request_validation.rb +37 -0
  44. data/app/controllers/concerns/beyond_canvas/status_codes.rb +17 -0
  45. data/app/form_builders/beyond_canvas/form_builder.rb +74 -13
  46. data/app/helpers/beyond_canvas/application_helper.rb +17 -18
  47. data/app/helpers/beyond_canvas/locale_switch_helper.rb +1 -1
  48. data/app/javascript/beyond_canvas/base.js +6 -0
  49. data/app/{assets/javascripts/beyond_canvas → javascript/beyond_canvas/initializers}/buttons.js +19 -14
  50. data/app/{assets/javascripts/beyond_canvas → javascript/beyond_canvas/initializers}/flash.js +11 -7
  51. data/app/javascript/beyond_canvas/initializers/inputs.js +39 -0
  52. data/app/views/beyond_canvas/custom/_public_head.html.erb +1 -0
  53. data/app/views/beyond_canvas/locales/_edit.html.erb +8 -0
  54. data/app/views/beyond_canvas/mailer/_header.html.erb +2 -2
  55. data/app/views/beyond_canvas/shared/_flash.html.erb +13 -0
  56. data/app/views/beyond_canvas/shared/_head.html.erb +29 -0
  57. data/app/views/beyond_canvas/shared/_logo.html.erb +2 -0
  58. data/app/views/layouts/beyond_canvas/public.html.erb +16 -0
  59. data/config/initializers/beyond_canvas/filter_parameter_logging.rb +9 -0
  60. data/config/routes.rb +1 -1
  61. data/lib/beyond_canvas.rb +13 -16
  62. data/lib/beyond_canvas/asset_registration.rb +29 -0
  63. data/lib/beyond_canvas/configuration.rb +27 -0
  64. data/lib/beyond_canvas/engine.rb +12 -1
  65. data/lib/beyond_canvas/version.rb +1 -1
  66. data/lib/generators/beyond_canvas/assets/assets_generator.rb +14 -0
  67. data/lib/generators/beyond_canvas/assets/templates/beyond_canvas.js +1 -0
  68. data/lib/generators/beyond_canvas/assets/templates/beyond_canvas.scss +1 -0
  69. data/lib/generators/beyond_canvas/beyond_api/beyond_api_generator.rb +19 -0
  70. data/lib/generators/beyond_canvas/{custom_styles_generator.rb → custom_styles/custom_styles_generator.rb} +2 -2
  71. data/lib/generators/{templates → beyond_canvas/custom_styles/templates}/beyond_canvas_custom_styles.sass +0 -0
  72. data/lib/generators/beyond_canvas/install/install_generator.rb +35 -0
  73. data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +40 -0
  74. data/lib/generators/beyond_canvas/webpacker/plugins/jquery.js +7 -0
  75. data/lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.js +3 -0
  76. data/lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.scss +1 -0
  77. data/lib/generators/beyond_canvas/webpacker/webpacker_generator.rb +26 -0
  78. metadata +107 -66
  79. data/app/assets/javascripts/beyond_canvas.js +0 -3
  80. data/app/assets/javascripts/beyond_canvas/inputs.js +0 -28
  81. data/app/assets/stylesheets/beyond_canvas.sass +0 -24
  82. data/app/assets/stylesheets/beyond_canvas/components/_actions.sass +0 -5
  83. data/app/assets/stylesheets/beyond_canvas/components/_buttons.sass +0 -86
  84. data/app/assets/stylesheets/beyond_canvas/components/_cards.sass +0 -26
  85. data/app/assets/stylesheets/beyond_canvas/components/_comments.sass +0 -5
  86. data/app/assets/stylesheets/beyond_canvas/components/_flash.sass +0 -51
  87. data/app/assets/stylesheets/beyond_canvas/components/_forms.sass +0 -32
  88. data/app/assets/stylesheets/beyond_canvas/components/_inputs.sass +0 -79
  89. data/app/assets/stylesheets/beyond_canvas/components/_links.sass +0 -13
  90. data/app/assets/stylesheets/beyond_canvas/components/_main.sass +0 -28
  91. data/app/assets/stylesheets/beyond_canvas/components/_margins.sass +0 -7
  92. data/app/assets/stylesheets/beyond_canvas/components/_markdown.sass +0 -60
  93. data/app/assets/stylesheets/beyond_canvas/components/_notices.sass +0 -41
  94. data/app/assets/stylesheets/beyond_canvas/components/_relative.sass +0 -2
  95. data/app/assets/stylesheets/beyond_canvas/components/_spinner.sass +0 -38
  96. data/app/assets/stylesheets/beyond_canvas/components/_tables.sass +0 -25
  97. data/app/assets/stylesheets/beyond_canvas/components/_texts.sass +0 -6
  98. data/app/assets/stylesheets/beyond_canvas/mailer.sass +0 -5
  99. data/app/assets/stylesheets/beyond_canvas/settings/_typography.sass +0 -53
  100. data/app/assets/stylesheets/beyond_canvas/settings/_variables.sass +0 -145
  101. data/app/assets/stylesheets/beyond_canvas/utilities/_mixins.sass +0 -19
  102. data/app/views/beyond_canvas/custom/_public_head.html.slim +0 -0
  103. data/app/views/beyond_canvas/shared/_flash.html.slim +0 -6
  104. data/app/views/beyond_canvas/shared/_head.html.slim +0 -20
  105. data/app/views/beyond_canvas/shared/_locale_switch.html.slim +0 -6
  106. data/app/views/beyond_canvas/shared/_logo.html.slim +0 -2
  107. data/app/views/layouts/beyond_canvas/public.html.slim +0 -12
  108. data/config/initializers/beyond_canvas/assets.rb +0 -5
  109. data/lib/generators/beyond_canvas/install_generator.rb +0 -13
  110. data/lib/generators/templates/beyond_canvas.rb +0 -8
  111. data/lib/generators/templates/beyond_canvas_form_utils.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e3fb33f8c3a76af104b94c6bb5291c6c6b4a4a0ff9e62f5388c282289f0dec9
4
- data.tar.gz: 41a5f4403e38347a5050e8a0390ecf636617d60813f0e76d709003e7b32d9261
3
+ metadata.gz: d367f6132c52453a85ad880605b90ba30811ef32da9bc28dd1f685e8554c2e41
4
+ data.tar.gz: 91a7c9f2f15564fe0752aeed2b682f938d595b82e48df9b1148e72dbe3429b98
5
5
  SHA512:
6
- metadata.gz: 49992be8568fb4962642c4e400753d1ceec3daa8b7802d2065864a2ae6ba7b6e678217342a74baa3dfa75938fc0159dc893fcd40a8c2dcc1f7e555149ae25031
7
- data.tar.gz: 35a6b36b8832265a71a4e40bb7ff3eca879cca0dae6cc72d980d86dfc972c9f7b509720d414dfac527e242d0fe6ed78660b97eb98085b129ad7b55817c4415ca
6
+ metadata.gz: de56ea97d47081b565a4ba795ab8ee105ba9faf0ff6cbb6e42f852ef160b68804885714583c5d7c3090bdf720a80d53d6cc028664368a81abd1f5a8839d8df13
7
+ data.tar.gz: 12cd7fb3261b4fce0f620cc8179ff160ed17f62f82eae55a67e6316986b90c842dcb4ed15c8c68a54108bd4e45ff5614da3d08918c994f204e6c8a98dd9078f8
data/README.md CHANGED
@@ -49,26 +49,7 @@
49
49
  $ rails g beyond_canvas:install
50
50
  ```
51
51
 
52
- This will generate `config/initializers/beyond_canvas.rb` file, used for general Beyond Canvas configuration
53
-
54
- ## Style Customization
55
-
56
- Beyond Canvas comes with _out-of-the-box_ styles to make your app look like as a Beyond integrated one. If you want to customize the gem styles, follow these instructions:
57
-
58
- 1. Run the custom style generator:
59
-
60
- ```bash
61
- $ rails g beyond_canvas:custom_styles
62
- ```
63
-
64
- This command will generate a file (`app/assets/stylesheets/_beyond_canvas_custom_styles.sass`) that contains all variables you can customize.
65
-
66
- 1. Import the custom styles **before** Beyond Canvas itself (to override the default styles) on `application.scss`:
67
-
68
- ```scss
69
- @import 'beyond_canvas_custom_styles'
70
- @import 'beyond_canvas'
71
- ```
52
+ This will generate `config/initializers/beyond_canvas.rb` file, used for general Beyond Canvas configuration. Read [this wiki entry](https://github.com/ePages-de/beyond_canvas/wiki/Initializer) to get more information about the different configuration options.
72
53
 
73
54
  ## Documentation
74
55
 
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff;" width="16" height="16" viewBox="0 0 24 24"><path fill="#97C344" d="M0 0v24h24V0H0zm9.6 18.4l-5.8-5.6 2-2.1 3.7 3.6L18 5.6l2.1 2.1L9.6 18.4z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #ffff;" width="16" height="16" viewBox="0 0 24 24"><path fill="#c2bf9d" d="M0 0v24h24V0H0zm21.5 21.5h-19v-19h19v19z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2v5h5v15h-16v-20h11zm1-2h-14v24h20v-18l-6-6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1.959 17l-4.5-4.319 1.395-1.435 3.08 2.937 7.021-7.183 1.422 1.409-8.418 8.591z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 20.188l-8.315-8.209 8.2-8.282-3.697-3.697-8.212 8.318-8.31-8.203-3.666 3.666 8.321 8.24-8.206 8.313 3.666 3.666 8.237-8.318 8.285 8.203z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6 16.538l-4.592-4.548 4.546-4.587-1.416-1.403-4.545 4.589-4.588-4.543-1.405 1.405 4.593 4.552-4.547 4.592 1.405 1.405 4.555-4.596 4.591 4.55 1.403-1.416z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.25 7c0 .69-.56 1.25-1.25 1.25s-1.25-.56-1.25-1.25.56-1.25 1.25-1.25 1.25.56 1.25 1.25zm10.75 5c0 6.627-5.373 12-12 12s-12-5.373-12-12 5.373-12 12-12 12 5.373 12 12zm-2 0c0-5.514-4.486-10-10-10s-10 4.486-10 10 4.486 10 10 10 10-4.486 10-10zm-13-2v2h2v6h2v-8h-4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1 6h2v8h-2v-8zm1 12.25c-.69 0-1.25-.56-1.25-1.25s.56-1.25 1.25-1.25 1.25.56 1.25 1.25-.56 1.25-1.25 1.25z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff;" width="18" height="18" viewBox="0 0 24 24"><path fill="#97C344" d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm0 21.6c-5.3 0-9.6-4.3-9.6-9.6S6.7 2.4 12 2.4s9.6 4.3 9.6 9.6-4.3 9.6-9.6 9.6zm0-15.9c-3.4 0-6.3 2.8-6.3 6.3s2.8 6.2 6.3 6.2 6.2-2.8 6.2-6.2-2.8-6.3-6.2-6.3z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff;" width="18" height="18" viewBox="0 0 24 24"><path fill="#c2bf9d" d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm0 21.6c-5.3 0-9.6-4.3-9.6-9.6S6.7 2.4 12 2.4s9.6 4.3 9.6 9.6-4.3 9.6-9.6 9.6z"></path></svg>
@@ -0,0 +1,94 @@
1
+ /*
2
+ * Warning: This file is auto-generated, do not modify. Instead, make your changes in 'app/javascript/beyond_canvas/' and run `yarn build`
3
+ */
4
+ //= require jquery3
5
+ //= require jquery_ujs
6
+ //= require_self
7
+
8
+ (function(factory) {
9
+ typeof define === "function" && define.amd ? define([ "jquery", "jquery-ujs" ], factory) : factory();
10
+ })(function() {
11
+ "use strict";
12
+ var SPINNER_ANIMATION_TIMEOUT = 125;
13
+ (function($) {
14
+ var onDOMReady = function onDOMReady() {
15
+ $('button[class^="button"]').each(function() {
16
+ var button = $(this);
17
+ button.width(button.width());
18
+ button.data("oldWidth", button.width());
19
+ button.prepend('\n <div class="spinner">\n <div class="bounce1"></div>\n <div class="bounce2"></div>\n <div class="bounce3"></div>\n </div>');
20
+ button.closest("form").on("ajax:success", function() {
21
+ hideSpinner(button);
22
+ enableActionElements();
23
+ }).on("ajax:error", function() {
24
+ hideSpinner(button);
25
+ enableActionElements();
26
+ });
27
+ });
28
+ };
29
+ $(document).on("click", '[class^="button"]', function() {
30
+ disableActionElements();
31
+ showSpinner($(this));
32
+ });
33
+ $(document).ready(onDOMReady).on("ready page:load turbolinks:load", onDOMReady);
34
+ })(jQuery);
35
+ function showSpinner(button) {
36
+ button.width(button.width() + $(".spinner").outerWidth(true));
37
+ setTimeout(function() {
38
+ button.find(".spinner").css("display", "flex");
39
+ }, SPINNER_ANIMATION_TIMEOUT);
40
+ }
41
+ function hideSpinner(button) {
42
+ setTimeout(function() {
43
+ button.find(".spinner").hide();
44
+ button.width(button.data("oldWidth"));
45
+ }, SPINNER_ANIMATION_TIMEOUT);
46
+ }
47
+ function disableActionElements() {
48
+ $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function() {
49
+ $(this).addClass("actions--disabled");
50
+ });
51
+ }
52
+ function enableActionElements() {
53
+ $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function() {
54
+ $(this).removeClass("actions--disabled");
55
+ });
56
+ }
57
+ (function($) {
58
+ var onDOMReady = function onDOMReady() {
59
+ $(".flash").each(function() {
60
+ $(this).css("right", -$(this).width() + "px");
61
+ });
62
+ setTimeout(function() {
63
+ $(".flash").addClass("flash--shown");
64
+ }, 100);
65
+ };
66
+ $(document).on("click", ".flash", function() {
67
+ closeAlert();
68
+ });
69
+ $(document).ready(onDOMReady).on("ready page:load turbolinks:load", onDOMReady);
70
+ })(jQuery);
71
+ function closeAlert() {
72
+ $(".flash").removeClass("flash--shown").delay(700).queue(function() {
73
+ $(this).remove();
74
+ });
75
+ }
76
+ (function($) {
77
+ var onDOMReady = function onDOMReady() {
78
+ $('input[type="file"]').each(function() {
79
+ var $input = $(this), $label = $(".input__file__text." + $input.attr("id")), labelVal = $label.html();
80
+ $input.on("change", function(e) {
81
+ var fileName = "";
82
+ if (this.files && this.files.length > 1) fileName = (this.getAttribute("data-multiple-caption") || "").replace("{count}", this.files.length); else if (e.target.value) fileName = e.target.value.split("\\").pop();
83
+ if (fileName) $label.html('<svg class="input__file__icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2v5h5v15h-16v-20h11zm1-2h-14v24h20v-18l-6-6z"/></svg>' + fileName); else $label.html(labelVal);
84
+ });
85
+ $input.on("focus", function() {
86
+ $input.addClass("has-focus");
87
+ }).on("blur", function() {
88
+ $input.removeClass("has-focus");
89
+ });
90
+ });
91
+ };
92
+ $(document).ready(onDOMReady).on("ready page:load turbolinks:load", onDOMReady);
93
+ })(jQuery);
94
+ });
@@ -0,0 +1,28 @@
1
+ @import "bourbon";
2
+
3
+ @import "settings/breakpoints";
4
+ @import "settings/variables";
5
+ @import "settings/reset_css";
6
+ @import "settings/typography";
7
+
8
+ @import "utilities/functions";
9
+ @import "utilities/mixins";
10
+
11
+ @import "components/actions";
12
+ @import "components/buttons";
13
+ @import "components/cards";
14
+ @import "components/comments";
15
+ @import "components/containers";
16
+ @import "components/flash";
17
+ @import "components/forms";
18
+ @import "components/inputs";
19
+ @import "components/layouts";
20
+ @import "components/links";
21
+ @import "components/main";
22
+ @import "components/margins";
23
+ @import "components/markdown";
24
+ @import "components/notices";
25
+ @import "components/relative";
26
+ @import "components/tables";
27
+ @import "components/spinner";
28
+ @import "components/texts";
@@ -0,0 +1,6 @@
1
+ .actions {
2
+ &--disabled {
3
+ cursor: not-allowed;
4
+ pointer-events: none;
5
+ }
6
+ }
@@ -0,0 +1,112 @@
1
+ %button {
2
+ @include padding($button-padding);
3
+
4
+ @if $button-box-shadow != true {
5
+ padding-top: 7px;
6
+ }
7
+
8
+ align-items: center;
9
+ border-radius: $button-border-radius;
10
+ border-width: 1px;
11
+ border-style: solid;
12
+ cursor: pointer;
13
+ display: flex;
14
+ font-weight: $button-font-weight;
15
+ justify-content: flex-end;
16
+ line-height: 1;
17
+ outline: none;
18
+ transition: $main-transition;
19
+ }
20
+
21
+ @mixin button-solid($background, $color) {
22
+ @include background-color-darken($background, 10%);
23
+
24
+ color: $color;
25
+
26
+ .spinner {
27
+ display: none;
28
+
29
+ > div {
30
+ background-color: $color;
31
+ }
32
+ }
33
+
34
+ &:hover {
35
+ border-color: darken($background, 10%);
36
+ }
37
+ }
38
+
39
+ @mixin button-transparent($background) {
40
+ background-color: transparent;
41
+ border-color: $background;
42
+ color: $background;
43
+
44
+ .spinner {
45
+ display: none;
46
+
47
+ > div {
48
+ background-color: $background;
49
+ }
50
+ }
51
+
52
+ &:hover {
53
+ background-color: lighten($background, 40%);
54
+ }
55
+ }
56
+
57
+ @mixin button-border($background) {
58
+ border-color: $background;
59
+
60
+ @if $button-box-shadow == true {
61
+ border-bottom-width: 2px;
62
+ border-bottom-color: darken($background, 10%);
63
+ }
64
+ }
65
+
66
+ .button {
67
+ &__solid {
68
+ &--primary {
69
+ @extend %button;
70
+
71
+ @include button-solid($button-primary-background, $button-primary-color);
72
+ @include button-border($button-primary-background);
73
+ }
74
+
75
+ &--secondary {
76
+ @extend %button;
77
+
78
+ @include button-solid($button-secondary-background, $button-secondary-color);
79
+ @include button-border($button-secondary-background);
80
+ }
81
+
82
+ &--danger {
83
+ @extend %button;
84
+
85
+ @include button-solid($button-danger-background, $button-danger-color);
86
+ @include button-border($button-danger-background);
87
+ }
88
+ }
89
+
90
+ &__transparent {
91
+ &--primary {
92
+ @extend %button;
93
+
94
+ @include button-transparent($button-primary-background);
95
+ @include button-border($button-primary-background);
96
+ }
97
+
98
+ &--secondary {
99
+ @extend %button;
100
+
101
+ @include button-transparent($button-secondary-background);
102
+ @include button-border($button-secondary-background);
103
+ }
104
+
105
+ &--danger {
106
+ @extend %button;
107
+
108
+ @include button-transparent($button-danger-background);
109
+ @include button-border($button-danger-background);
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,34 @@
1
+ .card {
2
+ background: $white;
3
+ border-radius: $card-border-radius;
4
+ box-shadow: $card-box-shadow;
5
+
6
+ &:not(:last-child) {
7
+ margin-bottom: $card-margin;
8
+ }
9
+
10
+ &--relative {
11
+ position: relative;
12
+ }
13
+
14
+ &--padding {
15
+ @include padding($card-padding);
16
+
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ &__separator {
21
+ @include margin($card-separator-spacing null);
22
+
23
+ border-bottom: 1px solid $card-separator-color;
24
+ left: -#{$card-padding};
25
+ position: relative;
26
+ width: calc(100% + 2 * #{$card-padding});
27
+ }
28
+
29
+ &__headline {
30
+ color: $card-title-color;
31
+ font-size: 20px;
32
+ margin-bottom: 20px;
33
+ }
34
+ }
@@ -0,0 +1,6 @@
1
+ .comment {
2
+ padding: 20px;
3
+ box-sizing: border-box;
4
+ background: $comment-background;
5
+ color: $comment-color;
6
+ }
@@ -0,0 +1,37 @@
1
+ $columns: 2, 3, 4;
2
+
3
+ .container {
4
+ width: 100%;
5
+ display: flex;
6
+ flex-wrap: wrap;
7
+
8
+ &--center {
9
+ justify-content: center;
10
+ }
11
+
12
+ &__column {
13
+
14
+ @each $column in $columns {
15
+
16
+ &--#{$column} {
17
+ width: 100%;
18
+
19
+ @media (min-width: $laptop) {
20
+ width: calc((100% - (#{$column} - 1) * #{$container-spacing}) / #{$column});
21
+
22
+ &:not(:last-child) {
23
+ margin-right: $container-spacing;
24
+ }
25
+ }
26
+
27
+ &:not(:last-child) {
28
+ margin-bottom: $container-spacing;
29
+
30
+ @media (min-width: $laptop) {
31
+ margin-bottom: 0;
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,66 @@
1
+ .flash {
2
+ @include position(fixed, 70px null null null);
3
+
4
+ background-color: $white;
5
+ border-radius: $flash-border-radius;
6
+ box-shadow: $flash-box-shadow;
7
+ display: flex;
8
+ overflow: hidden;
9
+ transition: 0.7s linear;
10
+ z-index: 9999;
11
+
12
+ &--shown {
13
+ // sass-lint:disable no-important
14
+ right: 25px !important;
15
+ // sass-lint:enable no-important
16
+ transition: 0.4s linear;
17
+ }
18
+
19
+ &__icon {
20
+ @include padding(11px 8px);
21
+
22
+ display: flex;
23
+
24
+ > svg {
25
+ @include size(18px);
26
+
27
+ fill: $white;
28
+ }
29
+
30
+ &--success,
31
+ &--notice {
32
+ background-color: $flash-success;
33
+ }
34
+
35
+ &--info {
36
+ background-color: $flash-info;
37
+ }
38
+
39
+ &--warning {
40
+ background-color: $flash-warning;
41
+ }
42
+
43
+ &--error {
44
+ background-color: $flash-error;
45
+ }
46
+ }
47
+
48
+ &__message {
49
+ @include padding(10px 15px);
50
+
51
+ box-sizing: border-box;
52
+ color: $flash-color;
53
+ }
54
+
55
+ &__close {
56
+ @include padding(10px 15px);
57
+
58
+ cursor: pointer;
59
+
60
+ > svg {
61
+ @include size(8px);
62
+
63
+ fill: $flash-color;
64
+ }
65
+ }
66
+ }