sneat_rails 0.1.0

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 (123) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +6 -0
  5. data/app/assets/builds/sneat_rails/application.css +3 -0
  6. data/app/assets/builds/sneat_rails/fonts/boxicons.eot +0 -0
  7. data/app/assets/builds/sneat_rails/fonts/boxicons.svg +1660 -0
  8. data/app/assets/builds/sneat_rails/fonts/boxicons.ttf +0 -0
  9. data/app/assets/builds/sneat_rails/fonts/boxicons.woff +0 -0
  10. data/app/assets/builds/sneat_rails/fonts/boxicons.woff2 +0 -0
  11. data/app/assets/builds/sneat_rails/sneat.css +43157 -0
  12. data/app/assets/builds/sneat_rails/sneat.css.map +1 -0
  13. data/app/assets/config/manifest.js +3 -0
  14. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_accordion.scss +56 -0
  15. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_alert.scss +9 -0
  16. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_badge.scss +18 -0
  17. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_breadcrumb.scss +47 -0
  18. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_button-group.scss +59 -0
  19. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_buttons.scss +127 -0
  20. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_card.scss +197 -0
  21. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_carousel.scss +42 -0
  22. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_close.scss +6 -0
  23. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_dropdown.scss +63 -0
  24. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_forms.scss +10 -0
  25. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_functions.scss +147 -0
  26. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_include.scss +13 -0
  27. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_list-group.scss +58 -0
  28. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_mixins.scss +16 -0
  29. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_modal.scss +110 -0
  30. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_nav.scss +327 -0
  31. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_navbar.scss +58 -0
  32. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_offcanvas.scss +10 -0
  33. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_pagination.scss +92 -0
  34. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_popover.scss +31 -0
  35. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_progress.scss +31 -0
  36. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_reboot.scss +32 -0
  37. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_root.scss +4 -0
  38. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_spinners.scss +21 -0
  39. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_tables.scss +106 -0
  40. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_toasts.scss +61 -0
  41. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_tooltip.scss +11 -0
  42. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_type.scss +2 -0
  43. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_utilities-ltr.scss +283 -0
  44. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_utilities.scss +1027 -0
  45. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_variables.scss +935 -0
  46. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_floating-labels.scss +12 -0
  47. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-control.scss +15 -0
  48. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-range.scss +52 -0
  49. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-select.scss +11 -0
  50. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_input-group.scss +77 -0
  51. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_labels.scss +17 -0
  52. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_validation.scss +58 -0
  53. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_alert.scss +39 -0
  54. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_badge.scss +9 -0
  55. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_buttons.scss +190 -0
  56. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_caret.scss +42 -0
  57. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_dropdown.scss +26 -0
  58. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_forms.scss +281 -0
  59. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_list-group.scss +66 -0
  60. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_misc.scss +120 -0
  61. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_navs.scss +37 -0
  62. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_pagination.scss +21 -0
  63. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_progress.scss +19 -0
  64. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_table-variants.scss +31 -0
  65. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_toasts.scss +33 -0
  66. data/app/assets/stylesheets/sneat_rails/_bootstrap-extended.scss +39 -0
  67. data/app/assets/stylesheets/sneat_rails/_bootstrap.scss +44 -0
  68. data/app/assets/stylesheets/sneat_rails/_boxicons.scss +6944 -0
  69. data/app/assets/stylesheets/sneat_rails/_colors.scss +39 -0
  70. data/app/assets/stylesheets/sneat_rails/_components/_app-brand.scss +64 -0
  71. data/app/assets/stylesheets/sneat_rails/_components/_avatar.scss +126 -0
  72. data/app/assets/stylesheets/sneat_rails/_components/_base.scss +159 -0
  73. data/app/assets/stylesheets/sneat_rails/_components/_common.scss +232 -0
  74. data/app/assets/stylesheets/sneat_rails/_components/_footer.scss +39 -0
  75. data/app/assets/stylesheets/sneat_rails/_components/_include.scss +11 -0
  76. data/app/assets/stylesheets/sneat_rails/_components/_layout.scss +539 -0
  77. data/app/assets/stylesheets/sneat_rails/_components/_menu.scss +346 -0
  78. data/app/assets/stylesheets/sneat_rails/_components/_mixins.scss +6 -0
  79. data/app/assets/stylesheets/sneat_rails/_components/_text-divider.scss +89 -0
  80. data/app/assets/stylesheets/sneat_rails/_components/_variables.scss +93 -0
  81. data/app/assets/stylesheets/sneat_rails/_components/mixins/_app-brand.scss +33 -0
  82. data/app/assets/stylesheets/sneat_rails/_components/mixins/_avatar.scss +22 -0
  83. data/app/assets/stylesheets/sneat_rails/_components/mixins/_footer.scss +39 -0
  84. data/app/assets/stylesheets/sneat_rails/_components/mixins/_menu.scss +124 -0
  85. data/app/assets/stylesheets/sneat_rails/_components/mixins/_misc.scss +6 -0
  86. data/app/assets/stylesheets/sneat_rails/_components/mixins/_navbar.scss +90 -0
  87. data/app/assets/stylesheets/sneat_rails/_components/mixins/_text-divider.scss +16 -0
  88. data/app/assets/stylesheets/sneat_rails/_components.scss +11 -0
  89. data/app/assets/stylesheets/sneat_rails/_custom-variables/_bootstrap-extended.scss +7 -0
  90. data/app/assets/stylesheets/sneat_rails/_custom-variables/_components.scss +6 -0
  91. data/app/assets/stylesheets/sneat_rails/_custom-variables/_libs.scss +8 -0
  92. data/app/assets/stylesheets/sneat_rails/_custom-variables/_pages.scss +8 -0
  93. data/app/assets/stylesheets/sneat_rails/_custom-variables/_support.scss +9 -0
  94. data/app/assets/stylesheets/sneat_rails/_theme/_common.scss +49 -0
  95. data/app/assets/stylesheets/sneat_rails/_theme/_theme.scss +131 -0
  96. data/app/assets/stylesheets/sneat_rails/application.css +15 -0
  97. data/app/assets/stylesheets/sneat_rails/application.scss +9 -0
  98. data/app/assets/stylesheets/sneat_rails/core.scss +4 -0
  99. data/app/assets/stylesheets/sneat_rails/pages/page-account-settings.scss +13 -0
  100. data/app/assets/stylesheets/sneat_rails/pages/page-auth.scss +106 -0
  101. data/app/assets/stylesheets/sneat_rails/pages/page-icons.scss +46 -0
  102. data/app/assets/stylesheets/sneat_rails/pages/page-misc.scss +15 -0
  103. data/app/assets/stylesheets/sneat_rails/sneat.css +3 -0
  104. data/app/assets/stylesheets/sneat_rails/sneat.scss +6 -0
  105. data/app/assets/stylesheets/sneat_rails/theme-default.scss +111 -0
  106. data/app/controllers/sneat_rails/application_controller.rb +4 -0
  107. data/app/controllers/sneat_rails/dashboard_controller.rb +10 -0
  108. data/app/helpers/sneat_rails/application_helper.rb +4 -0
  109. data/app/jobs/sneat_rails/application_job.rb +4 -0
  110. data/app/mailers/sneat_rails/application_mailer.rb +6 -0
  111. data/app/models/sneat_rails/application_record.rb +5 -0
  112. data/app/views/layouts/sneat_rails/application.html.erb +30 -0
  113. data/app/views/sneat_rails/dashboard/index.html.erb +1 -0
  114. data/app/views/sneat_rails/shared/_navbar.html.erb +3 -0
  115. data/app/views/sneat_rails/shared/_sidebar.html.erb +3 -0
  116. data/config/dartsass.rb +3 -0
  117. data/config/routes.rb +3 -0
  118. data/lib/generators/sneat_rails/install/install_generator.rb +16 -0
  119. data/lib/sneat_rails/engine.rb +20 -0
  120. data/lib/sneat_rails/version.rb +3 -0
  121. data/lib/sneat_rails.rb +6 -0
  122. data/lib/tasks/sneat_rails_tasks.rake +4 -0
  123. metadata +193 -0
