spectre_scss 0.3.2.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 (74) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +48 -0
  8. data/Rakefile +34 -0
  9. data/bin/console +7 -0
  10. data/bin/setup +6 -0
  11. data/lib/spectre_scss.rb +5 -0
  12. data/lib/spectre_scss/engine.rb +4 -0
  13. data/lib/spectre_scss/version.rb +3 -0
  14. data/spectre_scss.gemspec +26 -0
  15. data/vendor/assets/stylesheets/spectre.scss +1 -0
  16. data/vendor/assets/stylesheets/spectre/spectre-exp.scss +16 -0
  17. data/vendor/assets/stylesheets/spectre/spectre-icons.scss +8 -0
  18. data/vendor/assets/stylesheets/spectre/spectre.scss +50 -0
  19. data/vendor/assets/stylesheets/spectre/src/_accordions.scss +34 -0
  20. data/vendor/assets/stylesheets/spectre/src/_animations.scss +20 -0
  21. data/vendor/assets/stylesheets/spectre/src/_asian.scss +33 -0
  22. data/vendor/assets/stylesheets/spectre/src/_autocomplete.scss +41 -0
  23. data/vendor/assets/stylesheets/spectre/src/_avatars.scss +77 -0
  24. data/vendor/assets/stylesheets/spectre/src/_badges.scss +70 -0
  25. data/vendor/assets/stylesheets/spectre/src/_bars.scss +71 -0
  26. data/vendor/assets/stylesheets/spectre/src/_base.scss +40 -0
  27. data/vendor/assets/stylesheets/spectre/src/_breadcrumbs.scss +29 -0
  28. data/vendor/assets/stylesheets/spectre/src/_buttons.scss +182 -0
  29. data/vendor/assets/stylesheets/spectre/src/_calendars.scss +206 -0
  30. data/vendor/assets/stylesheets/spectre/src/_cards.scss +39 -0
  31. data/vendor/assets/stylesheets/spectre/src/_carousels.scss +124 -0
  32. data/vendor/assets/stylesheets/spectre/src/_chips.scss +24 -0
  33. data/vendor/assets/stylesheets/spectre/src/_codes.scss +32 -0
  34. data/vendor/assets/stylesheets/spectre/src/_comparison-sliders.scss +114 -0
  35. data/vendor/assets/stylesheets/spectre/src/_dropdowns.scss +36 -0
  36. data/vendor/assets/stylesheets/spectre/src/_empty.scss +21 -0
  37. data/vendor/assets/stylesheets/spectre/src/_filters.scss +29 -0
  38. data/vendor/assets/stylesheets/spectre/src/_forms.scss +514 -0
  39. data/vendor/assets/stylesheets/spectre/src/_icons.scss +656 -0
  40. data/vendor/assets/stylesheets/spectre/src/_labels.scss +33 -0
  41. data/vendor/assets/stylesheets/spectre/src/_layout.scss +422 -0
  42. data/vendor/assets/stylesheets/spectre/src/_media.scss +70 -0
  43. data/vendor/assets/stylesheets/spectre/src/_menus.scss +56 -0
  44. data/vendor/assets/stylesheets/spectre/src/_meters.scss +57 -0
  45. data/vendor/assets/stylesheets/spectre/src/_mixins.scss +185 -0
  46. data/vendor/assets/stylesheets/spectre/src/_modals.scss +73 -0
  47. data/vendor/assets/stylesheets/spectre/src/_navbar.scss +29 -0
  48. data/vendor/assets/stylesheets/spectre/src/_navigation.scss +13 -0
  49. data/vendor/assets/stylesheets/spectre/src/_navs.scss +34 -0
  50. data/vendor/assets/stylesheets/spectre/src/_normalize.scss +437 -0
  51. data/vendor/assets/stylesheets/spectre/src/_pagination.scss +61 -0
  52. data/vendor/assets/stylesheets/spectre/src/_panels.scss +23 -0
  53. data/vendor/assets/stylesheets/spectre/src/_parallax.scss +131 -0
  54. data/vendor/assets/stylesheets/spectre/src/_popovers.scss +70 -0
  55. data/vendor/assets/stylesheets/spectre/src/_progress.scss +45 -0
  56. data/vendor/assets/stylesheets/spectre/src/_sliders.scss +93 -0
  57. data/vendor/assets/stylesheets/spectre/src/_steps.scss +70 -0
  58. data/vendor/assets/stylesheets/spectre/src/_tables.scss +45 -0
  59. data/vendor/assets/stylesheets/spectre/src/_tabs.scss +62 -0
  60. data/vendor/assets/stylesheets/spectre/src/_tiles.scss +38 -0
  61. data/vendor/assets/stylesheets/spectre/src/_timelines.scss +55 -0
  62. data/vendor/assets/stylesheets/spectre/src/_toasts.scss +41 -0
  63. data/vendor/assets/stylesheets/spectre/src/_tooltips.scss +77 -0
  64. data/vendor/assets/stylesheets/spectre/src/_typography.scss +127 -0
  65. data/vendor/assets/stylesheets/spectre/src/_utilities.scss +7 -0
  66. data/vendor/assets/stylesheets/spectre/src/_variables.scss +105 -0
  67. data/vendor/assets/stylesheets/spectre/src/utilities/_colors.scss +45 -0
  68. data/vendor/assets/stylesheets/spectre/src/utilities/_display.scss +47 -0
  69. data/vendor/assets/stylesheets/spectre/src/utilities/_divider.scss +50 -0
  70. data/vendor/assets/stylesheets/spectre/src/utilities/_loading.scss +34 -0
  71. data/vendor/assets/stylesheets/spectre/src/utilities/_position.scss +35 -0
  72. data/vendor/assets/stylesheets/spectre/src/utilities/_shapes.scss +7 -0
  73. data/vendor/assets/stylesheets/spectre/src/utilities/_text.scss +52 -0
  74. metadata +157 -0
