[java-identity-provider] branch main updated: IDP-1669 - Accessibility on IdP pages

Scott Cantor cantor.2 at osu.edu
Fri Mar 4 20:25:47 UTC 2022


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=ef13a96171365c24da604ff879384372fdedc78d

The following commit(s) were added to refs/heads/main by this push:
     new ef13a9617 IDP-1669 - Accessibility on IdP pages
ef13a9617 is described below

commit ef13a96171365c24da604ff879384372fdedc78d
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Mar 4 15:25:44 2022 -0500

    IDP-1669 - Accessibility on IdP pages
    
    https://shibboleth.atlassian.net/browse/IDP-1669
    
    Review of pages for accessibility warnings.
    Adjusted styles to fix header levels.
    Corrected broken fieldset/legend usage.
    Removed inline style feature.
---
 .../net/shibboleth/idp/module/views/admin/hello.vm |   6 +-
 .../idp/module/views/admin/unlock-keys.vm          |  16 +-
 .../net/shibboleth/idp/module/views/duo.vm         |   3 +-
 .../module/views/intercept/attribute-release.vm    | 138 ++++++++-------
 .../module/views/intercept/expiring-password.vm    |   3 +-
 .../idp/module/views/intercept/impersonate.vm      |  31 ++--
 .../idp/module/views/intercept/terms-of-use.vm     |  17 +-
 .../net/shibboleth/idp/module/views/login-error.vm |   2 +-
 .../net/shibboleth/idp/module/views/login.vm       |  40 ++---
 .../idp/module/views/spnego-unavailable.vm         |   4 +-
 .../views/client-storage/client-storage-read.vm    |   4 +-
 .../views/client-storage/client-storage-write.vm   |   3 +-
 idp-conf/src/main/resources/views/custom-styles.vm | 188 ---------------------
 idp-conf/src/main/resources/views/error.vm         |   3 +-
 .../src/main/resources/views/logout-complete.vm    |   4 -
 .../src/main/resources/views/logout-propagate.vm   |   5 +-
 idp-conf/src/main/resources/views/logout.vm        |   5 +-
 idp-conf/src/main/resources/views/user-prefs.vm    |  12 +-
 idp-war/src/main/webapp/css/placeholder.css        |  22 ++-
 19 files changed, 147 insertions(+), 359 deletions(-)

diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/hello.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/hello.vm
index cc3b77094..6268c6c94 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/hello.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/hello.vm
@@ -20,7 +20,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")" media="all">
-        #parse("custom-styles.vm")
     </head>
   
     <body>
@@ -30,8 +29,7 @@
             </header>
                 
             <section>
-                <h1>#springMessageText("idp.title", "Web Login Service")</h1>
-                <h2>#springMessageText("hello-world.greeting", "Greetings"), <em>$encoder.encodeForHTML($subjectContext.getPrincipalName())</em></h2>
+                <h1>#springMessageText("hello-world.greeting", "Greetings"), <em>$encoder.encodeForHTML($subjectContext.getPrincipalName())</em></h1>
                 <p><strong>Authenticated by</strong><br />
                   #foreach ($result in $subjectContext.getAuthenticationResults().entrySet())
                    <small>$encoder.encodeForHTML($result.getKey())</small><br/>
@@ -46,7 +44,7 @@
                 
                 #if ($attributeContext && !$attributeContext.getUnfilteredIdPAttributes().isEmpty())
 
-                    <p><strong>Attributes</strong><br />
+                    <p><strong>Attributes</strong><br/>
                         #foreach ($a in $attributeContext.getUnfilteredIdPAttributes())
                           #if (!$a.getValues().isEmpty())
                             <small><strong>$encoder.encodeForHTML($a.getId())</strong></small><br/>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/unlock-keys.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/unlock-keys.vm
index 0aa32bbf8..23317bc50 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/unlock-keys.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/admin/unlock-keys.vm
@@ -21,7 +21,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")" media="all">
-        #parse("custom-styles.vm")
     </head>
     
     <body>
@@ -36,9 +35,7 @@
                 <p><a href="$request.getContextPath()/profile/SAML2/Unsolicited/SSO?providerId=https://sp.example.org/shibboleth">Validation Link</a></p>
             #else
                 #if ($eventId == "InvalidMessage")
-                    <div class="output-message output--error">
-                        <p>#springMessageText("idp.unlock-keys.error", "Unlock failed; check log for specific message.")</p>
-                    </div>
+                    <p class="output-message output--error">#springMessageText("idp.unlock-keys.error", "Unlock failed; check log for specific message.")</p>
                 #end
             
                 <form action="$flowExecutionUrl" method="post">
@@ -51,13 +48,11 @@
                     -->
 
                     <fieldset>
-                        <legend><span>Passwords</span></legend>
+                        <legend><span>Secret Key Passwords</span></legend>
+                        
                         <label for="password">#springMessageText("idp.unlock-keys.keystorePassword", "DataSealer Keystore Password")</label>
                         <input type="password" name="keystorePassword" id="password" />