@@ -0,0 +1,12 @@
1
+ // Floating Labels
2
+ // *******************************************************************************
3
+
4
+ // Display placeholder on focus
5
+ .form-floating {
6
+ > .form-control:focus,
7
+ > .form-control:not(:placeholder-shown) {
8
+ &::placeholder {
9
+ color: $input-placeholder-color;
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,15 @@
1
+ // Form control
2
+ // *******************************************************************************
3
+ // form input placeholder animation
4
+ .form-control {
5
+ &::placeholder,
6
+ &:focus::placeholder {
7
+ transition: $input-placeholder-transition;
8
+ }
9
+ // border color on hover state
10
+ &:hover {
11
+ &:not([disabled]):not([focus]) {
12
+ border-color: $input-border-hover-color;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,52 @@
1
+ // Range select
2
+ // *******************************************************************************
3
+
4
+ .form-range {
5
+ // Chrome specific
6
+ &::-webkit-slider-thumb {
7
+ box-shadow: $form-range-thumb-box-shadow;
8
+ transition: transform 0.2s;
9
+ transform-origin: center;
10
+
11
+ &:focus {
12
+ box-shadow: $form-range-thumb-focus-box-shadow;
13
+ }
14
+
15
+ &:active {
16
+ transform: scale(1.4, 1.4);
17
+ }
18
+ }
19
+
20
+ // Mozilla specific
21
+ &::-moz-range-thumb {
22
+ box-shadow: $form-range-thumb-box-shadow;
23
+ transition: transform 0.2s;
24
+ transform-origin: center;
25
+
26
+ &:focus {
27
+ box-shadow: $form-range-thumb-focus-box-shadow;
28
+ }
29
+
30
+ &:active {
31
+ transform: scale(1.4, 1.4);
32
+ }
33
+ }
34
+
35
+ &:disabled {
36
+ &::-webkit-slider-runnable-track {
37
+ background-color: $form-range-track-disabled-bg;
38
+ }
39
+
40
+ &::-moz-range-track {
41
+ background-color: $form-range-track-disabled-bg;
42
+ box-shadow: none;
43
+ }
44
+
45
+ &::-webkit-slider-thumb {
46
+ box-shadow: none;
47
+ }
48
+ &::-moz-range-thumb {
49
+ box-shadow: none;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,11 @@
1
+ // Select
2
+ // *******************************************************************************
3
+
4
+ .form-select {
5
+ background-clip: padding-box;
6
+ &:hover {
7
+ &:not([disabled]):not([focus]) {
8
+ border-color: $input-border-hover-color;
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,77 @@
1
+ // Input groups
2
+ // *******************************************************************************
3
+
4
+ // Using :focus-within to apply focus/validation border and shadow to default and merged input-group
5
+ .input-group {
6
+ &:hover {
7
+ .input-group-text,
8
+ .form-control {
9
+ border-color: $input-border-hover-color;
10
+ }
11
+ }
12
+ &:focus-within {
13
+ box-shadow: $input-focus-box-shadow;
14
+ .form-control,
15
+ .input-group-text {
16
+ box-shadow: none;
17
+ }
18
+ }
19
+ // For disabled input group
20
+ &.disabled {
21
+ .input-group-text {
22
+ background-color: $input-disabled-bg;
23
+ }
24
+ }
25
+ }
26
+
27
+ // input-group-text icon size
28
+ .input-group-text {
29
+ background-clip: padding-box;
30
+ i {
31
+ @include font-size($input-font-size);
32
+ }
33
+ }
34
+ .input-group-lg > .input-group-text {
35
+ i {
36
+ @include font-size($input-font-size-lg);
37
+ }
38
+ }
39
+ .input-group-sm > .input-group-text {
40
+ i {
41
+ @include font-size($input-font-size-sm);
42
+ }
43
+ }
44
+
45
+ // Merge input
46
+
47
+ // Input group merge .form-control border & padding
48
+ @include ltr-only {
49
+ .input-group-merge {
50
+ .input-group-text {
51
+ &:first-child {
52
+ border-right: 0;
53
+ }
54
+ &:last-child {
55
+ border-left: 0;
56
+ }
57
+ }
58
+ .form-control {
59
+ &:not(:first-child) {
60
+ padding-left: 0;
61
+ border-left: 0;
62
+ }
63
+ &:not(:last-child) {
64
+ padding-right: 0;
65
+ border-right: 0;
66
+ }
67
+ &:is(textarea):not(:last-child) {
68
+ padding-right: $input-btn-padding-x;
69
+ }
70
+ }
71
+ }
72
+ }
73
+
74
+ // Adding transition (On focus border color change)
75
+ .input-group-text {
76
+ @include transition($input-transition);
77
+ }
@@ -0,0 +1,17 @@
1
+ // Labels
2
+ // *******************************************************************************
3
+
4
+ .form-label,
5
+ .col-form-label {
6
+ font-size: $form-label-font-size;
7
+ text-transform: $form-label-text-transform;
8
+ letter-spacing: $form-label-letter-spacing;
9
+ }
10
+ // Default (vertical ) form label size
11
+ .form-label-lg {
12
+ @include font-size($input-font-size-lg);
13
+ }
14
+
15
+ .form-label-sm {
16
+ @include font-size($input-font-size-sm);
17
+ }
@@ -0,0 +1,58 @@
1
+ // Validation states
2
+ // *******************************************************************************
3
+
4
+ @each $state, $data in $form-validation-states {
5
+ @include template-form-validation-state($state, $data...);
6
+ }
7
+
8
+ // Currently supported for formvalidation and jq-validation
9
+ form {
10
+ .error:not(li):not(input) {
11
+ color: $form-feedback-invalid-color;
12
+ font-size: 85%;
13
+ margin-top: 0.25rem;
14
+ }
15
+
16
+ .invalid,
17
+ .is-invalid .invalid:before,
18
+ .is-invalid::before {
19
+ border-color: $form-feedback-invalid-color !important;
20
+ }
21
+
22
+ .form-label {
23
+ &.invalid,
24
+ &.is-invalid {
25
+ border-color: $form-feedback-invalid-color;
26
+ box-shadow: 0 0 0 2px rgba($form-feedback-invalid-color, 0.4) !important;
27
+ }
28
+ }
29
+
30
+ select {
31
+ &.invalid {
32
+ & ~ .select2 {
33
+ .select2-selection {
34
+ border-color: $form-feedback-invalid-color;
35
+ }
36
+ }
37
+ }
38
+
39
+ // FormValidation
40
+
41
+ //Select2
42
+ &.is-invalid {
43
+ & ~ .select2 {
44
+ .select2-selection {
45
+ border-color: $form-feedback-invalid-color !important;
46
+ }
47
+ }
48
+ }
49
+ // Bootstrap select
50
+ &.selectpicker {
51
+ &.is-invalid {
52
+ ~ .btn {
53
+ border-color: $form-feedback-invalid-color !important;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,39 @@
1
+ // Alerts
2
+ // *******************************************************************************
3
+
4
+ @mixin alert-variant($background: null, $border: null, $color: null) {
5
+ }
6
+
7
+ // Basic Alerts
8
+ @mixin template-alert-variant($parent, $background) {
9
+ $border: if(
10
+ $dark-style,
11
+ shift-color($background, -$alert-border-scale, $card-bg),
12
+ shift-color($background, $alert-border-scale, $card-bg)
13
+ );
14
+ $color: if($dark-style, shift-color($background, -$alert-color-scale), shift-color($background, $alert-color-scale));
15
+ $background: if(
16
+ $dark-style,
17
+ shift-color($background, -$alert-bg-scale, $card-bg),
18
+ shift-color($background, $alert-bg-scale, $card-bg)
19
+ );
20
+
21
+ #{$parent} {
22
+ @include gradient-bg($background);
23
+ border-color: $border;
24
+ color: $color;
25
+ .btn-close {
26
+ background-image: str-replace(str-replace($btn-close-bg, '#{$btn-close-color}', $color), '#', '%23');
27
+ }
28
+
29
+ .alert-link {
30
+ color: $color;
31
+ }
32
+ }
33
+
34
+ #{$parent} {
35
+ hr {
36
+ background-color: $color !important;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,9 @@
1
+ // Badges
2
+ // *******************************************************************************
3
+
4
+ // Size
5
+ @mixin badge-size($badge-height, $badge-width, $badge-font-size) {
6
+ height: $badge-height;
7
+ width: $badge-width;
8
+ @include font-size($badge-font-size);
9
+ }
@@ -0,0 +1,190 @@
1
+ // Buttons
2
+ // *******************************************************************************
3
+
4
+ // Basic
5
+ @mixin button-variant(
6
+ $background: null,
7
+ $border: null,
8
+ $hover-background: null,
9
+ $hover-border: null,
10
+ $active-background: null,
11
+ $active-border: null
12
+ ) {
13
+ }
14
+ @mixin template-button-variant($parent, $background, $color: null, $border: null) {
15
+ $background: $background;
16
+ $border: $background;
17
+ $color: if($color, $color, color-contrast($background));
18
+ $hover-background: if(
19
+ $color == $color-contrast-light,
20
+ shade-color($background, $btn-hover-bg-shade-amount),
21
+ tint-color($background, $btn-hover-bg-tint-amount)
22
+ );
23
+ $hover-border: if(
24
+ $color == $color-contrast-light,
25
+ shade-color($border, $btn-hover-border-shade-amount),
26
+ tint-color($border, $btn-hover-border-tint-amount)
27
+ );
28
+ $hover-color: color-contrast($hover-background);
29
+
30
+ $active-background: if(
31
+ $color == $color-contrast-light,
32
+ shade-color($background, $btn-active-bg-shade-amount),
33
+ tint-color($background, $btn-active-bg-tint-amount)
34
+ );
35
+ $active-border: if(
36
+ $color == $color-contrast-light,
37
+ shade-color($border, $btn-active-border-shade-amount),
38
+ tint-color($border, $btn-active-border-tint-amount)
39
+ );
40
+ $active-color: color-contrast($active-background);
41
+ $disabled-background: $background;
42
+ $disabled-border: $border;
43
+ $disabled-color: color-contrast($disabled-background);
44
+
45
+ #{$parent} {
46
+ color: $color;
47
+ @include gradient-bg($background);
48
+ border-color: $border;
49
+ @include box-shadow($btn-box-shadow);
50
+ box-shadow: 0 0.125rem 0.25rem 0 rgba($background, 0.4);
51
+
52
+ &:hover {
53
+ color: $hover-color !important;
54
+ @include gradient-bg($hover-background !important);
55
+ border-color: $hover-border !important;
56
+ transform: $btn-hover-transform !important;
57
+ }
58
+
59
+ .btn-check:focus + &,
60
+ &:focus,
61
+ &.focus {
62
+ color: $hover-color;
63
+ @include gradient-bg($hover-background);
64
+ border-color: $hover-border;
65
+ transform: $btn-focus-transform;
66
+ box-shadow: none;
67
+ }
68
+
69
+ .btn-check:checked + &,
70
+ .btn-check:active + &,
71
+ &:active,
72
+ &.active,
73
+ &.show.dropdown-toggle,
74
+ .show > &.dropdown-toggle {
75
+ color: $active-color !important;
76
+ background-color: $active-background !important;
77
+ // Remove CSS gradients if they're enabled
78
+ background-image: if($enable-gradients, none !important, null);
79
+ border-color: $active-border !important;
80
+
81
+ &:focus {
82
+ box-shadow: none;
83
+ }
84
+ }
85
+
86
+ &.disabled,
87
+ &:disabled {
88
+ color: $disabled-color !important;
89
+ background-color: $disabled-background !important;
90
+ // Remove CSS gradients if they're enabled
91
+ background-image: if($enable-gradients, none !important, null);
92
+ border-color: $disabled-border !important;
93
+ box-shadow: none !important;
94
+ }
95
+ }
96
+
97
+ // Button groups
98
+ // .btn-group #{$parent},
99
+ // .input-group #{$parent} {
100
+ // border-right: $input-btn-border-width solid $active-background;
101
+ // border-left: $input-btn-border-width solid $active-background;
102
+ // }
103
+ // .btn-group-vertical #{$parent} {
104
+ // border-top-color: $active-background;
105
+ // border-bottom-color: $active-background;
106
+ // }
107
+ }
108
+
109
+ // Outline
110
+ @mixin button-outline-variant($color: null, $color-hover: null, $hover-color: null) {
111
+ }
112
+ // ? $hover-color <-> $color-hover used by bootstrap
113
+ @mixin template-button-outline-variant($parent, $color, $hover-color: null) {
114
+ $color: $color;
115
+ $background: $color;
116
+ $color-hover: color-contrast($color);
117
+
118
+ $focus-background: $color;
119
+
120
+ $hover-background: if(
121
+ $color-hover == $color-contrast-light,
122
+ shade-color($background, $btn-hover-bg-shade-amount),
123
+ tint-color($background, $btn-hover-bg-tint-amount)
124
+ );
125
+
126
+ $active-background: if(
127
+ $color-hover == $color-contrast-light,
128
+ shade-color($background, $btn-active-bg-shade-amount),
129
+ tint-color($background, $btn-active-bg-tint-amount)
130
+ );
131
+
132
+ #{$parent} {
133
+ color: $color;
134
+ border-color: $color;
135
+ background: transparent;
136
+
137
+ &:hover {
138
+ color: $color-hover !important;
139
+ background-color: $hover-background !important;
140
+ border-color: $hover-background !important;
141
+ box-shadow: 0 0.125rem 0.25rem 0 rgba($background, 0.4) !important;
142
+ transform: $btn-hover-transform !important;
143
+ }
144
+
145
+ .btn-check:focus + &,
146
+ &:focus {
147
+ color: $color-hover;
148
+ background-color: $hover-background;
149
+ border-color: $hover-background;
150
+ box-shadow: none;
151
+ transform: $btn-focus-transform;
152
+ }
153
+
154
+ .btn-check:checked + &,
155
+ .btn-check:active + &,
156
+ &:active,
157
+ &.active,
158
+ &.dropdown-toggle.show {
159
+ color: $color-hover !important;
160
+ background-color: $active-background !important;
161
+ border-color: $active-background !important;
162
+ &:focus {
163
+ box-shadow: none;
164
+ }
165
+ }
166
+
167
+ &.disabled,
168
+ &:disabled {
169
+ box-shadow: none !important;
170
+ color: $color !important;
171
+ background-color: transparent !important;
172
+ }
173
+ }
174
+
175
+ #{$parent} .badge {
176
+ background: $color;
177
+ border-color: $color;
178
+ color: color-contrast($color);
179
+ }
180
+
181
+ #{$parent}:hover .badge,
182
+ #{$parent}:focus:hover .badge,
183
+ #{$parent}:active .badge,
184
+ #{$parent}.active .badge,
185
+ .show > #{$parent}.dropdown-toggle .badge {
186
+ background: $color-hover;
187
+ border-color: $color-hover;
188
+ color: if(alpha($color) ==1, $color, color-contrast($color-hover));
189
+ }
190
+ }
@@ -0,0 +1,42 @@
1
+ // * Carets
2
+ // *******************************************************************************
3
+
4
+ @mixin caret-up($caret-width) {
5
+ margin-top: -0;
6
+ width: $caret-width;
7
+ height: $caret-width;
8
+ border: 1px solid;
9
+ border-bottom: 0;
10
+ border-left: 0;
11
+ transform: rotate(-45deg);
12
+ }
13
+
14
+ @mixin caret-down($caret-width) {
15
+ margin-top: -1 * divide($caret-width, 1.5);
16
+ width: $caret-width;
17
+ height: $caret-width;
18
+ border: 1px solid;
19
+ border-top: 0;
20
+ border-left: 0;
21
+ transform: rotate(45deg);
22
+ }
23
+
24
+ @mixin caret-left($caret-width) {
25
+ margin-top: -1 * divide($caret-width, 2.5);
26
+ width: $caret-width;
27
+ height: $caret-width;
28
+ border: 1px solid;
29
+ border-top: 0;
30
+ border-right: 0;
31
+ transform: rotate(45deg);
32
+ }
33
+
34
+ @mixin caret-right($caret-width) {
35
+ margin-top: -1 * divide($caret-width, 2.5);
36
+ width: $caret-width;
37
+ height: $caret-width;
38
+ border: 1px solid;
39
+ border-top: 0;
40
+ border-left: 0;
41
+ transform: rotate(-45deg);
42
+ }
@@ -0,0 +1,26 @@
1
+ // * Dropdowns
2
+ // *******************************************************************************
3
+
4
+ @mixin template-dropdown-variant($parent, $background, $color: null) {
5
+ #{$parent} .dropdown-item:not(.disabled).active,
6
+ #{$parent} .dropdown-item:not(.disabled):active {
7
+ background-color: $background;
8
+ color: if($color, $color, color-contrast($background)) !important;
9
+ }
10
+
11
+ #{$parent}.dropdown-menu > li:not(.disabled) > a:not(.dropdown-item):active,
12
+ #{$parent}.dropdown-menu > li.active:not(.disabled) > a:not(.dropdown-item) {
13
+ background-color: $background;
14
+ color: if($color, $color, color-contrast($background)) !important;
15
+ }
16
+ // DataTables collection dropdown item active
17
+ .dt-button-collection {
18
+ .dropdown-item:not(.disabled):active {
19
+ background-color: $background;
20
+ }
21
+ }
22
+ }
23
+
24
+ @mixin template-dropdown-theme($background, $color: null) {
25
+ @include template-dropdown-variant('', $background, $color);
26
+ }