@colisweb/rescript-toolkit
Version:

372 lines (341 loc) • 7.64 kB
CSS
/* reset */
.TooltipContent {
border-radius: 4px;
padding: 10px 15px;
font-size: 15px;
line-height: 1;
box-shadow:
hsl(206 22% 7% / 35%) 0px 10px 38px -10px,
hsl(206 22% 7% / 20%) 0px 10px 20px -15px;
animation-duration: 400ms;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
will-change: transform, opacity;
@apply z-40;
}
.TooltipContent[data-state="delayed-open"][data-side="top"] {
animation-name: slideDownAndFade;
}
.TooltipContent[data-state="delayed-open"][data-side="right"] {
animation-name: slideLeftAndFade;
}
.TooltipContent[data-state="delayed-open"][data-side="bottom"] {
animation-name: slideUpAndFade;
}
.TooltipContent[data-state="delayed-open"][data-side="left"] {
animation-name: slideRightAndFade;
}
.TooltipContent--White {
@apply bg-white text-neutral-800;
}
.TooltipContent--Black {
@apply bg-neutral-900 text-white;
}
.TooltipContent--White .TooltipArrow {
@apply fill-white;
}
.TooltipContent--Black .TooltipArrow {
@apply fill-neutral-900;
}
@keyframes slideUpAndFade {
from {
opacity: 0;
transform: translateY(2px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideRightAndFade {
from {
opacity: 0;
transform: translateX(-2px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes slideDownAndFade {
from {
opacity: 0;
transform: translateY(-2px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideLeftAndFade {
from {
opacity: 0;
transform: translateX(2px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
.cw-PopoverContent {
animation-duration: 400ms;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
will-change: transform, opacity;
}
.cw-PopoverContent[data-state="open"][data-side="top"] {
animation-name: slideDownAndFade;
}
.cw-PopoverContent[data-state="open"][data-side="right"] {
animation-name: slideLeftAndFade;
}
.cw-PopoverContent[data-state="open"][data-side="bottom"] {
animation-name: slideUpAndFade;
}
.cw-PopoverContent[data-state="open"][data-side="left"] {
animation-name: slideRightAndFade;
}
.PopoverArrow {
fill: white;
}
.DropdownMenuContent,
.DropdownMenuSubContent {
min-width: 220px;
background-color: white;
border-radius: 6px;
padding: 5px;
box-shadow:
0px 10px 38px -10px rgba(22, 23, 24, 0.35),
0px 10px 20px -15px rgba(22, 23, 24, 0.2);
animation-duration: 400ms;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
will-change: transform, opacity;
@apply z-50;
}
.DropdownMenuContent[data-side="top"],
.DropdownMenuSubContent[data-side="top"] {
animation-name: slideDownAndFade;
}
.DropdownMenuContent[data-side="right"],
.DropdownMenuSubContent[data-side="right"] {
animation-name: slideLeftAndFade;
}
.DropdownMenuContent[data-side="bottom"],
.DropdownMenuSubContent[data-side="bottom"] {
animation-name: slideUpAndFade;
}
.DropdownMenuContent[data-side="left"],
.DropdownMenuSubContent[data-side="left"] {
animation-name: slideRightAndFade;
}
.DropdownMenuItem,
.DropdownMenuCheckboxItem,
.DropdownMenuRadioItem,
.DropdownMenuSubTrigger {
font-size: 13px;
line-height: 1;
@apply text-neutral-900;
border-radius: 3px;
display: flex;
align-items: center;
height: 25px;
padding: 0 5px;
position: relative;
padding-left: 25px;
user-select: none;
outline: none;
}
.DropdownMenuSubTrigger[data-state="open"] {
@apply bg-neutral-200 text-neutral-700;
}
.DropdownMenuItem[data-disabled],
.DropdownMenuCheckboxItem[data-disabled],
.DropdownMenuRadioItem[data-disabled],
.DropdownMenuSubTrigger[data-disabled] {
@apply text-gray-400;
pointer-events: none;
}
.DropdownMenuItem[data-highlighted],
.DropdownMenuCheckboxItem[data-highlighted],
.DropdownMenuRadioItem[data-highlighted],
.DropdownMenuSubTrigger[data-highlighted] {
@apply bg-neutral-200 text-neutral-700;
}
.DropdownMenuLabel {
padding-left: 25px;
font-size: 12px;
line-height: 25px;
@apply text-neutral-600;
}
.DropdownMenuSeparator {
height: 1px;
@apply bg-neutral-400;
margin: 5px;
}
.DropdownMenuItemIndicator {
position: absolute;
left: 0;
width: 25px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.DropdownMenuArrow {
fill: white;
}
.IconButton {
font-family: inherit;
border-radius: 100%;
height: 35px;
width: 35px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--violet-11);
background-color: white;
box-shadow: 0 2px 10px var(--black-a7);
}
.IconButton:hover {
@apply bg-neutral-500;
}
.IconButton:focus {
box-shadow: 0 0 0 2px black;
}
.RightSlot {
margin-left: auto;
padding-left: 20px;
@apply text-neutral-600;
}
[data-highlighted] > .RightSlot {
@apply text-neutral-700;
}
[data-disabled] .RightSlot {
color: var(--mauve-8);
}
.ScrollAreaRoot {
border-radius: 4px;
overflow: hidden;
--scrollbar-size: 10px;
}
.ScrollAreaViewport {
width: 100%;
height: 100%;
border-radius: inherit;
}
.ScrollAreaScrollbar {
display: flex;
/* ensures no selection */
user-select: none;
/* disable browser handling of all panning and zooming gestures on touch devices */
touch-action: none;
padding: 2px;
transition: background 160ms ease-out;
@apply bg-neutral-300;
}
.ScrollAreaScrollbar:hover {
@apply bg-neutral-400;
}
.ScrollAreaScrollbar[data-orientation="vertical"] {
width: var(--scrollbar-size);
}
.ScrollAreaScrollbar[data-orientation="horizontal"] {
flex-direction: column;
height: var(--scrollbar-size);
}
.ScrollAreaThumb {
flex: 1;
border-radius: var(--scrollbar-size);
position: relative;
@apply bg-neutral-700;
}
/* increase target size for touch devices https://www.w3.org/WAI/WCAG21/Understanding/target-size.html */
.ScrollAreaThumb::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
min-width: 44px;
min-height: 44px;
}
.ScrollAreaCorner {
@apply bg-neutral-700;
}
@keyframes swipeOut {
from {
transform: translateX(var(--radix-toast-swipe-end-x));
}
to {
transform: translateX(calc(100% + var(--viewport-padding)));
}
}
@keyframes hide {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes slideIn {
from {
transform: translateX(calc(100% + var(--viewport-padding)));
}
to {
transform: translateX(0);
}
}
.ToastViewport {
--viewport-padding: 25px;
position: fixed;
bottom: 0;
right: 0;
display: flex;
flex-direction: column;
padding: var(--viewport-padding);
gap: 10px;
width: 390px;
max-width: 100vw;
margin: 0;
list-style: none;
z-index: 2147483647;
outline: none;
}
.ToastRoot {
border-radius: 6px;
box-shadow:
hsl(206 22% 7% / 35%) 0px 10px 38px -10px,
hsl(206 22% 7% / 20%) 0px 10px 20px -15px;
padding: 15px;
display: grid;
grid-template-areas: "title action" "description action";
grid-template-columns: auto max-content;
column-gap: 15px;
align-items: center;
}
.ToastRoot[data-state="open"] {
animation: slideIn 150ms cubic-bezier(0.16, 1, 0.3, 1);
}
.ToastRoot[data-state="closed"] {
animation: hide 100ms ease-in;
}
.ToastRoot[data-swipe="move"] {
transform: translateX(var(--radix-toast-swipe-move-x));
}
.ToastRoot[data-swipe="cancel"] {
transform: translateX(0);
transition: transform 200ms ease-out;
}
.ToastRoot[data-swipe="end"] {
animation: swipeOut 100ms ease-out;
}
.ToastTitle {
grid-area: title;
}
.ToastDescription {
grid-area: description;
margin: 0;
}
.ToastAction {
grid-area: action;
}