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,59 @@
1
+ // Button groups
2
+ // *******************************************************************************
3
+
4
+ // * Split button
5
+ // *******************************************************************************
6
+
7
+ .dropdown-toggle-split,
8
+ .btn-lg + .dropdown-toggle-split,
9
+ .btn-group-lg > .btn + .dropdown-toggle-split,
10
+ .input-group-lg .btn + .dropdown-toggle-split,
11
+ .btn-xl + .dropdown-toggle-split,
12
+ .btn-group-xl > .btn + .dropdown-toggle-split {
13
+ padding-right: 0.7em;
14
+ padding-left: 0.7em;
15
+ }
16
+
17
+ .btn-sm + .dropdown-toggle-split,
18
+ .btn-group-sm > .btn + .dropdown-toggle-split,
19
+ .input-group-sm .btn + .dropdown-toggle-split {
20
+ padding-right: 0.6em;
21
+ padding-left: 0.6em;
22
+ }
23
+
24
+ .btn-xs + .dropdown-toggle-split,
25
+ .btn-group-xs > .btn + .dropdown-toggle-split {
26
+ padding-right: 0.5em;
27
+ padding-left: 0.5em;
28
+ }
29
+
30
+ // * Sizing
31
+ // *******************************************************************************
32
+
33
+ .btn-group-xs > .btn {
34
+ @extend .btn-xs;
35
+ }
36
+
37
+ .btn-group-xl > .btn {
38
+ @extend .btn-xl;
39
+ }
40
+
41
+ // Button groups border
42
+
43
+ .btn-group > .btn-group:first-child > .btn:not([class*='btn-outline-']):first-child,
44
+ .input-group > .btn:not([class*='btn-outline-']):first-child,
45
+ :not(.btn-group):not(.input-group) > .btn-group > .btn:not([class*='btn-outline-']):first-child,
46
+ .input-group > .btn-group:first-child > .btn:not([class*='btn-outline-']):first-child {
47
+ @include ltr-style {
48
+ border-left-color: transparent;
49
+ }
50
+ }
51
+
52
+ .btn-group > .btn-group:last-child > .btn:not([class*='btn-outline-']):last-of-type,
53
+ .input-group > .btn:not([class*='btn-outline-']):last-of-type,
54
+ :not(.btn-group):not(.input-group) > .btn-group > .btn:not([class*='btn-outline-']):last-of-type,
55
+ .input-group > .btn-group:last-child > .btn:not([class*='btn-outline-']):last-of-type {
56
+ @include ltr-style {
57
+ border-right-color: transparent;
58
+ }
59
+ }
@@ -0,0 +1,127 @@
1
+ // Buttons
2
+ // *******************************************************************************
3
+
4
+ .btn {
5
+ cursor: pointer;
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ .bx {
10
+ line-height: 1.15;
11
+ }
12
+ &.disabled,
13
+ &:disabled {
14
+ cursor: default;
15
+ }
16
+ }
17
+
18
+ // Badge within button
19
+ .btn .badge {
20
+ @include transition($btn-transition);
21
+ }
22
+
23
+ label.btn {
24
+ margin-bottom: 0;
25
+ }
26
+
27
+ // Button Sizes
28
+
29
+ .btn-xl {
30
+ @include button-size($btn-padding-y-xl, $btn-padding-x-xl, $btn-font-size-xl, $btn-border-radius-xl);
31
+ }
32
+
33
+ .btn-xs {
34
+ @include button-size($btn-padding-y-xs, $btn-padding-x-xs, $btn-font-size-xs, $btn-border-radius-xs);
35
+ }
36
+
37
+ // Buttons Variant
38
+
39
+ @each $color, $value in $theme-colors {
40
+ @if $color != primary {
41
+ @include template-button-variant('.btn-#{$color}', $value);
42
+ @include template-button-outline-variant('.btn-outline-#{$color}', $value);
43
+ }
44
+ }
45
+
46
+ // Icon button
47
+
48
+ .btn-icon {
49
+ $btn-icon-size: ($btn-font-size * $btn-line-height) + ($btn-padding-y * 2);
50
+ $btn-icon-size-xl: ($btn-font-size-xl * $btn-line-height-xl) + ($btn-padding-y-xl * 2);
51
+ $btn-icon-size-lg: ($btn-font-size-lg * $btn-line-height-lg) + ($btn-padding-y-lg * 2);
52
+ $btn-icon-size-sm: ($btn-font-size-sm * $btn-line-height-sm) + ($btn-padding-y-sm * 2);
53
+ $btn-icon-size-xs: ($btn-font-size-xs * $btn-line-height-xs) + ($btn-padding-y-xs * 2);
54
+ $borders-width: calc(#{$btn-border-width} * 2);
55
+ --#{$prefix}btn-active-border-color: transparent;
56
+
57
+ padding: 0;
58
+ width: calc(#{$btn-icon-size} + #{$borders-width});
59
+ height: calc(#{$btn-icon-size} + #{$borders-width});
60
+ display: inline-flex;
61
+ flex-shrink: 0;
62
+ justify-content: center;
63
+ align-items: center;
64
+
65
+ &.btn-xl {
66
+ width: calc(#{$btn-icon-size-xl} + #{$borders-width});
67
+ height: calc(#{$btn-icon-size-xl} + #{$borders-width});
68
+ > span {
69
+ font-size: $btn-font-size-xl;
70
+ }
71
+ }
72
+
73
+ &.btn-lg {
74
+ width: calc(#{$btn-icon-size-lg} + #{$borders-width});
75
+ height: calc(#{$btn-icon-size-lg} + #{$borders-width});
76
+ font-size: $btn-font-size-lg;
77
+ }
78
+
79
+ &.btn-sm {
80
+ width: calc(#{$btn-icon-size-sm} + #{$borders-width});
81
+ height: calc(#{$btn-icon-size-sm} + #{$borders-width});
82
+ font-size: $btn-font-size-sm;
83
+ }
84
+
85
+ &.btn-xs {
86
+ width: calc(#{$btn-icon-size-xs} + #{$borders-width});
87
+ height: calc(#{$btn-icon-size-xs} + #{$borders-width});
88
+ font-size: $btn-font-size-xs;
89
+ }
90
+ }
91
+
92
+ // Without border
93
+
94
+ .btn.borderless {
95
+ &:not(.active):not(:active):not(:hover):not(:focus),
96
+ :not(.show) > &.dropdown-toggle:not(:hover):not(:focus) {
97
+ border-color: transparent;
98
+ box-shadow: none;
99
+ }
100
+ }
101
+
102
+ // Link buttons
103
+ .btn.btn-link {
104
+ font-size: inherit;
105
+ }
106
+
107
+ .btn-pinned {
108
+ position: absolute;
109
+ top: 0.75rem;
110
+ @include ltr-style {
111
+ right: 0.75rem;
112
+ }
113
+ }
114
+
115
+ // Button focus
116
+ button:focus,
117
+ button:focus-visible {
118
+ outline: none;
119
+ }
120
+
121
+ // Table Action Dropdown fix
122
+ .btn:not([class*='btn-']):active,
123
+ .btn:not([class*='btn-']).active,
124
+ .btn:not([class*='btn-']).show,
125
+ .btn:not([class*='btn-']) {
126
+ border: none;
127
+ }
@@ -0,0 +1,197 @@
1
+ // Cards
2
+ // *******************************************************************************
3
+
4
+ .card {
5
+ background-clip: padding-box;
6
+ box-shadow: $card-box-shadow;
7
+ .card-link {
8
+ display: inline-block;
9
+ }
10
+ // ! FIX: To remove padding top from first card-body if used with card-header
11
+ .card-header + .card-body,
12
+ .card-header + .card-content > .card-body:first-of-type {
13
+ padding-top: 0;
14
+ }
15
+ }
16
+
17
+ // Card action
18
+ .card-action {
19
+ // Expand card(fullscreen)
20
+ &.card-fullscreen {
21
+ display: block;
22
+ z-index: 9999;
23
+ position: fixed;
24
+ width: 100% !important;
25
+ height: 100% !important;
26
+ top: 0;
27
+ right: 0;
28
+ left: 0;
29
+ bottom: 0;
30
+ overflow: auto;
31
+ border: none;
32
+ border-radius: 0;
33
+ }
34
+ // Alert
35
+ .card-alert {
36
+ position: absolute;
37
+ width: 100%;
38
+ z-index: 999;
39
+ .alert {
40
+ border-bottom-right-radius: 0px;
41
+ border-bottom-left-radius: 0px;
42
+ }
43
+ }
44
+ // Collapsed
45
+ .card-header {
46
+ &.collapsed {
47
+ border-bottom: 0;
48
+ }
49
+ }
50
+
51
+ // Card header
52
+ .card-header {
53
+ display: flex;
54
+ line-height: $component-line-height;
55
+ .card-action-title {
56
+ flex-grow: 1;
57
+ margin-right: 0.5rem;
58
+ }
59
+ .card-action-element {
60
+ flex-shrink: 0;
61
+ background-color: inherit;
62
+ top: 1rem;
63
+ right: 1.5rem;
64
+ color: $body-color;
65
+ a {
66
+ color: $body-color;
67
+ .collapse-icon::after {
68
+ margin-top: -0.15rem;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ // Block UI loader
74
+ .blockUI {
75
+ .sk-fold {
76
+ margin: 0 auto;
77
+ }
78
+ h5 {
79
+ color: $body-color;
80
+ margin: 1rem 0 0 0;
81
+ }
82
+ }
83
+ }
84
+
85
+ // Card inner borders
86
+ .card-header,
87
+ .card-footer {
88
+ border-color: $card-inner-border-color;
89
+ }
90
+ .card hr {
91
+ color: $card-inner-border-color;
92
+ }
93
+
94
+ .card .row-bordered > [class*=' col '],
95
+ .card .row-bordered > [class^='col '],
96
+ .card .row-bordered > [class*=' col-'],
97
+ .card .row-bordered > [class^='col-'],
98
+ .card .row-bordered > [class='col'] {
99
+ .card .row-bordered > [class$=' col'],
100
+ &::before,
101
+ &::after {
102
+ border-color: $card-inner-border-color;
103
+ }
104
+ }
105
+
106
+ //Card header elements
107
+ .card-header.header-elements,
108
+ .card-title.header-elements {
109
+ display: flex;
110
+ width: 100%;
111
+ align-items: center;
112
+ flex-wrap: wrap;
113
+ }
114
+
115
+ .card-header {
116
+ &.card-header-elements {
117
+ padding-top: $card-spacer-y * 0.5;
118
+ padding-bottom: $card-spacer-y * 0.5;
119
+ }
120
+ .card-header-elements {
121
+ padding-top: 0.25rem;
122
+ padding-bottom: 0.25rem;
123
+ }
124
+ }
125
+
126
+ .card-header-elements,
127
+ .card-title-elements {
128
+ display: flex;
129
+ flex-wrap: wrap;
130
+ align-items: center;
131
+ & + &,
132
+ > * + * {
133
+ margin-left: 0.25rem;
134
+ }
135
+ }
136
+
137
+ .card-title {
138
+ &:not(:is(h1, h2, h3, h4, h5, h6)) {
139
+ color: $body-color;
140
+ }
141
+ }
142
+
143
+ .card-title {
144
+ &:not(:is(h1, h2, h3, h4, h5, h6)) {
145
+ color: $body-color;
146
+ }
147
+ }
148
+
149
+ // * Horizontal card radius issue fix
150
+ .card-img-left {
151
+ @include border-start-radius($card-inner-border-radius);
152
+ @include border-end-radius(0);
153
+ @include media-breakpoint-down(md) {
154
+ @include border-top-radius($card-inner-border-radius);
155
+ @include border-bottom-radius(0);
156
+ }
157
+ }
158
+
159
+ .card-img-right {
160
+ @include border-end-radius($card-inner-border-radius);
161
+ @include border-start-radius(0);
162
+ @include media-breakpoint-down(md) {
163
+ @include border-bottom-radius($card-inner-border-radius);
164
+ @include border-top-radius(0);
165
+ }
166
+ }
167
+
168
+ // List groups
169
+ // *******************************************************************************
170
+
171
+ .card > .list-group .list-group-item {
172
+ padding-left: $card-spacer-x;
173
+ padding-right: $card-spacer-x;
174
+ }
175
+
176
+ // Card Statistics specific separator
177
+ // *******************************************************************************
178
+ .card {
179
+ .card-separator {
180
+ @include ltr-style {
181
+ border-right: $border-width solid $card-border-color;
182
+ }
183
+ }
184
+ }
185
+
186
+ @include media-breakpoint-down(md) {
187
+ .card {
188
+ .card-separator {
189
+ border-bottom: $border-width solid $card-border-color;
190
+ padding-bottom: $card-spacer-y;
191
+
192
+ @include ltr-style {
193
+ border-right-width: 0 !important;
194
+ }
195
+ }
196
+ }
197
+ }
@@ -0,0 +1,42 @@
1
+ // Carousel
2
+ // *******************************************************************************
3
+
4
+ //
5
+ .carousel {
6
+ .carousel-item.active,
7
+ .carousel-item.carousel-item-start {
8
+ h1,
9
+ .h1,
10
+ h2,
11
+ .h2,
12
+ h3,
13
+ .h3,
14
+ h4,
15
+ .h4,
16
+ h5,
17
+ .h5,
18
+ h6,
19
+ .h6 {
20
+ color: $carousel-caption-color;
21
+ }
22
+ }
23
+ }
24
+ .carousel.carousel-dark {
25
+ .carousel-item.active,
26
+ .carousel-item.carousel-item-start {
27
+ h1,
28
+ .h1,
29
+ h2,
30
+ .h2,
31
+ h3,
32
+ .h3,
33
+ h4,
34
+ .h4,
35
+ h5,
36
+ .h5,
37
+ h6,
38
+ .h6 {
39
+ color: $carousel-dark-caption-color;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,6 @@
1
+ // Close buttons
2
+ // *******************************************************************************
3
+
4
+ .close:focus {
5
+ outline: 0;
6
+ }
@@ -0,0 +1,63 @@
1
+ // Dropdowns
2
+ // *****************************************************************
3
+
4
+ // On hover outline
5
+ [data-trigger='hover'] {
6
+ outline: 0;
7
+ }
8
+
9
+ .dropdown-menu {
10
+ box-shadow: $dropdown-box-shadow;
11
+
12
+ // Mega dropdown inside the dropdown menu
13
+ .mega-dropdown > & {
14
+ left: 0 !important;
15
+ right: 0 !important;
16
+ }
17
+
18
+ // Badge within dropdown menu
19
+ .badge[class^='float-'],
20
+ .badge[class*=' float-'] {
21
+ position: relative;
22
+ top: 0.071em;
23
+ }
24
+ }
25
+ // Dropdown item line height
26
+ .dropdown-item {
27
+ line-height: $dropdown-link-line-height;
28
+ }
29
+
30
+ // Hidden dropdown toggle arrow
31
+ .dropdown-toggle.hide-arrow,
32
+ .dropdown-toggle-hide-arrow > .dropdown-toggle {
33
+ &::before,
34
+ &::after {
35
+ display: none;
36
+ }
37
+ }
38
+
39
+ // Dropdown caret icon
40
+
41
+ @if $enable-caret {
42
+ // Dropdown arrow
43
+ .dropdown-toggle::after {
44
+ @include caret-down($caret-width);
45
+ }
46
+ // Dropend arrow
47
+ .dropend .dropdown-toggle::after {
48
+ @include caret-right($caret-width);
49
+ }
50
+ // Dropstart arrow
51
+ .dropstart .dropdown-toggle::before {
52
+ @include caret-left($caret-width);
53
+ }
54
+ // Dropup arrow
55
+ .dropup .dropdown-toggle::after {
56
+ @include caret-up($caret-width);
57
+ }
58
+
59
+ .dropstart .dropdown-toggle::before,
60
+ .dropend .dropdown-toggle::after {
61
+ vertical-align: $caret-vertical-align;
62
+ }
63
+ }
@@ -0,0 +1,10 @@
1
+ // Forms
2
+ // *****************************************************************
3
+
4
+ @import 'forms/labels';
5
+ @import 'forms/form-control';
6
+ @import 'forms/form-select';
7
+ @import 'forms/form-range';
8
+ @import 'forms/input-group';
9
+ @import 'forms/floating-labels';
10
+ @import 'forms/validation';
@@ -0,0 +1,147 @@
1
+ // Functions
2
+ // *******************************************************************************
3
+
4
+ // Lists
5
+ // *******************************************************************************
6
+ @function slice-list($list, $start: 1, $end: length($list)) {
7
+ $result: null;
8
+
9
+ @if type-of($start) != number or type-of($end) != number {
10
+ @warn "Either $start or $end are not a number for `slice`.";
11
+ } @else if $start > $end {
12
+ @warn "The start index has to be lesser than or equals to the end index for `slice`.";
13
+ } @else if $start < 1 or $end < 1 {
14
+ @warn "List indexes must be non-zero integers for `slice`.";
15
+ } @else if $start > length($list) {
16
+ @warn "List index is #{$start} but list is only #{length($list)} item long for `slice`.";
17
+ } @else if $end > length($list) {
18
+ @warn "List index is #{$end} but list is only #{length($list)} item long for `slice`.";
19
+ } @else {
20
+ $result: ();
21
+
22
+ @for $i from $start through $end {
23
+ $result: append($result, nth($list, $i));
24
+ }
25
+ }
26
+
27
+ @return $result;
28
+ }
29
+
30
+ // * Units
31
+ // *******************************************************************************
32
+
33
+ // Remove the unit of a length
34
+ @function strip-unit($number) {
35
+ @if type-of($number) == 'number' and not unitless($number) {
36
+ @return divide($number, ($number * 0 + 1));
37
+ }
38
+
39
+ @return $number;
40
+ }
41
+
42
+ // Convert size px to rem
43
+ @function px-to-rem($value) {
44
+ // Assumes the browser default font size = `16px`
45
+ @return (divide(strip-unit($value), 16)) * 1rem;
46
+ }
47
+
48
+ // Convert size rem to px
49
+ @function rem-to-px($value) {
50
+ // Assumes the browser default font size = `16px`
51
+ @return (strip-unit($value) * 16) * 1px;
52
+ }
53
+
54
+ // * Colors
55
+ // *******************************************************************************
56
+
57
+ // ? Override shade, tint and shift function with custom background color option i.e $card-bg to make it similar like design
58
+ // Shade a color: mix a color with background/white
59
+ @function tint-color($color, $weight, $background: null) {
60
+ $background: if($background, $background, white);
61
+ @return mix($background, $color, $weight);
62
+ }
63
+
64
+ // Shade a color: mix a color with background/black
65
+ @function shade-color($color, $weight, $background: null) {
66
+ $background: if($background, $background, black);
67
+ @return mix($background, $color, $weight);
68
+ }
69
+
70
+ // Shade the color if the weight is positive, else tint it
71
+ @function shift-color($color, $weight, $background: null) {
72
+ @return if($weight > 0, shade-color($color, $weight, $background), tint-color($color, -$weight));
73
+ }
74
+
75
+ //RGBA to HEX
76
+ @function rgba-to-hex($color, $background: #fff) {
77
+ @if $color and alpha($color) != 1 {
78
+ $percent: alpha($color) * 100%;
79
+ $opaque: opacify($color, 1);
80
+
81
+ @return mix($opaque, $background, $percent);
82
+ } @else {
83
+ @return $color;
84
+ }
85
+ }
86
+
87
+ // Calculating Color Contrast
88
+ @function contrast-value($color) {
89
+ @if $color == transparent {
90
+ @return $body-color;
91
+ } @else if alpha($color) != 1 {
92
+ $color: rgba-to-hex($color);
93
+ }
94
+
95
+ $r: red($color);
96
+ $g: green($color);
97
+ $b: blue($color);
98
+
99
+ @return divide((($r * 299) + ($g * 587) + ($b * 114)), 1000);
100
+ }
101
+
102
+ // * Utilities
103
+ // *******************************************************************************
104
+
105
+ // Return Nav opacity, contrast-percent, contrast-percent-inverted, bg, color, active-color, disabled-color, muted-color, border
106
+ @function get-navbar-prop($bg, $active-color: null, $inactive-color: null, $border: null) {
107
+ $bg: rgba-to-hex($bg);
108
+
109
+ $active-color: rgba-to-hex($active-color);
110
+ $active-color: if($active-color, $active-color, color-contrast($bg));
111
+
112
+ $contrast-percent: divide(contrast-value($bg), 255);
113
+ $contrast-percent-inverted: 1 - $contrast-percent;
114
+
115
+ $opacity: if($active-color == #fff, 0.6 + (0.4 * $contrast-percent), 0.6 + (0.4 * (1 - $contrast-percent)));
116
+
117
+ $color: if(
118
+ $inactive-color,
119
+ rgba-to-hex($inactive-color, $bg),
120
+ rgba-to-hex(rgba($active-color, if($contrast-percent < 0.25, $opacity + 0.2, $opacity)), $bg)
121
+ );
122
+ $disabled-color: rgba-to-hex(rgba($color, 0.6), $bg);
123
+ $muted-color: rgba-to-hex(rgba($color, 0.75), $bg);
124
+ $border: if(
125
+ $border,
126
+ $border,
127
+ if(
128
+ $contrast-percent > 0.75,
129
+ rgba($active-color, divide($opacity, 8)),
130
+ if($contrast-percent < 0.25, rgba($active-color, 0.06), rgba($active-color, 0.15))
131
+ )
132
+ );
133
+
134
+ @return (
135
+ // Metadata
136
+ opacity: $opacity,
137
+ contrast-percent: $contrast-percent,
138
+ contrast-percent-inverted: $contrast-percent-inverted,
139
+ // Colors
140
+ bg: $bg,
141
+ color: $color,
142
+ active-color: $active-color,
143
+ disabled-color: $disabled-color,
144
+ muted-color: $muted-color,
145
+ border: $border
146
+ );
147
+ }
@@ -0,0 +1,13 @@
1
+ //Functions
2
+ @import 'bootstrap/scss/functions'; // Bootstrap core functions
3
+ @import 'functions'; // Bootstrap extended functions
4
+
5
+ //Variables
6
+ @import '../_custom-variables/bootstrap-extended'; // Bootstrap extended custom variable (for customization purpose)
7
+ @import 'variables'; // Bootstrap extended variable
8
+ @import 'bootstrap/scss/variables'; // Bootstrap core variable
9
+ @import 'bootstrap/scss/maps'; // Bootstrap core variable
10
+
11
+ //Mixins
12
+ @import 'bootstrap/scss/mixins'; // Bootstrap core mixins
13
+ @import 'mixins'; // Bootstrap extended mixins