flipper-ui 0.16.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +5 -5
  2. data/docs/ui/README.md +34 -24
  3. data/docs/ui/images/banner.png +0 -0
  4. data/docs/ui/images/description.png +0 -0
  5. data/docs/ui/images/feature.png +0 -0
  6. data/docs/ui/images/features.png +0 -0
  7. data/examples/ui/basic.ru +20 -0
  8. data/flipper-ui.gemspec +1 -2
  9. data/lib/flipper/ui.rb +4 -7
  10. data/lib/flipper/ui/action.rb +3 -6
  11. data/lib/flipper/ui/actions/feature.rb +5 -2
  12. data/lib/flipper/ui/actions/features.rb +14 -1
  13. data/lib/flipper/ui/actions/file.rb +1 -1
  14. data/lib/flipper/ui/assets/javascripts/application.coffee +5 -3
  15. data/lib/flipper/ui/configuration.rb +34 -10
  16. data/lib/flipper/ui/decorators/feature.rb +39 -13
  17. data/lib/flipper/ui/public/css/application.css +20 -6493
  18. data/lib/flipper/ui/public/js/application.js +5 -5
  19. data/lib/flipper/ui/util.rb +40 -0
  20. data/lib/flipper/ui/views/add_actor.erb +2 -2
  21. data/lib/flipper/ui/views/add_feature.erb +2 -2
  22. data/lib/flipper/ui/views/add_group.erb +1 -1
  23. data/lib/flipper/ui/views/feature.erb +199 -180
  24. data/lib/flipper/ui/views/features.erb +55 -36
  25. data/lib/flipper/ui/views/layout.erb +4 -14
  26. data/lib/flipper/version.rb +1 -1
  27. data/spec/flipper/ui/actions/actors_gate_spec.rb +9 -13
  28. data/spec/flipper/ui/actions/feature_spec.rb +14 -16
  29. data/spec/flipper/ui/actions/features_spec.rb +49 -14
  30. data/spec/flipper/ui/actions/file_spec.rb +0 -10
  31. data/spec/flipper/ui/actions/groups_gate_spec.rb +0 -6
  32. data/spec/flipper/ui/actions/percentage_of_actors_gate_spec.rb +0 -2
  33. data/spec/flipper/ui/actions/percentage_of_time_gate_spec.rb +0 -2
  34. data/spec/flipper/ui/configuration_spec.rb +69 -34
  35. data/spec/flipper/ui/decorators/feature_spec.rb +2 -32
  36. data/spec/flipper/ui_spec.rb +1 -1
  37. metadata +19 -131
  38. data/docs/ui/images/configured-ui.png +0 -0
  39. data/docs/ui/images/environment-banner.png +0 -0
  40. data/lib/flipper/ui/assets/stylesheets/.DS_Store +0 -0
  41. data/lib/flipper/ui/assets/stylesheets/application.scss +0 -19
  42. data/lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss +0 -51
  43. data/lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss +0 -47
  44. data/lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss +0 -38
  45. data/lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss +0 -166
  46. data/lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss +0 -143
  47. data/lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss +0 -270
  48. data/lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss +0 -191
  49. data/lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss +0 -34
  50. data/lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss +0 -56
  51. data/lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss +0 -297
  52. data/lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss +0 -131
  53. data/lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss +0 -333
  54. data/lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss +0 -86
  55. data/lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss +0 -52
  56. data/lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss +0 -42
  57. data/lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss +0 -159
  58. data/lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  59. data/lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss +0 -115
  60. data/lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss +0 -8
  61. data/lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss +0 -42
  62. data/lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss +0 -168
  63. data/lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss +0 -118
  64. data/lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss +0 -311
  65. data/lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss +0 -77
  66. data/lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss +0 -183
  67. data/lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss +0 -124
  68. data/lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss +0 -33
  69. data/lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss +0 -482
  70. data/lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss +0 -19
  71. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss +0 -180
  72. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss +0 -115
  73. data/lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss +0 -36
  74. data/lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss +0 -125
  75. data/lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss +0 -14
  76. data/lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss +0 -894
  77. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss +0 -32
  78. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss +0 -12
  79. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss +0 -42
  80. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -13
  81. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  82. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  83. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss +0 -35
  84. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +0 -5
  85. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +0 -123
  86. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss +0 -109
  87. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -65
  88. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss +0 -7
  89. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  90. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -137
  91. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss +0 -45
  92. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  93. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss +0 -52
  94. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -39
  95. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss +0 -36
  96. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -21
  97. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss +0 -7
  98. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  99. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
  100. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss +0 -22
  101. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss +0 -17
  102. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss +0 -6
  103. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -35
  104. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  105. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  106. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  107. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -9
  108. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +0 -8
  109. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss +0 -9
  110. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  111. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  112. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  113. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  114. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss +0 -3
  115. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  116. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  117. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -46
  118. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  119. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss +0 -36
  120. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  121. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  122. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  123. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss +0 -52
  124. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  125. data/lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml +0 -446
  126. data/lib/flipper/ui/assets/stylesheets/primer/_alerts.scss +0 -106
  127. data/lib/flipper/ui/assets/stylesheets/primer/_avatars.scss +0 -36
  128. data/lib/flipper/ui/assets/stylesheets/primer/_base.scss +0 -40
  129. data/lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss +0 -96
  130. data/lib/flipper/ui/assets/stylesheets/primer/_buttons.scss +0 -404
  131. data/lib/flipper/ui/assets/stylesheets/primer/_counter.scss +0 -10
  132. data/lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss +0 -68
  133. data/lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss +0 -20
  134. data/lib/flipper/ui/assets/stylesheets/primer/_forms.scss +0 -756
  135. data/lib/flipper/ui/assets/stylesheets/primer/_layout.scss +0 -69
  136. data/lib/flipper/ui/assets/stylesheets/primer/_menu.scss +0 -113
  137. data/lib/flipper/ui/assets/stylesheets/primer/_mixins.scss +0 -53
  138. data/lib/flipper/ui/assets/stylesheets/primer/_normalize.scss +0 -425
  139. data/lib/flipper/ui/assets/stylesheets/primer/_states.scss +0 -32
  140. data/lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss +0 -65
  141. data/lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss +0 -255
  142. data/lib/flipper/ui/assets/stylesheets/primer/_truncate.scss +0 -27
  143. data/lib/flipper/ui/assets/stylesheets/primer/_type.scss +0 -92
  144. data/lib/flipper/ui/assets/stylesheets/primer/_utility.scss +0 -73
  145. data/lib/flipper/ui/assets/stylesheets/primer/_variables.scss +0 -34
  146. data/lib/flipper/ui/assets/stylesheets/primer/primer.scss +0 -39
  147. data/lib/flipper/ui/eruby.rb +0 -11
  148. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  149. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
  150. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  151. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  152. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  153. data/lib/flipper/ui/public/images/remove.png +0 -0
  154. data/lib/flipper/ui/public/octicons/octicons.less +0 -235
  155. data/lib/flipper/ui/public/octicons/sprockets-octicons.scss +0 -232
