govuk_publishing_components 21.0.0 → 21.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ef4a6044ee14caf38ad63acffb0762e4cebc06fa412beeff1df1e07a6c021bc
4
- data.tar.gz: a57304c3266b108045c6afd4305e972ba1441e7f7150b24796c585c55c5fd802
3
+ metadata.gz: eba6273d64031399b770ec443b7502a8cde512cc2127af47d08f3046c6389238
4
+ data.tar.gz: f49f10c2ec3166a2c28fa24d370745aa7f45503e66e878653303466d82e604a8
5
5
  SHA512:
6
- metadata.gz: 9a79245895e9ad222d86d6977d4c0a08db90a4a034c1650ef84d86919a051fbcec76fb40f780f249b0feaa4108f8b05609eccf5d188f9aae28b345bd78791a90
7
- data.tar.gz: 7da229230ec92c542edebca0921fd85bf234c126c883fb89c0005d24e12ed4d0aade2a9c507722edf59248a077b9c408abb54ce5b12e61511a36c14abe7ef5ef
6
+ metadata.gz: ee746fd4ccd8f7a590361a1854456a8b68af731788a8f686880c61cb23274dea632164565cf325146914d172bcdbcafabb5a230ba0e53a737bbc26c53c9890b4
7
+ data.tar.gz: 5aa2a3af8b027dd77950d30a826e2bd61dae09b2dc6f1706d3fa6d2d13d563478e52d75b883d2707ca8810e970cb08ae16d76e76df45666767d1a1abbf75a4d1
@@ -7,22 +7,37 @@ $large-input-size: 50px;
7
7
  }
8
8
 
9
9
  .gem-c-search__label {
10
+ @include govuk-font($size: 19, $line-height: $input-size);
10
11
  display: block;
11
12
 
12
13
  h1 {
13
14
  @include govuk-font($size: 19, $line-height: $input-size);
14
15
  margin: 0;
15
16
  }
17
+
18
+ .js-enabled & {
19
+ position: absolute;
20
+ left: govuk-spacing(3);
21
+ top: 1px;
22
+ z-index: 1;
23
+ color: $govuk-secondary-text-colour;
24
+ }
25
+
26
+ // match label colour with the label component colour
27
+ // when javascript is enabled and inline_label option is set to false
28
+ .js-enabled .gem-c-search--separate-label & {
29
+ color: $govuk-text-colour;
30
+ }
16
31
  }
17
32
 
18
33
  .gem-c-search__input[type="search"] { // overly specific to prevent some overrides from outside
19
34
  @include govuk-font($size: 19, $line-height: (28 / 19));
20
35
 
21
36
  padding: 6px;
22
- margin: .5em 0;
37
+ margin: 0;
23
38
  width: 100%;
24
39
  height: $input-size;
25
- border: 0;
40
+ border: $govuk-border-width-form-element solid $govuk-input-border-colour;
26
41
  background: govuk-colour("white");
27
42
  border-radius: 0; //otherwise iphones apply an automatic border radius
28
43
  box-sizing: border-box;
@@ -30,32 +45,66 @@ $large-input-size: 50px;
30
45
  -moz-appearance: none;
31
46
  appearance: none;
32
47
 
48
+ // the .focus class is added by JS and ensures that the input remains above the label once clicked/filled in
49
+ &:focus,
50
+ &.focus {
51
+ z-index: 2;
52
+ }
53
+
33
54
  &:focus {
34
55
  outline: $govuk-focus-width solid $govuk-focus-colour;
35
- outline-offset: inherit;
56
+ // Ensure outline appears outside of the element
57
+ outline-offset: 0;
58
+ // Double the border by adding its width again. Use `box-shadow` for this // instead of changing `border-width`
59
+ // Also, `outline` cannot be utilised here as it is already used for the yellow focus state.
60
+ box-shadow: inset 0 0 0 $govuk-border-width-form-element;
61
+
62
+ @include govuk-if-ie8 {
63
+ // IE8 doesn't support `box-shadow` so double the border with
64
+ // `border-width`.
65
+ border-width: $govuk-border-width-form-element * 2;
66
+ }
36
67
  }
37
68
  }
