mirror of
https://github.com/outline/outline.git
synced 2026-06-13 03:14:59 +03:00
e86593f234
* add group mentions * group mention functionality * add notification test * fix: Group icon in mention menu * language * toast message * fix: Group icon in mention menu light mode color --------- Co-authored-by: Tom Moor <tom@getoutline.com>
67 lines
1.5 KiB
TypeScript
67 lines
1.5 KiB
TypeScript
import * as React from "react";
|
|
import styled from "styled-components";
|
|
import Flex from "./Flex";
|
|
|
|
type Props = {
|
|
/** The width and height of the squircle */
|
|
size?: number;
|
|
/** The color of the squircle */
|
|
color?: string;
|
|
children?: React.ReactNode;
|
|
className?: string;
|
|
style?: React.CSSProperties;
|
|
};
|
|
|
|
/**
|
|
* Squircle is a component that renders a square with rounded corners (squircle shape).
|
|
* It's commonly used for app icons, avatars, and other UI elements where a softer
|
|
* square shape is desired.
|
|
*/
|
|
const Squircle: React.FC<Props> = ({
|
|
color,
|
|
size = 28,
|
|
children,
|
|
className,
|
|
style,
|
|
}: Props) => (
|
|
<Wrapper
|
|
size={size}
|
|
align="center"
|
|
justify="center"
|
|
className={className}
|
|
style={style}
|
|
>
|
|
<svg
|
|
width={size}
|
|
height={size}
|
|
fill={color}
|
|
viewBox="0 0 28 28"
|
|
data-fixed-color
|
|
>
|
|
<path d="M0 11.1776C0 1.97285 1.97285 0 11.1776 0H16.8224C26.0272 0 28 1.97285 28 11.1776V16.8224C28 26.0272 26.0272 28 16.8224 28H11.1776C1.97285 28 0 26.0272 0 16.8224V11.1776Z" />
|
|
</svg>
|
|
<Content>{children}</Content>
|
|
</Wrapper>
|
|
);
|
|
|
|
const Wrapper = styled(Flex)<{ size: number }>`
|
|
position: relative;
|
|
width: ${(props) => props.size}px;
|
|
height: ${(props) => props.size}px;
|
|
|
|
svg {
|
|
transition: fill 150ms ease-in-out;
|
|
transition-delay: var(--delay);
|
|
}
|
|
`;
|
|
|
|
const Content = styled.div`
|
|
display: flex;
|
|
transform: translate(-50%, -50%);
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
`;
|
|
|
|
export default Squircle;
|