-                    </fieldset>
-                    
-                    <fieldset>
-                        <legend><span>Passwords</span></legend>
+                        
                         <label for="password">#springMessageText("idp.unlock-keys.keyPassword", "DataSealer Key Password")</label>
                         <input type="password" name="keyPassword" id="password" />
                     </fieldset>
@@ -68,7 +63,8 @@
                     -->
 
                     <fieldset>
-                        <legend><span>Passwords</span></legend>
+                        <legend><span>Private Key Passwords</span></legend>
+                        
                         <label for="password">#springMessageText("idp.unlock-keys.privateKeyPassword", "Private Key Password")</label>
                         <input type="password" name="privateKeyPassword" id="password" />
                     </fieldset>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/duo.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/duo.vm
index 1d549429f..a2e2ff4d4 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/duo.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/duo.vm
@@ -26,7 +26,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")" media="all">
-        #parse("custom-styles.vm")
         <style>
           #duo_iframe {
             width: 100%;
@@ -43,7 +42,7 @@
             </header>
 
             <section>
-                <h2>#springMessageText("idp.login.duoRequired", "Authentication with Duo is required for the requested service.")</h2>
+                <h1>#springMessageText("idp.login.duoRequired", "Authentication with Duo is required for the requested service.")</h1>
                 <noscript>#springMessageText("idp.login.duoNoScript", "The Duo service requires JavaScript.")</noscript>
                 <script src="$request.getContextPath()$duoScriptPath"></script>
                 <iframe id="duo_iframe"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/attribute-release.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/attribute-release.vm
index 0fd48b76e..6ab823af3 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/attribute-release.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/attribute-release.vm
@@ -33,76 +33,82 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
     <body>
-        <form action="$flowExecutionUrl" method="post" style="padding:10px">
-            #parse("csrf/csrf.vm")
-
         <main class="main">
             <header>
                 <img class="main-logo" src="$request.getContextPath()#springMessageText("idp.logo", "/images/placeholder-logo.png")" alt="#springMessageText("idp.logo.alt-text", "logo")" />
             </header>
-
             <section>
-                <h2>Information Release</h2>
-                #if ($rpOrganizationLogo)
-                    <img class="service-logo" src="$encoder.encodeForHTMLAttribute($rpOrganizationLogo)" alt="logo for $encoder.encodeForHTMLAttribute($serviceName)" />
-                #end                
+            <h1>Information Release</h1>
+            #if ($rpOrganizationLogo)
+                <img class="service-logo" src="$encoder.encodeForHTMLAttribute($rpOrganizationLogo)" alt="logo for $encoder.encodeForHTMLAttribute($serviceName)" />
+            #end                
 
-                #if ($serviceName)
-                    <p>
-                        #springMessageText("idp.attribute-release.serviceNameLabel", "You are about to access the service:")<br>
-                        <strong>$encoder.encodeForHTML($serviceName)</strong>
-                        #if ($rpOrganizationName)
-                            #springMessageText("idp.attribute-release.of", "of") $encoder.encodeForHTML($rpOrganizationName)
-                        #end
-                    </p>
-                #end
-                
-                #if ($serviceDescription)
-                    <p>
-                        #springMessageText("idp.attribute-release.serviceDescriptionLabel", "Description as provided by this service:")<br>
-                        <strong>$encoder.encodeForHTML($serviceDescription)</strong>
-                    </p>
-                #end
+            #if ($serviceName)
+                <p>
+                    #springMessageText("idp.attribute-release.serviceNameLabel", "You are about to access the service:")<br>
+                    <strong>$encoder.encodeForHTML($serviceName)</strong>
+                    #if ($rpOrganizationName)
+                        #springMessageText("idp.attribute-release.of", "of") $encoder.encodeForHTML($rpOrganizationName)
+                    #end
+                </p>
+            #end
+            
+            #if ($serviceDescription)
+                <p>
+                    #springMessageText("idp.attribute-release.serviceDescriptionLabel", "Description as provided by this service:")<br>
+                    <strong>$encoder.encodeForHTML($serviceDescription)</strong>
+                </p>
+            #end
 
-                <ul>
-                #if ($informationURL)
-                    <li>
-                        <a href="$informationURL">#springMessageText("idp.attribute-release.informationURLLabel", "Additional information about the service")</a>
-                    </li>
-                #end
-                
-                #if ($privacyStatementURL)
-                    <li>
-                        <a href="$privacyStatementURL">#springMessageText("idp.attribute-release.privacyStatementURLLabel", "Data privacy information of the service")</a>
-                    </li>
-                #end
-                </ul>
-                
+            <ul>
+            #if ($informationURL)
+                <li>
+                    <a href="$informationURL">#springMessageText("idp.attribute-release.informationURLLabel", "Additional information about the service")</a>
+                </li>
+            #end
+            
+            #if ($privacyStatementURL)
+                <li>
+                    <a href="$privacyStatementURL">#springMessageText("idp.attribute-release.privacyStatementURLLabel", "Data privacy information of the service")</a>
+                </li>
+            #end
+            </ul>
+            
+            <form action="$flowExecutionUrl" method="post" style="padding:10px">
+                #parse("csrf/csrf.vm")
                 <div class="boxed">
