integarting admin dashboard
This commit is contained in:
@ -0,0 +1,47 @@
|
||||
/* Bar loader */
|
||||
.bar-loader{
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.bar-loader span{
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 30px;
|
||||
background-color: rgba(theme-color(danger), .7);
|
||||
}
|
||||
|
||||
.bar-loader span:nth-child(1){
|
||||
animation: grow 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.bar-loader span:nth-child(2){
|
||||
animation: grow 1s ease-in-out 0.15s infinite;
|
||||
}
|
||||
|
||||
.bar-loader span:nth-child(3){
|
||||
animation: grow 1s ease-in-out 0.30s infinite;
|
||||
}
|
||||
|
||||
.bar-loader span:nth-child(4){
|
||||
animation: grow 1s ease-in-out 0.45s infinite;
|
||||
}
|
||||
|
||||
@keyframes grow{
|
||||
0%, 100%{
|
||||
-webkit-transform: scaleY(1);
|
||||
-ms-transform: scaleY(1);
|
||||
-o-transform: scaleY(1);
|
||||
transform: scaleY(1);
|
||||
}
|
||||
|
||||
50%{
|
||||
-webkit-transform: scaleY(1.8);
|
||||
-ms-transform: scaleY(1.8);
|
||||
-o-transform: scaleY(1.8);
|
||||
transform: scaleY(1.8);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/* Circle loader */
|
||||
.circle-loader {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.circle-loader:before, .circle-loader:after{
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 100%;
|
||||
border: 10px solid transparent;
|
||||
border-top-color: theme-color(warning);
|
||||
}
|
||||
|
||||
.circle-loader:before{
|
||||
z-index: 10;
|
||||
animation: spin 1s infinite;
|
||||
}
|
||||
|
||||
.circle-loader:after{
|
||||
border: 10px solid theme-color(secondary);
|
||||
}
|
||||
|
||||
@keyframes spin{
|
||||
0%{
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100%{
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
-o-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,116 @@
|
||||
#pgloading {
|
||||
position: static;
|
||||
.bokeh {
|
||||
font-size: 100px;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
border-radius: 50%;
|
||||
border: .01em solid $border-color;
|
||||
list-style: none;
|
||||
padding:0;
|
||||
li {
|
||||
position: absolute;
|
||||
width: .2em;
|
||||
height: .2em;
|
||||
border-radius: 50%;
|
||||
&:nth-child(1) {
|
||||
left: 50%;
|
||||
top: 0;
|
||||
margin: 0 0 0 -.1em;
|
||||
background: theme-color(success);
|
||||
-webkit-transform-origin: 50% 250%;
|
||||
transform-origin: 50% 250%;
|
||||
-webkit-animation:
|
||||
rota 1.13s linear infinite,
|
||||
opa 3.67s ease-in-out infinite alternate;
|
||||
animation:
|
||||
rota 1.13s linear infinite,
|
||||
opa 3.67s ease-in-out infinite alternate;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
top: 50%;
|
||||
right: 0;
|
||||
margin: -.1em 0 0 0;
|
||||
background: theme-color(danger);
|
||||
-webkit-transform-origin: -150% 50%;
|
||||
transform-origin: -150% 50%;
|
||||
-webkit-animation:
|
||||
rota 1.86s linear infinite,
|
||||
opa 4.29s ease-in-out infinite alternate;
|
||||
animation:
|
||||
rota 1.86s linear infinite,
|
||||
opa 4.29s ease-in-out infinite alternate;
|
||||
}
|
||||
&:nth-child(3) {
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
margin: 0 0 0 -.1em;
|
||||
background: theme-color(warning);
|
||||
-webkit-transform-origin: 50% -150%;
|
||||
transform-origin: 50% -150%;
|
||||
-webkit-animation:
|
||||
rota 1.45s linear infinite,
|
||||
opa 5.12s ease-in-out infinite alternate;
|
||||
animation:
|
||||
rota 1.45s linear infinite,
|
||||
opa 5.12s ease-in-out infinite alternate;
|
||||
}
|
||||
&:nth-child(4) {
|
||||
top: 50%;
|
||||
left: 0;
|
||||
margin: -.1em 0 0 0;
|
||||
background: theme-color(primary);
|
||||
-webkit-transform-origin: 250% 50%;
|
||||
transform-origin: 250% 50%;
|
||||
-webkit-animation:
|
||||
rota 1.72s linear infinite,
|
||||
opa 5.25s ease-in-out infinite alternate;
|
||||
animation:
|
||||
rota 1.72s linear infinite,
|
||||
opa 5.25s ease-in-out infinite alternate;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes rota {
|
||||
from { }
|
||||
to { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@keyframes rota {
|
||||
from { }
|
||||
to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes opa {
|
||||
0% { }
|
||||
12.0% { opacity: 0.80; }
|
||||
19.5% { opacity: 0.88; }
|
||||
37.2% { opacity: 0.64; }
|
||||
40.5% { opacity: 0.52; }
|
||||
52.7% { opacity: 0.69; }
|
||||
60.2% { opacity: 0.60; }
|
||||
66.6% { opacity: 0.52; }
|
||||
70.0% { opacity: 0.63; }
|
||||
79.9% { opacity: 0.60; }
|
||||
84.2% { opacity: 0.75; }
|
||||
91.0% { opacity: 0.87; }
|
||||
}
|
||||
|
||||
@keyframes opa {
|
||||
0% { }
|
||||
12.0% { opacity: 0.80; }
|
||||
19.5% { opacity: 0.88; }
|
||||
37.2% { opacity: 0.64; }
|
||||
40.5% { opacity: 0.52; }
|
||||
52.7% { opacity: 0.69; }
|
||||
60.2% { opacity: 0.60; }
|
||||
66.6% { opacity: 0.52; }
|
||||
70.0% { opacity: 0.63; }
|
||||
79.9% { opacity: 0.60; }
|
||||
84.2% { opacity: 0.75; }
|
||||
91.0% { opacity: 0.87; }
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/* Dot opacity loader */
|
||||
|
||||
.dot-opacity-loader {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.dot-opacity-loader span{
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
background-color: theme-color(primary);
|
||||
margin: 35px 5px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.dot-opacity-loader span:nth-child(1){
|
||||
animation: opacitychange 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.dot-opacity-loader span:nth-child(2){
|
||||
animation: opacitychange 1s ease-in-out 0.33s infinite;
|
||||
}
|
||||
|
||||
.dot-opacity-loader span:nth-child(3){
|
||||
animation: opacitychange 1s ease-in-out 0.66s infinite;
|
||||
}
|
||||
|
||||
@keyframes opacitychange{
|
||||
0%, 100%{
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
60%{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
/* Flip square */
|
||||
|
||||
.flip-square-loader{
|
||||
-webkit-perspective: 120px;
|
||||
-moz-perspective: 120px;
|
||||
-ms-perspective: 120px;
|
||||
perspective: 120px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.flip-square-loader:before{
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 25px;
|
||||
top: 25px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: rgba(theme-color(success), .7);
|
||||
animation: flip 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes flip {
|
||||
0% {
|
||||
transform: rotate(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotateY(180deg) rotateX(180deg);
|
||||
}
|
||||
}
|
@ -0,0 +1,137 @@
|
||||
.glowing-loader {
|
||||
position: relative;
|
||||
}
|
||||
.s2 {
|
||||
position: absolute;
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
top: 50px;
|
||||
background-color: transparent;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.s1 {
|
||||
position: absolute;
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
left: 50%;
|
||||
top: 50px;
|
||||
transform-origin: center;
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.bigcon {
|
||||
position: absolute;
|
||||
height: 75px;
|
||||
width: 75px;
|
||||
left: 50%;
|
||||
top: 50px;
|
||||
transform-origin: center;
|
||||
transform: translate(-50%, -50%) rotate(-45deg);
|
||||
background-color: transparent;
|
||||
animation: bigcon 2s infinite linear;
|
||||
animation-delay: 0.25s;
|
||||
}
|
||||
|
||||
.b {
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.s {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
animation: small 2s infinite ease;
|
||||
box-shadow: 0px 2px rgba($black, .3);
|
||||
background-color: theme-color(primary);
|
||||
}
|
||||
|
||||
.s:nth-child(1) {
|
||||
top: 0%;
|
||||
left: 0%;
|
||||
}
|
||||
|
||||
.s:nth-child(2) {
|
||||
top: 0%;
|
||||
right: 0%;
|
||||
}
|
||||
|
||||
.s:nth-child(3) {
|
||||
right: 0%;
|
||||
bottom: 0%;
|
||||
}
|
||||
|
||||
.s:nth-child(4) {
|
||||
bottom: 0%;
|
||||
left: 0%;
|
||||
}
|
||||
|
||||
.big {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: 15px;
|
||||
box-shadow:0px 0px 10px theme-color(primary), 0px 0px 20px theme-color(primary), 0px 0px 30px theme-color(primary), 0px 0px 50px theme-color(primary), 0px 0px 60px theme-color(primary) ;
|
||||
z-index: 1;
|
||||
background-color: theme-color(primary);
|
||||
animation: bigball 1s infinite linear;
|
||||
}
|
||||
|
||||
.sb1{
|
||||
animation-delay: -1.75s;
|
||||
}
|
||||
.sb6{
|
||||
animation-delay: -1.5s;
|
||||
}
|
||||
.sb2{
|
||||
animation-delay: -1.25s;
|
||||
}
|
||||
.sb7{
|
||||
animation-delay: -1s;
|
||||
}
|
||||
.sb3{
|
||||
animation-delay: -0.75s;
|
||||
}
|
||||
.sb8{
|
||||
animation-delay: -0.5s;
|
||||
}
|
||||
.sb4{
|
||||
animation-delay: -0.25s;
|
||||
}
|
||||
.sb5{
|
||||
animation-delay: -0s;
|
||||
}
|
||||
|
||||
@keyframes bigcon {
|
||||
0% {
|
||||
transform-origin: center;
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
}
|
||||
100% {
|
||||
transform-origin: center;
|
||||
transform: translate(-50%, -50%) rotate(405deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes small {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
background-color: lighten(theme-color(primary), 20%);
|
||||
}
|
||||
10% {
|
||||
transform: scale(1.3);
|
||||
background-color: theme-color(primary);
|
||||
}
|
||||
15% {
|
||||
transform: scale(1);
|
||||
}
|
||||
25%{
|
||||
transform: scale(1);
|
||||
background-color: theme-color(primary);
|
||||
}
|
||||
100%{
|
||||
transform: scale(1);
|
||||
background-color: theme-color(primary);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/* Jumping dots loader */
|
||||
.jumping-dots-loader {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.jumping-dots-loader span{
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
background-color: rgba(theme-color(danger), .8);
|
||||
margin: 35px 5px;
|
||||
}
|
||||
|
||||
.jumping-dots-loader span:nth-child(1){
|
||||
animation: bounce 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.jumping-dots-loader span:nth-child(2){
|
||||
animation: bounce 1s ease-in-out 0.33s infinite;
|
||||
}
|
||||
|
||||
.jumping-dots-loader span:nth-child(3){
|
||||
animation: bounce 1s ease-in-out 0.66s infinite;
|
||||
}
|
||||
|
||||
@keyframes bounce{
|
||||
0%, 75%, 100%{
|
||||
-webkit-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
25%{
|
||||
-webkit-transform: translateY(-20px);
|
||||
-ms-transform: translateY(-20px);
|
||||
-o-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
/* Loaders */
|
||||
|
||||
@import "variables";
|
||||
@import "colored-balls";
|
||||
@import "glowing-ball";
|
||||
@import "pixel-loader";
|
||||
@import "square-box";
|
||||
@import "circle-loader";
|
||||
@import "jumping-dots-loader";
|
||||
@import "bar-loader";
|
||||
@import "square-path-loader";
|
||||
@import "dot-opacity-loader";
|
||||
@import "flip-square-loader";
|
||||
@import "moving-square-loader";
|
@ -0,0 +1,36 @@
|
||||
/* Moving square loader */
|
||||
|
||||
.moving-square-loader {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.moving-square-loader:before{
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
top: calc(50% - 10px);
|
||||
left: 0px;
|
||||
background-color: rgba(theme-color(danger), .7);
|
||||
animation: rotatemove 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes rotatemove{
|
||||
0%{
|
||||
-webkit-transform: scale(1) translateX(0px);
|
||||
-ms-transform: scale(1) translateX(0px);
|
||||
-o-transform: scale(1) translateX(0px);
|
||||
transform: scale(1) translateX(0px);
|
||||
}
|
||||
|
||||
100%{
|
||||
-webkit-transform: scale(2) translateX(45px);
|
||||
-ms-transform: scale(2) translateX(45px);
|
||||
-o-transform: scale(2) translateX(45px);
|
||||
transform: scale(2) translateX(45px);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,50 @@
|
||||
/* Pixel loader */
|
||||
.pixel-loader {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: theme-color(warning);
|
||||
color: theme-color(warning);
|
||||
margin: 80px auto;
|
||||
box-shadow: 15px 15px 0 0,
|
||||
-15px -15px 0 0,
|
||||
15px -15px 0 0,
|
||||
-15px 15px 0 0,
|
||||
0 15px 0 0,
|
||||
15px 0 0 0,
|
||||
-15px 0 0 0,
|
||||
0 -15px 0 0;
|
||||
animation: anim 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes anim {
|
||||
0% {
|
||||
-webkit-filter: hue-rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
box-shadow: 20px 20px 0 0,
|
||||
-20px -20px 0 0,
|
||||
20px -20px 0 0,
|
||||
-20px 20px 0 0,
|
||||
0 10px 0 0,
|
||||
10px 0 0 0,
|
||||
-10px 0 0 0,
|
||||
0 -10px 0 0;
|
||||
}
|
||||
|
||||
75% {
|
||||
box-shadow: 20px 20px 0 0,
|
||||
-20px -20px 0 0,
|
||||
20px -20px 0 0,
|
||||
-20px 20px 0 0,
|
||||
0 10px 0 0,
|
||||
10px 0 0 0,
|
||||
-10px 0 0 0,
|
||||
0 -10px 0 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
-webkit-filter: hue-rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,90 @@
|
||||
/* Square box loader */
|
||||
|
||||
@keyframes dyinglight {
|
||||
15% {
|
||||
transform: scale(1.6)
|
||||
}
|
||||
50% {
|
||||
transform: rotate(-89deg)
|
||||
}
|
||||
100% {
|
||||
transform: rotate(-90deg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader-square {
|
||||
display: block;
|
||||
width: $square-size;
|
||||
height: $square-size;
|
||||
background: theme-color(primary);
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader-container {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
transform-origin: 50% 50% 0;
|
||||
animation: dyinglight 1s ease infinite;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader-corner-top:before,
|
||||
.square-box-loader-corner-top:after,
|
||||
.square-box-loader-corner-bottom:before,
|
||||
.square-box-loader-corner-bottom:after {
|
||||
position: absolute;
|
||||
width: $square-corner-size;
|
||||
height: $square-corner-size;
|
||||
color: theme-color(primary);
|
||||
content: '';
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader-corner-top {
|
||||
&:before {
|
||||
border-left: 1px solid;
|
||||
border-top: 1px solid;
|
||||
top: -$square-corner-position;
|
||||
left: -$square-corner-position;
|
||||
}
|
||||
|
||||
&:after {
|
||||
border-right: 1px solid;
|
||||
border-top: 1px solid;
|
||||
top: -$square-corner-position;
|
||||
right: -$square-corner-position;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.square-box-loader-corner-bottom {
|
||||
&:before {
|
||||
border-left: 1px solid;
|
||||
border-bottom: 1px solid;
|
||||
bottom: -$square-corner-position;
|
||||
left: -$square-corner-position;
|
||||
}
|
||||
|
||||
&:after {
|
||||
border-right: 1px solid;
|
||||
border-bottom: 1px solid;
|
||||
bottom: -$square-corner-position;
|
||||
right: -$square-corner-position;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
/* Square path loader */
|
||||
|
||||
.square-path-loader {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.square-path-loader:before, .square-path-loader:after{
|
||||
content: "";
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: calc(50% - 10px);
|
||||
background-color: rgba(theme-color(success), .7);
|
||||
animation: squaremove 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.square-path-loader:after{
|
||||
bottom: 0;
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
|
||||
@keyframes squaremove{
|
||||
0%, 100%{
|
||||
-webkit-transform: translate(0,0) rotate(0);
|
||||
-ms-transform: translate(0,0) rotate(0);
|
||||
-o-transform: translate(0,0) rotate(0);
|
||||
transform: translate(0,0) rotate(0);
|
||||
}
|
||||
|
||||
25%{
|
||||
-webkit-transform: translate(40px,40px) rotate(45deg);
|
||||
-ms-transform: translate(40px,40px) rotate(45deg);
|
||||
-o-transform: translate(40px,40px) rotate(45deg);
|
||||
transform: translate(40px,40px) rotate(45deg);
|
||||
}
|
||||
|
||||
50%{
|
||||
-webkit-transform: translate(0px,80px) rotate(0deg);
|
||||
-ms-transform: translate(0px,80px) rotate(0deg);
|
||||
-o-transform: translate(0px,80px) rotate(0deg);
|
||||
transform: translate(0px,80px) rotate(0deg);
|
||||
}
|
||||
|
||||
75%{
|
||||
-webkit-transform: translate(-40px,40px) rotate(45deg);
|
||||
-ms-transform: translate(-40px,40px) rotate(45deg);
|
||||
-o-transform: translate(-40px,40px) rotate(45deg);
|
||||
transform: translate(-40px,40px) rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,4 @@
|
||||
$square-box-scale: 3;
|
||||
$square-size: 30px;
|
||||
$square-corner-size: ceil($square-size / $square-box-scale);
|
||||
$square-corner-position: ceil($square-corner-size / $square-box-scale);
|
Reference in New Issue
Block a user