kopia lustrzana https://github.com/shoelace-style/shoelace
67 wiersze
1.5 KiB
TypeScript
67 wiersze
1.5 KiB
TypeScript
import { css } from 'lit';
|
|
import componentStyles from '~/styles/component.styles';
|
|
|
|
export default css`
|
|
${componentStyles}
|
|
|
|
:host {
|
|
--size: 128px;
|
|
--track-width: 4px;
|
|
--track-color: var(--sl-color-neutral-200);
|
|
--indicator-color: var(--sl-color-primary-600);
|
|
|
|
display: inline-flex;
|
|
}
|
|
|
|
.progress-ring {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
}
|
|
|
|
.progress-ring__image {
|
|
width: var(--size);
|
|
height: var(--size);
|
|
transform: rotate(-90deg);
|
|
transform-origin: 50% 50%;
|
|
}
|
|
|
|
.progress-ring__track,
|
|
.progress-ring__indicator {
|
|
--radius: calc(var(--size) / 2 - var(--track-width) * 0.5);
|
|
--circumference: calc(var(--radius) * 2 * 3.141592654);
|
|
|
|
fill: none;
|
|
stroke-width: var(--track-width);
|
|
r: var(--radius);
|
|
cx: calc(var(--size) / 2);
|
|
cy: calc(var(--size) / 2);
|
|
}
|
|
|
|
.progress-ring__track {
|
|
stroke: var(--track-color);
|
|
}
|
|
|
|
.progress-ring__indicator {
|
|
stroke: var(--indicator-color);
|
|
stroke-linecap: round;
|
|
transition: 0.35s stroke-dashoffset;
|
|
stroke-dasharray: var(--circumference) var(--circumference);
|
|
stroke-dashoffset: calc(var(--circumference) - var(--percentage) * var(--circumference));
|
|
}
|
|
|
|
.progress-ring__label {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
text-align: center;
|
|
user-select: none;
|
|
}
|
|
`;
|