-                    <h3>#springMessageText("idp.attribute-release.attributesHeader", "Information to be Provided to Service")</h3>
-                                                
+                    <h2>#springMessageText("idp.attribute-release.attributesHeader", "Information to be Provided to Service")</h2>
+
                     #foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values())
-                        <p>$encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute))</p>
-                        <fieldset>
-                            #foreach ($value in $attribute.values)
-                                #if ($replaceDollarWithNewline)
-                                    #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"<br>"))
-                                #else
-                                    #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()))
-                                #end
-                                #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
-                                    <input id="$attribute.id" type="checkbox" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($attribute.id)" checked>
-                                    <label for="$attribute.id"><strong>$encodedValue</strong></label>
-                                #else
-                                    <strong>$encodedValue</strong>
-                                    <input id="$attribute.id" type="hidden" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($attribute.id)" checked>
-                                #end
+                        #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
+                            <fieldset>
+                            <legend><p>$encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute))</p></legend>
+                        #else
+                            <p>$encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute))</p>
+                        #end
+                        #foreach ($value in $attribute.values)
+                            #if ($replaceDollarWithNewline)
+                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"<br>"))
+                            #else
+                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()))
                             #end
-                        </fieldset>
+                            <p>
+                            #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
+                                <input id="$attribute.id" type="checkbox" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($attribute.id)" checked>
+                                <label for="$attribute.id"><strong>$encodedValue</strong></label>
+                            #else
+                                <strong>$encodedValue</strong>
+                                <input id="$attribute.id" type="hidden" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($attribute.id)" checked>
+                            #end
+                            </p>
+                        #end
+                        #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
+                            </fieldset>
+                        #end
                     #end
+                    </fieldset>
                 </div>
 
                 <p>#springMessageText("idp.attribute-release.confirmationQuestion", "The information above would be shared with the service if you proceed. Do you agree to release this information to the service every time you access it?")</p>
@@ -115,16 +121,19 @@
                 #end
                 
                 #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed)
-                        <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent">
-                        <label for="_shib_idp_doNotRememberConsent">#springMessageText("idp.attribute-release.doNotRememberConsent", "Ask me again at next login")<br /><small>#springMessageText("idp.attribute-release.doNotRememberConsentItem", "I agree to send my information this time.")</small></label>
+                    <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent">
+                    <label for="_shib_idp_doNotRememberConsent">#springMessageText("idp.attribute-release.doNotRememberConsent", "Ask me again at next login")</label>
+                    <p><small>#springMessageText("idp.attribute-release.doNotRememberConsentItem", "I agree to send my information this time.")</small></p>
                 #end
                 #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed)
-                        <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked>
-                        <label for="_shib_idp_rememberConsent">#springMessageText("idp.attribute-release.rememberConsent", "Ask me again if information changes")<br /><small>#springMessageText("idp.attribute-release.rememberConsentItem", "I agree that the same information will be sent automatically to this service in the future.")</small></label>
+                    <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked>
+                    <label for="_shib_idp_rememberConsent">#springMessageText("idp.attribute-release.rememberConsent", "Ask me again if information changes")</label>
+                    <p><small>#springMessageText("idp.attribute-release.rememberConsentItem", "I agree that the same information will be sent automatically to this service in the future.")</small></p>
                 #end
                 #if ($attributeReleaseFlowDescriptor.globalConsentAllowed)
-                        <input id="_shib_idp_globalConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_globalConsent">
-                        <label for="_shib_idp_globalConsent">#springMessageText("idp.attribute-release.globalConsent", "Do not ask me again")<br /><small>#springMessageText("idp.attribute-release.globalConsentItem", "I agree that <strong>all</strong> of my information will be released to <strong>any</strong> service.")</small></label>
+                    <input id="_shib_idp_globalConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_globalConsent">
+                    <label for="_shib_idp_globalConsent">#springMessageText("idp.attribute-release.globalConsent", "Do not ask me again")</label>
+                    <p><small>#springMessageText("idp.attribute-release.globalConsentItem", "I agree that <strong>all</strong> of my information will be released to <strong>any</strong> service.")</small></p>
                 #end
                 </fieldset>
 
@@ -137,10 +146,10 @@
                         <button class="button--secondary button--full" type="submit" name="_eventId_AttributeReleaseRejected">#springMessageText("idp.attribute-release.reject", "Reject")</button>
                     </div>
                 </div>
-                
                 #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed)
                     <p>#springMessageText("idp.attribute-release.consentMethodRevoke", "This setting can be revoked at any time with the checkbox on the login page.")</p>
                 #end
+            </form>
             </section>
         </main>
         <footer class="footer">
@@ -148,6 +157,5 @@
                 <p>#springMessageText("idp.footer", "Insert your footer text here.")</p>
             </div>
         </footer>
-        </form>
     </body>
 </html>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/expiring-password.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/expiring-password.vm
