summaryrefslogtreecommitdiff
path: root/src/components/shared/Basic.module.css
diff options
context:
space:
mode:
authorHaishan <[email protected]>2019-12-27 16:29:10 +0800
committerHaishan <[email protected]>2019-12-27 16:29:46 +0800
commit3d761f5c361426f7c5a57b4817830c768317f80b (patch)
tree127a315c8e478ef8c71a65acc9b2cf491ddd3cb3 /src/components/shared/Basic.module.css
parentaca578cb9dfdaed33f91c62ffdf3ef1a456c6a72 (diff)
refactor: add a loading state to Button
Diffstat (limited to 'src/components/shared/Basic.module.css')
-rw-r--r--src/components/shared/Basic.module.css102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/components/shared/Basic.module.css b/src/components/shared/Basic.module.css
index 8e3e65c..8e5a113 100644
--- a/src/components/shared/Basic.module.css
+++ b/src/components/shared/Basic.module.css
@@ -12,3 +12,105 @@ h2.sectionNameType {
margin: 0 0.3em;
}
}
+
+/**
+ * loading dots
+ *
+ * light
+ * dot color is #000 (black)
+ *
+ * transparency change:
+ * dot1 dot2 do3
+ * phase1 0.1 0.3 0.5
+ * phase2 0.5 0.1 0.3
+ * phase3 0.3 0.5 0.1
+ *
+ * dark
+ * dot color is #fff (white)
+ *
+ * transparency change:
+ * dot1 dot2 do3
+ * phase1 0.5 0.3 0.1
+ * phase2 0.1 0.5 0.3
+ * phase3 0.3 0.1 0.5
+ *
+ */
+
+:global {
+ body.light {
+ /*
+ * --loading-dot-{dot-index}-{dot-keyframe-phase}
+ */
+ --loading-dot-1-1: rgba(0, 0, 0, 0.1);
+ --loading-dot-1-2: rgba(0, 0, 0, 0.5);
+ --loading-dot-1-3: rgba(0, 0, 0, 0.3);
+ --loading-dot-2-1: rgba(0, 0, 0, 0.3);
+ --loading-dot-2-2: rgba(0, 0, 0, 0.1);
+ --loading-dot-2-3: rgba(0, 0, 0, 0.5);
+ --loading-dot-3-1: rgba(0, 0, 0, 0.5);
+ --loading-dot-3-2: rgba(0, 0, 0, 0.3);
+ --loading-dot-3-3: rgba(0, 0, 0, 0.1);
+ }
+ body.dark {
+ --loading-dot-1-1: rgba(255, 255, 255, 0.5);
+ --loading-dot-1-2: rgba(255, 255, 255, 0.1);
+ --loading-dot-1-3: rgba(255, 255, 255, 0.3);
+ --loading-dot-2-1: rgba(255, 255, 255, 0.3);
+ --loading-dot-2-2: rgba(255, 255, 255, 0.5);
+ --loading-dot-2-3: rgba(255, 255, 255, 0.1);
+ --loading-dot-3-1: rgba(255, 255, 255, 0.1);
+ --loading-dot-3-2: rgba(255, 255, 255, 0.3);
+ --loading-dot-3-3: rgba(255, 255, 255, 0.5);
+ }
+}
+
+.loadingDot,
+.loadingDot:before,
+.loadingDot:after {
+ display: inline-block;
+ vertical-align: middle;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ font-size: 0;
+}
+
+.loadingDot {
+ $d: 1s;
+
+ position: relative;
+ background-color: var(--loading-dot-2-1);
+ animation: dot2 $d step-start infinite;
+ &:before {
+ content: '';
+ position: absolute;
+ left: -12px;
+ background-color: var(--loading-dot-1-1);
+ animation: dot1 $d step-start infinite;
+ }
+ &:after {
+ content: '';
+ position: absolute;
+ right: -12px;
+ background-color: var(--loading-dot-3-1);
+ animation: dot3 $d step-start infinite;
+ }
+}
+/* prettier-ignore */
+@keyframes dot1 {
+ 0%, 100% { background-color: var(--loading-dot-1-1) }
+ 33% { background-color: var(--loading-dot-1-2) }
+ 66% { background-color: var(--loading-dot-1-3) }
+}
+/* prettier-ignore */
+@keyframes dot2 {
+ 0%, 100% { background-color: var(--loading-dot-2-1) }
+ 33% { background-color: var(--loading-dot-2-2) }
+ 66% { background-color: var(--loading-dot-2-3) }
+}
+/* prettier-ignore */
+@keyframes dot3 {
+ 0%, 100% { background-color: var(--loading-dot-3-1) }
+ 33% { background-color: var(--loading-dot-3-2) }
+ 66% { background-color: var(--loading-dot-3-3) }
+}