From 76f6a77e22c2c0fb1ee4625e9aede9c7aa58938d Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Wed, 28 Feb 2018 12:08:50 +0200 Subject: [PATCH] Remove built files --- dist/527b39bfa5c417dbf84620127ec95368.png | Bin 2628 -> 0 bytes dist/5f62c8cc1947e40c7e328854a3026c04.png | Bin 35911 -> 0 bytes dist/e5eecc0ff495d3dfb2c9cc2b763389dc.html | 1046 ------------- dist/f06fd0495a34430f242f7611190395d6.css | 1621 -------------------- dist/f06fd0495a34430f242f7611190395d6.js | 1479 ------------------ dist/f06fd0495a34430f242f7611190395d6.map | 1 - 6 files changed, 4147 deletions(-) delete mode 100644 dist/527b39bfa5c417dbf84620127ec95368.png delete mode 100644 dist/5f62c8cc1947e40c7e328854a3026c04.png delete mode 100644 dist/e5eecc0ff495d3dfb2c9cc2b763389dc.html delete mode 100644 dist/f06fd0495a34430f242f7611190395d6.css delete mode 100644 dist/f06fd0495a34430f242f7611190395d6.js delete mode 100644 dist/f06fd0495a34430f242f7611190395d6.map diff --git a/dist/527b39bfa5c417dbf84620127ec95368.png b/dist/527b39bfa5c417dbf84620127ec95368.png deleted file mode 100644 index ba68eb7becf9dda2ff31c9d8f7fdb88e9b66536a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 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 diff --git a/dist/5f62c8cc1947e40c7e328854a3026c04.png b/dist/5f62c8cc1947e40c7e328854a3026c04.png deleted file mode 100644 index f27b9309101bac82fef1228e0d1d2cf6de3b3a12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35911 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 diff --git a/dist/e5eecc0ff495d3dfb2c9cc2b763389dc.html b/dist/e5eecc0ff495d3dfb2c9cc2b763389dc.html deleted file mode 100644 index 6d6ebeace..000000000 --- a/dist/e5eecc0ff495d3dfb2c9cc2b763389dc.html +++ /dev/null @@ -1,1046 +0,0 @@ - - - - - 30 Seconds of CSS - - - - - - -

-
-
-
- -

30 Seconds of CSS

-

- A curated collection of useful CSS snippets you can understand in 30 seconds or less. -

- - - Star -
-
-
-
-
-

Clearfix

-

Ensures that an element self-clears its children.

-
Note: This is only useful if you are still using float to build layouts. Please consider using a modern approach with flexbox layout or grid layout.
-

HTML

<div class="clearfix">
-  <div class="floated">float a</div>
-  <div class="floated">float b</div>
-  <div class="floated">float c</div>
-</div>
-
-

CSS

.clearfix::after {
-  content: "";
-  display: block;
-  clear: both;
-}
-.floated {
-  float: left;
-}
-
-

Demo

-
-
-
float a
-
float b
-
float c
-
-
- -

Explanation

-
    -
  1. .clearfix::after defines a pseudo-element.
  2. -
  3. content: '' allows the pseudo-element to affect layout.
  4. -
  5. clear: both indicates that the left, right or both sides of the element cannot be adjacent to earlier floated elements within the same block formatting context.
  6. -
-

Browser support

-
-
- 99+% -
-
-

✅ No caveats.

-
-
-

Constant width to height ratio

-

Given an element of variable width, it will ensure its height remains proportionate in a responsive fashion (i.e., its width to height ratio remains constant).

-

HTML

<div class="constant-width-to-height-ratio"></div>
-
-

CSS

.constant-width-to-height-ratio {
-  background: #333;
-  width: 50%;
-  padding-top: 50%;
-}
-
-

Demo

-

Resize your browser window to see the proportion of the element remain the same.

-
-
-
- -

Explanation

-

padding-top and padding-bottom can be used as an alternative to height such that the percentage value causes an element's height to become a percentage of its parent's width, i.e. 50% means - the height will be 50% of the parent element's width, which means it acts the same as width. This allows its proportion to remain constant.

-

Browser support

-
-
- 99+% -
-
-

⚠️ padding-top pushes any content within the element to the bottom.

-
-
-

Custom text selection

-

Changes the styling of text selection.

-

HTML

<p class="custom-text-selection">Select some of this text.</p>
-
-

CSS

::selection {
-  background: aquamarine;
-  color: black;
-}
-.custom-text-selection::selection {
-  background: deeppink;
-  color: white;
-}
-
-

Demo

-
-

Select some of this text.

-
- -

Explanation

-

::selection defines a pseudo selector on an element to style text within it when selected. Note that if you don't combine any other selector your style will be applied at document root level, to any selectable element.

-

Browser support

-
-
- 84.6% -
-
-

⚠️ Requires prefixes for full support and is not actually -in any specification.

- -
-
-

Easing variables

-

Variables that can be reused for transition-timing-function properties, more powerful than the built-in ease, ease-in, ease-out and ease-in-out.

-

HTML

<div class="easing-variables"></div>
-
-

CSS

:root {
-  --ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
-  --ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
-  --ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
-  --ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-  --ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
-  --ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
-  --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
-  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
-  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
-  --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
-  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
-  --ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
-  --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
-  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
-  --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
-  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
-  --ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
-  --ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
-}
-.easing-variables {
-  width: 50px;
-  height: 50px;
-  background: #333;
-  transition: transform 1s var(--ease-out-quart);
-}
-.easing-variables:hover {
-  transform: rotate(45deg);
-}
-
-

Demo

-
-
Hover
-
- -

Explanation

-

The variables are defined globally within the :root CSS pseudo-class which matches the root element of a tree representing the document. In HTML, :root represents the <html> element and is identical - to the selector html, except that its specificity is higher.

-

Browser support

-
-
- 87.2% -
-
-

✅ No caveats.

- -
-
-

Etched text

-

Creates an effect where text appears to be "etched" or engraved into the background.

-

HTML

<p class="etched-text">I appear etched into the background.</p>
-
-

CSS

.etched-text {
-  text-shadow: 0 2px white;
-  font-size: 1.5rem;
-  font-weight: bold;
-  color: #b8bec5;
-}
-
-

Demo

-
-

I appear etched into the background.

-
- -

Explanation

-

text-shadow: 0 2px white creates a white shadow offset 0px horizontally and 2px vertically from the origin position.

-

The background must be darker than the shadow for the effect to work.

-

The text color should be slightly faded to make it look like it's engraved/carved out of the background.

-

Browser support

-
-
- 97.9% -
-
-

✅ No caveats.

- -
-
-

Gradient text

-

Gives text a gradient color.

-

HTML

<p class="gradient-text">Gradient text</p>
-
-

CSS

.gradient-text {
-  background: -webkit-linear-gradient(pink, red);
-  -webkit-text-fill-color: transparent;
-  -webkit-background-clip: text;
-}
-
-

Demo

-
-

- Gradient text -

-
- -

Explanation

-
    -
  1. background: -webkit-linear-gradient(...) gives the text element a gradient background.
  2. -
  3. webkit-text-fill-color: transparent fills the text with a transparent color.
  4. -
  5. webkit-background-clip: text clips the background with the text, filling the text with the gradient background as the color.
  6. -
-

Browser support

-
-
- 90.7% -
-
-

⚠️ Uses non-standard properties.

- -
-
-

Hairline border

-

Gives an element a border equal to 1 native device pixel in width, which can look very sharp and crisp.

-

HTML

<div class="hairline-border">text</div>
-
-

CSS

.hairline-border {
-  box-shadow: 0 0 0 1px;
-}
-@media (min-resolution: 2dppx) {
-  .hairline-border {
-    box-shadow: 0 0 0 0.5px;
-  }
-}
-@media (min-resolution: 3dppx) {
-  .hairline-border {
-    box-shadow: 0 0 0 0.33333333px;
-  }
-}
-@media (min-resolution: 4dppx) {
-  .hairline-border {
-    box-shadow: 0 0 0 0.25px;
-  }
-}
-
-

Demo

-
-

Text with a hairline border around it.

-
- -

Explanation

-
    -
  1. box-shadow, when only using spread, adds a psuedo-border which can use subpixels*.
  2. -
  3. Use @media (min-resolution: ...) to check the device pixel ratio (1ddpx equals 96 DPI), setting the spread of the box-shadow equal to 1 / dppx.
  4. -
-

Browser Support

-
-
- 95.0% -
-
-

⚠️ Needs alternate syntax and JavaScript user agent checking for full support.

- -
-

*Chrome does not support subpixel values on border. Safari does not support subpixel values on box-shadow. Firefox supports subpixel values on both.

-
-
-

Horizontal and vertical centering

-

Horizontally and vertically centers a child element within a parent element.

-

HTML

<div class="horizontal-and-vertical-centering">
-  <div class="child"></div>
-</div>
-
-

CSS

.horizontal-and-vertical-centering {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-
-

Demo

-
-
-

Centered content.

-
-
- -

Explanation

-
    -
  1. display: flex enables flexbox.
  2. -
  3. justify-content: center centers the child horizontally.
  4. -
  5. align-items: center centers the child vertically.
  6. -
-

Browser support

-
-
- 97.8% -
-
-

⚠️ Needs prefixes for full support.

- -
-
-

Mouse cursor gradient tracking

-

A hover effect where the gradient follows the mouse cursor.

-

HTML

<button class="mouse-cursor-gradient-tracking">
-  <span>Hover me</span>
-</button>
-
-

CSS

.mouse-cursor-gradient-tracking {
-  position: relative;
-  background: #2379f7;
-  padding: 0.5rem 1rem;
-  font-size: 1.2rem;
-  border: none;
-  color: white;
-  cursor: pointer;
-  outline: none;
-  overflow: hidden;
-}
-.mouse-cursor-gradient-tracking span {
-  position: relative;
-}
-.mouse-cursor-gradient-tracking::before {
-  --size: 0;
-  content: '';
-  position: absolute;
-  left: var(--x);
-  top: var(--y);
-  width: var(--size);
-  height: var(--size);
-  background: radial-gradient(circle closest-side, pink, transparent);
-  transform: translate(-50%, -50%);
-  transition: width .2s ease, height .2s ease;
-}
-.mouse-cursor-gradient-tracking:hover::before {
-  --size: 200px;
-}
-
-

JavaScript

var btn = document.querySelector('.mouse-cursor-gradient-tracking')
-btn.onmousemove = function (e) {
-  var x = e.pageX - btn.offsetLeft
-  var y = e.pageY - btn.offsetTop
-  btn.style.setProperty('--x', x + 'px')
-  btn.style.setProperty('--y', y + 'px')
-}
-
-

Demo

-
- -
- - -

Explanation

-

TODO

-

Note!

-

If the element's parent has a positioning context (position: relative), you will need to subtract its offsets as well.

-
var x = e.pageX - btn.offsetLeft - btn.offsetParent.offsetLeft
-var y = e.pageY - btn.offsetTop - btn.offsetParent.offsetTop
-
-

Browser support

-
-
- 87.2% -
-
-

-
Requires JavaScript
- ⚠️ Requires JavaScript. -

- -
-
-

Overflow scroll gradient

-

Adds a fading gradient to an overflowing element to better indicate there is more content to be scrolled.

-

HTML

<div class="overflow-scroll-gradient">
-  <div class="overflow-scroll-gradient__scroller">
-    Content to be scrolled
-  </div>
-</div>
-
-

CSS

.overflow-scroll-gradient {
-  position: relative;
-}
-.overflow-scroll-gradient::after {
-  content: '';
-  position: absolute;
-  bottom: 0;
-  width: 300px;
-  height: 25px;
-  background: linear-gradient(rgba(255, 255, 255, 0.001), white); /* transparent keyword is broken in Safari */
-}
-.overflow-scroll-gradient__scroller {
-  overflow-y: scroll;
-  background: white;
-  width: 300px;
-  height: 250px;
-  padding: 15px 0;
-  line-height: 1.2;
-  text-align: center;
-}
-
-

Demo

-
-
-
- Content to be scrolled -
-
-
- - -

Explanation

-
    -
  1. position: relative on the parent establishes a Cartesian positioning context for psuedo elements.
  2. -
  3. ::after defines a pseudo element.
  4. -
  5. background-image: linear-gradient(...) adds a linear gradient that fades from transparent to white (top to bottom).
  6. -
  7. position: absolute takes the pseudo element out of the flow of the document and positions it in relation to the parent.
  8. -
  9. width: 300px matches the size of the scrolling element (which is a child of the parent that has the pseudo element).
  10. -
  11. height: 25px is the height of the fading gradient psuedo element, which should be kept relatively small.
  12. -
  13. bottom: 0 positions the pseudo element at the bottom of the parent.
  14. -
-

Browser support

-
-
- 94.8% -
-
-

✅ No caveats.

- -
-
-

Popout menu

-

Reveals an interactive popout menu on hover.

-

HTML

<div class="reference">
-  <div class="popout-menu">
-    Popout menu
-  </div>
-</div>
-
-

CSS

.reference {
-  position: relative;
-}
-.popout-menu {
-  position: absolute;
-  visibility: hidden;
-  left: 100%;
-}
-.reference:hover > .popout-menu {
-  visibility: visible;
-}
-
-

Demo

-
-
-
- Popout menu -
-
-
- -

Explanation

-
    -
  1. position: relative on the reference parent establishes a Cartesian positioning context for its child.
  2. -
  3. position: absolute takes the popout menu out of the flow of the document and positions it in relation to the parent.
  4. -
  5. left: 100% moves the the popout menu 100% of its parent's width from the left.
  6. -
  7. visibility: hidden hides the popout menu initially and allows for transitions (unlike display: none).
  8. -
  9. .reference:hover > .popout-menu means that when .reference is hovered over, select immediate children with a class of .popout-menu and change their visibility to visible, - which shows the popout.
  10. -
-

Browser support

-
-
- 99+% -
-
-

✅ No caveats.

-
-
-

Pretty text underline

-

A nicer alternative to text-decoration: underline where descenders do not clip the underline. Natively implemented as text-decoration-skip-ink: auto but it has less control over the underline.

-

HTML

<p class="pretty-text-underline">Pretty text underline without clipping descending letters.</p>
-
-

CSS

.pretty-text-underline {
-  display: inline;
-  font-size: 1.25rem;
-  text-shadow: 1px 1px 0 #f5f6f9,
-    -1px 1px 0 #f5f6f9,
-    -1px -1px 0 #f5f6f9,
-    1px -1px 0 #f5f6f9;
-  background-image: linear-gradient(90deg, currentColor 100%, transparent 100%);
-  background-position: 0 1.04em;
-  background-repeat: repeat-x;
-  background-size: 1px 1px;
-}
-.pretty-text-underline::-moz-selection {
-  background-color: rgba(0, 150, 255, 0.3);
-  text-shadow: none;
-}
-.pretty-text-underline::selection {
-  background-color: rgba(0, 150, 255, 0.3);
-  text-shadow: none;
-}
-
-

Demo

-
-

Pretty text underline without clipping descending letters.

-
- -

Explanation

-
    -
  1. text-shadow: ... has 4 values with offsets that cover a 4x4 px area to ensure the underline has a "thick" shadow that covers the line where descenders clip it. Use a color that matches the background. For a larger font, use - a larger px size.
  2. -
  3. background-image: linear-gradient(...) creates a 90deg gradient with the current text color (currentColor).
  4. -
  5. The background-* properties size the gradient as 1x1px at the bottom and repeats it along the x-axis.
  6. -
  7. The ::selection pseudo selector ensures the text shadow does not interfere with text selection. -
  8. -
-

Browser support

-
-
- 94.8% -
-
-

⚠️ Firefox requires a vendor prefix for the selection pseudo-selector to work.

- -
-
-

Shape separator

-

Uses an SVG shape to separate two different blocks to create more a interesting visual appearance compared to standard horizontal separation.

-

HTML

<div class="shape-separator"></div>
-
-

CSS

.shape-separator {
-  position: relative;
-  height: 48px;
-}
-.shape-separator::after {
-  content: '';
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjQxNCI+PHBhdGggZD0iTTEyIDEybDEyIDEySDBsMTItMTJ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+);
-  position: absolute;
-  width: 100%;
-  height: 24px;
-  bottom: 0;
-}
-
-

