scooter-sass 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +46 -0
  7. data/Rakefile +1 -0
  8. data/app/assets/stylesheets/scooter.scss +38 -0
  9. data/app/assets/stylesheets/scooter/base/__all.scss +12 -0
  10. data/app/assets/stylesheets/scooter/base/_base.scss +23 -0
  11. data/app/assets/stylesheets/scooter/base/_reset.scss +55 -0
  12. data/app/assets/stylesheets/scooter/base/_typography.scss +91 -0
  13. data/app/assets/stylesheets/scooter/components/__all.scss +21 -0
  14. data/app/assets/stylesheets/scooter/components/_arrow.scss +25 -0
  15. data/app/assets/stylesheets/scooter/components/_avatar.scss +191 -0
  16. data/app/assets/stylesheets/scooter/components/_badge.scss +46 -0
  17. data/app/assets/stylesheets/scooter/components/_banners.scss +68 -0
  18. data/app/assets/stylesheets/scooter/components/_buttons.scss +152 -0
  19. data/app/assets/stylesheets/scooter/components/_calendar.scss +97 -0
  20. data/app/assets/stylesheets/scooter/components/_cards.scss +146 -0
  21. data/app/assets/stylesheets/scooter/components/_inputs.scss +91 -0
  22. data/app/assets/stylesheets/scooter/components/_loading-indicator.scss +69 -0
  23. data/app/assets/stylesheets/scooter/components/_modal.scss +74 -0
  24. data/app/assets/stylesheets/scooter/components/_tab-nav.scss +70 -0
  25. data/app/assets/stylesheets/scooter/components/_tables.scss +66 -0
  26. data/app/assets/stylesheets/scooter/components/_title-bubble.scss +137 -0
  27. data/app/assets/stylesheets/scooter/components/_tokens.scss +116 -0
  28. data/app/assets/stylesheets/scooter/components/_typeahead.scss +77 -0
  29. data/app/assets/stylesheets/scooter/functions/__all.scss +11 -0
  30. data/app/assets/stylesheets/scooter/functions/_colors.scss +104 -0
  31. data/app/assets/stylesheets/scooter/functions/_maths.scss +21 -0
  32. data/app/assets/stylesheets/scooter/functions/_units.scss +10 -0
  33. data/app/assets/stylesheets/scooter/helpers/__all.scss +13 -0
  34. data/app/assets/stylesheets/scooter/helpers/_accessibility.scss +28 -0
  35. data/app/assets/stylesheets/scooter/helpers/_clearfix.scss +23 -0
  36. data/app/assets/stylesheets/scooter/helpers/_inputs.scss +22 -0
  37. data/app/assets/stylesheets/scooter/helpers/_layout.scss +112 -0
  38. data/app/assets/stylesheets/scooter/helpers/_typography.scss +88 -0
  39. data/app/assets/stylesheets/scooter/mixins/__all.scss +11 -0
  40. data/app/assets/stylesheets/scooter/mixins/_accessibility.scss +22 -0
  41. data/app/assets/stylesheets/scooter/mixins/_arrow.scss +53 -0
  42. data/app/assets/stylesheets/scooter/mixins/_debug.scss +83 -0
  43. data/app/assets/stylesheets/scooter/mixins/_image.scss +15 -0
  44. data/app/assets/stylesheets/scooter/mixins/_properties.scss +16 -0
  45. data/app/assets/stylesheets/scooter/objects/__all.scss +11 -0
  46. data/app/assets/stylesheets/scooter/objects/_flag.scss +88 -0
  47. data/app/assets/stylesheets/scooter/objects/_grid.scss +295 -0
  48. data/app/assets/stylesheets/scooter/objects/_list-ui.scss +23 -0
  49. data/app/assets/stylesheets/scooter/objects/_media.scss +33 -0
  50. data/app/assets/stylesheets/scooter/objects/_wrap.scss +12 -0
  51. data/app/assets/stylesheets/scooter/variables/__all.scss +10 -0
  52. data/app/assets/stylesheets/scooter/variables/_colors.scss +72 -0
  53. data/app/assets/stylesheets/scooter/variables/_config.scss +5 -0
  54. data/app/assets/stylesheets/scooter/variables/_units.scss +8 -0
  55. data/bin/console +14 -0
  56. data/bin/setup +8 -0
  57. data/lib/scooter-sass.rb +52 -0
  58. data/lib/scooter-sass/engine.rb +11 -0
  59. data/lib/scooter-sass/version.rb +5 -0
  60. data/scooter-sass.gemspec +26 -0
  61. metadata +132 -0
