diff --git a/docs/src/pages/components/Progress.vue b/docs/src/pages/components/Progress.vue
index fab2713..f0767be 100644
--- a/docs/src/pages/components/Progress.vue
+++ b/docs/src/pages/components/Progress.vue
@@ -23,9 +23,15 @@
- empty
- Type
- Description
+ md-indeterminate
+ Boolean
+ Enable the indeterminate state. Default false
+
+
+
+ md-progress
+ Number
+ Define the current progress of the progress. Default 0
@@ -35,24 +41,56 @@
-
+ <md-progress :md-progress="progress"></md-progress>
+ <md-progress class="md-accent" :md-progress="progress"></md-progress>
+ <md-progress class="md-warn" :md-progress="progress"></md-progress>
+ <md-progress md-indeterminate></md-progress>
+ <md-progress class="md-accent" md-indeterminate></md-progress>
+ <md-progress class="md-warn" md-indeterminate></md-progress>
+
+
+
+
+
+
+
+
+ <md-progress md-theme="orange" md-indeterminate></md-progress>
+ <md-progress md-theme="green" :md-progress="progress"></md-progress>
+ <md-progress md-theme="purple" md-indeterminate></md-progress>
@@ -62,19 +100,49 @@
diff --git a/src/components/mdProgress/mdProgress.scss b/src/components/mdProgress/mdProgress.scss
index b1efbfc..792a9b0 100644
--- a/src/components/mdProgress/mdProgress.scss
+++ b/src/components/mdProgress/mdProgress.scss
@@ -1,5 +1,84 @@
@import '../../core/stylesheets/variables.scss';
.md-progress {
+ width: 100%;
+ height: 4px;
+ position: relative;
+ overflow: hidden;
+ transition: $swift-ease-out;
+ &.md-indeterminate .md-progress-track {
+ right: 0;
+
+ &:before,
+ &:after {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ will-change: left, right;
+ content: '';
+ }
+
+ &:before {
+ animation: progress-indeterminate 2.3s cubic-bezier(.65, .815, .735, .395) infinite;
+ }
+
+ &:after {
+ animation: progress-indeterminate-short 2.3s cubic-bezier(.165, .84, .44, 1) infinite;
+ animation-delay: 1.15s;
+ }
+ }
+
+ &.md-progress-enter,
+ &.md-progress-leave-active {
+ opacity: 0;
+ transform: scaleY(0) translateZ(0);
+ }
+
+ &.md-progress-enter-active {
+ transform: scaleY(1) translateZ(0);
+ }
+}
+
+.md-progress-track {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ transition: $swift-ease-out;
+}
+
+@keyframes progress-indeterminate {
+ 0% {
+ right: 100%;
+ left: -35%;
+ }
+
+ 60% {
+ right: -100%;
+ left: 100%;
+ }
+
+ 100% {
+ right: -100%;
+ left: 100%;
+ }
+}
+
+@keyframes progress-indeterminate-short {
+ 0% {
+ right: 100%;
+ left: -200%;
+ }
+
+ 60% {
+ right: -8%;
+ left: 107%;
+ }
+
+ 100% {
+ right: -8%;
+ left: 107%;
+ }
}
diff --git a/src/components/mdProgress/mdProgress.theme b/src/components/mdProgress/mdProgress.theme
index d3192a0..a1c3d5c 100644
--- a/src/components/mdProgress/mdProgress.theme
+++ b/src/components/mdProgress/mdProgress.theme
@@ -1,5 +1,46 @@
.THEME_NAME {
&.md-progress {
+ background-color: #{'PRIMARY-COLOR-0.38'};
+ &:not(.md-indeterminate) .md-progress-track {
+ background-color: #{'PRIMARY-COLOR'};
+ }
+
+ .md-progress-track {
+ &:after,
+ &:before {
+ background-color: #{'PRIMARY-COLOR'};
+ }
+ }
+
+ &.md-accent {
+ background-color: #{'ACCENT-COLOR-0.38'};
+
+ &:not(.md-indeterminate) .md-progress-track {
+ background-color: #{'ACCENT-COLOR'};
+ }
+
+ .md-progress-track {
+ &:after,
+ &:before {
+ background-color: #{'ACCENT-COLOR'};
+ }
+ }
+ }
+
+ &.md-warn {
+ background-color: #{'WARN-COLOR-0.38'};
+
+ &:not(.md-indeterminate) .md-progress-track {
+ background-color: #{'WARN-COLOR'};
+ }
+
+ .md-progress-track {
+ &:after,
+ &:before {
+ background-color: #{'WARN-COLOR'};
+ }
+ }
+ }
}
}
diff --git a/src/components/mdProgress/mdProgress.vue b/src/components/mdProgress/mdProgress.vue
index 8b27a3e..4c0a715 100644
--- a/src/components/mdProgress/mdProgress.vue
+++ b/src/components/mdProgress/mdProgress.vue
@@ -1,6 +1,7 @@
-
+
@@ -12,26 +13,26 @@
export default {
props: {
-
+ mdIndeterminate: Boolean,
+ mdProgress: {
+ type: Number,
+ default: 0
+ }
},
mixins: [theme],
computed: {
classes() {
return {
-
+ 'md-indeterminate': this.mdIndeterminate
};
},
styles() {
- return {
-
- };
+ if (!this.mdIndeterminate) {
+ return {
+ width: this.mdProgress + '%'
+ };
+ }
}
- },
- data: () => ({
-
- }),
- methods: {
-
}
};
diff --git a/src/components/mdSpinner/mdSpinner.theme b/src/components/mdSpinner/mdSpinner.theme
index ad8abf4..25f5cb9 100644
--- a/src/components/mdSpinner/mdSpinner.theme
+++ b/src/components/mdSpinner/mdSpinner.theme
@@ -1,18 +1,18 @@
.THEME_NAME {
&.md-spinner {
.md-spinner-path {
- stroke: #{'PRIMARY-COLOR'}
+ stroke: #{'PRIMARY-COLOR'};
}
&.md-accent {
.md-spinner-path {
- stroke: #{'ACCENT-COLOR'}
+ stroke: #{'ACCENT-COLOR'};
}
}
&.md-warn {
.md-spinner-path {
- stroke: #{'WARN-COLOR'}
+ stroke: #{'WARN-COLOR'};
}
}
}
diff --git a/src/components/mdSpinner/mdSpinner.vue b/src/components/mdSpinner/mdSpinner.vue
index 8ef1c6d..0262f40 100644
--- a/src/components/mdSpinner/mdSpinner.vue
+++ b/src/components/mdSpinner/mdSpinner.vue
@@ -57,12 +57,6 @@
return `${progress}, 200`;
}
- },
- data: () => ({
-
- }),
- methods: {
-
}
};