Demo

-
-
-
- -

Explanation

-
    -
  1. position: relative on the element establishes a Cartesian positioning context for psuedo elements.
  2. -
  3. ::after defines a pseudo element.
  4. -
  5. background-image: url(...) adds the SVG shape (a 24x24 triangle in base64 format) as the background image of the psuedo element, which repeats by default. It must be the same color as the block that is being separated. -
  6. -
  7. position: absolute takes the pseudo element out of the flow of the document and positions it in relation to the parent.
  8. -
  9. width: 100% ensures the element stretches the entire width of its parent.
  10. -
  11. height: 24px is the same height as the shape.
  12. -
  13. bottom: 0 positions the pseudo element at the bottom of the parent.
  14. -
-

Browser support

-
-
- 98.0% -
-
-

✅ No caveats.

- -
-
-

System font stack

-

Uses the native font of the operating system to get close to a native app feel.

-

HTML

<p class="system-font-stack">This text uses the system font.</p>
-
-

CSS

.system-font-stack {
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-
-

Demo

-
-

This text uses the system font.

-
- -

Explanation

-

The browser looks for each successive font, preferring the first one if possible, and falls back to the next if it cannot find the font (on the system or defined in CSS).

-
    -
  1. -apple-system is San Francisco, used on iOS and macOS (not Chrome however)
  2. -
  3. BlinkMacSystemFont is San Francisco, used on macOS Chrome
  4. -
  5. Segoe UI is used on Windows 10
  6. -
  7. Roboto is used on Android
  8. -
  9. Oxygen-Sans is used on GNU+Linux
  10. -
  11. Ubuntu is used on Linux
  12. -
  13. "Helvetica Neue" and Helvetica is used on macOS 10.10 and below (wrapped in quotes because it has a space)
  14. -
  15. Arial is a font widely supported by all operating systems
  16. -
  17. sans-serif is the fallback sans-serif font if none of the other fonts are supported
  18. -
-

Browser support

-
-
- 99+% -
-
-

✅ No caveats.

-
-
-

Triangle

-

Creates a triangle shape with pure CSS.

-

HTML

<div class="triangle"></div>
-
-

CSS

.triangle {
-  width: 0;
-  height: 0;
-  border-top: 20px solid #333;
-  border-left: 20px solid transparent;
-  border-right: 20px solid transparent;
-}
-
-

Demo

-
-
-
-
-
-
-
-
-
- -

Explanation

-

- View this link for a detailed explanation. -

-

The color of the border is the color of the triangle. The side the triangle tip points corresponds to the opposite border-* property. For example, a color on border-top means the arrow points downward.

-

Experiment with the px values to change the proportion of the triangle.

-

Browser support

-
-
- 99+% -
-
-

✅ No caveats.

-
-
-

Truncate text

-

If the text is longer than one line, it will be truncated and end with an ellipsis .

-

HTML

<p class="truncate-text">If I exceed one line's width, I will be truncated.</p>
-
-

CSS

.truncate-text {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-
-

Demo

-
-

- This text will be truncated if it exceeds 200px in width. -

-
- -

Explanation

-
    -
  1. overflow: hidden prevents the text from overflowing its dimensions (for a block, 100% width and auto height).
  2. -
  3. white-space: nowrap prevents the text from exceeding one line in height.
  4. -
  5. text-overflow: ellipsis makes it so that if the text exceeds its dimensions, it will end with an ellipsis.
  6. -
-

Browser support

-
-
- 98.1% -
-
-

✅ No caveats.

- -
-
-
-
-
- - \ No newline at end of file diff --git a/dist/f06fd0495a34430f242f7611190395d6.css b/dist/f06fd0495a34430f242f7611190395d6.css deleted file mode 100644 index 96d98ca15..000000000 --- a/dist/f06fd0495a34430f242f7611190395d6.css +++ /dev/null @@ -1,1621 +0,0 @@ -/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} -code[class*='language-'], -pre[class*='language-'] { - color: rgb(50, 75, 100); - background: none; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 2; - font-size: 1rem; - -webkit-overflow-scrolling: touch; - margin: 0; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*='language-']::-moz-selection, -pre[class*='language-'] ::-moz-selection, -code[class*='language-']::-moz-selection, -code[class*='language-'] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*='language-']::selection, -pre[class*='language-'] ::selection, -code[class*='language-']::selection, -code[class*='language-'] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - code[class*='language-'], - pre[class*='language-'] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*='language-'] { - overflow: auto; - padding: 0.75rem 1.25rem; -} - -pre.is-option { - margin: 0; - padding: 0; -} - -:not(pre) > code[class*='language-'], -pre[class*='language-'] { - background: #f5f6f9; - border-radius: 0.25rem; -} - -/* Inline code */ -:not(pre) > code[class*='language-'] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #8ca2d3; -} - -.token.selector, -.token.attr-name { - color: #da7800; -} - -.token.punctuation { - color: #93a0c7; -} - -.namespace { - opacity: 0.7; -} - -.token.tag { - color: #e22f70; -} - -.token.property, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #0087ca; -} - -.token.string, -.language-css .token.string, -.token.url, -.token.attr-value, -.token.char, -.token.builtin, -.token.inserted { - color: #008a7e; -} - -.token.operator, -.token.entity, -.style .token.string { - color: #f53737; -} - -.token.important, -.token.atrule, -.token.keyword { - color: #7552ff; -} - -.token.function { - color: #396dff; -} - -.token.regex, -.token.variable { - color: #00a8d4; -} - -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} -html { - font-size: 0.95rem; } - -body { - font-family: -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, 'Helvetica Neue', Helvetica, Arial, sans-serif; - background: #f6f7fd; - color: #324b64; - line-height: 1.5; } - -a { - color: #157bda; - text-decoration: none; - word-wrap: break-word; - overflow-wrap: break-word; } - a:hover { - color: #0090ff; } - -hr { - border: 0; - border-top: 1px solid rgba(0, 32, 128, 0.1); } - -ul, -ol { - padding-left: 1.25rem; } - -.container { - max-width: 1000px; - padding: 0 2%; - margin: 0 auto; } - -.main > .container { - padding: 0; } - -@media (min-width: 579px) { - .main > .container { - padding: 0 2%; } } - -@media (min-width: 768px) { - html { - font-size: 1rem; } } - -@media (min-width: 992px) { - .content-wrapper { - margin-left: 200px; } } - -/*! - * Hamburgers - * @description Tasty CSS-animated hamburgers - * @author Jonathan Suh @jonsuh - * @site https://jonsuh.com/hamburgers - * @link https://github.com/jonsuh/hamburgers - */ -.hamburger { - padding: 1rem; - display: inline-block; - cursor: pointer; - transition-property: opacity, filter; - transition-duration: 0.15s; - transition-timing-function: linear; - font: inherit; - color: inherit; - text-transform: none; - background-color: transparent; - border: 0; - margin: 0; - overflow: visible; - outline: 0; } - -.hamburger:hover { - opacity: 0.7; } - -.hamburger-box { - width: 40px; - height: 20px; - display: inline-block; - position: relative; } - -.hamburger-inner { - display: block; - top: 50%; } - -.hamburger-inner, -.hamburger-inner::before, -.hamburger-inner::after { - width: 36px; - height: 2px; - background-color: #e3f5ff; - border-radius: 4px; - position: absolute; - transition-property: transform; - transition-duration: 0.15s; - transition-timing-function: ease; } - -.hamburger-inner::before, -.hamburger-inner::after { - content: ''; - display: block; } - -.hamburger-inner::before { - top: -10px; } - -.hamburger-inner::after { - bottom: -10px; } - -/* - * 3DX - */ -.hamburger--3dx .hamburger-box { - perspective: 80px; } - -.hamburger--3dx .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dx .hamburger-inner::before, -.hamburger--3dx .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dx.is-active .hamburger-inner { - background-color: transparent; - transform: rotateY(180deg); } - -.hamburger--3dx.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dx.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * 3DX Reverse - */ -.hamburger--3dx-r .hamburger-box { - perspective: 80px; } - -.hamburger--3dx-r .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dx-r .hamburger-inner::before, -.hamburger--3dx-r .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dx-r.is-active .hamburger-inner { - background-color: transparent; - transform: rotateY(-180deg); } - -.hamburger--3dx-r.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dx-r.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * 3DY - */ -.hamburger--3dy .hamburger-box { - perspective: 80px; } - -.hamburger--3dy .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dy .hamburger-inner::before, -.hamburger--3dy .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dy.is-active .hamburger-inner { - background-color: transparent; - transform: rotateX(-180deg); } - -.hamburger--3dy.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dy.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * 3DY Reverse - */ -.hamburger--3dy-r .hamburger-box { - perspective: 80px; } - -.hamburger--3dy-r .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dy-r .hamburger-inner::before, -.hamburger--3dy-r .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dy-r.is-active .hamburger-inner { - background-color: transparent; - transform: rotateX(180deg); } - -.hamburger--3dy-r.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dy-r.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * 3DXY - */ -.hamburger--3dxy .hamburger-box { - perspective: 80px; } - -.hamburger--3dxy .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dxy .hamburger-inner::before, -.hamburger--3dxy .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dxy.is-active .hamburger-inner { - background-color: transparent; - transform: rotateX(180deg) rotateY(180deg); } - -.hamburger--3dxy.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dxy.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * 3DXY Reverse - */ -.hamburger--3dxy-r .hamburger-box { - perspective: 80px; } - -.hamburger--3dxy-r .hamburger-inner { - transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dxy-r .hamburger-inner::before, -.hamburger--3dxy-r .hamburger-inner::after { - transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); } - -.hamburger--3dxy-r.is-active .hamburger-inner { - background-color: transparent; - transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg); } - -.hamburger--3dxy-r.is-active .hamburger-inner::before { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--3dxy-r.is-active .hamburger-inner::after { - transform: translate3d(0, -10px, 0) rotate(-45deg); } - -/* - * Arrow - */ -.hamburger--arrow.is-active .hamburger-inner::before { - transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); } - -.hamburger--arrow.is-active .hamburger-inner::after { - transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); } - -/* - * Arrow Right - */ -.hamburger--arrow-r.is-active .hamburger-inner::before { - transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); } - -.hamburger--arrow-r.is-active .hamburger-inner::after { - transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); } - -/* - * Arrow Alt - */ -.hamburger--arrowalt .hamburger-inner::before { - transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); } - -.hamburger--arrowalt .hamburger-inner::after { - transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); } - -.hamburger--arrowalt.is-active .hamburger-inner::before { - top: 0; - transform: translate3d(-8px, -10px, 0) rotate(-45deg) scale(0.7, 1); - transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); } - -.hamburger--arrowalt.is-active .hamburger-inner::after { - bottom: 0; - transform: translate3d(-8px, 10px, 0) rotate(45deg) scale(0.7, 1); - transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); } - -/* - * Arrow Alt Right - */ -.hamburger--arrowalt-r .hamburger-inner::before { - transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); } - -.hamburger--arrowalt-r .hamburger-inner::after { - transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); } - -.hamburger--arrowalt-r.is-active .hamburger-inner::before { - top: 0; - transform: translate3d(8px, -10px, 0) rotate(45deg) scale(0.7, 1); - transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); } - -.hamburger--arrowalt-r.is-active .hamburger-inner::after { - bottom: 0; - transform: translate3d(8px, 10px, 0) rotate(-45deg) scale(0.7, 1); - transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); } - -/* - * Arrow Turn - */ -.hamburger--arrowturn.is-active .hamburger-inner { - transform: rotate(-180deg); } - -.hamburger--arrowturn.is-active .hamburger-inner::before { - transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); } - -.hamburger--arrowturn.is-active .hamburger-inner::after { - transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); } - -/* - * Arrow Turn Right - */ -.hamburger--arrowturn-r.is-active .hamburger-inner { - transform: rotate(-180deg); } - -.hamburger--arrowturn-r.is-active .hamburger-inner::before { - transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); } - -.hamburger--arrowturn-r.is-active .hamburger-inner::after { - transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); } - -/* - * Boring - */ -.hamburger--boring .hamburger-inner, -.hamburger--boring .hamburger-inner::before, -.hamburger--boring .hamburger-inner::after { - transition-property: none; } - -.hamburger--boring.is-active .hamburger-inner { - transform: rotate(45deg); } - -.hamburger--boring.is-active .hamburger-inner::before { - top: 0; - opacity: 0; } - -.hamburger--boring.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(-90deg); } - -/* - * Collapse - */ -.hamburger--collapse .hamburger-inner { - top: auto; - bottom: 0; - transition-duration: 0.13s; - transition-delay: 0.13s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--collapse .hamburger-inner::after { - top: -20px; - transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; } - -.hamburger--collapse .hamburger-inner::before { - transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--collapse.is-active .hamburger-inner { - transform: translate3d(0, -10px, 0) rotate(-45deg); - transition-delay: 0.22s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--collapse.is-active .hamburger-inner::after { - top: 0; - opacity: 0; - transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; } - -.hamburger--collapse.is-active .hamburger-inner::before { - top: 0; - transform: rotate(-90deg); - transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Collapse Reverse - */ -.hamburger--collapse-r .hamburger-inner { - top: auto; - bottom: 0; - transition-duration: 0.13s; - transition-delay: 0.13s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--collapse-r .hamburger-inner::after { - top: -20px; - transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; } - -.hamburger--collapse-r .hamburger-inner::before { - transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--collapse-r.is-active .hamburger-inner { - transform: translate3d(0, -10px, 0) rotate(45deg); - transition-delay: 0.22s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--collapse-r.is-active .hamburger-inner::after { - top: 0; - opacity: 0; - transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; } - -.hamburger--collapse-r.is-active .hamburger-inner::before { - top: 0; - transform: rotate(90deg); - transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Elastic - */ -.hamburger--elastic .hamburger-inner { - top: 2px; - transition-duration: 0.275s; - transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); } - -.hamburger--elastic .hamburger-inner::before { - top: 10px; - transition: opacity 0.125s 0.275s ease; } - -.hamburger--elastic .hamburger-inner::after { - top: 20px; - transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); } - -.hamburger--elastic.is-active .hamburger-inner { - transform: translate3d(0, 10px, 0) rotate(135deg); - transition-delay: 0.075s; } - -.hamburger--elastic.is-active .hamburger-inner::before { - transition-delay: 0s; - opacity: 0; } - -.hamburger--elastic.is-active .hamburger-inner::after { - transform: translate3d(0, -20px, 0) rotate(-270deg); - transition-delay: 0.075s; } - -/* - * Elastic Reverse - */ -.hamburger--elastic-r .hamburger-inner { - top: 2px; - transition-duration: 0.275s; - transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); } - -.hamburger--elastic-r .hamburger-inner::before { - top: 10px; - transition: opacity 0.125s 0.275s ease; } - -.hamburger--elastic-r .hamburger-inner::after { - top: 20px; - transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); } - -.hamburger--elastic-r.is-active .hamburger-inner { - transform: translate3d(0, 10px, 0) rotate(-135deg); - transition-delay: 0.075s; } - -.hamburger--elastic-r.is-active .hamburger-inner::before { - transition-delay: 0s; - opacity: 0; } - -.hamburger--elastic-r.is-active .hamburger-inner::after { - transform: translate3d(0, -20px, 0) rotate(270deg); - transition-delay: 0.075s; } - -/* - * Emphatic - */ -.hamburger--emphatic { - overflow: hidden; } - -.hamburger--emphatic .hamburger-inner { - transition: background-color 0.125s 0.175s ease-in; } - -.hamburger--emphatic .hamburger-inner::before { - left: 0; - transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in; } - -.hamburger--emphatic .hamburger-inner::after { - top: 10px; - right: 0; - transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in; } - -.hamburger--emphatic.is-active .hamburger-inner { - transition-delay: 0s; - transition-timing-function: ease-out; - background-color: transparent; } - -.hamburger--emphatic.is-active .hamburger-inner::before { - left: -80px; - top: -80px; - transform: translate3d(80px, 80px, 0) rotate(45deg); - transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); } - -.hamburger--emphatic.is-active .hamburger-inner::after { - right: -80px; - top: -80px; - transform: translate3d(-80px, 80px, 0) rotate(-45deg); - transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); } - -/* - * Emphatic Reverse - */ -.hamburger--emphatic-r { - overflow: hidden; } - -.hamburger--emphatic-r .hamburger-inner { - transition: background-color 0.125s 0.175s ease-in; } - -.hamburger--emphatic-r .hamburger-inner::before { - left: 0; - transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in; } - -.hamburger--emphatic-r .hamburger-inner::after { - top: 10px; - right: 0; - transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in; } - -.hamburger--emphatic-r.is-active .hamburger-inner { - transition-delay: 0s; - transition-timing-function: ease-out; - background-color: transparent; } - -.hamburger--emphatic-r.is-active .hamburger-inner::before { - left: -80px; - top: 80px; - transform: translate3d(80px, -80px, 0) rotate(-45deg); - transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); } - -.hamburger--emphatic-r.is-active .hamburger-inner::after { - right: -80px; - top: 80px; - transform: translate3d(-80px, -80px, 0) rotate(45deg); - transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); } - -/* - * Minus - */ -.hamburger--minus .hamburger-inner::before, -.hamburger--minus .hamburger-inner::after { - transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear; } - -.hamburger--minus.is-active .hamburger-inner::before, -.hamburger--minus.is-active .hamburger-inner::after { - opacity: 0; - transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear; } - -.hamburger--minus.is-active .hamburger-inner::before { - top: 0; } - -.hamburger--minus.is-active .hamburger-inner::after { - bottom: 0; } - -/* - * Slider - */ -.hamburger--slider .hamburger-inner { - top: 2px; } - -.hamburger--slider .hamburger-inner::before { - top: 10px; - transition-property: transform, opacity; - transition-timing-function: ease; - transition-duration: 0.15s; } - -.hamburger--slider .hamburger-inner::after { - top: 20px; } - -.hamburger--slider.is-active .hamburger-inner { - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--slider.is-active .hamburger-inner::before { - transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0); - opacity: 0; } - -.hamburger--slider.is-active .hamburger-inner::after { - transform: translate3d(0, -20px, 0) rotate(-90deg); } - -/* - * Slider Reverse - */ -.hamburger--slider-r .hamburger-inner { - top: 2px; } - -.hamburger--slider-r .hamburger-inner::before { - top: 10px; - transition-property: transform, opacity; - transition-timing-function: ease; - transition-duration: 0.15s; } - -.hamburger--slider-r .hamburger-inner::after { - top: 20px; } - -.hamburger--slider-r.is-active .hamburger-inner { - transform: translate3d(0, 10px, 0) rotate(-45deg); } - -.hamburger--slider-r.is-active .hamburger-inner::before { - transform: rotate(45deg) translate3d(5.71429px, -6px, 0); - opacity: 0; } - -.hamburger--slider-r.is-active .hamburger-inner::after { - transform: translate3d(0, -20px, 0) rotate(90deg); } - -/* - * Spin - */ -.hamburger--spin .hamburger-inner { - transition-duration: 0.22s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spin .hamburger-inner::before { - transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; } - -.hamburger--spin .hamburger-inner::after { - transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spin.is-active .hamburger-inner { - transform: rotate(225deg); - transition-delay: 0.12s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--spin.is-active .hamburger-inner::before { - top: 0; - opacity: 0; - transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; } - -.hamburger--spin.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(-90deg); - transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Spin Reverse - */ -.hamburger--spin-r .hamburger-inner { - transition-duration: 0.22s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spin-r .hamburger-inner::before { - transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; } - -.hamburger--spin-r .hamburger-inner::after { - transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spin-r.is-active .hamburger-inner { - transform: rotate(-225deg); - transition-delay: 0.12s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--spin-r.is-active .hamburger-inner::before { - top: 0; - opacity: 0; - transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; } - -.hamburger--spin-r.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(90deg); - transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Spring - */ -.hamburger--spring .hamburger-inner { - top: 2px; - transition: background-color 0s 0.13s linear; } - -.hamburger--spring .hamburger-inner::before { - top: 10px; - transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spring .hamburger-inner::after { - top: 20px; - transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spring.is-active .hamburger-inner { - transition-delay: 0.22s; - background-color: transparent; } - -.hamburger--spring.is-active .hamburger-inner::before { - top: 0; - transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); - transform: translate3d(0, 10px, 0) rotate(45deg); } - -.hamburger--spring.is-active .hamburger-inner::after { - top: 0; - transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); - transform: translate3d(0, 10px, 0) rotate(-45deg); } - -/* - * Spring Reverse - */ -.hamburger--spring-r .hamburger-inner { - top: auto; - bottom: 0; - transition-duration: 0.13s; - transition-delay: 0s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spring-r .hamburger-inner::after { - top: -20px; - transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear; } - -.hamburger--spring-r .hamburger-inner::before { - transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--spring-r.is-active .hamburger-inner { - transform: translate3d(0, -10px, 0) rotate(-45deg); - transition-delay: 0.22s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--spring-r.is-active .hamburger-inner::after { - top: 0; - opacity: 0; - transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear; } - -.hamburger--spring-r.is-active .hamburger-inner::before { - top: 0; - transform: rotate(90deg); - transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Stand - */ -.hamburger--stand .hamburger-inner { - transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear; } - -.hamburger--stand .hamburger-inner::before { - transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--stand .hamburger-inner::after { - transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--stand.is-active .hamburger-inner { - transform: rotate(90deg); - background-color: transparent; - transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear; } - -.hamburger--stand.is-active .hamburger-inner::before { - top: 0; - transform: rotate(-45deg); - transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--stand.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(45deg); - transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Stand Reverse - */ -.hamburger--stand-r .hamburger-inner { - transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear; } - -.hamburger--stand-r .hamburger-inner::before { - transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--stand-r .hamburger-inner::after { - transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--stand-r.is-active .hamburger-inner { - transform: rotate(-90deg); - background-color: transparent; - transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear; } - -.hamburger--stand-r.is-active .hamburger-inner::before { - top: 0; - transform: rotate(-45deg); - transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--stand-r.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(45deg); - transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Squeeze - */ -.hamburger--squeeze .hamburger-inner { - transition-duration: 0.075s; - transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--squeeze .hamburger-inner::before { - transition: top 0.075s 0.12s ease, opacity 0.075s ease; } - -.hamburger--squeeze .hamburger-inner::after { - transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19); } - -.hamburger--squeeze.is-active .hamburger-inner { - transform: rotate(45deg); - transition-delay: 0.12s; - transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } - -.hamburger--squeeze.is-active .hamburger-inner::before { - top: 0; - opacity: 0; - transition: top 0.075s ease, opacity 0.075s 0.12s ease; } - -.hamburger--squeeze.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(-90deg); - transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); } - -/* - * Vortex - */ -.hamburger--vortex .hamburger-inner { - transition-duration: 0.2s; - transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); } - -.hamburger--vortex .hamburger-inner::before, -.hamburger--vortex .hamburger-inner::after { - transition-duration: 0s; - transition-delay: 0.1s; - transition-timing-function: linear; } - -.hamburger--vortex .hamburger-inner::before { - transition-property: top, opacity; } - -.hamburger--vortex .hamburger-inner::after { - transition-property: bottom, transform; } - -.hamburger--vortex.is-active .hamburger-inner { - transform: rotate(765deg); - transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); } - -.hamburger--vortex.is-active .hamburger-inner::before, -.hamburger--vortex.is-active .hamburger-inner::after { - transition-delay: 0s; } - -.hamburger--vortex.is-active .hamburger-inner::before { - top: 0; - opacity: 0; } - -.hamburger--vortex.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(90deg); } - -/* - * Vortex Reverse - */ -.hamburger--vortex-r .hamburger-inner { - transition-duration: 0.2s; - transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); } - -.hamburger--vortex-r .hamburger-inner::before, -.hamburger--vortex-r .hamburger-inner::after { - transition-duration: 0s; - transition-delay: 0.1s; - transition-timing-function: linear; } - -.hamburger--vortex-r .hamburger-inner::before { - transition-property: top, opacity; } - -.hamburger--vortex-r .hamburger-inner::after { - transition-property: bottom, transform; } - -.hamburger--vortex-r.is-active .hamburger-inner { - transform: rotate(-765deg); - transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); } - -.hamburger--vortex-r.is-active .hamburger-inner::before, -.hamburger--vortex-r.is-active .hamburger-inner::after { - transition-delay: 0s; } - -.hamburger--vortex-r.is-active .hamburger-inner::before { - top: 0; - opacity: 0; } - -.hamburger--vortex-r.is-active .hamburger-inner::after { - bottom: 0; - transform: rotate(-90deg); } - -.sidebar { - background: #202e4e; - position: fixed; - z-index: 2; - width: 100%; - height: 44px; - box-shadow: 0 0.25rem 0.5rem -0.1rem rgba(0, 32, 128, 0.2); } - .sidebar__menu { - position: absolute; - font-weight: bold; - border: none; - text-align: left; - text-transform: uppercase; - left: 0; - top: 0; - padding: 0.75rem 1rem; - outline: 0; } - .sidebar__menu-icon { - height: 24px; } - .sidebar__links { - background: #202e4e; - overflow-y: auto; - transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); - transform-origin: 0% 0%; - transform: rotateX(-90deg); - visibility: hidden; - opacity: 0; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - max-height: 378px; - margin-top: 44px; - box-shadow: 0 0.25rem 0.5rem -0.1rem rgba(0, 32, 128, 0.2); } - .sidebar__links.is-active { - transform: rotateX(0); - visibility: visible; - opacity: 1; } - .sidebar__link { - display: block; - color: #e3f5ff; - padding: 0.5rem 0.75rem; - transition: all 0.1s ease-out; - border-left: 2px solid #576a85; - margin: 0.5rem; - font-weight: 500; - font-size: 0.95rem; } - .sidebar__link:hover { - color: #88f4ff; - background: rgba(255, 255, 255, 0.1); - border-color: pink; } - -@media (min-width: 992px) { - .sidebar { - left: 0; - top: 0; - bottom: 0; - width: 15%; - max-width: 250px; - min-width: 200px; - height: 100%; - background: linear-gradient(-30deg, #2a3d67, #14264e); - box-shadow: 0.4rem 0.4rem 0.8rem rgba(0, 32, 64, 0.1); - overflow-y: auto; - color: white; } - .sidebar::-webkit-scrollbar-track { - background-color: rgba(0, 0, 0, 0.6); } - .sidebar::-webkit-scrollbar { - width: 10px; - background-color: #4b6191; } - .sidebar::-webkit-scrollbar-thumb { - background-color: #4b6191; } - .sidebar__links { - background: none; - box-shadow: none; - visibility: visible; - opacity: 1; - transform: rotateX(0); - margin-top: 0; - max-height: none; } - .sidebar__menu { - display: none; } } - -.header { - position: relative; - padding: 5rem 1rem 4rem; - background: linear-gradient(#5cd2ff, #5b67ff, #681ae4); - color: white; - margin-bottom: 2rem; - text-align: center; - overflow: hidden; - z-index: 1; } - .header::before { - content: ''; - position: absolute; - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTkyMCAxMDgwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxOTIwIDEwODA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMl8pO2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6Mi44MzU7fS5zdDF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMl8pO2ZpbGw6I0ZGRkZGRjt9LnN0MntmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjIuODM1O30uc3Qze2NsaXAtcGF0aDp1cmwoI1NWR0lEXzRfKTtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjIuODM1O30uc3Q0e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzRfKTtmaWxsOiNGRkZGRkY7fS5zdDV7Y2xpcC1wYXRoOnVybCgjU1ZHSURfNl8pO2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6Mi44MzU7fS5zdDZ7Y2xpcC1wYXRoOnVybCgjU1ZHSURfOF8pO2ZpbGw6I0ZGRkZGRjt9LnN0N3tjbGlwLXBhdGg6dXJsKCNTVkdJRF84Xyk7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyLjgzNTt9LnN0OHtjbGlwLXBhdGg6dXJsKCNTVkdJRF8xMF8pO2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6Mi44MzU7fS5zdDl7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMTBfKTtmaWxsOiNGRkZGRkY7fS5zdDEwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzEyXyk7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyLjgzNTt9LnN0MTF7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMTJfKTt9PC9zdHlsZT48Zz48ZGVmcz48cmVjdCBpZD0iU1ZHSURfMV8iIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJTVkdJRF8yXyI+PHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz48L2NsaXBQYXRoPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTQyLjksOTEwLjNjNDQuMy0zNy45LDYxLjUtODIuNiw2Ni43LTEzMC4zIi8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTE2NjMuOCw3MjQuOGMxMzIuMyw5LjQsMTQ3LjQtMTc5LjQsMjgxLjgtMTY5LjgiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTcwMi4zLDM4MS4yYzYuNyw3LjcsMTguMyw4LjUsMjYsMS44YzcuNy02LjcsOC41LTE4LjMsMS44LTI2Yy02LjctNy43LTE4LjMtOC41LTI2LTEuOEMxNjk2LjQsMzYxLjksMTY5NS42LDM3My42LDE3MDIuMywzODEuMiIvPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTg2LjQsNzQzLjljMTMuNCwxNS40LDM2LjcsMTcuMSw1Mi4xLDMuN2MxNS40LTEzLjQsMTctMzYuNywzLjYtNTIuMWMtMTMuNC0xNS40LTM2LjctMTcuMS01Mi4xLTMuN0MxNTc0LjYsNzA1LjEsMTU3Myw3MjguNSwxNTg2LjQsNzQzLjkiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTA3LjksNDQ3LjFjLTE3LjMsNTkuMy03LjMsMTAyLjIsMTgsMTQ3LjMiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTA1LjIsNjc5LjljLTExMi4zLDYyLjEtMjcsMjE5LjgtMTQxLjEsMjgyLjkiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNjY0LjYsOTc2LjJjLTkuOC0yLjgtMjAsMi45LTIyLjgsMTIuNmMtMi44LDkuOCwyLjksMjAsMTIuNywyMi44YzkuOCwyLjgsMjAtMi45LDIyLjgtMTIuNlM2NzQuNCw5NzksNjY0LjYsOTc2LjIiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzE4LjksOTY1LjVjLTkuOC0yLjgtMjAsMi45LTIyLjgsMTIuNmMtMi44LDkuOCwyLjksMjAsMTIuNywyMi44YzkuOCwyLjgsMjAtMi45LDIyLjgtMTIuNkMzMzQuNCw5NzguNSwzMjguNyw5NjguMywzMTguOSw5NjUuNSIvPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik01NjQuMiw2MDljLTE5LjYtNS42LTQwLjEsNS43LTQ1LjcsMjUuM2MtNS42LDE5LjYsNS43LDQwLDI1LjQsNDUuN2MxOS42LDUuNiw0MC4xLTUuNyw0NS43LTI1LjNDNTk1LjEsNjM1LjEsNTgzLjgsNjE0LjYsNTY0LjIsNjA5Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTU5Mi44LDY4OS43YzU3LjksNzIuMywxMTYuMywxNDQuOCw4Ni4zLDI0Ny41Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTEzNjgsNDE0LjNjLTc4LjgsMjkuNC0xMDIuMS04OC0xODIuMS01OC4yIi8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTE2NzQsMzUwLjJjLTc0LTM3LTEzOS4xLTE2LjktMjAyLjUsMTUuNyIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMzExLjItMjEuN2MtNTAuMywxMzAuNywxOS45LDI2Ny4yLDkwLDM2OC45Ii8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTExNTEuNSwzNzQuM2M0LjQtOS4yLDAuNS0yMC4yLTguNy0yNC42Yy05LjItNC40LTIwLjItMC41LTI0LjYsOC43Yy00LjQsOS4yLTAuNSwyMC4yLDguNywyNC42QzExMzYuMSwzODcuNCwxMTQ3LjIsMzgzLjUsMTE1MS41LDM3NC4zIi8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTE0NTguOSw0MDkuMmM4LjgtMTguNCwxLTQwLjQtMTcuNC00OS4yYy0xOC40LTguOC00MC41LTAuOS00OS4zLDE3LjVzLTEsNDAuNCwxNy40LDQ5LjJDMTQyOCw0MzUuNCwxNDUwLjEsNDI3LjYsMTQ1OC45LDQwOS4yIi8+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NDgsODguMyIvPjxnPjxkZWZzPjxyZWN0IGlkPSJTVkdJRF8zXyIgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTA4MCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9IlNWR0lEXzRfIj48dXNlIHhsaW5rOmhyZWY9IiNTVkdJRF8zXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPjwvY2xpcFBhdGg+PHBhdGggY2xhc3M9InN0MyIgZD0iTTExMzUuNSwzMTUuNWMtNC42LTEwNS4xLTI0LjItMTE5LjMtMTAxLjktMTY5LjgiLz48cGF0aCBjbGFzcz0ic3Q0IiBkPSJNOTgxLjUsMTUzLjVjMjAuNC0wLjksMzYuMi0xOC4xLDM1LjMtMzguNGMtMC45LTIwLjMtMTguMS0zNi0zOC41LTM1LjFTOTQyLjEsOTgsOTQzLDExOC4zQzk0My45LDEzOC42LDk2MS4xLDE1NC40LDk4MS41LDE1My41Ii8+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDA3LjgsNzIuOCIvPjxnPjxkZWZzPjxyZWN0IGlkPSJTVkdJRF81XyIgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTA4MCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9IlNWR0lEXzZfIj48dXNlIHhsaW5rOmhyZWY9IiNTVkdJRF81XyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPjwvY2xpcFBhdGg+PHBhdGggY2xhc3M9InN0NSIgZD0iTTIwMSw3ODYuNGM2LDgyLjktMTE0LjUsODQuMS0xMDguNCwxNjguMyIvPjxwYXRoIGNsYXNzPSJzdDUiIGQ9Ik0yMTkuNSw0ODMuMWMtNzMuMyw3OS4yLTYzLjksMTExLjctNDEuNiwyMDEuMSIvPjxwYXRoIGNsYXNzPSJzdDUiIGQ9Ik0tOTIuOSw0OTcuMmMxNDIuNCw2NS45LDE4My40LDM3LjYsMjk3LjctMzUuMSIvPjwvZz48cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTQwLjksNzQ1LjgiLz48Zz48ZGVmcz48cmVjdCBpZD0iU1ZHSURfN18iIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJTVkdJRF84XyI+PHVzZSB4bGluazpocmVmPSIjU1ZHSURfN18iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz48L2NsaXBQYXRoPjxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik0xMDEuMSw5OTIuN2MtNy43LTYuNy0xOS4zLTUuOS0yNiwxLjhjLTYuNyw3LjctNS45LDE5LjMsMS44LDI2czE5LjMsNS45LDI2LTEuOEMxMDkuNiwxMDExLDEwOC44LDk5OS40LDEwMS4xLDk5Mi43Ii8+PHBhdGggY2xhc3M9InN0NiIgZD0iTTIxNi45LDcwNi4yYy0xNS40LTEzLjQtMzguOC0xMS44LTUyLjEsMy42Yy0xMy40LDE1LjQtMTEuNywzOC43LDMuNyw1Mi4xYzE1LjQsMTMuNCwzOC44LDExLjgsNTIuMS0zLjZDMjM0LDc0Mi45LDIzMi4zLDcxOS42LDIxNi45LDcwNi4yIi8+PHBhdGggY2xhc3M9InN0NyIgZD0iTTExNzAuNSwxMDY2LjljLTMzLTEyOC44LDE1MS45LTE3NS44LDExOC4zLTMwNi42Ii8+PHBhdGggY2xhc3M9InN0NiIgZD0iTTE1MDIuNSw5NjkuNGMtOC43LTUuMi0xMS42LTE2LjYtNi4zLTI1LjNjNS4yLTguNywxNi42LTExLjUsMjUuMy02LjNjOC43LDUuMiwxMS42LDE2LjYsNi4zLDI1LjNDMTUyMi41LDk3MS44LDE1MTEuMiw5NzQuNywxNTAyLjUsOTY5LjQiLz48cGF0aCBjbGFzcz0ic3Q2IiBkPSJNMTI1OC44LDcyNC4xYy04LjctNS4yLTExLjYtMTYuNi02LjMtMjUuM2M1LjItOC43LDE2LjYtMTEuNSwyNS4zLTYuM2M4LjcsNS4yLDExLjYsMTYuNiw2LjMsMjUuM0MxMjc4LjksNzI2LjYsMTI2Ny42LDcyOS40LDEyNTguOCw3MjQuMSIvPjxwYXRoIGNsYXNzPSJzdDciIGQ9Ik0xMDk0LjQsMzQyYy01OS43LTI5LjktODguMS0yOS44LTE1My45LTciLz48cGF0aCBjbGFzcz0ic3Q3IiBkPSJNODc0LjEsMjk3LjNDODMwLjQsMTcxLjQsNjU1LDIzOS4xLDYxMC42LDExMS4yIi8+PHBhdGggY2xhc3M9InN0NiIgZD0iTTU0NS41LDQwMy45YzQuNS05LjEsMC43LTIwLjItOC41LTI0LjZjLTkuMi00LjUtMjAuMi0wLjctMjQuNyw4LjVjLTQuNSw5LjEtMC43LDIwLjIsOC41LDI0LjZDNTMwLDQxNi45LDU0MSw0MTMuMSw1NDUuNSw0MDMuOSIvPjxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik02MTYuMSw2NS43YzQuNS05LjEsMC43LTIwLjItOC41LTI0LjZjLTkuMi00LjUtMjAuMi0wLjctMjQuNyw4LjVjLTQuNSw5LjEtMC43LDIwLjIsOC41LDI0LjZDNjAwLjYsNzguNiw2MTEuNiw3NC44LDYxNi4xLDY1LjciLz48cGF0aCBjbGFzcz0ic3Q2IiBkPSJNOTI1LDM2OC45YzktMTguMywxLjQtNDAuNC0xNy00OS40Yy0xOC4zLTguOS00MC41LTEuMy00OS40LDE3Yy05LDE4LjMtMS40LDQwLjQsMTcsNDkuNEM4OTMuOSwzOTQuOCw5MTYsMzg3LjIsOTI1LDM2OC45Ii8+PHBhdGggY2xhc3M9InN0NyIgZD0iTTEwMzIuMiw1OTIuNGMxLjgsMTA0LjUtNzIuOCwxNTguOC0xNDcuNCwyMTMuNiIvPjxwYXRoIGNsYXNzPSJzdDciIGQ9Ik0xMDc0LjksNTMwLjRjOTAuNSwwLDEzNi41LDY4LjMsMTgyLjgsMTM2LjYiLz48cGF0aCBjbGFzcz0ic3Q2IiBkPSJNODUxLjUsODQzLjJjLTQuNiw5LjEtMTUuNywxMi43LTI0LjgsOC4xYy05LjEtNC42LTEyLjctMTUuNy04LjEtMjQuOHMxNS43LTEyLjcsMjQuOC04LjFDODUyLjUsODIzLDg1Ni4xLDgzNC4xLDg1MS41LDg0My4yIi8+PHBhdGggY2xhc3M9InN0NiIgZD0iTTEwNDAuNCw1NTMuNGMtNC42LDkuMS0xNS43LDEyLjctMjQuOCw4LjFjLTkuMS00LjYtMTIuNy0xNS43LTguMS0yNC44YzQuNi05LjEsMTUuNy0xMi43LDI0LjgtOC4xQzEwNDEuNCw1MzMuMiwxMDQ1LDU0NC4zLDEwNDAuNCw1NTMuNCIvPjwvZz48cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTgyMCwyMTMuOSIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xNjUxLjgsNzAuNSIvPjxnPjxkZWZzPjxyZWN0IGlkPSJTVkdJRF85XyIgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTA4MCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9IlNWR0lEXzEwXyI+PHVzZSB4bGluazpocmVmPSIjU1ZHSURfOV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz48L2NsaXBQYXRoPjxwYXRoIGNsYXNzPSJzdDgiIGQ9Ik0xNzI0LjYsMzE0LjJjMTMuOS03NS0xMDIuNy02Mi4zLTg4LjYtMTM4LjUiLz48cGF0aCBjbGFzcz0ic3Q5IiBkPSJNMTY3OS43LDExNS4yYzAsMjAuNC0xNi42LDM2LjktMzcsMzYuOWMtMjAuNCwwLTM3LTE2LjUtMzctMzYuOWMwLTIwLjQsMTYuNi0zNi45LDM3LTM2LjlDMTY2My4yLDc4LjIsMTY3OS43LDk0LjgsMTY3OS43LDExNS4yIi8+PHBhdGggY2xhc3M9InN0OCIgZD0iTTU0NS4yLDQwLjdjLTU4LjktMTAtMTA1LjIsNy0xNDYuMiwzNS41Ii8+PHBhdGggY2xhc3M9InN0OCIgZD0iTTM1NS44LDE1NC40YzE3LjksMTAzLjUtMTMxLjQsMTI5LjQtMTEzLjIsMjM0LjUiLz48cGF0aCBjbGFzcz0ic3Q5IiBkPSJNMzYuNywyNTYuMmMxLjctMTAtNS4xLTE5LjUtMTUuMi0yMS4yYy0xMC4xLTEuNy0xOS42LDUuMS0yMS4yLDE1LjFjLTEuNywxMCw1LjEsMTkuNSwxNS4yLDIxLjJDMjUuNSwyNzMsMzUsMjY2LjIsMzYuNywyNTYuMiIvPjxwYXRoIGNsYXNzPSJzdDkiIGQ9Ik0yNTAuMiw0MjMuMWMxMC4xLDEuNywxNi44LDExLjIsMTUuMiwyMS4ycy0xMS4yLDE2LjgtMjEuMiwxNS4xYy0xMC4xLTEuNy0xNi44LTExLjItMTUuMi0yMS4yQzIzMC42LDQyOC4yLDI0MC4xLDQyMS40LDI1MC4yLDQyMy4xIi8+PHBhdGggY2xhc3M9InN0OSIgZD0iTTM5MC4xLDExNC45YzMuNC0yMC4xLTEwLjEtMzkuMS0zMC4yLTQyLjVzLTM5LDEwLjItNDIuMywzMC4zYy0zLjQsMjAuMSwxMC4xLDM5LjEsMzAuMiw0Mi41QzM2Ny44LDE0OC42LDM4Ni43LDEzNSwzOTAuMSwxMTQuOSIvPjwvZz48cGF0aCBjbGFzcz0ic3QyIiBkPSJNMzY5LjYsODAuOSIvPjxnPjxkZWZzPjxyZWN0IGlkPSJTVkdJRF8xMV8iIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJTVkdJRF8xMl8iPjx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzExXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPjwvY2xpcFBhdGg+PHBhdGggY2xhc3M9InN0MTAiIGQ9Ik03MTQuNyw5NjljMTYwLjUtNjIuOCwyODguNSwyOC43LDQxNy4xLDExOS45Ii8+PHBhdGggY2xhc3M9InN0MTEiIGQ9Ik0xNjA3LjEsNjU4LjIiLz48cGF0aCBjbGFzcz0ic3QxMCIgZD0iTTMxMy41LDE1Mi41Yy02NS40LDY1LjYtMTMxLDEzMS42LTIzNi40LDExMy43Ii8+PHBhdGggY2xhc3M9InN0MTAiIGQ9Ik04MzguNSwzODQuMWMtODAuNiw0NC4zLTE2MS42LDg4LjMtMjU3LjEsNDAuNSIvPjxwYXRoIGNsYXNzPSJzdDEwIiBkPSJNMTYwNy4zLDY2NS45Yy04LjYtOTUuMy0yMS4xLTE4Ni45LDY0LjEtMjU5LjkiLz48L2c+PHBhdGggY2xhc3M9InN0MiIgZD0iTTE0MTguMiwzOTUuNCIvPjwvc3ZnPg==); - width: 150%; - height: 150%; - top: 0; - left: 0; - opacity: 0.1; - z-index: -1; } - .header::after { - content: ''; - position: absolute; - background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjQxNCI+PHBhdGggZD0iTTEyIDEybDEyIDEySDBsMTItMTJ6IiBmaWxsPSIjZjZmN2ZkIi8+PC9zdmc+); - background-size: 24px 24px; - width: 100%; - left: 0; - height: 24px; - bottom: -1px; } - .header__logo { - height: 146px; - user-select: none; } - .header__heading { - font-weight: 200; - font-size: 3rem; - margin: 1rem 0; - line-height: 1.2; } - .header__description { - font-size: 1.5rem; - max-width: 600px; - margin: 0 auto 1rem; - font-weight: 300; - letter-spacing: 0.4px; } - .header__css { - background: -webkit-linear-gradient(-45deg, #f8ffc0, #88f4ff); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - font-size: 4rem; } - .header__github-button { - color: white; } - -@media (min-width: 579px) { - .header { - padding: 6rem 0 5rem; } - .header__heading { - font-size: 3.75rem; } } - -@media (min-width: 992px) { - .header { - padding: 2.5rem 0 5rem; } } - -.snippet { - position: relative; - background: white; - padding: 2rem 5%; - box-shadow: 0 0.4rem 0.8rem -0.1rem rgba(0, 32, 128, 0.1), 0 0 0 1px #f0f2f7; - border-radius: 0.25rem; - font-size: 1.1rem; - margin-bottom: 1.5rem; } - .snippet h3 { - font-size: 2rem; - padding: 0.5rem 0; - border-bottom: 1px solid rgba(0, 32, 128, 0.1); - margin-bottom: 1.25rem; - margin-top: 0; - line-height: 1.3; } - .snippet code:not([class*='lang']) { - background: #fcfaff; - border: 1px solid #e2ddff; - color: #4b00da; - border-radius: 0.15rem; - font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 0.9rem; - padding: 0.2rem 0.4rem; - margin: 0 0.1rem; } - .snippet ol { - margin-top: 0.5rem; } - .snippet ol > li { - margin-bottom: 0.5rem; } - .snippet > p { - margin-top: 0.5rem; } - .snippet h4 { - display: inline-block; - margin: 1rem 0 0.5rem; - line-height: 2; - padding: 0 0.5rem; - border-radius: 3px; - font-size: 0.9rem; - text-transform: uppercase; - background: #333; - border: 1px solid #c6d6ea; - border-bottom-color: #b3c9e3; - background: white; - box-shadow: 0 0.25rem 0.5rem -0.1rem rgba(0, 32, 64, 0.15); } - .snippet h4[data-type='HTML'] { - color: white; - border: none; - background: linear-gradient(135deg, #ff4c9f, #ff7b74); } - .snippet h4[data-type='CSS'] { - color: white; - border: none; - background: linear-gradient(135deg, #7983ff, #5f9de9); } - .snippet h4[data-type='JavaScript'] { - color: white; - border: none; - background: linear-gradient(135deg, #ffb000, #f58818); } - .snippet__browser-support { - display: inline-block; - font-size: 2rem; - font-weight: 200; - line-height: 1; - margin: 0.5rem 0; } - .snippet__subheading.is-html { - color: #e22f70; } - .snippet__subheading.is-css { - color: #0a91d4; } - .snippet__subheading.is-explanation { - color: #4b00da; } - .snippet__support-note { - color: #9fa5b5; - font-weight: bold; } - .snippet__requires-javascript { - position: absolute; - background: red; - background: linear-gradient(145deg, #ff003b, #ff4b39); - color: white; - padding: 0.25rem 0.5rem; - font-size: 0.9rem; - transform: rotate(20deg); - font-weight: bold; - top: 1rem; - right: 0; } - -.snippet-demo { - background: #f5f6f9; - border-radius: 0.25rem; - padding: 0.75rem 1.25rem; } - .snippet-demo.is-distinct { - background: linear-gradient(135deg, #ff4c9f, #ff7b74); } - -@media (min-width: 768px) { - .snippet__requires-javascript { - right: -0.5rem; } } - -.back-to-top-button { - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - font-size: 2rem; - font-weight: bold; - background: white; - width: 4rem; - height: 4rem; - position: fixed; - right: 2rem; - bottom: 2rem; - border-radius: 50%; - user-select: none; - box-shadow: 0 0.4rem 0.8rem -0.1rem rgba(0, 32, 128, 0.15); - transition: all 0.2s ease-out; - visibility: hidden; - opacity: 0; - z-index: 1; - border: 1px solid rgba(0, 32, 128, 0.1); - outline: 0; } - .back-to-top-button:hover, .back-to-top-button:focus { - transform: scale(1.1); - box-shadow: 0 0.8rem 1.6rem -0.2rem rgba(0, 32, 128, 0.15); - color: #35a8ff; } - .back-to-top-button:focus { - box-shadow: 0 0.8rem 1.6rem -0.2rem rgba(0, 32, 128, 0.15), 0 0 2px 2px #35a8ff; - outline-style: none; } - .back-to-top-button.is-visible { - visibility: visible; - opacity: 1; } diff --git a/dist/f06fd0495a34430f242f7611190395d6.js b/dist/f06fd0495a34430f242f7611190395d6.js deleted file mode 100644 index 1c5159a21..000000000 --- a/dist/f06fd0495a34430f242f7611190395d6.js +++ /dev/null @@ -1,1479 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -// eslint-disable-next-line no-global-assign -require = (function (modules, cache, entry) { - // Save the require from previous bundle to this closure if any - var previousRequire = typeof require === "function" && require; - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = typeof require === "function" && require; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - var err = new Error('Cannot find module \'' + name + '\''); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - - var module = cache[name] = new newRequire.Module(name); - - modules[name][0].call(module.exports, localRequire, module, module.exports); - } - - return cache[name].exports; - - function localRequire(x){ - return newRequire(localRequire.resolve(x)); - } - - function resolve(x){ - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - // Override the current require with this new one - return newRequire; -})({13:[function(require,module,exports) { -var bundleURL = null; -function getBundleURLCached() { - if (!bundleURL) { - bundleURL = getBundleURL(); - } - - return bundleURL; -} - -function getBundleURL() { - // Attempt to find the URL of the current script and use that as the base URL - try { - throw new Error(); - } catch (err) { - var matches = ('' + err.stack).match(/(https?|file|ftp):\/\/[^)\n]+/g); - if (matches) { - return getBaseURL(matches[0]); - } - } - - return '/'; -} - -function getBaseURL(url) { - return ('' + url).replace(/^((?:https?|file|ftp):\/\/.+)\/[^/]+$/, '$1') + '/'; -} - -exports.getBundleURL = getBundleURLCached; -exports.getBaseURL = getBaseURL; -},{}],10:[function(require,module,exports) { -var bundle = require('./bundle-url'); - -function updateLink(link) { - var newLink = link.cloneNode(); - newLink.onload = function () { - link.remove(); - }; - newLink.href = link.href.split('?')[0] + '?' + Date.now(); - link.parentNode.insertBefore(newLink, link.nextSibling); -} - -var cssTimeout = null; -function reloadCSS() { - if (cssTimeout) { - return; - } - - cssTimeout = setTimeout(function () { - var links = document.querySelectorAll('link[rel="stylesheet"]'); - for (var i = 0; i < links.length; i++) { - if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) { - updateLink(links[i]); - } - } - - cssTimeout = null; - }, 50); -} - -module.exports = reloadCSS; -},{"./bundle-url":13}],14:[function(require,module,exports) { - - var reloadCSS = require('_css_loader'); - module.hot.dispose(reloadCSS); - module.hot.accept(reloadCSS); - -},{"_css_loader":10}],15:[function(require,module,exports) { -var global = (1,eval)("this"); - -/* ********************************************** - Begin prism-core.js -********************************************** */ - -var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - -var Prism = (function(){ - -// Private helper vars -var lang = /\blang(?:uage)?-(\w+)\b/i; -var uniqueId = 0; - -var _ = _self.Prism = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode: function (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - pattern.lastIndex = 0; - - var match = pattern.exec(str), - delNum = 1; - - // Greedy patterns can override/remove up to two previously matched tokens - if (!match && greedy && i != strarr.length - 1) { - pattern.lastIndex = pos; - match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind ? match[1].length : 0), - to = match.index + match[0].length, - k = i, - p = pos; - - for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { - p += strarr[k].length; - // Move the index i to the element in strarr that is closest to from - if (from >= p) { - ++i; - pos = p; - } - } - - /* - * If strarr[i] is a Token, then the match starts inside another Token, which is invalid - * If strarr[k - 1] is greedy we are in conflict with another greedy pattern - */ - if (strarr[i] instanceof Token || strarr[k - 1].greedy) { - continue; - } - - // Number of tokens to delete and replace with the new match - delNum = k - i; - str = text.slice(pos, p); - match.index -= pos; - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if(lookbehind) { - lookbehindLength = match[1].length; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var args = [i, delNum]; - - if (before) { - ++i; - pos += before.length; - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - - if (delNum != 1) - _.matchGrammar(text, strarr, grammar, i, pos, true, token); - - if (oneshot) - break; - } - } - } - }, - - tokenize: function(text, grammar, language) { - var strarr = [text]; - - var rest = grammar.rest; - - if (rest) { - for (var token in rest) { - grammar[token] = rest[token]; - } - - delete grammar.rest; - } - - _.matchGrammar(text, strarr, grammar, 0, 0, false); - - return strarr; - }, - - hooks: { - all: {}, - - add: function (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run: function (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - } - } -}; - -var Token = _.Token = function(type, content, alias, matchedStr, greedy) { - this.type = type; - this.content = content; - this.alias = alias; - // Copy of the full string this token was created from - this.length = (matchedStr || "").length|0; - this.greedy = !!greedy; -}; - -Token.stringify = function(o, language, parent) { - if (typeof o == 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map(function(element) { - return Token.stringify(element, language, o); - }).join(''); - } - - var env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language: language, - parent: parent - }; - - if (o.alias) { - var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - var attributes = Object.keys(env.attributes).map(function(name) { - return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; - }).join(' '); - - return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; - -}; - -if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', function (evt) { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _self.Prism; -} - -//Get current script and highlight -var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); - -if (script) { - _.filename = script.src; - - if (!_.manual && !script.hasAttribute('data-manual')) { - if(document.readyState !== "loading") { - if (window.requestAnimationFrame) { - window.requestAnimationFrame(_.highlightAll); - } else { - window.setTimeout(_.highlightAll, 16); - } - } - else { - document.addEventListener('DOMContentLoaded', _.highlightAll); - } - } -} - -return _self.Prism; - -})(); - -if (typeof module !== 'undefined' && module.exports) { - module.exports = Prism; -} - -// hack for components to work correctly in node.js -if (typeof global !== 'undefined') { - global.Prism = Prism; -} - - -/* ********************************************** - Begin prism-markup.js -********************************************** */ - -Prism.languages.markup = { - 'comment': //, - 'prolog': /<\?[\s\S]+?\?>/, - 'doctype': //i, - 'cdata': //i, - 'tag': { - pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, - inside: { - 'tag': { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - 'punctuation': /^<\/?/, - 'namespace': /^[^\s>\/:]+:/ - } - }, - 'attr-value': { - pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, - inside: { - 'punctuation': [ - /^=/, - { - pattern: /(^|[^\\])["']/, - lookbehind: true - } - ] - } - }, - 'punctuation': /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - 'namespace': /^[^\s>\/:]+:/ - } - } - - } - }, - 'entity': /&#?[\da-z]{1,8};/i -}; - -Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = - Prism.languages.markup['entity']; - -// Plugin to make entity title show the real entity, idea by Roman Komarov -Prism.hooks.add('wrap', function(env) { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } -}); - -Prism.languages.xml = Prism.languages.markup; -Prism.languages.html = Prism.languages.markup; -Prism.languages.mathml = Prism.languages.markup; -Prism.languages.svg = Prism.languages.markup; - - -/* ********************************************** - Begin prism-css.js -********************************************** */ - -Prism.languages.css = { - 'comment': /\/\*[\s\S]*?\*\//, - 'atrule': { - pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, - inside: { - 'rule': /@[\w-]+/ - // See rest below - } - }, - 'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - 'selector': /[^{}\s][^{};]*?(?=\s*\{)/, - 'string': { - pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, - 'important': /\B!important\b/i, - 'function': /[-a-z0-9]+(?=\()/i, - 'punctuation': /[(){};:]/ -}; - -Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'style': { - pattern: /()[\s\S]*?(?=<\/style>)/i, - lookbehind: true, - inside: Prism.languages.css, - alias: 'language-css', - greedy: true - } - }); - - Prism.languages.insertBefore('inside', 'attr-value', { - 'style-attr': { - pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, - inside: { - 'attr-name': { - pattern: /^\s*style/i, - inside: Prism.languages.markup.tag.inside - }, - 'punctuation': /^\s*=\s*['"]|['"]\s*$/, - 'attr-value': { - pattern: /.+/i, - inside: Prism.languages.css - } - }, - alias: 'language-css' - } - }, Prism.languages.markup.tag); -} - -/* ********************************************** - Begin prism-clike.js -********************************************** */ - -Prism.languages.clike = { - 'comment': [ - { - pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, - lookbehind: true - }, - { - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true - } - ], - 'string': { - pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'class-name': { - pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, - lookbehind: true, - inside: { - punctuation: /[.\\]/ - } - }, - 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, - 'boolean': /\b(?:true|false)\b/, - 'function': /[a-z0-9_]+(?=\()/i, - 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, - 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, - 'punctuation': /[{}[\];(),.:]/ -}; - - -/* ********************************************** - Begin prism-javascript.js -********************************************** */ - -Prism.languages.javascript = Prism.languages.extend('clike', { - 'keyword': /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, - 'number': /\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/, - // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) - 'function': /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, - 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ -}); - -Prism.languages.insertBefore('javascript', 'keyword', { - 'regex': { - pattern: /(^|[^/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/, - lookbehind: true, - greedy: true - }, - // This must be declared before keyword because we use "function" inside the look-forward - 'function-variable': { - pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, - alias: 'function' - } -}); - -Prism.languages.insertBefore('javascript', 'string', { - 'template-string': { - pattern: /`(?:\\[\s\S]|[^\\`])*`/, - greedy: true, - inside: { - 'interpolation': { - pattern: /\$\{[^}]+\}/, - inside: { - 'interpolation-punctuation': { - pattern: /^\$\{|\}$/, - alias: 'punctuation' - }, - rest: Prism.languages.javascript - } - }, - 'string': /[\s\S]+/ - } - } -}); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'script': { - pattern: /()[\s\S]*?(?=<\/script>)/i, - lookbehind: true, - inside: Prism.languages.javascript, - alias: 'language-javascript', - greedy: true - } - }); -} - -Prism.languages.js = Prism.languages.javascript; - - -/* ********************************************** - Begin prism-file-highlight.js -********************************************** */ - -(function () { - if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { - return; - } - - self.Prism.fileHighlight = function() { - - var Extensions = { - 'js': 'javascript', - 'py': 'python', - 'rb': 'ruby', - 'ps1': 'powershell', - 'psm1': 'powershell', - 'sh': 'bash', - 'bat': 'batch', - 'h': 'c', - 'tex': 'latex' - }; - - Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { - var src = pre.getAttribute('data-src'); - - var language, parent = pre; - var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; - while (parent && !lang.test(parent.className)) { - parent = parent.parentNode; - } - - if (parent) { - language = (pre.className.match(lang) || [, ''])[1]; - } - - if (!language) { - var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; - language = Extensions[extension] || extension; - } - - var code = document.createElement('code'); - code.className = 'language-' + language; - - pre.textContent = ''; - - code.textContent = 'Loading…'; - - pre.appendChild(code); - - var xhr = new XMLHttpRequest(); - - xhr.open('GET', src, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState == 4) { - - if (xhr.status < 400 && xhr.responseText) { - code.textContent = xhr.responseText; - - Prism.highlightElement(code); - } - else if (xhr.status >= 400) { - code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; - } - else { - code.textContent = '✖ Error: File does not exist or is empty'; - } - } - }; - - xhr.send(null); - }); - - }; - - document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight); - -})(); - -},{}],6:[function(require,module,exports) { - - var reloadCSS = require('_css_loader'); - module.hot.dispose(reloadCSS); - module.hot.accept(reloadCSS); - -},{"_css_loader":10}],5:[function(require,module,exports) { - - var reloadCSS = require('_css_loader'); - module.hot.dispose(reloadCSS); - module.hot.accept(reloadCSS); - -},{"_css_loader":10}],7:[function(require,module,exports) { -var e = Element.prototype; -if (!e.matches) { - e.matches = e.matchesSelector || e.msMatchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector; -} -if (!e.closest) { - e.closest = function (s) { - var el = this; - if (!document.documentElement.contains(el)) return null; - do { - if (el.matches(s)) return el; - el = el.parentElement || el.parentNode; - } while (el !== null && el.nodeType === 1); - return null; - }; -} -},{}],11:[function(require,module,exports) { -var global = (1,eval)("this"); -var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -;(function (global, factory) { - (typeof exports === 'undefined' ? 'undefined' : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.Jump = factory(); -})(this, function () { - 'use strict'; - - // Robert Penner's easeInOutQuad - - // find the rest of his easing functions here: http://robertpenner.com/easing/ - // find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js - - var easeInOutQuad = function easeInOutQuad(t, b, c, d) { - t /= d / 2; - if (t < 1) return c / 2 * t * t + b; - t--; - return -c / 2 * (t * (t - 2) - 1) + b; - }; - - var _typeof = typeof Symbol === 'function' && _typeof2(Symbol.iterator) === 'symbol' ? function (obj) { - return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); - } : function (obj) { - return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); - }; - - var jumper = function jumper() { - // private variable cache - // no variables are created during a jump, preventing memory leaks - - var element = void 0; // element to scroll to (node) - - var start = void 0; // where scroll starts (px) - var stop = void 0; // where scroll stops (px) - - var offset = void 0; // adjustment from the stop position (px) - var easing = void 0; // easing function (function) - var a11y = void 0; // accessibility support flag (boolean) - - var distance = void 0; // distance of scroll (px) - var duration = void 0; // scroll duration (ms) - - var timeStart = void 0; // time scroll started (ms) - var timeElapsed = void 0; // time spent scrolling thus far (ms) - - var next = void 0; // next scroll position (px) - - var callback = void 0; // to call when done scrolling (function) - - // scroll position helper - - function location() { - return window.scrollY || window.pageYOffset; - } - - // element offset helper - - function top(element) { - return element.getBoundingClientRect().top + start; - } - - // rAF loop helper - - function loop(timeCurrent) { - // store time scroll started, if not started already - if (!timeStart) { - timeStart = timeCurrent; - } - - // determine time spent scrolling so far - timeElapsed = timeCurrent - timeStart; - - // calculate next scroll position - next = easing(timeElapsed, start, distance, duration); - - // scroll to it - window.scrollTo(0, next); - - // check progress - timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop - : done(); // scrolling is done - } - - // scroll finished helper - - function done() { - // account for rAF time rounding inaccuracies - window.scrollTo(0, start + distance); - - // if scrolling to an element, and accessibility is enabled - if (element && a11y) { - // add tabindex indicating programmatic focus - element.setAttribute('tabindex', '-1'); - - // focus the element - element.focus(); - } - - // if it exists, fire the callback - if (typeof callback === 'function') { - callback(); - } - - // reset time for next jump - timeStart = false; - } - - // API - - function jump(target) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - // resolve options, or use defaults - duration = options.duration || 1000; - offset = options.offset || 0; - callback = options.callback; // "undefined" is a suitable default, and won't be called - easing = options.easing || easeInOutQuad; - a11y = options.a11y || false; - - // cache starting position - start = location(); - - // resolve target - switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) { - // scroll from current position - case 'number': - element = undefined; // no element to scroll to - a11y = false; // make sure accessibility is off - stop = start + target; - break; - - // scroll to element (node) - // bounding rect is relative to the viewport - case 'object': - element = target; - stop = top(element); - break; - - // scroll to element (selector) - // bounding rect is relative to the viewport - case 'string': - element = document.querySelector(target); - stop = top(element); - break; - } - - // resolve scroll distance, accounting for offset - distance = stop - start + offset; - - // resolve duration - switch (_typeof(options.duration)) { - // number in ms - case 'number': - duration = options.duration; - break; - - // function passed the distance of the scroll - case 'function': - duration = options.duration(distance); - break; - } - - // start the loop - window.requestAnimationFrame(loop); - } - - // expose only the jump method - return jump; - }; - - // export singleton - - var singleton = jumper(); - - return function () { - var scrolling = void 0; - var end = function end() { - return scrolling = false; - }; - return function (to) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (scrolling) return; - var scrollY = window.scrollY || window.pageYOffset; - if (to !== '.header') location.hash = to; - scroll(0, scrollY); - scrolling = true; - setTimeout(end, options.duration || 0); - return singleton(to, options); - }; - }(); -}); -},{}],12:[function(require,module,exports) { -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var select = exports.select = function select(s) { - return document.querySelector(s); -}; -var selectAll = exports.selectAll = function selectAll(s) { - return [].slice.call(document.querySelectorAll(s)); -}; -var scrollY = exports.scrollY = function scrollY() { - return window.scrollY || window.pageYOffset; -}; -var easeOutQuint = exports.easeOutQuint = function easeOutQuint(t, b, c, d) { - return c * ((t = t / d - 1) * Math.pow(t, 4) + 1) + b; -}; - -/* -* Make iOS behave normally. -*/ -if (/iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream) { - document.body.style.cursor = 'pointer'; -} - -/* -* A small utility to fix the letter kerning on macOS Chrome and Firefox when using the system font -* (San Francisco). It is now fixed in the text rendering engine in FF 58 and Chrome 64. -* UPDATE: It appears the applied fix doesn't work when the font is in italics. New fix has been added. -* Must be applied to all browsers for now. -*/ -;(function () { - var ua = navigator.userAgent; - - // macOS 10.11 (El Capitan) came with San Francisco. Previous versions used Helvetica - var isRelevantMacOS = /Mac/.test(navigator.platform) && (ua.match(/OS X 10[._](\d{1,2})/) || [])[1] >= 11; - - // Chrome v64 and FF v58 fix the issue - var isAffectedBrowser = (ua.match(/Chrome\/(\d+)\./) || [])[1] < 64 || (ua.match(/Firefox\/(\d+)\./) || [])[1] < 58; - - var allEls = [].slice.call(document.querySelectorAll('*')); - - if (isRelevantMacOS && isAffectedBrowser) { - document.documentElement.style.letterSpacing = '-0.3px'; - allEls.forEach(function (el) { - var fontSize = parseFloat(getComputedStyle(el).fontSize); - if (fontSize >= 20) el.style.letterSpacing = '0.3px'; - }); - } else if (isRelevantMacOS && !isAffectedBrowser) { - // Italics fix - allEls.forEach(function (el) { - var _getComputedStyle = getComputedStyle(el), - fontSize = _getComputedStyle.fontSize, - fontStyle = _getComputedStyle.fontStyle; - - if (fontStyle === 'italic') { - el.style.letterSpacing = parseFloat(fontSize) >= 20 ? '0.3px' : '-0.3px'; - } - }); - } -})(); -},{}],8:[function(require,module,exports) { -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jump = require('../deps/jump'); - -var _jump2 = _interopRequireDefault(_jump); - -var _utils = require('../deps/utils'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var menu = (0, _utils.select)('.hamburger'); -var links = (0, _utils.select)('.sidebar__links'); -var ACTIVE_CLASS = 'is-active'; - -var toggle = function toggle() { - return [menu, links].forEach(function (el) { - return el.classList.toggle(ACTIVE_CLASS); - }); -}; - -menu.addEventListener('click', toggle); - -links.addEventListener('click', function (e) { - setTimeout(toggle, 40); - if (e.target.classList.contains('sidebar__link')) { - e.preventDefault(); - (0, _jump2.default)(e.target.getAttribute('href'), { - duration: 750, - offset: window.innerWidth <= 768 ? -64 : -32, - easing: _utils.easeOutQuint - }); - } -}); - -document.addEventListener('click', function (e) { - if (!e.target.closest('.sidebar__links') && !e.target.closest('.hamburger') && links.classList.contains(ACTIVE_CLASS)) { - toggle(); - } -}); - -exports.default = { toggle: toggle }; -},{"../deps/jump":11,"../deps/utils":12}],9:[function(require,module,exports) { -'use strict'; - -var _jump = require('../deps/jump'); - -var _jump2 = _interopRequireDefault(_jump); - -var _utils = require('../deps/utils'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var backToTopButton = (0, _utils.select)('.back-to-top-button'); - -window.addEventListener('scroll', function () { - backToTopButton.classList[(0, _utils.scrollY)() > 500 ? 'add' : 'remove']('is-visible'); -}); -backToTopButton.onclick = function () { - (0, _jump2.default)('.header', { - duration: 750, - easing: _utils.easeOutQuint - }); -}; -},{"../deps/jump":11,"../deps/utils":12}],3:[function(require,module,exports) { -'use strict'; - -require('normalize.css'); - -require('prismjs'); - -require('../css/deps/prism.css'); - -require('../css/index.scss'); - -require('./deps/polyfills'); - -var _Menu = require('./components/Menu'); - -var _Menu2 = _interopRequireDefault(_Menu); - -var _BackToTopButton = require('./components/BackToTopButton'); - -var _BackToTopButton2 = _interopRequireDefault(_BackToTopButton); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -},{"normalize.css":14,"prismjs":15,"../css/deps/prism.css":6,"../css/index.scss":5,"./deps/polyfills":7,"./components/Menu":8,"./components/BackToTopButton":9}],16:[function(require,module,exports) { - -var global = (1, eval)('this'); -var OldModule = module.bundle.Module; -function Module(moduleName) { - OldModule.call(this, moduleName); - this.hot = { - accept: function (fn) { - this._acceptCallback = fn || function () {}; - }, - dispose: function (fn) { - this._disposeCallback = fn; - } - }; -} - -module.bundle.Module = Module; - -var parent = module.bundle.parent; -if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { - var hostname = '' || location.hostname; - var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; - var ws = new WebSocket(protocol + '://' + hostname + ':' + '58660' + '/'); - ws.onmessage = function (event) { - var data = JSON.parse(event.data); - - if (data.type === 'update') { - data.assets.forEach(function (asset) { - hmrApply(global.require, asset); - }); - - data.assets.forEach(function (asset) { - if (!asset.isNew) { - hmrAccept(global.require, asset.id); - } - }); - } - - if (data.type === 'reload') { - ws.close(); - ws.onclose = function () { - location.reload(); - }; - } - - if (data.type === 'error-resolved') { - console.log('[parcel] ✨ Error resolved'); - } - - if (data.type === 'error') { - console.error('[parcel] 🚨 ' + data.error.message + '\n' + 'data.error.stack'); - } - }; -} - -function getParents(bundle, id) { - var modules = bundle.modules; - if (!modules) { - return []; - } - - var parents = []; - var k, d, dep; - - for (k in modules) { - for (d in modules[k][1]) { - dep = modules[k][1][d]; - if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) { - parents.push(+k); - } - } - } - - if (bundle.parent) { - parents = parents.concat(getParents(bundle.parent, id)); - } - - return parents; -} - -function hmrApply(bundle, asset) { - var modules = bundle.modules; - if (!modules) { - return; - } - - if (modules[asset.id] || !bundle.parent) { - var fn = new Function('require', 'module', 'exports', asset.generated.js); - asset.isNew = !modules[asset.id]; - modules[asset.id] = [fn, asset.deps]; - } else if (bundle.parent) { - hmrApply(bundle.parent, asset); - } -} - -function hmrAccept(bundle, id) { - var modules = bundle.modules; - if (!modules) { - return; - } - - if (!modules[id] && bundle.parent) { - return hmrAccept(bundle.parent, id); - } - - var cached = bundle.cache[id]; - if (cached && cached.hot._disposeCallback) { - cached.hot._disposeCallback(); - } - - delete bundle.cache[id]; - bundle(id); - - cached = bundle.cache[id]; - if (cached && cached.hot && cached.hot._acceptCallback) { - cached.hot._acceptCallback(); - return true; - } - - return getParents(global.require, id).some(function (id) { - return hmrAccept(global.require, id); - }); -} -},{}]},{},[16,3]) -//# sourceMappingURL=/dist/f06fd0495a34430f242f7611190395d6.map \ No newline at end of file diff --git a/dist/f06fd0495a34430f242f7611190395d6.map b/dist/f06fd0495a34430f242f7611190395d6.map deleted file mode 100644 index 5cefc8211..000000000 --- a/dist/f06fd0495a34430f242f7611190395d6.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["30-seconds-of-css/node_modules/prismjs/prism.js","30-seconds-of-css/src/js/deps/polyfills.js","30-seconds-of-css/src/js/deps/jump.js","30-seconds-of-css/src/js/deps/utils.js","30-seconds-of-css/src/js/components/Menu.js","30-seconds-of-css/src/js/components/BackToTopButton.js","30-seconds-of-css/src/js/index.js","30-seconds-of-css/node_modules/parcel-bundler/src/builtins/bundle-url.js","30-seconds-of-css/node_modules/parcel-bundler/src/builtins/css-loader.js"],"names":["e","Element","prototype","matches","matchesSelector","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","closest","s","el","document","documentElement","contains","parentElement","parentNode","nodeType","global","factory","exports","module","define","amd","Jump","easeInOutQuad","t","b","c","d","_typeof","Symbol","iterator","obj","constructor","jumper","element","start","stop","offset","easing","a11y","distance","duration","timeStart","timeElapsed","next","callback","location","window","scrollY","pageYOffset","top","getBoundingClientRect","loop","timeCurrent","scrollTo","requestAnimationFrame","done","setAttribute","focus","jump","target","options","arguments","length","undefined","querySelector","singleton","scrolling","end","to","hash","scroll","setTimeout","select","selectAll","slice","call","querySelectorAll","easeOutQuint","test","navigator","platform","MSStream","body","style","cursor","ua","userAgent","isRelevantMacOS","match","isAffectedBrowser","allEls","letterSpacing","forEach","fontSize","parseFloat","getComputedStyle","fontStyle","menu","links","ACTIVE_CLASS","toggle","classList","addEventListener","preventDefault","getAttribute","innerWidth","backToTopButton","onclick","bundleURL","getBundleURLCached","getBundleURL","Error","err","stack","getBaseURL","url","replace","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","insertBefore","nextSibling","cssTimeout","reloadCSS","i"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AOAA,IAAI8G,YAAY,IAAhB;AACA,SAASC,kBAAT,GAA8B;AAC5B,MAAI,CAACD,SAAL,EAAgB;AACdA,gBAAYE,cAAZ;AACD;;AAED,SAAOF,SAAP;AACD;;AAED,SAASE,YAAT,GAAwB;AACtB;AACA,MAAI;AACF,UAAM,IAAIC,KAAJ,EAAN;AACD,GAFD,CAEE,OAAOC,GAAP,EAAY;AACZ,QAAI/G,UAAU,CAAC,KAAK+G,IAAIC,KAAV,EAAiBzB,KAAjB,CAAuB,gCAAvB,CAAd;AACA,QAAIvF,OAAJ,EAAa;AACX,aAAOiH,WAAWjH,QAAQ,CAAR,CAAX,CAAP;AACD;AACF;;AAED,SAAO,GAAP;AACD;;AAED,SAASiH,UAAT,CAAoBC,GAApB,EAAyB;AACvB,SAAO,CAAC,KAAKA,GAAN,EAAWC,OAAX,CAAmB,uCAAnB,EAA4D,IAA5D,IAAoE,GAA3E;AACD;;AAEDnG,QAAQ6F,YAAR,GAAuBD,kBAAvB;AACA5F,QAAQiG,UAAR,GAAqBA,UAArB;;AC5BA,IAAIG,SAASC,QAAQ,cAAR,CAAb;;AAEA,SAASC,UAAT,CAAoBC,IAApB,EAA0B;AACxB,MAAIC,UAAUD,KAAKE,SAAL,EAAd;AACAD,UAAQE,MAAR,GAAiB,YAAY;AAC3BH,SAAKI,MAAL;AACD,GAFD;AAGAH,UAAQI,IAAR,GAAeL,KAAKK,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,IAA0B,GAA1B,GAAgCC,KAAKC,GAAL,EAA/C;AACAR,OAAK3G,UAAL,CAAgBoH,YAAhB,CAA6BR,OAA7B,EAAsCD,KAAKU,WAA3C;AACD;;AAED,IAAIC,aAAa,IAAjB;AACA,SAASC,SAAT,GAAqB;AACnB,MAAID,UAAJ,EAAgB;AACd;AACD;;AAEDA,eAAa5D,WAAW,YAAY;AAClC,QAAI2B,QAAQzF,SAASmE,gBAAT,CAA0B,wBAA1B,CAAZ;AACA,SAAK,IAAIyD,IAAI,CAAb,EAAgBA,IAAInC,MAAMpC,MAA1B,EAAkCuE,GAAlC,EAAuC;AACrC,UAAIhB,OAAOH,UAAP,CAAkBhB,MAAMmC,CAAN,EAASR,IAA3B,MAAqCR,OAAOP,YAAP,EAAzC,EAAgE;AAC9DS,mBAAWrB,MAAMmC,CAAN,CAAX;AACD;AACF;;AAEDF,iBAAa,IAAb;AACD,GATY,EASV,EATU,CAAb;AAUD;;AAEDjH,OAAOD,OAAP,GAAiBmH,SAAjB;;;;;;;;;AR7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACt0BA,IAAMtI,IAAIC,QAAQC,SAAlB;AACA,IAAI,CAACF,EAAEG,OAAP,EAAgB;AACdH,IAAEG,OAAF,GACEH,EAAEI,eAAF,IAAqBJ,EAAEK,iBAAvB,IAA4CL,EAAEM,qBAA9C,IAAuEN,EAAEO,kBAD3E;AAED;AACD,IAAI,CAACP,EAAEQ,OAAP,EAAgB;AACdR,IAAEQ,OAAF,GAAY,UAASC,CAAT,EAAY;AACtB,QAAIC,KAAK,IAAT;AACA,QAAI,CAACC,SAASC,eAAT,CAAyBC,QAAzB,CAAkCH,EAAlC,CAAL,EAA4C,OAAO,IAAP;AAC5C,OAAG;AACD,UAAIA,GAAGP,OAAH,CAAWM,CAAX,CA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","file":"f06fd0495a34430f242f7611190395d6.map","sourcesContent":["\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n * MIT license http://www.opensource.org/licenses/mit-license.php/\n * @author Lea Verou http://lea.verou.me\n */\n\nvar Prism = (function(){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-(\\w+)\\b/i;\nvar uniqueId = 0;\n\nvar _ = _self.Prism = {\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\tutil: {\n\t\tencode: function (tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);\n\t\t\t} else if (_.util.type(tokens) === 'Array') {\n\t\t\t\treturn tokens.map(_.util.encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&').replace(/ text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\tvar match = pattern.exec(str),\n\t\t\t\t\t delNum = 1;\n\n\t\t\t\t\t// Greedy patterns can override/remove up to two previously matched tokens\n\t\t\t\t\tif (!match && greedy && i != strarr.length - 1) {\n\t\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\t\tmatch = pattern.exec(text);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\n\t\t\t\t\t\t to = match.index + match[0].length,\n\t\t\t\t\t\t k = i,\n\t\t\t\t\t\t p = pos;\n\n\t\t\t\t\t\tfor (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {\n\t\t\t\t\t\t\tp += strarr[k].length;\n\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\n\t\t\t\t\t\t\tif (from >= p) {\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t\tpos = p;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * If strarr[i] is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\t * If strarr[k - 1] is greedy we are in conflict with another greedy pattern\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (strarr[i] instanceof Token || strarr[k - 1].greedy) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\n\t\t\t\t\t\tdelNum = k - i;\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(lookbehind) {\n\t\t\t\t\t\tlookbehindLength = match[1].length;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\t match = match[0].slice(lookbehindLength),\n\t\t\t\t\t to = from + match.length,\n\t\t\t\t\t before = str.slice(0, from),\n\t\t\t\t\t after = str.slice(to);\n\n\t\t\t\t\tvar args = [i, delNum];\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t\targs.push(before);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\n\n\t\t\t\t\targs.push(wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\targs.push(after);\n\t\t\t\t\t}\n\n\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\n\n\t\t\t\t\tif (delNum != 1)\n\t\t\t\t\t\t_.matchGrammar(text, strarr, grammar, i, pos, true, token);\n\n\t\t\t\t\tif (oneshot)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttokenize: function(text, grammar, language) {\n\t\tvar strarr = [text];\n\n\t\tvar rest = grammar.rest;\n\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\t_.matchGrammar(text, strarr, grammar, 0, 0, false);\n\n\t\treturn strarr;\n\t},\n\n\thooks: {\n\t\tall: {},\n\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || \"\").length|0;\n\tthis.greedy = !!greedy;\n};\n\nToken.stringify = function(o, language, parent) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\n\tif (_.util.type(o) === 'Array') {\n\t\treturn o.map(function(element) {\n\t\t\treturn Token.stringify(element, language, o);\n\t\t}).join('');\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: Token.stringify(o.content, language, parent),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language,\n\t\tparent: parent\n\t};\n\n\tif (o.alias) {\n\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\n\t\tArray.prototype.push.apply(env.classes, aliases);\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = Object.keys(env.attributes).map(function(name) {\n\t\treturn name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t}).join(' ');\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\n\n};\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _self.Prism;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _self.Prism;\n}\n\n//Get current script and highlight\nvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (!_.manual && !script.hasAttribute('data-manual')) {\n\t\tif(document.readyState !== \"loading\") {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(_.highlightAll, 16);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\n\t\t}\n\t}\n}\n\nreturn _self.Prism;\n\n})();\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': //,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': //i,\n\t'cdata': //i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^|[^\\\\])[\"']/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nPrism.languages.xml = Prism.languages.markup;\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\nPrism.languages.css = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t'atrule': {\n\t\tpattern: /@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/\n\t\t\t// See rest below\n\t\t}\n\t},\n\t'url': /url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\n\t'selector': /[^{}\\s][^{};]*?(?=\\s*\\{)/,\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n\t'important': /\\B!important\\b/i,\n\t'function': /[-a-z0-9]+(?=\\()/i,\n\t'punctuation': /[(){};:]/\n};\n\nPrism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'style': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/style>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.css,\n\t\t\talias: 'language-css',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t'style-attr': {\n\t\t\tpattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n\t\t\tinside: {\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /^\\s*style/i,\n\t\t\t\t\tinside: Prism.languages.markup.tag.inside\n\t\t\t\t},\n\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /.+/i,\n\t\t\t\t\tinside: Prism.languages.css\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'language-css'\n\t\t}\n\t}, Prism.languages.markup.tag);\n}\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\tpunctuation: /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /[a-z0-9_]+(?=\\()/i,\n\t'number': /\\b-?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)\\b/i,\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\n\t'number': /\\b-?(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?|NaN|Infinity)\\b/,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,\n\t'operator': /-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/\n});\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: /(^|[^/])\\/(?!\\/)(\\[[^\\]\\r\\n]+]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})]))/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,\n\t\talias: 'function'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'script': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/script>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript,\n\t\t\talias: 'language-javascript',\n\t\t\tgreedy: true\n\t\t}\n\t});\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\tif (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {\n\t\treturn;\n\t}\n\n\tself.Prism.fileHighlight = function() {\n\n\t\tvar Extensions = {\n\t\t\t'js': 'javascript',\n\t\t\t'py': 'python',\n\t\t\t'rb': 'ruby',\n\t\t\t'ps1': 'powershell',\n\t\t\t'psm1': 'powershell',\n\t\t\t'sh': 'bash',\n\t\t\t'bat': 'batch',\n\t\t\t'h': 'c',\n\t\t\t'tex': 'latex'\n\t\t};\n\n\t\tArray.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language, parent = pre;\n\t\t\tvar lang = /\\blang(?:uage)?-(?!\\*)(\\w+)\\b/i;\n\t\t\twhile (parent && !lang.test(parent.className)) {\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\n\t\t\tif (parent) {\n\t\t\t\tlanguage = (pre.className.match(lang) || [, ''])[1];\n\t\t\t}\n\n\t\t\tif (!language) {\n\t\t\t\tvar extension = (src.match(/\\.(\\w+)$/) || [, ''])[1];\n\t\t\t\tlanguage = Extensions[extension] || extension;\n\t\t\t}\n\n\t\t\tvar code = document.createElement('code');\n\t\t\tcode.className = 'language-' + language;\n\n\t\t\tpre.textContent = '';\n\n\t\t\tcode.textContent = 'Loading…';\n\n\t\t\tpre.appendChild(code);\n\n\t\t\tvar xhr = new XMLHttpRequest();\n\n\t\t\txhr.open('GET', src, true);\n\n\t\t\txhr.onreadystatechange = function () {\n\t\t\t\tif (xhr.readyState == 4) {\n\n\t\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\t\tcode.textContent = xhr.responseText;\n\n\t\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t\t}\n\t\t\t\t\telse if (xhr.status >= 400) {\n\t\t\t\t\t\tcode.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcode.textContent = '✖ Error: File does not exist or is empty';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send(null);\n\t\t});\n\n\t};\n\n\tdocument.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);\n\n})();\n","const e = Element.prototype\nif (!e.matches) {\n e.matches =\n e.matchesSelector || e.msMatchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector\n}\nif (!e.closest) {\n e.closest = function(s) {\n var el = this\n if (!document.documentElement.contains(el)) return null\n do {\n if (el.matches(s)) return el\n el = el.parentElement || el.parentNode\n } while (el !== null && el.nodeType === 1)\n return null\n }\n}\n",";(function(global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? (module.exports = factory())\n : typeof define === 'function' && define.amd ? define(factory) : (global.Jump = factory())\n})(this, function() {\n 'use strict'\n\n // Robert Penner's easeInOutQuad\n\n // find the rest of his easing functions here: http://robertpenner.com/easing/\n // find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\n var easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2\n if (t < 1) return c / 2 * t * t + b\n t--\n return -c / 2 * (t * (t - 2) - 1) + b\n }\n\n var _typeof =\n typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'\n ? function(obj) {\n return typeof obj\n }\n : function(obj) {\n return obj &&\n typeof Symbol === 'function' &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? 'symbol'\n : typeof obj\n }\n\n var jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0 // element to scroll to (node)\n\n var start = void 0 // where scroll starts (px)\n var stop = void 0 // where scroll stops (px)\n\n var offset = void 0 // adjustment from the stop position (px)\n var easing = void 0 // easing function (function)\n var a11y = void 0 // accessibility support flag (boolean)\n\n var distance = void 0 // distance of scroll (px)\n var duration = void 0 // scroll duration (ms)\n\n var timeStart = void 0 // time scroll started (ms)\n var timeElapsed = void 0 // time spent scrolling thus far (ms)\n\n var next = void 0 // next scroll position (px)\n\n var callback = void 0 // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration)\n\n // scroll to it\n window.scrollTo(0, next)\n\n // check progress\n timeElapsed < duration\n ? window.requestAnimationFrame(loop) // continue scroll loop\n : done() // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance)\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1')\n\n // focus the element\n element.focus()\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback()\n }\n\n // reset time for next jump\n timeStart = false\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}\n\n // resolve options, or use defaults\n duration = options.duration || 1000\n offset = options.offset || 0\n callback = options.callback // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad\n a11y = options.a11y || false\n\n // cache starting position\n start = location()\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined // no element to scroll to\n a11y = false // make sure accessibility is off\n stop = start + target\n break\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target\n stop = top(element)\n break\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target)\n stop = top(element)\n break\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration\n break\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance)\n break\n }\n\n // start the loop\n window.requestAnimationFrame(loop)\n }\n\n // expose only the jump method\n return jump\n }\n\n // export singleton\n\n var singleton = jumper()\n\n return (() => {\n let scrolling\n const end = () => (scrolling = false)\n return (to, options = {}) => {\n if (scrolling) return\n const scrollY = window.scrollY || window.pageYOffset\n if (to !== '.header') location.hash = to\n scroll(0, scrollY)\n scrolling = true\n setTimeout(end, options.duration || 0)\n return singleton(to, options)\n }\n })()\n})\n","export const select = s => document.querySelector(s)\nexport const selectAll = s => [].slice.call(document.querySelectorAll(s))\nexport const scrollY = () => window.scrollY || window.pageYOffset\nexport const easeOutQuint = (t, b, c, d) => c * ((t = t / d - 1) * t ** 4 + 1) + b\n\n/*\n* Make iOS behave normally.\n*/\nif (/iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream) {\n document.body.style.cursor = 'pointer'\n}\n\n/*\n* A small utility to fix the letter kerning on macOS Chrome and Firefox when using the system font\n* (San Francisco). It is now fixed in the text rendering engine in FF 58 and Chrome 64.\n* UPDATE: It appears the applied fix doesn't work when the font is in italics. New fix has been added.\n* Must be applied to all browsers for now.\n*/\n;(() => {\n const ua = navigator.userAgent\n\n // macOS 10.11 (El Capitan) came with San Francisco. Previous versions used Helvetica\n const isRelevantMacOS =\n /Mac/.test(navigator.platform) && (ua.match(/OS X 10[._](\\d{1,2})/) || [])[1] >= 11\n\n // Chrome v64 and FF v58 fix the issue\n const isAffectedBrowser =\n (ua.match(/Chrome\\/(\\d+)\\./) || [])[1] < 64 || (ua.match(/Firefox\\/(\\d+)\\./) || [])[1] < 58\n\n const allEls = [].slice.call(document.querySelectorAll('*'))\n\n if (isRelevantMacOS && isAffectedBrowser) {\n document.documentElement.style.letterSpacing = '-0.3px'\n allEls.forEach(el => {\n const fontSize = parseFloat(getComputedStyle(el).fontSize)\n if (fontSize >= 20) el.style.letterSpacing = '0.3px'\n })\n } else if (isRelevantMacOS && !isAffectedBrowser) {\n // Italics fix\n allEls.forEach(el => {\n const { fontSize, fontStyle } = getComputedStyle(el)\n if (fontStyle === 'italic') {\n el.style.letterSpacing = parseFloat(fontSize) >= 20 ? '0.3px' : '-0.3px'\n }\n })\n }\n})()\n","import jump from '../deps/jump'\nimport { select, selectAll, easeOutQuint } from '../deps/utils'\n\nconst menu = select('.hamburger')\nconst links = select('.sidebar__links')\nconst ACTIVE_CLASS = 'is-active'\n\nconst toggle = () => [menu, links].forEach(el => el.classList.toggle(ACTIVE_CLASS))\n\nmenu.addEventListener('click', toggle)\n\nlinks.addEventListener('click', e => {\n setTimeout(toggle, 40)\n if (e.target.classList.contains('sidebar__link')) {\n e.preventDefault()\n jump(e.target.getAttribute('href'), {\n duration: 750,\n offset: window.innerWidth <= 768 ? -64 : -32,\n easing: easeOutQuint\n })\n }\n})\n\ndocument.addEventListener('click', e => {\n if (\n !e.target.closest('.sidebar__links') &&\n !e.target.closest('.hamburger') &&\n links.classList.contains(ACTIVE_CLASS)\n ) {\n toggle()\n }\n})\n\nexport default { toggle }\n","import jump from '../deps/jump'\nimport { select, scrollY, easeOutQuint } from '../deps/utils'\n\nconst backToTopButton = select('.back-to-top-button')\n\nwindow.addEventListener('scroll', () => {\n backToTopButton.classList[scrollY() > 500 ? 'add' : 'remove']('is-visible')\n})\nbackToTopButton.onclick = () => {\n jump('.header', {\n duration: 750,\n easing: easeOutQuint\n })\n}\n","// Deps\nimport 'normalize.css'\nimport 'prismjs'\n\n// CSS\nimport '../css/deps/prism.css'\nimport '../css/index.scss'\n\n// Polyfills\nimport './deps/polyfills'\n\n// Components\nimport Menu from './components/Menu'\nimport BackToTopButton from './components/BackToTopButton'\n","var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"]} \ No newline at end of file