@@ -0,0 +1,70 @@
1
+ // Media
2
+ .img-responsive {
3
+ display: block;
4
+ height: auto;
5
+ max-width: 100%;
6
+ }
7
+
8
+ // object-fit support is coming to Microsoft Edge
9
+ // https://developer.microsoft.com/en-us/microsoft-edge/platform/status/objectfitandobjectposition/
10
+ .img-fit-cover {
11
+ object-fit: cover;
12
+ }
13
+
14
+ .img-fit-contain {
15
+ object-fit: contain;
16
+ }
17
+
18
+ // Video responsive
19
+ .video-responsive {
20
+ display: block;
21
+ overflow: hidden;
22
+ padding: 0;
23
+ position: relative;
24
+ width: 100%;
25
+
26
+ &::before {
27
+ content: "";
28
+ display: block;
29
+ padding-bottom: 56.25%; // Default ratio 16:9, you can calculate this value by dividing 9 by 16
30
+ }
31
+
32
+ iframe,
33
+ object,
34
+ embed {
35
+ border: 0;
36
+ bottom: 0;
37
+ height: 100%;
38
+ left: 0;
39
+ position: absolute;
40
+ right: 0;
41
+ top: 0;
42
+ width: 100%;
43
+ }
44
+ video {
45
+ height: auto;
46
+ max-width: 100%;
47
+ width: 100%;
48
+ }
49
+ }
50
+
51
+ .video-responsive-4-3 {
52
+ &::before {
53
+ padding-bottom: 75%; // Ratio 4:3
54
+ }
55
+ }
56
+
57
+ .video-responsive-1-1 {
58
+ &::before {
59
+ padding-bottom: 100%; // Ratio 1:1
60
+ }
61
+ }
62
+
63
+ .figure {
64
+ margin: 0 0 $layout-spacing 0;
65
+
66
+ .figure-caption {
67
+ color: $gray-color-dark;
68
+ margin-top: $layout-spacing;
69
+ }
70
+ }
@@ -0,0 +1,56 @@
1
+ // Menus
2
+ .menu {
3
+ background: $bg-color-light;
4
+ border-radius: $border-radius;
5
+ list-style: none;
6
+ margin: 0;
7
+ min-width: $control-min-width;
8
+ padding: $unit-2;
9
+ @include shadow-variant(.05rem);
10
+ transform: translateY($layout-spacing-sm);
11
+ z-index: $zindex-1;
12
+
13
+ &.menu-nav {
14
+ background: transparent;
15
+ box-shadow: none;
16
+ }
17
+
18
+ .menu-item {
19
+ margin-top: 0;
20
+ padding: 0 $unit-2;
21
+ text-decoration: none;
22
+ user-select: none;
23
+
24
+ & > a {
25
+ border-radius: $border-radius;
26
+ color: inherit;
27
+ display: block;
28
+ margin: 0 (-$unit-2);
29
+ padding: $unit-1 $unit-2;
30
+ text-decoration: none;
31
+ &:focus,
32
+ &:hover {
33
+ background: $secondary-color;
34
+ color: $primary-color;
35
+ }
36
+ &:active,
37
+ &.active {
38
+ background: $secondary-color;
39
+ color: $primary-color;
40
+ }
41
+ }
42
+
43
+ & + .menu-item {
44
+ margin-top: $unit-1;
45
+ }
46
+ }
47
+
48
+ .menu-badge {
49
+ float: right;
50
+ padding: $unit-1 0;
51
+
52
+ .btn {
53
+ margin-top: -$unit-h;
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,57 @@
1
+ // Meters
2
+ // Credit: https://css-tricks.com/html5-meter-element/
3
+ .meter {
4
+ appearance: none;
5
+ background: $bg-color;
6
+ border: 0;
7
+ border-radius: $border-radius;
8
+ display: block;
9
+ width: 100%;
10
+ height: $unit-4;
11
+
12
+ &::-webkit-meter-inner-element {
13
+ display: block;
14
+ }
15
+
16
+ &::-webkit-meter-bar,
17
+ &::-webkit-meter-optimum-value,
18
+ &::-webkit-meter-suboptimum-value,
19
+ &::-webkit-meter-even-less-good-value {
20
+ border-radius: $border-radius;
21
+ }
22
+
23
+ &::-webkit-meter-bar {
24
+ background: $bg-color;
25
+ }
26
+
27
+ &::-webkit-meter-optimum-value {
28
+ background: $success-color;
29
+ }
30
+
31
+ &::-webkit-meter-suboptimum-value {
32
+ background: $warning-color;
33
+ }
34
+
35
+ &::-webkit-meter-even-less-good-value {
36
+ background: $error-color;
37
+ }
38
+
39
+ &::-moz-meter-bar,
40
+ &:-moz-meter-optimum,
41
+ &:-moz-meter-sub-optimum,
42
+ &:-moz-meter-sub-sub-optimum {
43
+ border-radius: $border-radius;
44
+ }
45
+
46
+ &:-moz-meter-optimum::-moz-meter-bar {
47
+ background: $success-color;
48
+ }
49
+
50
+ &:-moz-meter-sub-optimum::-moz-meter-bar {
51
+ background: $warning-color;
52
+ }
53
+
54
+ &:-moz-meter-sub-sub-optimum::-moz-meter-bar {
55
+ background: $error-color;
56
+ }
57
+ }
@@ -0,0 +1,185 @@
1
+ // Mixins
2
+
3
+ // Strip Units
4
+ @function strip-unit($number) {
5
+ @if type-of($number) == 'number' and not unitless($number) {
6
+ @return $number / ($number * 0 + 1);
7
+ }
8
+
9
+ @return $number;
10
+ }
11
+
12
+ // Avatar mixin
13
+ @mixin avatar-base($size: $unit-8) {
14
+ font-size: $size / 2;
15
+ height: $size;
16
+ width: $size;
17
+ }
18
+
19
+ // Background color utility mixin
20
+ @mixin bg-color-variant($color: $primary-color) {
21
+ background: $color;
22
+ }
23
+
24
+ // Button variant mixin
25
+ @mixin button-variant($color: $primary-color) {
26
+ background: $color;
27
+ border-color: darken($color, 3%);
28
+ color: $light-color;
29
+ &:focus {
30
+ @include control-shadow($color);
31
+ }
32
+ &:focus,
33
+ &:hover {
34
+ background: darken($color, 2%);
35
+ border-color: darken($color, 5%);
36
+ color: $light-color;
37
+ }
38
+ &:active,
39
+ &.active {
40
+ background: darken($color, 7%);
41
+ border-color: darken($color, 10%);
42
+ color: $light-color;
43
+ }
44
+ &.loading {
45
+ &::after {
46
+ border-bottom-color: $light-color;
47
+ border-left-color: $light-color;
48
+ }
49
+ }
50
+ }
51
+
52
+ @mixin button-outline-variant($color: $primary-color) {
53
+ background: $light-color;
54
+ border-color: $color;
55
+ color: $color;
56
+ &:focus {
57
+ @include control-shadow($color);
58
+ }
59
+ &:focus,
60
+ &:hover {
61
+ background: lighten($color, 50%);
62
+ border-color: darken($color, 2%);
63
+ color: $color;
64
+ }
65
+ &:active,
66
+ &.active {
67
+ background: $color;
68
+ border-color: darken($color, 5%);
69
+ color: $light-color;
70
+ }
71
+ &.loading {
72
+ &::after {
73
+ border-bottom-color: $color;
74
+ border-left-color: $color;
75
+ }
76
+ }
77
+ }
78
+
79
+ // Clearfix mixin
80
+ @mixin clearfix() {
81
+ &::after {
82
+ clear: both;
83
+ content: "";
84
+ display: table;
85
+ }
86
+ }
87
+
88
+ // Component focus shadow
89
+ @mixin control-shadow($color: $primary-color) {
90
+ box-shadow: 0 0 0 .1rem rgba($color, .2);
91
+ }
92
+
93
+ // Component transition
94
+ @mixin control-transition() {
95
+ transition: all .2s ease;
96
+ }
97
+
98
+ // Label base style
99
+ @mixin label-base() {
100
+ border-radius: $border-radius;
101
+ line-height: 1;
102
+ padding: .15rem .2rem;
103
+ }
104
+
105
+ @mixin label-variant($color: $light-color, $bg-color: $primary-color) {
106
+ background: $bg-color;
107
+ color: $color;
108
+ }
109
+
110
+ // Margin utility mixin
111
+ @mixin margin-variant($id: 1, $size: 1) {
112
+ .m-#{$id} {
113
+ margin: $size;
114
+ }
115
+ .mb-#{$id} {
116
+ margin-bottom: $size;
117
+ }
118
+ .ml-#{$id} {
119
+ margin-left: $size;
120
+ }
121
+ .mr-#{$id} {
122
+ margin-right: $size;
123
+ }
124
+ .mt-#{$id} {
125
+ margin-top: $size;
126
+ }
127
+ .mx-#{$id} {
128
+ margin-left: $size;
129
+ margin-right: $size;
130
+ }
131
+ .my-#{$id} {
132
+ margin-bottom: $size;
133
+ margin-top: $size;
134
+ }
135
+ }
136
+
137
+ // Padding utility mixin
138
+ @mixin padding-variant($id: 1, $size: 1) {
139
+ .p-#{$id} {
140
+ padding: $size;
141
+ }
142
+ .pb-#{$id} {
143
+ padding-bottom: $size;
144
+ }
145
+ .pl-#{$id} {
146
+ padding-left: $size;
147
+ }
148
+ .pr-#{$id} {
149
+ padding-right: $size;
150
+ }
151
+ .pt-#{$id} {
152
+ padding-top: $size;
153
+ }
154
+ .px-#{$id} {
155
+ padding-left: $size;
156
+ padding-right: $size;
157
+ }
158
+ .py-#{$id} {
159
+ padding-bottom: $size;
160
+ padding-top: $size;
161
+ }
162
+ }
163
+
164
+ // Shadow mixin
165
+ @mixin shadow-variant($offset) {
166
+ box-shadow: 0 $offset ($offset + .05rem) * 2 rgba($dark-color, .3);
167
+ }
168
+
169
+ // Text color utility mixin
170
+ @mixin text-color-variant($color: $primary-color) {
171
+ color: $color;
172
+
173
+ a#{&} {
174
+ &:focus,
175
+ &:hover {
176
+ color: darken($color, 5%);
177
+ }
178
+ }
179
+ }
180
+
181
+ // Toast variant mixin
182
+ @mixin toast-variant($color: $dark-color) {
183
+ background: rgba($color, .9);
184
+ border-color: $color;
185
+ }
@@ -0,0 +1,73 @@
1
+ // Modals
2
+ .modal {
3
+ align-items: center;
4
+ bottom: 0;
5
+ display: none;
6
+ justify-content: center;
7
+ left: 0;
8
+ opacity: 0;
9
+ overflow: hidden;
10
+ padding: $layout-spacing;
11
+ position: fixed;
12
+ right: 0;
13
+ top: 0;
14
+
15
+ &:target,
16
+ &.active {
17
+ display: flex;
18
+ opacity: 1;
19
+ z-index: $zindex-4;
20
+
21
+ .modal-overlay {
22
+ background: rgba($bg-color, .75);
23
+ bottom: 0;
24
+ cursor: default;
25
+ display: block;
26
+ left: 0;
27
+ position: absolute;
28
+ right: 0;
29
+ top: 0;
30
+ }
31
+
32
+ .modal-container {
33
+ animation: slide-down .2s ease 1;
34
+ max-width: 640px;
35
+ z-index: $zindex-0;
36
+ }
37
+ }
38
+
39
+ &.modal-sm {
40
+ .modal-container {
41
+ max-width: $control-max-width;
42
+ }
43
+ }
44
+ }
45
+
46
+ .modal-container {
47
+ background: $bg-color-light;
48
+ border-radius: $border-radius;
49
+ display: block;
50
+ padding: 0;
51
+ @include shadow-variant(.2rem);
52
+ text-align: left;
53
+
54
+ .modal-header {
55
+ padding: $layout-spacing-lg;
56
+
57
+ .modal-title {
58
+ margin: 0;
59
+ }
60
+ }
61
+
62
+ .modal-body {
63
+ max-height: 50vh;
64
+ overflow-y: auto;
65
+ padding: $layout-spacing-lg;
66
+ position: relative;
67
+ }
68
+
69
+ .modal-footer {
70
+ padding: $layout-spacing-lg;
71
+ text-align: right;
72
+ }
73
+ }
@@ -0,0 +1,29 @@
1
+ // Navbar
2
+ .navbar {
3
+ align-items: stretch;
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ justify-content: space-between;
7
+
8
+ .navbar-section {
9
+ align-items: center;
10
+ display: flex;
11
+ flex: 1 0 0;
12
+
13
+ &:last-child {
14
+ justify-content: flex-end;
15
+ }
16
+ }
17
+
18
+ .navbar-center {
19
+ align-items: center;
20
+ display: flex;
21
+ flex: 0 0 auto;
22
+ }
23
+
24
+ .navbar-brand {
25
+ font-size: $font-size-lg;
26
+ font-weight: 500;
27
+ text-decoration: none;
28
+ }
29
+ }