@fraziersoft/wisp 1.0.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.
- package/LICENSE.txt +21 -0
- package/README.md +101 -0
- package/dist/wisp.css +8 -0
- package/dist/wisp.js +8 -0
- package/package.json +32 -0
- package/src/wisp.css +566 -0
- package/src/wisp.js +48 -0
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Chris Frazier
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<a name="readme-top"></a>
|
|
2
|
+
|
|
3
|
+
<!-- PROJECT LOGO -->
|
|
4
|
+
<div align="center">
|
|
5
|
+
<a href="https://github.com/Frazier-Software/wisp">
|
|
6
|
+
<img src="private/logo.png" alt="Logo" width="254" height="258">
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
<h3 align="center">Wisp</h3>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
A dead simple CSS boilerplate.
|
|
13
|
+
<br />
|
|
14
|
+
<a href="https://wisp.frazier.software"><strong>Explore the docs »</strong></a>
|
|
15
|
+
</p>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<!-- BADGES -->
|
|
19
|
+
|
|
20
|
+
[![Issues][issues-shield]][issues-url]
|
|
21
|
+
[![MIT License][license-shield]][license-url]
|
|
22
|
+
[![LinkedIn][linkedin-shield]][linkedin-url]
|
|
23
|
+
|
|
24
|
+
<!-- ABOUT THE PROJECT -->
|
|
25
|
+
|
|
26
|
+
## About The Project
|
|
27
|
+
|
|
28
|
+
- Light as a feather at ~500 lines & built with mobile in mind.
|
|
29
|
+
- Styles designed to be a starting point, not a UI framework.
|
|
30
|
+
- Quick to start with zero compiling or installing necessary.
|
|
31
|
+
|
|
32
|
+
You should use Wisp if you're embarking on a smaller project or just don't feel like you need all
|
|
33
|
+
the utility of larger frameworks. Wisp only styles a handful of standard HTML elements, but that's
|
|
34
|
+
often more than enough to get started.
|
|
35
|
+
|
|
36
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
37
|
+
|
|
38
|
+
<!-- GETTING STARTED -->
|
|
39
|
+
|
|
40
|
+
## Getting Started
|
|
41
|
+
|
|
42
|
+
To start using Wisp, just link to the CSS stylesheet (and optional JS file):
|
|
43
|
+
|
|
44
|
+
```html
|
|
45
|
+
<link
|
|
46
|
+
rel="stylesheet"
|
|
47
|
+
href="https://unpkg.com/@fraziersoft/wisp@latest/dist/wisp.css"
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
52
|
+
|
|
53
|
+
<!-- CONTRIBUTING -->
|
|
54
|
+
|
|
55
|
+
## Contributing
|
|
56
|
+
|
|
57
|
+
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
|
|
58
|
+
|
|
59
|
+
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
|
|
60
|
+
Don't forget to give the project a star! Thanks again!
|
|
61
|
+
|
|
62
|
+
1. Fork the Project
|
|
63
|
+
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
|
|
64
|
+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
|
|
65
|
+
4. Push to the Branch (`git push origin feature/AmazingFeature`)
|
|
66
|
+
5. Open a Pull Request
|
|
67
|
+
|
|
68
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
69
|
+
|
|
70
|
+
<!-- LICENSE -->
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
Distributed under the MIT License. See `LICENSE.txt` for more information.
|
|
75
|
+
|
|
76
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
77
|
+
|
|
78
|
+
<!-- ACKNOWLEDGMENTS -->
|
|
79
|
+
|
|
80
|
+
## Acknowledgments
|
|
81
|
+
|
|
82
|
+
This project started as a fork of a CSS boilerplate by [Dave Gamache][dave-url]. I wanted to update some of
|
|
83
|
+
the base classes, remove some of the obsolete cruft, and add a few common web UI components that I thought
|
|
84
|
+
warranted an inclusion. The original project was named Skeleton, but due to the rising popularity of the
|
|
85
|
+
similarly named [Skeleton][skeleton-url] svelte toolkit, I decided a re-branding was also in order.
|
|
86
|
+
|
|
87
|
+
Thank you Dave for all the hard work. The original version of Skeleton was useful for a ton of old projects
|
|
88
|
+
and customer sites. Hopefully someone enjoys this refreshed edition as much as I enjoyed the original.
|
|
89
|
+
|
|
90
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
91
|
+
|
|
92
|
+
<!-- MARKDOWN LINKS & IMAGES -->
|
|
93
|
+
|
|
94
|
+
[issues-shield]: https://img.shields.io/github/issues/Frazier-Software/wisp.svg?style=for-the-badge
|
|
95
|
+
[issues-url]: https://github.com/Frazier-Software/wisp/issues
|
|
96
|
+
[license-shield]: https://img.shields.io/github/license/Frazier-Software/wisp.svg?color=44CC11&style=for-the-badge
|
|
97
|
+
[license-url]: https://github.com/Frazier-Software/wisp/blob/master/LICENSE.txt
|
|
98
|
+
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
|
|
99
|
+
[linkedin-url]: https://linkedin.com/in/linkedin_username
|
|
100
|
+
[dave-url]: https://github.com/dhg
|
|
101
|
+
[skeleton-url]: https://www.skeleton.dev/
|
package/dist/wisp.css
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Wisp v1.0.0
|
|
3
|
+
* https://wisp.frazier.software/
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2024 Chris Frazier
|
|
6
|
+
* Licensed under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
:root{--color-bg:#FDFDFD;--color-font:#222;--color-font-light:#FFF;--color-primary:#1EAEDB;--color-primary-light:#33C3F0;--color-primary-dark:#0FA0CE;--color-secondary:#B90E0A;--color-secondary-light:#D21404;--color-secondary-dark:#990F02;--color-neutral-1:#F1F1F1;--color-neutral-2:#D1D1D1;--color-neutral-3:#BBB;--color-neutral-4:#888;--color-neutral-5:#555;--color-neutral-6:#333;--font-family:"HelveticaNeue","Helvetica Neue",Helvetica,Arial,sans-serif;--border-radius:4px}html{font-size:62.5%}body{background:var(--color-bg);font-size:1.6em;line-height:1.6;font-weight:400;font-family:var(--font-family);color:var(--color-font)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.6rem;line-height:1.6;letter-spacing:0;font-weight:400}@media (min-width:640px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.6rem}}p{margin-top:0}a{color:var(--color-primary)}a:hover{color:var(--color-primary-dark)}.btn,button:not(.hljs-copy-button),input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:var(--color-neutral-5);text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:var(--border-radius);border:1px solid var(--color-neutral-3);cursor:pointer;box-sizing:border-box;transition:background .4s,color .4s}.btn:hover,button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{color:var(--color-neutral-6);border-color:var(--color-neutral-4);outline:0}.btn.btn--primary,button.btn--primary,input[type=button].btn--primary,input[type=reset].btn--primary,input[type=submit].btn--primary{color:var(--color-font-light);background-color:var(--color-primary-light);border-color:var(--color-primary-light)}.btn.btn--primary:hover,button.btn--primary:hover,input[type=button].btn--primary:hover,input[type=reset].btn--primary:hover,input[type=submit].btn--primary:hover{color:var(--color-font-light);background-color:var(--color-primary);border-color:var(--color-primary)}.btn.btn--warning,button.btn--warning,input[type=button].btn--warning,input[type=reset].btn--warning,input[type=submit].btn--warning{color:var(--color-secondary-light);border-color:var(--color-secondary-light)}.btn.btn--warning:hover,button.btn--warning:hover,input[type=button].btn--warning:hover,input[type=reset].btn--warning:hover,input[type=submit].btn--warning:hover{color:var(--color-secondary-dark);border-color:var(--color-secondary-dark)}.btn.btn--danger,button.btn--danger,input[type=button].btn--danger,input[type=reset].btn--danger,input[type=submit].btn--danger{color:var(--color-font-light);background:var(--color-secondary-light);border-color:var(--color-secondary-light)}.btn.btn--danger:hover,button.btn--danger:hover,input[type=button].btn--danger:hover,input[type=reset].btn--danger:hover,input[type=submit].btn--danger:hover{background:var(--color-secondary);border-color:var(--color-secondary)}.btn--ripple{position:relative;overflow:hidden}.btn--ripple .ripple{position:absolute;border-radius:50%;background-color:rgba(255,255,255,.4);transform:scale(0);animation:ripple .6s linear}@keyframes ripple{to{transform:scale(4);opacity:0}}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:var(--color-bg);border:1px solid var(--color-neutral-2);border-radius:var(--border-radius);box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid var(--color-primary-light);outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;cursor:pointer;margin-left:.5rem;font-weight:400}.toggle{font-size:61%;position:relative;top:.2em}.toggle input[type=checkbox]{appearance:none;position:relative;display:inline-block;box-sizing:content-box;width:4.5em;height:2em;padding:.2em;margin-bottom:0;border:none;cursor:pointer;border-radius:1.5em;overflow:hidden;background-color:var(--color-neutral-4);transition:background ease .3s}.toggle input[type=checkbox]:before{content:"on off";display:block;position:absolute;z-index:2;width:2em;height:2em;font-family:system-ui;font-size:1em;line-height:2em;font-weight:500;text-transform:uppercase;text-indent:-2em;word-spacing:2.55em;text-shadow:-1px -1px rgba(0,0,0,.15);white-space:nowrap;background:var(--color-font-light);color:var(--color-font-light);border-radius:1.5em;transition:transform cubic-bezier(.3, 1.5, .7, 1) .3s}.toggle input[type=checkbox]:checked{background-color:var(--color-primary-light)}.toggle input[type=checkbox]:checked:before{transform:translateX(2.5em)}.accordion-tab{border:1px solid var(--color-neutral-2);border-radius:var(--border-radius);margin-bottom:.5rem}.accordion-tab input{display:none}.accordion-tab label{display:flex;justify-content:space-between;margin-bottom:0;padding:5px 5px 5px 10px;cursor:pointer}.accordion-tab:not(.accordion-tab--close) label::after{content:"\276F";color:var(--color-neutral-5);width:1em;height:1em;text-align:center}.accordion-tab:not(.accordion-tab--close) input:checked+label::after{transform:rotate(90deg)}.accordion-tab.accordion-tab--close{border:none;margin-top:12px}.accordion-tab.accordion-tab--close label{font-size:75%;padding:0 0 0 10px}.accordion-content{max-height:0;overflow:hidden;padding:0 5px 0 10px;transition:max-height 650ms}.accordion-content p{margin-bottom:10px}.accordion-content p:first-child{margin-top:15px}.accordion-tab input:checked~.accordion-content{max-height:500rem}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem}li{margin-bottom:1rem}code{padding:2px 5px;margin:0 2px;font-size:90%;white-space:nowrap;background:var(--color-neutral-1);border:1px solid var(--color-neutral-2);border-radius:var(--border-radius)}pre>code{display:block;padding:10px 15px;white-space:pre}td,th{padding:12px 15px;text-align:left;border-bottom:1px solid var(--color-neutral-2)}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.tooltip{cursor:help;border-bottom:1px dotted var(--color-neutral-5);position:relative}.tooltip::after,.tooltip::before{position:absolute;left:50%;opacity:0;z-index:-100}.tooltip:focus::after,.tooltip:focus::before,.tooltip:hover::after,.tooltip:hover::before{opacity:1;transform:scale(1) translateY(0);z-index:100}.tooltip::before{content:"";border-style:solid;border-width:1em .75em 0 .75em;border-color:var(--color-neutral-6) transparent transparent transparent;bottom:100%;margin-left:-.5em;transition:all .65s cubic-bezier(.84, -.18, .31, 1.26),opacity .65s .5s;transform:scale(.6) translateY(-90%)}.tooltip:focus::before,.tooltip:hover::before{transition:all .65s cubic-bezier(.84,-.18,.31,1.26) .2s}.tooltip::after{background:var(--color-neutral-6);border-radius:var(--border-radius);bottom:180%;color:var(--color-font-light);content:attr(data-tip);margin-left:-8.75em;padding:1em;transition:all .65s cubic-bezier(.84,-.18,.31,1.26) .2s;transform:scale(.6) translateY(50%);font-size:.9em;width:16em}.tooltip:focus::after,.tooltip:hover::after{transition:all .65s cubic-bezier(.84,-.18,.31,1.26)}.tooltip.tooltip--sm::after{font-size:.75em;margin-left:-5em;width:10em}@media (max-width:768px){.tooltip::after{font-size:.75em;margin-left:-5em;width:10em}}.btn,button:not(.hljs-copy-button){margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}hr{margin-top:30px;margin-bottom:35px;border-width:0;border-top:1px solid var(--color-neutral-2)}#back-to-top{display:inline-block;background-color:var(--color-primary-light);width:50px;height:50px;text-align:center;border-radius:var(--border-radius);position:fixed;bottom:30px;right:30px;transition:background-color .3s,opacity .5s,visibility .5s;opacity:0;visibility:hidden;z-index:1000}#back-to-top::after{content:"\276F";font-weight:400;font-style:normal;font-size:32px;line-height:50px;color:var(--color-bg);display:inline-block;transform:rotate(270deg)}#back-to-top:active,#back-to-top:hover{cursor:pointer;background-color:var(--color-primary)}#back-to-top.back-to-top--show{opacity:1;visibility:visible}.u-full{width:100%;box-sizing:border-box}.u-max{max-width:100%;box-sizing:border-box}.u-m0{margin:0}.u-mt0{margin-top:0}.u-mb0{margin-bottom:0}.u-ml0{margin-left:0}.u-mr0{margin-right:0}.u-p0{padding:0}.u-pt0{padding-top:0}.u-pb0{padding-bottom:0}.u-pl0{padding-left:0}.u-pr0{padding-right:0}@media (min-width:640px){.sm-hide{display:none!important}}@media (max-width:639px){.sm-show{display:none!important}}@media (min-width:768px){.md-hide{display:none!important}}@media (max-width:767px){.md-show{display:none!important}}@media (min-width:1024px){.lg-hide{display:none!important}}@media (max-width:1023px){.lg-show{display:none!important}}@media (min-width:1280px){.xl-hide{display:none!important}}@media (max-width:1279px){.xl-show{display:none!important}}@media (min-width:1536px){.xxl-hide{display:none!important}}@media (max-width:1535px){.xxl-show{display:none!important}}
|
package/dist/wisp.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Wisp v1.0.0
|
|
3
|
+
* https://wisp.frazier.software/
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2024 Chris Frazier
|
|
6
|
+
* Licensed under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
function a(A){var _=A.currentTarget,B=document.createElement('span'),d=Math.max(_.clientWidth,_.clientHeight)/2,e=_.getBoundingClientRect();B.classList.add('ripple');B.style.width=B.style.height=`${2*d}px`;B.style.left=`${A.clientX-(e.left+d)}px`;B.style.top=`${A.clientY-(e.top+d)}px`;for(const el of _.querySelectorAll('.ripple'))el.remove();_.appendChild(B)}function b(C){return ()=>{document.documentElement.scrollTop>300?C.classList.add('back-to-top--show'):C.classList.remove('back-to-top--show')}}function c(_a){_a.preventDefault();document.documentElement.scrollIntoView({behavior:'smooth'})}(D=>document.readyState!=='loading'?D():document.addEventListener('DOMContentLoaded',D))(()=>{for(const E of document.querySelectorAll('.btn--ripple'))E.addEventListener('click',a);var _A=document.querySelector('#back-to-top');_A&&(document.addEventListener('scroll',b(_A)),_A.addEventListener('click',c))});
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fraziersoft/wisp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Simple CSS boilerplate",
|
|
5
|
+
"homepage": "https://wisp.frazier.software",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/Frazier-Software/wisp.git"
|
|
9
|
+
},
|
|
10
|
+
"main": "dist/wisp.css",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"src"
|
|
14
|
+
],
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"css",
|
|
18
|
+
"boilerplate"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"dev": "http-server docs",
|
|
22
|
+
"build": "sh scripts/build.sh",
|
|
23
|
+
"clean": "rimraf dist"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"changelogen": "^0.5.7",
|
|
27
|
+
"http-server": "^14.1.1",
|
|
28
|
+
"minify": "^12.0.0",
|
|
29
|
+
"rimraf": "^6.0.1"
|
|
30
|
+
},
|
|
31
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
32
|
+
}
|
package/src/wisp.css
ADDED
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
/* Variables
|
|
2
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
3
|
+
:root {
|
|
4
|
+
--color-bg: #FDFDFD;
|
|
5
|
+
--color-font: #222;
|
|
6
|
+
--color-font-light: #FFF;
|
|
7
|
+
|
|
8
|
+
--color-primary: #1EAEDB;
|
|
9
|
+
--color-primary-light: #33C3F0;
|
|
10
|
+
--color-primary-dark: #0FA0CE;
|
|
11
|
+
|
|
12
|
+
--color-secondary: #B90E0A;
|
|
13
|
+
--color-secondary-light: #D21404;
|
|
14
|
+
--color-secondary-dark: #990F02;
|
|
15
|
+
|
|
16
|
+
--color-neutral-1: #F1F1F1;
|
|
17
|
+
--color-neutral-2: #D1D1D1;
|
|
18
|
+
--color-neutral-3: #BBB;
|
|
19
|
+
--color-neutral-4: #888;
|
|
20
|
+
--color-neutral-5: #555;
|
|
21
|
+
--color-neutral-6: #333;
|
|
22
|
+
|
|
23
|
+
--font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
24
|
+
--border-radius: 4px; }
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/* Base styles
|
|
28
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
29
|
+
html {
|
|
30
|
+
font-size: 62.5%; }
|
|
31
|
+
body {
|
|
32
|
+
background: var(--color-bg);
|
|
33
|
+
font-size: 1.6em;
|
|
34
|
+
line-height: 1.6;
|
|
35
|
+
font-weight: 400;
|
|
36
|
+
font-family: var(--font-family);
|
|
37
|
+
color: var(--color-font); }
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
/* Typography
|
|
41
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
42
|
+
h1, h2, h3, h4, h5, h6 {
|
|
43
|
+
margin-top: 0;
|
|
44
|
+
margin-bottom: 2rem;
|
|
45
|
+
font-weight: 300; }
|
|
46
|
+
h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;}
|
|
47
|
+
h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; }
|
|
48
|
+
h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; }
|
|
49
|
+
h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; }
|
|
50
|
+
h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; }
|
|
51
|
+
h6 { font-size: 1.6rem; line-height: 1.6; letter-spacing: 0; font-weight: 400; }
|
|
52
|
+
|
|
53
|
+
/* Larger than phablet */
|
|
54
|
+
@media (min-width: 640px) {
|
|
55
|
+
h1 { font-size: 5.0rem; }
|
|
56
|
+
h2 { font-size: 4.2rem; }
|
|
57
|
+
h3 { font-size: 3.6rem; }
|
|
58
|
+
h4 { font-size: 3.0rem; }
|
|
59
|
+
h5 { font-size: 2.4rem; }
|
|
60
|
+
h6 { font-size: 1.6rem; }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
p {
|
|
64
|
+
margin-top: 0; }
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
/* Links
|
|
68
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
69
|
+
a {
|
|
70
|
+
color: var(--color-primary); }
|
|
71
|
+
a:hover {
|
|
72
|
+
color: var(--color-primary-dark); }
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* Buttons
|
|
76
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
77
|
+
.btn,
|
|
78
|
+
button:not(.hljs-copy-button),
|
|
79
|
+
input[type="submit"],
|
|
80
|
+
input[type="reset"],
|
|
81
|
+
input[type="button"] {
|
|
82
|
+
display: inline-block;
|
|
83
|
+
height: 38px;
|
|
84
|
+
padding: 0 30px;
|
|
85
|
+
color: var(--color-neutral-5);
|
|
86
|
+
text-align: center;
|
|
87
|
+
font-size: 11px;
|
|
88
|
+
font-weight: 600;
|
|
89
|
+
line-height: 38px;
|
|
90
|
+
letter-spacing: .1rem;
|
|
91
|
+
text-transform: uppercase;
|
|
92
|
+
text-decoration: none;
|
|
93
|
+
white-space: nowrap;
|
|
94
|
+
background-color: transparent;
|
|
95
|
+
border-radius: var(--border-radius);
|
|
96
|
+
border: 1px solid var(--color-neutral-3);
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
box-sizing: border-box;
|
|
99
|
+
transition: background 400ms, color 400ms;}
|
|
100
|
+
.btn:hover,
|
|
101
|
+
button:hover,
|
|
102
|
+
input[type="submit"]:hover,
|
|
103
|
+
input[type="reset"]:hover,
|
|
104
|
+
input[type="button"]:hover {
|
|
105
|
+
color: var(--color-neutral-6);
|
|
106
|
+
border-color: var(--color-neutral-4);
|
|
107
|
+
outline: 0; }
|
|
108
|
+
.btn.btn--primary,
|
|
109
|
+
button.btn--primary,
|
|
110
|
+
input[type="submit"].btn--primary,
|
|
111
|
+
input[type="reset"].btn--primary,
|
|
112
|
+
input[type="button"].btn--primary {
|
|
113
|
+
color: var(--color-font-light);
|
|
114
|
+
background-color: var(--color-primary-light);
|
|
115
|
+
border-color: var(--color-primary-light); }
|
|
116
|
+
.btn.btn--primary:hover,
|
|
117
|
+
button.btn--primary:hover,
|
|
118
|
+
input[type="submit"].btn--primary:hover,
|
|
119
|
+
input[type="reset"].btn--primary:hover,
|
|
120
|
+
input[type="button"].btn--primary:hover {
|
|
121
|
+
color: var(--color-font-light);
|
|
122
|
+
background-color: var(--color-primary);
|
|
123
|
+
border-color: var(--color-primary); }
|
|
124
|
+
.btn.btn--warning,
|
|
125
|
+
button.btn--warning,
|
|
126
|
+
input[type="submit"].btn--warning,
|
|
127
|
+
input[type="reset"].btn--warning,
|
|
128
|
+
input[type="button"].btn--warning {
|
|
129
|
+
color: var(--color-secondary-light);
|
|
130
|
+
border-color: var(--color-secondary-light); }
|
|
131
|
+
.btn.btn--warning:hover,
|
|
132
|
+
button.btn--warning:hover,
|
|
133
|
+
input[type="submit"].btn--warning:hover,
|
|
134
|
+
input[type="reset"].btn--warning:hover,
|
|
135
|
+
input[type="button"].btn--warning:hover {
|
|
136
|
+
color: var(--color-secondary-dark);
|
|
137
|
+
border-color: var(--color-secondary-dark); }
|
|
138
|
+
.btn.btn--danger,
|
|
139
|
+
button.btn--danger,
|
|
140
|
+
input[type="submit"].btn--danger,
|
|
141
|
+
input[type="reset"].btn--danger,
|
|
142
|
+
input[type="button"].btn--danger {
|
|
143
|
+
color: var(--color-font-light);
|
|
144
|
+
background: var(--color-secondary-light);
|
|
145
|
+
border-color: var(--color-secondary-light); }
|
|
146
|
+
.btn.btn--danger:hover,
|
|
147
|
+
button.btn--danger:hover,
|
|
148
|
+
input[type="submit"].btn--danger:hover,
|
|
149
|
+
input[type="reset"].btn--danger:hover,
|
|
150
|
+
input[type="button"].btn--danger:hover {
|
|
151
|
+
background: var(--color-secondary);
|
|
152
|
+
border-color: var(--color-secondary); }
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
/* Button Ripple Effect
|
|
156
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
157
|
+
.btn--ripple {
|
|
158
|
+
position: relative;
|
|
159
|
+
overflow: hidden; }
|
|
160
|
+
.btn--ripple .ripple {
|
|
161
|
+
position: absolute;
|
|
162
|
+
border-radius: 50%;
|
|
163
|
+
background-color: rgba(255, 255, 255, 0.4);
|
|
164
|
+
transform: scale(0);
|
|
165
|
+
animation: ripple 600ms linear; }
|
|
166
|
+
|
|
167
|
+
@keyframes ripple {
|
|
168
|
+
to {
|
|
169
|
+
transform: scale(4);
|
|
170
|
+
opacity: 0; }
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
/* Forms
|
|
175
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
176
|
+
input[type="email"],
|
|
177
|
+
input[type="number"],
|
|
178
|
+
input[type="search"],
|
|
179
|
+
input[type="text"],
|
|
180
|
+
input[type="tel"],
|
|
181
|
+
input[type="url"],
|
|
182
|
+
input[type="password"],
|
|
183
|
+
textarea,
|
|
184
|
+
select {
|
|
185
|
+
height: 38px;
|
|
186
|
+
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
|
|
187
|
+
background-color: var(--color-bg);
|
|
188
|
+
border: 1px solid var(--color-neutral-2);
|
|
189
|
+
border-radius: var(--border-radius);
|
|
190
|
+
box-shadow: none;
|
|
191
|
+
box-sizing: border-box; }
|
|
192
|
+
input[type="email"],
|
|
193
|
+
input[type="number"],
|
|
194
|
+
input[type="search"],
|
|
195
|
+
input[type="text"],
|
|
196
|
+
input[type="tel"],
|
|
197
|
+
input[type="url"],
|
|
198
|
+
input[type="password"],
|
|
199
|
+
textarea {
|
|
200
|
+
/* Removes awkward default styles on some inputs for iOS */
|
|
201
|
+
-webkit-appearance: none;
|
|
202
|
+
-moz-appearance: none;
|
|
203
|
+
appearance: none; }
|
|
204
|
+
textarea {
|
|
205
|
+
min-height: 65px;
|
|
206
|
+
padding-top: 6px;
|
|
207
|
+
padding-bottom: 6px; }
|
|
208
|
+
input[type="email"]:focus,
|
|
209
|
+
input[type="number"]:focus,
|
|
210
|
+
input[type="search"]:focus,
|
|
211
|
+
input[type="text"]:focus,
|
|
212
|
+
input[type="tel"]:focus,
|
|
213
|
+
input[type="url"]:focus,
|
|
214
|
+
input[type="password"]:focus,
|
|
215
|
+
textarea:focus,
|
|
216
|
+
select:focus {
|
|
217
|
+
border: 1px solid var(--color-primary-light);
|
|
218
|
+
outline: 0; }
|
|
219
|
+
label,
|
|
220
|
+
legend {
|
|
221
|
+
display: block;
|
|
222
|
+
margin-bottom: .5rem;
|
|
223
|
+
font-weight: 600; }
|
|
224
|
+
fieldset {
|
|
225
|
+
padding: 0;
|
|
226
|
+
border-width: 0; }
|
|
227
|
+
input[type="checkbox"],
|
|
228
|
+
input[type="radio"] {
|
|
229
|
+
display: inline; }
|
|
230
|
+
label > .label-body {
|
|
231
|
+
display: inline-block;
|
|
232
|
+
cursor: pointer;
|
|
233
|
+
margin-left: .5rem;
|
|
234
|
+
font-weight: normal; }
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
/* Toggles
|
|
238
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
239
|
+
.toggle {
|
|
240
|
+
font-size: 61%;
|
|
241
|
+
position: relative;
|
|
242
|
+
top: 0.2em; }
|
|
243
|
+
.toggle input[type="checkbox"] {
|
|
244
|
+
appearance: none;
|
|
245
|
+
position: relative;
|
|
246
|
+
display: inline-block;
|
|
247
|
+
box-sizing: content-box;
|
|
248
|
+
width: 4.5em;
|
|
249
|
+
height: 2em;
|
|
250
|
+
padding: 0.2em;
|
|
251
|
+
margin-bottom: 0;
|
|
252
|
+
border: none;
|
|
253
|
+
cursor: pointer;
|
|
254
|
+
border-radius: 1.5em;
|
|
255
|
+
overflow: hidden;
|
|
256
|
+
background-color: var(--color-neutral-4);
|
|
257
|
+
transition: background ease 0.3s; }
|
|
258
|
+
.toggle input[type="checkbox"]:before {
|
|
259
|
+
content: "on off";
|
|
260
|
+
display: block;
|
|
261
|
+
position: absolute;
|
|
262
|
+
z-index: 2;
|
|
263
|
+
width: 2em;
|
|
264
|
+
height: 2em;
|
|
265
|
+
font-family: system-ui;
|
|
266
|
+
font-size: 1em;
|
|
267
|
+
line-height: 2em;
|
|
268
|
+
font-weight: 500;
|
|
269
|
+
text-transform: uppercase;
|
|
270
|
+
text-indent: -2em;
|
|
271
|
+
word-spacing: 2.55em;
|
|
272
|
+
text-shadow: -1px -1px rgba(0,0,0,0.15);
|
|
273
|
+
white-space: nowrap;
|
|
274
|
+
background: var(--color-font-light);
|
|
275
|
+
color: var(--color-font-light);
|
|
276
|
+
border-radius: 1.5em;
|
|
277
|
+
transition: transform cubic-bezier(0.3, 1.5, 0.7, 1) 0.3s; }
|
|
278
|
+
.toggle input[type="checkbox"]:checked {
|
|
279
|
+
background-color: var(--color-primary-light); }
|
|
280
|
+
.toggle input[type="checkbox"]:checked:before {
|
|
281
|
+
transform: translateX(2.5em); }
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
/* Accordion
|
|
285
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
286
|
+
.accordion-tab {
|
|
287
|
+
border: 1px solid var(--color-neutral-2);
|
|
288
|
+
border-radius: var(--border-radius);
|
|
289
|
+
margin-bottom: 0.5rem; }
|
|
290
|
+
.accordion-tab input {
|
|
291
|
+
display: none; }
|
|
292
|
+
.accordion-tab label {
|
|
293
|
+
display: flex;
|
|
294
|
+
justify-content: space-between;
|
|
295
|
+
margin-bottom: 0;
|
|
296
|
+
padding: 5px 5px 5px 10px;
|
|
297
|
+
cursor: pointer; }
|
|
298
|
+
.accordion-tab:not(.accordion-tab--close) label::after {
|
|
299
|
+
content: "\276F";
|
|
300
|
+
color: var(--color-neutral-5);
|
|
301
|
+
width: 1em;
|
|
302
|
+
height: 1em;
|
|
303
|
+
text-align: center; }
|
|
304
|
+
.accordion-tab:not(.accordion-tab--close) input:checked + label::after {
|
|
305
|
+
transform: rotate(90deg); }
|
|
306
|
+
.accordion-tab.accordion-tab--close {
|
|
307
|
+
border: none;
|
|
308
|
+
margin-top: 12px; }
|
|
309
|
+
.accordion-tab.accordion-tab--close label {
|
|
310
|
+
font-size: 75%;
|
|
311
|
+
padding: 0 0 0 10px; }
|
|
312
|
+
.accordion-content {
|
|
313
|
+
max-height: 0;
|
|
314
|
+
overflow: hidden;
|
|
315
|
+
padding: 0 5px 0 10px;
|
|
316
|
+
transition: max-height 650ms; }
|
|
317
|
+
.accordion-content p {
|
|
318
|
+
margin-bottom: 10px; }
|
|
319
|
+
.accordion-content p:first-child {
|
|
320
|
+
margin-top: 15px; }
|
|
321
|
+
.accordion-tab input:checked ~ .accordion-content {
|
|
322
|
+
max-height: 500rem; }
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
/* Lists
|
|
326
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
327
|
+
ul {
|
|
328
|
+
list-style: circle inside; }
|
|
329
|
+
ol {
|
|
330
|
+
list-style: decimal inside; }
|
|
331
|
+
ol, ul {
|
|
332
|
+
padding-left: 0;
|
|
333
|
+
margin-top: 0; }
|
|
334
|
+
ul ul,
|
|
335
|
+
ul ol,
|
|
336
|
+
ol ol,
|
|
337
|
+
ol ul {
|
|
338
|
+
margin: 1.5rem 0 1.5rem 3rem; }
|
|
339
|
+
li {
|
|
340
|
+
margin-bottom: 1rem; }
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
/* Code
|
|
344
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
345
|
+
code {
|
|
346
|
+
padding: 2px 5px;
|
|
347
|
+
margin: 0 2px;
|
|
348
|
+
font-size: 90%;
|
|
349
|
+
white-space: nowrap;
|
|
350
|
+
background: var(--color-neutral-1);
|
|
351
|
+
border: 1px solid var(--color-neutral-2);
|
|
352
|
+
border-radius: var(--border-radius); }
|
|
353
|
+
pre > code {
|
|
354
|
+
display: block;
|
|
355
|
+
padding: 10px 15px;
|
|
356
|
+
white-space: pre; }
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
/* Tables
|
|
360
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
361
|
+
th,
|
|
362
|
+
td {
|
|
363
|
+
padding: 12px 15px;
|
|
364
|
+
text-align: left;
|
|
365
|
+
border-bottom: 1px solid var(--color-neutral-2); }
|
|
366
|
+
th:first-child,
|
|
367
|
+
td:first-child {
|
|
368
|
+
padding-left: 0; }
|
|
369
|
+
th:last-child,
|
|
370
|
+
td:last-child {
|
|
371
|
+
padding-right: 0; }
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
.tooltip {
|
|
375
|
+
cursor: help;
|
|
376
|
+
border-bottom: 1px dotted var(--color-neutral-5);
|
|
377
|
+
position: relative; }
|
|
378
|
+
.tooltip::before,
|
|
379
|
+
.tooltip::after {
|
|
380
|
+
position: absolute;
|
|
381
|
+
left: 50%;
|
|
382
|
+
opacity: 0;
|
|
383
|
+
z-index: -100; }
|
|
384
|
+
.tooltip:hover::before,
|
|
385
|
+
.tooltip:focus::before,
|
|
386
|
+
.tooltip:hover::after,
|
|
387
|
+
.tooltip:focus::after {
|
|
388
|
+
opacity: 1;
|
|
389
|
+
transform: scale(1) translateY(0);
|
|
390
|
+
z-index: 100; }
|
|
391
|
+
.tooltip::before {
|
|
392
|
+
content: "";
|
|
393
|
+
border-style: solid;
|
|
394
|
+
border-width: 1em 0.75em 0 0.75em;
|
|
395
|
+
border-color: var(--color-neutral-6) transparent transparent transparent;
|
|
396
|
+
bottom: 100%;
|
|
397
|
+
margin-left: -0.5em;
|
|
398
|
+
transition: all .65s cubic-bezier(.84, -0.18, 0.31, 1.26), opacity .65s .5s;
|
|
399
|
+
transform: scale(.6) translateY(-90%); }
|
|
400
|
+
.tooltip:hover::before,
|
|
401
|
+
.tooltip:focus::before {
|
|
402
|
+
transition: all .65s cubic-bezier(.84,-0.18,.31,1.26) .2s; }
|
|
403
|
+
.tooltip::after {
|
|
404
|
+
background: var(--color-neutral-6);
|
|
405
|
+
border-radius: var(--border-radius);
|
|
406
|
+
bottom: 180%;
|
|
407
|
+
color: var(--color-font-light);
|
|
408
|
+
content: attr(data-tip);
|
|
409
|
+
margin-left: -8.75em;
|
|
410
|
+
padding: 1em;
|
|
411
|
+
transition: all .65s cubic-bezier(.84,-0.18,.31,1.26) .2s;
|
|
412
|
+
transform: scale(.6) translateY(50%);
|
|
413
|
+
font-size: .9em;
|
|
414
|
+
width: 16em; }
|
|
415
|
+
.tooltip:hover::after,
|
|
416
|
+
.tooltip:focus::after {
|
|
417
|
+
transition: all .65s cubic-bezier(.84,-0.18,.31,1.26); }
|
|
418
|
+
.tooltip.tooltip--sm::after {
|
|
419
|
+
font-size: .75em;
|
|
420
|
+
margin-left: -5em;
|
|
421
|
+
width: 10em; }
|
|
422
|
+
|
|
423
|
+
@media (max-width: 768px) {
|
|
424
|
+
.tooltip::after {
|
|
425
|
+
font-size: .75em;
|
|
426
|
+
margin-left: -5em;
|
|
427
|
+
width: 10em; }
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
/* Spacing
|
|
432
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
433
|
+
button:not(.hljs-copy-button),
|
|
434
|
+
.btn {
|
|
435
|
+
margin-bottom: 1rem; }
|
|
436
|
+
input,
|
|
437
|
+
textarea,
|
|
438
|
+
select,
|
|
439
|
+
fieldset {
|
|
440
|
+
margin-bottom: 1.5rem; }
|
|
441
|
+
pre,
|
|
442
|
+
blockquote,
|
|
443
|
+
dl,
|
|
444
|
+
figure,
|
|
445
|
+
table,
|
|
446
|
+
p,
|
|
447
|
+
ul,
|
|
448
|
+
ol,
|
|
449
|
+
form {
|
|
450
|
+
margin-bottom: 2.5rem; }
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
/* Misc
|
|
454
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
455
|
+
hr {
|
|
456
|
+
margin-top: 30px;
|
|
457
|
+
margin-bottom: 35px;
|
|
458
|
+
border-width: 0;
|
|
459
|
+
border-top: 1px solid var(--color-neutral-2); }
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
#back-to-top {
|
|
463
|
+
display: inline-block;
|
|
464
|
+
background-color: var(--color-primary-light);
|
|
465
|
+
width: 50px;
|
|
466
|
+
height: 50px;
|
|
467
|
+
text-align: center;
|
|
468
|
+
border-radius: var(--border-radius);
|
|
469
|
+
position: fixed;
|
|
470
|
+
bottom: 30px;
|
|
471
|
+
right: 30px;
|
|
472
|
+
transition: background-color 300ms, opacity 500ms, visibility 500ms;
|
|
473
|
+
opacity: 0;
|
|
474
|
+
visibility: hidden;
|
|
475
|
+
z-index: 1000; }
|
|
476
|
+
#back-to-top::after {
|
|
477
|
+
content: "\276F";
|
|
478
|
+
font-weight: normal;
|
|
479
|
+
font-style: normal;
|
|
480
|
+
font-size: 32px;
|
|
481
|
+
line-height: 50px;
|
|
482
|
+
color: var(--color-bg);
|
|
483
|
+
display: inline-block;
|
|
484
|
+
transform: rotate(270deg);
|
|
485
|
+
}
|
|
486
|
+
#back-to-top:hover,
|
|
487
|
+
#back-to-top:active {
|
|
488
|
+
cursor: pointer;
|
|
489
|
+
background-color: var(--color-primary); }
|
|
490
|
+
#back-to-top.back-to-top--show {
|
|
491
|
+
opacity: 1;
|
|
492
|
+
visibility: visible; }
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
/* Utilities
|
|
496
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
497
|
+
.u-full {
|
|
498
|
+
width: 100%;
|
|
499
|
+
box-sizing: border-box; }
|
|
500
|
+
.u-max {
|
|
501
|
+
max-width: 100%;
|
|
502
|
+
box-sizing: border-box; }
|
|
503
|
+
.u-m0 { margin: 0; }
|
|
504
|
+
.u-mt0 { margin-top: 0; }
|
|
505
|
+
.u-mb0 { margin-bottom: 0; }
|
|
506
|
+
.u-ml0 { margin-left: 0; }
|
|
507
|
+
.u-mr0 { margin-right: 0; }
|
|
508
|
+
.u-p0 { padding: 0; }
|
|
509
|
+
.u-pt0 { padding-top: 0; }
|
|
510
|
+
.u-pb0 { padding-bottom: 0; }
|
|
511
|
+
.u-pl0 { padding-left: 0; }
|
|
512
|
+
.u-pr0 { padding-right: 0; }
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
/* Media Queries
|
|
516
|
+
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
|
517
|
+
|
|
518
|
+
/* Larger than phablet (sm) */
|
|
519
|
+
@media (min-width: 640px) {
|
|
520
|
+
.sm-hide {
|
|
521
|
+
display: none !important; }
|
|
522
|
+
}
|
|
523
|
+
@media (max-width: 639px) {
|
|
524
|
+
.sm-show {
|
|
525
|
+
display: none !important; }
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/* Larger than tablet (md) */
|
|
529
|
+
@media (min-width: 768px) {
|
|
530
|
+
.md-hide {
|
|
531
|
+
display: none !important; }
|
|
532
|
+
}
|
|
533
|
+
@media (max-width: 767px) {
|
|
534
|
+
.md-show {
|
|
535
|
+
display: none !important;}
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
/* Larger than desktop (lg) */
|
|
539
|
+
@media (min-width: 1024px) {
|
|
540
|
+
.lg-hide {
|
|
541
|
+
display: none !important; }
|
|
542
|
+
}
|
|
543
|
+
@media (max-width: 1023px) {
|
|
544
|
+
.lg-show {
|
|
545
|
+
display: none !important;}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/* Larger than Desktop HD (xl) */
|
|
549
|
+
@media (min-width: 1280px) {
|
|
550
|
+
.xl-hide {
|
|
551
|
+
display: none !important; }
|
|
552
|
+
}
|
|
553
|
+
@media (max-width: 1279px) {
|
|
554
|
+
.xl-show {
|
|
555
|
+
display: none !important;}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/* Extra large (2xl) */
|
|
559
|
+
@media (min-width: 1536px) {
|
|
560
|
+
.xxl-hide {
|
|
561
|
+
display: none !important; }
|
|
562
|
+
}
|
|
563
|
+
@media (max-width: 1535px) {
|
|
564
|
+
.xxl-show {
|
|
565
|
+
display: none !important;}
|
|
566
|
+
}
|
package/src/wisp.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
function createRipple(event) {
|
|
2
|
+
const btn = event.currentTarget;
|
|
3
|
+
const ripple = document.createElement('span');
|
|
4
|
+
const radius = Math.max(btn.clientWidth, btn.clientHeight) / 2;
|
|
5
|
+
const bounds = btn.getBoundingClientRect();
|
|
6
|
+
|
|
7
|
+
ripple.classList.add('ripple');
|
|
8
|
+
ripple.style.width = ripple.style.height = `${2 * radius}px`;
|
|
9
|
+
ripple.style.left = `${event.clientX - (bounds.left + radius)}px`;
|
|
10
|
+
ripple.style.top = `${event.clientY - (bounds.top + radius)}px`;
|
|
11
|
+
|
|
12
|
+
btn.querySelectorAll('.ripple').forEach(el => el.remove());
|
|
13
|
+
btn.appendChild(ripple);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function handleScroll(btt) {
|
|
17
|
+
return function () {
|
|
18
|
+
if (document.documentElement.scrollTop > 300) {
|
|
19
|
+
btt.classList.add('back-to-top--show');
|
|
20
|
+
} else {
|
|
21
|
+
btt.classList.remove('back-to-top--show');
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function handleClick(event) {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
document.documentElement.scrollIntoView({
|
|
29
|
+
behavior: 'smooth',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const ready = cb => {
|
|
34
|
+
if (document.readyState !== 'loading') cb();
|
|
35
|
+
else document.addEventListener('DOMContentLoaded', cb);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
ready(() => {
|
|
39
|
+
document.querySelectorAll('.btn--ripple').forEach(el => {
|
|
40
|
+
el.addEventListener('click', createRipple);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const btt = document.querySelector('#back-to-top');
|
|
44
|
+
if (btt) {
|
|
45
|
+
document.addEventListener('scroll', handleScroll(btt));
|
|
46
|
+
btt.addEventListener('click', handleClick);
|
|
47
|
+
}
|
|
48
|
+
});
|