index 5bb83a328..f0ecc4d94 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/expiring-password.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/expiring-password.vm
@@ -25,7 +25,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
     <body>
         <main class="main">
@@ -34,7 +33,7 @@
             </header>
         
             <section>
-                <h2>#springMessageText("idp.login.expiringSoon", "Your password will be expiring soon!")</h2>
+                <h1>#springMessageText("idp.login.expiringSoon", "Your password will be expiring soon!")</h1>
                 <p>#springMessageText("idp.login.changePassword", "To create a new password now, go to") <a href="#" target="_blank">#</a>.</p>
                 <p>Your login will proceed in <strong>20</strong> seconds or you may <a href="login-retry">click here</a> to continue</p>
                 <p>#springMessageText("idp.login.proceedBegin", "Your login will proceed in 20 seconds or you may click")
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/impersonate.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/impersonate.vm
index 1dff24169..c67f19398 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/impersonate.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/impersonate.vm
@@ -22,7 +22,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
       
     <body>
@@ -43,23 +42,21 @@
                 <form action="$flowExecutionUrl" method="post">
                 #parse("csrf/csrf.vm")
 
-                    <fieldset>
-                        <label for="impersonation">#springMessageText("idp.impersonate.login-as", "Login as")</label>
-                        <input id="impersonation" name="principal" type="text" />
-                        
-                        <!-- Defaults to input box above, example below populates a select list from an IdPAttribute. -->
-                        <!--
-                        #set ($attributeContext = $rpContext.getSubcontext('net.shibboleth.idp.attribute.context.AttributeContext'))
-                        #set ($usernamesAttribute = $attributeContext.getUnfilteredIdPAttributes().get("impersonatableUsernames"))
-                        <select id="impersonation" name="principal">
-                        #if ($usernamesAttribute)
-                            #foreach ($username in $usernamesAttribute.getValues())
-                                <option value="$encoder.encodeForHTML($username.getValue())">$encoder.encodeForHTML($username.getValue())</option>
-                            #end
+                    <label for="impersonation">#springMessageText("idp.impersonate.login-as", "Login as")</label>
+                    <input id="impersonation" name="principal" type="text" />
+                    
+                    <!-- Defaults to input box above, example below populates a select list from an IdPAttribute. -->
+                    <!--
+                    #set ($attributeContext = $rpContext.getSubcontext('net.shibboleth.idp.attribute.context.AttributeContext'))
+                    #set ($usernamesAttribute = $attributeContext.getUnfilteredIdPAttributes().get("impersonatableUsernames"))
+                    <select id="impersonation" name="principal">
+                    #if ($usernamesAttribute)
+                        #foreach ($username in $usernamesAttribute.getValues())
+                            <option value="$encoder.encodeForHTML($username.getValue())">$encoder.encodeForHTML($username.getValue())</option>
                         #end
-                        </select>
-                        -->
-                    </fieldset>
+                    #end
+                    </select>
+                    -->
 
                     <div class="grid md-2">
                         <div class="grid-item">
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/terms-of-use.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/terms-of-use.vm
index c0989caae..9d43c2a4c 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/terms-of-use.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/intercept/terms-of-use.vm
@@ -23,7 +23,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
     <body>
         <main class="main">
@@ -41,14 +40,14 @@
                 <form action="$flowExecutionUrl" method="post">
                     <fieldset>
                         <legend><span>Agreement</span></legend>
-                            <form action="$flowExecutionUrl" method="post" >
-                                #parse("csrf/csrf.vm")
-                                <input id="accept" type="checkbox" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($termsOfUseId)" required>
-                                <label for="accept">#springMessageText("idp.terms-of-use.accept", "I accept the terms of use")
-                                #if ($requireCheckbox)
-                                    <br/><small>#springMessageText("idp.terms-of-use.required", "Please check this box if you want to proceed.")</small>
-                                #end
-                                </label>
+                        <form action="$flowExecutionUrl" method="post" >
+                            #parse("csrf/csrf.vm")
+                            <input id="accept" type="checkbox" name="_shib_idp_consentIds" value="$encoder.encodeForHTML($termsOfUseId)" required>
+                            <label for="accept">#springMessageText("idp.terms-of-use.accept", "I accept the terms of use")
+                            #if ($requireCheckbox)
+                                <br/><small>#springMessageText("idp.terms-of-use.required", "Please check this box if you want to proceed.")</small>
+                            #end
+                            </label>
                     </fieldset>
                     
                     <div class="grid md-2">
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login-error.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login-error.vm
index f2f69bd17..2b083b5b0 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login-error.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login-error.vm
@@ -20,5 +20,5 @@
 #end
 
 #if ($message)
-    <h3 class="output-message output--error">$encoder.encodeForHTML($message)</h3>
+    <p class="output-message output--error">$encoder.encodeForHTML($message)</p>
 #end
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login.vm
index 0679f3b4a..d23763d6e 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/login.vm
@@ -28,7 +28,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
     <body>
         <main class="main">