@@ -1,8 +0,0 @@
1
- .media {
2
- display: flex;
3
- align-items: flex-start;
4
- }
5
-
6
- .media-body {
7
- flex: 1;
8
- }
@@ -1,42 +0,0 @@
1
- // Toggles
2
- //
3
- // Used in conjunction with global variables to enable certain theme features.
4
-
5
- // Utilities
6
- @import "mixins/breakpoints";
7
- @import "mixins/hover";
8
- @import "mixins/image";
9
- @import "mixins/badge";
10
- @import "mixins/resize";
11
- @import "mixins/screen-reader";
12
- @import "mixins/size";
13
- @import "mixins/reset-text";
14
- @import "mixins/text-emphasis";
15
- @import "mixins/text-hide";
16
- @import "mixins/text-truncate";
17
- @import "mixins/visibility";
18
-
19
- // // Components
20
- @import "mixins/alert";
21
- @import "mixins/buttons";
22
- @import "mixins/caret";
23
- @import "mixins/pagination";
24
- @import "mixins/lists";
25
- @import "mixins/list-group";
26
- @import "mixins/nav-divider";
27
- @import "mixins/forms";
28
- @import "mixins/table-row";
29
-
30
- // // Skins
31
- @import "mixins/background-variant";
32
- @import "mixins/border-radius";
33
- @import "mixins/box-shadow";
34
- @import "mixins/gradients";
35
- @import "mixins/transition";
36
-
37
- // // Layout
38
- @import "mixins/clearfix";
39
- // @import "mixins/navbar-align";
40
- @import "mixins/grid-framework";
41
- @import "mixins/grid";
42
- @import "mixins/float";
@@ -1,168 +0,0 @@
1
- // .modal-open - body class for killing the scroll
2
- // .modal - container to scroll within
3
- // .modal-dialog - positioning shell for the actual modal
4
- // .modal-content - actual modal w/ bg and corners and stuff
5
-
6
-
7
- // Kill the scroll on the body
8
- .modal-open {
9
- overflow: hidden;
10
- }
11
-
12
- // Container that the modal scrolls within
13
- .modal {
14
- position: fixed;
15
- top: 0;
16
- right: 0;
17
- bottom: 0;
18
- left: 0;
19
- z-index: $zindex-modal;
20
- display: none;
21
- overflow: hidden;
22
- // Prevent Chrome on Windows from adding a focus outline. For details, see
23
- // https://github.com/twbs/bootstrap/pull/10951.
24
- outline: 0;
25
- // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
26
- // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
27
- // See also https://github.com/twbs/bootstrap/issues/17695
28
-
29
- .modal-open & {
30
- overflow-x: hidden;
31
- overflow-y: auto;
32
- }
33
- }
34
-
35
- // Shell div to position the modal with bottom padding
36
- .modal-dialog {
37
- position: relative;
38
- width: auto;
39
- margin: $modal-dialog-margin;
40
- // allow clicks to pass through for custom click handling to close modal
41
- pointer-events: none;
42
-
43
- // When fading in the modal, animate it to slide down
44
- .modal.fade & {
45
- @include transition($modal-transition);
46
- transform: translate(0, -25%);
47
- }
48
- .modal.show & {
49
- transform: translate(0, 0);
50
- }
51
- }
52
-
53
- .modal-dialog-centered {
54
- display: flex;
55
- align-items: center;
56
- min-height: calc(100% - (#{$modal-dialog-margin} * 2));
57
- }
58
-
59
- // Actual modal
60
- .modal-content {
61
- position: relative;
62
- display: flex;
63
- flex-direction: column;
64
- width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
65
- // counteract the pointer-events: none; in the .modal-dialog
66
- pointer-events: auto;
67
- background-color: $modal-content-bg;
68
- background-clip: padding-box;
69
- border: $modal-content-border-width solid $modal-content-border-color;
70
- @include border-radius($border-radius-lg);
71
- @include box-shadow($modal-content-box-shadow-xs);
72
- // Remove focus outline from opened modal
73
- outline: 0;
74
- }
75
-
76
- // Modal background
77
- .modal-backdrop {
78
- position: fixed;
79
- top: 0;
80
- right: 0;
81
- bottom: 0;
82
- left: 0;
83
- z-index: $zindex-modal-backdrop;
84
- background-color: $modal-backdrop-bg;
85
-
86
- // Fade for backdrop
87
- &.fade { opacity: 0; }
88
- &.show { opacity: $modal-backdrop-opacity; }
89
- }
90
-
91
- // Modal header
92
- // Top section of the modal w/ title and dismiss
93
- .modal-header {
94
- display: flex;
95
- align-items: flex-start; // so the close btn always stays on the upper right corner
96
- justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
97
- padding: $modal-header-padding;
98
- border-bottom: $modal-header-border-width solid $modal-header-border-color;
99
- @include border-top-radius($border-radius-lg);
100
-
101
- .close {
102
- padding: $modal-header-padding;
103
- // auto on the left force icon to the right even when there is no .modal-title
104
- margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;
105
- }
106
- }
107
-
108
- // Title text within header
109
- .modal-title {
110
- margin-bottom: 0;
111
- line-height: $modal-title-line-height;
112
- }
113
-
114
- // Modal body
115
- // Where all modal content resides (sibling of .modal-header and .modal-footer)
116
- .modal-body {
117
- position: relative;
118
- // Enable `flex-grow: 1` so that the body take up as much space as possible
119
- // when should there be a fixed height on `.modal-dialog`.
120
- flex: 1 1 auto;
121
- padding: $modal-inner-padding;
122
- }
123
-
124
- // Footer (for actions)
125
- .modal-footer {
126
- display: flex;
127
- align-items: center; // vertically center
128
- justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
129
- padding: $modal-inner-padding;
130
- border-top: $modal-footer-border-width solid $modal-footer-border-color;
131
-
132
- // Easily place margin between footer elements
133
- > :not(:first-child) { margin-left: .25rem; }
134
- > :not(:last-child) { margin-right: .25rem; }
135
- }
136
-
137
- // Measure scrollbar width for padding body during modal show/hide
138
- .modal-scrollbar-measure {
139
- position: absolute;
140
- top: -9999px;
141
- width: 50px;
142
- height: 50px;
143
- overflow: scroll;
144
- }
145
-
146
- // Scale up the modal
147
- @include media-breakpoint-up(sm) {
148
- // Automatically set modal's width for larger viewports
149
- .modal-dialog {
150
- max-width: $modal-md;
151
- margin: $modal-dialog-margin-y-sm-up auto;
152
- }
153
-
154
- .modal-dialog-centered {
155
- min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));
156
- }
157
-
158
- .modal-content {
159
- @include box-shadow($modal-content-box-shadow-sm-up);
160
- }
161
-
162
- .modal-sm { max-width: $modal-sm; }
163
-
164
- }
165
-
166
- @include media-breakpoint-up(lg) {
167
- .modal-lg { max-width: $modal-lg; }
168
- }
@@ -1,118 +0,0 @@
1
- // Base class
2
- //
3
- // Kickstart any navigation component with a set of style resets. Works with
4
- // `<nav>`s or `<ul>`s.
5
-
6
- .nav {
7
- display: flex;
8
- flex-wrap: wrap;
9
- padding-left: 0;
10
- margin-bottom: 0;
11
- list-style: none;
12
- }
13
-
14
- .nav-link {
15
- display: block;
16
- padding: $nav-link-padding-y $nav-link-padding-x;
17
-
18
- @include hover-focus {
19
- text-decoration: none;
20
- }
21
-
22
- // Disabled state lightens text
23
- &.disabled {
24
- color: $nav-link-disabled-color;
25
- }
26
- }
27
-
28
- //
29
- // Tabs
30
- //
31
-
32
- .nav-tabs {
33
- border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
34
-
35
- .nav-item {
36
- margin-bottom: -$nav-tabs-border-width;
37
- }
38
-
39
- .nav-link {
40
- border: $nav-tabs-border-width solid transparent;
41
- @include border-top-radius($nav-tabs-border-radius);
42
-
43
- @include hover-focus {
44
- border-color: $nav-tabs-link-hover-border-color;
45
- }
46
-
47
- &.disabled {
48
- color: $nav-link-disabled-color;
49
- background-color: transparent;
50
- border-color: transparent;
51
- }
52
- }
53
-
54
- .nav-link.active,
55
- .nav-item.show .nav-link {
56
- color: $nav-tabs-link-active-color;
57
- background-color: $nav-tabs-link-active-bg;
58
- border-color: $nav-tabs-link-active-border-color;
59
- }
60
-
61
- .dropdown-menu {
62
- // Make dropdown border overlap tab border
63
- margin-top: -$nav-tabs-border-width;
64
- // Remove the top rounded corners here since there is a hard edge above the menu
65
- @include border-top-radius(0);
66
- }
67
- }
68
-
69
-
70
- //
71
- // Pills
72
- //
73
-
74
- .nav-pills {
75
- .nav-link {
76
- @include border-radius($nav-pills-border-radius);
77
- }
78
-
79
- .nav-link.active,
80
- .show > .nav-link {
81
- color: $nav-pills-link-active-color;
82
- background-color: $nav-pills-link-active-bg;
83
- }
84
- }
85
-
86
-
87
- //
88
- // Justified variants
89
- //
90
-
91
- .nav-fill {
92
- .nav-item {
93
- flex: 1 1 auto;
94
- text-align: center;
95
- }
96
- }
97
-
98
- .nav-justified {
99
- .nav-item {
100
- flex-basis: 0;
101
- flex-grow: 1;
102
- text-align: center;
103
- }
104
- }
105
-
106
-
107
- // Tabbable tabs
108
- //
109
- // Hide tabbable panes to start, show them when `.active`
110
-
111
- .tab-content {
112
- > .tab-pane {
113
- display: none;
114
- }
115
- > .active {
116
- display: block;
117
- }
118
- }
@@ -1,311 +0,0 @@
1
- // Contents
2
- //
3
- // Navbar
4
- // Navbar brand
5
- // Navbar nav
6
- // Navbar text
7
- // Navbar divider
8
- // Responsive navbar
9
- // Navbar position
10
- // Navbar themes
11
-
12
-
13
- // Navbar
14
- //
15
- // Provide a static navbar from which we expand to create full-width, fixed, and
16
- // other navbar variations.
17
-
18
- .navbar {
19
- position: relative;
20
- display: flex;
21
- flex-wrap: wrap; // allow us to do the line break for collapsing content
22
- align-items: center;
23
- justify-content: space-between; // space out brand from logo
24
- padding: $navbar-padding-y $navbar-padding-x;
25
-
26
- // Because flex properties aren't inherited, we need to redeclare these first
27
- // few properities so that content nested within behave properly.
28
- > .container,
29
- > .container-fluid {
30
- display: flex;
31
- flex-wrap: wrap;
32
- align-items: center;
33
- justify-content: space-between;
34
- }
35
- }
36
-
37
-
38
- // Navbar brand
39
- //
40
- // Used for brand, project, or site names.
41
-
42
- .navbar-brand {
43
- display: inline-block;
44
- padding-top: $navbar-brand-padding-y;
45
- padding-bottom: $navbar-brand-padding-y;
46
- margin-right: $navbar-padding-x;
47
- font-size: $navbar-brand-font-size;
48
- line-height: inherit;
49
- white-space: nowrap;
50
-
51
- @include hover-focus {
52
- text-decoration: none;
53
- }
54
- }
55
-
56
-
57
- // Navbar nav
58
- //
59
- // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
60
-
61
- .navbar-nav {
62
- display: flex;
63
- flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
64
- padding-left: 0;
65
- margin-bottom: 0;
66
- list-style: none;
67
-
68
- .nav-link {
69
- padding-right: 0;
70
- padding-left: 0;
71
- }
72
-
73
- .dropdown-menu {
74
- position: static;
75
- float: none;
76
- }
77
- }
78
-
79
-
80
- // Navbar text
81
- //
82
- //
83
-
84
- .navbar-text {
85
- display: inline-block;
86
- padding-top: $nav-link-padding-y;
87
- padding-bottom: $nav-link-padding-y;
88
- }
89
-
90
-
91
- // Responsive navbar
92
- //
93
- // Custom styles for responsive collapsing and toggling of navbar contents.
94
- // Powered by the collapse Bootstrap JavaScript plugin.
95
-
96
- // When collapsed, prevent the toggleable navbar contents from appearing in
97
- // the default flexbox row orienation. Requires the use of `flex-wrap: wrap`
98
- // on the `.navbar` parent.
99
- .navbar-collapse {
100
- flex-basis: 100%;
101
- flex-grow: 1;
102
- // For always expanded or extra full navbars, ensure content aligns itself
103
- // properly vertically. Can be easily overridden with flex utilities.
104
- align-items: center;
105
- }
106
-
107
- // Button for toggling the navbar when in its collapsed state
108
- .navbar-toggler {
109
- padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
110
- font-size: $navbar-toggler-font-size;
111
- line-height: 1;
112
- background-color: transparent; // remove default button style
113
- border: $border-width solid transparent; // remove default button style
114
- @include border-radius($navbar-toggler-border-radius);
115
-
116
- @include hover-focus {
117
- text-decoration: none;
118
- }
119
-
120
- // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
121
- &:not(:disabled):not(.disabled) {
122
- cursor: pointer;
123
- }
124
- }
125
-
126
- // Keep as a separate element so folks can easily override it with another icon
127
- // or image file as needed.
128
- .navbar-toggler-icon {
129
- display: inline-block;
130
- width: 1.5em;
131
- height: 1.5em;
132
- vertical-align: middle;
133
- content: "";
134
- background: no-repeat center center;
135
- background-size: 100% 100%;
136
- }
137
-
138
- // Generate series of `.navbar-expand-*` responsive classes for configuring
139
- // where your navbar collapses.
140
- .navbar-expand {
141
- @each $breakpoint in map-keys($grid-breakpoints) {
142
- $next: breakpoint-next($breakpoint, $grid-breakpoints);
143
- $infix: breakpoint-infix($next, $grid-breakpoints);
144
-
145
- &#{$infix} {
146
- @include media-breakpoint-down($breakpoint) {
147
- > .container,
148
- > .container-fluid {
149
- padding-right: 0;
150
- padding-left: 0;
151
- }
152
- }
153
-
154
- @include media-breakpoint-up($next) {
155
- flex-flow: row nowrap;
156
- justify-content: flex-start;
157
-
158
- .navbar-nav {
159
- flex-direction: row;
160
-
161
- .dropdown-menu {
162
- position: absolute;
163
- }
164
-
165
- .dropdown-menu-right {
166
- right: 0;
167
- left: auto; // Reset the default from `.dropdown-menu`
168
- }
169
-
170
- .nav-link {
171
- padding-right: $navbar-nav-link-padding-x;
172
- padding-left: $navbar-nav-link-padding-x;
173
- }
174
- }
175
-
176
- // For nesting containers, have to redeclare for alignment purposes
177
- > .container,
178
- > .container-fluid {
179
- flex-wrap: nowrap;
180
- }
181
-
182
- .navbar-collapse {
183
- display: flex !important; // stylelint-disable-line declaration-no-important
184
-
185
- // Changes flex-bases to auto because of an IE10 bug
186
- flex-basis: auto;
187
- }
188
-
189
- .navbar-toggler {
190
- display: none;
191
- }
192
-
193
- .dropup {
194
- .dropdown-menu {
195
- top: auto;
196
- bottom: 100%;
197
- }
198
- }
199
- }
200
- }
201
- }
202
- }
203
-
204
-
205
- // Navbar themes
206
- //
207
- // Styles for switching between navbars with light or dark background.
208
-
209
- // Dark links against a light background
210
- .navbar-light {
211
- .navbar-brand {
212
- color: $navbar-light-active-color;
213
-
214
- @include hover-focus {
215
- color: $navbar-light-active-color;
216
- }
217
- }
218
-
219
- .navbar-nav {
220
- .nav-link {
221
- color: $navbar-light-color;
222
-
223
- @include hover-focus {
224
- color: $navbar-light-hover-color;
225
- }
226
-
227
- &.disabled {
228
- color: $navbar-light-disabled-color;
229
- }
230
- }
231
-
232
- .show > .nav-link,
233
- .active > .nav-link,
234
- .nav-link.show,
235
- .nav-link.active {
236
- color: $navbar-light-active-color;
237
- }
238
- }
239
-
240
- .navbar-toggler {
241
- color: $navbar-light-color;
242
- border-color: $navbar-light-toggler-border-color;
243
- }
244
-
245
- .navbar-toggler-icon {
246
- background-image: $navbar-light-toggler-icon-bg;
247
- }
248
-
249
- .navbar-text {
250
- color: $navbar-light-color;
251
- a {
252
- color: $navbar-light-active-color;
253
-
254
- @include hover-focus {
255
- color: $navbar-light-active-color;
256
- }
257
- }
258
- }
259
- }
260
-
261
- // White links against a dark background
262
- .navbar-dark {
263
- .navbar-brand {
264
- color: $navbar-dark-active-color;
265
-
266
- @include hover-focus {
267
- color: $navbar-dark-active-color;
268
- }
269
- }
270
-
271
- .navbar-nav {
272
- .nav-link {
273
- color: $navbar-dark-color;
274
-
275
- @include hover-focus {
276
- color: $navbar-dark-hover-color;
277
- }
278
-
279
- &.disabled {
280
- color: $navbar-dark-disabled-color;
281
- }
282
- }
283
-
284
- .show > .nav-link,
285
- .active > .nav-link,
286
- .nav-link.show,
287
- .nav-link.active {
288
- color: $navbar-dark-active-color;
289
- }
290
- }
291
-
292
- .navbar-toggler {
293
- color: $navbar-dark-color;
294
- border-color: $navbar-dark-toggler-border-color;
295
- }
296
-
297
- .navbar-toggler-icon {
298
- background-image: $navbar-dark-toggler-icon-bg;
299
- }
300
-
301
- .navbar-text {
302
- color: $navbar-dark-color;
303
- a {
304
- color: $navbar-dark-active-color;
305
-
306
- @include hover-focus {
307
- color: $navbar-dark-active-color;
308
- }
309
- }
310
- }
311
- }