aboutsummaryrefslogtreecommitdiffstats
path: root/scss/uikit/components/spinner.scss
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-06-05 16:07:35 +0100
committerGravatar GitHub <[email protected]>2018-06-05 16:07:35 +0100
commit13a3c1e29473aa9f563e8db4ad94cb3eee9bdfe6 (patch)
tree290c6d668ec9161a39065456a33ec634215907cc /scss/uikit/components/spinner.scss
parentdocumentation metadata API (#57) (diff)
Move from CSS to SCSS (#86)
* Rewrite existing style.css with sass * Add "uses-rst" class for pages that use rendered RST This replaces the previous method of just listing every page in the sass * Remove old debug print * Mixins and error pages * Newly built CSS * Add SASS cache to .gitignore * New error SASS * Slight changes to error template * Add UIKit SCSS to repo This includes the LICENSE and our customizations, which makes life way easier for contributors * Reorganize sass folder; your watchers can avoid uikit now * Sass folder should be called scss * Change variable names * [SCSS] Linting * Fix scss_lint gem name [ci skip] * [SCSS] Now you can compile with just Python! * Temporary hack to make the wiki editor taller * [SCSS] @jchristgit * [SCSS.py] Require specification of include dir to simplify the SCSS imports * [SCSS] All inline styles have been removed * [SCSS] Update UIKit theme to import from our variables * [SCSS] Remove extra newlines in errors/_common.scss
Diffstat (limited to 'scss/uikit/components/spinner.scss')
-rw-r--r--scss/uikit/components/spinner.scss74
1 files changed, 74 insertions, 0 deletions
diff --git a/scss/uikit/components/spinner.scss b/scss/uikit/components/spinner.scss
new file mode 100644
index 00000000..a02f41d1
--- /dev/null
+++ b/scss/uikit/components/spinner.scss
@@ -0,0 +1,74 @@
+// Name: Spinner
+// Description: Component to create a loading spinner
+//
+// Component: `uk-spinner`
+//
+// ========================================================================
+
+
+// Variables
+// ========================================================================
+
+$spinner-size: 30px !default;
+$spinner-stroke-width: 1 !default;
+$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; // Minus stroke width to prevent overflow clipping
+$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default;
+$spinner-duration: 1.4s !default;
+
+
+/* ========================================================================
+ Component: Spinner
+ ========================================================================== */
+
+/*
+ * Adopts `uk-icon`
+ */
+
+.uk-spinner {
+ @if(mixin-exists(hook-spinner)) {@include hook-spinner();}
+}
+
+
+/* SVG
+ ========================================================================== */
+
+.uk-spinner > * { animation: uk-spinner-rotate $spinner-duration linear infinite; }
+
+@keyframes uk-spinner-rotate {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(270deg); }
+}
+
+/*
+ * Circle
+ */
+
+.uk-spinner > * > * {
+ stroke-dasharray: $spinner-circumference;
+ stroke-dashoffset: 0;
+ transform-origin: center;
+ animation: uk-spinner-dash $spinner-duration ease-in-out infinite;
+ stroke-width: $spinner-stroke-width;
+ stroke-linecap: round;
+}
+
+@keyframes uk-spinner-dash {
+ 0% { stroke-dashoffset: $spinner-circumference; }
+ 50% {
+ stroke-dashoffset: $spinner-circumference/4;
+ transform:rotate(135deg);
+ }
+ 100% {
+ stroke-dashoffset: $spinner-circumference;
+ transform:rotate(450deg);
+ }
+}
+
+
+// Hooks
+// ========================================================================
+
+@if(mixin-exists(hook-spinner-misc)) {@include hook-spinner-misc();}
+
+// @mixin hook-spinner(){}
+// @mixin hook-spinner-misc(){}