tungsten 0.1.2 → 0.1.3

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/tungsten/safari-pinned-tab.svg +1 -0
  3. data/app/assets/stylesheets/tungsten/core/_badges.scss +21 -0
  4. data/app/assets/stylesheets/tungsten/core/_buttons.scss +63 -58
  5. data/app/assets/stylesheets/tungsten/core/_cards.scss +16 -11
  6. data/app/assets/stylesheets/tungsten/core/_globals.scss +7 -1
  7. data/app/assets/stylesheets/tungsten/core/_grid.scss +72 -6
  8. data/app/assets/stylesheets/tungsten/core/_index.scss +4 -0
  9. data/app/assets/stylesheets/tungsten/core/_layout.scss +14 -8
  10. data/app/assets/stylesheets/tungsten/core/_navigation.scss +35 -0
  11. data/app/assets/stylesheets/tungsten/core/_sections.scss +25 -0
  12. data/app/assets/stylesheets/tungsten/core/_tables.scss +66 -0
  13. data/app/assets/stylesheets/tungsten/core/_text.scss +1 -0
  14. data/app/assets/stylesheets/tungsten/form/_base.scss +26 -168
  15. data/app/assets/stylesheets/tungsten/form/_check-radio.scss +43 -43
  16. data/app/assets/stylesheets/tungsten/form/_check-switch.scss +18 -18
  17. data/app/assets/stylesheets/tungsten/form/_validation.scss +7 -7
  18. data/app/helpers/tungsten/card_helper.rb +12 -2
  19. data/app/helpers/tungsten/content_helper.rb +45 -0
  20. data/app/helpers/tungsten/section_helper.rb +43 -0
  21. data/lib/tungsten/version.rb +1 -1
  22. data/public/{code-0.1.2.js → code-0.1.3.js} +8 -8
  23. data/public/code-0.1.3.js.gz +0 -0
  24. data/public/code-0.1.3.map.json +1 -0
  25. data/public/{tungsten-0.1.2.css → tungsten-0.1.3.css} +318 -396
  26. data/public/tungsten-0.1.3.css.gz +0 -0
  27. data/public/{tungsten-0.1.2.js → tungsten-0.1.3.js} +2 -2
  28. data/public/tungsten-0.1.3.js.gz +0 -0
  29. data/public/tungsten-0.1.3.map.json +1 -0
  30. metadata +17 -10
  31. data/public/code-0.1.2.js.gz +0 -0
  32. data/public/code-0.1.2.map.json +0 -1
  33. data/public/tungsten-0.1.2.css.gz +0 -0
  34. data/public/tungsten-0.1.2.js.gz +0 -0
  35. data/public/tungsten-0.1.2.map.json +0 -1
@@ -0,0 +1,25 @@
1
+ /* ========================================================================== *
2
+ * Sections module
3
+ * -------------------------------------------------------------------------- */
4
+
5
+ .app-section {
6
+
7
+ &-header,
8
+ &-footer {
9
+ display: flex;
10
+ align-items: baseline;
11
+
12
+ .section-actions {
13
+ margin-bottom: 0;
14
+ margin-left: auto;
15
+ }
16
+ }
17
+
18
+ &-header {
19
+ justify-content: space-between;
20
+ }
21
+
22
+ &-heading {
23
+ font-size: 18px;
24
+ }
25
+ }
@@ -0,0 +1,66 @@
1
+ /* ========================================================================== *
2
+ * Tables module
3
+ * -------------------------------------------------------------------------- */
4
+
5
+ /* ===================================== *
6
+ * Common
7
+ * ------------------------------------- */
8
+
9
+ table {
10
+ vertical-align: top;
11
+ border-spacing: 0;
12
+ }
13
+
14
+ th,
15
+ td {
16
+ padding: 8px;
17
+ text-align: left;
18
+ background: $white;
19
+
20
+ // Right-aligned button panels
21
+ &.action-panel {
22
+ min-width: 120px;
23
+ text-align: right;
24
+ white-space: nowrap;
25
+ }
26
+ }
27
+
28
+ caption {
29
+ display: none;
30
+ }
31
+
32
+ // Ruled cells
33
+ table.ruled {
34
+ tfoot th,
35
+ tbody tr:nth-child(n+2) th,
36
+ tbody tr:nth-child(n+2) td {
37
+ border-top: 1px solid $gray-04;
38
+ }
39
+
40
+ thead th {
41
+ border-bottom: 1px solid $gray-04;
42
+ }
43
+ }
44
+
45
+ // Outlined cells
46
+ table.outlined {
47
+ border-collapse: collapse;
48
+ td,
49
+ th {
50
+ border: 1px solid $gray-04;
51
+ }
52
+ }
53
+
54
+ // Striped rows
55
+ table.striped {
56
+ tbody tr:nth-child(2n+1) th,
57
+ tbody tr:nth-child(2n+1) td {
58
+ background: $gray-03;
59
+ }
60
+ }
61
+
62
+ // Equal-width columns
63
+ table.stretched {
64
+ table-layout: fixed;
65
+ min-width: 100%;
66
+ }
@@ -12,6 +12,7 @@ select,
12
12
  button,