38
69
 
39
70
  .gem-c-search__submit {
40
- padding: 6px;
41
71
  border: 0;
42
72
  cursor: pointer;
43
73
  border-radius: 0;
74
+ position: relative;
75
+ padding: 0;
76
+ width: $input-size;
77
+ height: $input-size;
78
+ background-image: image-url("govuk_publishing_components/search-button.png");
79
+ background-repeat: no-repeat;
80
+ background-position: 2px 50%;
81
+ text-indent: -5000px;
82
+ overflow: hidden;
83
+
84
+ @include govuk-device-pixel-ratio {
85
+ background-size: 52.5px auto;
86
+ background-position: 115% 50%;
87
+ }
44
88
 
45
89
  &:focus {
90
+ z-index: 2;
46
91
  outline: $govuk-focus-width solid $govuk-focus-colour;
92
+ // Ensure outline appears outside of the element
93
+ outline-offset: 0;
94
+ // Double the border by adding its width again. Use `box-shadow` for this // instead of changing `border-width` - this is for consistency with
95
+ // Also, `outline` cannot be utilised
96
+ // here as it is already used for the yellow focus state.
97
+ box-shadow: inset 0 0 0 $govuk-border-width-form-element * 2 govuk-colour("black");
98
+
99
+ @include govuk-if-ie8 {
100
+ // IE8 doesn't support `box-shadow` so double the border with
101
+ // `border-width`.
102
+ border-width: $govuk-border-width-form-element * 2;
103
+ }
47
104
  }
48
- }
49
-
50
- .js-enabled {
51
- .gem-c-search__label {
52
- @include govuk-font($size: 19, $line-height: $input-size);
53
105
 
54
- position: absolute;
55
- left: govuk-spacing(3);
56
- top: 1px;
57
- z-index: 1;
58
- color: $govuk-secondary-text-colour;
106
+ &::-moz-focus-inner {
107
+ border: 0;
59
108
  }
60
109
  }
61
110
 
@@ -72,50 +121,25 @@ $large-input-size: 50px;
72
121
  vertical-align: top;
73
122
  }
74
123
 
75
- .gem-c-search__input[type="search"] {
76
- margin: 0;
77
-
78
- // the .focus class is added by JS and ensures that the input remains above the label once clicked/filled in
79
- &:focus,
80
- &.focus {
81
- z-index: 2;
82
- }
83
- }
84
-
85
124
  .gem-c-search__submit-wrapper {
86
125
  width: 1%;
87
126
  }
88
127
 
89
- .gem-c-search__submit {
90
- position: relative;
91
- padding: 0;
92
- width: $input-size;
93
- height: $input-size;
94
- background-image: image-url("govuk_publishing_components/search-button.png");
95
- background-repeat: no-repeat;
96
- background-position: 2px 50%;
97
- text-indent: -5000px;
98
- overflow: hidden;
99
-
100
- &:focus {
101
- z-index: 2;
102
- }
103
-
104
- &::-moz-focus-inner {
105
- border: 0;
106
- }
107
-
108
- @include govuk-device-pixel-ratio {
109
- background-size: 52.5px auto;
110
- background-position: 115% 50%;
111
- }
112
- }
113
-
114
128
  .gem-c-search--on-govuk-blue {
115
129
  .gem-c-search__label {
116
130
  color: govuk-colour("white");
117
131
  }
118
132
 
133
+ .gem-c-search__input {
134
+ border-width: 0;
135
+
136
+ // no need for black outline as there is enough contrast
137
+ // with the blue background
138
+ &:focus {
139
+ box-shadow: none;
140
+ }
141
+ }
142
+
119
143
  .gem-c-search__submit {
120
144
  background-color: govuk-colour("black");
121
145
  color: govuk-colour("white");
@@ -132,15 +156,7 @@ $large-input-size: 50px;
132
156
  }
133
157
  }