@@ -0,0 +1,91 @@
1
+ //-----------------------------
2
+ //
3
+ // Inputs
4
+ //
5
+ //-----------------------------
6
+
7
+ $DBform-namespace: "c-form" !default;
8
+ $DBlabel-namespace: "c-label" !default;
9
+ $DBinput-namespace: "c-input" !default;
10
+
11
+ $DBlabel-color: color(gray, medium) !default;
12
+ $DBinput-color: color(gray) !default;
13
+ $DBinput-color-disabled: color(gray, 0.7) !default;
14
+
15
+ $DBinput-border: color(gray, x-dark, 0.1) !default;
16
+ $DBinput-border-focused: color(blue, medium) !default;
17
+
18
+ $DBinput-background: color(white) !default;
19
+ $DBinput-background-disabled: color(gray, x-light) !default;
20
+
21
+ /**
22
+ * Input & label components
23
+ */
24
+ .#{$DBlabel-namespace} {
25
+ // Ensure the element is actually a label
26
+ @include assert-selector(label);
27
+
28
+ display: block;
29
+ margin-bottom: $DBbaseline;
30
+
31
+ font-size: 12px;
32
+
33
+ color: $DBlabel-color;
34
+ }
35
+
36
+ .#{$DBinput-namespace} {
37
+ // Ensure the element is actually a kind of input
38
+ @include assert-selector(input, button, select, textarea);
39
+
40
+ display: block;
41
+ width: 100%;
42
+ padding: 5px 7px;
43
+ box-sizing: border-box;
44
+
45
+ font-size: $DBfont-size;
46
+ text-align: left;
47
+
48
+ color: $DBinput-color;
49
+ border: 1px solid $DBinput-border;
50
+ border-radius: 3px;
51
+ background-color: $DBinput-background;
52
+ background-clip: padding-box;
53
+
54
+ &:focus {
55
+ border-color: $DBinput-border-focused;
56
+ outline: 0;
57
+ }
58
+
59
+ &:disabled, &.is-disabled {
60
+ background-color: $DBinput-background-disabled;
61
+ }
62
+
63
+ &.is-invalid,
64
+ .#{$DBform-namespace}--validated &:invalid {
65
+ @include background-image("icon-form-invalid.svg", 14px, right 10px center);
66
+
67
+ padding-right: 34px;
68
+
69
+ border-color: color(red, 0.5);
70
+ // Override default invalidation styles
71
+ box-shadow: none;
72
+ outline: 0;
73
+ }
74
+
75
+ &.is-valid,
76
+ .#{$DBform-namespace}--validated &:valid {
77
+ @include background-image("icon-form-valid.svg", 14px, right 10px center);
78
+
79
+ padding-right: 34px;
80
+ }
81
+ }
82
+
83
+ textarea.#{$DBinput-namespace} {
84
+ resize: vertical;
85
+ }
86
+
87
+ select.#{$DBinput-namespace} {
88
+ @include background-image("icon-form-dropdown.svg", 7px 14px, right 10px center);
89
+
90
+ padding-right: 27px;
91
+ }
@@ -0,0 +1,69 @@
1
+ //-----------------------------
2
+ //
3
+ // Loading indicator
4
+ // =================
5
+ //
6
+ // Usage:
7
+ // <div class="c-loader">Loading...</div>
8
+ //
9
+ //-----------------------------
10
+
11
+ $DBloadingindicator-namespace: "c-loader";
12
+
13
+ $DBloadingindicator-color: color(gray, dark);
14
+
15
+ $DBloadingindicator-size: 6px;
16
+
17
+ $DBloadingindicator-speed: 0.9s;
18
+
19
+ /**
20
+ * Loading indicator component
21
+ */
22
+ .#{$DBloadingindicator-namespace} {
23
+ display: inline-block;
24
+ position: relative;
25
+ width: $DBloadingindicator-size;
26
+ height: $DBloadingindicator-size;
27
+ margin: ($DBloadingindicator-size * 2) 0;
28
+
29
+ font-size: 0;
30
+
31
+ color: transparent;
32
+ border-radius: 100%;
33
+ background-color: rgba($DBloadingindicator-color, 0.3);
34
+
35
+ &, &:after, &:before {
36
+ animation: loaderFade $DBloadingindicator-speed ease-in-out infinite;
37
+ }
38
+
39
+ &:after, &:before {
40
+ content: "";
41
+ vertical-align: middle;
42
+ position: absolute;
43
+ left: 100%;
44
+ width: $DBloadingindicator-size;
45
+ height: $DBloadingindicator-size;
46
+ margin-left: round($DBloadingindicator-size * 0.6);
47
+
48
+ border-radius: 100%;
49
+ background-color: rgba($DBloadingindicator-color, 0.3);
50
+ animation-delay: ($DBloadingindicator-speed / 3);
51
+ }
52
+
53
+ &:after {
54
+ left: 200%;
55
+ margin-left: (round($DBloadingindicator-size * 0.3) + $DBloadingindicator-size);
56
+
57
+ animation-delay: (($DBloadingindicator-speed / 3) * 2);
58
+ }
59
+ }
60
+
61
+ @keyframes loaderFade {
62
+ 50% {
63
+ background-color: rgba($DBloadingindicator-color, 1);
64
+ }
65
+
66
+ 0%, 100% {
67
+ background-color: rgba($DBloadingindicator-color, 0.3);
68
+ }
69
+ }
@@ -0,0 +1,74 @@
1
+ //-----------------------------
2
+ //
3
+ // Modal
4
+ //
5
+ //-----------------------------
6
+
7
+ $DBmodal-namespace: "c-modal" !default;
8
+
9
+ $DBmodal-padding: 32px;
10
+
11
+ $DBmodal-background: color(white) !default;
12
+ $DBmodal-background-alt: color(gray, x-light) !default;
13
+
14
+ /**
15
+ * Modal component
16
+ */
17
+ .#{$DBmodal-namespace}-overlay {
18
+ @include share(top, right, bottom, left, 0);
19
+ display: flex;
20
+ position: absolute;
21
+ align-content: center;
22
+ align-items: center;
23
+ justify-content: center;
24
+ padding: $DBmodal-padding;
25
+
26
+ background-color: color(gray, dark, 0.6);
27
+ }
28
+
29
+ .#{$DBmodal-namespace} {
30
+ overflow: scroll;
31
+ flex: 1 1 640px;
32
+ max-width: 640px;
33
+
34
+ border-radius: 3px;
35
+ box-shadow: 0 1px 2px color(gray, x-dark, 0.1);
36
+ background-color: $DBmodal-background;
37
+ }
38
+
39
+ .#{$DBmodal-namespace}__title,
40
+ .#{$DBmodal-namespace}__header {
41
+ z-index: 3;
42
+ padding: ($DBmodal-padding/2) $DBmodal-padding;
43
+
44
+ box-shadow: 0 1px 1px color(gray, x-dark, 0.1);
45
+ background-color: $DBmodal-background;
46
+
47
+ .#{$DBmodal-namespace}--unibody & {
48
+ padding-bottom: 0;
49
+
50
+ box-shadow: none;
51
+ }
52
+
53
+ h2 {
54
+ margin-bottom: 0;
55
+ }
56
+ }
57
+
58
+ .#{$DBmodal-namespace}__content {
59
+ // Raise the z-index to enable overlapping of sibling banners
60
+ z-index: 2;
61
+ padding: $DBmodal-padding;
62
+
63
+ background-color: $DBmodal-background-alt;
64
+
65
+ .#{$DBmodal-namespace}--unibody & {
66
+ // The 'unibody' variant of c-modal has no differentiation between the
67
+ // title and the content
68
+ background-color: $DBmodal-background;
69
+ }
70
+ }
71
+
72
+ .#{$DBmodal-namespace}__banner {
73
+ box-shadow: inset 0 1px 0 color(gray, x-dark, 0.1);
74
+ }
@@ -0,0 +1,70 @@
1
+ //------------------------------
2
+ //
3
+ // Tab navigation
4
+ // ==============
5
+ //
6
+ // Example:
7
+ // <nav>
8
+ // <ul class="c-tab-nav">
9
+ // <li class="c-tab-nav__tab"><a href="#photos">Photos</a></li>
10
+ // <!-- Add the --is-active modifier to active tabs -->
11
+ // <li class="c-tab-nav__tab c-tab-nav__tav--is-active"><a
12
+ // href="#docs">Documents</a></li>
13
+ // </ul>
14
+ // </nav>
15
+ //
16
+ //------------------------------
17
+
18
+ $DBtab-nav-namespace: "c-tab-nav" !default;
19
+
20
+ .#{$DBtab-nav-namespace} {
21
+ margin-left: 0;
22
+ padding-left: 0;
23
+
24
+ list-style: none;
25
+
26
+ border-bottom: 1px solid color(gray, dark, 0.1);
27
+ }
28
+
29
+ .#{$DBtab-nav-namespace}__tab {
30
+ display: inline-block;
31
+ margin-bottom: -1px;
32
+
33
+ color: color(gray, medium);
34
+
35
+ // Adjacent siblings get a margin-left
36
+ + #{&} {
37
+ margin-left: 16px;
38
+ }
39
+
40
+ a, button {
41
+ display: inline-block;
42
+ padding: 0;
43
+ padding-bottom: 8px;
44
+
45
+ border: 0;
46
+ border-bottom: 1px solid transparent;
47
+ transition: 0.2s;
48
+ background-color: transparent;
49
+ color: inherit;
50
+
51
+ appearance: none;
52
+ cursor: pointer;
53
+
54
+ &:hover, &:focus {
55
+ text-decoration: none;
56
+
57
+ outline: 0;
58
+ color: color(gray, dark);
59
+ border-bottom-color: currentColor;
60
+ }
61
+ }
62
+
63
+ &.is-active a,
64
+ &.is-active button {
65
+ font-weight: 600;
66
+
67
+ color: color(gray, dark);
68
+ border-bottom-color: currentColor;
69
+ }
70
+ }
@@ -0,0 +1,66 @@
1
+ //-----------------------------
2
+ //
3
+ // Tables
4
+ //
5
+ //-----------------------------
6
+
7
+ $DBtable-namespace: "c-table";
8
+
9
+ .#{$DBtable-namespace} {
10
+ display: table;
11
+ width: 100%;
12
+
13
+ text-align: left;
14
+
15
+ &__th, th,
16
+ &__td, td {
17
+ @include share(padding-top, padding-bottom, $DBbaseline/2);
18
+ @include share(padding-left, padding-right, $DBbaseline/4);
19
+ }
20
+
21
+ &__th, th {
22
+ font-weight: 400;
23
+
24
+ color: grayscale(5);
25
+ border-bottom: 2px solid color(gray, light);
26
+ }
27
+
28
+ &__row, tr {
29
+ border-bottom: 1px solid color(gray, light);
30
+ }
31
+
32
+ // Messaging state modifiers
33
+ &__row, tr,
34
+ &__td, td {
35
+ &--success {
36
+ background-color: color(green, light);
37
+ }
38
+
39
+ &--warning {
40
+ background-color: color(yellow, light);
41
+ }
42
+
43
+ &--error {
44
+ background-color: color(red, light);
45
+ }
46
+ }
47
+
48
+ // "Zebra-striped" rows change in color every other row
49
+ &--zebra &__row:nth-child(odd),
50
+ &--zebra tbody tr:nth-child(odd) {
51
+ background-color: color(gray, x-light);
52
+ }
53
+
54
+ // Selectable states also get hover/focus interaction
55
+ &--selectable &__row,
56
+ &--selectable tbody tr {
57
+ &:hover, &:focus,
58
+ &.has-focus {
59
+ background-color: color(blue, x-light);
60
+ }
61
+
62
+ &.is-selected {
63
+ background-color: color(blue, light);
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,137 @@
1
+ //-----------------------------
2
+ //
3
+ // Title Bubble
4
+ // ============
5
+ //
6
+ // A tipsy-like tooltip component with default south direction
7
+ //
8
+ // Usage:
9
+ // <div class="c-title-bubble [c-title-bubble--n | --e | --w]" data-title="Some text">
10
+ // {{content}}
11
+ // </div>
12
+ //
13
+ //-----------------------------
14
+
15
+ $DBtitlebubble-namespace: "c-title-bubble" !default;
16
+
17
+ $DBtitlebubble-background: color(gray, dark) !default;
18
+ $DBtitlebubble-point-width: 5px !default;
19
+
20
+ /**
21
+ * Title-bubble component
22
+ */
23
+ .#{$DBtitlebubble-namespace} {
24
+ display: inline-block;
25
+ position: relative;
26
+
27
+ &:before, &:after {
28
+ z-index: 500;
29
+ }
30
+
31
+ &:after {
32
+ content: attr(data-title);
33
+ display: none;
34
+ position: absolute;
35
+ top: 100%;
36
+ left: 50%;
37
+ white-space: nowrap;
38
+ margin-top: $DBtitlebubble-point-width;
39
+ padding: 7px 9px;
40
+
41
+ font-size: 11px;
42
+ font-weight: 500;
43
+ line-height: 1.4;
44
+
45
+ color: color(white);
46
+ border-radius: 3px;
47
+ background-color: $DBtitlebubble-background;
48
+
49
+ transform: translateX(-50%);
50
+ transform-origin: 50% 50%;
51
+ }
52
+
53
+ &:before {
54
+ content: "";
55
+ display: none;
56
+ position: absolute;
57
+ top: 100%;
58
+ left: 50%;
59
+ margin-top: -($DBtitlebubble-point-width);
60
+ margin-left: -$DBtitlebubble-point-width;
61
+
62
+ border: 5px solid transparent;
63
+ border-bottom-color: $DBtitlebubble-background;
64
+ }
65
+
66
+ &--respect-line-break {
67
+ &:after {
68
+ white-space: pre-line;
69
+ }
70
+ }
71
+
72
+ &--n {
73
+ &:after {
74
+ top: auto;
75
+ bottom: 100%;
76
+ margin-bottom: $DBtitlebubble-point-width;
77
+ }
78
+
79
+ &:before {
80
+ top: auto;
81
+ bottom: 100%;
82
+ margin-bottom: -$DBtitlebubble-point-width;
83
+
84
+ border-top-color: $DBtitlebubble-background;
85
+ border-bottom-color: transparent;
86
+ }
87
+ }
88
+
89
+ &--e {
90
+ &:after {
91
+ top: 50%;
92
+ left: 100%;
93
+ margin-top: 0;
94
+ margin-left: $DBtitlebubble-point-width;
95
+
96
+ transform: translateY(-50%);
97
+ }
98
+
99
+ &:before {
100
+ top: 50%;
101
+ left: 100%;
102
+ margin-top: -$DBtitlebubble-point-width;
103
+
104
+ border-right-color: $DBtitlebubble-background;
105
+ border-bottom-color: transparent;
106
+ }
107
+ }
108
+
109
+ &--w {
110
+ &:after {
111
+ top: 50%;
112
+ right: 100%;
113
+ left: auto;
114
+ margin-top: 0;
115
+ margin-right: $DBtitlebubble-point-width;
116
+
117
+ transform: translateY(-50%);
118
+ }
119
+
120
+ &:before {
121
+ top: 50%;
122
+ right: 100%;
123
+ left: auto;
124
+ margin-top: -$DBtitlebubble-point-width;
125
+ margin-right: -$DBtitlebubble-point-width;
126
+
127
+ border-bottom-color: transparent;
128
+ border-left-color: $DBtitlebubble-background;
129
+ }
130
+ }
131
+
132
+ &:hover, &:focus, &.is-child-focused {
133
+ &:before, &:after {
134
+ display: block;
135
+ }
136
+ }
137
+ }