13
13
  textarea {
14
14
  color: $gray-10;
15
+ font-size: $base-size;
15
16
  font-family: $base-font;
16
17
  line-height: $base-line-height;
17
18
  @include font-smoothing;
@@ -1,63 +1,22 @@
1
- $text-inputs: 'textarea, input[type=url], input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password], input[type=search]';
2
-
3
-
4
- @mixin input-active {
5
- &:focus,
6
- &:hover:not([disabled]),
7
- &:active {
8
- @content;
9
- }
10
- }
11
-
12
- $input-weight-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
13
- $empty-shadow: 0 0 0 transparent;
14
-
15
- label { *, *:before, *:after {
16
- transition-duration: $duration;
17
- transition-timing-function: $timing;
18
- }}
19
-
20
- @function input-shadow($color: $gray-06, $size: 1px) {
21
- @return 0 0 0 $size $color inset, $empty-shadow;
22
- }
23
-
24
- @function input-focus-shadow($color: $gray-08, $size: 1px) {
25
- @return 0 0 0 $size $color inset, $input-weight-shadow
26
- }
27
-
28
- $focus-shadow: input-focus-shadow();
29
- $input-shadow: input-shadow();
30
-
31
- form {
32
- width: 100%;
1
+ .switch-label,
2
+ .tick-label {
3
+ pointer-events: none;
33
4
 
34
- &.max {
35
- max-width: 100%;
5
+ * {
6
+ pointer-events: all;
36
7
  }
37
-
38
- }
39
-
40
- .switch-label, .tick-label {
41
- pointer-events: none;
42
- * { pointer-events: all; }
43
8
  }
44
9
 
45
10
  label {
46
- // Bare text-based inputs
47
- + input,
48
- + select,
49
- + textarea {
50
- margin-top: -5px;
51
- }
52
-
53
- [type=checkbox], [type=radio] {
11
+ [type=checkbox],
12
+ [type=radio] {
54
13
  position: absolute;
55
14
  border: none;
56
15
  cursor: pointer;
57
16
  opacity: 0;
58
17
  z-index: -1;
59
18
  }
60
- }
19
+ }
61
20
 
62
21
  fieldset {
63
22
  border: 0;
@@ -66,48 +25,26 @@ fieldset {
66
25
  margin-right: 0;
67
26
  }
68
27
 
69
- // Fieldset legends
70
- legend {
71
- font-size: 24px;
72
- font-weight: 300;
73
- padding-top: 11px;
74
- width: 100%;
75
- margin-bottom: 19px;
76
- + * {
77
- clear: both;
78
- }
79
- }
80
-
81
- fieldset h2, legend.header {
82
- text-transform: none;
83
- letter-spacing: normal;
84
- justify-content: space-between;
85
- box-shadow: none;
86
- font-weight: 300;
87
- width: 100%;
88
- float: left;
89
- font-size: 24px;
90
- padding: 20px 0 0; // 30px
91
- margin: 0 0 30px; // 30px
92
- text-align: center;
93
- + * { clear: both; }
94
- }
95
-
96
-
97
- @mixin input-base {
98
- width: 100%;
99
- font-size: 16px;
28
+ select,
29
+ textarea,
30
+ #{$text-inputs} {
31
+ appearance: none;
100
32
  border: none;
101
- line-height: 30px;
33
+ width: 100%;
102
34
  padding: 9px 12px;
103
35
  border-radius: $radius;
104
- transition-property: box-shadow, color;
105
- appearance: none;
106
- box-shadow: $input-shadow;
36
+ transition: box-shadow $duration;
37
+
38
+ // Normal state
39
+ @include normal {
40
+ box-shadow: 0 0 0 1px rgba($gray-11, .1);
41
+ }
107
42
 
108
- // Keep Chrome’s autofilled fields white
109
- &:-webkit-autofill {
110
- -webkit-box-shadow: 0 0 0 1000px $white inset;
43
+ // Active state
44
+ @include active {
45
+ box-shadow:
46
+ 0 0 0 1px rgba($gray-11, .2),
47
+ 0 1px 3px rgba($gray-11, .25);
111
48
  }
112
49
 
113
50
  &:disabled:not([type="submit"]) {
@@ -116,30 +53,6 @@ fieldset h2, legend.header {
116
53
  }
117
54
  }
118
55
 
119
- input, select, textarea {
120
- outline: 0;
121
- outline-style: none;
122
- border: none;
123
-
124
- &::-moz-focus-inner {
125
- border: none;
126
- padding: 0;
127
- }
128
-
129
- }
130
-
131
- #{$text-inputs}, select, textarea {
132
- @include input-base;
133
-
134
- @include input-active {
135
- box-shadow: $focus-shadow;
136
- }
137
- }
138
-
139
- textarea {
140
- line-height: 20px;
141
- }
142
-
143
56
  // Override default search styling
144
57
  input[type=search] {
145
58
  &,
@@ -150,7 +63,7 @@ input[type=search] {
150
63
  }
151
64
 
152
65
  select {
153
- min-height: 50px;
66
+ min-height: 40px;
154
67
  cursor: pointer;
155
68
  background: $white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 14'%3E%3Cpolygon fill='%237A7B7C' points='3.5,0 0,6 7,6'/%3E%3Cpolygon fill='%237A7B7C' points='3.5,14 0,8 7,8'/%3E%3C/svg%3E") calc(100% - 14px) 50% / 7px 14px no-repeat;
156
69
  }
@@ -159,17 +72,7 @@ select {
159
72
  textarea {
160
73
  display: block;
161
74
  resize: vertical;
162
- margin-top: 10px;
163
- min-height: 100px;
164
- }
165
-
166
- // Bare inputs
167
- :not(label) > {
168
- input,
169
- select,
170
- textarea {
171
- margin: 15px 0;
172
- }
75
+ min-height: 75px;
173
76
  }
174
77
 
175
78
  ::placeholder {
@@ -183,56 +86,11 @@ input[type=number]::-webkit-inner-spin-button {
183
86
  margin: 0;
184
87
  }
185
88
 
186
- .form-row {
187
- display: flex;
188
- justify-content: space-between;
189
- align-items: flex-end;
190
- flex-wrap: wrap;
191
- margin: 0 -5px;
192
-
193
- > * {
194
- padding: 0 5px;
195
- }
196
- }
197
-
198
- .wide-cell {
199
- flex: 1 0 auto;
200
- @include until(400px) {
201
- width: 100%;
202
- }
203
- }
204
-
205
- .button-cell {
206
- display: flex;
207
- flex-direction: row-reverse;
208
-
209
- @include until(550px) {
210
- width: 100%;
211
- }
212
-
213
- @include until(400px) {
214
- a.button, button {
215
- width: 100%;
216
- }
217
- }
218
- }
219
-
220
89
  label {
221
90
  display: flex;
222
- font-size: 15px;
223
91
  flex-direction: column;
224
92
  position: relative;
225
93
  flex: 1 0 auto;
226
- margin: 18px 0;
227
-
228
- .label-text {
229
- transition-property: box-shadow, color;
230
- padding-bottom: .2em;
231
- }
232
-
233
- select, input, textarea {
234
- margin: 0px;
235
- }
236
94
  }
237
95
 
238
96
  form.button_to {
@@ -17,14 +17,14 @@ label.tick-box {
17
17
  margin: 0 8px 0 0;
18
18
  background: $white;
19
19
  transition-property: box-shadow;
20
- box-shadow: input-shadow(), $empty-shadow inset;
20
+ // box-shadow: input-shadow(), $empty-shadow inset;
21
21
  }
22
22
 
23
- @include input-active {
24
- border: none;
23
+ // @include input-active {
24
+ // border: none;
25
25
 
26
- + .tick { box-shadow: input-shadow( $gray-08 ), $empty-shadow inset; }
27
- }
26
+ // + .tick { box-shadow: input-shadow( $gray-08 ), $empty-shadow inset; }
27
+ // }
28
28
 
29
29
  &:disabled {
30
30
  pointer-events: none;
@@ -63,7 +63,7 @@ label.tick-box {
63
63
 
64
64
  // Checked
65
65
  &:checked + .tick {
66
- box-shadow: input-shadow( darken($blue-03, 3) ), 0 0 0 8px $blue-03 inset;
66
+ // box-shadow: input-shadow( darken($blue-03, 3) ), 0 0 0 8px $blue-03 inset;
67
67
 
68
68
  &:after {
69
69
  box-shadow: 0 1px 0 2px darken($blue-03, 15);
@@ -72,22 +72,22 @@ label.tick-box {
72
72
  }
73
73
 
74
74
  // Hover, focus, active
75
- @include input-active {
76
-
77
- // Active Unchecked
78
- + .tick {
79
- &:before { transform: scale(.35); }
80
- &:after { transform: scale(0); }
81
- }
82
-
83
- // Active Checked
84
- &:checked + .tick {
85
- box-shadow: input-shadow( darken($blue-03, 15) ), 0 0 0 8px darken( $blue-03, 5 ) inset;
86
-
87
- &:before { transform: scale(0); }
88
- &:after { transform: scale(.35); }
89
- }
90
- }
75
+ // @include input-active {
76
+
77
+ // // Active Unchecked
78
+ // + .tick {
79
+ // &:before { transform: scale(.35); }
80
+ // &:after { transform: scale(0); }
81
+ // }
82
+
83
+ // // Active Checked
84
+ // &:checked + .tick {
85
+ // box-shadow: input-shadow( darken($blue-03, 15) ), 0 0 0 8px darken( $blue-03, 5 ) inset;
86
+
87
+ // &:before { transform: scale(0); }
88
+ // &:after { transform: scale(.35); }
89
+ // }
90
+ // }
91
91
  }
92
92
 
93
93
  // Checkboxes
@@ -115,7 +115,7 @@ label.tick-box {
115
115
 
116
116
  // Checked
117
117
  &:checked + .tick {
118
- box-shadow: input-shadow( darken($blue-03, 3) ), 0 0 0 10px $blue-03 inset;
118
+ // box-shadow: input-shadow( darken($blue-03, 3) ), 0 0 0 10px $blue-03 inset;
119
119
 
120
120
  &:after, &:before {
121
121
  transform: scale(.5) rotate(-50deg);
@@ -129,26 +129,26 @@ label.tick-box {
129
129
  }
130
130
 
131
131
  // Hover, focus, active
132
- @include input-active {
133
-
134
- // Active Uncheked
135
- + .tick:before {
136
- border-color: $gray-06;
137
- transform: scale(.4) rotate(-50deg);
138
- }
139
-
140
- // Active Checked
141
- &:checked + .tick {
142
- box-shadow: input-shadow( darken($blue-03, 15) ), 0 0 0 10px darken( $blue-03, 5 ) inset;
143
-
144
- &:before {
145
- top: 1px;
146
- opacity: 1;
147
- transform: scale(.5) rotate(-50deg);
148
- border-color: darken( $blue-03, 10 );
149
- }
150
- }
151
- }
132
+ // @include input-active {
133
+
134
+ // // Active Uncheked
135
+ // + .tick:before {
136
+ // border-color: $gray-06;
137
+ // transform: scale(.4) rotate(-50deg);
138
+ // }
139
+
140
+ // // Active Checked
141
+ // &:checked + .tick {
142
+ // box-shadow: input-shadow( darken($blue-03, 15) ), 0 0 0 10px darken( $blue-03, 5 ) inset;
143
+
144
+ // &:before {
145
+ // top: 1px;
146
+ // opacity: 1;
147
+ // transform: scale(.5) rotate(-50deg);
148
+ // border-color: darken( $blue-03, 10 );
149
+ // }
150
+ // }
151
+ // }
152
152
  }
153
153
  }
154
154