@@ -37,7 +36,7 @@
                 
                 #set ($serviceName = $rpUIContext.serviceName)
                 #if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName))
-                    <h2>#springMessageText("idp.login.loginTo", "Login to") $encoder.encodeForHTML($serviceName)</h2>
+                    <h1>#springMessageText("idp.login.loginTo", "Login to") $encoder.encodeForHTML($serviceName)</h1>
                 #end
             </header>
             
@@ -67,36 +66,29 @@
                             
                     #parse("login-error.vm")
 
-                    <fieldset>
-                        <label for="username">#springMessageText("idp.login.username", "Username")</label>
-                        <input id="username" name="j_username" type="text"
-                            value="#if($username)$encoder.encodeForHTML($username)#end" />
-                    </fieldset>
-                  
-                    <fieldset>
-                        <label for="password">#springMessageText("idp.login.password", "Password")</label>
-                        <input type="password" name="j_password" id="password" value="" />
-                    </fieldset>
+                    <label for="username">#springMessageText("idp.login.username", "Username")</label>
+                    <input id="username" name="j_username" type="text"
+                        value="#if($username)$encoder.encodeForHTML($username)#end" />
+                        
+                    <label for="password">#springMessageText("idp.login.password", "Password")</label>
+                    <input type="password" name="j_password" id="password" value="" />
     
                     ## You may need to modify this to taste, such as changing the flow name checked to authn/MFA.
                     #if (!$authenticationContext.getActiveResults().containsKey('authn/Password'))
-                    <fieldset>
                         <input type="checkbox" name="donotcache" value="1" id="donotcache" />
                         <label for="donotcache">#springMessageText("idp.login.donotcache", "Don't Remember Login")</label>
-                    </fieldset>
                     #end
     
-                    <fieldset>
-                        <legend><span>Login Permissions</span></legend>
-                        <input id="_shib_idp_revokeConsent" type="checkbox" name="_shib_idp_revokeConsent" value="true" />
-                        <label for="_shib_idp_revokeConsent">#springMessageText("idp.attribute-release.revoke", "Clear prior granting of permission for release of your information to this service.")</label>
-                    </fieldset>
+                    <input id="_shib_idp_revokeConsent" type="checkbox" name="_shib_idp_revokeConsent" value="true" />
+                    <label for="_shib_idp_revokeConsent">#springMessageText("idp.attribute-release.revoke", "Clear prior granting of permission for release of your information to this service.")</label>
     
-                    <fieldset>
-                        <button type="submit" name="_eventId_proceed"
-                            onClick="this.childNodes[0].nodeValue='#springMessageText("idp.login.pleasewait", "Logging in, please wait...")'"
-                            >#springMessageText("idp.login.login", "Login")</button>
-                    </fieldset>
+                    <div class="grid">
+                        <div class="grid-item">
+                            <button type="submit" name="_eventId_proceed"
+                                onClick="this.childNodes[0].nodeValue='#springMessageText("idp.login.pleasewait", "Logging in, please wait...")'"
+                                >#springMessageText("idp.login.login", "Login")</button>
+                        </div>
+                    </div>
                 </form>
     
                 <ul>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/spnego-unavailable.vm b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/spnego-unavailable.vm
index c74f8564a..ee6f17b52 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/spnego-unavailable.vm
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/views/spnego-unavailable.vm
@@ -20,7 +20,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
     <body onload="window.location = '$errorUrl'">
         <main class="main">
@@ -29,11 +28,10 @@
             </header>
 
             <section>
-                <h2>#springMessageText("idp.title", "Web Login Service") - #springMessage("idp.title.suffix", "Error")</h2>
+                <h1>#springMessageText("idp.title", "Web Login Service") - #springMessage("idp.title.suffix", "Error")</h1>
                 <p>#springMessageText("${eventKey}.message", "Your web browser doesn't support authentication with your desktop login credentials.")</p>
                 <p><a class="button secondary--button" href="$errorUrl">#springMessageText("spnego-unavailable.return", "Cancel the attempt.")</a></p>
             </section>
-            
         </main>
         <footer class="footer">
             <div class="cc">
diff --git a/idp-conf/src/main/resources/views/client-storage/client-storage-read.vm b/idp-conf/src/main/resources/views/client-storage/client-storage-read.vm
index a08143668..1afe818d0 100644
--- a/idp-conf/src/main/resources/views/client-storage/client-storage-read.vm
+++ b/idp-conf/src/main/resources/views/client-storage/client-storage-read.vm
@@ -22,7 +22,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
         <script>
         <!--
         #include("client-storage/local-storage-read.js")
@@ -32,14 +31,13 @@
     <body onload="doLoad()">        
         <main class="main">
             <section>
-                <h2>$title - $titleSuffix</h2>
+                <h1>$title - $titleSuffix</h1>
                 <p>$springMacroRequestContext.getMessage("idp.client-storage-read.text", "Loading login session information from the browser...")</p>
                 <noscript>
                     $springMacroRequestContext.getMessage("idp.client-storage.no-js", "Since your browser does not support JavaScript, you must press the Continue button once to proceed.")
                 </noscript>
                 #parse("client-storage/read.vm")
             </section>
