-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
257 lines (239 loc) · 16.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<html data-bs-theme="auto">
<head>
<title>fbgdbg by yell0wsuit</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="prism.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<link href="style.css" rel="stylesheet">
</head>
<body>
<!-- Anything: start -->
<nav class="mb-2 navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">fbgdbg</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Test nav 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Test nav 2</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="bd-theme" aria-expanded="false" data-bs-toggle="dropdown" data-bs-display="static">
<svg class="bi-nav ms-1 theme-icon-active">
<use href="#circle-half"></use>
</svg>
<span class="ms-2">Toggle theme</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="bd-theme">
<li>
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="light">
<svg class="bi-nav me-2 opacity-50 theme-icon">
<use href="#sun-fill"></use>
</svg>
Light
<svg class="bi-nav ms-auto d-none">
<use href="#check2"></use>
</svg>
</a>
</li>
<li>
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="dark">
<svg class="bi-nav me-2 opacity-50 theme-icon">
<use href="#moon-stars-fill"></use>
</svg>
Dark
<svg class="bi-nav ms-auto d-none">
<use href="#check2"></use>
</svg>
</a>
</li>
<li>
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-theme-value="auto">
<svg class="bi-nav me-2 opacity-50 theme-icon">
<use href="#circle-half"></use>
</svg>
Follow OS theme
<svg class="bi-nav ms-auto d-none">
<use href="#check2"></use>
</svg>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="container px-5 my-5 mb-5 thisiswhereyourcontentlives">
<div class="row">
<div class="col-md-8 offset-md-2">
<p class="text-center">
Testing Facebook gradient background. Made by yell0wsuit. <a href="https://github.com/yell0wsuit/fbgdbg">Find on GitHub</a>.
</p>
<p class="text-center">Change background's <code>opacity</code> value:</p>
<input type="range" class="form-range mb-2" id="customRange1" value="20" onchange="changeOpacity(this);">
<p class="text-center">Current value: <span id="rangevaluetext">0.2</span></p>
<div class="mb-4 text-center"><a href="javascript:void(0);" id="playAnimationLink">Play animation</a></div>
<h1 class="text-center">Lorem Ipsum</h1>
<figure class="text-center">
<blockquote class="blockquote">
<p>"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."</p>
</blockquote>
<figcaption class="blockquote-footer">
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."
</figcaption>
</figure>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tristique ut metus vitae semper. Suspendisse sed elementum risus. Integer semper imperdiet metus a iaculis. Quisque venenatis fermentum condimentum. Suspendisse convallis et diam id semper. Etiam semper, purus non aliquam maximus, leo elit maximus arcu, ac semper mauris lectus a risus. Nulla at eros sit amet diam viverra vehicula non quis sem. Nam lacus libero, auctor eu lectus id, volutpat blandit felis. Ut sollicitudin in velit sed tristique. Nullam vel euismod nisl, non mollis ipsum.</p>
<p>Nullam sit amet sapien ornare, eleifend ipsum non, euismod ex. Nam rutrum nisl mollis tortor sagittis rhoncus. Duis quis ultricies quam, nec mattis urna. Donec convallis varius erat ut sagittis. Donec sed ex mollis ante elementum consequat. Proin in est tempus, volutpat nunc id, placerat magna. Nam a cursus libero. Donec vehicula laoreet sodales. Nam rutrum volutpat varius. Sed hendrerit hendrerit erat nec blandit. Morbi blandit at enim a ultricies.</p>
<p>OK, that's enough for the sample text Lorem Ipsum. Put any texts or elements above the fbgdbg div (or behind but it will make it hard to read--not gonna stop you though).</p>
<hr />
<h2>Static (non-animated) version</h2>
<p>Take a look at the lines that are responsible for the background.</p>
<pre><code class="language-html"><div class="fbgdbg">
<div class="blue-gradient"></div>
<div class="green-gradient"></div>
<div class="yellow-gradient"></div>
<div class="red-gradient"></div>
<div class="blue-gradient-bottom"></div>
<div class="purple-gradient"></div>
</div></code></pre>
<p>In the <code>fbgdbg</code> class, the <code>position</code> property needs to be set to <code>fixed</code> to avoid overflowing. You can freely change the <code>opacity</code> property to any value you like, or remove it to let the background be shown fully--but make sure the text contrast ratio is sufficient, otherwise it will become hard to read.</p>
<p>Except for the yellow gradient div, every color's property value is left intact. However, the background color is used with the <code>var()</code> function to make the code easier to read.</p>
<p>The yellow gradient's <code>bottom</code> property value is divided by 2 from the original value to have the subtle yellow color (the lower the value, the more it can be seen). Since <code>position</code> is set to <code>fixed</code> you cannot see it. While <code>absolute</code> can see it, there are some side effects, notably the webpage becomes "overflowed".</p>
<hr />
<h2>Animated version</h2>
<p>While the code for the animated background version is implemented in FB Accounts Center, it seems to be unused (due to missing the <code>animation-duration</code> property). If you want the background to gradually change color, here is the code:</p>
<pre><code class="language-html"><div class="fbgdbg">
<div class="blue-gradient"></div>
<div class="green-gradient green-gradient-animation"></div>
<div class="yellow-gradient"></div>
<div class="red-gradient"></div>
<div class="blue-gradient-bottom blue-gradient-bottom-animation"></div>
<div class="purple-gradient purple-gradient-animation"></div>
</div></code></pre>
<p>Feel free to experiment different animations that suit your style.</p>
</div>
</div>
</div>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="check2" viewBox="0 0 16 16">
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z" />
</symbol>
<symbol id="circle-half" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z" />
</symbol>
<symbol id="moon-stars-fill" viewBox="0 0 16 16">
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z" />
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z" />
</symbol>
<symbol id="sun-fill" viewBox="0 0 16 16">
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z" />
</symbol>
</svg>
<!-- Anything: stop -->
<!-- Fbgdbg -->
<div class="fbgdbg">
<div class="blue-gradient"></div>
<div class="green-gradient"></div>
<div class="yellow-gradient"></div>
<div class="red-gradient"></div>
<div class="blue-gradient-bottom"></div>
<div class="purple-gradient"></div>
</div>
<!-- Fbgdbg -->
<!-- Optional scripts -->
<script>
function changeOpacity() {
let e = document.getElementById("customRange1").value / 100;
document.getElementsByClassName("fbgdbg")[0].style.opacity = e;
document.getElementById('rangevaluetext').innerText = e;
}
</script>
<script>
let a = document.getElementsByClassName("green-gradient"),
b = document.getElementsByClassName("blue-gradient-bottom"),
c = document.getElementsByClassName("purple-gradient"),
changeThis = document.getElementById("playAnimationLink");
changeThis.onclick = addAnimationPls;
function addAnimationPls() {
a[0].classList.add("green-gradient-animation");
b[0].classList.add("blue-gradient-bottom-animation");
c[0].classList.add("purple-gradient-animation");
if (changeThis.innerText === 'Play animation') {
changeThis.innerText = 'Stop animation';
} else {
changeThis.innerText = 'Play animation';
a[0].classList.remove("green-gradient-animation");
b[0].classList.remove("blue-gradient-bottom-animation");
c[0].classList.remove("purple-gradient-animation")
}
};
</script>
<script>
/*!
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Licensed under the Creative Commons Attribution 3.0 Unported License.
*/
(() => {
'use strict'
const storedTheme = localStorage.getItem('theme')
const getPreferredTheme = () => {
if (storedTheme) {
return storedTheme
}
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
}
const setTheme = function(theme) {
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.setAttribute('data-bs-theme', 'dark')
} else {
document.documentElement.setAttribute('data-bs-theme', theme)
}
}
setTheme(getPreferredTheme())
const showActiveTheme = theme => {
const activeThemeIcon = document.querySelector('.theme-icon-active use')
const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`)
const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href')
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
element.classList.remove('active')
})
btnToActive.classList.add('active')
activeThemeIcon.setAttribute('href', svgOfActiveBtn)
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
if (storedTheme !== 'light' || storedTheme !== 'dark') {
setTheme(getPreferredTheme())
}
})
window.addEventListener('DOMContentLoaded', () => {
showActiveTheme(getPreferredTheme())
document.querySelectorAll('[data-bs-theme-value]')
.forEach(toggle => {
toggle.addEventListener('click', () => {
const theme = toggle.getAttribute('data-bs-theme-value')
localStorage.setItem('theme', theme)
setTheme(theme)
showActiveTheme(theme)
})
})
})
})()
</script>
<script src="prism.js"></script>
</body>
</html>