Skip to content

Commit 66d2057

Browse files
authored
Add files via upload
## Breaking Changes **Important:** This release is only compatible with SimpleSAMLphp 2.2.2 and higher due to the required `formURL` variable. Users on SimpleSAMLphp 2.2.1 and earlier should remain on theme version 0.2.1. ## Major Changes ### Complete CSP Strict Compliance - Removed all inline event handlers and replaced with data attributes - Eliminated all inline scripts - moved to external files (theme-init.js) - Removed all inline styles in favor of CSS classes - Full compatibility with Content Security Policy strict mode without requiring nonces ### JavaScript Architecture Overhaul - Unified all JavaScript functionality into single `theme-bundle.js` file - Added separate `theme-init.js` for immediate theme application (prevents flash) - Reduced HTTP requests from 5+ files to 2 core bundles - Exposed `window.SimpleSAMLTheme` object for external integrations ### UI/UX Design Improvements - Simplified theme switcher to dark/light modes only (removed auto mode) - Modernized password visibility toggle with minimal 18x18px icon design - Wider alert containers (600px) for better error message readability - Consistent button heights across all navigation elements - Changed error alerts to use danger styling (red) instead of warning (yellow) ### Form Compatibility Updates - Updated form action to use `formURL` variable instead of `moduleURL()` function - Compatible with SimpleSAMLphp 2.2+ form handling - Dynamic username placeholder when `forceUsername` is active ### Bootstrap Framework Update - Updated from Bootstrap 5.3.2 to Bootstrap 5.3.8 ## New Features - Keyboard accessibility for password visibility toggle - Form validation with submit button state management - Auto-dismiss feature for dismissible alerts after 10 seconds - Development mode logging for easier debugging ## Compatibility Matrix | SimpleSAMLphp Version | Theme Version | Compatibility | |-----------------------|---------------|---------------| | 2.0.x - 2.2.1 | 0.2.1 | Full | | 2.2.2+ | 0.4.0 | Full |
1 parent 3a9e8a7 commit 66d2057

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+60875
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
/*
2+
* SimpleSAMLphp Bootstrap Theme
3+
* Version 0.4.0
4+
*
5+
* SimpleSAMLphp Bootstrap Theme is a child theme for SimpleSAMLphp that outputs certain visitor facing
6+
* pages via Bootstrap front-end framework. Intended to deliver a seamless look and feel when the
7+
* visitor already comes from a project based on a Bootstrap layout.
8+
*
9+
* Documentation: https://github.com/disisto/simplesamlphp-bootstrap-theme
10+
*
11+
*
12+
* Licensed under MIT (https://github.com/disisto/simplesamlphp-bootstrap-theme/blob/main/LICENSE)
13+
*
14+
* Copyright (c) 2023-2025 Roberto Di Sisto
15+
*
16+
* Permission is hereby granted, free of charge, to any person obtaining a copy
17+
* of this software and associated documentation files (the "Software"), to deal
18+
* in the Software without restriction, including without limitation the rights
19+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20+
* copies of the Software, and to permit persons to whom the Software is
21+
* furnished to do so, subject to the following conditions:
22+
*
23+
* The above copyright notice and this permission notice shall be included in all
24+
* copies or substantial portions of the Software.
25+
*
26+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32+
* SOFTWARE.
33+
*/
34+
35+
html,
36+
body {
37+
height: 100%;
38+
}
39+
40+
.form-signin {
41+
max-width: 330px;
42+
padding: 1rem;
43+
}
44+
45+
.alert-container {
46+
max-width: 600px;
47+
margin: 0 auto;
48+
padding: 0 1rem;
49+
}
50+
51+
.alert-container .alert {
52+
margin-bottom: 1.5rem;
53+
}
54+
55+
.form-signin .form-floating:focus-within {
56+
z-index: 2;
57+
}
58+
59+
.form-signin input[type="email"] {
60+
margin-bottom: -1px;
61+
border-bottom-right-radius: 0;
62+
border-bottom-left-radius: 0;
63+
}
64+
65+
.form-signin input[type="password"] {
66+
margin-bottom: 10px;
67+
border-top-left-radius: 0;
68+
border-top-right-radius: 0;
69+
}
70+
71+
.dropdown-menu.dropdown-menu-lang {
72+
max-height: 550px;
73+
overflow-y: auto;
74+
right: 0;
75+
transform: translateX(36%);
76+
77+
}
78+
79+
.dropdown-menu.dropdown-menu-theme {
80+
}
81+
82+
.custom-input {
83+
height: 40px;
84+
}
85+
86+
.custom-textarea {
87+
height: 100px;
88+
}
89+
90+
#bd-theme-toggle .theme-icon-active {
91+
transition: fill 0.2s ease;
92+
}
93+
94+
.form-signin input[type="text"].form-control {
95+
margin-bottom: 10px;
96+
border-top-left-radius: 0;
97+
border-top-right-radius: 0;
98+
}
99+
100+
.password-wrapper {
101+
position: relative;
102+
}
103+
104+
.password-wrapper .form-floating {
105+
margin-bottom: 0;
106+
}
107+
108+
.password-toggle {
109+
position: absolute;
110+
top: 50%;
111+
right: 16px;
112+
transform: translateY(-50%);
113+
cursor: pointer;
114+
padding: 6px;
115+
display: inline-flex;
116+
align-items: center;
117+
justify-content: center;
118+
z-index: 10;
119+
line-height: 1;
120+
user-select: none;
121+
}
122+
123+
.eye-icon {
124+
width: 18px;
125+
height: 18px;
126+
opacity: 0.3;
127+
transition: opacity 0.2s ease;
128+
display: block;
129+
color: #6c757d;
130+
}
131+
132+
.password-toggle:hover .eye-icon {
133+
opacity: 0.5;
134+
}
135+
136+
.password-wrapper .form-control {
137+
padding-right: 46px;
138+
}
139+
140+
.password-wrapper .form-floating > .form-control {
141+
padding-right: 46px;
142+
}
143+
144+
.password-wrapper .form-floating > label {
145+
z-index: 5;
146+
}

bootstrap/public/assets/css/sign-in.min.css

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)