Web: Common: fixed floating button styles
This commit is contained in:
parent
87617179d7
commit
891ae80da3
@ -1,28 +1,27 @@
|
||||
import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { StyledFloatingButton, StyledAlertIcon } from "./StyledFloatingButton";
|
||||
import {
|
||||
StyledFloatingButton,
|
||||
StyledAlertIcon,
|
||||
StyledCircleWrap,
|
||||
StyledCircle,
|
||||
} from "./StyledFloatingButton";
|
||||
import { Icons } from "asc-web-components";
|
||||
|
||||
const FloatingButton = ({ id, className, style, ...rest }) => {
|
||||
const { icon, alert, percent } = rest;
|
||||
|
||||
return (
|
||||
<StyledFloatingButton
|
||||
id={id}
|
||||
className={className}
|
||||
style={style}
|
||||
icon={icon}
|
||||
percent={percent}
|
||||
>
|
||||
<div className="circle-wrap">
|
||||
<div className="circle">
|
||||
<div className="mask full">
|
||||
<div className="fill"></div>
|
||||
<StyledCircleWrap id={id} className={className} style={style} icon={icon}>
|
||||
<StyledCircle percent={percent}>
|
||||
<div className="styled-circle__mask styled-circle__full">
|
||||
<div className="styled_circle__fill"></div>
|
||||
</div>
|
||||
<div className="mask half">
|
||||
<div className="fill"></div>
|
||||
<div className="styled-circle__mask">
|
||||
<div className="styled_circle__fill"></div>
|
||||
</div>
|
||||
<div className="inside-circle">
|
||||
|
||||
<StyledFloatingButton>
|
||||
{icon == "upload" ? (
|
||||
<Icons.ButtonUploadIcon />
|
||||
) : icon == "file" ? (
|
||||
@ -34,13 +33,13 @@ const FloatingButton = ({ id, className, style, ...rest }) => {
|
||||
) : (
|
||||
<Icons.ButtonDuplicateIcon />
|
||||
)}
|
||||
|
||||
<StyledAlertIcon>
|
||||
{alert ? <Icons.ButtonAlertIcon size="medium" /> : <></>}
|
||||
</StyledAlertIcon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</StyledFloatingButton>
|
||||
</StyledCircle>
|
||||
</StyledCircleWrap>
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -3,33 +3,42 @@ import styled from "styled-components";
|
||||
const backgroundColor = "none";
|
||||
const color = "#2DA7DB";
|
||||
|
||||
const StyledFloatingButton = styled.div`
|
||||
.circle-wrap {
|
||||
const StyledCircleWrap = styled.div`
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
background: ${backgroundColor};
|
||||
border-radius: 50%;
|
||||
}
|
||||
.circle-wrap .circle .mask,
|
||||
.circle-wrap .circle .fill {
|
||||
`;
|
||||
|
||||
const StyledCircle = styled.div`
|
||||
.styled-circle__mask,
|
||||
.styled_circle__fill {
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.circle-wrap .circle .mask {
|
||||
|
||||
.styled-circle__mask {
|
||||
clip: rect(0px, 54px, 54px, 27px);
|
||||
}
|
||||
.circle-wrap .circle .mask .fill {
|
||||
|
||||
.styled_circle__fill {
|
||||
animation: fill-rotate ease-in-out 3s;
|
||||
transform: rotate(${(props) => props.percent * 1.8}deg);
|
||||
}
|
||||
|
||||
.styled-circle__mask .styled_circle__fill {
|
||||
clip: rect(0px, 27px, 54px, 0px);
|
||||
background-color: ${color};
|
||||
}
|
||||
.circle-wrap .circle .mask.full,
|
||||
.circle-wrap .circle .fill {
|
||||
animation: fill ease-in-out 3s;
|
||||
|
||||
.styled-circle__mask.styled-circle__full {
|
||||
animation: fill-rotate ease-in-out 3s;
|
||||
transform: rotate(${(props) => props.percent * 1.8}deg);
|
||||
}
|
||||
@keyframes fill {
|
||||
|
||||
@keyframes fill-rotate {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
@ -37,7 +46,9 @@ const StyledFloatingButton = styled.div`
|
||||
transform: rotate(${(props) => props.percent * 1.8}deg);
|
||||
}
|
||||
}
|
||||
.circle-wrap .inside-circle {
|
||||
`;
|
||||
|
||||
const StyledFloatingButton = styled.div`
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
@ -47,7 +58,6 @@ const StyledFloatingButton = styled.div`
|
||||
text-align: center;
|
||||
margin: 3px;
|
||||
position: absolute;
|
||||
}
|
||||
`;
|
||||
|
||||
const StyledAlertIcon = styled.div`
|
||||
@ -58,4 +68,9 @@ const StyledAlertIcon = styled.div`
|
||||
top: -10px;
|
||||
`;
|
||||
|
||||
export { StyledFloatingButton, StyledAlertIcon };
|
||||
export {
|
||||
StyledCircleWrap,
|
||||
StyledCircle,
|
||||
StyledFloatingButton,
|
||||
StyledAlertIcon,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user