134
158
 
135
-
136
159
  .gem-c-search--on-white {
137
- .gem-c-search__label {
138
- color: govuk-colour("black");
139
- }
140
-
141
- .gem-c-search__input[type="search"] {
142
- border: solid 1px govuk-colour("mid-grey", $legacy: "grey-2");
143
- }
144
160
 
145
161
  .gem-c-search__submit {
146
162
  background-color: govuk-colour("light-blue");
@@ -152,12 +168,11 @@ $large-input-size: 50px;
152
168
  }
153
169
 
154
170
  .gem-c-search__input[type="search"] {
155
- border-right: 0;
156
- }
171
+ border-right-width: 0;
157
172
 
158
- .js-enabled & {
159
- .gem-c-search__label {
160
- color: $govuk-secondary-text-colour;
173
+ // add the border once focused
174
+ &:focus {
175
+ border-right-width: 2px;
161
176
  }
162
177
  }
163
178
  }
@@ -3,16 +3,19 @@
3
3
  id ||= false
4
4
  label ||= false
5
5
  full_width ||= false
6
+ name ||= id
7
+ heading_size = '' unless ['s', 'm', 'l', 'xl'].include?(heading_size)
8
+
9
+ label_classes = %w(govuk-label)
10
+ label_classes << "govuk-label--#{heading_size}" if heading_size
6
11
 
7
12
  select_helper = GovukPublishingComponents::Presenters::SelectHelper.new(options)
8
13
  data_module = "data-module=track-select-change" unless select_helper.data_tracking?.eql?(false)
9
14
  %>
10
15
  <% if options.any? && id && label %>
11
16
  <div class="govuk-form-group gem-c-select">
12
- <label class="govuk-label" for="<%= id %>">
13
- <%= label %>
14
- </label>
15
- <select class="govuk-select <%= 'gem-c-select__select--full-width' if full_width %>" id="<%= id %>" name="<%= id %>" <%= data_module %> >
17
+ <%= label_tag(id, label, class: label_classes) %>
18
+ <select class="govuk-select <%= 'gem-c-select__select--full-width' if full_width %>" id="<%= id %>" name="<%= name %>" <%= data_module %> >
16
19
  <%= options_for_select(select_helper.option_markup, select_helper.selected_option) %>
17
20
  </select>
18
21
  </div>
@@ -19,6 +19,17 @@ examples:
19
19
  value: 'option2'
20
20
  - text: 'Option three'
21
21
  value: 'option3'
22
+ with_different_id_and_name:
23
+ description: If no name is provided, name defaults to the (required) value of id.
24
+ data:
25
+ id: 'dropdown1-1'
26
+ label: 'My Dropdown'
27
+ name: 'dropdown[1]'
28
+ options:
29
+ - text: 'Option one'
30
+ value: 'option1'
31
+ - text: 'Option two'
32
+ value: 'option2'
22
33
  with_preselect:
23
34
  data:
24
35
  id: 'dropdown2'
@@ -92,4 +103,16 @@ examples:
92
103
  value: 'option2'
93
104
  - text: 'Option three'
94
105
  value: 'option3'
95
-
106
+ with_custom_label_size:
107
+ description: Make the label different sizes. Valid options are 's', 'm', 'l' and 'xl'.
108
+ data:
109
+ id: 'dropdown6'
110
+ label: 'Bigger!'
111
+ heading_size: 'xl'
112
+ options:
113
+ - text: 'Option one'
114
+ value: 'option1'
115
+ - text: 'Option two'
116
+ value: 'option2'
117
+ - text: 'Option three'
118
+ value: 'option3'
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = '21.0.0'.freeze
2
+ VERSION = '21.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 21.0.0
4
+ version: 21.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2019-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gds-api-adapters