dxw_govuk_frontend_rails 3.8.0 → 3.12.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.
- 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
|
}
|