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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/app/assets/builds/sneat_rails/application.css +3 -0
- data/app/assets/builds/sneat_rails/fonts/boxicons.eot +0 -0
- data/app/assets/builds/sneat_rails/fonts/boxicons.svg +1660 -0
- data/app/assets/builds/sneat_rails/fonts/boxicons.ttf +0 -0
- data/app/assets/builds/sneat_rails/fonts/boxicons.woff +0 -0
- data/app/assets/builds/sneat_rails/fonts/boxicons.woff2 +0 -0
- data/app/assets/builds/sneat_rails/sneat.css +43157 -0
- data/app/assets/builds/sneat_rails/sneat.css.map +1 -0
- data/app/assets/config/manifest.js +3 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_accordion.scss +56 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_alert.scss +9 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_badge.scss +18 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_breadcrumb.scss +47 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_button-group.scss +59 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_buttons.scss +127 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_card.scss +197 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_carousel.scss +42 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_close.scss +6 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_dropdown.scss +63 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_forms.scss +10 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_functions.scss +147 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_include.scss +13 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_list-group.scss +58 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_mixins.scss +16 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_modal.scss +110 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_nav.scss +327 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_navbar.scss +58 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_offcanvas.scss +10 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_pagination.scss +92 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_popover.scss +31 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_progress.scss +31 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_reboot.scss +32 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_root.scss +4 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_spinners.scss +21 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_tables.scss +106 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_toasts.scss +61 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_tooltip.scss +11 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_type.scss +2 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_utilities-ltr.scss +283 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_utilities.scss +1027 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/_variables.scss +935 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_floating-labels.scss +12 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-control.scss +15 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-range.scss +52 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_form-select.scss +11 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_input-group.scss +77 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_labels.scss +17 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/forms/_validation.scss +58 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_alert.scss +39 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_badge.scss +9 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_buttons.scss +190 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_caret.scss +42 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_dropdown.scss +26 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_forms.scss +281 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_list-group.scss +66 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_misc.scss +120 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_navs.scss +37 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_pagination.scss +21 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_progress.scss +19 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_table-variants.scss +31 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended/mixins/_toasts.scss +33 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap-extended.scss +39 -0
- data/app/assets/stylesheets/sneat_rails/_bootstrap.scss +44 -0
- data/app/assets/stylesheets/sneat_rails/_boxicons.scss +6944 -0
- data/app/assets/stylesheets/sneat_rails/_colors.scss +39 -0
- data/app/assets/stylesheets/sneat_rails/_components/_app-brand.scss +64 -0
- data/app/assets/stylesheets/sneat_rails/_components/_avatar.scss +126 -0
- data/app/assets/stylesheets/sneat_rails/_components/_base.scss +159 -0
- data/app/assets/stylesheets/sneat_rails/_components/_common.scss +232 -0
- data/app/assets/stylesheets/sneat_rails/_components/_footer.scss +39 -0
- data/app/assets/stylesheets/sneat_rails/_components/_include.scss +11 -0
- data/app/assets/stylesheets/sneat_rails/_components/_layout.scss +539 -0
- data/app/assets/stylesheets/sneat_rails/_components/_menu.scss +346 -0
- data/app/assets/stylesheets/sneat_rails/_components/_mixins.scss +6 -0
- data/app/assets/stylesheets/sneat_rails/_components/_text-divider.scss +89 -0
- data/app/assets/stylesheets/sneat_rails/_components/_variables.scss +93 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_app-brand.scss +33 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_avatar.scss +22 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_footer.scss +39 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_menu.scss +124 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_misc.scss +6 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_navbar.scss +90 -0
- data/app/assets/stylesheets/sneat_rails/_components/mixins/_text-divider.scss +16 -0
- data/app/assets/stylesheets/sneat_rails/_components.scss +11 -0
- data/app/assets/stylesheets/sneat_rails/_custom-variables/_bootstrap-extended.scss +7 -0
- data/app/assets/stylesheets/sneat_rails/_custom-variables/_components.scss +6 -0
- data/app/assets/stylesheets/sneat_rails/_custom-variables/_libs.scss +8 -0
- data/app/assets/stylesheets/sneat_rails/_custom-variables/_pages.scss +8 -0
- data/app/assets/stylesheets/sneat_rails/_custom-variables/_support.scss +9 -0
- data/app/assets/stylesheets/sneat_rails/_theme/_common.scss +49 -0
- data/app/assets/stylesheets/sneat_rails/_theme/_theme.scss +131 -0
- data/app/assets/stylesheets/sneat_rails/application.css +15 -0
- data/app/assets/stylesheets/sneat_rails/application.scss +9 -0
- data/app/assets/stylesheets/sneat_rails/core.scss +4 -0
- data/app/assets/stylesheets/sneat_rails/pages/page-account-settings.scss +13 -0
- data/app/assets/stylesheets/sneat_rails/pages/page-auth.scss +106 -0
- data/app/assets/stylesheets/sneat_rails/pages/page-icons.scss +46 -0
- data/app/assets/stylesheets/sneat_rails/pages/page-misc.scss +15 -0
- data/app/assets/stylesheets/sneat_rails/sneat.css +3 -0
- data/app/assets/stylesheets/sneat_rails/sneat.scss +6 -0
- data/app/assets/stylesheets/sneat_rails/theme-default.scss +111 -0
- data/app/controllers/sneat_rails/application_controller.rb +4 -0
- data/app/controllers/sneat_rails/dashboard_controller.rb +10 -0
- data/app/helpers/sneat_rails/application_helper.rb +4 -0
- data/app/jobs/sneat_rails/application_job.rb +4 -0
- data/app/mailers/sneat_rails/application_mailer.rb +6 -0
- data/app/models/sneat_rails/application_record.rb +5 -0
- data/app/views/layouts/sneat_rails/application.html.erb +30 -0
- data/app/views/sneat_rails/dashboard/index.html.erb +1 -0
- data/app/views/sneat_rails/shared/_navbar.html.erb +3 -0
- data/app/views/sneat_rails/shared/_sidebar.html.erb +3 -0
- data/config/dartsass.rb +3 -0
- data/config/routes.rb +3 -0
- data/lib/generators/sneat_rails/install/install_generator.rb +16 -0
- data/lib/sneat_rails/engine.rb +20 -0
- data/lib/sneat_rails/version.rb +3 -0
- data/lib/sneat_rails.rb +6 -0
- data/lib/tasks/sneat_rails_tasks.rake +4 -0
- 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,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
|