-            
         </main>
         <footer class="footer">
             <div class="cc">
diff --git a/idp-conf/src/main/resources/views/client-storage/client-storage-write.vm b/idp-conf/src/main/resources/views/client-storage/client-storage-write.vm
index a3356df02..066cbdbc1 100644
--- a/idp-conf/src/main/resources/views/client-storage/client-storage-write.vm
+++ b/idp-conf/src/main/resources/views/client-storage/client-storage-write.vm
@@ -22,7 +22,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
         <script>
         <!--
         #include("client-storage/local-storage-write.js")
@@ -32,7 +31,7 @@
     <body onload="doSave()">    
         <main class="main">
             <section>
-                <h2>$title - $titleSuffix</h2>
+                <h1>$title - $titleSuffix</h1>
                 <p>$springMacroRequestContext.getMessage("idp.client-storage-write.text", "Saving login session information to the browser...")</p>
                 <noscript>
                     <div class="content">
diff --git a/idp-conf/src/main/resources/views/custom-styles.vm b/idp-conf/src/main/resources/views/custom-styles.vm
deleted file mode 100644
index 4c3e481de..000000000
--- a/idp-conf/src/main/resources/views/custom-styles.vm
+++ /dev/null
@@ -1,188 +0,0 @@
-## Custom styles
-##
-## idp.styles.background-color (Default: #ECEFF1)
-## idp.styles.link-color (Default: #1534E3)
-## idp.styles.button-color (Default: #1534E3)
-## idp.styles.button-hover-color (Default: #1A237E)
-## idp.styles.body-color (Default: #32424A)
-## idp.styles.message-color (Default: #7A2D00)
-## idp.styles.error-color (Default: #B50024)
-## idp.styles.success-color (Default: #1C7D40)
-## idp.styles.inactive-color (Default: #999999)
-##
-<style>
-body, hr {
-	background-color: #springMessageText("idp.styles.background-color", "#ECEFF1");
-}
-main section + section {
-  border-top: 1px solid #springMessageText("idp.styles.background-color", "#ECEFF1");
-}
-header {
-	border-bottom: 1px solid #springMessageText("idp.styles.background-color", "#ECEFF1");
-}
-input[type="text"]:read-only, 
-input[type="email"]:read-only, 
-input[type="password"]:read-only, 
-input[type="telephone"]:read-only,
-input[type="tel"]:read-only, 
-input[type="url"]:read-only, 
-textarea:read-only, 
-select:read-only, 
-input[type="text"]:disabled, 
-input[type="email"]:disabled, 
-input[type="password"]:disabled, 
-input[type="telephone"]:disabled, 
-input[type="tel"]:disabled, 
-input[type="url"]:disabled, 
-textarea:disabled, 
-select:disabled {
-  background-color: #springMessageText("idp.styles.background-color", "#ECEFF1");
-}
-
-a[href], a[href]:hover, a[href]:active, a[href]:focus {
-	color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-ul li:before {
-	background-color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-label:focus {
-	color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-input[type="text"]:focus, 
-input[type="email"]:focus, 
-input[type="password"]:focus, 
-input[type="telephone"]:focus, 
-input[type="tel"]:focus, 
-input[type="url"]:focus, 
-textarea:focus, 
-select:focus,
-input[type="text"]:active, 
-input[type="email"]:active, 
-input[type="password"]:active, 
-input[type="telephone"]:active, 
-input[type="tel"]:active, 
-input[type="url"]:active, 
-textarea:active, 
-select:active {
-	border-color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-input[type="checkbox"]:checked + label, input[type="radio"]:checked + label,
-input[type="checkbox"]:focus + label, input[type="radio"]:focus + label {
-  color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-input[type="checkbox"]:checked + label:before, input[type="radio"]:checked + label:before,
-input[type="checkbox"]:focus + label:before, input[type="radio"]:focus + label:before {
-  border-color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-input[type="checkbox"] + label:after {
-	border: solid #springMessageText("idp.styles.link-color", "#1534E3");
-}
-input[type="radio"] + label:after {
-  background-color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-button, input[type=button], input[type=submit], a.button, .button {
-  background-color: #springMessageText("idp.styles.link-color", "#1534E3");
-  border: 4px solid #springMessageText("idp.styles.link-color", "#1534E3");
-}
-button.button--secondary, 
-input[type=button].button--secondary, 
-input[type=submit].button--secondary, 
-a.button.button--secondary, 
-.button.button--secondary {
-  background-color: transparent;
-  border-color: #springMessageText("idp.styles.link-color", "#1534E3");
-  color: #springMessageText("idp.styles.link-color", "#1534E3");
-}
-
-button:hover, 
-input[type=button]:hover, 
-input[type=submit]:hover, 
-a.button:hover, 
-.button:hover, 
-button:focus, 
-input[type=button]:focus, 
-input[type=submit]:focus, 
-a.button:focus, 
-.button:focus {
-  background: #springMessageText("idp.styles.button-hover-color", "#1A237E");
-  color: #fff !important;
-  text-decoration: none !important;
-  border-color: #springMessageText("idp.styles.button-hover-color", "#1A237E");
-}
-button.button--secondary:hover, 
-input[type=button].button--secondary:hover, 
-input[type=submit].button--secondary:hover, 
-a.button.button--secondary:hover, 
-.button.button--secondary:hover,
-button.button--secondary:focus, 
-input[type=button].button--secondary:focus, 
-input[type=submit].button--secondary:focus, 
-a.button.button--secondary:focus, 
-.button.button--secondary:focus {
-  background: #springMessageText("idp.styles.button-hover-color", "#1A237E");
-  border-color: #springMessageText("idp.styles.button-hover-color", "#1A237E");
-}
-
-body {
-  color: #springMessageText("idp.styles.body-color", "#32424A");
-}
-label {
-  color: #springMessageText("idp.styles.body-color", "#32424A");
-}
-input[type="text"], 
-input[type="email"], 
-input[type="password"], 
-input[type="telephone"], 
-input[type="tel"], 
-input[type="url"], 
-textarea, 
-select {
-  border: 2px solid #springMessageText("idp.styles.body-color", "#32424A");
-  color: #springMessageText("idp.styles.body-color", "#32424A");
-}
-input[type="checkbox"] + label:before, input[type="radio"] + label:before {
-  border: 2px solid #springMessageText("idp.styles.body-color", "#32424A");
-}
-
-
-.output-message {
-  color: #springMessageText("idp.styles.message-color", "#7A2D00");
-}
-
-.output-message.output--error {
-  color: #springMessageText("idp.styles.error-color", "#B50024");
-}
-fieldset .error {
-  color: #springMessageText("idp.styles.error-color", "#B50024");
-}
-input[type="text"].error, 
-input[type="email"].error, 
-input[type="password"].error, 
-input[type="telephone"].error, 
-input[type="tel"].error, 
-input[type="url"].error, 
-textarea.error, 
-select.error {
-  border-color: #springMessageText("idp.styles.error-color", "#B50024");
-}
-
-.output-message.output--success {
-  color: #springMessageText("idp.styles.success-color", "#1C7D40");
-}
-
-button.button--secondary:disabled, 
-input[type=button].button--secondary:disabled, 
-input[type=submit].button--secondary:disabled, 
-a.button.button--secondary:disabled, 
-.button.button--secondary:disabled {
-  color: #springMessageText("idp.styles.inactive-color", "#999999");
-}
-button:disabled, 
-input[type=button]:disabled, 
-input[type=submit]:disabled, 
-a.button:disabled, 
-.button:disabled {
-  background-color: #springMessageText("idp.styles.inactive-color", "#999999");
-  border-color: #springMessageText("idp.styles.inactive-color", "#999999");
-}
-</style>
\ No newline at end of file
diff --git a/idp-conf/src/main/resources/views/error.vm b/idp-conf/src/main/resources/views/error.vm
index 63d368c01..0f01e89f7 100644
--- a/idp-conf/src/main/resources/views/error.vm
+++ b/idp-conf/src/main/resources/views/error.vm
@@ -52,7 +52,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
   	
     <body>
@@ -62,7 +61,7 @@
             </header>
             
             <section>
-                <h2>$title - $titleSuffix</h2>
+                <h1>$title - $titleSuffix</h1>
                 <p>#evaluate($message)</p>
             </section>
         </main>
diff --git a/idp-conf/src/main/resources/views/logout-complete.vm b/idp-conf/src/main/resources/views/logout-complete.vm
index e9d17a9dd..2d332eac7 100644
--- a/idp-conf/src/main/resources/views/logout-complete.vm
+++ b/idp-conf/src/main/resources/views/logout-complete.vm
@@ -24,7 +24,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
 
     <body>
@@ -51,10 +50,7 @@
               #if ( $profileRequestContext.getProfileId().contains("saml2/logout") )
                   <iframe style="display:none" src="$flowExecutionUrl&_eventId=proceed"></iframe>
               #end
-              
-      
             </section>
-            
         </main>
         <footer class="footer">
             <div class="cc">
diff --git a/idp-conf/src/main/resources/views/logout-propagate.vm b/idp-conf/src/main/resources/views/logout-propagate.vm
index 682e7a28d..ab733829c 100644
--- a/idp-conf/src/main/resources/views/logout-propagate.vm
+++ b/idp-conf/src/main/resources/views/logout-propagate.vm
@@ -26,7 +26,6 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/logout.css">
-        #parse("custom-styles.vm")
     </head>
 
     <body>
@@ -35,12 +34,11 @@
                 <img class="main-logo" src="$request.getContextPath()#springMessageText("idp.logo", "/images/placeholder-logo.png")" alt="#springMessageText("idp.logo.alt-text", "logo")" />
             </header>
             
-            
             <section>
                 #if($hidden == "true")
                 <p>#springMessageText("idp.logout.hidden", "Your single sign-on session has been terminated, but you are still logged into many of the services you have accessed during your session.")</p>
                 #else
-                <p>#springMessageText("idp.logout.attempt", "Attempting to log out of the following services:")</p>
+                <h1>#springMessageText("idp.logout.attempt", "Attempting to log out of the following services:")</h1>
                 #end
                 #parse("logout/propagate.vm")
                 
@@ -49,7 +47,6 @@
                     <li><a href="#springMessageText("idp.url.helpdesk", '#')">#springMessageText("idp.login.needHelp", "Need Help?")</a></li>
                 </ul>
             </section>
-            
         </main>
         <footer class="footer">
             <div class="cc">
diff --git a/idp-conf/src/main/resources/views/logout.vm b/idp-conf/src/main/resources/views/logout.vm
index a0ad69df4..87e78f05a 100644
--- a/idp-conf/src/main/resources/views/logout.vm
+++ b/idp-conf/src/main/resources/views/logout.vm
@@ -35,7 +35,6 @@
         #end
         *#
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
     </head>
 
    <body>
@@ -46,7 +45,9 @@
 
             <section>
                 <div class="output-message">
-                    <p><strong>Note for deployers:</strong> This page is displayed when a logout operation at the Identity Provider completes. This page is an example and should be customized. It is not fully internationalized because the presentation will be a highly localized decision, and we don't have a good suggestion for a default.</p>
+                    <p><strong>Note for deployers:</strong> This page is displayed when a logout operation at the Identity Provider completes.
+                    This page is an example and should be customized. It is not fully internationalized because the presentation will be a highly localized decision,
+                    and we don't have a good suggestion for a default.</p>
                 </div>
     
             #if ($rpContext)
diff --git a/idp-conf/src/main/resources/views/user-prefs.vm b/idp-conf/src/main/resources/views/user-prefs.vm
index 54165ee70..8f70837d2 100644
--- a/idp-conf/src/main/resources/views/user-prefs.vm
+++ b/idp-conf/src/main/resources/views/user-prefs.vm
@@ -15,7 +15,6 @@
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
         <link rel="stylesheet" type="text/css" href="$request.getContextPath()#springMessageText("idp.css", "/css/placeholder.css")">
-        #parse("custom-styles.vm")
         <script language="Javascript">
         <!--
         #parse( "user-prefs.js" )
@@ -31,7 +30,7 @@
             
             
             <section>
-                <h2>#springMessageText("idp.title", "Web Login Service") - #springMessageText("idp.userprefs.title.suffix", "Login Preferences")</h2>
+                <h1>#springMessageText("idp.title", "Web Login Service") - #springMessageText("idp.userprefs.title.suffix", "Login Preferences")</h1>
                 <p>#springMessage("idp.userprefs.info")</p>
                 
                 <noscript>
@@ -40,13 +39,10 @@
                   </div>
                 </noscript>
         
-        
                 <form>
-                    <fieldset>
-                        <label>#springMessageText("idp.userprefs.options", "The following options are available:")</label>
-                        <input type="checkbox" id="spnego" name="_idp_spnego_autologin" value="1" onClick="check(this)">
-                        <label for="spnego"> #springMessageText("idp.userprefs.spnego", "Automatically try desktop login when available.")</label>
-                    </fieldset>
+                    <p>#springMessageText("idp.userprefs.options", "The following options are available:")</p>
+                    <input type="checkbox" id="spnego" name="_idp_spnego_autologin" value="1" onClick="check(this)">
+                    <label for="spnego"> #springMessageText("idp.userprefs.spnego", "Automatically try desktop login when available.")</label>
                 </form>
             </section>
             
diff --git a/idp-war/src/main/webapp/css/placeholder.css b/idp-war/src/main/webapp/css/placeholder.css
index 359c89c9d..57a5c83d6 100644
--- a/idp-war/src/main/webapp/css/placeholder.css
+++ b/idp-war/src/main/webapp/css/placeholder.css
@@ -73,18 +73,18 @@ a[href]:hover, a[href]:active, a[href]:focus {
 
 /* Heading styles */
 h1 {
-  font-size: 30px;
-  font-size: 1.875rem;
-  line-height: 36px;
-  line-height: 2.25rem;
-  font-weight: 700;
-}
-
-h2 {
   font-size: 24px;
   font-size: 1.5rem;
   line-height: 28px;
   line-height: 1.75rem;
+  font-weight: 700;
+}
+
+h2 {
+  font-size: 20px;
+  font-size: 1.25rem;
+  line-height: 25px;
+  line-height: 1.5rem;
   font-weight: 400;
 }
 
@@ -300,7 +300,7 @@ header .main-logo {
 }
 
 section {
-  padding: 8%;
+  padding: 4% 8% 4% 8%;
 }
 
 /* Output Messages */
@@ -754,6 +754,10 @@ a.button:disabled,
   color: #a9b0b4;
 }
 
+.grid {
+  margin-top: 12px;
+}
+
 /* Grid (used for 2 columns) */
 .grid:before, .grid:after {
   content: " ";

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list