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
+ // Badges
2
+ .badge {
3
+ position: relative;
4
+ white-space: nowrap;
5
+
6
+ &[data-badge],
7
+ &:not([data-badge]) {
8
+ &::after {
9
+ background: $primary-color;
10
+ background-clip: padding-box;
11
+ border-radius: .5rem;
12
+ box-shadow: 0 0 0 .1rem $bg-color-light;
13
+ color: $light-color;
14
+ content: attr(data-badge);
15
+ display: inline-block;
16
+ transform: translate(-.1rem, -.5rem);
17
+ }
18
+ }
19
+ &[data-badge] {
20
+ &::after {
21
+ font-size: $font-size-sm;
22
+ height: 18px;
23
+ line-height: 1;
24
+ min-width: 18px;
25
+ padding: 3px 5px;
26
+ text-align: center;
27
+ white-space: nowrap;
28
+ }
29
+ }
30
+ &:not([data-badge]),
31
+ &[data-badge=''] {
32
+ &::after {
33
+ height: 6px;
34
+ min-width: 6px;
35
+ padding: 0;
36
+ width: 6px;
37
+ }
38
+ }
39
+
40
+ // Badges for Buttons
41
+ &.btn {
42
+ &::after {
43
+ position: absolute;
44
+ top: 0;
45
+ right: 0;
46
+ transform: translate(50%, -50%);
47
+ }
48
+ }
49
+
50
+ // Badges for Avatars
51
+ &.avatar {
52
+ &::after {
53
+ position: absolute;
54
+ top: 14.64%;
55
+ right: 14.64%;
56
+ transform: translate(50%, -50%);
57
+ z-index: $zindex-1;
58
+ }
59
+ }
60
+
61
+ &.avatar-xs {
62
+ &::after {
63
+ content: "";
64
+ height: $unit-2;
65
+ min-width: $unit-2;
66
+ padding: 0;
67
+ width: $unit-2;
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,71 @@
1
+ // Bars
2
+ .bar {
3
+ background: $bg-color-dark;
4
+ border-radius: $border-radius;
5
+ display: flex;
6
+ flex-wrap: nowrap;
7
+ height: $unit-4;
8
+ width: 100%;
9
+
10
+ &.bar-sm {
11
+ height: $unit-1;
12
+ }
13
+
14
+ // TODO: attr() support
15
+ .bar-item {
16
+ background: $primary-color;
17
+ color: $light-color;
18
+ display: block;
19
+ font-size: $font-size-sm;
20
+ flex-shrink: 0;
21
+ line-height: $unit-4;
22
+ height: 100%;
23
+ position: relative;
24
+ text-align: center;
25
+ width: 0;
26
+
27
+ &:first-child {
28
+ border-bottom-left-radius: $border-radius;
29
+ border-top-left-radius: $border-radius;
30
+ }
31
+ &:last-child {
32
+ border-bottom-right-radius: $border-radius;
33
+ border-top-right-radius: $border-radius;
34
+ flex-shrink: 1;
35
+ }
36
+ }
37
+ }
38
+
39
+ // Slider bar
40
+ .bar-slider {
41
+ height: $border-width-lg;
42
+ margin: $layout-spacing 0;
43
+ position: relative;
44
+
45
+ .bar-item {
46
+ left: 0;
47
+ padding: 0;
48
+ position: absolute;
49
+ &:not(:last-child):first-child {
50
+ background: $bg-color-dark;
51
+ z-index: $zindex-0;
52
+ }
53
+ }
54
+
55
+ .bar-slider-btn {
56
+ background: $primary-color;
57
+ border: 0;
58
+ border-radius: 50%;
59
+ height: $unit-3;
60
+ padding: 0;
61
+ position: absolute;
62
+ right: 0;
63
+ top: 50%;
64
+ transform: translate(50%, -50%);
65
+ width: $unit-3;
66
+
67
+ &:active {
68
+ box-shadow: 0 0 0 .1rem $primary-color;
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,40 @@
1
+ // Base
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: inherit;
6
+ }
7
+
8
+ html {
9
+ box-sizing: border-box;
10
+ font-size: $html-font-size;
11
+ line-height: $html-line-height;
12
+ -webkit-tap-highlight-color: transparent;
13
+ }
14
+
15
+ body {
16
+ background: $body-bg;
17
+ color: $body-font-color;
18
+ font-family: $body-font-family;
19
+ font-size: $font-size;
20
+ overflow-x: hidden;
21
+ text-rendering: optimizeLegibility;
22
+ }
23
+
24
+ a {
25
+ color: $link-color;
26
+ outline: none;
27
+ text-decoration: none;
28
+
29
+ &:focus {
30
+ @include control-shadow();
31
+ }
32
+
33
+ &:focus,
34
+ &:hover,
35
+ &:active,
36
+ &.active {
37
+ color: $link-color-dark;
38
+ text-decoration: underline;
39
+ }
40
+ }
@@ -0,0 +1,29 @@
1
+ // Breadcrumbs
2
+ .breadcrumb {
3
+ list-style: none;
4
+ margin: $unit-1 0;
5
+ padding: $unit-1 0;
6
+
7
+ .breadcrumb-item {
8
+ color: $gray-color-dark;
9
+ display: inline-block;
10
+ margin: 0;
11
+ padding: $unit-1 0;
12
+
13
+ &:not(:last-child) {
14
+ margin-right: $unit-1;
15
+
16
+ a {
17
+ color: $gray-color-dark;
18
+ }
19
+ }
20
+
21
+ &:not(:first-child) {
22
+ &::before {
23
+ color: $gray-color-light;
24
+ content: "/";
25
+ padding-right: $unit-1;
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,182 @@
1
+ // Buttons
2
+ .btn {
3
+ appearance: none;
4
+ background: $bg-color-light;
5
+ border: $border-width solid $primary-color;
6
+ border-radius: $border-radius;
7
+ color: $primary-color;
8
+ @include control-transition();
9
+ cursor: pointer;
10
+ display: inline-block;
11
+ font-size: $font-size;
12
+ height: $control-size;
13
+ line-height: $line-height;
14
+ outline: none;
15
+ padding: $control-padding-v $control-padding-h;
16
+ text-align: center;
17
+ text-decoration: none;
18
+ user-select: none;
19
+ vertical-align: middle;
20
+ white-space: nowrap;
21
+ &:focus {
22
+ @include control-shadow();
23
+ }
24
+ &:focus,
25
+ &:hover {
26
+ background: $secondary-color;
27
+ border-color: $primary-color-dark;
28
+ text-decoration: none;
29
+ }
30
+ &:active,
31
+ &.active {
32
+ background: $primary-color-dark;
33
+ border-color: darken($primary-color-dark, 5%);
34
+ color: $light-color;
35
+ text-decoration: none;
36
+ &.loading {
37
+ &::after {
38
+ border-bottom-color: $light-color;
39
+ border-left-color: $light-color;
40
+ }
41
+ }
42
+ }
43
+ &[disabled],
44
+ &:disabled,
45
+ &.disabled {
46
+ cursor: default;
47
+ opacity: .5;
48
+ pointer-events: none;
49
+ }
50
+
51
+ // Button Primary
52
+ &.btn-primary {
53
+ background: $primary-color;
54
+ border-color: $primary-color-dark;
55
+ color: $light-color;
56
+ &:focus,
57
+ &:hover {
58
+ background: darken($primary-color-dark, 2%);
59
+ border-color: darken($primary-color-dark, 5%);
60
+ color: $light-color;
61
+ }
62
+ &:active,
63
+ &.active {
64
+ background: darken($primary-color-dark, 4%);
65
+ border-color: darken($primary-color-dark, 7%);
66
+ color: $light-color;
67
+ }
68
+ &.loading {
69
+ &::after {
70
+ border-bottom-color: $light-color;
71
+ border-left-color: $light-color;
72
+ }
73
+ }
74
+ }
75
+
76
+ // Button Link
77
+ &.btn-link {
78
+ background: transparent;
79
+ border-color: transparent;
80
+ color: $link-color;
81
+ &:focus,
82
+ &:hover,
83
+ &:active,
84
+ &.active {
85
+ color: $link-color-dark;
86
+ }
87
+ }
88
+
89
+ // Button Sizes
90
+ &.btn-sm {
91
+ font-size: $font-size-sm;
92
+ height: $control-size-sm;
93
+ padding: $control-padding-v-sm $control-padding-h * .75;
94
+ }
95
+
96
+ &.btn-lg {
97
+ font-size: $font-size-lg;
98
+ height: $control-size-lg;
99
+ padding: $control-padding-v-lg $control-padding-h * 1.5;
100
+ }
101
+
102
+ // Button Block
103
+ &.btn-block {
104
+ display: block;
105
+ width: 100%;
106
+ }
107
+
108
+ // Button Action
109
+ &.btn-action {
110
+ width: $control-size;
111
+ padding-left: 0;
112
+ padding-right: 0;
113
+
114
+ &.btn-sm {
115
+ width: $control-size-sm;
116
+ }
117
+
118
+ &.btn-lg {
119
+ width: $control-size-lg;
120
+ }
121
+ }
122
+
123
+ // Button Clear
124
+ &.btn-clear {
125
+ background: transparent;
126
+ border: 0;
127
+ color: currentColor;
128
+ height: $unit-4;
129
+ line-height: $unit-4;
130
+ margin-left: $unit-1;
131
+ margin-right: -2px;
132
+ opacity: .45;
133
+ padding: 0 2px;
134
+ text-decoration: none;
135
+ width: $unit-4;
136
+
137
+ &:hover {
138
+ opacity: .85;
139
+ }
140
+
141
+ &::before {
142
+ content: "\2715";
143
+ }
144
+ }
145
+ }
146
+
147
+ // Button groups
148
+ .btn-group {
149
+ display: inline-flex;
150
+ flex-wrap: wrap;
151
+
152
+ .btn {
153
+ flex: 1 0 auto;
154
+ &:first-child:not(:last-child) {
155
+ border-bottom-right-radius: 0;
156
+ border-top-right-radius: 0;
157
+ }
158
+ &:not(:first-child):not(:last-child) {
159
+ border-radius: 0;
160
+ margin-left: -$border-width;
161
+ }
162
+ &:last-child:not(:first-child) {
163
+ border-bottom-left-radius: 0;
164
+ border-top-left-radius: 0;
165
+ margin-left: -$border-width;
166
+ }
167
+ &:focus,
168
+ &:hover,
169
+ &:active,
170
+ &.active {
171
+ z-index: $zindex-0;
172
+ }
173
+ }
174
+
175
+ &.btn-group-block {
176
+ display: flex;
177
+
178
+ .btn {
179
+ flex: 1 0 0;
180
+ }
181
+ }
182
+ }
@@ -0,0 +1,206 @@
1
+ // Calendars
2
+ .calendar {
3
+ border: $border-width solid $border-color;
4
+ border-radius: $border-radius;
5
+ display: block;
6
+ min-width: 280px;
7
+ text-align: center;
8
+
9
+ .calendar-nav {
10
+ align-items: center;
11
+ background: $bg-color;
12
+ border-top-left-radius: $border-radius;
13
+ border-top-right-radius: $border-radius;
14
+ display: flex;
15
+ font-size: $font-size-lg;
16
+ padding: $layout-spacing;
17
+ }
18
+
19
+ .calendar-header,
20
+ .calendar-body {
21
+ display: flex;
22
+ flex-wrap: wrap;
23
+ justify-content: center;
24
+ padding: $layout-spacing 0;
25
+
26
+ .calendar-date {
27
+ flex: 0 0 14.28%; // 7 calendar-items each row
28
+ max-width: 14.28%;
29
+ }
30
+ }
31
+
32
+ .calendar-header {
33
+ background: $bg-color;
34
+ border-bottom: $border-width solid $border-color;
35
+ color: $gray-color;
36
+ font-size: $font-size-sm;
37
+ }
38
+
39
+ .calendar-body {
40
+ color: $gray-color-dark;
41
+ }
42
+
43
+ .calendar-date {
44
+ border: 0;
45
+ padding: $unit-1;
46
+
47
+ .date-item {
48
+ appearance: none;
49
+ background: transparent;
50
+ border: $border-width solid transparent;
51
+ border-radius: 50%;
52
+ color: $gray-color-dark;
53
+ @include control-transition();
54
+ cursor: pointer;
55
+ height: $unit-7;
56
+ line-height: $unit-5;
57
+ outline: none;
58
+ padding: $unit-h;
59
+ position: relative;
60
+ text-align: center;
61
+ text-decoration: none;
62
+ vertical-align: middle;
63
+ white-space: nowrap;
64
+ width: $unit-7;
65
+
66
+ &.date-today {
67
+ border-color: $secondary-color-dark;
68
+ color: $primary-color;
69
+ }
70
+
71
+ &:focus {
72
+ @include control-shadow();
73
+ }
74
+
75
+ &:focus,
76
+ &:hover {
77
+ background: $secondary-color-light;
78
+ border-color: $secondary-color-dark;
79
+ color: $primary-color;
80
+ text-decoration: none;
81
+ }
82
+ &:active,
83
+ &.active {
84
+ background: $primary-color-dark;
85
+ border-color: darken($primary-color-dark, 5%);
86
+ color: $light-color;
87
+ }
88
+
89
+ // Calendar badge support
90
+ &.badge {
91
+ &::after {
92
+ position: absolute;
93
+ top: 3px;
94
+ right: 3px;
95
+ transform: translate(50%, -50%);
96
+ }
97
+ }
98
+ }
99
+
100
+ &.disabled .date-item,
101
+ &.disabled .calendar-event,
102
+ .date-item:disabled,
103
+ .calendar-event:disabled {
104
+ cursor: default;
105
+ opacity: .25;
106
+ pointer-events: none;
107
+ }
108
+ }
109
+
110
+ .calendar-range {
111
+ position: relative;
112
+
113
+ &::before {
114
+ background: $secondary-color;
115
+ content: "";
116
+ height: $unit-7;
117
+ left: 0;
118
+ position: absolute;
119
+ right: 0;
120
+ top: 50%;
121
+ transform: translateY(-50%);
122
+ }
123
+ &.range-start {
124
+ &::before {
125
+ left: 50%;
126
+ }
127
+ }
128
+ &.range-end {
129
+ &::before {
130
+ right: 50%;
131
+ }
132
+ }
133
+
134
+ .date-item {
135
+ color: $primary-color;
136
+ }
137
+ }
138
+
139
+ &.calendar-lg {
140
+ .calendar-body {
141
+ padding: 0;
142
+
143
+ .calendar-date {
144
+ border-bottom: $border-width solid $border-color;
145
+ border-right: $border-width solid $border-color;
146
+ display: flex;
147
+ flex-direction: column;
148
+ height: 5.5rem;
149
+ padding: 0;
150
+
151
+ &:nth-child(7n) {
152
+ border-right: 0;
153
+ }
154
+ &:nth-last-child(-n+7) {
155
+ border-bottom: 0;
156
+ }
157
+ }
158
+ }
159
+
160
+ .date-item {
161
+ align-self: flex-end;
162
+ height: $unit-7;
163
+ margin-right: $layout-spacing-sm;
164
+ margin-top: $layout-spacing-sm;
165
+ }
166
+
167
+ .calendar-range {
168
+ &::before {
169
+ top: 19px;
170
+ }
171
+ &.range-start {
172
+ &::before {
173
+ left: auto;
174
+ width: 19px;
175
+ }
176
+ }
177
+ &.range-end {
178
+ &::before {
179
+ right: 19px;
180
+ }
181
+ }
182
+ }
183
+
184
+ .calendar-events {
185
+ flex-grow: 1;
186
+ line-height: 1;
187
+ overflow-y: auto;
188
+ padding: $layout-spacing-sm;
189
+ }
190
+
191
+ .calendar-event {
192
+ background: $secondary-color;
193
+ border-radius: $border-radius;
194
+ color: $primary-color;
195
+ font-size: $font-size-sm;
196
+ display: block;
197
+ margin: $unit-h auto;
198
+ overflow: hidden;
199
+ padding: 3px 4px;
200
+ text-align: left;
201
+ text-overflow: ellipsis;
202
+ vertical-align: baseline;
203
+ white-space: nowrap;
204
+ }
205
+ }
206
+ }