dxw_govuk_frontend_rails 3.8.0 → 3.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +61 -40
- data/lib/dxw_govuk_frontend_rails/version.rb +1 -1
- data/package-lock.json +22 -4
- data/package.json +1 -1
- data/vendor/assets/javascripts/govuk_frontend_rails.js +84 -33
- data/vendor/assets/stylesheets/components/_all.scss +2 -0
- data/vendor/assets/stylesheets/components/accordion/_index.scss +7 -17
- data/vendor/assets/stylesheets/components/back-link/_index.scss +4 -17
- data/vendor/assets/stylesheets/components/breadcrumbs/_index.scss +0 -1
- data/vendor/assets/stylesheets/components/button/_index.scss +5 -3
- data/vendor/assets/stylesheets/components/character-count/_index.scss +1 -4
- data/vendor/assets/stylesheets/components/checkboxes/_index.scss +13 -13
- data/vendor/assets/stylesheets/components/cookie-banner/_cookie-banner.scss +2 -0
- data/vendor/assets/stylesheets/components/cookie-banner/_index.scss +51 -0
- data/vendor/assets/stylesheets/components/details/_index.scss +5 -2
- data/vendor/assets/stylesheets/components/error-summary/_index.scss +2 -14
- data/vendor/assets/stylesheets/components/fieldset/_index.scss +1 -1
- data/vendor/assets/stylesheets/components/file-upload/_index.scss +13 -14
- data/vendor/assets/stylesheets/components/footer/_index.scss +14 -20
- data/vendor/assets/stylesheets/components/header/_index.scss +41 -26
- data/vendor/assets/stylesheets/components/hint/_index.scss +0 -2
- data/vendor/assets/stylesheets/components/input/_index.scss +91 -0
- data/vendor/assets/stylesheets/components/notification-banner/_index.scss +89 -0
- data/vendor/assets/stylesheets/components/notification-banner/_notification-banner.scss +2 -0
- data/vendor/assets/stylesheets/components/panel/_index.scss +6 -2
- data/vendor/assets/stylesheets/components/phase-banner/_index.scss +1 -1
- data/vendor/assets/stylesheets/components/radios/_index.scss +13 -13
- data/vendor/assets/stylesheets/components/select/_index.scss +0 -1
- data/vendor/assets/stylesheets/components/skip-link/_index.scss +1 -1
- data/vendor/assets/stylesheets/components/summary-list/_index.scss +2 -10
- data/vendor/assets/stylesheets/components/table/_index.scss +21 -0
- data/vendor/assets/stylesheets/components/tabs/_index.scss +4 -12
- data/vendor/assets/stylesheets/components/tag/_index.scss +0 -1
- data/vendor/assets/stylesheets/components/textarea/_index.scss +0 -1
- data/vendor/assets/stylesheets/components/warning-text/_index.scss +10 -1
- data/vendor/assets/stylesheets/core/_links.scss +8 -0
- data/vendor/assets/stylesheets/helpers/_device-pixels.scss +3 -3
- data/vendor/assets/stylesheets/helpers/_font-faces.scss +9 -11
- data/vendor/assets/stylesheets/helpers/_links.scss +239 -32
- data/vendor/assets/stylesheets/helpers/_media-queries.scss +1 -5
- data/vendor/assets/stylesheets/helpers/_spacing.scss +2 -1
- data/vendor/assets/stylesheets/helpers/_typography.scss +7 -6
- data/vendor/assets/stylesheets/objects/_all.scss +1 -0
- data/vendor/assets/stylesheets/objects/_button-group.scss +94 -0
- data/vendor/assets/stylesheets/objects/_form-group.scss +0 -1
- data/vendor/assets/stylesheets/objects/_grid.scss +2 -3
- data/vendor/assets/stylesheets/objects/_main-wrapper.scss +0 -1
- data/vendor/assets/stylesheets/overrides/_display.scss +1 -1
- data/vendor/assets/stylesheets/overrides/_width.scss +1 -0
- data/vendor/assets/stylesheets/settings/_all.scss +2 -0
- data/vendor/assets/stylesheets/settings/_colours-applied.scss +9 -3
- data/vendor/assets/stylesheets/settings/_colours-organisations.scss +3 -0
- data/vendor/assets/stylesheets/settings/_colours-palette.scss +42 -35
- data/vendor/assets/stylesheets/settings/_compatibility.scss +0 -1
- data/vendor/assets/stylesheets/settings/_links.scss +62 -0
- data/vendor/assets/stylesheets/settings/_measurements.scss +0 -4
- data/vendor/assets/stylesheets/settings/_typography-font-families.scss +2 -2
- data/vendor/assets/stylesheets/settings/_typography-font.scss +14 -5
- data/vendor/assets/stylesheets/settings/_typography-responsive.scss +6 -2
- data/vendor/assets/stylesheets/tools/_font-url.scss +0 -3
- data/vendor/assets/stylesheets/tools/_image-url.scss +0 -3
- data/vendor/assets/stylesheets/utilities/_visually-hidden.scss +0 -1
- data/vendor/assets/stylesheets/vendor/_sass-mq.scss +0 -4
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e42e5531caedbe80f014557b076fc609f16ca85d666bdcc86bfb4e7c280e28a1
|
4
|
+
data.tar.gz: c712317b305d72d5960a65a1d4dbf0e7b0ebaf4bd482b057f32c6518d4fc90cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f6a004060916897d45767e91565c3cdc6322d860814f2acbc027d35eca9a22f2d328e955095e4c9d0b14b478de12c259f064d88bdc5468bc0ffda3dcd325085
|
7
|
+
data.tar.gz: 3c4a6afe51e11a479d23a3e1ec51e17660511e4dba977af9a89545f5a55be39ac0cffb0cc82626e053323841efdf4976858b4fecf2f11f2664af4341e755e44b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,91 +1,112 @@
|
|
1
|
-
#
|
1
|
+
# GOV.UK Frontend for Rails
|
2
2
|
|
3
3
|
## Read this first
|
4
4
|
|
5
|
-
Although this gem makes it super easy to add the
|
6
|
-
|
7
|
-
|
5
|
+
Although this gem makes it super easy to add the GOV.UK Frontend to your Rails
|
6
|
+
applications, we would recommend using it as a guide to add the GOV.UK Frontend
|
7
|
+
yourself.
|
8
8
|
|
9
|
-
## About
|
9
|
+
## About
|
10
|
+
|
11
|
+
Adds the GOV.UK Frontend for Rails using the asset pipeline.
|
10
12
|
|
11
13
|
https://github.com/alphagov/govuk-frontend
|
12
14
|
|
13
15
|
## Breaking Changes in v3.0.0
|
14
16
|
|
15
|
-
This release of the
|
17
|
+
This release of the GOV.UK Frontend has breaking changes! Do not update to this
|
16
18
|
version until you have read and understood:
|
17
19
|
|
18
|
-
You will not be required to updated any file paths with govuk as we take care
|
19
|
-
that for you, all others changes will need to be managed:
|
20
|
+
You will not be required to updated any file paths with `govuk` as we take care
|
21
|
+
of that for you, all others changes will need to be managed:
|
20
22
|
|
21
23
|
https://github.com/alphagov/govuk-frontend/releases/tag/v3.0.0
|
22
24
|
|
23
25
|
## Limitations
|
24
26
|
|
25
|
-
This gem does not include the ie8 version of
|
26
|
-
standard no longer requires
|
27
|
+
This gem does not include the `ie8` version of GOV.UK Frontend, as the service
|
28
|
+
standard no longer requires support for Internet Explorer versions less than 11:
|
27
29
|
|
28
30
|
https://www.gov.uk/service-manual/technology/designing-for-different-browsers-and-devices
|
29
31
|
|
30
|
-
This gem and its documentation cannot tell you how to use the
|
31
|
-
see the
|
32
|
+
This gem and its documentation cannot tell you how to use the GOV.UK patterns
|
33
|
+
effectively, see the GOV.UK Design System documentation for that:
|
34
|
+
|
35
|
+
https://design-system.service.gov.uk/
|
32
36
|
|
33
|
-
|
37
|
+
## Installation
|
34
38
|
|
35
39
|
Add this line to your application's Gemfile:
|
36
40
|
|
37
|
-
```ruby
|
41
|
+
```ruby
|
42
|
+
gem 'dxw_govuk_frontend_rails'
|
43
|
+
```
|
38
44
|
|
39
45
|
And then execute:
|
40
46
|
|
41
|
-
|
47
|
+
```
|
48
|
+
$ bundle
|
49
|
+
```
|
50
|
+
|
51
|
+
## Usage
|
42
52
|
|
43
|
-
|
53
|
+
Your Rails app will need to have SCSS enabled.
|
54
|
+
|
55
|
+
**IMPORTANT: You must not use this library without changes if the service you
|
56
|
+
are building is not on GOV.UK. Read and understand the guidance here:**
|
57
|
+
|
58
|
+
https://www.gov.uk/service-manual/design/making-your-service-look-like-govuk#if-your-service-isnt-on-govuk
|
44
59
|
|
45
60
|
### Basic usage
|
46
61
|
|
47
|
-
If the service you are building does not need to modify or extend the
|
48
|
-
Frontend all you need to do is import the main
|
62
|
+
If the service you are building does not need to modify or extend the GOV.UK
|
63
|
+
Frontend, all you need to do is import the main SCSS and JavaScript files into
|
49
64
|
your Rails app:
|
50
65
|
|
51
|
-
- create a
|
52
|
-
app/assets/stylesheets/govuk_frontend_rails.scss ```
|
53
|
-
- import the styles into `govuk_frontend_rails.scss`: ```sass @import
|
54
|
-
"govuk-frontend-rails"; ```
|
55
|
-
- require the `govuk-frontend-rails.scss` file in `application.css` or
|
56
|
-
equivalent:
|
66
|
+
- create a SCSS file in your application:
|
57
67
|
|
58
|
-
|
68
|
+
`app/assets/stylesheets/govuk_frontend_rails.scss`
|
59
69
|
|
60
|
-
-
|
70
|
+
- import the styles into `govuk_frontend_rails.scss`:
|
61
71
|
|
62
|
-
|
63
|
-
|
72
|
+
`@import "govuk-frontend-rails";`
|
73
|
+
|
74
|
+
- import the `govuk-frontend-rails.scss` file in the comment block in
|
75
|
+
`app/assets/stylesheets/application.css` or equivalent:
|
76
|
+
|
77
|
+
`*= require govuk_frontend_rails`
|
78
|
+
|
79
|
+
- import the JavaScript in the comment block of
|
80
|
+
`app/assets/javascripts/application.js`:
|
81
|
+
|
82
|
+
`//= require govuk_frontend_rails`
|
83
|
+
|
84
|
+
- initialise the GOV.UK Frontend either in a .js file or in your application
|
64
85
|
layout:
|
65
86
|
|
66
|
-
|
67
|
-
- update your application markup to use the GOVUK Frontend class names
|
87
|
+
`window.onload = function() { window.GOVUKFrontend.initAll() };`
|
68
88
|
|
69
|
-
|
70
|
-
are building is not on GOV.UK, read and understand the guidance here:
|
89
|
+
- update your application markup to use the GOV.UK Frontend class names
|
71
90
|
|
72
|
-
|
91
|
+
## Tracking GOV.UK Frontend versions
|
73
92
|
|
74
|
-
|
93
|
+
We aim to track the latest version of GOV.UK Frontend but we may fall behind.
|
94
|
+
Opening an issue if we are behind on a new release would be helpful, or open a
|
95
|
+
PR to update to the latest release!
|
75
96
|
|
76
|
-
## Updating to a new
|
97
|
+
## Updating to a new version of GOV.UK Frontend
|
77
98
|
|
78
|
-
When a new version of the
|
99
|
+
When a new version of the GOV.UK Frontend is released:
|
79
100
|
|
80
|
-
- make a new branch with the
|
101
|
+
- make a new branch with the GOV.UK Frontend version number
|
81
102
|
- set the new version number in `package.json` and
|
82
103
|
`lib/dxw_govuk_frontend_rails/version.rb`
|
83
|
-
- run
|
104
|
+
- run `npm update` to get the new release of the GOV.UK Frontend
|
84
105
|
- run `bundle exec rake` to compile the new assets
|
85
106
|
- commit the changes
|
86
|
-
- tag with the same release number as
|
107
|
+
- tag with the same release number as GOV.UK Frontend
|
87
108
|
- push the change
|
88
109
|
- push the tag
|
89
110
|
- merge your branch
|
90
111
|
- make a new release of the tag on GitHub
|
91
|
-
- GitHub
|
112
|
+
- GitHub actions will build the gem and push to RubyGems
|
data/package-lock.json
CHANGED
@@ -1,13 +1,31 @@
|
|
1
1
|
{
|
2
2
|
"name": "dxw_govuk_frontend_rails",
|
3
3
|
"version": "1.0.0",
|
4
|
-
"lockfileVersion":
|
4
|
+
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
|
+
"packages": {
|
7
|
+
"": {
|
8
|
+
"name": "dxw_govuk_frontend_rails",
|
9
|
+
"version": "1.0.0",
|
10
|
+
"license": "ISC",
|
11
|
+
"dependencies": {
|
12
|
+
"govuk-frontend": "3.12.0"
|
13
|
+
}
|
14
|
+
},
|
15
|
+
"node_modules/govuk-frontend": {
|
16
|
+
"version": "3.12.0",
|
17
|
+
"resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-3.12.0.tgz",
|
18
|
+
"integrity": "sha512-+mM8BqEUqsBVSV/ud0dEhE8OmMdhkK53eEUp5YyPN+y3mwcdRnwwP2A2B5qFdFi6E6j/2AYuCG8l5kXD+JXNxA==",
|
19
|
+
"engines": {
|
20
|
+
"node": ">= 4.2.0"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
},
|
6
24
|
"dependencies": {
|
7
25
|
"govuk-frontend": {
|
8
|
-
"version": "3.
|
9
|
-
"resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-3.
|
10
|
-
"integrity": "sha512-+
|
26
|
+
"version": "3.12.0",
|
27
|
+
"resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-3.12.0.tgz",
|
28
|
+
"integrity": "sha512-+mM8BqEUqsBVSV/ud0dEhE8OmMdhkK53eEUp5YyPN+y3mwcdRnwwP2A2B5qFdFi6E6j/2AYuCG8l5kXD+JXNxA=="
|
11
29
|
}
|
12
30
|
}
|
13
31
|
}
|
data/package.json
CHANGED
@@ -1498,7 +1498,7 @@ function CharacterCount ($module) {
|
|
1498
1498
|
this.$module = $module;
|
1499
1499
|
this.$textarea = $module.querySelector('.govuk-js-character-count');
|
1500
1500
|
if (this.$textarea) {
|
1501
|
-
this.$countMessage = $module.querySelector('[id=' + this.$textarea.id + '-info]');
|
1501
|
+
this.$countMessage = $module.querySelector('[id="' + this.$textarea.id + '-info"]');
|
1502
1502
|
}
|
1503
1503
|
}
|
1504
1504
|
|
@@ -1959,57 +1959,103 @@ ErrorSummary.prototype.getAssociatedLegendOrLabel = function ($input) {
|
|
1959
1959
|
$input.closest('label')
|
1960
1960
|
};
|
1961
1961
|
|
1962
|
-
function
|
1962
|
+
function NotificationBanner ($module) {
|
1963
1963
|
this.$module = $module;
|
1964
1964
|
}
|
1965
1965
|
|
1966
|
-
|
1967
|
-
|
1966
|
+
/**
|
1967
|
+
* Initialise the component
|
1968
|
+
*/
|
1969
|
+
NotificationBanner.prototype.init = function () {
|
1968
1970
|
var $module = this.$module;
|
1971
|
+
// Check for module
|
1969
1972
|
if (!$module) {
|
1970
1973
|
return
|
1971
1974
|
}
|
1972
1975
|
|
1973
|
-
|
1974
|
-
|
1975
|
-
|
1976
|
+
this.setFocus();
|
1977
|
+
};
|
1978
|
+
|
1979
|
+
/**
|
1980
|
+
* Focus the element
|
1981
|
+
*
|
1982
|
+
* If `role="alert"` is set, focus the element to help some assistive technologies
|
1983
|
+
* prioritise announcing it.
|
1984
|
+
*
|
1985
|
+
* You can turn off the auto-focus functionality by setting `data-disable-auto-focus="true"` in the
|
1986
|
+
* component HTML. You might wish to do this based on user research findings, or to avoid a clash
|
1987
|
+
* with another element which should be focused when the page loads.
|
1988
|
+
*/
|
1989
|
+
NotificationBanner.prototype.setFocus = function () {
|
1990
|
+
var $module = this.$module;
|
1991
|
+
|
1992
|
+
if ($module.getAttribute('data-disable-auto-focus') === 'true') {
|
1993
|
+
return
|
1994
|
+
}
|
1995
|
+
|
1996
|
+
if ($module.getAttribute('role') !== 'alert') {
|
1976
1997
|
return
|
1977
1998
|
}
|
1978
1999
|
|
1979
|
-
//
|
1980
|
-
|
2000
|
+
// Set tabindex to -1 to make the element focusable with JavaScript.
|
2001
|
+
// Remove the tabindex on blur as the component doesn't need to be focusable after the page has
|
2002
|
+
// loaded.
|
2003
|
+
if (!$module.getAttribute('tabindex')) {
|
2004
|
+
$module.setAttribute('tabindex', '-1');
|
2005
|
+
|
2006
|
+
$module.addEventListener('blur', function () {
|
2007
|
+
$module.removeAttribute('tabindex');
|
2008
|
+
});
|
2009
|
+
}
|
2010
|
+
|
2011
|
+
$module.focus();
|
1981
2012
|
};
|
1982
2013
|
|
2014
|
+
function Header ($module) {
|
2015
|
+
this.$module = $module;
|
2016
|
+
this.$menuButton = $module && $module.querySelector('.govuk-js-header-toggle');
|
2017
|
+
this.$menu = this.$menuButton && $module.querySelector(
|
2018
|
+
'#' + this.$menuButton.getAttribute('aria-controls')
|
2019
|
+
);
|
2020
|
+
}
|
2021
|
+
|
1983
2022
|
/**
|
1984
|
-
*
|
1985
|
-
*
|
1986
|
-
*
|
1987
|
-
|
1988
|
-
|
1989
|
-
|
1990
|
-
|
1991
|
-
|
1992
|
-
node.className += ' ' + className;
|
2023
|
+
* Initialise header
|
2024
|
+
*
|
2025
|
+
* Check for the presence of the header, menu and menu button – if any are
|
2026
|
+
* missing then there's nothing to do so return early.
|
2027
|
+
*/
|
2028
|
+
Header.prototype.init = function () {
|
2029
|
+
if (!this.$module || !this.$menuButton || !this.$menu) {
|
2030
|
+
return
|
1993
2031
|
}
|
2032
|
+
|
2033
|
+
this.syncState(this.$menu.classList.contains('govuk-header__navigation--open'));
|
2034
|
+
this.$menuButton.addEventListener('click', this.handleMenuButtonClick.bind(this));
|
1994
2035
|
};
|
1995
2036
|
|
1996
2037
|
/**
|
1997
|
-
*
|
1998
|
-
*
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
this.toggleClass($toggleButton, 'govuk-header__menu-button--open');
|
2038
|
+
* Sync menu state
|
2039
|
+
*
|
2040
|
+
* Sync the menu button class and the accessible state of the menu and the menu
|
2041
|
+
* button with the visible state of the menu
|
2042
|
+
*
|
2043
|
+
* @param {boolean} isVisible Whether the menu is currently visible
|
2044
|
+
*/
|
2045
|
+
Header.prototype.syncState = function (isVisible) {
|
2046
|
+
this.$menuButton.classList.toggle('govuk-header__menu-button--open', isVisible);
|
2047
|
+
this.$menuButton.setAttribute('aria-expanded', isVisible);
|
2048
|
+
};
|
2009
2049
|
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2050
|
+
/**
|
2051
|
+
* Handle menu button click
|
2052
|
+
*
|
2053
|
+
* When the menu button is clicked, change the visibility of the menu and then
|
2054
|
+
* sync the accessibility state and menu button state
|
2055
|
+
*/
|
2056
|
+
Header.prototype.handleMenuButtonClick = function () {
|
2057
|
+
var isVisible = this.$menu.classList.toggle('govuk-header__navigation--open');
|
2058
|
+
this.syncState(isVisible);
|
2013
2059
|
};
|
2014
2060
|
|
2015
2061
|
function Radios ($module) {
|
@@ -2482,6 +2528,11 @@ function initAll (options) {
|
|
2482
2528
|
var $toggleButton = scope.querySelector('[data-module="govuk-header"]');
|
2483
2529
|
new Header($toggleButton).init();
|
2484
2530
|
|
2531
|
+
var $notificationBanners = scope.querySelectorAll('[data-module="govuk-notification-banner"]');
|
2532
|
+
nodeListForEach($notificationBanners, function ($notificationBanner) {
|
2533
|
+
new NotificationBanner($notificationBanner).init();
|
2534
|
+
});
|
2535
|
+
|
2485
2536
|
var $radios = scope.querySelectorAll('[data-module="govuk-radios"]');
|
2486
2537
|
nodeListForEach($radios, function ($radio) {
|
2487
2538
|
new Radios($radio).init();
|
@@ -6,6 +6,7 @@
|
|
6
6
|
@import "button/index";
|
7
7
|
@import "checkboxes/index";
|
8
8
|
@import "character-count/index";
|
9
|
+
@import "cookie-banner/index";
|
9
10
|
@import "summary-list/index";
|
10
11
|
@import "date-input/index";
|
11
12
|
@import "details/index";
|
@@ -19,6 +20,7 @@
|
|
19
20
|
@import "input/index";
|
20
21
|
@import "inset-text/index";
|
21
22
|
@import "label/index";
|
23
|
+
@import "notification-banner/index";
|
22
24
|
@import "panel/index";
|
23
25
|
@import "phase-banner/index";
|
24
26
|
@import "tabs/index";
|
@@ -1,9 +1,4 @@
|
|
1
1
|
@include govuk-exports("govuk/component/accordion") {
|
2
|
-
|
3
|
-
$govuk-accordion-link-colour: $govuk-link-colour;
|
4
|
-
$govuk-accordion-link-hover-colour: govuk-colour("light-blue");
|
5
|
-
$govuk-accordion-border-width: 3px;
|
6
|
-
|
7
2
|
.govuk-accordion {
|
8
3
|
@include govuk-responsive-margin(6, "bottom");
|
9
4
|
}
|
@@ -47,7 +42,6 @@
|
|
47
42
|
|
48
43
|
// JavaScript enabled
|
49
44
|
.js-enabled {
|
50
|
-
|
51
45
|
.govuk-accordion {
|
52
46
|
// Border at the bottom of the whole accordion
|
53
47
|
border-bottom: 1px solid $govuk-border-colour;
|
@@ -99,19 +93,9 @@
|
|
99
93
|
// Safe area on the right to avoid clashing with icon
|
100
94
|
padding-right: 40px;
|
101
95
|
border-top: 1px solid $govuk-border-colour;
|
102
|
-
color: $govuk-accordion-link-colour;
|
103
96
|
cursor: pointer;
|
104
97
|
}
|
105
98
|
|
106
|
-
// For devices that can't hover such as touch devices,
|
107
|
-
// remove hover state as it can be stuck in that state (iOS).
|
108
|
-
@media (hover: none) {
|
109
|
-
.govuk-accordion__section-header:hover {
|
110
|
-
border-top-color: $govuk-accordion-link-colour;
|
111
|
-
box-shadow: inset 0 $govuk-accordion-border-width 0 0 $govuk-accordion-link-colour;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
|
115
99
|
// Buttons within the headers don’t need default styling
|
116
100
|
.govuk-accordion__section-button {
|
117
101
|
@include govuk-typography-common;
|
@@ -120,7 +104,7 @@
|
|
120
104
|
margin-left: 0;
|
121
105
|
padding: 0;
|
122
106
|
border-width: 0;
|
123
|
-
color:
|
107
|
+
color: $govuk-link-colour;
|
124
108
|
background: none;
|
125
109
|
text-align: left;
|
126
110
|
cursor: pointer;
|
@@ -148,7 +132,13 @@
|
|
148
132
|
}
|
149
133
|
|
150
134
|
.govuk-accordion__section-button:hover:not(:focus) {
|
135
|
+
color: $govuk-link-hover-colour;
|
151
136
|
text-decoration: underline;
|
137
|
+
|
138
|
+
// This needs to come after the text-decoration property otherwise
|
139
|
+
// text-decoration, as a shorthand property, resets it to auto
|
140
|
+
@include govuk-link-hover-decoration;
|
141
|
+
text-underline-offset: $govuk-link-underline-offset;
|
152
142
|
}
|
153
143
|
|
154
144
|
// For devices that can't hover such as touch devices,
|
@@ -24,21 +24,6 @@
|
|
24
24
|
padding-left: 14px;
|
25
25
|
}
|
26
26
|
|
27
|
-
// Only underline if the component is linkable
|
28
|
-
.govuk-back-link[href] {
|
29
|
-
text-decoration: underline;
|
30
|
-
|
31
|
-
// When the back link is focused, hide the bottom link border as the
|
32
|
-
// focus styles has a bottom border.
|
33
|
-
&:focus {
|
34
|
-
text-decoration: none;
|
35
|
-
|
36
|
-
&:before {
|
37
|
-
border-color: $govuk-text-colour;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
27
|
// Prepend left pointing chevron
|
43
28
|
.govuk-back-link:before {
|
44
29
|
content: "";
|
@@ -52,7 +37,6 @@
|
|
52
37
|
// These should be removed when legacy font support is dropped
|
53
38
|
top: -1px;
|
54
39
|
bottom: 1px;
|
55
|
-
|
56
40
|
} @else {
|
57
41
|
top: 0;
|
58
42
|
bottom: 0;
|
@@ -89,6 +73,10 @@
|
|
89
73
|
}
|
90
74
|
}
|
91
75
|
|
76
|
+
.govuk-back-link:focus:before {
|
77
|
+
border-color: $govuk-focus-text-colour;
|
78
|
+
}
|
79
|
+
|
92
80
|
.govuk-back-link:after {
|
93
81
|
content: "";
|
94
82
|
position: absolute;
|
@@ -108,5 +96,4 @@
|
|
108
96
|
bottom: $offset;
|
109
97
|
}
|
110
98
|
}
|
111
|
-
|
112
99
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
@include govuk-exports("govuk/component/button") {
|
2
|
-
$govuk-button-colour: govuk-colour("green", $legacy: #00823b);
|
2
|
+
$govuk-button-colour: govuk-colour("green", $legacy: #00823b);
|
3
3
|
$govuk-button-hover-colour: govuk-shade($govuk-button-colour, 20%);
|
4
4
|
$govuk-button-shadow-colour: govuk-shade($govuk-button-colour, 60%);
|
5
5
|
$govuk-button-text-colour: govuk-colour("white");
|
@@ -29,6 +29,8 @@
|
|
29
29
|
position: relative;
|
30
30
|
width: 100%;
|
31
31
|
margin-top: 0;
|
32
|
+
margin-right: 0;
|
33
|
+
margin-left: 0;
|
32
34
|
@include govuk-responsive-margin(6, "bottom", $adjustment: $button-shadow-size); // s2
|
33
35
|
padding: (govuk-spacing(2) - $govuk-border-width-form-element) govuk-spacing(2) (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2)); // s1
|
34
36
|
border: $govuk-border-width-form-element solid transparent;
|
@@ -117,7 +119,7 @@
|
|
117
119
|
|
118
120
|
// Use a pseudo element to expand the click target area to include the
|
119
121
|
// button's shadow as well, in case users try to click it.
|
120
|
-
|
122
|
+
&:before {
|
121
123
|
content: "";
|
122
124
|
display: block;
|
123
125
|
|
@@ -141,7 +143,7 @@
|
|
141
143
|
// the click event is still fired.
|
142
144
|
//
|
143
145
|
// 🎉
|
144
|
-
&:active
|
146
|
+
&:active:before {
|
145
147
|
top: -($govuk-border-width-form-element + $button-shadow-size);
|
146
148
|
}
|
147
149
|
}
|
@@ -11,13 +11,10 @@
|
|
11
11
|
.govuk-textarea {
|
12
12
|
margin-bottom: govuk-spacing(1);
|
13
13
|
}
|
14
|
-
|
15
|
-
.govuk-textarea--error {
|
16
|
-
padding: govuk-spacing(1) - 2; // Stop a "jump" when width of border changes
|
17
|
-
}
|
18
14
|
}
|
19
15
|
|
20
16
|
.govuk-character-count__message {
|
17
|
+
@include govuk-font($size: false, $tabular: true);
|
21
18
|
margin-top: 0;
|
22
19
|
margin-bottom: 0;
|
23
20
|
}
|
@@ -74,7 +74,7 @@
|
|
74
74
|
}
|
75
75
|
|
76
76
|
// [ ] Check box
|
77
|
-
.govuk-checkboxes__label
|
77
|
+
.govuk-checkboxes__label:before {
|
78
78
|
content: "";
|
79
79
|
box-sizing: border-box;
|
80
80
|
position: absolute;
|
@@ -90,7 +90,7 @@
|
|
90
90
|
//
|
91
91
|
// The check mark is a box with a border on the left and bottom side (└──),
|
92
92
|
// rotated 45 degrees
|
93
|
-
.govuk-checkboxes__label
|
93
|
+
.govuk-checkboxes__label:after {
|
94
94
|
content: "";
|
95
95
|
box-sizing: border-box;
|
96
96
|
|
@@ -123,13 +123,13 @@
|
|
123
123
|
}
|
124
124
|
|
125
125
|
// Focused state
|
126
|
-
.govuk-checkboxes__input:focus + .govuk-checkboxes__label
|
126
|
+
.govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
|
127
127
|
border-width: 4px;
|
128
128
|
box-shadow: 0 0 0 $govuk-focus-width $govuk-focus-colour;
|
129
129
|
}
|
130
130
|
|
131
131
|
// Selected state
|
132
|
-
.govuk-checkboxes__input:checked + .govuk-checkboxes__label
|
132
|
+
.govuk-checkboxes__input:checked + .govuk-checkboxes__label:after {
|
133
133
|
opacity: 1;
|
134
134
|
}
|
135
135
|
|
@@ -227,7 +227,7 @@
|
|
227
227
|
//
|
228
228
|
// Reduce the size of the check box [1], vertically center it within the
|
229
229
|
// touch target [2]
|
230
|
-
.govuk-checkboxes__label
|
230
|
+
.govuk-checkboxes__label:before {
|
231
231
|
top: $input-offset - $govuk-border-width-form-element; // 2
|
232
232
|
width: $govuk-small-checkboxes-size; // 1
|
233
233
|
height: $govuk-small-checkboxes-size; // 1
|
@@ -236,7 +236,7 @@
|
|
236
236
|
// ✔ Check mark
|
237
237
|
//
|
238
238
|
// Reduce the size of the check mark and re-align within the checkbox
|
239
|
-
.govuk-checkboxes__label
|
239
|
+
.govuk-checkboxes__label:after {
|
240
240
|
top: 15px;
|
241
241
|
left: 6px;
|
242
242
|
width: 12px;
|
@@ -271,7 +271,7 @@
|
|
271
271
|
// is so much larger than their visible size, and so we need to provide
|
272
272
|
// feedback to the user as to which checkbox they will select when their
|
273
273
|
// cursor is outside of the visible area.
|
274
|
-
.govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label
|
274
|
+
.govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
|
275
275
|
box-shadow: 0 0 0 $govuk-hover-width $govuk-hover-colour;
|
276
276
|
}
|
277
277
|
|
@@ -280,10 +280,10 @@
|
|
280
280
|
//
|
281
281
|
// We use two box shadows, one that restores the original focus state [1]
|
282
282
|
// and another that then applies the hover state [2].
|
283
|
-
.govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label
|
284
|
-
|
285
|
-
|
286
|
-
|
283
|
+
.govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
|
284
|
+
box-shadow:
|
285
|
+
0 0 0 $govuk-focus-width $govuk-focus-colour, // 1
|
286
|
+
0 0 0 $govuk-hover-width $govuk-hover-colour; // 2
|
287
287
|
}
|
288
288
|
|
289
289
|
// For devices that explicitly don't support hover, don't provide a hover
|
@@ -293,11 +293,11 @@
|
|
293
293
|
// state in browsers that don't support `@media (hover)` (like Internet
|
294
294
|
// Explorer) – so we have to 'undo' the hover state instead.
|
295
295
|
@media (hover: none), (pointer: coarse) {
|
296
|
-
.govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label
|
296
|
+
.govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
|
297
297
|
box-shadow: initial;
|
298
298
|
}
|
299
299
|
|
300
|
-
.govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label
|
300
|
+
.govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
|
301
301
|
box-shadow: 0 0 0 $govuk-focus-width $govuk-focus-colour;
|
302
302
|
}
|
303
303
|
}
|