UNPKG

threed-garden

Version:

ThreeD Garden: WebGL 3D Environment Interface for Next.JS React TypeScript Three.JS React-Three Physics, 2D Paper.JS; APIs: Apollo GraphQL, WordPress; CSS: Tailwind, Radix-UI; Libraries: FarmBot 3D; AI: OpenAI, DeepSeek

340 lines (312 loc) 6.57 kB
@import "@radix-ui/colors/black-alpha.css"; @import "@radix-ui/colors/green.css"; @import "@radix-ui/colors/mauve.css"; @import "@radix-ui/colors/violet.css"; /* @import "@radix-ui/colors/black-alpha.css"; @import "@radix-ui/colors/green.css"; @import "@radix-ui/colors/mauve.css"; @import "@radix-ui/colors/violet.css"; */ /* reset */ /* button, fieldset, input { all: unset; } */ /* reset */ /* button, fieldset, input { all: unset; } */ /* */ .DialogOverlay { background-color: var(--black-a9); position: fixed; inset: 0; animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1); } .DialogContent { background-color: white; border-radius: 6px; box-shadow: hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90vw; max-width: 450px; max-height: 85vh; padding: 25px; animation: contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1); } .DialogContent:focus { outline: none; } .DialogTitle { margin: 0; font-weight: 500; color: var(--mauve-12); font-size: 17px; } .DialogDescription { margin: 10px 0 20px; color: var(--mauve-11); font-size: 15px; line-height: 1.5; } @keyframes overlayShow { from { opacity: 0; } to { opacity: 1; } } @keyframes contentShow { from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } } .Button { display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; padding: 0 15px; font-size: 15px; line-height: 1; font-weight: 500; height: 35px; } .Button.violet { background-color: white; color: var(--violet-11); box-shadow: 0 2px 10px var(--black-a7); } .Button.violet:hover { background-color: var(--mauve-3); } .Button.violet:focus { box-shadow: 0 0 0 2px black; } .Button.green { background-color: var(--green-4); color: var(--green-11); } .Button.green:hover { background-color: var(--green-5); } .Button.green:focus { box-shadow: 0 0 0 2px var(--green-7); } .IconButton { font-family: inherit; border-radius: 100%; border-width: 0; height: 25px; width: 25px; display: inline-flex; align-items: center; justify-content: center; color: var(--violet-11); background-color: #131418; box-shadow: 0 2px 10px var(--black-a7); } .IconButton:hover { /* background-color: var(--violet-4); */ background-color: #131418; } .IconButton:focus { /* box-shadow: 0 0 0 2px var(--violet-7); */ } /* .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 { background-color: var(--violet-3); } .IconButton:focus { box-shadow: 0 0 0 2px black; } */ .Fieldset { display: flex; gap: 20px; align-items: center; margin-bottom: 15px; } .Label { font-size: 15px; color: var(--violet-11); width: 90px; text-align: right; } .Input { width: 100%; flex: 1; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; padding: 0 10px; font-size: 15px; line-height: 1; color: var(--violet-11); box-shadow: 0 0 0 1px var(--violet-7); height: 35px; } .Input:focus { box-shadow: 0 0 0 2px var(--violet-8); } .DropdownMenuContent, .DropdownMenuSubContent { min-width: 220px; background-color: black; 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; } .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; color: var(--violet-11); 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"] { background-color: var(--violet-4); color: var(--violet-11); } .DropdownMenuItem[data-disabled], .DropdownMenuCheckboxItem[data-disabled], .DropdownMenuRadioItem[data-disabled], .DropdownMenuSubTrigger[data-disabled] { color: var(--mauve-8); pointer-events: none; } .DropdownMenuItem[data-highlighted], .DropdownMenuCheckboxItem[data-highlighted], .DropdownMenuRadioItem[data-highlighted], .DropdownMenuSubTrigger[data-highlighted] { background-color: var(--violet-9); color: var(--violet-1); } .DropdownMenuLabel { padding-left: 25px; font-size: 12px; line-height: 25px; color: var(--mauve-11); } .DropdownMenuSeparator { height: 1px; background-color: var(--violet-6); margin: 5px; } .DropdownMenuItemIndicator { position: absolute; left: 0; width: 25px; display: inline-flex; align-items: center; justify-content: center; } .DropdownMenuArrow { fill: white; } .RightSlot { margin-left: auto; padding-left: 20px; color: var(--mauve-11); } [data-highlighted] > .RightSlot { color: white; } [data-disabled] .RightSlot { color: var(--mauve-8); } @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); } }